{"version":3,"sources":["./node_modules/@angular/animations/__ivy_ngcc__/fesm5/animations.js","./node_modules/@angular/animations/__ivy_ngcc__/fesm5/browser.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm5/bidi.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm5/collections.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm5/platform.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm5/portal.js","./node_modules/@angular/cdk/__ivy_ngcc__/fesm5/scrolling.js","./node_modules/@angular/cdk/fesm5/coercion.js","./node_modules/@angular/common/__ivy_ngcc__/fesm5/common.js","./node_modules/@angular/common/__ivy_ngcc__/fesm5/http.js","./node_modules/@angular/compiler/fesm5/compiler.js","./node_modules/@angular/core/__ivy_ngcc__/fesm5/core.js","./node_modules/@angular/forms/__ivy_ngcc__/fesm5/forms.js","./node_modules/@angular/platform-browser-dynamic/__ivy_ngcc__/fesm5/platform-browser-dynamic.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm5/animations.js","./node_modules/@angular/platform-browser/__ivy_ngcc__/fesm5/platform-browser.js","./node_modules/@angular/router/__ivy_ngcc__/fesm5/router.js","./node_modules/@angularclass/hmr/dist/experimental.js","./node_modules/@angularclass/hmr/dist/helpers.js","./node_modules/@angularclass/hmr/dist/hmr.js","./node_modules/@angularclass/hmr/dist/index.js","./node_modules/@mattlewis92/dom-autoscroller/dist/bundle.js","./node_modules/@ng-bootstrap/ng-bootstrap/__ivy_ngcc__/fesm5/ng-bootstrap.js","./node_modules/@swimlane/ngx-charts/__ivy_ngcc__/fesm5/swimlane-ngx-charts.js","./node_modules/@syncfusion/ej2-angular-base/index.js","./node_modules/@syncfusion/ej2-angular-base/src/complex-array-base.js","./node_modules/@syncfusion/ej2-angular-base/src/component-base.js","./node_modules/@syncfusion/ej2-angular-base/src/form-base.js","./node_modules/@syncfusion/ej2-angular-base/src/index.js","./node_modules/@syncfusion/ej2-angular-base/src/template.js","./node_modules/@syncfusion/ej2-angular-base/src/util.js","./node_modules/@syncfusion/ej2-angular-schedule/__ivy_ngcc__/@syncfusion/ej2-angular-schedule.es5.js","./node_modules/@syncfusion/ej2-base/index.js","./node_modules/@syncfusion/ej2-base/src/ajax.js","./node_modules/@syncfusion/ej2-base/src/animation.js","./node_modules/@syncfusion/ej2-base/src/base.js","./node_modules/@syncfusion/ej2-base/src/browser.js","./node_modules/@syncfusion/ej2-base/src/child-property.js","./node_modules/@syncfusion/ej2-base/src/component.js","./node_modules/@syncfusion/ej2-base/src/dom.js","./node_modules/@syncfusion/ej2-base/src/draggable.js","./node_modules/@syncfusion/ej2-base/src/droppable.js","./node_modules/@syncfusion/ej2-base/src/event-handler.js","./node_modules/@syncfusion/ej2-base/src/hijri-parser.js","./node_modules/@syncfusion/ej2-base/src/index.js","./node_modules/@syncfusion/ej2-base/src/internationalization.js","./node_modules/@syncfusion/ej2-base/src/intl/date-formatter.js","./node_modules/@syncfusion/ej2-base/src/intl/date-parser.js","./node_modules/@syncfusion/ej2-base/src/intl/intl-base.js","./node_modules/@syncfusion/ej2-base/src/intl/number-formatter.js","./node_modules/@syncfusion/ej2-base/src/intl/number-parser.js","./node_modules/@syncfusion/ej2-base/src/intl/parser-base.js","./node_modules/@syncfusion/ej2-base/src/keyboard.js","./node_modules/@syncfusion/ej2-base/src/l10n.js","./node_modules/@syncfusion/ej2-base/src/module-loader.js","./node_modules/@syncfusion/ej2-base/src/notify-property-change.js","./node_modules/@syncfusion/ej2-base/src/observer.js","./node_modules/@syncfusion/ej2-base/src/sanitize-helper.js","./node_modules/@syncfusion/ej2-base/src/template-engine.js","./node_modules/@syncfusion/ej2-base/src/template.js","./node_modules/@syncfusion/ej2-base/src/touch.js","./node_modules/@syncfusion/ej2-base/src/util.js","./node_modules/@syncfusion/ej2-buttons/index.js","./node_modules/@syncfusion/ej2-buttons/src/button/button.js","./node_modules/@syncfusion/ej2-buttons/src/button/index.js","./node_modules/@syncfusion/ej2-buttons/src/check-box/check-box.js","./node_modules/@syncfusion/ej2-buttons/src/check-box/index.js","./node_modules/@syncfusion/ej2-buttons/src/chips/chip-list.js","./node_modules/@syncfusion/ej2-buttons/src/chips/chip.js","./node_modules/@syncfusion/ej2-buttons/src/chips/index.js","./node_modules/@syncfusion/ej2-buttons/src/common/common.js","./node_modules/@syncfusion/ej2-buttons/src/common/index.js","./node_modules/@syncfusion/ej2-buttons/src/index.js","./node_modules/@syncfusion/ej2-buttons/src/radio-button/index.js","./node_modules/@syncfusion/ej2-buttons/src/radio-button/radio-button.js","./node_modules/@syncfusion/ej2-buttons/src/switch/index.js","./node_modules/@syncfusion/ej2-buttons/src/switch/switch.js","./node_modules/@syncfusion/ej2-calendars/index.js","./node_modules/@syncfusion/ej2-calendars/src/calendar/calendar.js","./node_modules/@syncfusion/ej2-calendars/src/calendar/index.js","./node_modules/@syncfusion/ej2-calendars/src/calendar/islamic.js","./node_modules/@syncfusion/ej2-calendars/src/datepicker/datepicker.js","./node_modules/@syncfusion/ej2-calendars/src/datepicker/index.js","./node_modules/@syncfusion/ej2-calendars/src/daterangepicker/daterangepicker.js","./node_modules/@syncfusion/ej2-calendars/src/daterangepicker/index.js","./node_modules/@syncfusion/ej2-calendars/src/datetimepicker/datetimepicker.js","./node_modules/@syncfusion/ej2-calendars/src/datetimepicker/index.js","./node_modules/@syncfusion/ej2-calendars/src/index.js","./node_modules/@syncfusion/ej2-calendars/src/maskbase/index.js","./node_modules/@syncfusion/ej2-calendars/src/maskbase/masked-date-time.js","./node_modules/@syncfusion/ej2-calendars/src/timepicker/index.js","./node_modules/@syncfusion/ej2-calendars/src/timepicker/timepicker.js","./node_modules/@syncfusion/ej2-compression/index.js","./node_modules/@syncfusion/ej2-compression/src/compression-writer.js","./node_modules/@syncfusion/ej2-compression/src/index.js","./node_modules/@syncfusion/ej2-compression/src/zip-archive.js","./node_modules/@syncfusion/ej2-data/index.js","./node_modules/@syncfusion/ej2-data/src/adaptors.js","./node_modules/@syncfusion/ej2-data/src/index.js","./node_modules/@syncfusion/ej2-data/src/manager.js","./node_modules/@syncfusion/ej2-data/src/query.js","./node_modules/@syncfusion/ej2-data/src/util.js","./node_modules/@syncfusion/ej2-dropdowns/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/auto-complete/auto-complete.js","./node_modules/@syncfusion/ej2-dropdowns/src/auto-complete/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/combo-box/combo-box.js","./node_modules/@syncfusion/ej2-dropdowns/src/combo-box/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/common/highlight-search.js","./node_modules/@syncfusion/ej2-dropdowns/src/common/incremental-search.js","./node_modules/@syncfusion/ej2-dropdowns/src/common/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/drop-down-base.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-base/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/drop-down-list.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-list/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-tree/drop-down-tree.js","./node_modules/@syncfusion/ej2-dropdowns/src/drop-down-tree/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/list-box/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/list-box/list-box.js","./node_modules/@syncfusion/ej2-dropdowns/src/multi-select/checkbox-selection.js","./node_modules/@syncfusion/ej2-dropdowns/src/multi-select/float-label.js","./node_modules/@syncfusion/ej2-dropdowns/src/multi-select/index.js","./node_modules/@syncfusion/ej2-dropdowns/src/multi-select/multi-select.js","./node_modules/@syncfusion/ej2-excel-export/index.js","./node_modules/@syncfusion/ej2-excel-export/src/auto-filters.js","./node_modules/@syncfusion/ej2-excel-export/src/blob-helper.js","./node_modules/@syncfusion/ej2-excel-export/src/cell-style.js","./node_modules/@syncfusion/ej2-excel-export/src/cell.js","./node_modules/@syncfusion/ej2-excel-export/src/column.js","./node_modules/@syncfusion/ej2-excel-export/src/csv-helper.js","./node_modules/@syncfusion/ej2-excel-export/src/image.js","./node_modules/@syncfusion/ej2-excel-export/src/index.js","./node_modules/@syncfusion/ej2-excel-export/src/row.js","./node_modules/@syncfusion/ej2-excel-export/src/value-formatter.js","./node_modules/@syncfusion/ej2-excel-export/src/workbook.js","./node_modules/@syncfusion/ej2-excel-export/src/worksheet.js","./node_modules/@syncfusion/ej2-excel-export/src/worksheets.js","./node_modules/@syncfusion/ej2-file-utils/index.js","./node_modules/@syncfusion/ej2-file-utils/src/encoding.js","./node_modules/@syncfusion/ej2-file-utils/src/index.js","./node_modules/@syncfusion/ej2-file-utils/src/save.js","./node_modules/@syncfusion/ej2-file-utils/src/stream-writer.js","./node_modules/@syncfusion/ej2-file-utils/src/xml-writer.js","./node_modules/@syncfusion/ej2-inputs/index.js","./node_modules/@syncfusion/ej2-inputs/src/color-picker/color-picker.js","./node_modules/@syncfusion/ej2-inputs/src/color-picker/index.js","./node_modules/@syncfusion/ej2-inputs/src/form-validator/form-validator.js","./node_modules/@syncfusion/ej2-inputs/src/form-validator/index.js","./node_modules/@syncfusion/ej2-inputs/src/index.js","./node_modules/@syncfusion/ej2-inputs/src/input/index.js","./node_modules/@syncfusion/ej2-inputs/src/input/input.js","./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/base/index.js","./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/base/mask-base.js","./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/index.js","./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/maskedtextbox/index.js","./node_modules/@syncfusion/ej2-inputs/src/maskedtextbox/maskedtextbox/maskedtextbox.js","./node_modules/@syncfusion/ej2-inputs/src/numerictextbox/index.js","./node_modules/@syncfusion/ej2-inputs/src/numerictextbox/numerictextbox.js","./node_modules/@syncfusion/ej2-inputs/src/slider/index.js","./node_modules/@syncfusion/ej2-inputs/src/slider/slider.js","./node_modules/@syncfusion/ej2-inputs/src/textbox/index.js","./node_modules/@syncfusion/ej2-inputs/src/textbox/textbox.js","./node_modules/@syncfusion/ej2-inputs/src/uploader/index.js","./node_modules/@syncfusion/ej2-inputs/src/uploader/uploader.js","./node_modules/@syncfusion/ej2-lists/index.js","./node_modules/@syncfusion/ej2-lists/src/common/index.js","./node_modules/@syncfusion/ej2-lists/src/common/list-base.js","./node_modules/@syncfusion/ej2-lists/src/index.js","./node_modules/@syncfusion/ej2-lists/src/list-view/index.js","./node_modules/@syncfusion/ej2-lists/src/list-view/list-view.js","./node_modules/@syncfusion/ej2-lists/src/list-view/virtualization.js","./node_modules/@syncfusion/ej2-lists/src/sortable/index.js","./node_modules/@syncfusion/ej2-lists/src/sortable/sortable.js","./node_modules/@syncfusion/ej2-navigations/index.js","./node_modules/@syncfusion/ej2-navigations/src/accordion/accordion.js","./node_modules/@syncfusion/ej2-navigations/src/accordion/index.js","./node_modules/@syncfusion/ej2-navigations/src/breadcrumb/breadcrumb.js","./node_modules/@syncfusion/ej2-navigations/src/breadcrumb/index.js","./node_modules/@syncfusion/ej2-navigations/src/common/h-scroll.js","./node_modules/@syncfusion/ej2-navigations/src/common/index.js","./node_modules/@syncfusion/ej2-navigations/src/common/menu-base.js","./node_modules/@syncfusion/ej2-navigations/src/common/menu-scroll.js","./node_modules/@syncfusion/ej2-navigations/src/common/v-scroll.js","./node_modules/@syncfusion/ej2-navigations/src/context-menu/context-menu.js","./node_modules/@syncfusion/ej2-navigations/src/context-menu/index.js","./node_modules/@syncfusion/ej2-navigations/src/index.js","./node_modules/@syncfusion/ej2-navigations/src/menu/index.js","./node_modules/@syncfusion/ej2-navigations/src/menu/menu.js","./node_modules/@syncfusion/ej2-navigations/src/sidebar/index.js","./node_modules/@syncfusion/ej2-navigations/src/sidebar/sidebar.js","./node_modules/@syncfusion/ej2-navigations/src/tab/index.js","./node_modules/@syncfusion/ej2-navigations/src/tab/tab.js","./node_modules/@syncfusion/ej2-navigations/src/toolbar/index.js","./node_modules/@syncfusion/ej2-navigations/src/toolbar/toolbar.js","./node_modules/@syncfusion/ej2-navigations/src/treeview/index.js","./node_modules/@syncfusion/ej2-navigations/src/treeview/treeview.js","./node_modules/@syncfusion/ej2-popups/index.js","./node_modules/@syncfusion/ej2-popups/src/common/collision.js","./node_modules/@syncfusion/ej2-popups/src/common/index.js","./node_modules/@syncfusion/ej2-popups/src/common/position.js","./node_modules/@syncfusion/ej2-popups/src/common/resize.js","./node_modules/@syncfusion/ej2-popups/src/dialog/dialog.js","./node_modules/@syncfusion/ej2-popups/src/dialog/index.js","./node_modules/@syncfusion/ej2-popups/src/index.js","./node_modules/@syncfusion/ej2-popups/src/popup/index.js","./node_modules/@syncfusion/ej2-popups/src/popup/popup.js","./node_modules/@syncfusion/ej2-popups/src/spinner/index.js","./node_modules/@syncfusion/ej2-popups/src/spinner/spinner.js","./node_modules/@syncfusion/ej2-popups/src/tooltip/index.js","./node_modules/@syncfusion/ej2-popups/src/tooltip/tooltip.js","./node_modules/@syncfusion/ej2-schedule/index.js","./node_modules/@syncfusion/ej2-schedule/src/common/calendar-util.js","./node_modules/@syncfusion/ej2-schedule/src/common/index.js","./node_modules/@syncfusion/ej2-schedule/src/index.js","./node_modules/@syncfusion/ej2-schedule/src/recurrence-editor/date-generator.js","./node_modules/@syncfusion/ej2-schedule/src/recurrence-editor/index.js","./node_modules/@syncfusion/ej2-schedule/src/recurrence-editor/recurrence-editor.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/action-base.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/crud.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/data.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/drag.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/keyboard.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/resize.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/scroll.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/touch.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/virtual-scroll.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/actions/work-cells.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/base/constant.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/base/css-constant.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/base/resource.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/base/schedule.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/base/util.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/agenda-base.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/event-base.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/inline-edit.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/month.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/timeline-view.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/vertical-view.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/event-renderer/year.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/exports/calendar-export.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/exports/calendar-import.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/exports/excel-export.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/exports/index.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/exports/print.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/index.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/event-settings.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/field-options.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/fields.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/group.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/header-rows.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/quick-info-templates.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/resources.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/time-scale.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/models/work-hours.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/popups/event-tooltip.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/popups/event-window.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/popups/form-validator.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/popups/quick-popups.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/agenda.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/day.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/header-renderer.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/month-agenda.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/month.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/renderer.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-header-row.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-month.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-view.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/timeline-year.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/vertical-view.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/view-base.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/week.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/work-week.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/renderer/year.js","./node_modules/@syncfusion/ej2-schedule/src/schedule/timezone/timezone.js","./node_modules/@syncfusion/ej2-splitbuttons/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/button-group/button-group.js","./node_modules/@syncfusion/ej2-splitbuttons/src/button-group/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/common/common.js","./node_modules/@syncfusion/ej2-splitbuttons/src/common/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/drop-down-button.js","./node_modules/@syncfusion/ej2-splitbuttons/src/drop-down-button/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/progress-button/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/progress-button/progress-button.js","./node_modules/@syncfusion/ej2-splitbuttons/src/split-button/index.js","./node_modules/@syncfusion/ej2-splitbuttons/src/split-button/split-button.js","./node_modules/abp-ng2-module/__ivy_ngcc__/fesm5/abp-ng2-module.js","./node_modules/angular-calendar-year-view/__ivy_ngcc__/fesm5/angular-calendar-year-view.js","./node_modules/angular-calendar/__ivy_ngcc__/fesm5/angular-calendar.js","./node_modules/angular-calendar/date-adapters/date-fns/index.js","./node_modules/angular-draggable-droppable/__ivy_ngcc__/fesm5/angular-draggable-droppable.js","./node_modules/angular-gridster2/__ivy_ngcc__/fesm5/angular-gridster2.js","./node_modules/angular-resizable-element/__ivy_ngcc__/fesm5/angular-resizable-element.js","./node_modules/angular2-counto/__ivy_ngcc__/index.js","./node_modules/angular2-counto/__ivy_ngcc__/src/counto.directive.js","./node_modules/angular2-counto/__ivy_ngcc__/src/counto.module.js","./node_modules/angular2-text-mask/__ivy_ngcc__/dist/angular2TextMask.js","./node_modules/array-from/index.js","./node_modules/array-from/polyfill.js","./node_modules/calendar-utils/calendar-utils.js","./node_modules/calendar-utils/date-adapters/date-fns/index.js","./node_modules/create-point-cb/dist/bundle.js","./node_modules/d3-array/src/array.js","./node_modules/d3-array/src/ascending.js","./node_modules/d3-array/src/bin.js","./node_modules/d3-array/src/bisect.js","./node_modules/d3-array/src/bisector.js","./node_modules/d3-array/src/constant.js","./node_modules/d3-array/src/count.js","./node_modules/d3-array/src/cross.js","./node_modules/d3-array/src/cumsum.js","./node_modules/d3-array/src/descending.js","./node_modules/d3-array/src/deviation.js","./node_modules/d3-array/src/extent.js","./node_modules/d3-array/src/greatest.js","./node_modules/d3-array/src/greatestIndex.js","./node_modules/d3-array/src/group.js","./node_modules/d3-array/src/identity.js","./node_modules/d3-array/src/index.js","./node_modules/d3-array/src/least.js","./node_modules/d3-array/src/leastIndex.js","./node_modules/d3-array/src/max.js","./node_modules/d3-array/src/maxIndex.js","./node_modules/d3-array/src/mean.js","./node_modules/d3-array/src/median.js","./node_modules/d3-array/src/merge.js","./node_modules/d3-array/src/min.js","./node_modules/d3-array/src/minIndex.js","./node_modules/d3-array/src/number.js","./node_modules/d3-array/src/pairs.js","./node_modules/d3-array/src/permute.js","./node_modules/d3-array/src/quantile.js","./node_modules/d3-array/src/quickselect.js","./node_modules/d3-array/src/range.js","./node_modules/d3-array/src/scan.js","./node_modules/d3-array/src/shuffle.js","./node_modules/d3-array/src/sum.js","./node_modules/d3-array/src/threshold/freedmanDiaconis.js","./node_modules/d3-array/src/threshold/scott.js","./node_modules/d3-array/src/threshold/sturges.js","./node_modules/d3-array/src/ticks.js","./node_modules/d3-array/src/transpose.js","./node_modules/d3-array/src/variance.js","./node_modules/d3-array/src/zip.js","./node_modules/d3-brush/src/brush.js","./node_modules/d3-brush/src/constant.js","./node_modules/d3-brush/src/event.js","./node_modules/d3-brush/src/index.js","./node_modules/d3-brush/src/noevent.js","./node_modules/d3-color/src/color.js","./node_modules/d3-color/src/cubehelix.js","./node_modules/d3-color/src/define.js","./node_modules/d3-color/src/index.js","./node_modules/d3-color/src/lab.js","./node_modules/d3-color/src/math.js","./node_modules/d3-dispatch/src/dispatch.js","./node_modules/d3-dispatch/src/index.js","./node_modules/d3-drag/src/constant.js","./node_modules/d3-drag/src/drag.js","./node_modules/d3-drag/src/event.js","./node_modules/d3-drag/src/index.js","./node_modules/d3-drag/src/nodrag.js","./node_modules/d3-drag/src/noevent.js","./node_modules/d3-ease/src/back.js","./node_modules/d3-ease/src/bounce.js","./node_modules/d3-ease/src/circle.js","./node_modules/d3-ease/src/cubic.js","./node_modules/d3-ease/src/elastic.js","./node_modules/d3-ease/src/exp.js","./node_modules/d3-ease/src/index.js","./node_modules/d3-ease/src/linear.js","./node_modules/d3-ease/src/poly.js","./node_modules/d3-ease/src/quad.js","./node_modules/d3-ease/src/sin.js","./node_modules/d3-format/src/defaultLocale.js","./node_modules/d3-format/src/exponent.js","./node_modules/d3-format/src/formatDecimal.js","./node_modules/d3-format/src/formatGroup.js","./node_modules/d3-format/src/formatNumerals.js","./node_modules/d3-format/src/formatPrefixAuto.js","./node_modules/d3-format/src/formatRounded.js","./node_modules/d3-format/src/formatSpecifier.js","./node_modules/d3-format/src/formatTrim.js","./node_modules/d3-format/src/formatTypes.js","./node_modules/d3-format/src/identity.js","./node_modules/d3-format/src/index.js","./node_modules/d3-format/src/locale.js","./node_modules/d3-format/src/precisionFixed.js","./node_modules/d3-format/src/precisionPrefix.js","./node_modules/d3-format/src/precisionRound.js","./node_modules/d3-hierarchy/src/accessors.js","./node_modules/d3-hierarchy/src/array.js","./node_modules/d3-hierarchy/src/cluster.js","./node_modules/d3-hierarchy/src/constant.js","./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","./node_modules/d3-hierarchy/src/hierarchy/count.js","./node_modules/d3-hierarchy/src/hierarchy/descendants.js","./node_modules/d3-hierarchy/src/hierarchy/each.js","./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","./node_modules/d3-hierarchy/src/hierarchy/index.js","./node_modules/d3-hierarchy/src/hierarchy/leaves.js","./node_modules/d3-hierarchy/src/hierarchy/links.js","./node_modules/d3-hierarchy/src/hierarchy/path.js","./node_modules/d3-hierarchy/src/hierarchy/sort.js","./node_modules/d3-hierarchy/src/hierarchy/sum.js","./node_modules/d3-hierarchy/src/index.js","./node_modules/d3-hierarchy/src/pack/enclose.js","./node_modules/d3-hierarchy/src/pack/index.js","./node_modules/d3-hierarchy/src/pack/siblings.js","./node_modules/d3-hierarchy/src/partition.js","./node_modules/d3-hierarchy/src/stratify.js","./node_modules/d3-hierarchy/src/tree.js","./node_modules/d3-hierarchy/src/treemap/binary.js","./node_modules/d3-hierarchy/src/treemap/dice.js","./node_modules/d3-hierarchy/src/treemap/index.js","./node_modules/d3-hierarchy/src/treemap/resquarify.js","./node_modules/d3-hierarchy/src/treemap/round.js","./node_modules/d3-hierarchy/src/treemap/slice.js","./node_modules/d3-hierarchy/src/treemap/sliceDice.js","./node_modules/d3-hierarchy/src/treemap/squarify.js","./node_modules/d3-interpolate/src/array.js","./node_modules/d3-interpolate/src/basis.js","./node_modules/d3-interpolate/src/basisClosed.js","./node_modules/d3-interpolate/src/color.js","./node_modules/d3-interpolate/src/constant.js","./node_modules/d3-interpolate/src/cubehelix.js","./node_modules/d3-interpolate/src/date.js","./node_modules/d3-interpolate/src/discrete.js","./node_modules/d3-interpolate/src/hcl.js","./node_modules/d3-interpolate/src/hsl.js","./node_modules/d3-interpolate/src/hue.js","./node_modules/d3-interpolate/src/index.js","./node_modules/d3-interpolate/src/lab.js","./node_modules/d3-interpolate/src/number.js","./node_modules/d3-interpolate/src/numberArray.js","./node_modules/d3-interpolate/src/object.js","./node_modules/d3-interpolate/src/piecewise.js","./node_modules/d3-interpolate/src/quantize.js","./node_modules/d3-interpolate/src/rgb.js","./node_modules/d3-interpolate/src/round.js","./node_modules/d3-interpolate/src/string.js","./node_modules/d3-interpolate/src/transform/decompose.js","./node_modules/d3-interpolate/src/transform/index.js","./node_modules/d3-interpolate/src/transform/parse.js","./node_modules/d3-interpolate/src/value.js","./node_modules/d3-interpolate/src/zoom.js","./node_modules/d3-path/src/index.js","./node_modules/d3-path/src/path.js","./node_modules/d3-scale/src/band.js","./node_modules/d3-scale/src/constant.js","./node_modules/d3-scale/src/continuous.js","./node_modules/d3-scale/src/diverging.js","./node_modules/d3-scale/src/identity.js","./node_modules/d3-scale/src/index.js","./node_modules/d3-scale/src/init.js","./node_modules/d3-scale/src/linear.js","./node_modules/d3-scale/src/log.js","./node_modules/d3-scale/src/nice.js","./node_modules/d3-scale/src/number.js","./node_modules/d3-scale/src/ordinal.js","./node_modules/d3-scale/src/pow.js","./node_modules/d3-scale/src/quantile.js","./node_modules/d3-scale/src/quantize.js","./node_modules/d3-scale/src/radial.js","./node_modules/d3-scale/src/sequential.js","./node_modules/d3-scale/src/sequentialQuantile.js","./node_modules/d3-scale/src/symlog.js","./node_modules/d3-scale/src/threshold.js","./node_modules/d3-scale/src/tickFormat.js","./node_modules/d3-scale/src/time.js","./node_modules/d3-scale/src/utcTime.js","./node_modules/d3-selection/src/constant.js","./node_modules/d3-selection/src/create.js","./node_modules/d3-selection/src/creator.js","./node_modules/d3-selection/src/index.js","./node_modules/d3-selection/src/local.js","./node_modules/d3-selection/src/matcher.js","./node_modules/d3-selection/src/mouse.js","./node_modules/d3-selection/src/namespace.js","./node_modules/d3-selection/src/namespaces.js","./node_modules/d3-selection/src/point.js","./node_modules/d3-selection/src/select.js","./node_modules/d3-selection/src/selectAll.js","./node_modules/d3-selection/src/selection/append.js","./node_modules/d3-selection/src/selection/attr.js","./node_modules/d3-selection/src/selection/call.js","./node_modules/d3-selection/src/selection/classed.js","./node_modules/d3-selection/src/selection/clone.js","./node_modules/d3-selection/src/selection/data.js","./node_modules/d3-selection/src/selection/datum.js","./node_modules/d3-selection/src/selection/dispatch.js","./node_modules/d3-selection/src/selection/each.js","./node_modules/d3-selection/src/selection/empty.js","./node_modules/d3-selection/src/selection/enter.js","./node_modules/d3-selection/src/selection/exit.js","./node_modules/d3-selection/src/selection/filter.js","./node_modules/d3-selection/src/selection/html.js","./node_modules/d3-selection/src/selection/index.js","./node_modules/d3-selection/src/selection/insert.js","./node_modules/d3-selection/src/selection/join.js","./node_modules/d3-selection/src/selection/lower.js","./node_modules/d3-selection/src/selection/merge.js","./node_modules/d3-selection/src/selection/node.js","./node_modules/d3-selection/src/selection/nodes.js","./node_modules/d3-selection/src/selection/on.js","./node_modules/d3-selection/src/selection/order.js","./node_modules/d3-selection/src/selection/property.js","./node_modules/d3-selection/src/selection/raise.js","./node_modules/d3-selection/src/selection/remove.js","./node_modules/d3-selection/src/selection/select.js","./node_modules/d3-selection/src/selection/selectAll.js","./node_modules/d3-selection/src/selection/size.js","./node_modules/d3-selection/src/selection/sort.js","./node_modules/d3-selection/src/selection/sparse.js","./node_modules/d3-selection/src/selection/style.js","./node_modules/d3-selection/src/selection/text.js","./node_modules/d3-selection/src/selector.js","./node_modules/d3-selection/src/selectorAll.js","./node_modules/d3-selection/src/sourceEvent.js","./node_modules/d3-selection/src/touch.js","./node_modules/d3-selection/src/touches.js","./node_modules/d3-selection/src/window.js","./node_modules/d3-shape/src/arc.js","./node_modules/d3-shape/src/area.js","./node_modules/d3-shape/src/areaRadial.js","./node_modules/d3-shape/src/array.js","./node_modules/d3-shape/src/constant.js","./node_modules/d3-shape/src/curve/basis.js","./node_modules/d3-shape/src/curve/basisClosed.js","./node_modules/d3-shape/src/curve/basisOpen.js","./node_modules/d3-shape/src/curve/bundle.js","./node_modules/d3-shape/src/curve/cardinal.js","./node_modules/d3-shape/src/curve/cardinalClosed.js","./node_modules/d3-shape/src/curve/cardinalOpen.js","./node_modules/d3-shape/src/curve/catmullRom.js","./node_modules/d3-shape/src/curve/catmullRomClosed.js","./node_modules/d3-shape/src/curve/catmullRomOpen.js","./node_modules/d3-shape/src/curve/linear.js","./node_modules/d3-shape/src/curve/linearClosed.js","./node_modules/d3-shape/src/curve/monotone.js","./node_modules/d3-shape/src/curve/natural.js","./node_modules/d3-shape/src/curve/radial.js","./node_modules/d3-shape/src/curve/step.js","./node_modules/d3-shape/src/descending.js","./node_modules/d3-shape/src/identity.js","./node_modules/d3-shape/src/index.js","./node_modules/d3-shape/src/line.js","./node_modules/d3-shape/src/lineRadial.js","./node_modules/d3-shape/src/link/index.js","./node_modules/d3-shape/src/math.js","./node_modules/d3-shape/src/noop.js","./node_modules/d3-shape/src/offset/diverging.js","./node_modules/d3-shape/src/offset/expand.js","./node_modules/d3-shape/src/offset/none.js","./node_modules/d3-shape/src/offset/silhouette.js","./node_modules/d3-shape/src/offset/wiggle.js","./node_modules/d3-shape/src/order/appearance.js","./node_modules/d3-shape/src/order/ascending.js","./node_modules/d3-shape/src/order/descending.js","./node_modules/d3-shape/src/order/insideOut.js","./node_modules/d3-shape/src/order/none.js","./node_modules/d3-shape/src/order/reverse.js","./node_modules/d3-shape/src/pie.js","./node_modules/d3-shape/src/point.js","./node_modules/d3-shape/src/pointRadial.js","./node_modules/d3-shape/src/stack.js","./node_modules/d3-shape/src/symbol.js","./node_modules/d3-shape/src/symbol/circle.js","./node_modules/d3-shape/src/symbol/cross.js","./node_modules/d3-shape/src/symbol/diamond.js","./node_modules/d3-shape/src/symbol/square.js","./node_modules/d3-shape/src/symbol/star.js","./node_modules/d3-shape/src/symbol/triangle.js","./node_modules/d3-shape/src/symbol/wye.js","./node_modules/d3-time-format/src/defaultLocale.js","./node_modules/d3-time-format/src/index.js","./node_modules/d3-time-format/src/isoFormat.js","./node_modules/d3-time-format/src/isoParse.js","./node_modules/d3-time-format/src/locale.js","./node_modules/d3-time/src/day.js","./node_modules/d3-time/src/duration.js","./node_modules/d3-time/src/hour.js","./node_modules/d3-time/src/index.js","./node_modules/d3-time/src/interval.js","./node_modules/d3-time/src/millisecond.js","./node_modules/d3-time/src/minute.js","./node_modules/d3-time/src/month.js","./node_modules/d3-time/src/second.js","./node_modules/d3-time/src/utcDay.js","./node_modules/d3-time/src/utcHour.js","./node_modules/d3-time/src/utcMinute.js","./node_modules/d3-time/src/utcMonth.js","./node_modules/d3-time/src/utcWeek.js","./node_modules/d3-time/src/utcYear.js","./node_modules/d3-time/src/week.js","./node_modules/d3-time/src/year.js","./node_modules/d3-timer/src/index.js","./node_modules/d3-timer/src/interval.js","./node_modules/d3-timer/src/timeout.js","./node_modules/d3-timer/src/timer.js","./node_modules/d3-transition/src/active.js","./node_modules/d3-transition/src/index.js","./node_modules/d3-transition/src/interrupt.js","./node_modules/d3-transition/src/selection/index.js","./node_modules/d3-transition/src/selection/interrupt.js","./node_modules/d3-transition/src/selection/transition.js","./node_modules/d3-transition/src/transition/attr.js","./node_modules/d3-transition/src/transition/attrTween.js","./node_modules/d3-transition/src/transition/delay.js","./node_modules/d3-transition/src/transition/duration.js","./node_modules/d3-transition/src/transition/ease.js","./node_modules/d3-transition/src/transition/end.js","./node_modules/d3-transition/src/transition/filter.js","./node_modules/d3-transition/src/transition/index.js","./node_modules/d3-transition/src/transition/interpolate.js","./node_modules/d3-transition/src/transition/merge.js","./node_modules/d3-transition/src/transition/on.js","./node_modules/d3-transition/src/transition/remove.js","./node_modules/d3-transition/src/transition/schedule.js","./node_modules/d3-transition/src/transition/select.js","./node_modules/d3-transition/src/transition/selectAll.js","./node_modules/d3-transition/src/transition/selection.js","./node_modules/d3-transition/src/transition/style.js","./node_modules/d3-transition/src/transition/styleTween.js","./node_modules/d3-transition/src/transition/text.js","./node_modules/d3-transition/src/transition/textTween.js","./node_modules/d3-transition/src/transition/transition.js","./node_modules/d3-transition/src/transition/tween.js","./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","./node_modules/date-fns/esm/_lib/assign/index.js","./node_modules/date-fns/esm/_lib/cloneObject/index.js","./node_modules/date-fns/esm/_lib/format/formatters/index.js","./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/protectedTokens/index.js","./node_modules/date-fns/esm/_lib/requiredArgs/index.js","./node_modules/date-fns/esm/_lib/setUTCDay/index.js","./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","./node_modules/date-fns/esm/_lib/toInteger/index.js","./node_modules/date-fns/esm/add/index.js","./node_modules/date-fns/esm/addBusinessDays/index.js","./node_modules/date-fns/esm/addDays/index.js","./node_modules/date-fns/esm/addHours/index.js","./node_modules/date-fns/esm/addISOWeekYears/index.js","./node_modules/date-fns/esm/addMilliseconds/index.js","./node_modules/date-fns/esm/addMinutes/index.js","./node_modules/date-fns/esm/addMonths/index.js","./node_modules/date-fns/esm/addQuarters/index.js","./node_modules/date-fns/esm/addSeconds/index.js","./node_modules/date-fns/esm/addWeeks/index.js","./node_modules/date-fns/esm/addYears/index.js","./node_modules/date-fns/esm/areIntervalsOverlapping/index.js","./node_modules/date-fns/esm/closestIndexTo/index.js","./node_modules/date-fns/esm/closestTo/index.js","./node_modules/date-fns/esm/compareAsc/index.js","./node_modules/date-fns/esm/compareDesc/index.js","./node_modules/date-fns/esm/constants/index.js","./node_modules/date-fns/esm/differenceInBusinessDays/index.js","./node_modules/date-fns/esm/differenceInCalendarDays/index.js","./node_modules/date-fns/esm/differenceInCalendarISOWeekYears/index.js","./node_modules/date-fns/esm/differenceInCalendarISOWeeks/index.js","./node_modules/date-fns/esm/differenceInCalendarMonths/index.js","./node_modules/date-fns/esm/differenceInCalendarQuarters/index.js","./node_modules/date-fns/esm/differenceInCalendarWeeks/index.js","./node_modules/date-fns/esm/differenceInCalendarYears/index.js","./node_modules/date-fns/esm/differenceInDays/index.js","./node_modules/date-fns/esm/differenceInHours/index.js","./node_modules/date-fns/esm/differenceInISOWeekYears/index.js","./node_modules/date-fns/esm/differenceInMilliseconds/index.js","./node_modules/date-fns/esm/differenceInMinutes/index.js","./node_modules/date-fns/esm/differenceInMonths/index.js","./node_modules/date-fns/esm/differenceInQuarters/index.js","./node_modules/date-fns/esm/differenceInSeconds/index.js","./node_modules/date-fns/esm/differenceInWeeks/index.js","./node_modules/date-fns/esm/differenceInYears/index.js","./node_modules/date-fns/esm/eachDayOfInterval/index.js","./node_modules/date-fns/esm/eachMonthOfInterval/index.js","./node_modules/date-fns/esm/eachWeekOfInterval/index.js","./node_modules/date-fns/esm/eachWeekendOfInterval/index.js","./node_modules/date-fns/esm/eachWeekendOfMonth/index.js","./node_modules/date-fns/esm/eachWeekendOfYear/index.js","./node_modules/date-fns/esm/eachYearOfInterval/index.js","./node_modules/date-fns/esm/endOfDay/index.js","./node_modules/date-fns/esm/endOfDecade/index.js","./node_modules/date-fns/esm/endOfHour/index.js","./node_modules/date-fns/esm/endOfISOWeek/index.js","./node_modules/date-fns/esm/endOfISOWeekYear/index.js","./node_modules/date-fns/esm/endOfMinute/index.js","./node_modules/date-fns/esm/endOfMonth/index.js","./node_modules/date-fns/esm/endOfQuarter/index.js","./node_modules/date-fns/esm/endOfSecond/index.js","./node_modules/date-fns/esm/endOfToday/index.js","./node_modules/date-fns/esm/endOfTomorrow/index.js","./node_modules/date-fns/esm/endOfWeek/index.js","./node_modules/date-fns/esm/endOfYear/index.js","./node_modules/date-fns/esm/endOfYesterday/index.js","./node_modules/date-fns/esm/format/index.js","./node_modules/date-fns/esm/formatDistance/index.js","./node_modules/date-fns/esm/formatDistanceStrict/index.js","./node_modules/date-fns/esm/formatDistanceToNow/index.js","./node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","./node_modules/date-fns/esm/formatISO/index.js","./node_modules/date-fns/esm/formatISO9075/index.js","./node_modules/date-fns/esm/formatRFC3339/index.js","./node_modules/date-fns/esm/formatRFC7231/index.js","./node_modules/date-fns/esm/formatRelative/index.js","./node_modules/date-fns/esm/fromUnixTime/index.js","./node_modules/date-fns/esm/getDate/index.js","./node_modules/date-fns/esm/getDay/index.js","./node_modules/date-fns/esm/getDayOfYear/index.js","./node_modules/date-fns/esm/getDaysInMonth/index.js","./node_modules/date-fns/esm/getDaysInYear/index.js","./node_modules/date-fns/esm/getDecade/index.js","./node_modules/date-fns/esm/getHours/index.js","./node_modules/date-fns/esm/getISODay/index.js","./node_modules/date-fns/esm/getISOWeek/index.js","./node_modules/date-fns/esm/getISOWeekYear/index.js","./node_modules/date-fns/esm/getISOWeeksInYear/index.js","./node_modules/date-fns/esm/getMilliseconds/index.js","./node_modules/date-fns/esm/getMinutes/index.js","./node_modules/date-fns/esm/getMonth/index.js","./node_modules/date-fns/esm/getOverlappingDaysInIntervals/index.js","./node_modules/date-fns/esm/getQuarter/index.js","./node_modules/date-fns/esm/getSeconds/index.js","./node_modules/date-fns/esm/getTime/index.js","./node_modules/date-fns/esm/getUnixTime/index.js","./node_modules/date-fns/esm/getWeek/index.js","./node_modules/date-fns/esm/getWeekOfMonth/index.js","./node_modules/date-fns/esm/getWeekYear/index.js","./node_modules/date-fns/esm/getWeeksInMonth/index.js","./node_modules/date-fns/esm/getYear/index.js","./node_modules/date-fns/esm/index.js","./node_modules/date-fns/esm/isAfter/index.js","./node_modules/date-fns/esm/isBefore/index.js","./node_modules/date-fns/esm/isDate/index.js","./node_modules/date-fns/esm/isEqual/index.js","./node_modules/date-fns/esm/isExists/index.js","./node_modules/date-fns/esm/isFirstDayOfMonth/index.js","./node_modules/date-fns/esm/isFriday/index.js","./node_modules/date-fns/esm/isFuture/index.js","./node_modules/date-fns/esm/isLastDayOfMonth/index.js","./node_modules/date-fns/esm/isLeapYear/index.js","./node_modules/date-fns/esm/isMonday/index.js","./node_modules/date-fns/esm/isPast/index.js","./node_modules/date-fns/esm/isSameDay/index.js","./node_modules/date-fns/esm/isSameHour/index.js","./node_modules/date-fns/esm/isSameISOWeek/index.js","./node_modules/date-fns/esm/isSameISOWeekYear/index.js","./node_modules/date-fns/esm/isSameMinute/index.js","./node_modules/date-fns/esm/isSameMonth/index.js","./node_modules/date-fns/esm/isSameQuarter/index.js","./node_modules/date-fns/esm/isSameSecond/index.js","./node_modules/date-fns/esm/isSameWeek/index.js","./node_modules/date-fns/esm/isSameYear/index.js","./node_modules/date-fns/esm/isSaturday/index.js","./node_modules/date-fns/esm/isSunday/index.js","./node_modules/date-fns/esm/isThisHour/index.js","./node_modules/date-fns/esm/isThisISOWeek/index.js","./node_modules/date-fns/esm/isThisMinute/index.js","./node_modules/date-fns/esm/isThisMonth/index.js","./node_modules/date-fns/esm/isThisQuarter/index.js","./node_modules/date-fns/esm/isThisSecond/index.js","./node_modules/date-fns/esm/isThisWeek/index.js","./node_modules/date-fns/esm/isThisYear/index.js","./node_modules/date-fns/esm/isThursday/index.js","./node_modules/date-fns/esm/isToday/index.js","./node_modules/date-fns/esm/isTomorrow/index.js","./node_modules/date-fns/esm/isTuesday/index.js","./node_modules/date-fns/esm/isValid/index.js","./node_modules/date-fns/esm/isWednesday/index.js","./node_modules/date-fns/esm/isWeekend/index.js","./node_modules/date-fns/esm/isWithinInterval/index.js","./node_modules/date-fns/esm/isYesterday/index.js","./node_modules/date-fns/esm/lastDayOfDecade/index.js","./node_modules/date-fns/esm/lastDayOfISOWeek/index.js","./node_modules/date-fns/esm/lastDayOfISOWeekYear/index.js","./node_modules/date-fns/esm/lastDayOfMonth/index.js","./node_modules/date-fns/esm/lastDayOfQuarter/index.js","./node_modules/date-fns/esm/lastDayOfWeek/index.js","./node_modules/date-fns/esm/lastDayOfYear/index.js","./node_modules/date-fns/esm/lightFormat/index.js","./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","./node_modules/date-fns/esm/locale/en-US/index.js","./node_modules/date-fns/esm/max/index.js","./node_modules/date-fns/esm/min/index.js","./node_modules/date-fns/esm/parse/_lib/parsers/index.js","./node_modules/date-fns/esm/parse/index.js","./node_modules/date-fns/esm/parseISO/index.js","./node_modules/date-fns/esm/parseJSON/index.js","./node_modules/date-fns/esm/roundToNearestMinutes/index.js","./node_modules/date-fns/esm/set/index.js","./node_modules/date-fns/esm/setDate/index.js","./node_modules/date-fns/esm/setDay/index.js","./node_modules/date-fns/esm/setDayOfYear/index.js","./node_modules/date-fns/esm/setHours/index.js","./node_modules/date-fns/esm/setISODay/index.js","./node_modules/date-fns/esm/setISOWeek/index.js","./node_modules/date-fns/esm/setISOWeekYear/index.js","./node_modules/date-fns/esm/setMilliseconds/index.js","./node_modules/date-fns/esm/setMinutes/index.js","./node_modules/date-fns/esm/setMonth/index.js","./node_modules/date-fns/esm/setQuarter/index.js","./node_modules/date-fns/esm/setSeconds/index.js","./node_modules/date-fns/esm/setWeek/index.js","./node_modules/date-fns/esm/setWeekYear/index.js","./node_modules/date-fns/esm/setYear/index.js","./node_modules/date-fns/esm/startOfDay/index.js","./node_modules/date-fns/esm/startOfDecade/index.js","./node_modules/date-fns/esm/startOfHour/index.js","./node_modules/date-fns/esm/startOfISOWeek/index.js","./node_modules/date-fns/esm/startOfISOWeekYear/index.js","./node_modules/date-fns/esm/startOfMinute/index.js","./node_modules/date-fns/esm/startOfMonth/index.js","./node_modules/date-fns/esm/startOfQuarter/index.js","./node_modules/date-fns/esm/startOfSecond/index.js","./node_modules/date-fns/esm/startOfToday/index.js","./node_modules/date-fns/esm/startOfTomorrow/index.js","./node_modules/date-fns/esm/startOfWeek/index.js","./node_modules/date-fns/esm/startOfWeekYear/index.js","./node_modules/date-fns/esm/startOfYear/index.js","./node_modules/date-fns/esm/startOfYesterday/index.js","./node_modules/date-fns/esm/sub/index.js","./node_modules/date-fns/esm/subBusinessDays/index.js","./node_modules/date-fns/esm/subDays/index.js","./node_modules/date-fns/esm/subHours/index.js","./node_modules/date-fns/esm/subISOWeekYears/index.js","./node_modules/date-fns/esm/subMilliseconds/index.js","./node_modules/date-fns/esm/subMinutes/index.js","./node_modules/date-fns/esm/subMonths/index.js","./node_modules/date-fns/esm/subQuarters/index.js","./node_modules/date-fns/esm/subSeconds/index.js","./node_modules/date-fns/esm/subWeeks/index.js","./node_modules/date-fns/esm/subYears/index.js","./node_modules/date-fns/esm/toDate/index.js","./node_modules/dom-mousemove-dispatcher/dist/bundle.js","./node_modules/dom-plane/dist/bundle.js","./node_modules/dom-set/dist/bundle.js","./node_modules/is-array/index.js","./node_modules/is-retina/index.js","./node_modules/iselement/module/index.js","./node_modules/just-compare/index.js","./node_modules/localforage/dist/localforage.js","./node_modules/lodash/_DataView.js","./node_modules/lodash/_Hash.js","./node_modules/lodash/_ListCache.js","./node_modules/lodash/_Map.js","./node_modules/lodash/_MapCache.js","./node_modules/lodash/_Promise.js","./node_modules/lodash/_Set.js","./node_modules/lodash/_Stack.js","./node_modules/lodash/_Symbol.js","./node_modules/lodash/_Uint8Array.js","./node_modules/lodash/_WeakMap.js","./node_modules/lodash/_arrayEach.js","./node_modules/lodash/_arrayFilter.js","./node_modules/lodash/_arrayLikeKeys.js","./node_modules/lodash/_arrayPush.js","./node_modules/lodash/_assignValue.js","./node_modules/lodash/_assocIndexOf.js","./node_modules/lodash/_baseAssign.js","./node_modules/lodash/_baseAssignIn.js","./node_modules/lodash/_baseAssignValue.js","./node_modules/lodash/_baseClone.js","./node_modules/lodash/_baseCreate.js","./node_modules/lodash/_baseGetAllKeys.js","./node_modules/lodash/_baseGetTag.js","./node_modules/lodash/_baseIsArguments.js","./node_modules/lodash/_baseIsMap.js","./node_modules/lodash/_baseIsNative.js","./node_modules/lodash/_baseIsSet.js","./node_modules/lodash/_baseIsTypedArray.js","./node_modules/lodash/_baseKeys.js","./node_modules/lodash/_baseKeysIn.js","./node_modules/lodash/_baseTimes.js","./node_modules/lodash/_baseUnary.js","./node_modules/lodash/_cloneArrayBuffer.js","./node_modules/lodash/_cloneBuffer.js","./node_modules/lodash/_cloneDataView.js","./node_modules/lodash/_cloneRegExp.js","./node_modules/lodash/_cloneSymbol.js","./node_modules/lodash/_cloneTypedArray.js","./node_modules/lodash/_copyArray.js","./node_modules/lodash/_copyObject.js","./node_modules/lodash/_copySymbols.js","./node_modules/lodash/_copySymbolsIn.js","./node_modules/lodash/_coreJsData.js","./node_modules/lodash/_defineProperty.js","./node_modules/lodash/_freeGlobal.js","./node_modules/lodash/_getAllKeys.js","./node_modules/lodash/_getAllKeysIn.js","./node_modules/lodash/_getMapData.js","./node_modules/lodash/_getNative.js","./node_modules/lodash/_getPrototype.js","./node_modules/lodash/_getRawTag.js","./node_modules/lodash/_getSymbols.js","./node_modules/lodash/_getSymbolsIn.js","./node_modules/lodash/_getTag.js","./node_modules/lodash/_getValue.js","./node_modules/lodash/_hashClear.js","./node_modules/lodash/_hashDelete.js","./node_modules/lodash/_hashGet.js","./node_modules/lodash/_hashHas.js","./node_modules/lodash/_hashSet.js","./node_modules/lodash/_initCloneArray.js","./node_modules/lodash/_initCloneByTag.js","./node_modules/lodash/_initCloneObject.js","./node_modules/lodash/_isIndex.js","./node_modules/lodash/_isKeyable.js","./node_modules/lodash/_isMasked.js","./node_modules/lodash/_isPrototype.js","./node_modules/lodash/_listCacheClear.js","./node_modules/lodash/_listCacheDelete.js","./node_modules/lodash/_listCacheGet.js","./node_modules/lodash/_listCacheHas.js","./node_modules/lodash/_listCacheSet.js","./node_modules/lodash/_mapCacheClear.js","./node_modules/lodash/_mapCacheDelete.js","./node_modules/lodash/_mapCacheGet.js","./node_modules/lodash/_mapCacheHas.js","./node_modules/lodash/_mapCacheSet.js","./node_modules/lodash/_nativeCreate.js","./node_modules/lodash/_nativeKeys.js","./node_modules/lodash/_nativeKeysIn.js","./node_modules/lodash/_nodeUtil.js","./node_modules/lodash/_objectToString.js","./node_modules/lodash/_overArg.js","./node_modules/lodash/_root.js","./node_modules/lodash/_stackClear.js","./node_modules/lodash/_stackDelete.js","./node_modules/lodash/_stackGet.js","./node_modules/lodash/_stackHas.js","./node_modules/lodash/_stackSet.js","./node_modules/lodash/_toSource.js","./node_modules/lodash/cloneDeep.js","./node_modules/lodash/eq.js","./node_modules/lodash/isArguments.js","./node_modules/lodash/isArray.js","./node_modules/lodash/isArrayLike.js","./node_modules/lodash/isBuffer.js","./node_modules/lodash/isFunction.js","./node_modules/lodash/isLength.js","./node_modules/lodash/isMap.js","./node_modules/lodash/isObject.js","./node_modules/lodash/isObjectLike.js","./node_modules/lodash/isSet.js","./node_modules/lodash/isTypedArray.js","./node_modules/lodash/keys.js","./node_modules/lodash/keysIn.js","./node_modules/lodash/lodash.js","./node_modules/lodash/stubArray.js","./node_modules/lodash/stubFalse.js","./node_modules/moment-timezone/index.js","./node_modules/moment-timezone/moment-timezone.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-SG.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/min/locales.min.js","./node_modules/moment/moment.js","./node_modules/ng2-file-upload/__ivy_ngcc__/fesm5/ng2-file-upload.js","./node_modules/ngx-avatar/__ivy_ngcc__/fesm5/ngx-avatar.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/chronos/fesm5/ngx-bootstrap-chronos.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/component-loader/fesm5/ngx-bootstrap-component-loader.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/datepicker/fesm5/ngx-bootstrap-datepicker.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/dropdown/fesm5/ngx-bootstrap-dropdown.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/modal/fesm5/ngx-bootstrap-modal.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/popover/fesm5/ngx-bootstrap-popover.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/positioning/fesm5/ngx-bootstrap-positioning.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/tabs/fesm5/ngx-bootstrap-tabs.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/timepicker/fesm5/ngx-bootstrap-timepicker.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/tooltip/fesm5/ngx-bootstrap-tooltip.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/utils/fesm5/ngx-bootstrap-utils.js","./node_modules/ngx-image-cropper/__ivy_ngcc__/fesm5/ngx-image-cropper.js","./node_modules/ngx-perfect-scrollbar/__ivy_ngcc__/fesm5/ngx-perfect-scrollbar.js","./node_modules/ngx-spinner/__ivy_ngcc__/fesm5/ngx-spinner.js","./node_modules/object-path/index.js","./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","./node_modules/positioning/dist/entry.js","./node_modules/positioning/dist/positioning.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-api.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-autocomplete.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-button.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-dom.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-dropdown.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-fileupload.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-inputtext.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-messages.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-paginator.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-progressbar.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-table.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-tooltip.js","./node_modules/primeng/__ivy_ngcc__/fesm5/primeng-utils.js","./node_modules/push.js/bin/push.min.js","./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","./node_modules/rtl-detect/index.js","./node_modules/rtl-detect/lib/rtl-detect.js","./node_modules/rxjs/_esm5/index.js","./node_modules/rxjs/_esm5/internal/AsyncSubject.js","./node_modules/rxjs/_esm5/internal/BehaviorSubject.js","./node_modules/rxjs/_esm5/internal/InnerSubscriber.js","./node_modules/rxjs/_esm5/internal/Notification.js","./node_modules/rxjs/_esm5/internal/Observable.js","./node_modules/rxjs/_esm5/internal/Observer.js","./node_modules/rxjs/_esm5/internal/OuterSubscriber.js","./node_modules/rxjs/_esm5/internal/ReplaySubject.js","./node_modules/rxjs/_esm5/internal/Scheduler.js","./node_modules/rxjs/_esm5/internal/Subject.js","./node_modules/rxjs/_esm5/internal/SubjectSubscription.js","./node_modules/rxjs/_esm5/internal/Subscriber.js","./node_modules/rxjs/_esm5/internal/Subscription.js","./node_modules/rxjs/_esm5/internal/config.js","./node_modules/rxjs/_esm5/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm5/internal/observable/SubscribeOnObservable.js","./node_modules/rxjs/_esm5/internal/observable/bindCallback.js","./node_modules/rxjs/_esm5/internal/observable/bindNodeCallback.js","./node_modules/rxjs/_esm5/internal/observable/combineLatest.js","./node_modules/rxjs/_esm5/internal/observable/concat.js","./node_modules/rxjs/_esm5/internal/observable/defer.js","./node_modules/rxjs/_esm5/internal/observable/empty.js","./node_modules/rxjs/_esm5/internal/observable/forkJoin.js","./node_modules/rxjs/_esm5/internal/observable/from.js","./node_modules/rxjs/_esm5/internal/observable/fromArray.js","./node_modules/rxjs/_esm5/internal/observable/fromEvent.js","./node_modules/rxjs/_esm5/internal/observable/fromEventPattern.js","./node_modules/rxjs/_esm5/internal/observable/generate.js","./node_modules/rxjs/_esm5/internal/observable/iif.js","./node_modules/rxjs/_esm5/internal/observable/interval.js","./node_modules/rxjs/_esm5/internal/observable/merge.js","./node_modules/rxjs/_esm5/internal/observable/never.js","./node_modules/rxjs/_esm5/internal/observable/of.js","./node_modules/rxjs/_esm5/internal/observable/onErrorResumeNext.js","./node_modules/rxjs/_esm5/internal/observable/pairs.js","./node_modules/rxjs/_esm5/internal/observable/partition.js","./node_modules/rxjs/_esm5/internal/observable/race.js","./node_modules/rxjs/_esm5/internal/observable/range.js","./node_modules/rxjs/_esm5/internal/observable/throwError.js","./node_modules/rxjs/_esm5/internal/observable/timer.js","./node_modules/rxjs/_esm5/internal/observable/using.js","./node_modules/rxjs/_esm5/internal/observable/zip.js","./node_modules/rxjs/_esm5/internal/operators/audit.js","./node_modules/rxjs/_esm5/internal/operators/auditTime.js","./node_modules/rxjs/_esm5/internal/operators/buffer.js","./node_modules/rxjs/_esm5/internal/operators/bufferCount.js","./node_modules/rxjs/_esm5/internal/operators/bufferTime.js","./node_modules/rxjs/_esm5/internal/operators/bufferToggle.js","./node_modules/rxjs/_esm5/internal/operators/bufferWhen.js","./node_modules/rxjs/_esm5/internal/operators/catchError.js","./node_modules/rxjs/_esm5/internal/operators/combineAll.js","./node_modules/rxjs/_esm5/internal/operators/combineLatest.js","./node_modules/rxjs/_esm5/internal/operators/concat.js","./node_modules/rxjs/_esm5/internal/operators/concatAll.js","./node_modules/rxjs/_esm5/internal/operators/concatMap.js","./node_modules/rxjs/_esm5/internal/operators/concatMapTo.js","./node_modules/rxjs/_esm5/internal/operators/count.js","./node_modules/rxjs/_esm5/internal/operators/debounce.js","./node_modules/rxjs/_esm5/internal/operators/debounceTime.js","./node_modules/rxjs/_esm5/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm5/internal/operators/delay.js","./node_modules/rxjs/_esm5/internal/operators/delayWhen.js","./node_modules/rxjs/_esm5/internal/operators/dematerialize.js","./node_modules/rxjs/_esm5/internal/operators/distinct.js","./node_modules/rxjs/_esm5/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm5/internal/operators/distinctUntilKeyChanged.js","./node_modules/rxjs/_esm5/internal/operators/elementAt.js","./node_modules/rxjs/_esm5/internal/operators/endWith.js","./node_modules/rxjs/_esm5/internal/operators/every.js","./node_modules/rxjs/_esm5/internal/operators/exhaust.js","./node_modules/rxjs/_esm5/internal/operators/exhaustMap.js","./node_modules/rxjs/_esm5/internal/operators/expand.js","./node_modules/rxjs/_esm5/internal/operators/filter.js","./node_modules/rxjs/_esm5/internal/operators/finalize.js","./node_modules/rxjs/_esm5/internal/operators/find.js","./node_modules/rxjs/_esm5/internal/operators/findIndex.js","./node_modules/rxjs/_esm5/internal/operators/first.js","./node_modules/rxjs/_esm5/internal/operators/groupBy.js","./node_modules/rxjs/_esm5/internal/operators/ignoreElements.js","./node_modules/rxjs/_esm5/internal/operators/isEmpty.js","./node_modules/rxjs/_esm5/internal/operators/last.js","./node_modules/rxjs/_esm5/internal/operators/map.js","./node_modules/rxjs/_esm5/internal/operators/mapTo.js","./node_modules/rxjs/_esm5/internal/operators/materialize.js","./node_modules/rxjs/_esm5/internal/operators/max.js","./node_modules/rxjs/_esm5/internal/operators/merge.js","./node_modules/rxjs/_esm5/internal/operators/mergeAll.js","./node_modules/rxjs/_esm5/internal/operators/mergeMap.js","./node_modules/rxjs/_esm5/internal/operators/mergeMapTo.js","./node_modules/rxjs/_esm5/internal/operators/mergeScan.js","./node_modules/rxjs/_esm5/internal/operators/min.js","./node_modules/rxjs/_esm5/internal/operators/multicast.js","./node_modules/rxjs/_esm5/internal/operators/observeOn.js","./node_modules/rxjs/_esm5/internal/operators/onErrorResumeNext.js","./node_modules/rxjs/_esm5/internal/operators/pairwise.js","./node_modules/rxjs/_esm5/internal/operators/partition.js","./node_modules/rxjs/_esm5/internal/operators/pluck.js","./node_modules/rxjs/_esm5/internal/operators/publish.js","./node_modules/rxjs/_esm5/internal/operators/publishBehavior.js","./node_modules/rxjs/_esm5/internal/operators/publishLast.js","./node_modules/rxjs/_esm5/internal/operators/publishReplay.js","./node_modules/rxjs/_esm5/internal/operators/race.js","./node_modules/rxjs/_esm5/internal/operators/reduce.js","./node_modules/rxjs/_esm5/internal/operators/refCount.js","./node_modules/rxjs/_esm5/internal/operators/repeat.js","./node_modules/rxjs/_esm5/internal/operators/repeatWhen.js","./node_modules/rxjs/_esm5/internal/operators/retry.js","./node_modules/rxjs/_esm5/internal/operators/retryWhen.js","./node_modules/rxjs/_esm5/internal/operators/sample.js","./node_modules/rxjs/_esm5/internal/operators/sampleTime.js","./node_modules/rxjs/_esm5/internal/operators/scan.js","./node_modules/rxjs/_esm5/internal/operators/sequenceEqual.js","./node_modules/rxjs/_esm5/internal/operators/share.js","./node_modules/rxjs/_esm5/internal/operators/shareReplay.js","./node_modules/rxjs/_esm5/internal/operators/single.js","./node_modules/rxjs/_esm5/internal/operators/skip.js","./node_modules/rxjs/_esm5/internal/operators/skipLast.js","./node_modules/rxjs/_esm5/internal/operators/skipUntil.js","./node_modules/rxjs/_esm5/internal/operators/skipWhile.js","./node_modules/rxjs/_esm5/internal/operators/startWith.js","./node_modules/rxjs/_esm5/internal/operators/subscribeOn.js","./node_modules/rxjs/_esm5/internal/operators/switchAll.js","./node_modules/rxjs/_esm5/internal/operators/switchMap.js","./node_modules/rxjs/_esm5/internal/operators/switchMapTo.js","./node_modules/rxjs/_esm5/internal/operators/take.js","./node_modules/rxjs/_esm5/internal/operators/takeLast.js","./node_modules/rxjs/_esm5/internal/operators/takeUntil.js","./node_modules/rxjs/_esm5/internal/operators/takeWhile.js","./node_modules/rxjs/_esm5/internal/operators/tap.js","./node_modules/rxjs/_esm5/internal/operators/throttle.js","./node_modules/rxjs/_esm5/internal/operators/throttleTime.js","./node_modules/rxjs/_esm5/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm5/internal/operators/timeInterval.js","./node_modules/rxjs/_esm5/internal/operators/timeout.js","./node_modules/rxjs/_esm5/internal/operators/timeoutWith.js","./node_modules/rxjs/_esm5/internal/operators/timestamp.js","./node_modules/rxjs/_esm5/internal/operators/toArray.js","./node_modules/rxjs/_esm5/internal/operators/window.js","./node_modules/rxjs/_esm5/internal/operators/windowCount.js","./node_modules/rxjs/_esm5/internal/operators/windowTime.js","./node_modules/rxjs/_esm5/internal/operators/windowToggle.js","./node_modules/rxjs/_esm5/internal/operators/windowWhen.js","./node_modules/rxjs/_esm5/internal/operators/withLatestFrom.js","./node_modules/rxjs/_esm5/internal/operators/zip.js","./node_modules/rxjs/_esm5/internal/operators/zipAll.js","./node_modules/rxjs/_esm5/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm5/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm5/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm5/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm5/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm5/internal/scheduler/Action.js","./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm5/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm5/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm5/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm5/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm5/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm5/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm5/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm5/internal/scheduler/VirtualTimeScheduler.js","./node_modules/rxjs/_esm5/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm5/internal/scheduler/asap.js","./node_modules/rxjs/_esm5/internal/scheduler/async.js","./node_modules/rxjs/_esm5/internal/scheduler/queue.js","./node_modules/rxjs/_esm5/internal/symbol/iterator.js","./node_modules/rxjs/_esm5/internal/symbol/observable.js","./node_modules/rxjs/_esm5/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm5/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm5/internal/util/EmptyError.js","./node_modules/rxjs/_esm5/internal/util/Immediate.js","./node_modules/rxjs/_esm5/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm5/internal/util/TimeoutError.js","./node_modules/rxjs/_esm5/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm5/internal/util/canReportError.js","./node_modules/rxjs/_esm5/internal/util/hostReportError.js","./node_modules/rxjs/_esm5/internal/util/identity.js","./node_modules/rxjs/_esm5/internal/util/isArray.js","./node_modules/rxjs/_esm5/internal/util/isArrayLike.js","./node_modules/rxjs/_esm5/internal/util/isDate.js","./node_modules/rxjs/_esm5/internal/util/isFunction.js","./node_modules/rxjs/_esm5/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm5/internal/util/isIterable.js","./node_modules/rxjs/_esm5/internal/util/isNumeric.js","./node_modules/rxjs/_esm5/internal/util/isObject.js","./node_modules/rxjs/_esm5/internal/util/isObservable.js","./node_modules/rxjs/_esm5/internal/util/isPromise.js","./node_modules/rxjs/_esm5/internal/util/isScheduler.js","./node_modules/rxjs/_esm5/internal/util/noop.js","./node_modules/rxjs/_esm5/internal/util/not.js","./node_modules/rxjs/_esm5/internal/util/pipe.js","./node_modules/rxjs/_esm5/internal/util/subscribeTo.js","./node_modules/rxjs/_esm5/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm5/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm5/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm5/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm5/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm5/internal/util/toSubscriber.js","./node_modules/rxjs/_esm5/operators/index.js","./node_modules/rxjs/internal/Observable.js","./node_modules/rxjs/internal/Observer.js","./node_modules/rxjs/internal/Subscriber.js","./node_modules/rxjs/internal/Subscription.js","./node_modules/rxjs/internal/config.js","./node_modules/rxjs/internal/observable/throwError.js","./node_modules/rxjs/internal/symbol/observable.js","./node_modules/rxjs/internal/symbol/rxSubscriber.js","./node_modules/rxjs/internal/util/UnsubscriptionError.js","./node_modules/rxjs/internal/util/canReportError.js","./node_modules/rxjs/internal/util/hostReportError.js","./node_modules/rxjs/internal/util/isArray.js","./node_modules/rxjs/internal/util/isFunction.js","./node_modules/rxjs/internal/util/isObject.js","./node_modules/rxjs/internal/util/noop.js","./node_modules/rxjs/internal/util/pipe.js","./node_modules/rxjs/internal/util/toSubscriber.js","./node_modules/text-mask-core/dist/textMaskCore.js","./node_modules/ts-md5/dist/md5.js","./node_modules/tslib/tslib.es6.js","./node_modules/type-func/dist/bundle.js","(webpack)/buildin/module.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAyE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qBAAqB;AACjC,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB;AAChD,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C;AACA;AACA,UAAU,wBAAwB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oCAAoC;AAChD,YAAY,uCAAuC;AACnD,YAAY,yCAAyC;AACrD,YAAY,sCAAsC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,0BAA0B;AACtC,YAAY,4BAA4B;AACxC,YAAY,2BAA2B;AACvC;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA,gEAAgE,+BAA+B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,yBAAyB,aAAa;AACtC;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa,SAAS,GAAG;AACrC,gBAAgB,QAAQ;AACxB,YAAY,aAAa,OAAO,EAAE;AAClC;AACA,MAAM,UAAU,oCAAoC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,WAAW;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,mCAAmC,aAAa;AAChD;AACA;AACA,2CAA2C,aAAa;AACxD,iDAAiD,aAAa;AAC9D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAoD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,cAAc;AAChD,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA,2DAA2D,2BAA2B;AACtF,0DAA0D,0BAA0B;AACpF,6DAA6D,6BAA6B;AAC1F,4DAA4D,sBAAsB;AAClF,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0BAA0B,EAAE;AACnE;AACA;AACA,gDAAgD,aAAa,EAAE;AAC/D;AACA;AACA,uDAAuD;AACvD,yDAAyD;AACzD,wDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA,uDAAuD;AACvD,qEAAqE;AACrE,6DAA6D,UAAU;AACvE;AACA;AACA;AACA,uCAAuC,aAAa,EAAE;AACtD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,sEAAsE,yCAAyC,EAAE;AACjH;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA,uDAAuD,yCAAyC,sBAAsB,EAAE,EAAE;AAC1H,4DAA4D,2BAA2B;AACvF;AACA;AACA;AACA,oDAAoD,aAAa,EAAE;AACnE;AACA;AACA;AACA,2DAA2D,0BAA0B;AACrF,8DAA8D,6BAA6B;AAC3F,6DAA6D,sBAAsB;AACnF;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB,EAAE;AACxE;AACA,wDAAwD,yCAAyC,uBAAuB,EAAE,EAAE;AAC5H,0DAA0D,yCAAyC,yBAAyB,EAAE,EAAE;AAChI;AACA;AACA,gDAAgD,wBAAwB,EAAE;AAC1E;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB,EAAE;AAC/E,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,aAAa,EAAE;AACtD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEyQ;;AAEzQ,sC;;;;;;;;;;;;ACvqCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEoF;AACsC;AAC/E;;AAEH;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,uBAAuB,uEAAmB;AAC1C;AACA;AACA;AACA,uBAAuB,yEAAqB;AAC5C;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAU;AACnC;AACA;AACA,yBAAyB,8DAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAsE,EAAE;AAChH;AACA;AACA,uCAAuC,qEAAqE,EAAE;AAC9G;AACA;AACA,0CAA0C,wEAAwE,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C,+BAA+B,eAAe;AAC9C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA,iDAAiD,kCAAkC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wCAAwC,sDAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D,mBAAmB,uEAAmB;AACtC;AACA,oEAAoE,yCAAyC;AAC7G,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,iCAAiC,kBAAkB;AACnD,8CAA8C,+BAA+B,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,wCAAwC,kDAAkD,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6DAA6D,wCAAwC,EAAE;AACvG;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,0DAA0D,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oDAAoD;AACtG;AACA,kDAAkD,oDAAoD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,sBAAsB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wCAAwC,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,iEAAK,GAAG;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8DAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wCAAwC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wEAAwE,4BAA4B,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB,sBAAsB,EAAE,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA,4BAA4B,eAAe;AAC3C,iCAAiC,qBAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sDAAQ;AACtE;AACA,8DAA8D,+BAA+B;AAC7F,yDAAyD,mBAAmB;AAC5E;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB,GAAG,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,0BAA0B,aAAa;AACvC,0BAA0B,aAAa;AACvC,0BAA0B,aAAa;AACvC,0BAA0B,0BAA0B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,iCAAiC,kBAAkB;AACnD,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,qCAAqC,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,kCAAkC,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,oCAAoC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oDAAoD,uEAAuE,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oCAAoC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ;AAChD;AACA;AACA,kIAAkI,iBAAiB;AACnJ;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2CAA2C;AAClH;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,qEAAqE,iEAAiE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,8DAAU;AACnF,2CAA2C,8DAAU;AACrD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAU;AAC9B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8DAA8D,2CAA2C;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAAU;AACvC;AACA;AACA,kCAAkC,8DAAU;AAC5C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,kDAAkD,kCAAkC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,kEAAkE,kCAAkC;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB,8DAAU,CAAC,EAAE;AAChF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oGAAoG,qBAAqB;AACzH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wBAAwB;AACxB,iBAAiB;AACjB;AACA;AACA;AACA,iCAAiC,wBAAwB,EAAE;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,sDAAQ,CAAC,sDAAQ,GAAG;AAC7D;AACA;AACA,yCAAyC,yDAAyD,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,sDAAsD,8BAA8B,EAAE;AACtF,iEAAiE;AACjE,uDAAuD,+BAA+B,EAAE;AACxF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,wCAAwC,qDAAqD,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA,gEAAgE,0DAA0D,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,mDAAmD,aAAa,EAAE;AAClE,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,mHAAmH,IAAI;AACvH;AACA,4EAA4E;AAC5E,6DAA6D,4BAA4B,EAAE;AAC3F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAA0D,8DAAU,EAAE,EAAE;AACjI,SAAS;AACT;AACA;AACA,2CAA2C;AAC3C,SAAS;AACT;AACA;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yKAAyK;AACnM;AACA;AACA,wCAAwC,wCAAwC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,uBAAuB,EAAE;AACpG;AACA,oFAAoF,2BAA2B,EAAE;AACjH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4DAA4D,EAAE;AAChH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2DAA2D,yCAAyC,qCAAqC,EAAE,EAAE,EAAE;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uEAAuE,gDAAgD,EAAE;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yCAAyC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA,oFAAoF,wCAAwC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,oBAAoB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kCAAkC,EAAE;AACpF;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,0FAA0F,0CAA0C;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mDAAmD,4BAA4B,EAAE;AACjF;AACA,yEAAyE,kCAAkC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,2CAA2C;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yDAAyD,EAAE;AACxG;AACA;AACA;AACA,6CAA6C,6DAA6D,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB,EAAE;AAClG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA,iEAAiE,iDAAiD,EAAE;AACpH;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA,2BAA2B,wCAAwC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,mCAAmC,aAAa,EAAE,EAAE,EAAE;AACvH;AACA;AACA,kDAAkD,aAAa,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC,EAAE;AAC/E,SAAS;AACT;AACA;AACA;AACA,yBAAyB,0CAA0C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,kCAAkC,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC,EAAE;AAC/E,SAAS;AACT;AACA;AACA;AACA,+CAA+C,qCAAqC,EAAE;AACtF,aAAa;AACb;AACA;AACA,+CAA+C,qCAAqC,EAAE;AACtF,aAAa;AACb,sDAAsD,iCAAiC,EAAE;AACzF,SAAS;AACT;AACA;AACA,sDAAsD,UAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qDAAqD,EAAE;AACvG,kDAAkD,iDAAiD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qDAAqD,EAAE;AACvG,kDAAkD,iDAAiD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,0CAA0C,EAAE;AACzG;AACA,6BAA6B;AAC7B;AACA,wEAAwE,mEAAmE,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2BAA2B,EAAE;AACpF;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yBAAyB,EAAE;AAC9E,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6DAA6D,2CAA2C,EAAE;AAC1G,aAAa;AACb,kDAAkD,yBAAyB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wIAAwI,8DAAU;AAClJ;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mGAAmG,8DAAU;AAC7G,SAAS;AACT;AACA;AACA;AACA,oCAAoC,sDAAQ,CAAC,sDAAQ,GAAG;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iDAAiD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+DAA+D,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iDAAiD,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAQ;AACxD;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA,6DAA6D,qBAAqB,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,+BAA+B;AACzG,wFAAwF,mCAAmC;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0BAA0B,sDAAQ,wCAAwC,UAAU;AACpF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAmB;AAC9C;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uCAAuC,kFAAkF,EAAE;AAC3H,SAAS;AACT,wDAAwD,kDAAkD,EAAE;AAC5G;AACA;AACA,4DAA4D,qDAAqD,EAAE;AACnH;AACA,SAAS;AACT;AACA;AACA,mDAAmD,8DAA8D,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAmB;AACtC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2DAA2D,EAAE;AACpI,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F,kFAAkF,4BAA4B;AAC9G;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC,EAAE;AAC7E;AACA,mCAAmC,uBAAuB,EAAE;AAC5D,sCAAsC,wBAAwB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF,kEAAkE,wDAAwD;AAC1H,4DAA4D,qCAAqC;AACjG,6DAA6D,sCAAsC;AACnG,+DAA+D,wCAAwC;AACvG,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA;AACA,6DAA6D,sCAAsC;AACnG;AACA;AACA;AACA;AACA;AACA,mEAAmE,qDAAqD;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8CAA8C,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,yCAAyC,8CAA8C,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA,uCAAuC;AACvC;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yCAAyC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA,8BAA8B,yEAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2BAA2B,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,+DAA+D,mDAAmD;AAClH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iCAAiC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,yDAAyD;AACzH,iEAAiE,0DAA0D;AAC3H;AACA;AACA;AACA;AACA;AACA,sEAAsE,uBAAuB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF,yDAAyD,0BAA0B;AACnF,4DAA4D,6BAA6B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,aAAa,EAAE;AACjE;AACA;AACA;AACA,+CAA+C,aAAa,EAAE;AAC9D;AACA;AACA;AACA,gDAAgD,aAAa,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG,4DAA4D,mCAAmC;AAC/F,2DAA2D,uCAAuC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oKAAoK,uBAAuB,EAAE;AAC7L;AACA;AACA;AACA;AACA,uCAAuC,aAAa,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAmE,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,CAAC,CAAC,uEAAmB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,oCAAoC;AAC9G;AACA;AACA;AACA,0EAA0E,oCAAoC;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gCAAgC,EAAE;AACnF,oDAAoD;AACpD;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F;AAC3F;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA,aAAa;AACb,mCAAmC;AACnC,SAAS;AACT,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA,mFAAmF,6CAA6C,EAAE;AAClI;AACA;AACA;AACA;AACA,6DAA6D,4CAA4C,EAAE;AAC3G,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0BAA0B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,2BAA2B;AACtF,0DAA0D,0BAA0B;AACpF,6DAA6D,6BAA6B;AAC1F;AACA;AACA;AACA,oDAAoD,aAAa,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sBAAsB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa,EAAE;AACrE;AACA;AACA;AACA,8DAA8D,4CAA4C;AAC1G,6DAA6D,+CAA+C;AAC5G;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,aAAa,EAAE;AACtD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA,2EAA2E,oCAAoC;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,gCAAgC;AACvH;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8CAA8C,EAAE;AACpI;AACA;AACA;AACA,6DAA6D,4CAA4C,EAAE;AAC3G,aAAa;AACb;AACA,qDAAqD,kCAAkC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE2zB;;AAE3zB,mC;;;;;;;;;;;;AC3jJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqK;AAC1H;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC,uBAAuB,4DAAc;AACrC;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,4DAAM,CAAC,wDAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,yBAAyB;AACnG,MAAM;AACN,2BAA2B,wEAAkB,EAAE,6CAA6C,2BAA2B,8DAAQ,mBAAmB,EAAE,6CAA6C;AACjM,0DAA0D,kCAAkC,sDAAe,mBAAmB;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA,0BAA0B,kBAAkB,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,iBAAiB,EAAE;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO,oDAAM,wBAAwB;AACvD,eAAe,OAAO,mDAAK,EAAE;AAC7B;AACA,oCAAoC,yBAAyB;AAC7D,WAAW,+DAAwB,EAAE,yGAAyG;AAC9I,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,aAAa,YAAY,sBAAsB,gCAAgC,gEAAyB,GAAG,4CAA4C,KAAK;AAC9K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,6BAA6B,4CAA4C;AACzE,uBAAuB,0BAA0B;AACjD;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,oDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAAuB,EAAE,mBAAmB;AAC9D,kBAAkB,8DAAuB,EAAE,0CAA0C,gCAAgC,EAAE,EAAE;AACzH,cAAc,oDAAoD,gEAAyB,cAAc,sCAAsC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEwH;;AAExH,gC;;;;;;;;;;;;ACpMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACK;AACc;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAY,4BAA4B,+CAAE;AACzD;AACA,wDAAwD;AACxD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAO;AAClC;AACA;AACA,kEAAkE,mCAAmC,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,yCAAyC,mCAAmC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,yCAAyC,qCAAqC,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qCAAqC,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,kCAAkC,UAAU;AAC9E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sCAAsC,wEAAkB,EAAE,wDAAwD,wCAAwC,EAAE,wDAAwD;AACpN,gFAAgF,+CAA+C;AAC/H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEyI;;AAEzI,uC;;;;;;;;;;;;AC5SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkH;AAC9D;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,SAAS,6BAA6B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,yDAAW,IAAI;AAC/F,MAAM;AACN,qBAAqB,wEAAkB,EAAE,uCAAuC,qBAAqB,8DAAQ,CAAC,yDAAW,MAAM,EAAE,uCAAuC;AACxK,8CAA8C,4BAA4B,sDAAe,CAAC,yDAAW,MAAM;AAC3G,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B,uBAAuB,yDAAW;AAClC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAuB,EAAE,uBAAuB;AACtE,sBAAsB,8DAAuB,EAAE,8CAA8C,oCAAoC,EAAE,EAAE;AACrI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,iBAAiB;AACjB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E,kCAAkC,qCAAqC;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE8M;;AAE9M,oC;;;;;;;;;;;;AC9SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACqH;AAC5G;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,2CAA2C,wDAAU;AACrD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kDAAkD,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,8DAAgB;AAChC,MAAM;AACN,gDAAgD,6BAA6B,+DAAwB,CAAC,yDAAkB,GAAG,+DAAwB,CAAC,8DAAuB,GAAG;AAC9K,iBAAiB,+DAAwB,EAAE,0FAA0F,wEAAiC,GAAG;AACzK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,yDAAkB,EAAE,GAAG,OAAO,8DAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,4EAA4E,2EAA2E;AACvJ,+BAA+B,+DAAwB,EAAE,6HAA6H,gEAAyB;AAC/M;AACA;AACA,aAAa,IAAI,wEAAiC,GAAG;AACrD,2CAA2C,mEAA4B;AACvE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sBAAsB,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wCAAwC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN;AACA,oBAAoB,OAAO,oDAAM,EAAE;AACnC;AACA,4DAA4D,mCAAmC,+DAAwB,CAAC,sEAA+B,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,wDAAQ,GAAG;AACjP,uBAAuB,+DAAwB,EAAE,2EAA2E,wCAAwC,YAAY,uBAAuB,4CAA4C,wEAAiC,GAAG;AACvR,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,sEAA+B,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG;AAC7G,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,oDAAM;AACxB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,oEAAoE,mEAAmE;AACvI,2BAA2B,+DAAwB,EAAE,qGAAqG,sCAAsC,0CAA0C,gEAAyB;AACnQ;AACA;AACA,aAAa,IAAI,wEAAiC,GAAG;AACrD,uCAAuC,mEAA4B;AACnE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,kCAAkC,EAAE,EAAE;AAC/H,cAAc,oDAAoD,gEAAyB,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA,8BAA8B,EAAE,EAAE;AAClC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEwO;;AAExO,kC;;;;;;;;;;;;AC3sBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACiQ;AACzL;AACJ;AAClB;AACpE;AACoB;AACX;AACqB;;AAEzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACQ;AACJ;;AAE5C;AACA;AACA,kCAAkC,4DAAc;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAAO;AAC/C;AACA,kEAAkE,2EAAoB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD,+BAA+B,kBAAkB,kFAAoB,QAAQ,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,EAAE;AACtD,+BAA+B,qBAAqB,kFAAoB,QAAQ,EAAE;AAClF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,EAAE;AACtD,+BAA+B,qBAAqB,kFAAoB,QAAQ,EAAE;AAClF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,uBAAuB,OAAO,mDAAK,EAAE;AACrC;AACA,gFAAgF,+CAA+C;AAC/H,iCAAiC,+DAAwB,EAAE,yGAAyG,+EAA+E,aAAa,gEAAyB;AACzR;AACA;AACA,uBAAuB,gEAAU,cAAc,kCAAkC,EAAE;AACnF,aAAa,IAAI,kEAA2B,GAAG;AAC/C,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA,+BAA+B,gEAAU,cAAc,kCAAkC,EAAE;AAC3F,qBAAqB;AACrB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAyC,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qCAAqC;AAC5E;AACA,mBAAmB,+CAAE;AACrB;AACA,mBAAmB,+CAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gEAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+DAA+D,oCAAoC,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6DAAM;AACvD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAS,mDAAmD,+BAA+B,EAAE;AAChH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,8DAAQ,EAAE;AAC1B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC/F,MAAM;AACN,6BAA6B,wEAAkB,EAAE,+CAA+C,6BAA6B,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,8DAAQ,GAAG,8DAAQ,CAAC,wDAAQ,MAAM,EAAE,+CAA+C;AAC3O,8DAA8D,oCAAoC,sDAAe,CAAC,oDAAa,GAAG,sDAAe,CAAC,8DAAe,GAAG,sDAAe,CAAC,wDAAQ,MAAM;AAClM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,oDAAa,EAAE,GAAG,OAAO,8DAAe,EAAE,GAAG;AACnF,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC,oCAAoC,+CAAU;AAC9C;AACA,uBAAuB,sDAAS,gDAAgD,gEAAS;AACzF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kFAAoB;AACzC;AACA;AACA;AACA;AACA,gBAAgB,kFAAoB;AACpC;AACA;AACA,qBAAqB,kFAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oFAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kFAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kFAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,yBAAyB;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE;AAC/D,MAAM;AACN,wDAAwD,iCAAiC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,oBAAoB,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,CAAC,gEAAqB,MAAM;AAC/Q,qBAAqB,+DAAwB,EAAE,0FAA0F;AACzI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,yBAAyB,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,gEAAqB;AAC7I,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAK,CAAC,sDAAS,oBAAoB,sDAAS;AAC5D,gBAAgB,+CAAE;AAClB;AACA;AACA,2EAA2E,oCAAoC,EAAE;AACjH,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oCAAoC;AAC1E,oDAAoD,gEAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uDAAuD;AACpE,aAAa;AACb;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,8DAAQ,EAAE;AAC1B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC/F,MAAM;AACN,0BAA0B,wEAAkB,EAAE,4CAA4C,0BAA0B,8DAAQ,CAAC,8DAAQ,GAAG,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,wDAAQ,MAAM,EAAE,4CAA4C;AAC/N,wDAAwD,iCAAiC,sDAAe,CAAC,8DAAe,GAAG,sDAAe,CAAC,oDAAa,GAAG,sDAAe,CAAC,wDAAQ,MAAM;AACzL,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,8DAAe,EAAE,GAAG,OAAO,oDAAa,EAAE,GAAG;AACnF,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,4DAAuB,GAAG,kDAAa;AAC7G;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAAO;AAC5C;AACA,0CAA0C,4CAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+CAAU;AAClD;AACA,2DAA2D,sCAAsC,6BAA6B,EAAE,EAAE,EAAE;AACpI,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,gEAAS;AACrB;AACA;AACA;AACA,YAAY,gEAAS;AACrB,wCAAwC,kDAAkD,EAAE;AAC5F;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kDAAkD,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gDAAgD,EAAE;AACvF;AACA;AACA;AACA,iDAAiD,sDAAQ,0FAA0F,mCAAmC;AACtL;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,oCAAoC,GAAG;AACjH,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sD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AACzD;AACA,oCAAoC,oDAAoD,EAAE;AAC1F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,6EAAY;AAC5B;AACA;AACA;AACA;AACA,iDAAiD,wEAAe,CAAC,yDAAY;AAC7E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wCAAwC,kFAAkF,EAAE;AAC5H;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,sCAAsC,UAAU;AAClF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,wCAAwC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+BAA+B,EAAE;AAC3D,iCAAiC,kCAAkC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6BAA6B,EAAE;AACzD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF,0DAA0D,sBAAsB;AAChF,8DAA8D,4BAA4B;AAC1F,oCAAoC,wEAAkB,EAAE,iGAAiG;AACzJ,8BAA8B,wDAAU,GAAG,qDAAO,IAAI,4DAAM;AAC5D,QAAQ,wDAAU;AAClB;AACA,4EAA4E,2CAA2C,sDAAe,YAAY;AAClJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uCAAuC,8DAAQ;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wEAAkB,EAAE,gFAAgF;AACjI,8DAA8D,sCAAsC;AACpG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,0DAA0D;AAC1E,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA,mBAAmB,8DAAQ;AAC3B,oCAAoC,8DAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,cAAc;AACzB;AACA;AACA,kBAAkB,4CAA4C;AAC9D,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAc;AACtC;AACA;AACA,MAAM,uBAAuB,wBAAwB,eAAe;AACpE;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF,6EAA6E,gDAAgD;AAC7H;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F,uDAAuD,+BAA+B;AACtF,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjF,QAAQ,wDAAU;AAClB;AACA,sEAAsE,wCAAwC,sDAAe,oBAAoB,sDAAe,oBAAoB;AACpL,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,yBAAyB,GAAG;AAC3D,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uBAAuB,wBAAwB,eAAe;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F,uDAAuD,+BAA+B;AACtF,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjF,QAAQ,wDAAU;AAClB;AACA,sEAAsE,wCAAwC,sDAAe,oBAAoB,sDAAe,oBAAoB;AACpL,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,yBAAyB,GAAG;AAC3D,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0CAA0C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kCAAkC;AAChF;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iDAAiD,EAAE;AACxF;AACA;AACA;AACA,6BAA6B,UAAU;AACvC,wDAAwD,uBAAuB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mDAAmD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wEAAkB,EAAE,+DAA+D;AACxG,4BAA4B,wDAAU,GAAG,wDAAU;AACnD;AACA,8CAA8C,4BAA4B,sDAAe,oBAAoB,sDAAe,oBAAoB;AAChJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,yBAAyB,GAAG,yBAAyB,EAAE,EAAE,QAAQ,EAAE;AAClG;AACA,CAAC;AACD;AACA,wBAAwB,8DAAQ,oBAAoB,8DAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qEAAe,SAAS,8DAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,yBAAyB,8DAAgB,yBAAyB,8DAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,yBAAyB,8DAAgB,mBAAmB,8DAAgB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,2BAA2B,8DAAgB,qBAAqB,8DAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,wBAAwB,8DAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,oCAAoC,8DAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,oCAAoC,8DAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,kCAAkC,8DAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,mBAAmB,8DAAgB;AACnC;AACA;AACA,wBAAwB,8DAAgB;AACxC;AACA;AACA,wBAAwB,8DAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4EAAsB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA,0BAA0B,kEAAoB;AAC9C;AACA,cAAc,8DAAgB;AAC9B,6EAA6E,8DAAgB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B;AACA,qBAAqB,8DAAgB;AACrC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B;AACA;AACA,aAAa,8DAAgB;AAC7B,aAAa,8DAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAe;AAC9B,gBAAgB,8DAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,gFAAgF,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChN;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,IAAI;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC,0BAA0B,cAAc;AACxC,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB;AACnD,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE,IAAI,IAAI,IAAI,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM,sCAAsC,aAAa,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW,EAAE;AACzD;AACA,cAAc,qBAAqB;AACnC;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC,OAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mBAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yCAAyC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AACnE,QAAQ,wDAAU;AAClB;AACA,sEAAsE,wCAAwC,sDAAe,CAAC,uDAAS,GAAG;AAC1I,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yEAAmB;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,mBAAmB,oBAAoB,UAAU;AAC/E;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAA8C;AAC/E;AACA;AACA;AACA,iCAAiC,8BAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,4DAA4D,EAAE;AAClH,sDAAsD,4DAA4D,EAAE;AACpH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,gEAAU;AAC7G;AACA,SAAS;AACT,sDAAsD,+CAA+C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wCAAwC,EAAE;AAChG;AACA;AACA,mEAAmE,wDAAwD,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC,EAAE;AACjG;AACA;AACA,mEAAmE,yCAAyC,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,cAAc,wDAAU,GAAG,wDAAU,uBAAuB,6DAAe,EAAE,6DAAe;AAC5F,YAAY,wDAAU,EAAE,uDAAS;AACjC;AACA,4CAA4C,2BAA2B,+DAAwB,CAAC,6DAAsB,GAAG,+DAAwB,CAAC,6DAAsB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AACpQ,eAAe,+DAAwB,EAAE,2DAA2D,gDAAgD,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,wBAAwB;AACxC,KAAK,gBAAgB,UAAU,OAAO,6DAAsB,EAAE,GAAG,OAAO,6DAAsB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,GAAG;AAChK,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,eAAe;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yDAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU,gBAAgB,kDAAI;AACtC;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU,gBAAgB,sDAAQ;AAC1C;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU,gBAAgB,6DAAe;AACjD;AACA,wBAAwB,wDAAU,GAAG,wDAAU,uBAAuB,8DAAgB;AACtF;AACA,gEAAgE,qCAAqC,+DAAwB,CAAC,8DAAuB,GAAG;AACxJ,yBAAyB,+DAAwB,EAAE,+EAA+E,6NAA6N,aAAa,kEAA2B,GAAG;AAC1Y,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,kCAAkC;AAClD,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,EAAE,EAAE,GAAG;AACtE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sCAAsC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6BAA6B,EAAE;AACzD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,mBAAmB,EAAE;AAC/C;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C,QAAQ,GAAG,GAAG,cAAc,IAAI,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,yBAAyB;AAChD;AACA;AACA,0DAA0D,UAAU;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU,gBAAgB,yDAAW;AAC7C,QAAQ,wDAAU,uBAAuB,yDAAW;AACpD;AACA,cAAc,wDAAU,GAAG,wDAAU,uBAAuB,8DAAgB;AAC5E,YAAY,yDAAW,EAAE,6DAAe;AACxC;AACA,4CAA4C,2BAA2B,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,yDAAkB,GAAG,+DAAwB,CAAC,6DAAsB,GAAG;AAC1N,eAAe,+DAAwB,EAAE,wEAAwE,mFAAmF,EAAE;AACtM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,+BAA+B;AAC/C,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG,OAAO,yDAAkB,EAAE,GAAG,OAAO,6DAAsB,EAAE,EAAE,EAAE,GAAG;AACtI,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,WAAW,wDAAU,GAAG,wDAAU,uBAAuB,8DAAgB,EAAE,yDAAW;AACtF;AACA,sCAAsC,wBAAwB,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,yDAAkB,GAAG;AAC/J,YAAY,+DAAwB,EAAE,qDAAqD,2DAA2D,EAAE;AACxJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG,OAAO,yDAAkB,EAAE,EAAE,EAAE,GAAG;AACpG,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8EAA8E,gEAAU;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,8CAA8C,8BAA8B;AAC5E,gBAAgB,+DAAwB,EAAE,6DAA6D,uBAAuB,EAAE;AAChI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,yBAAyB;AACzC,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0CAA0C,EAAE;AAClG,oDAAoD,yDAAyD,EAAE;AAC/G,sDAAsD,yDAAyD,EAAE;AACjH;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,cAAc,wDAAU,GAAG,wDAAU,uBAAuB,wDAAU,EAAE,6DAAe,EAAE,uDAAS;AAClG;AACA,4CAA4C,2BAA2B,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,6DAAsB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AAClN,eAAe,+DAAwB,EAAE,2DAA2D,qBAAqB,EAAE;AAC3H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,wBAAwB;AACxC,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,6DAAsB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,GAAG;AAC9H,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,kEAAkE;AAClE;AACA;AACA,yCAAyC,sDAAQ,sDAAsD,uBAAuB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,mCAAmC,UAAU;AAC/E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,uBAAuB,wDAAU,GAAG,wDAAU,uBAAuB,8DAAgB;AACrF;AACA,8DAA8D,oCAAoC,+DAAwB,CAAC,8DAAuB,GAAG;AACrJ,wBAAwB,+DAAwB,EAAE,6EAA6E,2FAA2F,aAAa,kEAA2B,GAAG;AACrQ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,iCAAiC;AACjD,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,EAAE,EAAE,GAAG;AACtE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gEAAU;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+CAA+C,SAAS,EAAE,EAAE;AAC5F;AACA,oEAAoE,4BAA4B;AAChG,sEAAsE,4BAA4B;AAClG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,2DAA2D,SAAS,EAAE;AACtE;AACA,iEAAiE;AACjE,mEAAmE;AACnE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAe;AAC3B;AACA;AACA;AACA,eAAe,0DAAY;AAC3B;AACA;AACA;AACA;AACA;AACA,sFAAsF,6CAA6C,EAAE;AACrI;AACA;AACA,YAAY,gEAAU;AACtB;AACA;AACA,YAAY,mEAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wDAAU,GAAG,wDAAU,uBAAuB,+DAAiB;AAC7F;AACA,gDAAgD,6BAA6B,2EAAoC,IAAI;AACrH,kBAAkB,0DAAmB,EAAE,8CAA8C;AACrF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,6BAA6B;AAC7C,KAAK,gBAAgB,UAAU,OAAO,+DAAwB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC9E;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,0DAAmB,EAAE,qDAAqD;AAChG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,oBAAoB;AACpC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA,gCAAgC,EAAE;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2DAA2D,EAAE;AAC7H;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,0DAAmB,EAAE,qDAAqD;AAChG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,oBAAoB;AACpC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,0DAAmB,EAAE,qDAAqD;AAChG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,oBAAoB;AACpC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB,KAAK,2BAA2B;AAChC,KAAK,8BAA8B;AACnC,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC,6BAA6B,yBAAyB;AACtD,uBAAuB,yBAAyB;AAChD;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AACpE,QAAQ,wDAAU;AAClB;AACA,8CAA8C,4BAA4B,+DAAwB,CAAC,uDAAS,GAAG;AAC/G,iBAAiB,0DAAmB,EAAE,2CAA2C;AACjF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,2BAA2B;AAC3C,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wDAAU,GAAG,wDAAU;AAC/D;AACA,0DAA0D,kCAAkC,+DAAwB,kBAAkB;AACtI,uBAAuB,0DAAmB,EAAE,uDAAuD;AACnG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,iCAAiC;AACjD,KAAK,gBAAgB,UAAU,uBAAuB,EAAE,EAAE,QAAQ,EAAE;AACpE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oCAAoC;AAC9F,uBAAuB,0DAAmB,EAAE,uDAAuD;AACnG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,iCAAiC;AACjD,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uCAAuC;AAC5F,8CAA8C,8BAA8B;AAC5E,iBAAiB,0DAAmB,EAAE,4CAA4C;AAClF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,4BAA4B;AAC5C,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mBAAmB,wDAAU,GAAG,wDAAU,uBAAuB,6DAAe;AAChF;AACA,sDAAsD,gCAAgC,+DAAwB,CAAC,6DAAsB,GAAG;AACxI,qBAAqB,0DAAmB,EAAE,oDAAoD;AAC9F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,gCAAgC;AAChD,KAAK,gBAAgB,UAAU,OAAO,6DAAsB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC5E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AAC1E,QAAQ,wDAAU;AAClB;AACA,oDAAoD,+BAA+B,+DAAwB,CAAC,uDAAS,GAAG;AACxH,oBAAoB,0DAAmB,EAAE,gDAAgD;AACzF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,iBAAiB;AACjC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AAC1E,QAAQ,wDAAU;AAClB;AACA,oDAAoD,+BAA+B,+DAAwB,CAAC,uDAAS,GAAG;AACxH,oBAAoB,0DAAmB,EAAE,iDAAiD;AAC1F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,kBAAkB;AAClC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AAC5E,QAAQ,qDAAO,IAAI,4DAAM,CAAC,mEAAqB;AAC/C,QAAQ,wDAAU;AAClB;AACA,sDAAsD,gCAAgC,+DAAwB,CAAC,uDAAS,GAAG,+DAAwB,CAAC,mEAAqB,GAAG;AAC5K,qBAAqB,0DAAmB,EAAE,mDAAmD;AAC7F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,mBAAmB;AACnC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,GAAG;AACnB,sBAAsB,oDAAM;AAC5B,uBAAuB,mEAAqB;AAC5C,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAsD;AACzG;AACA,gDAAgD,+BAA+B;AAC/E,kBAAkB,0DAAmB,EAAE,8CAA8C;AACrF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB,gBAAgB,6BAA6B;AAC7C,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,kCAAkC,EAAE;AAC7H,SAAS,0DAA0D;AACnE,OAAO;AACP,cAAc,oDAAoD,gEAAyB,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE,EAAE;AAC3B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,qBAAqB,0DAA0D;AAC/E;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wEAAkB;AAC/C;AACA;AACA,8BAA8B,oCAAoC,8DAAQ,oBAAoB,8DAAQ,CAAC,0DAAY,GAAG;AACtH,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA,oEAAoE,eAAe;AACnF;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA,+FAA+F;AAC/F;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE+/D;;AAE//D,kC;;;;;;;;;;;;ACljLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEqF;AACe;AAC9D;AACkB;AACM;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kCAAkC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,yCAAyC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mEAAmE,EAAE;AAC1G;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8BAA8B;AAC7F;AACA;AACA;AACA;AACA;AACA,mEAAmE,gCAAgC;AACnG;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA,mEAAmE,kCAAkC;AACrG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB,sCAAsC,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oBAAoB,sCAAsC,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,oBAAoB,sCAAsC,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sDAAsD,EAAE;AACpH;AACA,SAAS;AACT;AACA;AACA,sCAAsC,qBAAqB,EAAE;AAC7D;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yDAAyD,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mDAAmD,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA,kDAAkD,mDAAmD,EAAE;AACvG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,qBAAqB;AAC5D,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,6DAA6D,4BAA4B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,kBAAkB,eAAe,GAAG,GAAG,EAAE;AACzC,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6BAA6B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,+CAAE,WAAW,gEAAS,iBAAiB,kCAAkC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAM,mBAAmB,sCAAsC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yCAAyC,0DAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yCAAyC,0DAAG;AAC5C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yCAAyC,0DAAG,iBAAiB,iBAAiB,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,iBAAiB,wDAAU,GAAG,wDAAU;AACxC;AACA,kDAAkD,8BAA8B,sDAAe,eAAe;AAC9G,mBAAmB,gEAAyB,EAAE,2CAA2C,2BAA2B,EAAE,EAAE;AACxH,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,QAAQ,EAAE;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qCAAqC;AACjG,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,+CAA+C;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAChE,QAAQ,wDAAU;AAClB;AACA,kEAAkE,sCAAsC,sDAAe,wBAAwB,sDAAe,CAAC,wDAAQ,GAAG;AAC1K,2BAA2B,gEAAyB,EAAE,mDAAmD,mCAAmC,EAAE,EAAE;AAChJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,6BAA6B,GAAG;AAC/D,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wDAAU,GAAG,wDAAU;AAC9C;AACA,8DAA8D,oCAAoC,sDAAe,sBAAsB;AACvI,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,2BAA2B,EAAE,EAAE,QAAQ,EAAE;AACxE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E,iBAAiB,wDAAU,GAAG,wDAAU;AACxC;AACA,kDAAkD,gCAAgC;AAClF,mBAAmB,gEAAyB,EAAE,2CAA2C,2BAA2B,EAAE,EAAE;AACxH,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qDAAqD,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qEAAqE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,wDAAU,GAAG,wDAAU;AAC5C;AACA,0DAA0D,kCAAkC,sDAAe,cAAc;AACzH,uBAAuB,gEAAyB,EAAE,+CAA+C,+BAA+B,EAAE,EAAE;AACpI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,mBAAmB,EAAE,EAAE,QAAQ,EAAE;AAChE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4DAAc;AACzC,2BAA2B,4DAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAiB;AAC9C;AACA;AACA;AACA;AACA,8BAA8B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ,IAAI,qDAAO,IAAI,4DAAM,CAAC,yDAAW;AACtG,QAAQ,qDAAO,IAAI,4DAAM;AACzB,QAAQ,wDAAU;AAClB;AACA,4EAA4E,2CAA2C,sDAAe,CAAC,wDAAQ,GAAG,sDAAe,CAAC,yDAAW,GAAG,sDAAe,oBAAoB;AACnN,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,GAAG;AACnB,sBAAsB,oDAAM;AAC5B,uBAAuB,yDAAW;AAClC,aAAa,GAAG,GAAG;AACnB,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAmD;AAChF;AACA;AACA;AACA,0BAA0B,wDAAU,GAAG,qDAAO,IAAI,4DAAM;AACxD,QAAQ,wDAAU;AAClB;AACA,oEAAoE,uCAAuC,sDAAe,0BAA0B,sDAAe,oBAAoB;AACvL,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,+BAA+B,GAAG;AACjE,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sDAAsD,EAAE;AACxI;AACA;AACA;AACA,8BAA8B,wDAAU,GAAG,wDAAU,oCAAoC,sDAAQ;AACjG;AACA,4EAA4E,2CAA2C,sDAAe,eAAe,sDAAe,CAAC,sDAAe,GAAG;AACvL,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,GAAG,OAAO,sDAAe,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC5F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA,kEAAkE,sDAAsD,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAA0D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,sCAAsC,0DAA0D;AAChG,sCAAsC,0DAA0D;AAChG;AACA;AACA;AACA;AACA,4BAA4B,8DAAuB,EAAE,6BAA6B;AAClF,4BAA4B,8DAAuB,EAAE,oDAAoD,0CAA0C,EAAE;AACrJ;AACA,SAAS,4EAA4E;AACrF,SAAS,qEAAqE;AAC9E,SAAS,oDAAoD;AAC7D,SAAS,sDAAsD;AAC/D,OAAO;AACP,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,qBAAqB,4EAA4E;AACjG,qBAAqB,qEAAqE;AAC1F,qBAAqB,oDAAoD;AACzE,qBAAqB,sDAAsD;AAC3E;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAuB,EAAE,yBAAyB;AAC1E,wBAAwB,8DAAuB,EAAE,gDAAgD,sCAAsC,EAAE;AACzI;AACA,SAAS,0DAA0D;AACnE;AACA,SAAS,oDAAoD;AAC7D;AACA,SAAS,+CAA+C;AACxD;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY;AACZ,cAAc,oDAAoD,gEAAyB,oBAAoB,kCAAkC,EAAE,EAAE;AACrJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,yDAAyD,+CAA+C,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D,2CAA2C,eAAe;AAC1D,2CAA2C,eAAe;AAC1D,4CAA4C,eAAe;AAC3D,2CAA2C,eAAe;AAC1D,0CAA0C,eAAe;AACzD,4CAA4C,eAAe;AAC3D,4CAA4C,eAAe;AAC3D,yCAAyC,eAAe;AACxD,yCAAyC,eAAe;AACxD,6CAA6C,eAAe;AAC5D,4CAA4C,eAAe;AAC3D,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,4CAA4C,uCAAuC;AACnF,4CAA4C,6DAA6D;AACzG,4CAA4C,oDAAoD;AAChG,yCAAyC,iDAAiD;AAC1F,yCAAyC,uDAAuD;AAChG,yCAAyC,uDAAuD;AAChG,0CAA0C,eAAe;AACzD,0CAA0C,iCAAiC;AAC3E,2CAA2C,kCAAkC;AAC7E,yCAAyC,iDAAiD;AAC1F,yCAAyC,iCAAiC;AAC1E,yCAAyC,uDAAuD;AAChG,yCAAyC,oEAAoE;AAC7G,yCAAyC,oEAAoE;AAC7G,0CAA0C,8DAA8D;AACxG,yCAAyC,oEAAoE;AAC7G,+CAA+C,uDAAuD;AACtG,6CAA6C,iEAAiE;AAC9G,0CAA0C,sBAAsB;AAChE,8CAA8C,sBAAsB;AACpE,4CAA4C,uCAAuC;AACnF,6CAA6C,uCAAuC;AACpF,4CAA4C,iDAAiD;AAC7F,+CAA+C,sEAAsE;AACrH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uBAAuB;AACnF;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA,0DAA0D,0CAA0C;AACpG;AACA;AACA;AACA,sDAAsD,2BAA2B,EAAE;AACnF;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA,0DAA0D,2CAA2C,EAAE;AACvG;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,UAAU,eAAe,EAAE,EAAE;AAChG,kFAAkF,UAAU,gCAAgC,EAAE,EAAE;AAChI,iFAAiF,UAAU,+BAA+B,EAAE,EAAE;AAC9H;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,2EAA2E;AACjG,CAAC;AACD;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,yEAAyE;AAC/F,CAAC;AACD;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,yEAAyE;AAC/F,CAAC;AACD;AACA,YAAY,sDAAQ,EAAE,wEAAwE;AAC9F,CAAC;AACD;AACA,yBAAyB,UAAU;AACnC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;AAC/C;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA,uBAAuB,QAAQ;AAC/B,YAAY,sDAAQ,EAAE,mDAAmD;AACzE,CAAC;AACD,2DAA2D,SAAS,sDAAQ,EAAE,aAAa,MAAM,EAAE;AACnG,+EAA+E,UAAU,2CAA2C,EAAE,EAAE;AACxI,iFAAiF,UAAU,2CAA2C,EAAE,EAAE;AAC1I,wFAAwF,UAAU,qCAAqC,EAAE,EAAE;AAC3I,yFAAyF,UAAU,mCAAmC,EAAE,EAAE;AAC1I,0EAA0E,iBAAiB,EAAE;AAC7F;AACA,gCAAgC,iBAAiB;AACjD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,iDAAiD,sDAAQ;AACzD,eAAe,sDAAQ,EAAE,uBAAuB;AAChD;AACA,uCAAuC,2CAA2C;AAClF;AACA;AACA;AACA;AACA,sEAAsE,sDAAQ;AAC9E;AACA;AACA,WAAW,sDAAQ;AACnB;AACA;AACA,sEAAsE,sDAAQ;AAC9E;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA,mEAAmE,sDAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sDAAsD,EAAE;AAClH;AACA,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B,EAAE;AAC1D,oCAAoC,gCAAgC,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB,EAAE;AACtD,uCAAuC,mCAAmC,EAAE;AAC5E;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA,sDAAsD,gDAAgD;AACtG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA,+DAA+D,4CAA4C;AAC3G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4CAA4C;AAC3F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B;AAClF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6DAA6D;AACnH;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,6DAA6D,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,oCAAoC,mCAAmC;AACvE,0CAA0C,iCAAiC;AAC3E,mCAAmC,iCAAiC;AACpE;AACA,gDAAgD,SAAS;AACzD;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,cAAc;AAC/D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,cAAc;AACzE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,cAAc;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,yDAAyD,yCAAyC,uBAAuB,EAAE,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yCAAyC,6BAA6B,EAAE,EAAE;AACjI;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,cAAc;AAChE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA,2DAA2D,gDAAgD;AAC3G;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gDAAgD;AACnH;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA,sDAAsD,6BAA6B;AACnF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,0DAA0D,oCAAoC;AAC9F;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uEAAuE,aAAa;AACpF,uEAAuE,aAAa;AACpF,yEAAyE,yCAAyC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,yCAAyC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,kGAAkG,EAAE;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6CAA6C,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oHAAoH,EAAE;AAChL;AACA;AACA,0DAA0D,mIAAmI,EAAE;AAC/L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4CAA4C,EAAE;AACxF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uEAAuE,YAAY;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,sCAAsC;AACrH;AACA;AACA;AACA;AACA,sDAAsD,wCAAwC,EAAE;AAChG;AACA;AACA;AACA,6EAA6E,sCAAsC;AACnH,2EAA2E,sCAAsC;AACjH,kFAAkF,YAAY;AAC9F,6EAA6E,2CAA2C;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uCAAuC,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oDAAoD,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAA6C,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAuD,EAAE;AACzG;AACA;AACA;AACA,gDAAgD,uDAAuD,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F,oFAAoF,aAAa;AACjG;AACA;AACA,uCAAuC,4CAA4C,EAAE;AACrF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,mCAAmC,UAAU;AAC/E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC,uDAAuD,sDAAsD,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,iCAAiC,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0CAA0C,EAAE;AACrF;AACA;AACA;AACA;AACA,iDAAiD,oDAAoD,EAAE;AACvG;AACA;AACA,2EAA2E,cAAc;AACzF,uEAAuE,cAAc;AACrF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,sDAAsD,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D,kEAAkE,eAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,aAAa;AACrE;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,+CAA+C,EAAE;AACrH;AACA,qFAAqF,4BAA4B,EAAE;AACnH;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB;AACA,kFAAkF,gBAAgB,EAAE,uBAAuB,wDAAwD;AACnL;AACA;AACA;AACA,aAAa,EAAE,EAAE,GAAG,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA,mEAAmE,wBAAwB,EAAE;AAC7F;AACA,oEAAoE,gFAAgF,EAAE;AACtJ,oFAAoF,0CAA0C,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,2CAA2C;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8CAA8C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B,oCAAoC;AACpC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,gCAAgC;AAChC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,mCAAmC;AACnC,4BAA4B;AAC5B,4BAA4B;AAC5B,sCAAsC;AACtC,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,+BAA+B;AAC/B,6BAA6B;AAC7B,4BAA4B;AAC5B,2BAA2B;AAC3B,8BAA8B;AAC9B,6BAA6B;AAC7B,2BAA2B;AAC3B,gCAAgC;AAChC,+BAA+B;AAC/B,4BAA4B;AAC5B,gCAAgC;AAChC,iCAAiC;AACjC,+BAA+B;AAC/B,2BAA2B;AAC3B,6BAA6B;AAC7B,gCAAgC;AAChC,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,oCAAoC;AACpC;AACA,CAAC;AACD;AACA,YAAY,cAAc,uBAAuB;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sBAAsB;AAC3D;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qCAAqC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,mCAAmC;AACnC,gCAAgC;AAChC,2BAA2B;AAC3B,gCAAgC;AAChC,8BAA8B;AAC9B,0BAA0B;AAC1B,2BAA2B;AAC3B,8CAA8C;AAC9C,kDAAkD;AAClD,6BAA6B;AAC7B,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,6BAA6B;AAC7B,yCAAyC;AACzC,uCAAuC;AACvC,oCAAoC;AACpC,4BAA4B;AAC5B,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,4BAA4B;AAC5B,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,6BAA6B;AAC7B,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,yCAAyC;AACzC,mCAAmC;AACnC,+BAA+B;AAC/B,kCAAkC;AAClC,wBAAwB;AACxB,kCAAkC;AAClC,mCAAmC;AACnC,kCAAkC;AAClC,mCAAmC;AACnC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,oCAAoC;AACpC,+BAA+B;AAC/B,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,6BAA6B;AAC7B,gCAAgC;AAChC,4BAA4B;AAC5B,uCAAuC;AACvC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wCAAwC;AACxC,wBAAwB;AACxB,kCAAkC;AAClC,2BAA2B;AAC3B,6BAA6B;AAC7B,2BAA2B;AAC3B,6BAA6B;AAC7B,mCAAmC;AACnC,wBAAwB;AACxB,8BAA8B;AAC9B,iCAAiC;AACjC,6BAA6B;AAC7B,0BAA0B;AAC1B,mCAAmC;AACnC,+CAA+C;AAC/C,mCAAmC;AACnC,kCAAkC;AAClC,qCAAqC;AACrC,wCAAwC;AACxC,iCAAiC;AACjC,mCAAmC;AACnC,+BAA+B;AAC/B,mCAAmC;AACnC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC,mCAAmC;AACnC,8BAA8B;AAC9B,gCAAgC;AAChC,6BAA6B;AAC7B,mCAAmC;AACnC,sCAAsC;AACtC,6BAA6B;AAC7B,gCAAgC;AAChC,sCAAsC;AACtC,4CAA4C;AAC5C,yCAAyC;AACzC,oCAAoC;AACpC,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,iCAAiC;AACjC,yCAAyC;AACzC,uCAAuC;AACvC,kCAAkC;AAClC,+BAA+B;AAC/B,4CAA4C;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,EAAE;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sCAAsC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yCAAyC;AACjG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,0CAA0C;AACnG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sCAAsC;AAC3F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC;AACrF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oCAAoC;AACvF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC;AACrF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oCAAoC;AACvF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA,CAAC;AACD;AACA;AACA;AACA,6DAA6D;AAC7D,+DAA+D;AAC/D,6DAA6D;AAC7D,+DAA+D;AAC/D,iEAAiE;AACjE,qEAAqE;AACrE,sEAAsE;AACtE,kEAAkE;AAClE,uDAAuD;AACvD,4DAA4D;AAC5D,qDAAqD;AACrD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,oEAAoE;AACpE,sEAAsE;AACtE,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,4DAA4D;AAC5D,iEAAiE;AACjE,0DAA0D;AAC1D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF,oEAAoE,iBAAiB;AACrF,sEAAsE,kBAAkB;AACxF,0EAA0E,kBAAkB;AAC5F,2EAA2E,kBAAkB;AAC7F,uEAAuE,kBAAkB;AACzF,4DAA4D,aAAa;AACzE,iEAAiE,aAAa;AAC9E,0DAA0D,YAAY;AACtE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,+BAA+B,sDAAQ,oCAAoC,iBAAiB;AAC5F;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,+BAA+B,sDAAQ,oCAAoC,iBAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,oCAAoC,iBAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wDAAwD,yCAAyC;AACjG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,wCAAwC;AAC/F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD;AACrH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gDAAgD;AAC/G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD;AACrH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,iEAAiE,gDAAgD;AACjH;AACA;AACA,4DAA4D,gCAAgC,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA,uDAAuD,0DAA0D,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA,qDAAqD,2BAA2B,EAAE;AAClF;AACA;AACA;AACA,qDAAqD,2BAA2B,EAAE;AAClF;AACA;AACA;AACA,8CAA8C,2BAA2B,EAAE;AAC3E;AACA,wEAAwE;AACxE,2EAA2E;AAC3E;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,mBAAmB;AAC1F;AACA;AACA,8DAA8D,2BAA2B,EAAE;AAC3F;AACA;AACA;AACA,gEAAgE,eAAe,kCAAkC,EAAE,EAAE;AACrH,iBAAiB,sEAAsE;AACvF;AACA;AACA;AACA;AACA;AACA,yFAAyF,2BAA2B,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mCAAmC,yCAAyC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,gEAAgE,eAAe,kCAAkC,EAAE,EAAE;AACrH;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wBAAwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uCAAuC,EAAE;AACzF;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,WAAW;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0BAA0B,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,aAAa;AACzF;AACA;AACA;AACA;AACA;AACA,iFAAiF,oCAAoC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B,EAAE;AACxF;AACA;AACA,oDAAoD,mBAAmB;AACvE;AACA;AACA;AACA;AACA,+DAA+D,0CAA0C,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,sCAAsC,6BAA6B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,uCAAuC;AAC7F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC;AACrF;AACA,CAAC;AACD;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8CAA8C,+BAA+B;AAC7E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA,CAAC;AACD;AACA,iBAAiB;AACjB,kBAAkB;AAClB,kBAAkB;AAClB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;AACA;AACA,yDAAyD,yCAAyC,EAAE;AACpG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,aAAa;AACb,2EAA2E,sDAAQ;AACnF,SAAS;AACT;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,6DAA6D,iCAAiC;AAC9F;AACA;AACA;AACA,oDAAoD,gCAAgC,sDAAQ,qBAAqB,EAAE;AACnH;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,oCAAoC,sDAAQ,oBAAoB,8CAA8C;AAC9G,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,oDAAoD,qBAAqB;AACzE;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,oDAAoD,qBAAqB;AACzE,eAAe,sDAAQ;AACvB;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA,4CAA4C;AAC5C;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA,yEAAyE,mBAAmB,IAAI,EAAE,EAAE;AACpG,qCAAqC,yDAAyD;AAC9F,4CAA4C;AAC5C;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,4BAA4B,0BAA0B,EAAE;AACnG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,kDAAkD,0BAA0B,EAAE;AAC9E;AACA;AACA,0DAA0D;AAC1D,iEAAiE;AACjE,gEAAgE;AAChE;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mCAAmC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,+BAA+B,eAAe;AAC9C;AACA;AACA,0EAA0E,kCAAkC,EAAE;AAC9G;AACA;AACA;AACA,sCAAsC,qCAAqC,EAAE;AAC7E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA,oDAAoD,4EAA4E,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,8BAA8B,EAAE;AACtG,gDAAgD,sDAAQ;AACxD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA,wDAAwD,gCAAgC;AACxF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6CAA6C,4BAA4B,EAAE;AAC3E,8CAA8C,4BAA4B,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sDAAsD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8DAA8D,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAwD;AAClF;AACA;AACA;AACA,sBAAsB,uDAAuD;AAC7E;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA,sBAAsB,mDAAmD;AACzE;AACA;AACA,sBAAsB,uDAAuD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,8BAA8B,UAAU;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,CAAC,sDAAQ,GAAG,iBAAiB,yFAAyF;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,CAAC,sDAAQ,GAAG,iBAAiB,6GAA6G;AAC9L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,CAAC,sDAAQ,GAAG,iBAAiB,4BAA4B;AACzG;AACA;AACA;AACA,wCAAwC,sDAAQ,CAAC,sDAAQ,GAAG,iBAAiB,wEAAwE;AACrJ;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB,EAAE;AAC9F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,8DAA8D,MAAM;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qFAAqF;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,0BAA0B;AAC1B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAA4C,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,+DAA+D,6CAA6C;AAC5G;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2BAA2B;AAC7F,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,+BAA+B,6EAA6E,EAAE;AAC9G;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6EAA6E,wCAAwC;AACrH;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iCAAiC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD,8BAA8B;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,SAAS;AACT,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yCAAyC,EAAE;AACzF;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wCAAwC,EAAE;AACtF;AACA;AACA,CAAC;AACD;AACA,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,gDAAgD,mDAAmD,EAAE;AACrG,gDAAgD,mDAAmD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,sGAAsG,kBAAkB;AACxH;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,4DAA4D,QAAQ,YAAY;AAClK;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA,wDAAwD,6CAA6C,EAAE;AACvG,wDAAwD,0CAA0C,EAAE;AACpG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+CAA+C,oCAAoC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM;AAC5B;AACA,6DAA6D,sDAAQ,0CAA0C;AAC/G,4EAA4E;AAC5E;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,yBAAyB,sDAAQ,QAAQ;AAC3G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2GAA2G,mEAAmE,EAAE;AAChL;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,qCAAqC;AACtG,kEAAkE,qCAAqC;AACvG,yEAAyE,qCAAqC;AAC9G,qEAAqE,qCAAqC;AAC1G,mEAAmE,qCAAqC;AACxG,6EAA6E,qCAAqC;AAClH,6DAA6D,qCAAqC;AAClG,gFAAgF,qCAAqC;AACrH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,4BAA4B,gBAAgB;AAC5C,2DAA2D;AAC3D;AACA;AACA;AACA,KAAK,EAAE,EAAE;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,kBAAkB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA;AACA,oBAAoB,4CAA4C,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uDAAuD;AACzG;AACA,uCAAuC,sDAAQ;AAC/C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B,EAAE;AACvE;AACA;AACA;AACA,qDAAqD,kBAAkB,EAAE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAgE;AAC9F;AACA,8BAA8B,yDAAyD;AACvF;AACA,8BAA8B,4DAA4D;AAC1F;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,CAAC,sDAAQ,GAAG,cAAc,wEAAwE;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,0CAA0C,cAAc;AACxD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,oDAAoD,6CAA6C;AACjG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,yCAAyC;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,oCAAoC;AACjH,mFAAmF;AACnF;AACA;AACA;AACA;AACA,4EAA4E,qCAAqC;AACjH,gFAAgF,qCAAqC;AACrH,+EAA+E,mCAAmC;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8EAA8E,YAAY;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,6FAA6F,YAAY;AACzG;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,YAAY;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,YAAY;AAC9F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D,SAAS;AACT;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAQ,0CAA0C,kCAAkC,EAAE;AACzG;AACA;AACA;AACA;AACA,uDAAuD,kCAAkC,EAAE;AAC3F;AACA;AACA;AACA;AACA,kDAAkD,kCAAkC,EAAE;AACtF;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,2CAA2C;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gCAAgC,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,aAAa,EAAE;AACxD,wCAAwC,aAAa,EAAE;AACvD,8CAA8C,aAAa,EAAE;AAC7D,+CAA+C,aAAa,EAAE;AAC9D,mDAAmD,aAAa,EAAE;AAClE,gDAAgD,aAAa,EAAE;AAC/D,4CAA4C,6BAA6B,EAAE;AAC3E,6CAA6C,aAAa,EAAE;AAC5D,+CAA+C,aAAa,EAAE;AAC9D,6CAA6C,aAAa,EAAE;AAC5D,mDAAmD,aAAa,EAAE;AAClE,6CAA6C,kCAAkC,EAAE;AACjF,uCAAuC,aAAa,EAAE;AACtD,4CAA4C,aAAa,EAAE;AAC3D,gDAAgD,aAAa,EAAE;AAC/D,+CAA+C,kCAAkC,EAAE;AACnF,gDAAgD,aAAa,EAAE;AAC/D,wCAAwC,aAAa,EAAE;AACvD,iDAAiD,yCAAyC,EAAE;AAC5F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4BAA4B,EAAE;AAC1E;AACA;AACA,yCAAyC,wDAAwD,EAAE;AACnG,wCAAwC,cAAc,EAAE;AACxD;AACA;AACA;AACA,aAAa;AACb,+CAA+C,aAAa,EAAE;AAC9D,mDAAmD,cAAc,EAAE;AACnE,gDAAgD,yCAAyC,EAAE;AAC3F,4CAA4C,cAAc,EAAE;AAC5D,6CAA6C,cAAc,EAAE;AAC7D,+CAA+C,aAAa,EAAE;AAC9D,6CAA6C,aAAa,EAAE;AAC5D,mDAAmD,cAAc,EAAE;AACnE,6CAA6C,aAAa,EAAE;AAC5D,uCAAuC,aAAa,EAAE;AACtD,4CAA4C,oCAAoC,EAAE;AAClF,gDAAgD,oCAAoC,EAAE;AACtF,+CAA+C,cAAc,EAAE;AAC/D,gDAAgD,cAAc,EAAE;AAChE,wCAAwC,cAAc,EAAE;AACxD,iDAAiD,aAAa,EAAE;AAChE,mDAAmD,cAAc;AACjE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,sCAAsC,yCAAyC,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA,4BAA4B;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qCAAqC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kCAAkC,gDAAgD,EAAE;AACpF;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAQ;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sEAAsE,mCAAmC,EAAE;AAC3G;AACA,kDAAkD,sBAAsB;AACxE;AACA,CAAC;AACD,0DAA0D,+BAA+B,KAAK,IAAI,KAAK;AACvG,2CAA2C,gCAAgC,OAAO,GAAG;AACrF,4DAA4D,gCAAgC,OAAO,GAAG;AACtG;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,EAAE,cAAc,QAAQ,KAAK,UAAU;AACjE,oBAAoB;AACpB,mBAAmB;AACnB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,uDAAuD,EAAE;AACrI;AACA;AACA;AACA;AACA;AACA,8GAA8G,kEAAkE,EAAE;AAClL,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,qBAAqB,EAAE;AACjD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iDAAiD,+CAA+C;AAChG;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE,yCAAyC,wBAAwB;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,wDAAwD,yCAAyC;AACjG;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,kDAAkD;AACnH;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8CAA8C;AAC3G;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA,yCAAyC,wBAAwB;AACjE,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4CAA4C;AACvG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,2DAA2D,4CAA4C;AACvG;AACA,CAAC;AACD;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,wBAAwB,mEAAmE,EAAE;AAC7F,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yEAAyE;AACzE,oEAAoE;AACpE,uEAAuE;AACvE;AACA,6DAA6D,kBAAkB,EAAE;AACjF;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,QAAQ,uDAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,kBAAkB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8BAA8B,EAAE;AACvH,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6BAA6B,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,qBAAqB,EAAE;AAC7E,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uCAAuC;AAC/F,uDAAuD,wBAAwB;AAC/E,4DAA4D,qCAAqC;AACjG,4DAA4D,+CAA+C;AAC3G,0DAA0D,+BAA+B;AACzF,uDAAuD,6BAA6B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,mCAAmC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yCAAyC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA,iCAAiC,sDAAQ,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,yDAAyD,IAAI;AAC7D,0DAA0D,uBAAuB;AACjF,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G;AAC/G;AACA;AACA;AACA;AACA,2GAA2G;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,iBAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,QAAQ;AAC3D;AACA,wBAAwB;AACxB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,GAAG;AAC1D;AACA,uCAAuC,4CAA4C,EAAE;AACrF;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;AACzB;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,gBAAgB;AAC5F,gFAAgF,kBAAkB;AAClG,wFAAwF,sBAAsB;AAC9G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,SAAS;AACT,SAAS;AACT,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,kBAAkB;AAC1F,8DAA8D,aAAa;AAC3E,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yCAAyC;AACpG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yCAAyC;AACpG;AACA,CAAC;AACD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E,mFAAmF;AACnF,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,kFAAkF;AAClF,uEAAuE;AACvE,4EAA4E;AAC5E,uEAAuE;AACvE,4EAA4E;AAC5E,oFAAoF;AACpF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,kCAAkC,kBAAkB,kBAAkB,yBAAyB;AAC/F;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA,wBAAwB,mEAAmE,EAAE;AAC7F,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAmD,EAAE;AAC/F,yEAAyE,+BAA+B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,uFAAuF,kCAAkC,EAAE;AAC3H;AACA,yDAAyD;AACzD,iEAAiE,EAAE;AACnE;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4DAA4D,mCAAmC,sDAAQ,WAAW,EAAE;AACpH;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ,kCAAkC,gDAAgD,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8BAA8B;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wEAAwE,EAAE;AACvH;AACA;AACA;AACA;AACA,6CAA6C,wEAAwE,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,qDAAqD,gDAAgD;AACrG;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,SAAS,2BAA2B;AACxE;AACA,SAAS;AACT,oFAAoF,uBAAuB,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,8BAA8B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sEAAsE,EAAE;AACrH;AACA;AACA;AACA;AACA,6CAA6C,sEAAsE,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,qDAAqD,gDAAgD;AACrG;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,6BAA6B;AACjE;AACA,KAAK;AACL;AACA,yEAAyE,wBAAwB,EAAE,2CAA2C,yBAAyB,EAAE;AACzK;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,0CAA0C,sCAAsC,EAAE,EAAE;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6CAA6C,yCAAyC,EAAE,EAAE;AAClJ;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wEAAwE,WAAW,GAAG;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,2CAA2C,EAAE;AACxF;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC,EAAE;AAC9D;AACA;AACA,KAAK;AACL,wDAAwD,6CAA6C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAgE,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,6CAA6C,oBAAoB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gEAAgE,kEAAkE,EAAE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ,uCAAuC,kBAAkB;AACjG;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,qCAAqC,EAAE;AAC/H,sCAAsC,yBAAyB,EAAE;AACjE,+EAA+E,0CAA0C,EAAE;AAC3H,8BAA8B,sDAAQ,kDAAkD,qEAAqE,EAAE;AAC/J,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA,8DAA8D,gDAAgD,EAAE;AAChH,4DAA4D,8CAA8C,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C,4CAA4C,sDAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,8CAA8C,EAAE;AAC1G;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,6BAA6B,EAAE;AACzE,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mFAAmF,aAAa;AAChG,2FAA2F,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,aAAa;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAQ,mCAAmC,0CAA0C,EAAE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sDAAQ,qCAAqC,0CAA0C,EAAE;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sDAAQ,+BAA+B,yCAAyC,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0DAA0D,cAAc,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,wDAAwD,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,4DAA4D,yCAAyC,EAAE;AACvG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uDAAuD,wCAAwC,EAAE;AACjG;AACA;AACA;AACA,uCAAuC,iDAAiD,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA,6EAA6E,aAAa;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,kBAAkB;AACnG,yFAAyF,sBAAsB;AAC/G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,4DAA4D,iBAAiB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wCAAwC,EAAE;AACxG;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,uCAAuC,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wCAAwC;AACpF,4CAA4C,wCAAwC;AACpF;AACA;AACA;AACA,gDAAgD,4CAA4C;AAC5F,6CAA6C,yCAAyC;AACtF,gDAAgD,mEAAmE;AACnH,+CAA+C,kEAAkE;AACjH,iDAAiD,oEAAoE;AACrH;AACA;AACA;AACA,iDAAiD,oEAAoE;AACrH,kDAAkD,qEAAqE;AACvH,iDAAiD,oEAAoE;AACrH,2CAA2C,uCAAuC;AAClF,4CAA4C,6DAA6D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6CAA6C,oDAAoD;AACjG;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB,EAAE;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF,qDAAqD,gCAAgC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uDAAuD,gCAAgC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uFAAuF;AACvF,oFAAoF;AACpF,uFAAuF;AACvF,mFAAmF;AACnF,oFAAoF;AACpF,uFAAuF;AACvF,iFAAiF;AACjF,qFAAqF;AACrF,mFAAmF;AACnF,mFAAmF,gCAAgC;AACnH,iFAAiF,2BAA2B;AAC5G,6EAA6E;AAC7E,gFAAgF;AAChF,oFAAoF;AACpF,kFAAkF;AAClF,2EAA2E,2BAA2B;AACtG,gFAAgF;AAChF,iFAAiF;AACjF;AACA;AACA,yCAAyC,0BAA0B,EAAE;AACrE;AACA,4EAA4E;AAC5E,4EAA4E;AAC5E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,4BAA4B;AAC/G;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,oCAAoC,iBAAiB;AACxF;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA,qBAAqB,oDAAM;AAC3B,yDAAyD,gDAAgD,EAAE;AAC3G;AACA;AACA,gEAAgE,8BAA8B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,gDAAgD,8CAA8C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oDAAoD,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8CAA8C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oDAAoD,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,4CAA4C;AAC5H,qFAAqF,uBAAuB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0CAA0C,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,gCAAgC,UAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sDAAQ,mCAAmC,iEAAiE,EAAE;AAClL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qDAAqD,EAAE;AAChH;AACA;AACA;AACA,2DAA2D,mCAAmC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAmC,EAAE;AACxF,iDAAiD,mCAAmC,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6EAA6E,aAAa;AAC1F,iEAAiE,aAAa;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,aAAa;AACjF;AACA;AACA;AACA,8DAA8D,8CAA8C;AAC5G,wEAAwE,aAAa;AACrF,gFAAgF,aAAa;AAC7F;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,0BAA0B,sCAAsC,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AAC3B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA,0DAA0D,+DAA+D,EAAE;AAC3H;AACA;AACA;AACA,8DAA8D,4BAA4B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2CAA2C,sDAAQ,qCAAqC,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ;AAClD;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ;AAClD;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ;AAC5C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,2DAA2D;AAC3D;AACA;AACA,2CAA2C,mCAAmC;AAC9E,4CAA4C,mCAAmC;AAC/E,8CAA8C,mCAAmC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,mBAAmB;AACnF;AACA;AACA,wDAAwD,2BAA2B,EAAE;AACrF;AACA;AACA;AACA,gEAAgE,eAAe,kCAAkC,EAAE,EAAE;AACrH,uBAAuB,gFAAgF;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,2BAA2B,EAAE;AAC9G;AACA,qEAAqE,+BAA+B;AACpG;AACA;AACA;AACA;AACA,iBAAiB,mEAAmE;AACpF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,uCAAuC,EAAE;AAC/G;AACA;AACA;AACA,oEAAoE,mCAAmC,SAAS;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,qCAAqC,kBAAkB;AACvD,kCAAkC,eAAe;AACjD;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,mCAAmC,EAAE;AAC/H,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2CAA2C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oDAAoD;AACjG,uCAAuC,uBAAuB;AAC9D,yDAAyD,yCAAyC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,gCAAgC,UAAU;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,oCAAoC,iBAAiB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE,qEAAqE,kBAAkB;AACvF,iEAAiE,gBAAgB;AACjF,6EAA6E,sBAAsB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB,aAAa,oDAAM;AACnB;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAqD;AACxE;AACA;AACA,mBAAmB,uDAAuD;AAC1E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa,4BAA4B,YAAY;AAC1E;AACA;AACA;AACA;AACA,mEAAmE,UAAU,0CAA0C,EAAE;AACzH,mEAAmE,mBAAmB;AACtF;AACA;AACA,wDAAwD,2BAA2B,EAAE;AACrF;AACA,iEAAiE,8BAA8B;AAC/F;AACA;AACA;AACA;AACA,iFAAiF,2BAA2B,EAAE;AAC9G;AACA,wEAAwE,+BAA+B;AACvG;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,8CAA8C,8CAA8C,EAAE;AAC9F;;AAEA;AACA;AACA;AACA,8IAA8I,mBAAmB,EAAE;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oCAAoC,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oCAAoC,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gDAAgD,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iCAAiC,oBAAoB;AACrD,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mGAAmG,0CAA0C,EAAE;AAC/I;AACA;AACA,0CAA0C,sDAAQ;AAClD,0CAA0C,sDAAQ;AAClD;AACA,sCAAsC,sDAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,iCAAiC,EAAE,uBAAuB,kDAAkD,EAAE;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kDAAkD,8BAA8B;AAChF;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,0BAA0B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,qDAAqD,EAAE;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,aAAa,EAAE;AACzF;AACA,sEAAsE,aAAa,EAAE;AACrF;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,sDAAQ;AAC3F;AACA;AACA,oEAAoE,qCAAqC;AACzG;AACA,iFAAiF,gDAAgD;AACjI;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,2DAA2D,sDAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,+FAA+F,yBAAyB,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uCAAuC,8CAA8C,EAAE,EAAE;AAC/H,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iDAAiD,EAAE;AACnG,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO,qBAAqB,OAAO;AACnD;AACA;AACA;AACA,oGAAoG,QAAQ,sDAAQ,0EAA0E,EAAE;AAChM;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,6DAA6D,EAAE;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB,KAAK;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uFAAuF;AAC/H,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8CAA8C,EAAE;AACpG,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA,mEAAmE,OAAO;AAC1E;AACA;AACA;AACA;AACA,oDAAoD,mDAAmD,EAAE;AACzG,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ;AAC3C;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,OAAO;AACnE;AACA;AACA;AACA;AACA;AACA,oEAAoE,sDAAQ;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0EAA0E,oBAAoB,EAAE;AAChG,sDAAsD,0DAA0D,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H,mDAAmD,EAAE;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD,8DAA8D,YAAY;AAC1E;AACA;AACA;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0BAA0B;AAClG,qEAAqE,wBAAwB;AAC7F,mEAAmE,gCAAgC;AACnG,iEAAiE,wBAAwB;AACzF;AACA;AACA;AACA;AACA;AACA,sEAAsE,oCAAoC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8CAA8C;AAC9F,yBAAyB;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA,gEAAgE,EAAE;AAClE;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,sBAAsB,EAAE;AACpG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sKAAsK,0CAA0C,EAAE;AAClN;AACA,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,kCAAkC,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ;AACpD,SAAS;AACT;AACA;AACA;AACA,4CAA4C,sDAAQ;AACpD;AACA;AACA;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+BAA+B,EAAE;AACpF;AACA;AACA;AACA,+CAA+C,+BAA+B,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAQ;AAC3B;AACA;AACA;AACA,gFAAgF,sDAAQ;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,UAAU,yEAAyE,EAAE,EAAE;AAChK;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,kCAAkC,4BAA4B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sEAAsE;AAChI;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB,EAAE;AAC9D,mCAAmC,uEAAuE,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,EAAE;AAChG;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA,8DAA8D,sDAAQ,CAAC,sDAAQ,EAAE,2CAA2C,aAAa,+BAA+B;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAoD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,aAAa;AACb;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,mCAAmC;AACxC;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,qBAAqB,OAAO;AAC5B;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA,iFAAiF,mBAAmB,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wHAAwH,4DAA4D,EAAE;AACtL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,kCAAkC,UAAU;AAC9E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,iEAAiE,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qBAAqB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0DAA0D;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,6EAA6E;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,CAAC,sDAAQ,GAAG,0EAA0E,0CAA0C,6EAA6E,skBAAskB;AAC1yB;AACA,4CAA4C,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,6EAA6E;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oBAAoB,EAAE;AACpF,+CAA+C,eAAe,EAAE;AAChE;AACA,uGAAuG,uBAAuB,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,yDAAyD,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAQ,0CAA0C,mBAAmB;AAClG;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gFAAgF,uBAAuB,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uBAAuB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sDAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,iCAAiC,EAAE;AAC9G,0CAA0C,iCAAiC,EAAE,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAyC,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sDAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,0CAA0C,EAAE;AAC9I;AACA;AACA,yCAAyC,qDAAqD,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,oCAAoC,UAAU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAA6D,EAAE;AACvG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4FAA4F;AACjK;AACA,6DAA6D,uBAAuB,EAAE;AACtF;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,uDAAuD,+JAA+J,sDAAQ;AAClR,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,6BAA6B,iBAAiB;AAC9C,+BAA+B,mBAAmB;AAClD,6BAA6B,iBAAiB;AAC9C,gCAAgC,oBAAoB;AACpD;AACA;AACA,YAAY;AACZ;AACA;AACA,WAAW,sDAAQ,CAAC,sDAAQ,GAAG,YAAY;AAC3C,uIAAuI;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ,CAAC,sDAAQ,GAAG,YAAY,6QAA6Q,sDAAQ,CAAC,sDAAQ,GAAG,iDAAiD,sDAAQ,CAAC,sDAAQ,GAAG,4QAA4Q;AAC7pB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,qDAAqD,kBAAkB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM,wCAAwC,qBAAqB,EAAE;AACtF;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oCAAoC,wBAAwB;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,mCAAmC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yDAAyD,EAAE;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,yEAAyE,EAAE;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yEAAyE,EAAE;AACxI;AACA;AACA;AACA;AACA,6CAA6C,sCAAsC,GAAG,QAAQ,uCAAuC,EAAE,GAAG,kDAAkD;AAC5L,gFAAgF,yEAAyE;AACzJ;AACA;AACA;AACA;AACA,8FAA8F,+DAA+D;AAC7J;AACA;AACA,sFAAsF,kFAAkF;AACxK;AACA;AACA;AACA,iEAAiE,qEAAqE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2KAA2K,oGAAoG,EAAE;AACjR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ;AAC7B;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ;AACjC;AACA,kDAAkD,sCAAsC;AACxF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAiC,EAAE;AAC3F;AACA,SAAS;AACT;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E,kFAAkF,yCAAyC,EAAE;AAC7H,sCAAsC;AACtC,uFAAuF,6CAA6C;AACpI;AACA;AACA,SAAS,EAAE,EAAE,kBAAkB,0BAA0B,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAmD,EAAE;AACtF;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA,SAAS;AACT,8CAA8C,mEAAmE;AACjH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,6BAA6B;AAC7G;AACA;AACA;AACA,8EAA8E,aAAa;AAC3F,gFAAgF,aAAa;AAC7F,2EAA2E,aAAa;AACxF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,gCAAgC,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,iCAAiC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,sCAAsC,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gFAAgF,uCAAuC,EAAE;AACzH;AACA;AACA;AACA,aAAa;AACb,2EAA2E,sDAAsD,sBAAsB,EAAE,EAAE,EAAE;AAC7J;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qEAAqE,iDAAiD;AACtH;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ,CAAC,sDAAQ,GAAG;AAC9D,gDAAgD,sDAAQ,CAAC,sDAAQ,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAgC,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,wBAAwB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gDAAgD,EAAE;AAC3F,sCAAsC;AACtC,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,6DAA6D,2BAA2B,EAAE;AAC1F;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,kDAAkD,EAAE;AACpI;AACA,mDAAmD,iBAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iCAAiC,EAAE;AAC5E;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,aAAa,oDAAM;AACnB,aAAa,oDAAM;AACnB;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,cAAc;AAC5F,kEAAkE,cAAc;AAChF;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sBAAsB;AACzF,iFAAiF,+BAA+B,qEAAqE,+BAA+B;AACpN;AACA,aAAa;AACb,gDAAgD,mCAAmC;AACnF,qDAAqD,sDAAQ,sCAAsC;AACnG;AACA,oEAAoE,qCAAqC;AACzG;AACA;AACA,oEAAoE,iCAAiC;AACrG;AACA;AACA;AACA,SAAS;AACT,qCAAqC,EAAE,sDAAQ;AAC/C;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC,mCAAmC;AACzE;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iDAAiD,wBAAwB;AACzE;AACA,CAAC;AACD;AACA;AACA;AACA,kEAAkE,iCAAiC;AACnG;AACA;AACA;AACA,oDAAoD,gCAAgC,sDAAQ,qBAAqB,EAAE;AACnH;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,oCAAoC,sDAAQ,oBAAoB,8CAA8C;AAC9G,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oEAAoE;AACrH;AACA,sDAAsD,mEAAmE;AACzH,sDAAsD,oEAAoE;AAC1H,eAAe,sDAAQ;AACvB;AACA;AACA,6CAA6C,+BAA+B,kBAAkB,GAAG;AACjG;AACA;AACA,0BAA0B,0GAA0G,mBAAmB,IAAI,EAAE,EAAE,gBAAgB;AAC/K,6CAA6C,uCAAuC;AACpF;AACA;AACA;AACA,mCAAmC,sDAAQ,4BAA4B,0BAA0B,EAAE;AACnG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,2BAA2B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wCAAwC,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E,gEAAgE;AAChE,sEAAsE;AACtE,0EAA0E;AAC1E,kFAAkF;AAClF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B;AACzF;AACA;AACA,qCAAqC,sDAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,8DAA8D,gDAAgD;AAC9G;AACA;AACA,0DAA0D,2BAA2B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,wEAAwE;AACxE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA,oEAAoE,0BAA0B;AAC9F;AACA;AACA,oEAAoE,sBAAsB;AAC1F;AACA;AACA;AACA,gEAAgE,uBAAuB;AACvF;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,SAAS;AACT,oCAAoC,0CAA0C,EAAE,sDAAQ;AACxF,yCAAyC,kFAAkF;AAC3H;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kDAAkD,+BAA+B;AACjF;AACA,CAAC;AACD;AACA;AACA;AACA,kEAAkE,iCAAiC;AACnG;AACA;AACA;AACA,oDAAoD,gCAAgC,sDAAQ,qBAAqB,EAAE;AACnH;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,oCAAoC,sDAAQ,oBAAoB,8CAA8C;AAC9G,SAAS;AACT,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,wCAAwC,sDAAQ,kCAAkC,0BAA0B,EAAE;AAC9G;AACA,2CAA2C,kCAAkC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,aAAa;AACb;AACA;AACA,sEAAsE,mBAAmB,IAAI,EAAE,EAAE;AACjG;AACA,6CAA6C,oCAAoC,kEAAkE,GAAG;AACtJ;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,4BAA4B,0BAA0B,EAAE;AACnG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,2BAA2B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gCAAgC,EAAE;AACvG;AACA;AACA;AACA,sEAAsE,gCAAgC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E,iEAAiE;AACjE,uEAAuE;AACvE,2EAA2E;AAC3E,mFAAmF;AACnF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B;AACzF;AACA;AACA,qCAAqC,sDAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,8DAA8D,gDAAgD;AAC9G;AACA;AACA;AACA;AACA,8DAA8D,8BAA8B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,EAAE;AACpG,6DAA6D,iCAAiC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sDAAQ,iFAAiF,gCAAgC,EAAE;AAChL;AACA;AACA;AACA,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ;AAC/C;AACA;AACA,oEAAoE;AACpE,wEAAwE;AACxE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,uDAAuD,gCAAgC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC;AAClF;AACA,SAAS;AACT,2BAA2B,2DAA2D,EAAE;AACxF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,2BAA2B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE,8DAA8D;AAC9D,oEAAoE;AACpE,wEAAwE;AACxE,gFAAgF;AAChF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,0DAA0D,+BAA+B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gDAAgD;AAC9G;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6BAA6B,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,wEAAwE;AACxE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE,oDAAoD,iEAAiE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE,0CAA0C,uCAAuC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,sDAAsD;AAC/G;AACA,CAAC;AACD;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+BAA+B;AACrF;AACA;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uBAAuB,EAAE;AAC7E;AACA;AACA;AACA,6DAA6D,eAAe,kCAAkC,EAAE,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA,iBAAiB,uDAAuD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6CAA6C,EAAE;AAC9G;AACA;AACA;AACA,qDAAqD,uBAAuB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA,4CAA4C,oDAAoD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa;AACzD;AACA,8CAA8C,0BAA0B,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yDAAyD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,8DAA8D,sDAAQ,EAAE,2CAA2C;AACnH;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uCAAuC,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kFAAkF,6BAA6B;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iDAAiD,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wBAAwB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,sDAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAsD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,2BAA2B,4EAA4E,EAAE;AACzG;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+CAA+C,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,0DAA0D,8CAA8C,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sDAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4CAA4C,sDAAQ;AACpD;AACA;AACA,wDAAwD,sDAAQ;AAChE,sCAAsC,+CAA+C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oDAAoD,sDAAQ,0CAA0C,yDAAyD,EAAE;AACjK;AACA,wCAAwC,sDAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+CAA+C,+CAA+C,EAAE;AAChG,+CAA+C,iEAAiE,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8BAA8B,EAAE;AACvF,gEAAgE,uCAAuC,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,iEAAiE,wCAAwC,EAAE;AAC3G,4DAA4D,mCAAmC,EAAE;AACjG,SAAS;AACT;AACA,iEAAiE,gCAAgC,EAAE;AACnG,4DAA4D,2BAA2B,EAAE;AACzF,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gDAAgD,uCAAuC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA,mFAAmF,uCAAuC,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sEAAsE,mDAAmD,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,4BAA4B,cAAc,mBAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qBAAqB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,sDAAQ;AACpF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+EAA+E,kCAAkC;AACjH;AACA;AACA;AACA;AACA;AACA,2EAA2E,yCAAyC,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,yBAAyB,UAAU;AACnC;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB,EAAE;AAClF,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,wDAAwD,EAAE;AAC3I;AACA;AACA;AACA,aAAa,4DAA4D;AACzE,aAAa,mDAAmD;AAChE,aAAa,6EAA6E;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,mCAAmC,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8DAA8D,qCAAqC,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA,6DAA6D,wEAAwE;AACrI;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA,mEAAmE,6CAA6C,EAAE;AAClH,wCAAwC,sBAAsB,mCAAmC;AACjG,SAAS;AACT;AACA;AACA;AACA,4EAA4E;AAC5E,SAAS;AACT;AACA;AACA;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8CAA8C,2CAA2C,EAAE;AAC3F;AACA;AACA;AACA,gDAAgD,6CAA6C,EAAE;AAC/F,gDAAgD,6CAA6C,EAAE;AAC/F;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mCAAmC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mCAAmC,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,WAAW;AACpC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4CAA4C,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ;AAC7B;AACA,0BAA0B,sDAAQ,iCAAiC,UAAU;AAC7E;AACA;AACA,iDAAiD,sDAAQ,oCAAoC,UAAU;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,6BAA6B;AAC7B;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE,gDAAgD,mDAAmD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,4BAA4B,6DAA6D,EAAE;AAC/I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,4BAA4B,6DAA6D,EAAE;AAC/I,SAAS;AACT;AACA;AACA;AACA,8BAA8B,sDAAQ,8BAA8B,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAoE;AAC3G,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mFAAmF;AACnH,SAAS;AACT;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gCAAgC,uFAAuF;AACvH,SAAS;AACT;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B,6EAA6E,EAAE,EAAE;AAC7J;AACA;AACA;AACA;AACA,+DAA+D,4BAA4B,2EAA2E,EAAE,EAAE;AAC1K,+DAA+D;AAC/D;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA,2EAA2E,6BAA6B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,4DAA4D;AAC5D,4DAA4D;AAC5D;AACA;AACA;AACA,qBAAqB,EAAE,EAAE;AACzB;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB,aAAa;AACb;AACA;AACA,oEAAoE;AACpE,+DAA+D;AAC/D,4EAA4E;AAC5E,oEAAoE;AACpE,mEAAmE;AACnE,gEAAgE;AAChE,0EAA0E;AAC1E,+DAA+D;AAC/D;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAQ;AAC3D;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE,gDAAgD,sCAAsC,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,2CAA2C,+GAA+G,EAAE,EAAE;AAC3P;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA,2DAA2D,mBAAmB,EAAE;AAChF;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE,EAAE;AACzB,qEAAqE,oEAAoE,EAAE;AAC3I;AACA;AACA,yBAAyB,oDAAM;AAC/B;AACA,aAAa;AACb;AACA;AACA;AACA,6DAA6D,qCAAqC,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sDAAsD,sDAAQ;AAC9D,kDAAkD,sDAAQ;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,uDAAuD;AACpF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb,wEAAwE;AACxE;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;AACX,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kEAAkE,qCAAqC,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA,uDAAuD,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,oBAAoB,GAAG,EAAE;AACpH;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb,gCAAgC,wCAAwC;AACxE;AACA;AACA,+DAA+D,kCAAkC,EAAE;AACnG;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oIAAoI;AACxK;AACA;AACA;AACA;AACA,oCAAoC,sHAAsH;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8DAA8D,uCAAuC,EAAE;AACvG;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,4EAA4E,EAAE;AAChJ;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sDAAQ;AAC5E;AACA;AACA,wEAAwE,sDAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAQ,4BAA4B,6DAA6D,EAAE;AACvJ;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,4EAA4E;AAC5E,oEAAoE;AACpE,mEAAmE;AACnE,gEAAgE;AAChE,0EAA0E;AAC1E,+DAA+D;AAC/D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAyC,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,6EAA6E,sEAAsE,EAAE;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,yEAAyE;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ;AACrD;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sDAAQ;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0DAA0D,IAAI;AAC9D;AACA;AACA,sEAAsE,yDAAyD,EAAE;AACjI;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,wDAAwD,UAAU;AAChG;AACA;AACA;AACA;AACA,6DAA6D,sDAAQ,0DAA0D,wBAAwB;AACvJ;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ,uCAAuC,kBAAkB;AACjG;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB;AACA;AACA;AACA,KAAK;AACL,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAQ,0CAA0C,mBAAmB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,sCAAsC,UAAU;AACtF;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yCAAyC,sDAAQ,kEAAkE,2BAA2B;AAC9I;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sDAAQ;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,CAAC,sDAAQ,GAAG,SAAS,8BAA8B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB,sFAAsF;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD,uCAAuC;AAC1F;AACA;AACA;AACA;AACA,+CAA+C,qCAAqC,mEAAmE,EAAE,EAAE;AAC3J;AACA;AACA;AACA,qCAAqC,qEAAqE;AAC1G,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qCAAqC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAyD;AACjF;AACA;AACA,wBAAwB,oDAAoD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAQ,sDAAsD,uBAAuB;AAC1H;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,0BAA0B,sDAAQ,4BAA4B,UAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sDAAQ,sCAAsC,UAAU;AAC7G;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAQ;AACxD;AACA;AACA;AACA;AACA,sCAAsC,uBAAuB,EAAE;AAC/D;AACA;AACA;AACA;AACA,+EAA+E,uBAAuB,EAAE;AACxG,wCAAwC,wCAAwC,EAAE;AAClF,qCAAqC,uCAAuC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAQ,uCAAuC,4BAA4B,EAAE,2BAA2B;AACpJ;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0CAA0C,EAAE;AACxG;AACA;AACA;AACA,+EAA+E,8EAA8E,EAAE;AAC/J;AACA,8EAA8E,uBAAuB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4IAA4I,EAAE;AACnN;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA;AACA,kCAAkC,gGAAgG;AAClI;AACA,SAAS;AACT;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA;AACA;AACA,6DAA6D,oGAAoG,EAAE;AACnK;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qGAAqG,EAAE;AACzK,+BAA+B,sBAAsB,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC,EAAE;AAC9F;AACA,uCAAuC;AACvC;AACA,SAAS,EAAE,EAAE;AACb,iEAAiE,iDAAiD,EAAE;AACpH,+DAA+D;AAC/D;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA,uDAAuD,qCAAqC,EAAE;AAC9F,uCAAuC,oDAAoD,oGAAoG,EAAE,EAAE,EAAE;AACrM,iEAAiE,iDAAiD,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAQ,4DAA4D,oBAAoB,EAAE,yDAAyD,oBAAoB,EAAE,kDAAkD,yBAAyB,EAAE,kDAAkD,yBAAyB,EAAE;AACxW;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ,mDAAmD,sBAAsB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ;AAClD,aAAa;AACb,SAAS;AACT;AACA,qDAAqD,qBAAqB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wKAAwK,EAAE;AACjN,yCAAyC,oGAAoG,EAAE;AAC/I;AACA,qCAAqC;AACrC;AACA,wBAAwB,sDAAQ;AAChC,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA,kDAAkD,+EAA+E,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,mEAAmE,EAAE;AAC/J;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iFAAiF,+DAA+D,EAAE;AAClJ,iDAAiD,sDAAsD,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mDAAmD,+DAA+D,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mDAAmD,+DAA+D,EAAE;AACpH;AACA,qBAAqB,iCAAiC,sDAAQ,uDAAuD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,wIAAwI,EAAE;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,sDAAQ;AAC1D;AACA,mDAAmD,sDAAsD,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oDAAoD,EAAE;AAC1F,uBAAuB,sDAAQ,gCAAgC;AAC/D;AACA;AACA,SAAS,EAAE,EAAE,kCAAkC;AAC/C;AACA;AACA,SAAS,EAAE,EAAE,6BAA6B;AAC1C;AACA;AACA,SAAS,EAAE,EAAE,mCAAmC;AAChD;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,0BAA0B,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mEAAmE,EAAE;AACvI,yEAAyE,+DAA+D,EAAE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8BAA8B,EAAE;AAC/F;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,4CAA4C,UAAU;AAC5F;AACA;AACA;AACA,+DAA+D,sDAAQ,oDAAoD,sBAAsB;AACjJ;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,mDAAmD,sBAAsB;AACzH;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,8CAA8C,EAAE;AAC1H,SAAS;AACT;AACA,2CAA2C,4BAA4B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sCAAsC,EAAE;AAC9E;AACA;AACA;AACA,qDAAqD,6CAA6C,EAAE;AACpG;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6DAA6D,EAAE;AAC7H,yDAAyD,6DAA6D,EAAE;AACxH,SAAS;AACT,4CAA4C,qCAAqC,EAAE;AACnF,uCAAuC,qCAAqC,EAAE;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,6BAA6B,UAAU;AACzE;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,2BAA2B;AACzE,gDAAgD,6BAA6B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oGAAoG,EAAE;AAC1J,sDAAsD,oFAAoF,EAAE;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAQ,0CAA0C,mBAAmB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+DAA+D,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yCAAyC,EAAE;AAC/G;AACA;AACA;AACA,oEAAoE,+CAA+C,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA,wDAAwD,sDAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0GAA0G,8CAA8C,mCAAmC,EAAE,EAAE,EAAE;AACjM;AACA;AACA,gHAAgH,4BAA4B,EAAE;AAC9I;AACA;AACA;AACA,yEAAyE,cAAc,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wCAAwC,qEAAqE,EAAE;AAC/G;AACA;AACA,sDAAsD,sDAAQ;AAC9D;AACA;AACA;AACA,sDAAsD,sDAAQ;AAC9D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yCAAyC,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sDAAQ;AAC1E;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,2DAA2D,oCAAoC,EAAE;AACjG;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,4DAA4D,yBAAyB;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,+DAA+D,mCAAmC,sDAAQ,qBAAqB,EAAE;AACjI;AACA;AACA,+DAA+D,kCAAkC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qCAAqC,EAAE;AACnG,qDAAqD,4CAA4C,EAAE;AACnG;AACA,sDAAsD,sDAAQ,mDAAmD,wBAAwB,EAAE;AAC3I;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ,6BAA6B,UAAU;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sDAAQ,uDAAuD,uBAAuB;AACtK;AACA;AACA;AACA;AACA,mDAAmD,QAAQ,gBAAgB;AAC3E;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,qCAAqC,EAAE;AAC7H,iEAAiE,4CAA4C,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,gDAAgD,gDAAgD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAsD;AAC1G;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B,6BAA6B,EAAE;AACpF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,qCAAqC,EAAE;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gDAAgD;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wDAAwD,EAAE;AAC5G;AACA;AACA;AACA,kDAAkD,wDAAwD,EAAE;AAC5G;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8CAA8C,sBAAsB,uCAAuC,EAAE,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,8DAA8D,cAAc;AAC5E,0EAA0E,iBAAiB;AAC3F,4EAA4E,iBAAiB;AAC7F;AACA;AACA;AACA,6DAA6D,WAAW;AACxE,qEAAqE,kBAAkB;AACvF,2EAA2E,aAAa;AACxF,kEAAkE,8CAA8C;AAChH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,+CAA+C,+CAA+C,EAAE;AAChG;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,6DAA6D,mBAAmB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,mFAAmF,mBAAmB,EAAE;AACxG;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,oDAAoD,+BAA+B,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wCAAwC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,sDAAQ;AACrE;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,2DAA2D,sDAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,aAAa;AAC7F,qFAAqF,aAAa;AAClG;AACA;AACA;AACA,4CAA4C,sDAAQ;AACpD;AACA,2EAA2E,kBAAkB;AAC7F,mFAAmF,aAAa;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mBAAmB,EAAE;AAC/E;AACA;AACA;AACA,2DAA2D,mBAAmB,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E,+BAA+B,4CAA4C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oEAAoE,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yCAAyC,EAAE;AAC3F;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gEAAgE;AAClH;AACA;AACA;AACA,0DAA0D,oDAAoD;AAC9G;AACA;AACA,uCAAuC,sBAAsB,EAAE,yBAAyB,kCAAkC,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yCAAyC,2DAA2D,EAAE;AACtG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,+CAA+C,yCAAyC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kFAAkF,+DAA+D,EAAE;AACnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mEAAmE,EAAE;AACvI,yEAAyE,+DAA+D,EAAE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAkE;AAC7F;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAiE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oGAAoG,EAAE;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sDAAQ;AACtD,iBAAiB;AACjB,aAAa;AACb;AACA,yDAAyD,qBAAqB,EAAE;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kEAAkE;AAC3G,kDAAkD,sBAAsB,+BAA+B,EAAE,EAAE;AAC3G;AACA;AACA;AACA,gEAAgE;AAChE;AACA,gBAAgB;AAChB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,kCAAkC,EAAE;AAC5F;AACA,uDAAuD,0BAA0B,EAAE;AACnF;AACA;AACA;AACA,8CAA8C,0BAA0B,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC,EAAE;AACzF;AACA,kDAAkD,0BAA0B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,2DAA2D;AAC3D,wDAAwD;AACxD,sDAAsD;AACtD,iDAAiD;AACjD,0DAA0D;AAC1D,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,0CAA0C,0BAA0B,EAAE;AACtE;AACA,iEAAiE,oDAAoD;AACrH,mEAAmE,sDAAsD;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,mCAAmC,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB,EAAE;AACtF;AACA;AACA;AACA;AACA,oDAAoD,qEAAqE,4BAA4B,EAAE,EAAE,EAAE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mCAAmC;AAC9E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sDAAsD,mDAAmD,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA,8CAA8C,6CAA6C,EAAE;AAC7F,iDAAiD,4CAA4C,EAAE;AAC/F;AACA,wDAAwD,4CAA4C,EAAE;AACtG;AACA;AACA,gDAAgD,+CAA+C,EAAE;AACjG;AACA,gDAAgD,2BAA2B,EAAE;AAC7E;AACA;AACA,iEAAiE;AACjE,mEAAmE;AACnE,qEAAqE;AACrE,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,4EAA4E;AAC5E,2DAA2D;AAC3D,gEAAgE;AAChE,yDAAyD;AACzD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,gEAAgE;AAChE,wEAAwE;AACxE,wDAAwD;AACxD;AACA,yEAAyE,6BAA6B;AACtG,iEAAiE,2BAA2B;AAC5F,+DAA+D,wBAAwB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6CAA6C;AAChH;AACA;AACA,iDAAiD,qCAAqC,qBAAqB,EAAE,EAAE,EAAE;AACjH;AACA;AACA,wDAAwD,mCAAmC;AAC3F;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEu7J;AACv7J;;;;;;;;;;;;;AChw5BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEyG;AAC9B;AACpC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,8CAA8C,sDAAQ;AACtD;AACA;AACA,iFAAiF,sDAAQ;AACzF;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA;AACA;AACA,6DAA6D,YAAY;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,6CAA6C,sDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,sDAAQ;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sDAAQ;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,UAAU,EAAE;AACnF;AACA;AACA;AACA,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU,eAAe,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,UAAU,+BAA+B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gCAAgC;AAC1E,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wCAAwC;AAC3F;AACA,gDAAgD,0CAA0C;AAC1F,8CAA8C,wCAAwC;;AAEtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,yCAAyC,0BAA0B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,+BAA+B;AACzE,yCAAyC,+BAA+B;AACxE,0CAA0C,gCAAgC;AAC1E,yCAAyC,+BAA+B;AACxE,4CAA4C,+BAA+B;AAC3E,6CAA6C,+BAA+B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4CAA4C;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,qDAAqD,uCAAuC;AAC5F;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kCAAkC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sBAAsB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAkE,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,8BAA8B;AAC9F,QAAQ,oCAAoC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB,EAAE;AACxE;AACA,yBAAyB;AACzB,0CAA0C,EAAE;AAC5C;AACA;AACA,yBAAyB,wFAAwF,EAAE;AACnH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF,gCAAgC,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2CAA2C,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kFAAkF;AAC3G;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiF;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA,iDAAiD,sBAAsB;AACvE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,eAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,SAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,4CAA4C,4BAA4B,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,iCAAiC,sDAAQ;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,sDAAsD,0BAA0B;AAChF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,uDAAuD,4BAA4B;AACnF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,6DAA6D,wCAAwC;AACrG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oCAAoC,EAAE;AAC1F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,kCAAkC,UAAU;AAC1E;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,iCAAiC,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,sCAAsC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+EAA+E;AAC/E,KAAK;AACL,4DAA4D,uCAAuC,EAAE,EAAE;AACvG,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qDAAqD,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,yBAAyB;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,eAAe;AAC9D,4CAA4C,cAAc,KAAK,mBAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kCAAkC;AAC3E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4CAA4C,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,gDAAgD,kCAAkC,EAAE,WAAW,EAAE;AAC3H;AACA;AACA,KAAK;AACL;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0CAA0C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,kCAAkC,EAAE;AAC9D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,mCAAmC,EAAE;AAC/D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6CAA6C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6CAA6C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,mDAAmD,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAuD,EAAE;AACnF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0CAA0C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,mCAAmC,EAAE;AAC/D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4CAA4C,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qDAAqD,EAAE;AACjF;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wEAAwE,EAAE;AAC7H;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sCAAsC;AAC7E;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4BAA4B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kBAAkB,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6BAA6B,EAAE;AACzD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2DAA2D;AAClH;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4CAA4C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,kDAAkD,wDAAwD;AAC1G;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAoD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,GAAG;AAC7D;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,4CAA4C,2CAA2C;AACvF;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,8CAA8C,0CAA0C;AACxF;AACA;AACA;AACA,kDAAkD,sCAAsC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAsC;AAClD;AACA,mDAAmD,sEAAsE;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uEAAuE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC;AAC5F,wDAAwD,sCAAsC;AAC9F;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,kCAAkC,sBAAsB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAS;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,kCAAkC,0DAA0D,EAAE;AAC9F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAA0D,EAAE;AAC9F;AACA;AACA,aAAa;AACb;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C;AACpG;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,6DAA6D,GAAG;AAChE,uEAAuE,GAAG;AAC1E,gFAAgF,GAAG,6BAA6B;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF,6DAA6D;AAC7D;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,oCAAoC,sDAAQ;AAC5C,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,oCAAoC,EAAE;AAC9G;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sDAAQ;AAC9D;AACA,kDAAkD,sDAAQ;AAC1D;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,WAAW;AAC1E,+DAA+D,iDAAiD,GAAG;AACnH;AACA,iEAAiE;AACjE;AACA;AACA,kGAAkG,+CAA+C;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,+BAA+B;AACnG;AACA;AACA;AACA,oFAAoF,6BAA6B;AACjH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sDAAQ;AACpE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yCAAyC,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,kCAAkC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kCAAkC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC,sDAAQ,mCAAmC;AAC1G;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,4BAA4B,oEAAoE;AAChG;AACA;AACA;AACA,4BAA4B,8DAA8D,sDAAQ,uDAAuD;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,sDAAQ;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC,sDAAQ,mCAAmC;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8CAA8C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C,yCAAyC,4BAA4B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C,yCAAyC,4BAA4B;AACrE;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,kEAAkE,EAAE;AACzJ,mDAAmD,+DAA+D,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8BAA8B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B,EAAE;AACvF;AACA;AACA;AACA,6CAA6C,sCAAsC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+IAA+I,2BAA2B,EAAE;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gFAAgF,EAAE;AAClJ;AACA,+BAA+B,uCAAuC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sEAAsE,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,wCAAwC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA,mCAAmC,4CAA4C,sDAAQ,mCAAmC;AAC1H;AACA;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mDAAmD,sDAAQ,0CAA0C;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B,EAAE;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,+BAA+B,sEAAsE;AACrG,+BAA+B,sEAAsE;AACrG;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iEAAiE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sCAAsC,EAAE;AACrF;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yCAAyC,yCAAyC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,sDAAQ;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA,iBAAiB,yCAAyC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,2BAA2B,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E,IAAI,eAAe,kBAAkB,eAAe;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAwE;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qCAAqC,eAAe,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,iBAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,sDAAsD;AAC5D,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA,0CAA0C,yBAAyB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oCAAoC;AAClG,mDAAmD,kDAAkD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iDAAiD;AACnG,kDAAkD,iDAAiD;AACnG,kDAAkD,iDAAiD;AACnG,qDAAqD,oDAAoD;AACzG,uDAAuD,sDAAsD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uCAAuC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0BAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,YAAY,EAAE;AACpE,8CAA8C,+CAA+C,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD;AACA;AACA,oCAAoC,6CAA6C,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,yBAAyB;AACjG;AACA;AACA;AACA,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,8CAA8C,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wCAAwC,EAAE;AACxG;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,0DAA0D,yBAAyB;AACnF;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,2EAA2E;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,yEAAyE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC,YAAY,sDAAQ,EAAE,yEAAyE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ,EAAE,wEAAwE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,oEAAoE,mCAAmC,EAAE;AACzG;AACA,KAAK;AACL;AACA,4DAA4D,kBAAkB,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gDAAgD,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gCAAgC;AAC1E;AACA;AACA;AACA;AACA,4CAA4C,8DAA8D;AAC1G;AACA,+CAA+C,sCAAsC;AACrF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,2BAA2B,mBAAmB;AAC9C;AACA;AACA,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB,MAAM;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAqE,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,2BAA2B,mBAAmB;AAC9C;AACA;AACA,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA,mBAAmB,cAAc,EAAE;AACnC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mDAAmD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS;AAC9E,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS;AAC5F,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACrF,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS;AAC5F,uBAAuB,KAAK,SAAS,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACrF,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS;AACxF,mBAAmB,KAAK,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS,gBAAgB,gBAAgB,gBAAgB;AACzD;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,aAAa;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sDAAQ;AACtD;AACA;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yFAAyF;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC,EAAE;AAC1G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yCAAyC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uDAAuD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAQ,oFAAoF,iCAAiC;AACxK;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA,+CAA+C,sDAAQ,oFAAoF,iCAAiC;AAC5K;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qCAAqC;AAC9E,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,+CAA+C;AAC/F;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mCAAmC;AAClF;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa,EAAE;AAC7C,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,kCAAkC;AACxG;AACA;AACA;AACA;AACA,CAAC;AACD,8CAA8C,aAAa;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB;AAC/E;AACA;AACA,8CAA8C,iBAAiB;AAC/D;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL,iDAAiD,kBAAkB;AACnE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gDAAgD;AACtH,iEAAiE,oCAAoC;AACrG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB,EAAE;AAC3E;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B;AACtD,kBAAkB,sBAAsB;AACxC,QAAQ,sBAAsB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wDAAwD,6BAA6B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAkE;AAChG,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B;AACtD,kBAAkB,sBAAsB;AACxC,QAAQ,sBAAsB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAkE;AAChG,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6DAA6D;AAC9G;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wEAAwE;AAC9H;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA,gBAAgB;AAChB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,aAAa,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,8CAA8C,sDAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAiD;AAClF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA,KAAK;AACL,mDAAmD,yBAAyB;AAC5E,6DAA6D,mCAAmC;AAChG;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAiD,EAAE;AAC7E;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mCAAmC,EAAE;AAC/D;AACA;AACA,KAAK;AACL;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,uDAAuD,EAAE;AACnF;AACA;AACA,KAAK;AACL,mDAAmD,qCAAqC;AACxF,6CAA6C,uCAAuC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yCAAyC;AAC9F,+CAA+C,sCAAsC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAA6C;AACpF;AACA,iFAAiF,+DAA+D;AAChJ;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAA6C;AACpF,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wDAAwD;AACjG;AACA;AACA,0BAA0B,mCAAmC,EAAE;AAC/D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,2CAA2C,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,mBAAmB,EAAE;AACjF;AACA,4DAA4D,uCAAuC;AACnG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gGAAgG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4CAA4C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qDAAqD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,8CAA8C,sDAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,wBAAwB,gDAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D,+CAA+C,mBAAmB;AAClE;AACA;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iCAAiC,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAuD,EAAE;AACnF;AACA;AACA,KAAK;AACL;AACA;AACA,mDAAmD,aAAa,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB,EAAE,YAAY;AACzD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA,8CAA8C,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD,qCAAqC;AACrC;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,UAAU;AACpC;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mBAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uEAAuE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB,MAAM,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wCAAwC;AACrD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAA6C;AACpF,qCAAqC,mCAAmC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,CAAC,sDAAQ,GAAG;AAC3D;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yCAAyC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa;AACnD,sCAAsC,aAAa;AACnD;AACA;AACA,wCAAwC,oCAAoC,EAAE;AAC9E,aAAa,qBAAqB,6BAA6B;AAC/D;AACA,2DAA2D,yBAAyB,mCAAmC,EAAE,EAAE,EAAE;AAC7H,oCAAoC,4BAA4B;AAChE;AACA;AACA,2DAA2D,yBAAyB,mCAAmC,EAAE,EAAE,EAAE;AAC7H,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA,6DAA6D,yBAAyB,+BAA+B,EAAE,EAAE,EAAE;AAC3H,kCAAkC,wBAAwB;AAC1D;AACA;AACA,qDAAqD,yBAAyB,mBAAmB,EAAE,EAAE,EAAE,mBAAmB,YAAY;AACtI;AACA;AACA;AACA,kDAAkD,yBAAyB,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,YAAY;AAChI;AACA;AACA;AACA,uCAAuC,iDAAY;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4CAAO;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,GAAG,sBAAsB,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8BAA8B;AAC7E,gDAAgD,iCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA,uDAAuD,yBAAyB;AAChF;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oCAAoC;AAC/E,8CAA8C,2BAA2B;AACzE;AACA,CAAC;AACD;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC;AAC5F,uDAAuD,qCAAqC;AAC5F;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,KAAK;AACL,mDAAmD,2BAA2B;AAC9E;AACA,CAAC;AACD;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oCAAoC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6BAA6B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAA6C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0CAA0C;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+BAA+B,sDAAQ;AACvC;AACA,0CAA0C,0EAA0E,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,cAAc,EAAE;AACpD;AACA;AACA,mFAAmF,yBAAyB,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iDAAiD,EAAE;AACvH,+DAA+D,4CAA4C,EAAE;AAC7G,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,CAAC,sDAAQ,GAAG,uCAAuC,6aAA6a;AACngB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+GAA+G,sDAAQ,CAAC,sDAAQ,GAAG,mBAAmB,0EAA0E;AAChO;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+DAA+D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAqB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iDAAiD,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,sDAAQ,CAAC,sDAAQ,GAAG,cAAc,qEAAqE;AAC1N;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA,CAAC,gCAAgC,6CAA6C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B,YAAY,sDAAQ,EAAE,mDAAmD;AACzE,CAAC,gCAAgC,6CAA6C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,sDAAQ,EAAE,aAAa,MAAM,EAAE,8BAA8B,wCAAwC;AACrI;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU,2CAA2C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA,yCAAyC,UAAU,2CAA2C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA,sCAAsC,UAAU,qCAAqC,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,qCAAqC,UAAU,mCAAmC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0BAA0B;AACrC;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4CAA4C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAQ;AAC1B;AACA;AACA,iEAAiE,uBAAuB;AACxF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,YAAY,EAAE,sBAAsB,iBAAiB,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA,4BAA4B,wDAAU,GAAG,qDAAO,8BAA8B,qDAAO;AACrF,QAAQ,wDAAU;AAClB;AACA,wEAAwE,uEAAuE;AAC/I,kDAAkD,sDAAsD,sCAAsC,EAAE,EAAE;AAClJ,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,UAAU;AAC/B;AACA;AACA,aAAa;AACb;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAA4D;AAChE;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE,oCAAoC,wCAAwC,wBAAwB,EAAE,EAAE;AACxG,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,yBAAyB;AACpC,WAAW,YAAY;AACvB;AACA;AACA,kBAAkB,uCAAuC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,WAAW,YAAY;AACvB;AACA;AACA,kBAAkB,iDAAiD;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,yBAAyB;AACpC,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,WAAW,yBAAyB;AACpC,WAAW,YAAY;AACvB;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,WAAW,yBAAyB;AACpC,WAAW,YAAY;AACvB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA,4DAA4D,kBAAkB;AAC9E,8CAA8C,8BAA8B;AAC5E,qCAAqC,yCAAyC,yBAAyB,EAAE,EAAE;AAC3G,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B,EAAE;AACzD;AACA;AACA;AACA,kCAAkC,4BAA4B,EAAE;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8BAA8B,EAAE;AACnE,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAiC,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,6DAA6D,qCAAqC;AAClG;AACA;AACA;AACA;AACA,qBAAqB,gFAAgF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gDAAgD,iCAAiC,EAAE;AACnF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,aAAa;AACzE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,mCAAmC,EAAE;AAC/G;AACA,aAAa;AACb;AACA,8BAA8B,uDAAuD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2BAA2B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wDAAU,GAAG,wDAAU;AACzC;AACA,oDAAoD,iDAAiD;AACrG,wCAAwC,4CAA4C,4BAA4B,EAAE,EAAE;AACpH,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,UAAU,eAAe,EAAE,EAAE,QAAQ,EAAE;AAC5D;AACA,CAAC;AACD;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,kCAAkC;AAC9G;AACA;AACA;AACA,2EAA2E,4BAA4B;AACvG;AACA;AACA;AACA;AACA,oEAAoE,6CAA6C;AACjH;AACA;AACA;AACA,qEAAqE,gDAAgD;AACrH;AACA;AACA;AACA,oEAAoE,8CAA8C;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA,0BAA0B,wDAAU,GAAG,wDAAU;AACjD;AACA,oEAAoE,yCAAyC;AAC7G,gDAAgD,oDAAoD,oCAAoC,EAAE,EAAE;AAC5I,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,YAAY,qBAAqB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,qCAAqC,EAAE;AAC9H,sFAAsF,oCAAoC,EAAE;AAC5H,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,2EAA2E,oBAAoB,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA,qDAAqD,iDAAiD,EAAE;AACxG,2BAA2B,sBAAsB,EAAE;AACnD;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA,+EAA+E,kCAAkC;AACjH;AACA;AACA,iFAAiF,kCAAkC;AACnH;AACA;AACA,iBAAiB;AACjB,gDAAgD,2CAA2C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,sBAAsB,iCAAiC,qBAAqB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA,kDAAkD,oFAAoF;AACtI;AACA;AACA;AACA;AACA;AACA,6CAA6C,0CAA0C,EAAE;AACzF,kDAAkD,kCAAkC,yBAAyB,qCAAqC,EAAE,EAAE,EAAE,EAAE;AAC1J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D,uCAAuC;AACvC;AACA,4CAA4C,6DAA6D,EAAE;AAC3G;AACA;AACA;AACA;AACA,iEAAiE,4BAA4B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,uCAAuC;AAClG;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yBAAyB,EAAE;AACpF,4DAA4D,mBAAmB,EAAE;AACjF;AACA;AACA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL,kBAAkB,wDAAU,GAAG,wDAAU;AACzC;AACA,oDAAoD,mDAAmD;AACvG,wCAAwC,4CAA4C,4BAA4B,EAAE,EAAE;AACpH,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,UAAU,iBAAiB,EAAE,EAAE,QAAQ,EAAE;AAC9D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC,EAAE;AAC5F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,8CAA8C,oCAAoC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sDAAQ,CAAC,sDAAQ,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB,8BAA8B,cAAc,EAAE,EAAE,EAAE,EAAE;AACvH,oCAAoC,+CAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,2BAA2B,+CAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,EAAE;AACvF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,kDAAO,kCAAkC,4DAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iCAAiC,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,8BAA8B,UAAU;AAC9E;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,kCAAkC,sDAAQ,8BAA8B,UAAU;AAClF;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,sDAAsD,+CAA+C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+BAA+B,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL,qBAAqB,wDAAU,GAAG,wDAAU;AAC5C;AACA;AACA;AACA;AACA,0DAA0D,wLAAwL;AAClP,2CAA2C,+CAA+C,+BAA+B,EAAE,EAAE;AAC7H,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,UAAU,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,iCAAiC,GAAG,8BAA8B,EAAE,EAAE,QAAQ,EAAE;AAChM;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAA0C,sDAAQ,QAAQ,EAAE;AAC/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA,eAAe,mEAAc,MAAM,CAAC;AACpC,qCAAqC,2BAA2B,EAAE;AAClE,mCAAmC,gDAAgD,EAAE;AACrF,mCAAmC,iDAAiD,EAAE;AACtF;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAc,wEAAwE,CAAC;AACtG,qCAAqC,gDAAgD,EAAE;AACvF,sCAAsC,mDAAmD,EAAE;AAC3F;AACA,6BAA6B,wDAAU,GAAG,qDAAO;AACjD,QAAQ,wDAAU;AAClB;AACA,0EAA0E,yGAAyG;AACnL,mDAAmD,uDAAuD,uCAAuC,EAAE,EAAE;AACrJ,4BAA4B;AAC5B;AACA,KAAK,gBAAgB,UAAU,iBAAiB,GAAG;AACnD;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,mCAAmC,EAAE;AAC/D;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sCAAsC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0CAA0C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+CAA+C,EAAE;AAC1F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,uCAAuC,yBAAyB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,6EAA6E,gCAAgC,EAAE;AAC/G,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sCAAsC,EAAE;AAClE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4CAA4C,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,eAAe;AAClE,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAA6B,EAAE;AAC7E;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,iCAAiC,gBAAgB;AAC3F;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,4CAA4C;AACjD,KAAK,yCAAyC;AAC9C,KAAK,yCAAyC;AAC9C,KAAK,6BAA6B;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK,uEAAuE;AAC5E;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK,kDAAkD;AACvD;AACA,KAAK,0EAA0E;AAC/E,KAAK,0EAA0E;AAC/E;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK,iDAAiD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B,gBAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAAU,GAAG,wDAAU;AAC/C;AACA,2CAA2C,0BAA0B;AACrE,2CAA2C,iDAAiD,+DAA+D,EAAE,2CAA2C;AACxM,4BAA4B;AAC5B;AACA,gBAAgB,0CAA0C;AAC1D,KAAK,gBAAgB,UAAU,uBAAuB,EAAE,EAAE,QAAQ,EAAE;AACpE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB,oDAAM;AACvB,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB,iBAAiB,oDAAM;AACvB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qDAAqD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAA6D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2CAA2C,EAAE;AACrG;AACA;AACA,SAAS;AACT,sDAAsD;AACtD,0CAA0C,EAAE;AAC5C,oDAAoD;AACpD,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2CAA2C,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa,EAAE;AAClD,mBAAmB,mDAAmD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,gBAAgB;AAChB;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sDAAQ;AAC3D;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAQ;AAC7C;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,kDAAkD,EAAE;AAC9E;AACA;AACA,KAAK;AACL;AACA,0BAA0B,oCAAoC,EAAE;AAChE;AACA;AACA,KAAK;AACL;AACA,0BAA0B,kCAAkC,EAAE;AAC9D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sDAAsD,mDAAmD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,sDAAsD,mDAAmD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sDAAQ;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,gDAAgD;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,uCAAuC;AAClG,4DAA4D,wCAAwC;AACpG,gEAAgE,4CAA4C;AAC5G;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEggZ;;AAEhgZ,gC;;;;;;;;;;;;AChl/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEiG;AACiK;AACxN;AACJ;AACD;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC,4BAA4B,4DAAc;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,qCAAqC,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,oBAAoB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qBAAqB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AACtG;AACA,sFAAsF,gDAAgD,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AAC/N,oCAAoC,+DAAwB,EAAE,mRAAmR;AACjV,QAAQ,wDAAiB,oFAAoF,4CAA4C,EAAE,2EAA2E,wBAAwB,EAAE;AAChQ,KAAK,EAAE,aAAa,gEAAyB,8BAA8B;AAC3E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,yEAAyE;AAChG;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,6BAA6B,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+DAAO,KAAK,+DAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4DAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,oBAAoB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,qBAAqB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,wBAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjF,QAAQ,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AAC9D;AACA,sEAAsE,wCAAwC,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,8BAA8B;AAC7P,4BAA4B,+DAAwB,EAAE,6YAA6Y;AACnc,QAAQ,wDAAiB,0EAA0E,8CAA8C,EAAE,mEAAmE,wBAAwB,EAAE,2FAA2F,gCAAgC,EAAE,6FAA6F,iDAAiD,EAAE;AAC7f,KAAK,EAAE,aAAa,gEAAyB,6BAA6B;AAC1E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG;AACxF,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAiD,EAAE;AAC7E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAiD,EAAE;AAC7E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmD,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmD,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAoD,EAAE;AAChF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmD,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAkD,EAAE;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAoD,EAAE;AAChF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAiD,EAAE;AAC7E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mDAAmD,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAkD,EAAE;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qDAAqD,EAAE;AACjF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,8CAA8C;AAC5H,gCAAgC,+DAAwB,EAAE,iCAAiC;;AAE3F;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL,8DAA8D,6DAA6D;AAC3H,wBAAwB,+DAAwB,EAAE,oCAAoC,wEAAiC,GAAG;AAC1H,oCAAoC,mEAA4B;AAChE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAA8D,EAAE;AAC1F;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4DAA4D,EAAE;AACxF;AACA;AACA,KAAK;AACL;AACA,0BAA0B,6DAA6D,EAAE;AACzF;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0DAA0D,EAAE;AACtF;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0DAA0D,EAAE;AACtF;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4DAA4D,EAAE;AACxF;AACA;AACA,KAAK;AACL;AACA,0BAA0B,4DAA4D,EAAE;AACxF;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,sBAAsB,wDAAU,GAAG,qDAAO,IAAI,0DAAI;AAClD,QAAQ,wDAAU;AAClB;AACA,4DAA4D,mCAAmC,+DAAwB,gBAAgB;AACvI,uBAAuB,+DAAwB,EAAE,4LAA4L;AAC7O,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,aAAa,wEAAiC,GAAG;AACxD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,mFAAmF;AACnG,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,0DAAI;AACvD,QAAQ,wDAAU;AAClB;AACA,sEAAsE,wCAAwC,+DAAwB,uBAAuB;AAC7J,4BAA4B,+DAAwB,EAAE,mRAAmR;AACzU,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,aAAa,wEAAiC,GAAG;AACxD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,2EAA2E;AAC7F,IAAI;AACJ;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,MAAM,OAAO,KAAK,2BAA2B,EAAE,kCAAkC,EAAE,kCAAkC,KAAK,6CAA6C,KAAK;AACtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,mDAAmD,SAAS,sCAAsC,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,MAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,mDAAmD,SAAS,sCAAsC,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mBAAmB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB,eAAe,sDAAsD,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,YAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe,sDAAsD,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB,aAAa,oDAAoD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,aAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qDAAQ,mBAAmB,0DAAG;AACjD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,cAAc,gEAAU,MAAM,iDAAI;AAClC,UAAU,mEAAa;AACvB;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA,wCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sDAAQ,CAAC,sDAAQ,GAAG;AACnD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,4BAA4B,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4CAA4C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AAC7F;AACA,oEAAoE,uCAAuC,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AACpM,2BAA2B,+DAAwB,EAAE,2PAA2P;AAChT,QAAQ,wDAAiB,2EAA2E,0CAA0C,EAAE,0EAA0E,0CAA0C,EAAE,kEAAkE,wBAAwB,EAAE;AAClW,KAAK,EAAE,aAAa,gEAAyB,4BAA4B;AACzE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,kCAAkC,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0CAA0C;AAChH,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,6BAA6B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,wBAAwB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,qBAAqB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,gCAAgC,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AACnG,kCAAkC,sDAAQ;AAC1C;AACA,gFAAgF,6CAA6C,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,wBAAwB,+DAAwB,CAAC,sDAAe,GAAG;AACjT,iCAAiC,+DAAwB,EAAE,oQAAoQ;AAC/T,QAAQ,wDAAiB,2EAA2E,uBAAuB,EAAE,wEAAwE,wBAAwB,EAAE;AAC/N,KAAK,EAAE,WAAW,mEAAmE,aAAa,gEAAyB,2BAA2B;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,oDAAoD;AAC3E;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,6BAA6B,GAAG,OAAO,sDAAe,EAAE,EAAE,EAAE,GAAG;AACvJ,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4CAA4C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qBAAqB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AAC5F;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AACjM,0BAA0B,+DAAwB,EAAE,sPAAsP;AAC1S,QAAQ,wDAAiB,0EAA0E,0CAA0C,EAAE,yEAAyE,0CAA0C,EAAE,iEAAiE,wBAAwB,EAAE;AAC/V,KAAK,EAAE,aAAa,gEAAyB,2BAA2B;AACxE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8KAA8K,4CAA4C,EAAE;AAC5N,sOAAsO,gCAAgC,+BAA+B,QAAQ,EAAE;AAC/S,oJAAoJ,yLAAyL,oCAAoC,qCAAqC,EAAE;AACxZ;AACA,iLAAiL,iBAAiB;AAClM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iZAAiZ,kCAAkC,+BAA+B,4FAA4F,EAAE;AAChjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,mCAAmC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC,4BAA4B,6DAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,uCAAuC;AAC/G;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qDAAqD,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,iCAAiC,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AACpG;AACA,kFAAkF,8CAA8C,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AACzN,kCAAkC,+DAAwB,EAAE,+QAA+Q;AAC3U,QAAQ,wDAAiB,kFAAkF,0CAA0C,EAAE,yEAAyE,wBAAwB,EAAE;AAC1P,KAAK,EAAE,WAAW,6BAA6B,aAAa,gEAAyB,4BAA4B;AACjH,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,uEAAuE;AAC9F;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAC5F,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,qBAAqB,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI;AACzE,QAAQ,wDAAU,uBAAuB,wDAAU,EAAE,uDAAS;AAC9D;AACA;AACA,0DAA0D,kCAAkC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,iCAAiC;AAC9O,sBAAsB,+DAAwB,EAAE,yDAAyD,qCAAqC,EAAE;AAChJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG;AACxF,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,2CAA2C,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,sCAAsC;AACtC,4BAA4B,6DAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8BAA8B,EAAE;AAChF,2DAA2D,oDAAoD;AAC/G;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,qBAAqB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qDAAqD,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,yCAAyC,wDAAU,GAAG,wDAAU,uBAAuB,uDAAS,EAAE,wDAAU;AAC5G;AACA,kGAAkG,sDAAsD,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AACjP,0CAA0C,+DAAwB,EAAE,sRAAsR;AAC1V,QAAQ,wDAAiB,0FAA0F,oCAAoC,EAAE,iFAAiF,wBAAwB,EAAE;AACpQ,KAAK,EAAE,WAAW,6BAA6B,aAAa,gEAAyB,qCAAqC;AAC1H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB,iEAAiE;AACxF;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAC5F,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,8BAA8B,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI;AAClF,QAAQ,wDAAU,uBAAuB,wDAAU,EAAE,uDAAS;AAC9D;AACA;AACA,4EAA4E,2CAA2C,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,yCAAyC;AACjR,+BAA+B,+DAAwB,EAAE,kEAAkE,qCAAqC,EAAE;AAClK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG;AACxF,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sDAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gDAAgD,EAAE;AAClH;AACA;AACA;AACA;AACA,6DAA6D,yCAAyC,EAAE;AACxG,KAAK;AACL;AACA;AACA,6DAA6D,yCAAyC,EAAE;AACxG,KAAK;AACL;AACA;AACA,oDAAoD,6BAA6B,EAAE;AACnF,qDAAqD,6BAA6B,EAAE;AACpF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wCAAwC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAAS;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB,EAAE;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0BAA0B,8BAA8B,EAAE;AAC1D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0BAA0B,gCAAgC,EAAE;AAC5D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sBAAsB,EAAE;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,4BAA4B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,+CAA+C,mCAAmC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA,+CAA+C,0BAA0B,iBAAiB,EAAE,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA,+CAA+C,yBAAyB,iBAAiB,EAAE,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,iBAAiB,GAAG,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,uCAAuC;AACnG,4DAA4D,uBAAuB,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,iBAAiB,GAAG,EAAE;AACnH,qCAAqC,4CAA4C;AACjF,8BAA8B,sDAAQ,CAAC,sDAAQ,GAAG,UAAU,uCAAuC;AACnG,4DAA4D,wBAAwB,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS,mBAAmB;AAC1D,4CAA4C,uCAAuC,EAAE;AACrF,qCAAqC,4CAA4C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iCAAiC,uBAAuB,EAAE,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,4CAA4C;AAC5C;AACA,qDAAqD,+BAA+B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kCAAkC,EAAE;AACzF;AACA;AACA;AACA,qDAAqD,sBAAsB,EAAE;AAC7E;AACA;AACA;AACA,qDAAqD,wBAAwB,EAAE;AAC/E;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,+BAA+B;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA,kBAAkB,gCAAgC;AAClD;AACA,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,wDAAwD,uEAAuE,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,oCAAoC;AACtF,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA,+DAA+D,cAAc;AAC7E;AACA;AACA;AACA,8DAA8D,sBAAsB;AACpF;AACA;AACA;AACA;AACA;AACA,4DAA4D,yBAAyB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+CAA+C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mCAAmC;AAClF,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,2BAA2B,OAAO,qBAAqB;AACvD,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,sEAAsE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,GAAG,mBAAmB;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sCAAsC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+BAA+B,OAAO;AACtC;AACA,sBAAsB,6BAA6B;AACnD,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,wDAAwD,+CAA+C;AACvG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,+BAA+B,OAAO;AACtC;AACA,wBAAwB,eAAe;AACvC,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,8DAA8D,+CAA+C;AAC7G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,+BAA+B,MAAM;AACrC;AACA,mBAAmB,mCAAmC;AACtD;AACA,+BAA+B,MAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iBAAiB,8BAA8B;AAC/C;AACA,QAAQ;AACR;AACA,oCAAoC,MAAM;AAC1C,kDAAkD;AAClD;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C,iCAAiC,cAAc;AAC/C;AACA,wCAAwC,+CAA+C;AACvF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,iCAAiC,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oDAAoD,kCAAkC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,6CAA6C,UAAU;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,2DAA2D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iBAAiB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mCAAmC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B,EAAE;AACzD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,gDAAgD,+CAA+C;AAC/F,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,sDAAsD,+CAA+C;AACrG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,8BAA8B;AACxC;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,8BAA8B;AAC9B;AACA;AACA,+BAA+B,YAAY;AAC3C,iCAAiC,cAAc;AAC/C;AACA,yCAAyC,+CAA+C;AACxF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yDAAyD,EAAE,EAAE,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oBAAoB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,qDAAqD,0CAA0C,EAAE;AACjG,yCAAyC,sBAAsB,EAAE;AACjE;AACA;AACA;AACA,sDAAsD,8CAA8C,EAAE;AACtG;AACA;AACA;AACA;AACA,+CAA+C,wCAAwC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,gCAAgC,UAAU;AAC5E;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,eAAe,EAAE;AAC1D;AACA,sBAAsB,8BAA8B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB,EAAE;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,EAAE;AACvC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,0CAA0C,mBAAmB;AAC7D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gCAAgC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,aAAa,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACvF,QAA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B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,gBAAgB,EAAE;AAC3D;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;AACA;AACA,UAAU,eAAe;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA,qBAAqB,UAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,aAAa;AAC7E;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8DAA8D;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAyD,EAAE;AACrF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gCAAgC,+BAA+B,EAAE,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,cAAc,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI;AAClE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,wDAAU;AAClB;AACA;AACA;AACA,4CAA4C,2BAA2B,+DAAwB,uBAAuB,+DAAwB,qBAAqB,+DAAwB,2BAA2B,+DAAwB,yBAAyB;AACvQ,eAAe,+DAAwB,EAAE,2GAA2G,4HAA4H,YAAY,0BAA0B,oCAAoC,gEAAyB,wBAAwB,wEAAiC,EAAE,kEAA2B,GAAG;AAC5c,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,qBAAqB,+DAAwB,EAAE,0HAA0H;AACzK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4DAAc;AAC3D;AACA;AACA,iBAAiB,gEAAU,cAAc,6BAA6B,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC,EAAE;AAC5E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mBAAmB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,EAAE;AACvC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB,EAAE;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,oDAAoD,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AAC9H,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU;AAClB;AACA;AACA,sEAAsE,wCAAwC,+DAAwB,qBAAqB,+DAAwB,2BAA2B,+DAAwB,yBAAyB,+DAAwB,yCAAyC;AAChU,4BAA4B,+DAAwB,EAAE,4EAA4E,qGAAqG,YAAY,0BAA0B,mCAAmC,gEAAyB,0BAA0B,wEAAiC,EAAE,kEAA2B,GAAG;AACpa,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,mFAAmF;AACnG,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,aAAa,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB,EAAE;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW,EAAE;AACvC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gCAAgC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;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O,qBAAqB,+DAAwB,EAAE,uEAAuE,kCAAkC,aAAa,gEAAyB,2BAA2B,wEAAiC,GAAG;AAC7P,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,kEAAkE;AAClF,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA,iBAAiB,gEAAU,cAAc,sBAAsB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAA4C,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,oBAAoB,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,8DAAQ;AAChG,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,wDAAU;AAClB;AACA,wDAAwD,iCAAiC,+DAAwB,wBAAwB,+DAAwB,qBAAqB,+DAAwB,2BAA2B;AACzO,qBAAqB,+DAAwB,EAAE,uEAAuE,kCAAkC,aAAa,gEAAyB,2BAA2B,wEAAiC,GAAG;AAC7P,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,kEAAkE;AAClF,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,wBAAwB,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sCAAsC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC,EAAE;AAC5E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAyD,EAAE;AACrF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,0CAA0C,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,8DAAQ;AACtH,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,0DAAI,KAAK,qDAAO,IAAI,4DAAM;AACrE,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU;AAClB;AACA;AACA;AACA,4DAA4D,mCAAmC,+DAAwB,wBAAwB,+DAAwB,qBAAqB,+DAAwB,2BAA2B,+DAAwB,yBAAyB,+DAAwB,yCAAyC;AACjW,uBAAuB,+DAAwB,EAAE,2EAA2E,yGAAyG,YAAY,0BAA0B,aAAa,gEAAyB,wBAAwB,wEAAiC,EAAE,kEAA2B,GAAG;AAC1Y,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,iEAAiE;AACjF,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,kDAAI;AAC1B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,0BAA0B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,kCAAkC,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,qBAAqB;AAChG,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,gEAAgE,uCAAuC;AACvG,yBAAyB,+DAAwB,EAAE,oTAAoT;AACvW,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,uBAAuB,aAAa,gEAAyB,yBAAyB;AACxG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,+EAA+E;AAC/J,iCAAiC,+DAAwB,EAAE,0UAA0U;AACrY,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,aAAa,gEAAyB,iCAAiC,wEAAiC,GAAG;AAClH,6CAA6C,mEAA4B;AACzE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,uBAAuB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qBAAqB;AAC7F,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,0DAA0D,oCAAoC;AAC9F,sBAAsB,+DAAwB,EAAE,+JAA+J,iBAAiB,aAAa,gEAAyB,sBAAsB;AAC5R,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,kEAAkE,wCAAwC;AAC1G,0BAA0B,+DAAwB,EAAE,oPAAoP;AACxS,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,yBAAyB,aAAa,gEAAyB,0BAA0B,kEAA2B,GAAG;AACzI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,kEAAkE,wCAAwC;AAC1G,0BAA0B,+DAAwB,EAAE,oPAAoP;AACxS,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,yBAAyB,aAAa,gEAAyB,0BAA0B,kEAA2B,GAAG;AACzI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAU,cAAc,yBAAyB,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iCAAiC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qBAAqB;AAC/F,+DAA+D,oDAAoD;AACnH,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,8DAA8D,sCAAsC;AACpG,wBAAwB,+DAAwB,EAAE,0OAA0O;AAC5R,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,qBAAqB,aAAa,gEAAyB,uBAAuB,kEAA2B,GAAG;AAClI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8DAAuB,EAAE,mCAAmC;AAC9F,kCAAkC,8DAAuB,EAAE,0DAA0D,gDAAgD,EAAE,EAAE;AACzK,cAAc,oDAAoD,gEAAyB,8BAA8B;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,EAAE;AAC7B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+EAA+E;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gCAAgC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,iCAAiC;AACrF,oBAAoB,gEAAyB,EAAE,4CAA4C,4BAA4B,EAAE,EAAE;AAC3H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAuB,EAAE,oBAAoB;AAChE,mBAAmB,8DAAuB,EAAE,2CAA2C,iCAAiC,EAAE,4EAA4E;AACtM,cAAc,oDAAoD,gEAAyB,eAAe;AAC1G;AACA;AACA;AACA;AACA,iBAAiB,EAAE,EAAE;AACrB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,8DAAuB,EAAE,4BAA4B;AAChF,2BAA2B,8DAAuB,EAAE,mDAAmD,yCAAyC,EAAE,yFAAyF;AAC3O,cAAc,oDAAoD,gEAAyB,uBAAuB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,EAAE,EAAE;AAC5B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEgmF;;AAEhmF,iC;;;;;;;;;;;;ACtoOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEue;AACsW;AACrxB;AACD;AAC0B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACxC;AACA;AACA;AACA;AACA,0CAA0C,qEAAuB;AACjE;AACA;AACA;AACA;AACA,yBAAyB,sEAAY;AACrC;AACA;AACA;AACA,kBAAkB,qEAAW,uCAAuC,gEAAU;AAC9E;AACA;AACA,sBAAsB,gEAAU;AAChC;AACA;AACA;AACA;AACA,mEAAmE,qCAAqC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iDAAiD;AACtG;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,YAAY,6DAAW,+BAA+B,0EAA4B;AAClF,YAAY,6DAAW,aAAa,wDAAU;AAC9C,YAAY,6DAAW,cAAc,yDAAW;AAChD,YAAY,6DAAW,mBAAmB,8DAAgB;AAC1D,YAAY,6DAAW,oBAAoB,+DAAiB;AAC5D,YAAY,6DAAW,YAAY,uDAAS;AAC5C,YAAY,6DAAW,YAAY,uDAAS;AAC5C,YAAY,6DAAW,cAAc,yDAAW;AAChD,YAAY,6DAAW,kCAAkC,8EAAgC;AACzF,YAAY,6DAAW,2BAA2B,sEAAwB;AAC1E,YAAY,6DAAW,mBAAmB,8DAAgB;AAC1D,YAAY,6DAAW,eAAe,0DAAY;AAClD,YAAY,6DAAW,kBAAkB,6DAAe;AACxD,YAAY,6DAAW,sBAAsB,kDAAI;AACjD,YAAY,6DAAW,YAAY,kDAAI;AACvC,YAAY,6DAAW,oBAAoB,kDAAI;AAC/C,YAAY,6DAAW,0BAA0B,oEAAsB;AACvE,YAAY,6DAAW,WAAW,sDAAQ;AAC1C,YAAY,6DAAW,oBAAoB,+DAAiB;AAC5D,YAAY,6DAAW,0BAA0B,qEAAuB;AACxE,YAAY,6DAAW,kBAAkB,6DAAe;AACxD,YAAY,6DAAW,YAAY,uDAAS;AAC5C,YAAY,6DAAW,sBAAsB,iEAAmB;AAChE,YAAY,6DAAW,oBAAoB,gEAAkB;AAC7D,YAAY,6DAAW,cAAc,0DAAY;AACjD,YAAY,6DAAW,cAAc,0DAAY;AACjD,YAAY,6DAAW,YAAY,wDAAU;AAC7C,YAAY,6DAAW,UAAU,kDAAI;AACrC,YAAY,6DAAW,aAAa,kDAAI;AACxC,YAAY,6DAAW,YAAY,kDAAI;AACvC,YAAY,6DAAW,UAAU,kDAAI;AACrC,YAAY,6DAAW,eAAe,kDAAI;AAC1C,YAAY,6DAAW,cAAc,kDAAI;AACzC,YAAY,6DAAW,WAAW,kDAAI;AACtC,YAAY,6DAAW,eAAe,kDAAI;AAC1C,YAAY,6DAAW,gBAAgB,kDAAI;AAC3C,YAAY,6DAAW,cAAc,kDAAI;AACzC,YAAY,6DAAW,UAAU,kDAAI;AACrC,YAAY,6DAAW,YAAY,kDAAI;AACvC,YAAY,6DAAW,eAAe,kDAAI;AAC1C,YAAY,6DAAW,cAAc,kDAAI;AACzC,YAAY,6DAAW,sBAAsB,kDAAI;AACjD,YAAY,6DAAW,yBAAyB,kDAAI;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAc;AAC9C;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA,aAAa,8DAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4DAAc;AACvC;AACA;AACA;AACA,6BAA6B,6DAAW;AACxC;AACA;AACA;AACA,+DAA+D,8DAAY,CAAC,sDAAQ,GAAG,iBAAiB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA,oEAAoE,4CAA4C;AAChH,2DAA2D,0CAA0C;AACrG;AACA;AACA;AACA,qDAAqD,6BAA6B;AAClF,4DAA4D,oCAAoC;AAChG;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,wEAAwE,wEAA0B;AAClG,eAAe,gEAAc;AAC7B,CAAC,WAAW,gEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,kEAAgB,gBAAgB;AAC/C,KAAK,UAAU,gEAAc,gBAAgB;AAC7C,KAAK,UAAU,oEAAkB,YAAY;AAC7C,KAAK,UAAU,iEAAe,eAAe,oEAAkB,EAAE;AACjE,KAAK,UAAU,sDAAQ,YAAY;AACnC,KAAK,UAAU,uDAAK,YAAY;AAChC,KAAK,UAAU,wDAAM,SAAS,uDAAK,GAAG;AACtC;AACA;AACA,kBAAkB,4DAAU;AAC5B;AACA,KAAK;AACL;AACA,iBAAiB,gEAAc;AAC/B;AACA;AACA;AACA,iBAAiB,sDAAQ,QAAQ,oDAAM,CAAC,0DAAY;AACpD,iBAAiB,sDAAQ,QAAQ,oDAAM,CAAC,iEAAmB;AAC3D,aAAa,gEAAc;AAC3B,aAAa,sDAAQ;AACrB;AACA,KAAK;AACL;AACA,iBAAiB,4DAAU;AAC3B,qBAAqB,gEAAc;AACnC,KAAK;AACL;AACA,iBAAiB,gEAAc,SAAS,gEAAc,EAAE,kEAAgB;AACxE,YAAY,wDAAM,EAAE,uEAAqB;AACzC,YAAY,gEAAc,EAAE,sDAAQ;AACpC,KAAK;AACL,KAAK,UAAU,8DAAY,YAAY,8DAAY,YAAY;AAC/D,KAAK,UAAU,qEAAmB,SAAS,gEAAc,EAAE,6DAAW,EAAE,4DAAU,EAAE,gEAAc,GAAG;AACrG,KAAK,UAAU,yEAAuB,SAAS,gEAAc,EAAE,4DAAU,EAAE,kEAAgB;AAC3F,YAAY,mEAAiB,EAAE,8DAAY;AAC3C,YAAY,iEAAe;AAC3B,YAAY,uEAAqB;AACjC,YAAY,qEAAmB,EAAE,sDAAQ;AACzC,aAAa,sDAAQ,EAAE,mEAAiB;AACxC,YAAY,kEAAgB;AAC5B,aAAa,sDAAQ,2BAA2B;AAChD;AACA,KAAK,UAAU,+DAAa,SAAS,6DAAW,GAAG;AACnD,KAAK,UAAU,8DAAY,SAAS,kEAAgB,GAAG;AACvD,KAAK,UAAU,kEAAgB,SAAS,kEAAgB,GAAG;AAC3D,KAAK,UAAU,gEAAc,gBAAgB;AAC7C,KAAK,UAAU,sDAAQ,iCAAiC,sDAAQ,EAAE,yEAAuB;AACzF,YAAY,gEAAc,EAAE,+DAAa;AACzC,YAAY,8DAAY,EAAE,kEAAgB;AAC1C,YAAY,iEAAe,EAAE,kEAAgB,EAAE,8DAAY,EAAE,gEAAc;AAC3E,YAAY,sDAAQ,GAAG;AACvB,KAAK,UAAU,0EAAwB,YAAY;AACnD,KAAK,UAAU,uEAAqB,eAAe,0EAAwB,EAAE;AAC7E,KAAK,UAAU,6DAAW,SAAS,8DAAgB,GAAG;AACtD,KAAK,UAAU,mEAAiB,SAAS,kEAAgB,GAAG;AAC5D,KAAK,UAAU,8DAAY,SAAS,kEAAgB,GAAG;AACvD,KAAK,UAAU,kEAAgB,SAAS,kEAAgB,GAAG;AAC3D;AACA,sCAAsC,UAAU,sDAAQ,2BAA2B,YAAY,sDAAQ,GAAG,EAAE,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+DAAiB;AACnD,gCAAgC,wEAA0B;AAC1D;AACA,+BAA+B,sDAAQ;AACvC;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,uBAAuB,sDAAQ;AAC/B;AACA,yBAAyB,gEAAc;AACvC;AACA,+BAA+B,gEAAc;AAC7C;AACA;AACA;AACA,oCAAoC,+DAAS;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,4BAA4B,sDAAQ;AACpC;AACA;AACA,CAAC;AACD;AACA;AACA,gEAAgE,uBAAuB,EAAE;AACzF,8EAA8E,qCAAqC,EAAE;AACrH,mEAAmE,0BAA0B,EAAE;AAC/F,4EAA4E,mCAAmC,EAAE;AACjH,6EAA6E,oCAAoC,EAAE;AACnH;AACA;AACA;AACA,iCAAiC,QAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0CAA0C,sDAAQ,QAAQ,EAAE;AAC/F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2EAAqB,CAAC,0DAAY;AAC5D,KAAK,UAAU,8DAAgB,+BAA+B;AAC9D,KAAK,UAAU,6DAAe,uCAAuC,8DAAgB,GAAG;AACxF;;AAEA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA;AACA;AACA,kEAAkE,iEAAiE;AACnI,2BAA2B,gEAAyB,EAAE,mDAAmD,mCAAmC,EAAE,EAAE;AAChJ,sCAAsC,mEAA4B;AAClE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC,CAAC,gEAAc;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc,UAAU,gEAAc,0CAA0C,GAAG,SAAS,oEAAoB;AAC5H;AACA;AACA;AACA;AACA,IAAI,8FAAoC;AACxC;AACA,iBAAiB,8DAAgB;AACjC;AACA;AACA,KAAK;AACL,KAAK,UAAU,yDAAW,kBAAkB;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,uBAAuB,qDAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAc;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,UAAU,gEAAc,4CAA4C;AACpG;AACA;AACA;AACA,6BAA6B,2EAAqB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4c;;AAE5c,oD;;;;;;;;;;;;ACxeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEqF;AACqC;AAC1C;AACG;AACgJ;AACxL;;AAEH;AACc;AACtD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAiB;AAC5C;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oEAAQ;AACvD;AACA;AACA;AACA,8BAA8B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AACrE,QAAQ,wDAAU,uBAAuB,8DAAgB;AACzD;AACA,4EAA4E,2CAA2C,sDAAe,CAAC,8DAAuB,GAAG,sDAAe,CAAC,wDAAQ,GAAG;AAC5L,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG;AAClE,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC,CAAC,oEAAgB;AAClB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,CAAC,CAAC,oEAAgB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,8DAA8D,0BAA0B;AACxF,+DAA+D,2BAA2B;AAC1F,iEAAiE,6BAA6B;AAC9F,0DAA0D,uBAAuB;AACjF,gEAAgE,sBAAsB;AACtF;AACA;AACA;AACA;AACA,2DAA2D,wBAAwB;AACnF,6DAA6D,0BAA0B;AACvF,4DAA4D,yBAAyB;AACrF,6DAA6D,0BAA0B;AACvF,2DAA2D,wBAAwB;AACnF,kEAAkE,iCAAiC;AACnG,iEAAiE,UAAU;AAC3E;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sBAAsB,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAM;AACvC;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wEAAwE,wCAAwC;AAChH,+BAA+B,wDAAU,GAAG,wDAAU,uBAAuB,8DAAgB,EAAE,4EAAgB,EAAE,oDAAM;AACvH;AACA,8EAA8E,4CAA4C,sDAAe,CAAC,8DAAuB,GAAG,sDAAe,CAAC,4EAAuB,GAAG,sDAAe,CAAC,oDAAa,GAAG;AAC9O,iCAAiC,gEAAyB,EAAE,yDAAyD,yCAAyC,EAAE,EAAE;AAClK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG,OAAO,4EAAuB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,QAAQ,EAAE;AACzI;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qEAAqE,gCAAgC,EAAE;AACvG;AACA;AACA,0BAA0B,2BAA2B,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,2CAA2C;AACjH,mEAAmE,wCAAwC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,uCAAuC;AACzG,mEAAmE,wCAAwC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG,uEAAuE,qCAAqC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qCAAqC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAA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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAE6E;AAC+D;AACpG;AACE;AACwxB;;AAEl0B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA,CAAC,CAAC,2DAAW;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAO;AACf,eAAe,qDAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,iDAAiD,CAAC,0EAAkB,0BAA0B;AAC9F,mEAAmE,iBAAiB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E;AACA,oEAAoE,uBAAuB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,iBAAiB;AACnF,iEAAiE,4CAA4C;AAC7G,gEAAgE,yCAAyC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,uBAAuB;AACjF,2DAA2D,wBAAwB;AACnF;AACA;AACA;AACA;AACA,gEAAgE,oBAAoB;AACpF,4DAA4D,mCAAmC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E,6DAA6D,QAAQ,yEAAiB,wBAAwB;AAC9G;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAc;AACtC;AACA;AACA;AACA;AACA,qBAAqB,mEAAqB;AAC1C,sBAAsB,+DAAO;AAC7B;AACA,yCAAyC,0DAA0D,EAAE;AACrG,wCAAwC,uBAAuB,EAAE;AACjE,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,6DAAe;AAChC;AACA,8BAA8B,wDAAQ,EAAE,sDAAQ;AAChD;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,CAAC,0EAAoB,8BAA8B;AACjG;AACA,QAAQ,qDAAO;AACf,6CAA6C,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAO,8CAA8C,uCAAuC;AACpG,QAAQ,qDAAO,6CAA6C,sCAAsC;AAClG;AACA,gCAAgC,qDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa,qDAAO;AACpB,YAAY,qDAAO;AACnB;AACA,QAAQ,qDAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAO;AACnB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qDAAO,SAAS,qDAAO;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,sBAAsB,4DAAc;AACpC,cAAc,oDAAM;AACpB,CAAC,EAAE;AACH;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,WAAW,qEAAe;AAC1B;AACA;AACA;AACA,yCAAyC,sDAAQ,CAAC,sDAAQ,GAAG;AAC7D,wBAAwB,+BAA+B;AACvD;AACA;AACA,6CAA6C,uCAAuC,EAAE,IAAI;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAe;AAChC;AACA;AACA,aAAa,0DAAY,MAAM,sDAAQ;AACvC;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wDAAU,GAAG,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU,8BAA8B,oDAAM;AACtD;AACA,sDAAsD,gCAAgC,sDAAe,yBAAyB,sDAAe,CAAC,oDAAa,GAAG;AAC9J,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qEAAqE;AACrE,2DAA2D,oCAAoC;AAC/F,8DAA8D,sCAAsC;AACpG,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oEAAoE,kCAAkC;AACtG;AACA;AACA,qDAAqD,oDAAoD,EAAE;AAC3G;AACA,6DAA6D,gDAAgD,QAAQ,+DAAO,qBAAqB,EAAE,EAAE;AACrJ,0BAA0B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AACjE,QAAQ,wDAAU;AAClB;AACA,oEAAoE,uCAAuC,sDAAe,CAAC,wDAAQ,GAAG;AACtI,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAiB;AAClC,iBAAiB,+DAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,qDAAqD;AACrD,0BAA0B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,oDAAM;AAC/D,QAAQ,wDAAU;AAClB;AACA,oEAAoE,uCAAuC,sDAAe,gBAAgB,sDAAe,uBAAuB,sDAAe,CAAC,oDAAM,GAAG;AACzM,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,qBAAqB,GAAG,4BAA4B,GAAG;AACtF,sBAAsB,oDAAM;AAC5B,uBAAuB,oDAAM;AAC7B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sCAAsC;AAC1G,iEAAiE,uCAAuC;AACxG,6EAA6E,8BAA8B;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,wBAAwB;AACxF,iEAAiE,yBAAyB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wBAAwB;AAC1F,qEAAqE,2BAA2B;AAChG;AACA,oBAAoB,iEAAmB;AACvC,0DAA0D,iEAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wBAAwB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,sEAAsE;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,wCAAwC,+DAAiB;AACzD,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,sDAAsD;AAC1H,uDAAuD,mDAAmD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E;AACA;AACA;AACA,4BAA4B,+DAA+D;AAC3F;AACA;AACA;AACA;AACA,sBAAsB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAC7D,QAAQ,wDAAU;AAClB;AACA,4DAA4D,mCAAmC,sDAAe,CAAC,wDAAQ,GAAG;AAC1H,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAc;AAC9C;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA,wBAAwB,4DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,eAAe;AAC5C,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA,oEAAoE,yCAAyC;AAC7G,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4CAA4C;AAC5C,aAAa;AACb;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA,6CAA6C,mBAAmB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yEAAyE,oDAAoD;AAC7H,2BAA2B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAClE,QAAQ,qDAAO,IAAI,4DAAM;AACzB,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU,oDAAoD,sDAAQ;AAC9E;AACA,sEAAsE,wCAAwC,sDAAe,CAAC,wDAAQ,GAAG,sDAAe,yBAAyB,sDAAe,CAAC,sDAAe,GAAG,sDAAe,oBAAoB;AACtP,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,GAAG;AACnB,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG,OAAO,sDAAe,EAAE,GAAG;AAC9C,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAAQ,yBAAyB,sDAAQ,OAAO,sDAAQ;AACvE,KAAK;AACL,KAAK,0EAA0E;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,kCAAkC,EAAE,yCAAyC;AACtK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,gBAAgB,wCAAwC;AACxD,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB,EAAE,yBAAyB,sBAAsB,EAAE,yBAAyB,sBAAsB,EAAE,yBAAyB,uBAAuB;AACtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,4DAA4D;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+DAAO;AAC1B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AACjF,QAAQ,wDAAU;AAClB;AACA,4DAA4D,mCAAmC,sDAAe,CAAC,wDAAQ,GAAG;AAC1H,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB,kBAAkB;AAClB,iBAAiB;AACjB,iBAAiB;AACjB;AACA,kDAAkD,uBAAuB,EAAE;AAC3E;AACA;AACA;AACA,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ,YAAY;AACZ;AACA,6BAA6B,GAAG,kBAAkB,yBAAyB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yBAAyB;AAClF;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;AACA,qDAAqD,uCAAuC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8DAAuB,EAAE,mCAAmC;AAC9F,kCAAkC,8DAAuB,EAAE,0DAA0D,gDAAgD,EAAE,eAAe,+DAA+D,wDAAQ,EAAE,oDAAM,GAAG,GAAG;AAC3Q,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,6BAA6B,+DAA+D,wDAAQ,EAAE,oDAAM,GAAG;AAC/G,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B,qBAAqB,aAAa,GAAG;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,qCAAqC,sDAAsD;AAC3F;AACA;AACA,CAAC;AACD;AACA,QAAQ,+DAAO;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE88E;;AAE98E,4C;;;;;;;;;;;;AC1gEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEiG;AAC0F;AACwX;AACpc;AAC2E;;AAE1L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;AACE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC;AAC7E,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,wEAAwE;AAC9H;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yEAAyE;AAChI;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,8DAA8D;AACzH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,4DAA4D;AACrH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,+CAA+C;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,2CAA2C;AACnH,6BAA6B,+DAAwB,EAAE,4IAA4I;AACnM,QAAQ,uDAAgB;AACxB,KAAK,EAAE,2BAA2B,uBAAuB,EAAE,oBAAoB;AAC/E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,8CAA8C;AAC9D,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAyC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iCAAiC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,gCAAgC,iBAAiB;AACjD;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wNAAwN,wDAAwD,YAAY,oDAAoD,2BAA2B,qDAAqD,UAAU;AAC1a;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qEAAqE;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,qBAAqB,IAAI,sDAAQ,GAAG;AACtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8BAA8B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,WAAW,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+CAAE,GAAG;AACpB;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAG,eAAe,mBAAmB,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,uCAAE;AACb,cAAc,gEAAS,IAAI,2DAAM,IAAI,0DAAG,cAAc,YAAY,EAAE;AACpE;AACA;AACA,QAAQ,mEAAa;AACrB;AACA;AACA,QAAQ,gEAAU;AAClB;AACA;AACA;AACA,eAAe,iDAAI;AACnB;AACA,WAAW,+CAAE;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,KAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4DAA4D,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,kCAAkC,aAAa;AAC/C;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,8CAA8C,2CAA2C;AACzF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB,EAAE;AACtE;AACA;AACA,yDAAyD,kCAAkC;AAC3F;AACA;AACA,0BAA0B,0CAA0C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA,sDAAsD,6BAA6B;AACnF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA,oDAAoD;AACpD;AACA;AACA,iBAAiB;AACjB,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,iDAAiD,4BAA4B;AAC7E;AACA,CAAC;AACD;AACA,0DAA0D,qDAAqD,EAAE;AACjH;AACA;AACA;AACA;AACA,qCAAqC,8BAA8B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,8CAA8C,yBAAyB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,UAAU,gEAAgE,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uDAAuD,EAAE;AAC7F;AACA,KAAK;AACL;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uCAAuC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gBAAgB,EAAE;AAC7E,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA,gDAAgD,kDAAkD,gBAAgB,EAAE,EAAE;AACtH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,gCAAgC,UAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,gCAAgC,UAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uCAAuC;AACtF;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,gDAAgD,wCAAwC,EAAE;AAC1F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC;AACnF;AACA,CAAC;AACD;AACA;AACA,uBAAuB,oDAAe,uBAAuB;AAC7D,0BAA0B,oDAAe,GAAG;AAC5C,wBAAwB,oDAAe,GAAG;AAC1C,+BAA+B,oDAAe,GAAG;AACjD,uBAAuB,oDAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gKAAgK;AAChK;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,2CAA2C,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,6CAA6C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0DAAG,eAAe,6BAA6B,EAAE;AACnG;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0DAAG,eAAe,6BAA6B,EAAE;AAC3F;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yCAAyC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ,CAAC,sDAAQ,GAAG;AACzC,mBAAmB,sDAAQ,CAAC,sDAAQ,GAAG;AACvC,sBAAsB,sDAAQ,CAAC,sDAAQ,GAAG;AAC1C,gBAAgB;AAChB,KAAK,GAAG,WAAW,UAAU,aAAa,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,uCAAuC,EAAE;AACnE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,2CAA2C,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,6CAA6C,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,mDAAmD,2BAA2B,EAAE;AAChF;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA,CAAC;AACD;AACA;AACA,wCAAwC,iCAAiC,EAAE;AAC3E;AACA;AACA,0CAA0C,sDAAsD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0CAA0C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,oDAAe,aAAa,oDAAe,gBAAgB,oDAAe,qBAAqB,oDAAe,kBAAkB,oDAAe;AACjL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,eAAe,EAAE;AACvF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wDAAwD,EAAE;AAClH;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uBAAuB,sDAAQ,QAAQ,qBAAqB;AAC5D;AACA;AACA,uBAAuB,sDAAQ;AAC/B;AACA;AACA;AACA,mBAAmB,sDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,eAAe,sDAAQ;AACvB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qCAAqC,wBAAwB,EAAE;AAC/D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAAG;AACd;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,+DAA+D;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2DAA2D,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,iCAAiC,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,eAAe,+CAAU,iBAAiB,6CAA6C,EAAE;AACzF;AACA;AACA,eAAe,+CAAU,iBAAiB,iDAAiD,EAAE;AAC7F;AACA;AACA,eAAe,+CAAU,iBAAiB,iHAAiH,EAAE;AAC7J;AACA;AACA,eAAe,+CAAU,iBAAiB,iJAAiJ,EAAE;AAC7L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yDAAW;AACtD;AACA;AACA;AACA;AACA,uCAAuC,0DAAG,8BAA8B,iGAAiG,EAAE;AAC3K,8BAA8B,iEAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qCAAqC,0DAAG;AACxC;AACA,SAAS;AACT,4BAA4B,iEAAU;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0DAAG,sBAAsB,0CAA0C,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uEAAuE,EAAE;AACzJ;AACA;AACA;AACA,eAAe,uCAAE,eAAe,sDAAQ,eAAe,0DAAG;AAC1D;AACA,kCAAkC,iEAAU;AAC5C;AACA;AACA;AACA,2BAA2B,+CAAE;AAC7B;AACA;AACA,aAAa;AACb,SAAS,GAAG,gEAAS,IAAI,4DAAK,eAAe,YAAY,EAAE,GAAG,iEAAU;AACxE,6BAA6B,+CAAU;AACvC;AACA,2BAA2B,+CAAE,2BAA2B;AACxD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA,4DAA4D,+DAAQ;AACpE,2DAA2D;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,+DAAQ;AACpE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAG;AAC7B;AACA,2DAA2D;AAC3D,iBAAiB;AACjB;AACA,mBAAmB,+CAAE,iCAAiC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+DAAQ;AACzC;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAG,sBAAsB,wDAAwD,EAAE;AAC3H;AACA;AACA,uBAAuB,+CAAE,yCAAyC;AAClE;AACA;AACA,kCAAkC,0DAAG;AACrC;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,+CAAE;AACzB;AACA;AACA,sBAAsB,+DAAQ;AAC9B;AACA;AACA,8BAA8B,0DAAG;AACjC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA,eAAe,+CAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD;AACpD,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,+DAA+D,0BAA0B;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,eAAe,+CAAE;AACjB,cAAc,iDAAI,eAAe,0DAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,gEAAS,IAAI,4DAAK,oBAAoB,wBAAwB,EAAE;AACpF;AACA;AACA;AACA;AACA,oBAAoB,gFAAgF;AACpG;AACA,gBAAgB,+EAA+E;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ,uCAAuC,kBAAkB;AAC7F;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA,WAAW,sDAAQ,CAAC,sDAAQ,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ,uCAAuC,kBAAkB;AAC7F;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA,qCAAqC,0FAA0F,EAAE;AACjI;AACA;AACA,qCAAqC,uDAAuD,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gEAAS,eAAe;AACnD,kBAAkB,0DAAG,+BAA+B,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,uCAAuC,GAAG,EAAE,GAAG,EAAE;AACzI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAS;AACpB,eAAe,kDAAa,eAAe,sDAAQ,uBAAuB,eAAe,2DAAI,KAAK,gEAAS,iBAAiB,EAAE,SAAS,2DAAI;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS,kBAAkB,6DAAM,kBAAkB,+BAA+B,EAAE,GAAG,0DAAG,kBAAkB,+CAA+C,EAAE;AAC7J,QAAQ,2DAAI;AACZ,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAQ;AACnC;AACA;AACA,uBAAuB,+CAAE,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,qBAAqB;AAC1E;AACA;AACA,sBAAsB,+DAAQ;AAC9B;AACA;AACA,oBAAoB,+CAAE;AACtB,aAAa,GAAG,0DAAG,0BAA0B,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,6BAA6B,GAAG,EAAE;AACnH,SAAS;AACT;AACA;AACA;AACA,WAAW,iDAAI,cAAc,+DAAQ;AACrC;AACA,KAAK,GAAG,4DAAK,oBAAoB,wBAAwB,EAAE;AAC3D;AACA;AACA,WAAW,iDAAI,cAAc,gEAAS;AACtC,eAAe,iDAAI;AACnB;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAS,IAAI,4DAAK;AACpC;AACA,SAAS;AACT,KAAK,GAAG,4DAAK,oBAAoB,wBAAwB,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAAE;AACb;AACA;AACA;AACA;AACA,eAAe,+CAAE;AACjB;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAAK;AACxC,SAAS;AACT,KAAK;AACL,WAAW,+CAAE;AACb;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B,EAAE;AAC5D,8BAA8B,mBAAmB,EAAE;AACnD;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4DAAK;AAC5C,aAAa;AACb,mBAAmB,+CAAE;AACrB,SAAS;AACT,KAAK;AACL,WAAW,+CAAE;AACb;AACA;AACA;AACA;AACA,eAAe,+CAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAK;AACpC,KAAK;AACL,WAAW,+CAAE;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,+CAA+C,yCAAyC;AACxF,4CAA4C,mCAAmC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,iBAAiB,sDAAQ,GAAG,uDAAuD,yEAAyE;AAClO;AACA;AACA;AACA,mBAAmB,+CAAE;AACrB;AACA;AACA,uBAAuB,+CAAU,iBAAiB,qBAAqB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sCAAsC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8DAA8D,EAAE;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ,uCAAuC,kBAAkB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,sDAAQ,GAAG;AAC7F;AACA;AACA;AACA;AACA;AACA,qGAAqG,sDAAQ,GAAG;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAmD;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB,EAAE;AACrE,+CAA+C,sDAAQ,CAAC,sDAAQ,GAAG;AACnE;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qBAAqB,EAAE;AACzF,kDAAkD,qBAAqB,EAAE;AACzE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ,uCAAuC,kBAAkB;AAC7F;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA,WAAW,sDAAQ,CAAC,sDAAQ,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ,uCAAuC,kBAAkB;AAC7F;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA,qCAAqC,6FAA6F,EAAE;AACpI;AACA;AACA,qCAAqC,wDAAwD,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAQ,eAAe;AAClD,kBAAkB,0DAAG,4BAA4B,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,iCAAiC,GAAG,EAAE,GAAG,EAAE;AAChI;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+DAAQ;AACnC;AACA;AACA,uBAAuB,+CAAE;AACzB;AACA,mBAAmB,iDAAI;AACvB,sBAAsB,gEAAS,mBAAmB,2FAA2F,EAAE,GAAG,6DAAM,mBAAmB,UAAU,EAAE,GAAG,0DAAG,eAAe,UAAU,EAAE;AACxN,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,cAAc,0DAAG;AACjB;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,GAAG;AAC7C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,+CAAE,GAAG;AACpB;AACA;AACA;AACA;AACA,kBAAkB,0DAAG;AACrB;AACA,0BAA0B;AAC1B,SAAS;AACT;AACA;AACA,4BAA4B,iDAAI,YAAY,+DAAQ;AACpD;AACA,kBAAkB,0DAAG;AACrB;AACA;AACA,SAAS;AACT,KAAK;AACL,kCAAkC,2DAAM,IAAI,0DAAG,cAAc,aAAa,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gEAAS;AACpC;AACA;AACA,uBAAuB,iDAAI,kBAAkB,0DAAG,cAAc,UAAU,EAAE;AAC1E;AACA,mBAAmB,iDAAI;AACvB,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,cAAc;AACvF,gFAAgF;AAChF,yEAAyE,cAAc;AACvF,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAG;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,iDAAI;AACvB;AACA;AACA,2DAA2D,+DAAQ;AACnE,iCAAiC,6DAAe;AAChD,2BAA2B,+CAAE;AAC7B;AACA;AACA,2BAA2B,iDAAI;AAC/B;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,aAAa;AACzF,mEAAmE,YAAY;AAC/E,kFAAkF,mBAAmB;AACrG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wDAAwD;AAChG,sCAAsC,sDAAsD;AAC5F,qCAAqC,yDAAW;AAChD,oCAAoC,sDAAQ;AAC5C,kCAAkC,oDAAM;AACxC,iDAAiD,oDAAM;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iDAAiD;AACtE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAM,eAAe,mBAAmB,EAAE;AAC1E;AACA,QAAQ,0DAAG,eAAe,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,4DAA4D,GAAG,EAAE;AAC/H;AACA,QAAQ,gEAAS;AACjB;AACA;AACA,mBAAmB,+CAAE;AACrB;AACA,YAAY,0DAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sDAAQ,CAAC,sDAAQ,GAAG,oCAAoC,2BAA2B;AAC5J;AACA;AACA,aAAa,GAAG,gEAAS;AACzB;AACA;AACA;AACA;AACA,2BAA2B,+CAAE;AAC7B;AACA,oBAAoB,gEAAS;AAC7B;AACA;AACA;AACA,mCAAmC,0CAAK;AACxC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oBAAoB,gEAAS,eAAe,2BAA2B,EAAE;AACzE;AACA;AACA;AACA,oBAAoB,0DAAG;AACvB,kDAAkD,sDAAQ,CAAC,sDAAQ,GAAG,6BAA6B,gCAAgC;AACnI,qBAAqB;AACrB;AACA,uFAAuF,gCAAgC,EAAE;AACzH;AACA,oBAAoB,0DAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,oBAAoB,0DAAG;AACvB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAAE,CAAC,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,0EAA0E,sDAAQ,CAAC,sDAAQ,GAAG,YAAY,+CAA+C,GAAG;AACzN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0CAAK;AACpC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,YAAY,0DAAG;AACf;AACA;AACA,aAAa,GAAG,0DAAG,eAAe,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,qFAAqF,GAAG,EAAE,wDAAwD,gCAAgC,EAAE,GAAG,0DAAG;AAChQ;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,0DAAG;AACnB;AACA;AACA,aAAa,GAAG,6DAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2BAA2B,+CAAE,SAAS,0DAAG;AACzC;AACA;AACA,qBAAqB;AACrB,oBAAoB,0DAAG;AACvB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,GAAG,0DAAG;AACnB;AACA,wBAAwB,sDAAQ,CAAC,sDAAQ,GAAG,OAAO,uCAAuC;AAC1F,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAG;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gFAAgF,gCAAgC,EAAE,GAAG,0DAAG,EAAE,oBAAoB,kBAAkB,EAAE,yBAAyB,kBAAkB,EAAE,EAAE,GAAG,+DAAQ;AACzO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,iEAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG,2DAA2D;AAChK,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0CAAK;AAC5B,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,CAAC,sDAAQ,GAAG;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAsD,mBAAmB,EAAE,EAAE;AACrH,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA,yDAAyD,+BAA+B;AACxF;AACA,sDAAsD,yBAAyB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,WAAW,uCAAuC;AAClD,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,2CAA2C,aAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA,2CAA2C,UAAU,mCAAmC;AACxF;AACA;AACA,2CAA2C,UAAU,iCAAiC;AACtF;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA;AACA,wDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA,YAAY,+DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,CAAC,sDAAQ,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA;AACA,gCAAgC,WAAW,6BAA6B;AACxE,YAAY,+DAAS,+BAA+B,oDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA,kDAAkD,4CAA4C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW,6BAA6B;AACxE;AACA;AACA;AACA;AACA,oDAAoD,0CAA0C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,oDAAoD,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAQ,CAAC,sDAAQ,GAAG,WAAW,mBAAmB;AACnG;AACA;AACA,uCAAuC,sDAAQ,CAAC,sDAAQ,GAAG,WAAW,mBAAmB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,sCAAsC;AAC7H;AACA,0CAA0C,CAAC,8DAAuB,GAAG;AACrE,cAAc,+DAAwB,EAAE,eAAe;;AAEvD;AACA,CAAC;AACD;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,yCAAyC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE,+DAA+D;AAC/D;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,wCAAwC;AACxC;AACA;AACA,mDAAmD,YAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yCAAyC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAAS;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,iBAAiB,wDAAU,GAAG,qDAAO,IAAI,+DAAS;AAClD,QAAQ,wDAAU,uDAAuD,uDAAS,EAAE,wDAAU;AAC9F;AACA,kDAAkD,8BAA8B,+DAAwB,UAAU,+DAAwB,kBAAkB,+DAAwB,cAAc,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AAC3R,kBAAkB,+DAAwB,EAAE,oIAAoI;AAChL,QAAQ,wDAAiB,0DAA0D,sBAAsB,EAAE;AAC3G,KAAK,EAAE,WAAW,+RAA+R,EAAE;AACnT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,4CAA4C;AAC5D,KAAK,gBAAgB,UAAU,eAAe,GAAG,uBAAuB,GAAG;AAC3E,sBAAsB,uDAAS;AAC/B;AACA,aAAa,GAAG,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChF,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,+DAAS;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,mEAAmE,+BAA+B;AAClG,4DAA4D,iCAAiC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL,IAAI,wDAAU;AACd,QAAQ,iEAAW,iBAAiB,2DAAK;AACzC,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,iEAAW;AACnB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,yBAAyB,wDAAU,GAAG,wDAAU;AAChD,YAAY,gEAAgB;AAC5B;AACA,kEAAkE,sCAAsC,+DAAwB,UAAU,+DAAwB,kBAAkB,+DAAwB,CAAC,gEAAuB,GAAG;AACvO,0BAA0B,+DAAwB,EAAE,2KAA2K;AAC/N,QAAQ,wDAAiB,wEAAwE,oFAAoF,EAAE;AACvL,KAAK;AACL,QAAQ,4DAAqB,mBAAmB,2DAAoB;AACpE,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,iTAAiT,aAAa,kEAA2B,GAAG;AAC9W,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,6CAA6C;AAC7D,KAAK,gBAAgB,UAAU,eAAe,GAAG,uBAAuB,GAAG,OAAO,gEAAuB,EAAE,EAAE,EAAE,GAAG;AAClH,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,yDAAW;AAC7B,SAAS;AACT,kBAAkB,yDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF;AACxF,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,YAAY;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE;AAC5E,4DAA4D,uBAAuB,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA,wDAAwD,YAAY,EAAE;AACtE,SAAS;AACT;AACA;AACA,KAAK;AACL,iEAAiE,eAAe;AAChF,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,qEAAe,cAAc,oBAAoB;AACzD,QAAQ,wDAAU,gBAAgB,uDAAS;AAC3C;AACA,IAAI,wDAAU;AACd,QAAQ,qEAAe,sBAAsB,oBAAoB;AACjE,QAAQ,wDAAU,gBAAgB,uDAAS;AAC3C;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,uBAAuB,wDAAU,GAAG,qDAAO,IAAI,8DAAQ;AACvD,QAAQ,qDAAO,IAAI,8DAAQ;AAC3B,QAAQ,wDAAU,+BAA+B,wDAAU,EAAE,uDAAS;AACtE;AACA;AACA;AACA,8DAA8D,oCAAoC,+DAAwB,UAAU,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,iBAAiB,+DAAwB,yBAAyB;AACvT,wBAAwB,+DAAwB,EAAE,iJAAiJ;AACnM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,2FAA2F,6CAA6C,kEAA2B,GAAG;AACxL,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,eAAe,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG;AAC1G,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,6DAAe;AACjC,gCAAgC,oBAAoB;AACpD,SAAS;AACT,kBAAkB,6DAAe;AACjC,wCAAwC,oBAAoB;AAC5D,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,0BAA0B;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,6CAA6C;AACrH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,sDAAsD,uDAAuD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,mBAAmB,wDAAU,GAAG,qDAAO,IAAI,+DAAS;AACpD,QAAQ,wDAAU,+CAA+C,8DAAgB;AACjF,YAAY,sEAAwB,UAAU,+DAAiB;AAC/D;AACA,sDAAsD,gCAAgC,+DAAwB,0BAA0B,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,sEAA+B,GAAG,+DAAwB,UAAU,+DAAwB,CAAC,+DAAwB,GAAG;AAC5U,oBAAoB,+DAAwB,EAAE,+DAA+D,6DAA6D,wBAAwB;AAClM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,gDAAgD;AAChE,KAAK,gBAAgB,UAAU,+BAA+B,GAAG,OAAO,8DAAuB,EAAE,GAAG,OAAO,sEAA+B,EAAE,GAAG;AAC/I,sBAAsB,uDAAS;AAC/B;AACA,aAAa,GAAG,GAAG,OAAO,+DAAwB,EAAE,EAAE,EAAE,GAAG;AAC3D,kBAAkB,oDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iEAAU,cAAc,QAAQ,+CAAE,OAAO,EAAE;AACpE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,QAAQ,+CAAE,OAAO;AAC5E;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yDAAyD;AACjG,sCAAsC,uDAAuD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAM,eAAe,mCAAmC,EAAE,GAAG,gEAAS,cAAc,wBAAwB,EAAE;AACpI,wCAAwC,EAAE;AAC1C;AACA;AACA,yCAAyC,yDAAW;AACpD;AACA;AACA;AACA;AACA;AACA,yDAAyD,iCAAiC;AAC1F;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ,uCAAuC,kBAAkB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,eAAe,iDAAI,WAAW,+DAAQ,IAAI,0DAAG,eAAe,eAAe,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA,gCAAgC,+DAAQ;AACxC;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,sBAAsB,wDAAU,GAAG,wDAAU,+BAA+B,mEAAqB,EAAE,sDAAQ;AAC3G,YAAY,sDAAQ;AACpB;AACA,4DAA4D,mCAAmC,sDAAe,UAAU,sDAAe,CAAC,mEAA4B,GAAG,sDAAe,CAAC,sDAAe,GAAG,sDAAe,CAAC,sDAAe,GAAG,sDAAe,sBAAsB;AAChR,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,eAAe,GAAG,OAAO,mEAA4B,EAAE,GAAG,OAAO,sDAAe,EAAE,GAAG,OAAO,sDAAe,EAAE,GAAG,2BAA2B,EAAE,EAAE,QAAQ,EAAE;AACxL;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,CAAC,8DAAuB,GAAG;AACrF,sBAAsB,+DAAwB,EAAE,uBAAuB;;AAEvE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAc;AAC7C;AACA;AACA;AACA,+BAA+B,4DAAc;AAC7C,UAAU;AACV;AACA,IAAI,wDAAQ;AACZ,KAAK,yDAAyD;AAC9D;AACA;AACA;AACA;AACA,mDAAmD,wDAAQ,EAAE,sDAAQ,EAAE,mEAAqB,EAAE,sDAAQ;AACtG,oEAAoE,sDAAQ;AAC5E,qCAAqC,sDAAQ;AAC7C;AACA,KAAK;AACL;AACA,KAAK,iEAAiE;AACtE,KAAK,UAAU,mEAAqB,YAAY,oEAAsB,EAAE;AACxE;AACA;AACA;AACA,KAAK,8CAA8C;AACnD;AACA;AACA,eAAe,0DAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,QAAQ,sDAAQ;AAChE,iBAAiB;AACjB,iBAAiB,8DAA8D,EAAE;AACjF;AACA,6BAA6B,gEAAgB;AAC7C;AACA;AACA,wBAAwB,gEAAgB,OAAO,oDAAM,CAAC,6DAAa,OAAO,sDAAQ;AAClF;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mCAAmC,gEAAgB;AACnD,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB,UAAU,0DAAY,+CAA+C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oCAAoC,wDAAU,GAAG,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM,yBAAyB,qDAAO,IAAI,8DAAQ;AACtI,QAAQ,wDAAU;AAClB;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,gCAAgC,sDAAe,2BAA2B,sDAAe,aAAa,EAAE,EAAE;AACnM,cAAc,oDAAoD,gEAAyB,gBAAgB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE,EAAE;AACpC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C,iCAAiC,oEAAoB;AACrD,YAAY,oEAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,0EAA4B,iCAAiC;AAChF,SAAS,iDAAiD;AAC1D;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+DAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4CAAO;AACpD;AACA;AACA;AACA,kCAAkC,oEAAoB;AACtD;AACA;AACA,gDAAgD,oBAAoB,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4DAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAAU,GAAG,wDAAU,uBAAuB,sDAAQ;AAC9E;AACA,gEAAgE,qCAAqC,sDAAe,CAAC,sDAAe,GAAG;AACvI,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,sDAAe,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAAc;AAC3C;AACA;AACA;AACA;AACA,qBAAqB,6DAAe;AACpC;AACA;AACA;AACA,SAAS;AACT,SAAS,2FAA2F;AACpG,SAAS,UAAU,oEAAsB,gDAAgD;AACzF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEmqD;;AAEnqD,kC;;;;;;;;;;;;AClzLa;AACb;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,6BAA6B;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,6BAA6B;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,2BAA2B;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6BAA6B;AACpG;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wC;;;;;;;;;;;;ACxJa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,KAAK;AACL;AACA,qDAAqD,wBAAwB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8CAA8C,EAAE;AAClF,4BAA4B,gCAAgC,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mBAAmB;AAC1E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mC;;;;;;;;;;;;AC5Fa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gCAAgC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+B;;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA,8CAA8C,cAAc;AAC5D;AACA,SAAS,mBAAO,CAAC,mEAAW;AAC5B,SAAS,mBAAO,CAAC,6EAAgB;AACjC,SAAS,mBAAO,CAAC,2DAAO;AACxB,iC;;;;;;;;;;;;ACTa;;AAEb,+BAA+B,iFAAiF;;AAEhH,eAAe,mBAAO,CAAC,0DAAW;AAClC,aAAa,mBAAO,CAAC,sDAAS;AAC9B,eAAe,mBAAO,CAAC,0DAAW;AAClC,0CAA0C,mBAAO,CAAC,wFAA0B;;AAE5E;;AAEA;;AAEA;AACA;AACA;;AAEA,4CAA4C,8CAA8C;AAC1F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD,8BAA8B,EAAE;;AAExF;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA,4CAA4C,6CAA6C;AACzF;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,KAAK;;AAEL;AACA;AACA,4BAA4B,aAAa;AACzC,SAAS;AACT;AACA,4BAA4B,iBAAiB;AAC7C,SAAS;AACT;AACA,4BAA4B,cAAc;AAC1C,SAAS;AACT;AACA,4BAA4B,kBAAkB;AAC9C;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,0BAA0B,EAAE;AACjE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA,gCAAgC,QAAQ;;AAExC,gCAAgC,QAAQ;;AAExC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;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hB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,6CAA6C;AACzG;AACA;AACA;AACA;AACA;AACA,wDAAwD,2DAA2D;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,4CAA4C,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4DAA4D;AACtH;AACA;AACA;AACA;AACA;AACA,8CAA8C,sCAAsC,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iFAAiF,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uEAAuE,2BAA2B,EAAE,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gEAAgE,uCAAuC,yBAAyB,EAAE,UAAU;AAC5I;AACA,8DAA8D,wCAAwC,EAAE,wBAAwB,iBAAiB,EAAE;AACnJ;AACA,+CAA+C;AAC/C,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,qEAAe;AACvB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,sDAAsD,gCAAgC,+DAAwB,sBAAsB;AACpI,oBAAoB,+DAAwB,EAAE,8HAA8H;AAC5K,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDA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SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU,cAAc,sBAAsB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD,oCAAoC,mCAAmC,EAAE;AACzE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8DAA8D,2BAA2B;AACzF,yDAAyD,yBAAyB;AAClF,8DAA8D,oBAAoB;AAClF,+DAA+D,qBAAqB;AACpF;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wCAAwC,EAAE;AACzF;AACA,iEAAiE,wCAAwC,+BAA+B,EAAE,EAAE;AAC5I,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,wDAAwD,mCAAmC;AAC3F,qBAAqB,+DAAwB,EAAE,0GAA0G,eAAe,aAAa,gEAAyB,+BAA+B;AAC7O,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,qCAAqC,uBAAuB,yCAAyC;AACrH,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+CAA+C,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sBAAsB,EAAE;AAClD;AACA;AACA,KAAK;AACL;AACA,0BAA0B,sCAAsC,EAAE;AAClE;AACA;AACA,KAAK;AACL,kDAAkD,8BAA8B;AAChF,+CAA+C,iCAAiC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sCAAsC;AAC3F,2CAA2C;AAC3C,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,8CAA8C,4BAA4B,+DAAwB,iBAAiB,+DAAwB,kBAAkB,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,+DAAwB,GAAG;AAC1S,gBAAgB,+DAAwB,EAAE,0IAA0I;AACpL,QAAQ,wDAAiB,0DAA0D,uBAAuB,EAAE,yDAAyD,2BAA2B,EAAE,uDAAuD,4BAA4B,EAAE;AACvR,KAAK;AACL,QAAQ,4DAAqB;AAC7B,KAAK,EAAE,WAAW,qDAAqD,EAAE;AACzE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,sBAAsB,GAAG,uBAAuB,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,+DAAwB,EAAE,EAAE,EAAE,GAAG;AACnL,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,wBAAwB,8DAAuB,EAAE,yBAAyB;AAC1E,wBAAwB,8DAAuB,EAAE,gDAAgD,sCAAsC,EAAE,EAAE;AAC3I,cAAc,oDAAoD,gEAAyB,oBAAoB;AAC/G;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE,EAAE;AACvB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,gBAAgB,sEAAsE;AACtF,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAkB,EAAE,gDAAgD,gCAAgC,EAAE,gDAAgD;AACpL,gEAAgE,uCAAuC;AACvG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,8CAA8C,4BAA4B,+DAAwB,CAAC,yDAAkB,GAAG;AACxH,gBAAgB,+DAAwB,EAAE,wEAAwE,WAAW,EAAE;AAC/H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,oCAAoC;AACpD,KAAK,gBAAgB,UAAU,OAAO,yDAAkB,EAAE,EAAE,EAAE,GAAG;AACjE,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC,8BAA8B,oDAAe;AAC7C,gCAAgC,oDAAe;AAC/C,kCAAkC,oDAAe;AACjD,2BAA2B,oDAAe;AAC1C,0BAA0B,oDAAe;AACzC;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8BAA8B,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,0BAA0B,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,kCAAkC,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA,oCAAoC,0DAAa;AACjD,qCAAqC,0DAAG,wBAAwB,2BAA2B,EAAE,GAAG,gEAAS;AACzG,4DAA4D,gEAAS;AACrE;AACA,0BAA0B,0DAAG;AAC7B,6BAA6B,oDAAM;AACnC;AACA;AACA;AACA,iBAAiB,GAAG,2EAAoB;AACxC,gBAAgB,0DAAa;AAC7B,0BAA0B,0DAAG;AAC7B,6BAA6B,oDAAM;AACnC;AACA,iBAAiB,GAAG,2EAAoB,IAAI,gEAAS,sBAAsB,uBAAuB,kDAAK,uBAAuB,0CAAK,CAAC,EAAE,GAAG,gEAAS;AAClJ,4CAA4C,uCAAuC,8CAA8C,EAAE,EAAE,EAAE;AACvI,aAAa;AACb;AACA,iCAAiC,gEAAS,yCAAyC,iCAAiC,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA,6BAA6B,mHAAmH;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,6BAA6B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS,0BAA0B;AACnC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AACjF,SAAS,OAAO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I,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,oDAAoD,iCAAiC;AACrF,mBAAmB,+DAAwB,EAAE,iIAAiI;AAC9K,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,0CAA0C,6BAA6B;AACzF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,yBAAyB,8DAAuB,EAAE,0BAA0B;AAC5E,yBAAyB,8DAAuB,EAAE,iDAAiD,uCAAuC,EAAE,EAAE;AAC9I,cAAc,oDAAoD,gEAAyB,qBAAqB,sDAAsD,EAAE,EAAE;AAC1K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,gBAAgB,sDAAsD;AACtE,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAkB,EAAE,mFAAmF;AAC/H,oDAAoD,iCAAiC;AACrF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,kEAAkE;AAClF,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E,4DAA4D,gDAAgD;AAC5G,mEAAmE,UAAU;AAC7E;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2DAA2D,+BAA+B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,qEAAqE;AAC3I,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,wCAAwC,mEAA4B;AACpE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qCAAqC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA,+DAA+D,SAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD,uEAAuE,SAAS;AAChF;AACA;AACA,wEAAwE,0CAA0C,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gGAAgG;AAChG;AACA,KAAK;AACL;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,wCAAwC;AAC1F;AACA;AACA;AACA;AACA,8EAA8E,wCAAwC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4EAA4E,iBAAiB,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sBAAsB;AACxF;AACA;AACA;AACA;AACA;AACA,yEAAyE,wBAAwB;AACjG;AACA;AACA;AACA;AACA;AACA,mEAAmE,kBAAkB;AACrF,8BAA8B,wEAAkB,EAAE,gDAAgD,mCAAmC,8DAAQ,CAAC,uDAAS,GAAG,EAAE,gDAAgD;AAC5M,gEAAgE,uCAAuC;AACvG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,oEAAoE,uDAAS,GAAG;AAChG,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,uCAAuC,yEAAiB,UAAU,yDAAS,aAAa,gEAAgB;AACxG,mFAAmF,kDAAkD,EAAE;AACvI,6BAA6B,2EAAmB,UAAU,yDAAS,aAAa,gEAAgB;AAChG,4BAA4B,2EAAmB,UAAU,yDAAS,aAAa,gEAAgB;AAC/F;AACA;AACA,iFAAiF,+CAA+C;AAChI,6EAA6E,2CAA2C;AACxH,4EAA4E,0CAA0C;AACtH;AACA;AACA,eAAe,kEAAU;AACzB;AACA,2DAA2D;AAC3D,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN,+BAA+B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AACvE;AACA,8EAA8E,4CAA4C,sDAAe,CAAC,uDAAS,GAAG;AACtJ,iCAAiC,gEAAyB,EAAE,yDAAyD,yCAAyC,EAAE,EAAE;AAClK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,2BAA2B,4CAAO;AAClC,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,0BAA0B,0BAA0B,6DAAM,mBAAmB,gCAAgC,EAAE,GAAG,EAAE;AACpH;AACA;AACA,KAAK;AACL;AACA,0BAA0B,+BAA+B,6DAAM,kBAAkB,sBAAsB,EAAE,GAAG,EAAE;AAC9G;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,iCAAiC,6CAA6C,EAAE;AAChF,0CAA0C,SAAS,sDAAQ,CAAC,sDAAQ,GAAG,eAAe,EAAE,IAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,SAAS,oBAAoB;AAC7B,SAAS;AACT,MAAM;AACN,sEAAsE,wCAAwC,sDAAe,eAAe,sDAAe,qBAAqB;AAChL,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,GAAG,0BAA0B,EAAE,EAAE,QAAQ,EAAE;AAC9F;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAkB,EAAE,kDAAkD,kCAAkC,EAAE,kDAAkD;AAC5L,oEAAoE,yCAAyC;AAC7G,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wEAAkB,EAAE,0FAA0F;AACzI,0DAA0D,oCAAoC;AAC9F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,sEAAsE;AACtF,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAoD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oDAAoD;AACjE;AACA;AACA,sEAAsE,qEAAqE;AAC3I,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,wCAAwC,mEAA4B;AACpE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU,cAAc,sBAAsB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN,sEAAsE,wCAAwC,+DAAwB,CAAC,yDAAkB,GAAG;AAC5J,4BAA4B,+DAAwB,EAAE,uFAAuF;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,gDAAgD;AAChE,KAAK,gBAAgB,UAAU,OAAO,yDAAkB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACxE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA,uCAAuC,qCAAqC,EAAE;AAC9E,kCAAkC,gEAAS,+CAA+C,6BAA6B,EAAE;AACzH,6BAA6B,gEAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,4BAA4B,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF,2BAA2B,2CAA2C;AACtE,iDAAiD,mCAAmC;AACpF,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,EAAE;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB,EAAE;AAC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ACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B,0CAA0C,eAAe;AACzD,SAAS;AACT,kBAAkB,uDAAS;AAC3B,+BAA+B,eAAe;AAC9C,SAAS;AACT,kBAAkB,0DAAY;AAC9B,0CAA0C,eAAe;AACzD,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAkB,EAAE,2DAA2D,2CAA2C,EAAE,2DAA2D;AAChO,sFAAsF,kDAAkD;AACxI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB,MAAM,wBAAwB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,gEAAgE,uDAAuD,EAAE;AACzH;AACA;AACA,0DAA0D,uBAAuB,EAAE;AACnF;AACA;AACA,mDAAmD,qCAAqC,EAAE;AAC1F;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,4DAA4D,yBAAyB;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6BAA6B,EAAE;AAC1F;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wEAAkB,EAAE,sGAAsG;AAC7J,0EAA0E,4CAA4C;AACtH,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,0EAA0E;AAC1F,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,+EAA+E;AAC/J,kCAAkC,gEAAyB,EAAE,0DAA0D,0CAA0C,EAAE,EAAE;AACrK,6CAA6C,mEAA4B;AACzE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wEAAkB,EAAE,uDAAuD,uCAAuC,EAAE,uDAAuD;AAChN,8EAA8E,6EAA6E;AAC3J,4CAA4C,mEAA4B;AACxE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA,aAAa,4DAAa;AAC1B,iBAAiB,gEAAU,cAAc,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,uCAAuC;AACvC,uCAAuC;AACvC,6CAA6C;AAC7C,4FAA4F,qCAAqC,EAAE;AACnI,yEAAyE,qCAAqC,EAAE;AAChH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,mEAAmE,qBAAqB;AACxF,oEAAoE,sBAAsB;AAC1F,4EAA4E,4BAA4B;AACxG,2EAA2E,4BAA4B;AACvG;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa,iBAAiB;AACtD;AACA;AACA,wBAAwB,aAAa,WAAW,uCAAuC,EAAE;AACzF;AACA;AACA,wBAAwB,aAAa,WAAW,uCAAuC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sBAAsB,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mBAAmB;AAC1E,wDAAwD,+CAA+C;AACvG;AACA;AA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vE,wDAAwD,gDAAgD;AACxG,+DAA+D,UAAU;AACzE;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA,qEAAqE;AACrE;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6DAA6D;AAC3H,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,oCAAoC,mEAA4B;AAChE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2EAA2E;AACvJ,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,2CAA2C,mEAA4B;AACvE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,iFAAiF;AACnK,mCAAmC,gEAAyB,EAAE,2DAA2D,2CAA2C,EAAE,EAAE;AACxK,8CAA8C,mEAA4B;AAC1E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,+DAA+D,UAAU;AACzE,0DAA0D,gDAAgD;AAC1G,iEAAiE,UAAU;AAC3E;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA,yDAAyD,kCAAkC;AAC3F;AACA;AACA;AACA;AACA,kEAAkE,iEAAiE;AACnI,2BAA2B,gEAAyB,EAAE,mDAAmD,mCAAmC,EAAE,EAAE;AAChJ,sCAAsC,mEAA4B;AAClE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,8DAA8D,UAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oCAAoC;AAC5F;AACA;AACA;AACA,+DAA+D,wCAAwC;AACvG;AACA;AACA;AACA,iEAAiE,wCAAwC;AACzG,gEAAgE,+DAA+D;AAC/H,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,qCAAqC,mEAA4B;AACjE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,kFAAkF,2CAA2C;AAC7H;AACA;AACA;AACA,gFAAgF,oCAAoC;AACpH;AACA;AACA;AACA,wEAAwE,iCAAiC;AACzG,+EAA+E,mCAAmC;AAClH,yEAAyE,6BAA6B;AACtG,4EAA4E,2EAA2E;AACvJ,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,2CAA2C,mEAA4B;AACvE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,qEAAqE;AAC3I,6BAA6B,gEAAyB,EAAE,qDAAqD,qCAAqC,EAAE,EAAE;AACtJ,wCAAwC,mEAA4B;AACpE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2EAA2E;AACvJ,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,2CAA2C,mEAA4B;AACvE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA,2BAA2B,8DAAuB,EAAE,4BAA4B;AAChF,2BAA2B,8DAAuB,EAAE,mDAAmD,yCAAyC,EAAE,aAAa,4DAAY,EAAE,0DAAW,IAAI;AAC5L,cAAc,oDAAoD,gEAAyB,uBAAuB,4BAA4B;AAC9I;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,0DAAW,EAAE,EAAE,wBAAwB;AACpH;AACA;AACA,4BAA4B,EAAE,EAAE,EAAE,EAAE;AACpC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAY,EAAE,0DAAW;AACnD;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAkB,EAAE,gDAAgD,gCAAgC,EAAE,gDAAgD;AACpL,gEAAgE,uCAAuC;AACvG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E,iBAAiB,+DAAwB,EAAE,kDAAkD;AAC7F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,sBAAsB;AACtC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA,4DAA4D;AAC5D,SAAS;AACT;AACA;AACA,KAAK;AACL,kDAAkD;AAClD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,4DAA4D,mCAAmC,+DAAwB,CAAC,wDAAiB,GAAG;AAC5I,uBAAuB,+DAAwB,EAAE,8KAA8K;AAC/N,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,uBAAuB,EAAE;AAC3C,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,uCAAuC,2DAA2D,EAAE;AACpH,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,gEAAU,cAAc,oBAAoB,EAAE,KAAK;AAClH,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,qEAAe;AACvB;AACA,sBAAsB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,gEAAU,cAAc,oBAAoB,EAAE;AACnG;AACA,4DAA4D,mCAAmC,+DAAwB,CAAC,gEAAU,cAAc,oBAAoB,EAAE,IAAI;AAC1K,uBAAuB,+DAAwB,EAAE,8IAA8I;AAC/L,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,6EAA6E;AACpF,QAAQ,wDAAiB,yFAAyF,uCAAuC,EAAE,8FAA8F,uCAAuC,EAAE,oFAAoF,uCAAuC,EAAE,kFAAkF,uCAAuC,EAAE,sFAAsF,uCAAuC,EAAE,sFAAsF,uCAAuC,EAAE;AACxxB,KAAK;AACL,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,EAAE;AACT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,gEAAU,cAAc,oBAAoB,EAAE;AACrE,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,6DAAe;AACjC;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uCAAuC;AACvG,oDAAoD;AACpD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,gEAAU,cAAc,oBAAoB,EAAE,KAAK,GAAG;AACrH,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,wBAAwB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,gEAAU,cAAc,oBAAoB,EAAE;AACrG;AACA,gEAAgE,qCAAqC,+DAAwB,CAAC,gEAAU,cAAc,oBAAoB,EAAE,IAAI,+DAAwB,CAAC,wDAAiB,GAAG;AAC7N,yBAAyB,+DAAwB,EAAE,+MAA+M;AAClQ,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,EAAE;AACT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,gEAAU,cAAc,oBAAoB,EAAE;AACrE,aAAa,GAAG,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,gEAAU,cAAc,oBAAoB,EAAE,KAAK,GAAG;AACrH,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,8CAA8C,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,gEAAU,cAAc,oBAAoB,EAAE;AAC3H;AACA,gEAAgE,qCAAqC,+DAAwB,CAAC,gEAAU,cAAc,oBAAoB,EAAE,IAAI,+DAAwB,CAAC,wDAAiB,GAAG;AAC7N,yBAAyB,+DAAwB,EAAE,+MAA+M;AAClQ,QAAQ,wDAAiB,iEAAiE,8BAA8B,EAAE,4FAA4F,uCAAuC,EAAE,gGAAgG,uCAAuC,EAAE,sFAAsF,uCAAuC,EAAE,oFAAoF,uCAAuC,EAAE;AACpoB,KAAK;AACL,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,aAAa,gEAAyB,GAAG,0CAA0C,gEAAU,cAAc,4BAA4B,EAAE,GAAG,IAAI,wEAAiC,GAAG;AAC3L,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6BAA6B,0CAA0C,gEAAU,cAAc,4BAA4B,EAAE,GAAG;AAChI,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,gEAAU,cAAc,oBAAoB,EAAE;AACrE,aAAa,GAAG,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA,yEAAyE,uBAAuB,EAAE;AAClG;AACA;AACA;AACA,mCAAmC,2DAAI;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,sBAAsB,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAS,4BAA4B,2DAAI,4BAA4B,sBAAsB,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oEAAoE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAuB,EAAE,uBAAuB,sCAAsC,EAAE;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,0BAA0B;AACnC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE;AAC1D,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,kEAAY,mBAAmB,gBAAgB;AACvD;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,mBAAmB,OAAO,wDAAU,iBAAiB;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,qBAAqB,gBAAgB;AACzD;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,kBAAkB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AACzD,QAAQ,qDAAO,IAAI,8DAAQ;AAC3B;AACA,oDAAoD,+BAA+B,+DAAwB,CAAC,+DAAwB,GAAG,+DAAwB,qBAAqB,+DAAwB,CAAC,wDAAQ,GAAG,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,gBAAgB;AAClY,mBAAmB,+DAAwB,EAAE,kIAAkI;AAC/K,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB,kCAAkC,wDAAU;AACzE,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,yEAAyE;AAChF,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,uHAAuH,YAAY,2BAA2B,wCAAwC,kEAA2B,GAAG;AACtP,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,4DAA4D,6BAA6B,EAAE;AAC3G,KAAK,gBAAgB,UAAU,OAAO,+DAAwB,EAAE,GAAG,0BAA0B,GAAG;AAChG,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG;AACrG,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAY;AAC9B,qCAAqC,gBAAgB;AACrD,SAAS;AACT,kBAAkB,0DAAY;AAC9B,qCAAqC,OAAO,wDAAU,iBAAiB;AACvE,SAAS;AACT,kBAAkB,0DAAY;AAC9B,uCAAuC,gBAAgB;AACvD,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,8DAAuB,EAAE,0BAA0B;AAC5E,yBAAyB,8DAAuB,EAAE,iDAAiD,uCAAuC,EAAE,EAAE;AAC9I,cAAc,oDAAoD,gEAAyB,qBAAqB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,EAAE;AACxB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,gBAAgB,0EAA0E;AAC1F,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wEAAkB,EAAE,6CAA6C,6BAA6B,EAAE,6CAA6C;AACxK,0DAA0D,oCAAoC;AAC9F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yDAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAA0D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN,sBAAsB,wEAAkB,EAAE,wCAAwC,sBAAsB,8DAAQ,CAAC,wDAAQ,GAAG,EAAE,wCAAwC;AACtK,gBAAgB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AACvD;AACA,gDAAgD,6BAA6B,sDAAe,CAAC,wDAAQ,GAAG;AACxG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,8DAA8D,sCAAsC;AACpG,wBAAwB,+DAAwB,EAAE,6KAA6K;AAC/N,QAAQ,wDAAiB;AACzB,KAAK,EAAE,WAAW,iCAAiC,4EAA4E,EAAE,oBAAoB;AACrJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,+BAA+B,+DAAiB;AAChD;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,uBAAuB,EAAE;AACnG;AACA;AACA;AACA,SAAS;AACT,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC,iCAAiC;AACjC;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA,0DAA0D,gCAAgC;AAC1F,qDAAqD,kDAAkD;AACvG;AACA;AACA;AACA;AACA,YAAY,sDAAS;AACrB,sBAAsB,gEAAS;AAC/B;AACA,YAAY,6DAAM,eAAe,iDAAiD,EAAE;AACpF,6CAA6C;AAC7C;AACA,iDAAiD,+CAA+C,EAAE;AAClG;AACA,aAAa,EAAE,EAAE;AACjB;AACA;AACA;AACA,YAAY,sDAAS;AACrB,sBAAsB,gEAAS,kBAAkB,0DAAG,cAAc,6BAA6B,EAAE,GAAG,gEAAS,cAAc,QAAQ,sDAAS,gCAAgC,gEAAS,kBAAkB,2DAAI,KAAK,EAAE,GAAG,6DAAM;AAC3N;AACA;AACA,aAAa;AACb,wCAAwC,qBAAqB,EAAE;AAC/D;AACA;AACA;AACA;AACA,YAAY,sDAAS,8BAA8B,gEAAS;AAC5D;AACA;AACA,iDAAiD,0DAA0D,EAAE;AAC7G;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B,EAAE;AACrE;AACA,SAAS;AACT;AACA;AACA,iDAAiD;AACjD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,+DAAS,YAAY,eAAe;AAC5C;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,qBAAqB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAC5D;AACA,0DAA0D,kCAAkC,+DAAwB,CAAC,wDAAQ,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AACtN,sBAAsB,+DAAwB,EAAE,6GAA6G;AAC7J,QAAQ,+DAAwB;AAChC,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,6HAA6H;AACpI,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,KAAK,EAAE,WAAW,6MAA6M,YAAY,0BAA0B,yKAAyK;AAC9a,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,KAAK,EAAE,wDAAwD,oBAAoB,aAAa,0BAA0B,sBAAsB,gBAAgB,sBAAsB;AACtL,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,+BAA+B,+DAAiB;AAChD,sEAAsE,oBAAoB,aAAa,0BAA0B,sBAAsB,gBAAgB;AACvK,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AAC7E,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,uDAAS;AAC3B,8BAA8B,eAAe;AAC7C,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4CAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E,iDAAiD,6BAA6B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,iDAAiD,oCAAoC,EAAE,EAAE;AACrJ,yDAAyD,mCAAmC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oCAAoC,yDAAW;AAC/C;AACA;AACA;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,wDAAwD,yCAAyC;AACjG,4DAA4D,6CAA6C;AACzG,gEAAgE,+BAA+B;AAC/F,8DAA8D,8BAA8B;AAC5F,gEAAgE,0BAA0B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,kEAAY,yBAAyB,gBAAgB;AAC7D;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,sBAAsB,gBAAgB;AAC1D;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,qBAAqB,gBAAgB;AACzD;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,qBAAqB,gBAAgB;AACzD;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,uBAAuB,gBAAgB;AAC3D;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY,yBAAyB,gBAAgB;AAC7D;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;A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ACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0CAA0C;AAC5F;AACA;AACA;AACA;AACA,oFAAoF,sBAAsB,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,yBAAyB;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,4DAAc;AAC9B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,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AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA,yBAAyB,2EAAmB,SAAS,yDAAS,aAAa,gEAAgB;AAC3F;AACA;AACA,uEAAuE,yBAAyB;AAChG,yEAAyE,yBAAyB;AAClG,2DAA2D;AAC3D,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN,+BAA+B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AACvE;AACA,8EAA8E,4CAA4C,sDAAe,CAAC,uDAAS,GAAG;AACtJ,iCAAiC,gEAAyB,EAAE,yDAAyD,yCAAyC,EAAE,EAAE;AAClK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU,cAAc,sBAAsB,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oBAAoB;AAClF,+DAA+D,qBAAqB;AACpF,sEAAsE,4BAA4B;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AS;AACT;AACA;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0CAA0C;AAC5F;AACA;AACA;AACA;AACA,oFAAoF,sBAAsB,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,yBAAyB;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,4DAAc;AAC9B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA,uCAAuC;AACvC,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAS;AACtC,kBAAkB,0DAAG,oBAAoB,4BAA4B,EAAE;AACvE,yCAAyC,oDAAe;AACxD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mDAAmD,0DAAG;AACtD;AACA;AACA,SAAS;AACT;AACA,yDAAyD,gEAAS,cAAc,iBAAiB,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qBAAqB;AAClF,8DAA8D,sBAAsB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,8CAA8C,EAAE;AAC9H,sFAAsF,0CAA0C,EAAE;AAClI;AACA;AACA;AACA;AACA,+EAA+E,6BAA6B,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAA4C,yBAAyB,EAAE,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,2BAA2B;AACpC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,aAAa;AACtB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,4DAAc;AAC9B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,mBAAmB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAC1D;AACA,sDAAsD,gCAAgC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,sDAAe,GAAG,+DAAwB,CAAC,sEAA+B,GAAG,+DAAwB,sBAAsB,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,QAAQ,+DAAwB,CAAC,wDAAQ,GAAG,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,CAAC,+DAAwB,GAAG,+DAAwB,CAAC,4DAAqB,GAAG;AACjnB,oBAAoB,+DAAwB,EAAE,oPAAoP;AAClS,QAAQ,wDAAiB,0DAA0D,yBAAyB,EAAE,uEAAuE,kCAAkC,EAAE;AACzN,KAAK;AACL,QAAQ,4DAAqB;AAC7B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,2RAA2R,YAAY,2BAA2B,yCAAyC,gEAAyB,mCAAmC;AACzb,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,sDAAe,EAAE,GAAG,OAAO,sEAA+B,EAAE,GAAG,2BAA2B,GAAG,OAAO,oDAAa,EAAE,GAAG,aAAa,GAAG;AACxQ,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,+DAAwB,EAAE,GAAG,OAAO,4DAAqB,EAAE,EAAE,EAAE,GAAG;AACrH,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,0BAA0B,8DAAuB,EAAE,2BAA2B;AAC9E,0BAA0B,8DAAuB,EAAE,kDAAkD,wCAAwC,EAAE,aAAa,4DAAY,IAAI;AAC5K,cAAc,oDAAoD,gEAAyB,sBAAsB,4BAA4B;AAC7I;AACA,4BAA4B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AACvG,sBAAsB,EAAE,EAAE,EAAE,EAAE;AAC9B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,0BAA0B,4DAAY;AACtC;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAuB,EAAE,kBAAkB;AAC5D,iBAAiB,8DAAuB,EAAE,yCAAyC,+BAA+B,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,cAAc,oDAAoD,gEAAyB,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE,EAAE;AAC9B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB,gBAAgB,6CAA6C;AAC7D,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEuoF;;AAEvoF,wC;;;;;;;;;;;;ACj2VA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoF;AAC4O;AACjR;AAC2B;AACL;AACpC;AACa;AACD;AACX;AACoE;AAC7C;AACqC;AACnD;AACE;AACV;AACJ;AACkB;AACL;;AAEJ;AACE;AACU;;AAEpD;AACA,yEAAyE;AACzE,yBAAyB,SAAS,aAAa;AAC/C,2DAA2D;AAC3D,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,iBAAiB,2DAAoB;AACrC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,iEAAiE,6DAAsB;AAC5G,CAAC;AACD,2DAA2D;AAC3D,IAAI,uDAAgB;AACpB,CAAC;AACD,iBAAiB,2DAAoB;AACrC,IAAI,wDAAiB,4BAA4B,4DAAqB;AACtE,CAAC;AACD,qEAAqE;AACrE,IAAI,4DAAqB;AACzB,IAAI,6DAAsB;AAC1B,IAAI,uDAAgB;AACpB,CAAC;AACD,iBAAiB,2DAAoB;AACrC,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,cAAc,8DAAuB;AACrC,IAAI,4DAAqB;AACzB,IAAI,6DAAsB;AAC1B,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qHAAqH,CAAC,2DAAoB,MAAM,cAAc,2DAAoB,GAAG,6CAA6C,EAAE,4HAA4H,CAAC,2DAAoB,MAAM,cAAc,2DAAoB,GAAG,gDAAgD,EAAE,gIAAgI,CAAC,2DAAoB,MAAM,cAAc,2DAAoB,GAAG,kDAAkD,EAAE;AAC3tB,IAAI,0DAAmB;AACvB,CAAC;AACD,iBAAiB,2DAAoB;AACrC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA;AACA;AACA,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,oDAAoD;AACpD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6GAA6G,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,wCAAwC,EAAE;AAC9O,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,oDAAoD;AACpD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,4DAA4D;AAC5D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,CAAC;AACD,8EAA8E;AAC9E,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,CAAC;AACD,8EAA8E;AAC9E,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,2EAA2E;AAC3E,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,oDAAoD;AACpD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6GAA6G,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,uCAAuC,EAAE;AAC7O,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,oDAAoD;AACpD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,uEAAuE;AACvE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,CAAC;AACD,0BAA0B,SAAS,YAAY;AAC/C,2DAA2D;AAC3D,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wFAAwF,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,6CAA6C,EAAE,6FAA6F,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,iCAAiC,EAAE,iGAAiG,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,mCAAmC,EAAE;AACxmB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB,4BAA4B,6DAAsB;AACxE,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA;AACA,8DAA8D;AAC9D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,sDAAsD;AACtD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA;AACA,wEAAwE;AACxE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,2DAA2D;AAC3D,IAAI,4DAAqB;AACzB,IAAI,6DAAsB;AAC1B,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,qDAAqD;AACrD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,CAAC;AACD,iDAAiD;AACjD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qGAAqG,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,wCAAwC,EAAE,0GAA0G,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,iCAAiC,EAAE,8GAA8G,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,mCAAmC,EAAE;AAC1oB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,IAAI,uDAAgB;AACpB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,gEAAgE;AAChE,IAAI,uDAAgB;AACpB,CAAC;AACD,yBAAyB,2DAAoB;AAC7C,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,gEAAgE;AAChE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,yBAAyB,2DAAoB;AAC7C,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,gEAAgE;AAChE,IAAI,uDAAgB;AACpB,CAAC;AACD,yBAAyB,2DAAoB;AAC7C,IAAI,wDAAiB;AACrB,CAAC;AACD,gEAAgE;AAChE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,yBAAyB,2DAAoB;AAC7C,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,0DAA0D;AAC1D,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4FAA4F,CAAC,2DAAoB,OAAO,oCAAoC,eAAe,2DAAoB,GAAG,mDAAmD,EAAE,6FAA6F,CAAC,2DAAoB,OAAO,oCAAoC,eAAe,2DAAoB,GAAG,qDAAqD,EAAE,mFAAmF,CAAC,2DAAoB,OAAO,oCAAoC,eAAe,2DAAoB,GAAG,iDAAiD,EAAE;AAClvB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA,wDAAwD;AACxD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iHAAiH,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,0CAA0C,EAAE;AACpP,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iHAAiH,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,yCAAyC,EAAE;AACnP,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,iEAAiE;AACjE,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,oGAAoG,CAAC,2DAAoB,OAAO,gCAAgC,eAAe,2DAAoB,IAAI,4CAA4C,EAAE,yGAAyG,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,mCAAmC,EAAE,6GAA6G,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,IAAI,qCAAqC,EAAE;AAClrB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6FAA6F,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,8BAA8B,EAAE;AACpN,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,CAAC,2DAAoB,OAAO,eAAe,2DAAoB,GAAG,8CAA8C,EAAE;AAChO,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,8BAA8B,iBAAiB;AAC/C,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4GAA4G,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AAC7O,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,kBAAkB,2DAAoB;AACtC,IAAI,wDAAiB,qCAAqC,6DAAsB;AAChF,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2HAA2H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACjQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2HAA2H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAChQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,2EAA2E;AAC3E,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,8GAA8G,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,IAAI,8CAA8C,EAAE,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC,EAAE,uHAAuH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,sCAAsC,EAAE;AAC3tB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uGAAuG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+BAA+B,EAAE;AACjO,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mGAAmG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AAC7O,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,4EAA4E;AAC5E,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,mEAAmE;AACnE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,sHAAsH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AACvP,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,sCAAsC,6DAAsB;AACjF,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wHAAwH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAC9P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wHAAwH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAC7P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,wEAAwE;AACxE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2GAA2G,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,IAAI,8CAA8C,EAAE,gHAAgH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC,EAAE,oHAAoH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,sCAAsC,EAAE;AACltB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,oGAAoG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+BAA+B,EAAE;AAC9N,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gGAAgG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AAC1O,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,yEAAyE;AACzE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,gEAAgE;AAChE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AACpP,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,sCAAsC,6DAAsB;AACjF,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA,qDAAqD;AACrD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qHAAqH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAC3P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qHAAqH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAC1P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,8DAA8D;AAC9D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uHAAuH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAC7P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,8DAA8D;AAC9D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uHAAuH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAC5P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,8DAA8D;AAC9D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iGAAiG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,sGAAsG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,0GAA0G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE,gIAAgI,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,gEAAgE,EAAE;AACziC,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,sEAAsE;AACtE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+HAA+H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACrQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,sEAAsE;AACtE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+HAA+H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACpQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,sEAAsE;AACtE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yGAAyG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,8GAA8G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,kHAAkH,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE;AAC/xB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,mEAAmE;AACnE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4HAA4H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAClQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,mEAAmE;AACnE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4HAA4H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACjQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,mEAAmE;AACnE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,sGAAsG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,2GAA2G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,+GAA+G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE,qIAAqI,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,gEAAgE,EAAE;AAC7jC,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACzP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACxP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qHAAqH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAC3P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,qHAAqH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAC1P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+FAA+F,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,oGAAoG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,wGAAwG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE,gIAAgI,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,iEAAiE,EAAE;AACpiC,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,CAAC;AACD,oEAAoE;AACpE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6HAA6H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACnQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,oEAAoE;AACpE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6HAA6H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAClQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,oEAAoE;AACpE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uGAAuG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,4GAA4G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,gHAAgH,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE;AACzxB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,iEAAiE;AACjE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0HAA0H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AAChQ,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,iEAAiE;AACjE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0HAA0H,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AAC/P,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,iEAAiE;AACjE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,oGAAoG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,yGAAyG,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,gDAAgD,EAAE,6GAA6G,CAAC,2DAAoB,QAAQ,gCAAgC,gBAAgB,2DAAoB,GAAG,kDAAkD,EAAE,qIAAqI,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,iEAAiE,EAAE;AACxjC,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,6DAA6D;AAC7D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,gGAAgG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,qGAAqG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,uCAAuC,EAAE,yGAAyG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,yCAAyC,EAAE;AACtoB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,sEAAsE;AACtE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+HAA+H,CAAC,2DAAoB,QAAQ,wBAAwB,gBAAgB,2DAAoB,IAAI,8CAA8C,8BAA8B,EAAE,EAAE;AACjU,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,sDAAsD;AACtD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+BAA+B,EAAE,8FAA8F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,uCAAuC,EAAE,kGAAkG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,yCAAyC,EAAE;AAC/mB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,+DAA+D;AAC/D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wHAAwH,CAAC,2DAAoB,QAAQ,wBAAwB,gBAAgB,2DAAoB,IAAI,6CAA6C,8BAA8B,EAAE,EAAE;AACzT,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,sDAAsD;AACtD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACzP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mHAAmH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACxP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6FAA6F,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,8CAA8C,EAAE,kGAAkG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,oCAAoC,EAAE,sGAAsG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AACrqB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,2DAA2D;AAC3D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,wFAAwF,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE,6FAA6F,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,6CAA6C,EAAE,iGAAiG,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AACvuB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,kCAAkC,SAAS,mCAAmC;AAC9E,6DAA6D;AAC7D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0FAA0F,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE,+FAA+F,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,4CAA4C,EAAE,mGAAmG,CAAC,2DAAoB,QAAQ,4BAA4B,gBAAgB,2DAAoB,GAAG,8CAA8C,EAAE;AACvtB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,ibAAib,6DAAsB;AAC5d,CAAC;AACD,sDAAsD;AACtD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+GAA+G,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACrP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,sDAAsD;AACtD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+GAA+G,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACpP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iHAAiH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,2CAA2C,EAAE;AACvP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,iHAAiH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACtP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,iEAAiE;AACjE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,oGAAoG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,iCAAiC,EAAE,yGAAyG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,oCAAoC,EAAE,6GAA6G,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,IAAI,sCAAsC,EAAE;AAC/oB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,6FAA6F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+BAA+B,EAAE;AACvN,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AACnO,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4GAA4G,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AAC7O,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,sCAAsC,6DAAsB;AACjF,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB,CAAC;AACD,uEAAuE;AACvE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,IAAI,yDAAkB;AACtB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,kHAAkH,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,0CAA0C,EAAE;AACvP,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,CAAC;AACD,yDAAyD;AACzD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4FAA4F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,iGAAiG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,oCAAoC,EAAE,qGAAqG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AACpnB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,0DAA0D;AAC1D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,0DAA0D;AAC1D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uFAAuF,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE,4FAA4F,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,gCAAgC,gCAAgC,EAAE,EAAE,gGAAgG,CAAC,2DAAoB,QAAQ,iCAAiC,gBAAgB,2DAAoB,GAAG,kCAAkC,gCAAgC,EAAE,EAAE;AAClxB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,IAAI,wDAAiB;AACrB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,CAAC;AACD,kEAAkE;AAClE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,sBAAsB,2DAAoB;AAC1C,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,0BAA0B,SAAS,YAAY;AAC/C,sDAAsD;AACtD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yFAAyF,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,8FAA8F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,oCAAoC,EAAE,kGAAkG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AAC3mB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,0VAA0V,6DAAsB;AACrY,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,4DAA4D;AAC5D,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,+FAA+F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,oGAAoG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,uCAAuC,EAAE,wGAAwG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,yCAAyC,EAAE;AACnoB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,iEAAiE;AACjE,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,2FAA2F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,gGAAgG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,uCAAuC,EAAE,oGAAoG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,yCAAyC,EAAE,gGAAgG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,uCAAuC,EAAE;AACp0B,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA,sDAAsD;AACtD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,4DAA4D;AAC5D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,CAAC;AACD,yDAAyD;AACzD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,4FAA4F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE;AACxN,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,oFAAoF;AACpF,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,oFAAoF;AACpF,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,sEAAsE;AACtE,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,6DAAsB;AAC1B,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,uCAAuC,4DAAqB;AACjF,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA,gEAAgE;AAChE,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,mGAAmG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE;AAC/N,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,CAAC;AACD,6DAA6D;AAC7D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,CAAC;AACD,wBAAwB,WAAW;AACnC,oDAAoD;AACpD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,uFAAuF,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,iCAAiC,EAAE,4FAA4F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,oCAAoC,EAAE,gGAAgG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,sCAAsC,EAAE;AACrmB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,oDAAoD;AACpD,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD,uDAAuD;AACvD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,CAAC;AACD;AACA;AACA,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,CAAC;AACD,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,wDAAwD;AACxD,IAAI,4DAAqB;AACzB,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ,sDAAsD,uBAAuB;AAClI;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAQ,gDAAgD,qBAAqB;AACxH;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA;AACA,6BAA6B,iEAAa;AAC1C,yBAAyB,mEAAe;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,4DAAc,EAAE;AAChC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,sDAAQ;AACxB,MAAM;AACN,8DAA8D,oCAAoC,sDAAe,CAAC,4DAAqB,GAAG,sDAAe,CAAC,sEAA+B,GAAG,sDAAe,CAAC,sDAAe,GAAG;AAC9N,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,4DAAqB,EAAE,GAAG,OAAO,sEAA+B,EAAE,GAAG,OAAO,sDAAe,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjJ;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAsD,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,+DAAS;AACjB;AACA,IAAI,wDAAU;AACd,QAAQ,iEAAW;AACnB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA;AAC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AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAQ,GAAG;AAChC,sBAAsB,sDAAQ,GAAG;AACjC;AACA,wBAAwB;AACxB;AACA;AACA,8BAA8B,sDAAQ,CAAC,sDAAQ,GAAG;AAClD;AACA;AACA,+BAA+B,sDAAQ,CAAC,sDAAQ,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS;AACT,MAAM;AACN,0DAA0D,kCAAkC,sDAAe,oBAAoB;AAC/H,uBAAuB,gEAAyB,EAAE,+CAA+C,+BAA+B,EAAE,EAAE;AACpI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,yBAAyB,EAAE,EAAE,QAAQ,EAAE;AACtE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD,uCAAuC,0DAAY;AACnD,yCAAyC,0DAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,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ACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAS;AAC9B,uCAAuC,mEAAY;AACnD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sDAAQ,kCAAkC,UAAU;AACzG;AACA,iEAAiE;AACjE;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,CAAC,+DAAwB,GAAG;AAClP,0BAA0B,+DAAwB,EAAE,iEAAiE,uIAAuI,YAAY,mBAAmB,aAAa,kEAA2B,+EAA+E;AAClZ,QAAQ,uDAAgB;AACxB,KAAK,EAAE,oBAAoB;AAC3B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,+DAAwB,EAAE,EAAE,EAAE,GAAG;AAC7H,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,wDAAiB,GAAG;AACrJ,0BAA0B,+DAAwB,EAAE,qFAAqF,uFAAuF,aAAa,kEAA2B,2FAA2F;AACnW,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,gEAAyB;AACjC,KAAK,EAAE,wCAAwC;AAC/C,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iOAAiO,SAAS;AAC1O,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D,oCAAoC,2BAA2B,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B,EAAE;AAC7D;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AA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ACA;AACA;AACA;AACA,aAAa,oDAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD,oCAAoC,2BAA2B,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B,EAAE;AAC7D;AACA;AACA,uGAAuG,mBAAmB,EAAE;AAC5H,uGAAuG,mBAAmB,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ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;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,kBAAkB,8DAAuB,EAAE,mBAAmB;AAC9D,kBAAkB,8DAAuB,EAAE,0CAA0C,gCAAgC,EAAE,aAAa,4DAAY,IAAI;AACpJ,cAAc,oDAAoD,gEAAyB,cAAc,4BAA4B;AACrI;AACA;AACA;AACA,6BAA6B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AACxG;AACA;AACA;AACA,6BAA6B,EAAE,EAAE,EAAE,EAAE;AACrC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,gCAAgC;;AAEjC;AACA;AACA;AACA;AACA;AACA,CAAC,wCAAwC;;AAEzC;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAY;AACpC,wBAAwB,0DAAY;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AA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EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,qBAAqB,8DAAuB,EAAE,sBAAsB;AACpE,qBAAqB,8DAAuB,EAAE,6CAA6C,mCAAmC,EAAE,4DAA4D,4DAAY,IAAI;AAC5M,cAAc,oDAAoD,gEAAyB,iBAAiB,4BAA4B;AACxI,0BAA0B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AACrG,0BAA0B,EAAE,EAAE,EAAE,EAAE;AAClC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,0BAA0B,4DAAY;AACtC;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,sBAAsB;AACtB,sBAAsB;AACtB,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yDAAyD,sBAAsB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,4EAA4E,EAAE;AACvJ;AACA;AACA;AACA;AACA;AACA,wCAAwC,yCAAyC;AACjF;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,8DAA8D,oCAAoC,+DAAwB,CAAC,+DAAwB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AACnM,wBAAwB,+DAAwB,EAAE,gFAAgF,yMAAyM,YAAY,yDAAyD,yFAAyF;AACze,QAAQ,oDAAa;AACrB,KAAK;AACL,QAAQ,gEAAyB;AACjC,KAAK,EAAE,oBAAoB;AAC3B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,mCAAmC,SAAS;AAC5C,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,+DAAwB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AACpG,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iBAAiB;AAC9C,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA,qCAAqC,2CAA2C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA,2DAA2D,8CAA8C,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,+DAAS,mBAAmB,gBAAgB;AACpD;AACA,oDAAoD,iCAAiC;AACrF,mBAAmB,+DAAwB,EAAE,uHAAuH;AACpK,QAAQ,yDAAkB;AAC1B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,iNAAiN,YAAY,iBAAiB,qjBAAqjB;AACrzB,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,oFAAoF,8BAA8B,EAAE,iFAAiF,0BAA0B,EAAE;AAC1P,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB,2EAA2E,oEAA6B;AACjI,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,mBAAmB,yDAAkB;AACrC,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,iCAAiC,uDAAc,4BAA4B;AAClF,YAAY,mEAAO;AACnB,gBAAgB,sEAAU;AAC1B,oBAAoB,iEAAK;AACzB;AACA,qBAAqB;AACrB,oBAAoB,mEAAO,MAAM,iEAAK,EAAE,eAAe;AACvD;AACA,gBAAgB,sEAAU;AAC1B,oBAAoB,iEAAK;AACzB;AACA,qBAAqB;AACrB,oBAAoB,mEAAO,MAAM,iEAAK,EAAE,aAAa;AACrD;AACA;AACA,WAAW,sBAAsB;AACjC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,2OAA2O,gBAAgB,2aAA2a,+BAA+B;AACrsB,iCAAiC,qEAAuB;AACxD;AACA,oBAAoB,mEAAO;AAC3B,wBAAwB,sEAAU;AAClC,4BAA4B,iEAAK;AACjC;AACA,6BAA6B;AAC7B,4BAA4B,mEAAO,MAAM,iEAAK,EAAE,eAAe;AAC/D;AACA,wBAAwB,sEAAU;AAClC,4BAA4B,iEAAK;AACjC;AACA,6BAA6B;AAC7B,4BAA4B,mEAAO,MAAM,iEAAK,EAAE,aAAa;AAC7D;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B,qCAAqC,gBAAgB;AACrD,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0DAAS;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAM;AAC3B;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAK;AACjC;AACA;AACA;AACA,SAAS;AACT,QAAQ,2DAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAM;AACd;AACA;AACA;AACA,QAAQ,2DAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,SAAS,OAAO,wDAAU,EAAE;AA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;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAuB,EAAE,0BAA0B;AAC5E,yBAAyB,8DAAuB,EAAE,iDAAiD,uCAAuC,EAAE,aAAa,4DAAY;AACrK,QAAQ,4DAAY;AACpB;AACA,wBAAwB;AACxB,cAAc,oDAAoD,gEAAyB,qBAAqB,4BAA4B;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,wBAAwB,SAAS,4DAAY;AAC3E;AACA,uBAAuB,EAAE,wBAAwB,SAAS,4DAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,EAAE,EAAE,EAAE;AACpC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC,8BAA8B,sDAAQ;AACtC,yBAAyB,sDAAQ,EAAE,4DAAY;AAC/C,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yBAAyB,8DAAa;AACtC;AACA;AACA;AACA;AACA,yBAAyB,6DAAY;AACrC;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ;AACtC;AACA;AACA;AACA;AACA,yBAAyB,uDAAK;AAC9B,yBAAyB,4DAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4DAAW;AACpC;AACA;AACA,8BAA8B,0DAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,oCAAoC,iBAAiB;AACpG;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAQ,0CAA0C,mBAAmB;AAClG;AACA;AACA,6CAA6C,sDAAQ,iCAAiC,UAAU;AAChG;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB;AACzD;AACA,sDAAsD,8BAA8B,EAAE;AACtF;AACA;AACA;AACA;AACA,oDAAoD,kCAAkC,EAAE;AACxF;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,+BAA+B,cAAc,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,qBAAqB,sDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA;AACA;AACA,oBAAoB,0DAAS;AAC7B;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ,uCAAuC,kBAAkB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,kEAAkE,iEAAiE;AACnI,0BAA0B,+DAAwB,EAAE,kJAAkJ;AACtM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,mEAAmE;AAC1E,QAAQ,wDAAiB,4EAA4E,0BAA0B,EAAE;AACjI,KAAK,EAAE,WAAW,26BAA26B,YAAY,iDAAiD,aAAa,wEAAiC,w8DAAw8D;AACh/F,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,gHAAgH,4BAA4B,EAAE,uHAAuH,+BAA+B,EAAE,2HAA2H,iCAAiC,EAAE;AAC7d,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB,SAAS,6DAAsB;AACxD,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,2BAA2B,yBAAyB,oDAAW,EAAE,uDAAc;AACtF;AACA;AACA;AACA;AACA,kBAAkB,EAAE,wBAAwB,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB,0CAA0C;AAC/pD,sCAAsC,mEAA4B;AAClE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,w4DAAw4D,4vEAA4vE;AACpoI,iCAAiC,qEAAuB;AACxD,+BAA+B,+DAAiB;AAChD,sCAAsC,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB;AAC/mD,aAAa;AACb,KAAK,UAAU;AACf,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ,kCAAkC,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,6CAA6C,sDAAQ,kCAAkC,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA,wBAAwB,sDAAQ,+BAA+B,cAAc,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA;AACA;AACA,oBAAoB,0DAAS;AAC7B;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AAC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AAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ,kCAAkC,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,+BAA+B,cAAc,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ,kCAAkC,UAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA;AACA;AACA,oBAAoB,0DAAS;AAC7B;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,gFAAgF,+EAA+E;AAC/J,iCAAiC,+DAAwB,EAAE,wKAAwK;AACnO,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,0EAA0E;AACjF,QAAQ,wDAAiB,mFAAmF,0BAA0B,EAAE;AACxI,KAAK,EAAE,WAAW,22BAA22B,YAAY,iDAAiD,aAAa,wEAAiC,q9DAAq9D;AAC77F,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uHAAuH,4BAA4B,EAAE,8HAA8H,+BAA+B,EAAE,kIAAkI,iCAAiC,EAAE;AAClf,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB,SAAS,6DAAsB;AACxD,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,2BAA2B,yBAAyB,oDAAW,EAAE,uDAAc;AACtF;AACA;AACA;AACA;AACA,kBAAkB,EAAE,wBAAwB,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB,0CAA0C;AAC/pD,6CAA6C,mEAA4B;AACzE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,w4DAAw4D,8iCAA8iC,yvCAAyvC;AAC/qI,iCAAiC,qEAAuB;AACxD,+BAA+B,+DAAiB;AAChD,sCAAsC,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB;AAC/mD,aAAa;AACb,KAAK,UAAU;AACf,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA,qCAAqC,2BAA2B,EAAE;AAClE,qCAAqC,2BAA2B,EAAE;AAClE,2BAA2B,sDAAI;AAC/B;AACA,kCAAkC,gCAAgC,EAAE;AACpE,kCAAkC,gCAAgC,EAAE;AACpE;AACA;AACA,0BAA0B,sDAAI;AAC9B;AACA,iCAAiC,+FAA+F,EAAE;AAClI,kCAAkC,8BAA8B,EAAE;AAClE,2BAA2B,sDAAI;AAC/B;AACA,kCAAkC,+FAA+F,EAAE;AACnI,kCAAkC,+FAA+F,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,aAAa,EAAE;AACjF,kEAAkE,aAAa,EAAE;AACjF,+CAA+C,sDAAQ;AACvD,+CAA+C,sDAAQ;AACvD;AACA;AACA;AACA,gEAAgE,gBAAgB,EAAE;AAClF,+CAA+C,sDAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,oEAAoE,yCAAyC;AAC7G,2BAA2B,+DAAwB,EAAE,uFAAuF,mQAAmQ,YAAY,mBAAmB,aAAa,kEAA2B,4OAA4O;AAClsB,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,KAAK;AACL,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,KAAK,EAAE,qEAAqE;AAC5E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,uBAAuB,8DAAuB,EAAE,wBAAwB;AACxE,uBAAuB,8DAAuB,EAAE,+CAA+C,qCAAqC,EAAE,kCAAkC;AACxK,cAAc,oDAAoD,gEAAyB,mBAAmB;AAC9G;AACA;AACA;AACA;AACA;AACA,8BAA8B,EAAE,EAAE;AAClC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,sDAAsD,gCAAgC,+DAAwB,CAAC,wDAAiB,GAAG;AACnI,oBAAoB,+DAAwB,EAAE,0HAA0H;AACxK,QAAQ,wDAAiB,sEAAsE,2BAA2B,EAAE,uEAAuE,2BAA2B,EAAE;AAChO,KAAK,EAAE,WAAW,qSAAqS,YAAY,mEAAmE,aAAa,kEAA2B,mQAAmQ;AACjrB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uEAAuE,kCAAkC,EAAE;AACpI,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,eAAe,oDAAW,qEAAqE;AACtG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB,EAAE;AACtE,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,k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AAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,uCAAuC,sDAAQ;AAC/C,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,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S;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK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vB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,uCAAuC,sDAAQ;AAC/C,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;A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AkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA;AACA,oDAAoD,gBAAgB,EAAE;AACtE,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA,uCAAuC,sDAAQ;AAC/C;AACA,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA,uCAAuC,sDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QA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CvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,uCAAuC,sDAAQ;AAC/C,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU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;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,uCAAuC,sDAAQ;AAC/C,wDAAwD,sDAAQ,mDAAmD,sDAAQ;AAC3H;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA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E;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC,0BAA0B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C,0CAA0C,0DAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB,EAAE,4BAA4B,gBAAgB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB,EAAE,4BAA4B,gCAAgC,EAAE;AAC9I,8DAA8D,gBAAgB,EAAE,4BAA4B,gCAAgC,EAAE;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,4EAA4E,6CAA6C;AACzH,+BAA+B,+DAAwB,EAAE,+FAA+F,6ZAA6Z,YAAY,qHAAqH,aAAa,kEAA2B,koCAAkoC;AACh2D,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,KAAK;AACL,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,2BAA2B,SAAS,uDAAc,EAAE,oDAAW;AACtE;AACA,2BAA2B,EAAE,2BAA2B;AACxD,YAAY,mEAAO;AACnB,gBAAgB,sEAAU;AAC1B,oBAAoB,iEAAK;AACzB;AACA,qBAAqB;AACrB,oBAAoB,mEAAO,MAAM,iEAAK,EAAE,aAAa;AACrD;AACA;AACA,WAAW,sBAAsB;AACjC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,8FAA8F,+lCAA+lC,eAAe,iUAAiU,yBAAyB;AACtiD,iCAAiC,qEAAuB;AACxD;AACA,oBAAoB,mEAAO;AAC3B,wBAAwB,sEAAU;AAClC,4BAA4B,iEAAK;AACjC;AACA,6BAA6B;AAC7B,4BAA4B,mEAAO,MAAM,iEAAK,EAAE,aAAa;AAC7D;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C,yCAAyC,0DAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB,EAAE,4BAA4B,gBAAgB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB,EAAE,4BAA4B,gCAAgC,EAAE;AAC9I,8DAA8D,gBAAgB,EAAE,4BAA4B,gCAAgC,EAAE;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAA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A;AACA;AACA;AACA;AACA;AACA,gBAAgB,2DAAU;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2DAA2D,eAAe,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,4BAA4B,UAAU;AACxE;AACA;AACA,iDAAiD,sDAAQ,4BAA4B,UAAU;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IA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;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,mBAAmB;AACvG;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uCAAuC,6BAA6B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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ACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,gCAAgC,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AACA;AACA,qBAAqB;AACrB,oBAAoB,mEAAO,OAAO,iEAAK;AACvC;AACA,qBAAqB;AACrB;AACA;AACA,WAAW,sBAAsB;AACjC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,iCAAiC,qEAAuB;AACxD;AACA,oBAAoB,mEAAO;AAC3B,wBAAwB,sEAAU;AAClC,4BAA4B,iEAAK;AACjC;AACA;AACA,6BAA6B;AAC7B,4BAA4B,mEAAO,OAAO,iEAAK;AAC/C;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ,+BAA+B,cAAc,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,qBAAqB,sDAAQ;AAC7B;AACA;AACA;AACA,yEAAyE,sDAAQ;AACjF,yEAAyE,sDAAQ;AACjF;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA;AACA;AACA,oBAAoB,0DAAS;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA,sCAAsC,4BAA4B;AAClE;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,kEAAkE,iEAAiE;AACnI,0BAA0B,+DAAwB,EAAE,kJAAkJ;AACtM,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,mEAAmE;AAC1E,QAAQ,wDAAiB,4EAA4E,0BAA0B,EAAE;AACjI,KAAK,EAAE,WAAW,ygCAAygC,YAAY,iDAAiD,aAAa,wEAAiC,wiEAAwiE;AAC9qG,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,gHAAgH,4BAA4B,EAAE,uHAAuH,+BAA+B,EAAE,2HAA2H,iCAAiC,EAAE;AAC7d,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB,SAAS,6DAAsB;AACxD,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,2BAA2B,yBAAyB,oDAAW,EAAE,uDAAc;AACtF;AACA;AACA;AACA;AACA,kBAAkB,EAAE,wBAAwB,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB,6BAA6B;AAClpD,YAAY,mEAAO;AACnB,gBAAgB,sEAAU;AAC1B,oBAAoB,iEAAK;AACzB;AACA,qBAAqB;AACrB,oBAAoB,mEAAO,MAAM,iEAAK;AACtC;AACA,qBAAqB;AACrB;AACA;AACA,WAAW,sBAAsB;AACjC,sCAAsC,mEAA4B;AAClE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,+gEAA+gE,iyEAAiyE;AAChzI,+BAA+B,+DAAiB;AAChD,iCAAiC,qEAAuB;AACxD;AACA,oBAAoB,mEAAO;AAC3B,wBAAwB,sEAAU;AAClC,4BAA4B,iEAAK;AACjC;AACA,6BAA6B;AAC7B,4BAA4B,mEAAO,MAAM,iEAAK;AAC9C;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,sCAAsC,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB;AAC/mD,aAAa;AACb,KAAK,UAAU;AACf,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB,EAAE;AAC9E,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,6BAA6B,8BAA8B,EAAE;AAC7D;AACA;AACA;AACA;AACA,eAAe,sDAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,kEAAkE,EAAE;AAClG,8BAA8B,kEAAkE,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAI;AACnB;AACA,6BAA6B,gCAAgC,EAAE;AAC/D,8BAA8B,8BAA8B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB,EAAE;AAC9E,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,oEAAoE,yCAAyC;AAC7G,2BAA2B,+DAAwB,EAAE,uFAAuF,mOAAmO,aAAa,kEAA2B,+uBAA+uB;AACtoC,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,oDAAW;AACjC;AACA,2EAA2E;AAC3E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,uBAAuB,8DAAuB,EAAE,wBAAwB;AACxE,uBAAuB,8DAAuB,EAAE,+CAA+C,qCAAqC,EAAE,kCAAkC;AACxK,cAAc,oDAAoD,gEAAyB,mBAAmB;AAC9G;AACA;AACA;AACA,8BAA8B,EAAE,EAAE;AAClC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,sBAAsB,6DAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ,CAAC,sDAAQ,GAAG,eAAe,mBAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,wBAAwB,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA,iDAAiD,sDAAQ,kCAAkC,UAAU;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D,uCAAuC,sDAAQ;AAC/C,uCAAuC,sDAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA;AACA;AACA,uBAAuB,0DAAS;AAChC;AACA;AACA;AACA,4BAA4B,4DAAW;AACvC;AACA;AACA;AACA;AACA,uBAAuB,2DAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8DAA8D,oCAAoC,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAU;AACzB,iCAAiC,0BAA0B,EAAE;AAC7D,kCAAkC,2BAA2B,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB,EAAE;AAC9E,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,sEAAsE,0CAA0C;AAChH,4BAA4B,+DAAwB,EAAE,yFAAyF,qVAAqV,YAAY,mEAAmE,aAAa,kEAA2B,k/BAAk/B;AAC7kD,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,oDAAW,iBAAiB,uDAAc;AAChE;AACA,iEAAiE;AACjE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,67CAA67C,2BAA2B,6CAA6C,2BAA2B;AAChiD,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ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SAAS,oWAAoW,uDAAuD;AAC9c,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAG;AAClB;AACA;AACA;AACA;AACA;AACA,mBAAmB,2DAAM;AACzB;AACA,oBAAoB,uDAAuD;AAC3E;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,+BAA+B,mEAAW;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+BAA+B,mEAAW;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,2DAAM;AACzB;AACA,oBAAoB,uDAAuD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAW;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gDAAgD,sCAAsC,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,4DAA4D,mCAAmC,+DAAwB,CAAC,wDAAiB,GAAG;AAC5I,uBAAuB,+DAAwB,EAAE,+EAA+E,+TAA+T,YAAY,yFAAyF,aAAa,kEAA2B,ySAAyS;AACr3B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0EAA0E,sBAAsB,EAAE,uFAAuF,+BAA+B,EAAE,qFAAqF,oCAAoC,EAAE,qFAAqF,sCAAsC,EAAE;AAC3e,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,eAAe,oDAAW,qEAAqE;AACtG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,2BAA2B,0DAAY;AACvC,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,gEAAgE,+DAA+D;AAC/H,yBAAyB,+DAAwB,EAAE,+IAA+I;AAClM,QAAQ,4DAAqB;AAC7B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,yZAAyZ,YAAY,yFAAyF,aAAa,wEAAiC,yjBAAyjB;AACvnC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,qHAAqH,qCAAqC,EAAE,0HAA0H,uCAAuC,EAAE,gHAAgH,4BAA4B,EAAE;AACte,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,qFAAqF,kCAAkC,EAAE,kFAAkF,4BAA4B,EAAE,sFAAsF,+BAA+B,EAAE,0FAA0F,iCAAiC,EAAE;AACtf,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB,SAAS,6DAAsB;AACxD,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,2BAA2B;AAClC,4BAA4B,EAAE,wBAAwB,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB,eAAe,eAAe,qBAAqB,uCAAuC,+BAA+B,0BAA0B,KAAK,UAAU,GAAG,WAAW,kBAAkB,KAAK,UAAU,GAAG,WAAW,gBAAgB,sBAAsB,0BAA0B,oCAAoC,4BAA4B,2BAA2B,mBAAmB,2BAA2B,KAAK,uBAAuB,GAAG,qBAAqB,mBAAmB,KAAK,uBAAuB,GAAG,qBAAqB,0CAA0C;AAC5sE,qCAAqC,mEAA4B;AACjE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,+BAA+B,+DAAiB;AAChD,iCAAiC,qEAAuB;AACxD,sCAAsC,WAAW,iBAAiB,sDAAsD,eAAe,gMAAgM,WAAW,2CAA2C,mCAAmC,8FAA8F,UAAU,kGAAkG,aAAa,oBAAoB,UAAU,4LAA4L,2CAA2C,mCAAmC,WAAW,4BAA4B,aAAa,mCAAmC,cAAc,kBAAkB,WAAW,0BAA0B,eAAe,mBAAmB,eAAe,gBAAgB,4BAA4B,UAAU,2BAA2B,YAAY,eAAe,UAAU,0BAA0B,eAAe,eAAe,mBAAmB,oBAAoB,2BAA2B,cAAc,4BAA4B,iBAAiB,UAAU,kCAAkC,YAAY,eAAe,UAAU,sBAAsB,oBAAoB,6BAA6B,UAAU,iCAAiC,qBAAqB,eAAe,eAAe,qBAAqB,uCAAuC,+BAA+B,0BAA0B,KAAK,UAAU,GAAG,WAAW,kBAAkB,KAAK,UAAU,GAAG,WAAW,gBAAgB,sBAAsB,0BAA0B,oCAAoC,4BAA4B,2BAA2B,mBAAmB,2BAA2B,KAAK,uBAAuB,GAAG,qBAAqB,mBAAmB,KAAK,uBAAuB,GAAG,qBAAqB;AAClpE,aAAa;AACb,KAAK,UAAU;AACf,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAAS;AAC1B,iBAAiB,0DAAS;AAC1B;AACA;AACA,aAAa,oDAAM;AACnB;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0BAA0B,EAAE,8BAA8B,kBAAkB,EAAE;AACnH;;AAEA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qDAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,8CAA8C,gBAAgB,EAAE,4BAA4B,gBAAgB,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;AACrC,8BAA8B,2CAA2C;AACzE;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,I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AmB,qDAAG;AACtB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,kEAAkE,wCAAwC;AAC1G,0BAA0B,+DAAwB,EAAE,qFAAqF,ybAAyb,YAAY,yFAAyF,aAAa,kEAA2B,uxBAAuxB;AACt+C,QAAQ,wDAAiB;AACzB,KAAK;AACL,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,uDAAc,EAAE,oDAAW;AACjD;AACA,kEAAkE;AAClE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iEAAiE;AACjE,iCAAiC,qEAAuB;AACxD,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA,sBAAsB,8DAAuB,EAAE,uBAAuB;AACtE,sBAAsB,8DAAuB,EAAE,8CAA8C,oCAAoC,EAAE,kCAAkC;AACrK,cAAc,oDAAoD,gEAAyB,kBAAkB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE,EAAE;AACjC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA,wBAAwB,8DAAuB,EAAE,yBAAyB;AAC1E,wBAAwB,8DAAuB,EAAE,gDAAgD,sCAAsC,EAAE,mEAAmE;AAC5M,cAAc,oDAAoD,gEAAyB,oBAAoB;AAC/G;AACA;AACA;AACA,+BAA+B,EAAE,EAAE;AACnC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,oCAAoC,EAAE;AACnH,6EAA6E,+CAA+C,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B,EAAE;AACzE;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,oCAAoC,EAAE;AACpH;AACA;AACA;AACA;AACA,qDAAqD,qDAAqD;AAC1G;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC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gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC,EAAE;AACnE,gCAAgC,iCAAiC,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,+DAAS;AACjB;AACA,IAAI,wDAAU;AACd,QAAQ,+DAAS;AACjB;AACA,sEAAsE,qEAAqE;AAC3I,4BAA4B,+DAAwB,EAAE,gIAAgI;AACtL,QAAQ,yDAAkB;AAC1B,QAAQ,yDAAkB;AAC1B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,6HAA6H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,0BAA0B,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,8CAA8C,eAAe,EAAE;AAC/D;AACA;AACA,oDAAoD,gBAAgB,EAAE;AACtE,2CAA2C,sDAAQ;AACnD,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB,EAAE,0BAA0B,cAAc,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC,4BAA4B,2CAA2C;AACvE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAQ;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ACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uEAAuE,kCAAkC;AACzG;AACA;AACA,gBAAgB,qEAAQ,6BAA6B,qEAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,gBAAgB,qEAAQ,kCAAkC,qEAAQ;AAClE,gBAAgB,qEAAQ,YAAY,qEAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;AChOrB;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACqH;AACxE;AACU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,0EAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAU;AAC1B;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA,0BAA0B,qEAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA,YAAY,qEAAQ,6BAA6B,qEAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mEAAmE,kCAAkC;AACrG;AACA;AACA,YAAY,qEAAQ,6BAA6B,qEAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,2DAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA,iBAAiB,wEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA,2CAA2C,4BAA4B;AACvE;AACA;AACA;AACA,2CAA2C,4CAA4C;AACvF;AACA,+CAA+C,qEAAQ;AACvD;AACA;AACA;AACA,uDAAuD,+BAA+B;AACtF;AACA;AACA,oEAAoE,qEAAQ;AAC5E;AACA,2FAA2F,0CAA0C;AACrI;AACA;AACA;AACA;AACA,gFAAgF,gCAAgC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA,uCAAuC,qEAAQ;AAC/C;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mFAAmF,gCAAgC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wEAAW,eAAe,wEAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAc;AACtB;AACA;AACA,qBAAqB,qEAAQ;AAC7B;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,QAAQ,8EAAiB;AACzC,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,2BAA2B,qEAAQ;AACnC,iBAAiB;AACjB,wCAAwC,yCAAyC;AACjF,aAAa;AACb,YAAY,qEAAQ,sBAAsB,0DAAY;AACtD;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B,aAAa,wEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B,aAAa,wEAAW;AACxB;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa,wEAAW;AACxB;AACA;AACA,4BAA4B,qEAAQ;AACpC,aAAa,wEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;;;;;;;;;;;ACnUzB;AAAA;AAAA;AAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D,qDAAqD,QAAQ;AAC7D;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qEAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,QAAQ,8EAAiB;AACzC,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;ACjIpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACqC;AACJ;AACL;AACL;AACI;;;;;;;;;;;;;ACP3B;AAAA;AAAA;AAAA;AAA4E;AAClB;AAC1D,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,qEAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAQ;AACvB;AACA;AACA;AACA,8EAAiB,EAAE,mBAAmB;;;;;;;;;;;;;ACvEtC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACY;AACzD;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SA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A;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,QAAQ,6EAAQ;AAChB,4BAA4B,0EAAa;AACzC;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,qCAAqC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,sDAAe,GAAG;AAC5R,yBAAyB,+DAAwB,EAAE,uIAAuI;AAC1L,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;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;AACA,iBAAiB,+DAAiB;AAClC,0GAA0G;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+DAAiB;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAiB;AAChC;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;ACvKhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC0D;AAC5B;AACM;AACW;AACmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,qCAAqC,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,eAAe;AAC9B,iBAAiB,KAAK;AACtB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,sDAAsD,sDAAS;AAC/D,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,oCAAoC,mCAAmC,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,eAAe;AAC9B,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,cAAc;AACzB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI,2DAAY,2CAA2C,8CAA8C;AACzG,IAAI,2DAAY,2CAA2C,0DAA0D;AACrH,IAAI,2DAAY,iDAAiD,8CAA8C;AAC/G,QAAQ,gDAAO;AACf,QAAQ,2DAAY,oDAAoD,8CAA8C;AACtH;AACA;AACA;AACA,QAAQ,2DAAY;AACpB,QAAQ,2DAAY;AACpB,QAAQ,2DAAY;AACpB,QAAQ,2DAAY;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAO;AACpC,2CAA2C,oDAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yBAAyB,kBAAkB,iBAAiB;AACtG,iDAAiD;AACjD,wBAAwB,0DAAa,SAAS,gDAAgD;AAC9F;AACA;AACA;AACA;AACA,QAAQ,2DAAY,iDAAiD,yDAAyD;AAC9H;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAO;AACpC;AACA;AACA;AACA,yBAAyB,sDAAS;AAClC;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;;;;;;;;;;;;;AC9ZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmH;AACrE;AACR;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,iCAAiC,kDAAQ;AACzC,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAiB;AAClC;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,QAAQ,mDAAK;AACb;AACA,YAAY,mDAAK;AACjB;AACA;AACA,iBAAiB,sDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAQ;AACrB;AACA;AACA;AACA,QAAQ,oDAAM,qBAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,QAAQ,qDAAQ;AAChB,aAAa,+DAAiB;AAC9B;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,4DAA4D,oBAAoB,EAAE;AAClF,QAAQ,wDAAW;AACnB;AACA;AACA,YAAY,wDAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,IAAI;AACjB;AACA;AACO;AACP;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY;AACZ;AACA;AACA;AACO;AACP;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;AChUA;AAAA;AAAA;AAAqC;AACrC;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,gBAAgB,yDAAW;AAC3B,oDAAoD,yDAAW,oBAAoB,yDAAW;AAC9F,uBAAuB,yDAAW;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACkB;;;;;;;;;;;;;ACnXnB;AAAA;AAAA;AAAA;AAA6D;AAC/B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,iCAAiC,sDAAQ,sBAAsB,0CAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA;AACA;AACA,YAAY,mDAAK;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAQ;AACxB,gBAAgB,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACwB;;;;;;;;;;;;;AChLzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACgG;AACjD;AACjB;AACQ;AACW;AAC0B;AACQ;AACd;AACrE;AACA;AACA;AACO;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA,yBAAyB,sDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAiB;AAC7B,iCAAiC,cAAc,iEAAW,EAAE;AAC5D;AACA,YAAY,+DAAiB;AAC7B,iCAAiC,WAAW,oEAAc,EAAE;AAC5D;AACA,iCAAiC,2DAAY;AAC7C,kCAAkC,kDAAQ;AAC1C;AACA,QAAQ,kEAAY;AACpB,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAW;AACnB,mCAAmC,gBAAgB;AACnD;AACA;AACA,QAAQ,kEAAY;AACpB;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,KAAK;AACtB;AACA;AACA,aAAa,+DAAiB;AAC9B,2BAA2B,mDAAM;AACjC;AACA,kBAAkB,+DAAiB;AACnC;AACA;AACA,aAAa,+DAAiB;AAC9B;AACA,YAAY,qDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sDAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,eAAe,0DAAa;AAC5B;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,IAAI;AACnB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA,uBAAuB,sDAAQ;AAC/B,iBAAiB,yDAAW;AAC5B,gBAAgB,sDAAQ;AACxB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,6DAAa;AACxC,mBAAmB,sDAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACe;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC;;;;;;;;;;;;;ACpdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+C;AACkC;AACjF;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,WAAW,kBAAkB;AAC7B,aAAa,IAAI;AACjB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,aAAa,IAAI;AACjB;AACA;AACO;AACP;AACA,mCAAmC,gBAAgB;AACnD;AACA,iDAAiD,yBAAyB;AAC1E;AACA,gBAAgB,sDAAQ;AACxB,+BAA+B,sDAAQ;AACvC,oBAAoB,+DAAiB;AACrC,oBAAoB,sDAAQ;AAC5B;AACA;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,gBAAgB;AAC5B,aAAa,IAAI;AACjB;AACA;AACO;AACP;AACA,mCAAmC,gBAAgB;AACnD;AACA,mBAAmB,sDAAQ;AAC3B,+BAA+B,sDAAQ;AACvC;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA,oCAAoC,sDAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,QAAQ;AACpB,WAAW,QAAQ;AACnB,aAAa,qBAAqB;AAClC;AACA;AACO;AACP;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mBAAmB;AAC/B,YAAY,QAAQ;AACpB,WAAW,QAAQ;AACnB,aAAa,qBAAqB;AAClC;AACA;AACO;AACP;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA,IAAI,2DAAY;AAChB;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,iBAAiB;AAC7B,WAAW,QAAQ;AACnB,aAAa,cAAc;AAC3B;AACA;AACA;AACO;AACP,6BAA6B,oBAAoB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA,kDAAkD,mBAAmB,EAAE;AACvE;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,aAAa,UAAU;AACvB;AACA;AACO;AACP;AACA;AACA,+CAA+C,0BAA0B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA,gBAAgB,sDAAQ;AACxB;AACA,kBAAkB,sDAAQ;AAC1B;AACA;AACA;AACA;AACA,QAAQ,+DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,IAAI;AACf,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP,QAAQ,sDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP,QAAQ,sDAAQ;AAChB;AACA,mBAAmB,oDAAM,GAAG,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACndA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC8B;AACM;AACF;AACyD;AAC5C;AACE;AACmC;AACY;AAChG,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,6DAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gDAAO;AACnB,YAAY,qDAAQ;AACpB;AACA;AACA;AACA;AACA,eAAe,oDAAM,GAAG;AACxB;AACA;AACA;AACA,aAAa,yDAAW;AACxB,kBAAkB,mDAAM;AACxB;AACA,6CAA6C,gDAAO,aAAa,gDAAO;AACxE;AACA,YAAY,2DAAY,6BAA6B,gDAAO;AAC5D;AACA;AACA,YAAY,2DAAY,0BAA0B,gDAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,2DAAY,eAAe,gDAAO;AAC1C,QAAQ,2DAAY,eAAe,gDAAO;AAC1C;AACA;AACA;AACA;AACA,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C;AACA;AACA;AACA,sBAAsB;AACtB,sBAAsB;AACtB,YAAY,+DAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD,qBAAqB,+DAAiB,CAAC,oDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yDAAW;AAC/C;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAY,eAAe,gDAAO;AAC9C,YAAY,2DAAY,eAAe,gDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,mCAAmC,gDAAO;AAC9D;AACA;AACA;AACA,6BAA6B,yDAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAO;AACpC,iBAAiB,+DAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,oCAAoC;AACpC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oCAAoC;AACpC,YAAY,8DAAiB,0CAA0C,+DAA+D;AACtI,YAAY,2DAAY,kBAAkB,gDAAO;AACjD,YAAY,2DAAY,kBAAkB,gDAAO;AACjD,iBAAiB,sDAAQ;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAS;AACrB,YAAY,2DAAY,eAAe,gDAAO;AAC9C,YAAY,2DAAY,eAAe,gDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAiB;AAC7B,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAuD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAAiB;AACjC;AACA;AACA,gBAAgB,+DAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iDAAiD;AACzG,QAAQ,8DAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM,GAAG;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mFAAmF;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C,QAAQ,2DAAY,kBAAkB,gDAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+DAAiB;AAC9B;AACA;AACA;AACA,oBAAoB,+DAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+DAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA,0BAA0B,0DAAa,SAAS,mEAAmE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+DAAiB;AACpD,2BAA2B,oDAAO;AAClC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACe;;;;;;;;;;;;;AC9yBrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC8B;AACM;AACO;AACuC;AACnC;AACD;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,mBAAmB,gDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gDAAgD;AAClF;AACA;AACA;AACA;AACA;AACA,iCAAiC,8BAA8B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAS;AACrD;AACA;AACA;AACA;AACA,yBAAyB,oDAAO;AAChC;AACA;AACA;AACA,kCAAkC,+EAA+E;AACjH;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,sBAAsB,gDAAO;AACjD;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACe;;;;;;;;;;;;;AC3IrB;AAAA;AAAA;AAAA;AAA0C;AACN;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,+BAA+B,sDAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA,aAAa;AACb,gBAAgB,gDAAO;AACvB;AACA;AACA;AACA,sEAAsE,iBAAiB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAM;AACzB,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,eAAe,OAAO;AACtB;AACA,eAAe,IAAI;AACnB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;AC7IxB;AAAA;AAAA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,kCAAkC;;;;;;;;;;;;;AC3MnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;AACV;AACK;AACL;AACG;AACE;AACK;AACL;AACA;AACI;AACO;AACZ;AACJ;AACS;AACS;AACjB;AACO;AACG;AACX;AACD;AACK;AACO;;;;;;;;;;;;;ACxBlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACI;AACP;AACI;AACR;AACQ;AACd;AACtC;AACA;AACA;AACO,uBAAuB,kDAAQ;AACtC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC;AACrF;AACA;AACA,+BAA+B,aAAa;AAC5C;AACA;AACA,yDAAyD,cAAc;AACvE;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA,kDAAkD,6BAA6B;AAC/E;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB,SAAS;AAC1B;AACA;AACA,eAAe,+DAAU,2CAA2C,kCAAkC;AACtG;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA,eAAe,mEAAY,iDAAiD;AAC5E;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB,SAAS;AAC1B;AACA;AACA,eAAe,4DAAU,2CAA2C,kCAAkC;AACtG;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,SAAS;AAC1B;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA,eAAe,gEAAY,6CAA6C,cAAc;AACtF;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,kBAAkB;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,kBAAkB;AACjC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,iBAAi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ACA;AACA;AACA,4CAA4C,sDAAQ,KAAK,sDAAQ,uBAAuB,sDAAQ;AAChG;AACA;AACA,iDAAiD,sDAAQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,cAAc;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,oCAAoC,mDAAI;AACxC;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+DAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,GAAG;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAM,2BAA2B,mDAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yDAAW;AAC9B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;ACvTtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACM;AACoC;AACtC;AACL;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,kBAAkB;AACjC,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,yBAAyB,mDAAI;AAC7B,yBAAyB,uDAAM,mDAAmD,uDAAM,kCAAkC,sDAAQ;AAClI;AACA,YAAY,sDAAQ;AACpB,qBAAqB,mDAAI;AACzB;AACA;AACA,YAAY,mDAAI,iFAAiF,sDAAQ;AACzG;AACA;AACA,YAAY,yDAAW;AACvB,YAAY,wDAAU;AACtB;AACA;AACA,yBAAyB,mDAAI;AAC7B,4BAA4B,YAAY,mDAAI,0EAA0E;AACtH,gDAAgD,mDAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ;AACpC,gBAAgB,uDAAM,0CAA0C,uDAAM;AACtE,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+DAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ;AACpC;AACA,uCAAuC,sDAAQ,WAAW,mDAAI;AAC9D;AACA;AACA;AACA,6DAA6D,mDAAI,mBAAmB,mDAAI;AACxF;AACA;AACA,yCAAyC,uDAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA,4CAA4C,sDAAQ,aAAa,mDAAI;AACrE;AACA;AACA;AACA,qFAAqF,mDAAI;AACzF;AACA;AACA,oDAAoD,uDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,aAAa;AACxE;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAQ;AAClD,4BAA4B,sDAAQ;AACpC,4BAA4B,sDAAQ;AACpC;AACA,gDAAgD,uDAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAM,eAAe,sDAAQ;AAC7E,4BAA4B,sDAAQ,kCAAkC,sDAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAQ;AACxD;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,2CAA2C,+DAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAW;AACtC;AACA;AACA;AACA;AACA;AACA,iCAAiC,yDAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA,iBAAiB,yDAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,eAAe;AAC9B,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,0BAA0B;AAC1B,YAAY,+DAAiB;AAC7B;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yDAAW;AAC3D;AACA;AACA;AACA,oCAAoC,yDAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+DAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,eAAe;AAC9B,iBAAiB,OAAO;AACxB;AACA;AACA,gBAAgB,uDAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,qCAAqC,EAAE;AACvC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,eAAe;AAC9B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;AChatB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8D;AACU;AACM;AAChC;AACI;AACZ;AAC/B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE;AACxC,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,EAAE,SAAS,EAAE;AAC/C,kCAAkC,EAAE,SAAS,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,kCAAkC,EAAE,SAAS,EAAE;AAC/C,kCAAkC,EAAE,SAAS,EAAE;AAC/C,oCAAoC,EAAE,GAAG,EAAE;AAC3C,mCAAmC,EAAE,GAAG,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sCAAsC;AACtC,kCAAkC,EAAE;AACpC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,yCAAyC;AACzC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,mDAAmD,qBAAqB;AACxE,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,mCAAmC,sDAAQ;AAC3C,mCAAmC,sDAAQ;AAC3C,sDAAsD,EAAE,uBAAuB,EAAE;AACjF;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA,2BAA2B,uDAAM,kCAAkC,sDAAQ;AAC3E;AACA,gCAAgC,sDAAQ;AACxC;AACA;AACA,6BAA6B,sDAAQ;AACrC,6BAA6B,sDAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA,eAAe,sDAAQ;AACvB,wFAAwF,sDAAQ;AAChG;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,OAAO;AACtB,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,8BAA8B,sDAAQ;AACtC;AACA,8BAA8B,sDAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,IAAI;AACrB;AACA;AACA,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+DAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,0BAA0B,sDAAQ;AAClC,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,IAAI;AACnB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA,yCAAyC;AACzC;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA,YAAY,+DAAiB;AAC7B,4BAA4B,oDAAM,GAAG;AACrC,kCAAkC,+DAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB,iBAAiB,IAAI;AACrB;AACA;AACA,wBAAwB;AACxB;AACA,YAAY,+DAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+DAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+DAAiB;AAC9B,YAAY,oDAAM;AAClB;AACA,gBAAgB,oDAAM;AACtB;AACA;AACA;AACA,YAAY,oDAAM;AAClB;AACA,aAAa,+DAAiB;AAC9B;AACA;AACA;AACA;AACA,qCAAqC,8DAAY,0CAA0C;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,IAAI;AACrB;AACA;AACA,uBAAuB;AACvB,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,sDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,kBAAkB;AACjC,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,eAAe;AAChD,sCAAsC,uDAAM,0CAA0C,uDAAM;AAC5F,qCAAqC,sDAAQ;AAC7C;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAU;AAChD,8EAA8E,GAAG;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,IAAI;AACnB,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAQ;AACzC,sCAAsC,sDAAQ;AAC9C;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ;AAC5C,gBAAgB,oDAAM,GAAG;AACzB,gBAAgB,uDAAM,0CAA0C,uDAAM;AACtE,0BAA0B,sDAAQ,KAAK,sDAAQ;AAC/C,gFAAgF,yEAAmB;AACnG;AACA;AACA,8CAA8C;AAC9C,wCAAwC,sDAAQ;AAChD,2BAA2B,sDAAQ,KAAK,sDAAQ;AAChD;AACA,2BAA2B,sDAAQ,KAAK,sDAAQ;AAChD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,YAAY,oDAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,sDAAQ;AAClF,oBAAoB,sDAAQ;AAC5B,mCAAmC,sDAAQ;AAC3C,mCAAmC,sDAAQ;AAC3C;AACA;AACA;AACA,iDAAiD,sDAAQ;AACzD,uCAAuC;AACvC;AACA;AACA,oDAAoD,sDAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,qBAAqB,sDAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA,wBAAwB,4EAAuB;AAC/C;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;;;;;;;;;;;;;AC7sC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiG;AACnC;AACf;AACM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,uBAAuB,oDAAM,GAAG;AAChC;AACA;AACA;AACA,yBAAyB,mDAAI;AAC7B;AACA,gCAAgC,sDAAQ,KAAK,oDAAM,GAAG;AACtD,YAAY,uDAAM,0CAA0C,uDAAM;AAClE,kCAAkC,sDAAQ,KAAK,sDAAQ,gCAAgC,mDAAI,kEAAkE,yEAAmB;AAChL;AACA,iCAAiC,sDAAQ,KAAK,sDAAQ;AACtD;AACA,+BAA+B,sDAAQ,KAAK,sDAAQ;AACpD;AACA;AACA,iCAAiC,mDAAI;AACrC,uBAAuB,mDAAI;AAC3B;AACA;AACA,YAAY,oDAAM,WAAW,mDAAI;AACjC;AACA;AACA,iBAAiB,sDAAQ;AACzB,gCAAgC,mDAAI;AACpC;AACA;AACA;AACA,iBAAiB,yDAAW;AAC5B;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA,wCAAwC,sDAAQ;AAChD,iEAAiE,mDAAI;AACrE;AACA,iBAAiB,sDAAQ;AACzB,kDAAkD;AAClD,iCAAiC,mDAAI;AACrC,iCAAiC,mDAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAM,GAAG,IAAI,EAAE,sDAAQ;AACxD,iCAAiC,oDAAM,GAAG,IAAI,EAAE,sDAAQ;AACxD;AACA,oBAAoB,mDAAI;AACxB;AACA;AACA,0BAA0B,yDAAW;AACrC;AACA;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA,iDAAiD,yDAAW;AAC5D;AACA;AACA;AACA,iBAAiB,yDAAW,YAAY,yDAAW;AACnD;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAM;AACd,QAAQ,oDAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,kCAAkC,mDAAI;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA,aAAa,yDAAW;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,wDAAU;AACtB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,0BAA0B;AACzC,eAAe,cAAc;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,YAAY,yDAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAM,2BAA2B,mDAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,oBAAoB,+DAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACvVxB;AAAA;AAAA;AAAA;AAAA;AAAwE;AACnB;AACN;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,yBAAyB,mDAAI;AAC7B,4BAA4B;AAC5B;AACA,aAAa,mDAAI;AACjB,YAAY,oDAAM,eAAe,mDAAI;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAM,eAAe,mDAAI;AACrC;AACA,sBAAsB,sDAAQ;AAC9B;AACA,qBAAqB,uDAAM,mDAAmD,uDAAM,iCAAiC,sDAAQ;AAC7H,mCAAmC,uDAAM;AACzC;AACA;AACA;AACA,aAAa,sDAAQ;AACrB,4BAA4B,mDAAI;AAChC;AACA,iEAAiE,mDAAI;AACrE,kDAAkD;AAClD,qCAAqC,mDAAI;AACzC,qCAAqC,mDAAI;AACzC;AACA;AACA;AACA,iCAAiC,oDAAM,GAAG,IAAI,EAAE,sDAAQ;AACxD,iCAAiC,oDAAM,GAAG,IAAI,EAAE,sDAAQ;AACxD;AACA,gBAAgB,mDAAI,iEAAiE,sDAAQ;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,eAAe;AAC9B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAM;AAC1B,oBAAoB,uDAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACvIxB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,oBAAoB,sDAAQ;AAC5B,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA,kBAAkB,sDAAQ;AAC1B,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,aAAa,yDAAW;AACxB,sCAAsC,sDAAQ,4BAA4B,sDAAQ;AAClF,iBAAiB,yDAAW;AAC5B;AACA;AACA;AACA;AACA;AACA,6CAA6C,sDAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA,aAAa,yDAAW;AACxB;AACA,gCAAgC,sDAAQ;AACxC,gCAAgC,sDAAQ;AACxC,yBAAyB,sDAAQ;AACjC,iBAAiB,yDAAW;AAC5B,uEAAuE,gCAAgC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACO;AACP,WAAW,sDAAQ;AACnB;;;;;;;;;;;;;AChXA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACkF;AACpD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA,uEAAuE,gCAAgC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,oBAAoB;AACnC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACoB;;;;;;;;;;;;;AC7N1B;AAAA;AAAA;AAAA;AAAmD;AACK;AACxD;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,iCAAiC,oEAAc;AAC/C;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA,sBAAsB,oDAAM,8BAA8B;AAC1D;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,aAAa,+DAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;ACxFhB;AAAA;AAAA;AAAA;AACA;AACA;AAC0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB,eAAe,oBAAoB;AACnC,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA,uCAAuC,4DAAc;AACrD;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,gBAAgB,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,yDAAyD,wCAAwC,EAAE;AACnG;AACA;AACA,SAAS;AACT,6DAA6D,+BAA+B;AAC5F;AACA;AACA,gBAAgB,sDAAQ;AACxB;AACA;AACA,YAAY,0DAAY;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;AC5GxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8E;AAC9E;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA,sCAAsC,4DAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAc,+BAA+B;AACpE;AACA;AACA;AACA;AACA,wBAAwB,4DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa,KAAK;AAClB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI;AAChB,YAAY,SAAS;AACrB,aAAa,kBAAkB;AAC/B;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,YAAY,IAAI;AAChB,YAAY,SAAS;AACrB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA,eAAe,aAAa;AAC5B;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAW;AACnC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA,QAAQ,yDAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,QAAQ,yDAAW;AACnB;AACA,0BAA0B;AAC1B;AACA,0CAA0C,oDAAM,GAAG,qBAAqB;AACxE;AACA;AACA;AACA,wEAAwE,gBAAgB;AACxF;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAK;AAC7B;AACA;AACA;AACA,wCAAwC,oDAAM,GAAG,0BAA0B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gBAAgB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAM,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,sBAAsB,sDAAQ;AAC9B;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA;;;;;;;;;;;;;ACllBA;AAAA;AAAA;AAAuE;AACvE;AACA;AACA;AACA;AACA,YAAY,+DAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,YAAY,+DAAiB;AAC7B;AACA;AACA;AACA;AACA,6CAA6C,mCAAmC;AAChF;AACA;AACA,aAAa,+DAAiB;AAC9B;AACA;AACA,mDAAmD,2CAA2C;AAC9F;AACA;AACA;AACA,+CAA+C,mCAAmC;AAClF;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAQ;AAChC;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5D,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;AClMpB;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uDAAuD;AAC5D,KAAK,mEAAmE;AACxE,KAAK,yDAAyD;AAC9D,KAAK,yDAAyD;AAC9D,KAAK,uDAAuD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAM;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,CAAC;AAC6B;;;;;;;;;;;;;AC9L9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+C;AACT;AACe;AACrD;AACA;AACO;AACP;AACA;AACA,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAiB;AAClC;AACA,+CAA+C,oBAAoB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0DAAa,QAAQ,+CAA+C;AACrH;AACA,iBAAiB,0DAAa,SAAS,+CAA+C;AACtF;AACA;AACA;AACA,0BAA0B,0DAAa,SAAS,oBAAoB;AACpE;AACA;AACA;AACA,0BAA0B,0DAAa,4CAA4C,oBAAoB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACO;AACP,QAAQ,sDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA,iBAAiB,+DAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C,yBAAyB,+DAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C,eAAe,yDAAM;AACrB;AACA;AACA,CAAC;AACD,iBAAiB;;;;;;;;;;;;;AC9JjB;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA,8EAA8E,sBAAsB,iFAAiF,uBAAuB,gCAAgC,4CAA4C,yBAAyB,uBAAuB,kBAAkB,OAAO,uEAAuE,6FAA6F,2FAA2F,kDAAkD,WAAW,uCAAuC,OAAO,mDAAmD,oCAAoC,+CAA+C,6BAA6B,2BAA2B,kBAAkB,OAAO,yEAAyE,iGAAiG,+FAA+F,sDAAsD,eAAe,2CAA2C,WAAW,OAAO;AAC7yC,oDAAoD,4BAA4B;AAChF;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oDAAoD,uGAAuG;AAC3J,iBAAiB,MAAM;AACvB,2CAA2C,kDAAkD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B,OAAO;AAC1D;AACA;AACA;AACA;AACA,4CAA4C,KAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sCAAsC,cAAc,EAAE;AACpH;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACgC;AAC2D;AACvD;AACN;AACmB;AACF;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,CAAC,CAAC,6DAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA,+DAA+D,yBAAyB,EAAE;AAC1F,gBAAgB,2DAAY,oBAAoB,gDAAO;AACvD,gBAAgB,2DAAY,oBAAoB,gDAAO;AACvD,gBAAgB,2DAAY,oBAAoB,gDAAO;AACvD;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAM,gBAAgB;AACpD;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2DAAY,uBAAuB,gDAAO;AACtD;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA,0CAA0C,iDAAiD;AAC3F;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gCAAgC;AACnD,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,YAAY,2DAAY,uBAAuB,gDAAO;AACtD,YAAY,2DAAY,uBAAuB,gDAAO;AACtD,YAAY,2DAAY,uBAAuB,gDAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gDAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,mBAAmB,gDAAO;AAC9C;AACA;AACA,QAAQ,2DAAY,sBAAsB,gDAAO;AACjD;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAAY,sBAAsB,gDAAO;AACjD,QAAQ,2DAAY,sBAAsB,gDAAO;AACjD;AACA,oBAAoB;AACpB;AACA,QAAQ,2DAAY,sBAAsB,gDAAO;AACjD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,qEAAK;AACb;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,wEAAQ;AAChB;AACA;AACA,QAAQ,uEAAO,GAAG;AAClB;AACA;AACA,QAAQ,6EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0CAAI;AACW;;;;;;;;;;;;;AChWjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,MAAM;AACjB,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,mBAAmB,0CAA0C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,IAAI;AACf,WAAW,IAAI;AACf,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,OAAO;AAClB,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,IAAI;AACf,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACO;AACP;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA,+BAA+B,qBAAqB,EAAE,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,WAAW,qBAAqB;AAChC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,IAAI;AACf,aAAa,OAAO;AACpB;AACA;AACA;AACO;AACP;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;AClfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC6G;AACjC;AACoB;AACjD;AACxC,yBAAyB,6DAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,yEAAY,gBAAgB,sCAAsC;AACpG;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,aAAa,qEAAQ,OAAO,qEAAQ;AACpC;AACA,+DAA+D,uEAAkB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0CAA0C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,oEAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kEAAW;AAC1C;AACA;AACA;AACA,yBAAyB,qEAAQ,OAAO,qEAAQ;AAChD;AACA,8CAA8C,uEAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA,wBAAwB,iEAAY;AACpC,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACO;;;;;;;;;;;;;ACvVlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyB;;;;;;;;;;;;;ACHzB;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACkF;AACgB;AACwB;AAC/B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,aAAa;AACb;AACA;AACA,iDAAiD,SAAS,uBAAuB,EAAE;AACnF,oDAAoD,gCAAgC;AACpF;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,QAAQ,qEAAc;AACtB;AACA,YAAY,oEAAe;AAC3B,yDAAyD,oBAAoB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAY,cAAc,sCAAsC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA,YAAY,yEAAkB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,kBAAkB,wEAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uEAAkB;AAClE,gDAAgD,oCAAoC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACS;;;;;;;;;;;;;AC7jBpB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC6G;AACnC;AACG;AACtE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yEAAY;AAC1C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA,kHAAkH,YAAY,EAAE;AAChI;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uBAAuB;AACvF;AACA;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;AACA;AACA,0DAA0D,6BAA6B;AACvF;AACA;AACA;AACA;AACA;AACA,gEAAgE,uBAAuB;AACvF;AACA;AACA;AACA;AACA,+DAA+D,uBAAuB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,QAAQ,yCAAyC,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAgE;AAChF;AACA,QAAQ,wCAAwC;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAgD;AAChE;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAgD;AAChE;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,2BAA2B,wEAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,qBAAqB;AACtE;AACA;AACA,iDAAiD,SAAS,uBAAuB,EAAE;AACnF;AACA;AACA,YAAY,oEAAe;AAC3B,qDAAqD,sBAAsB;AAC3E;AACA,YAAY,yEAAY;AACxB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAkB;AAC1B;AACA;AACA;AACA;AACA,YAAY,uEAAU,gBAAgB,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,kBAAkB,wEAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uEAAkB;AAClE,oDAAoD,oCAAoC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACY;;;;;;;;;;;;;ACxdvB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyB;;;;;;;;;;;;;ACHzB;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC2F;AAChC;AACoD;AACnB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAe;AAC3B;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAO;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,aAAa;AACb;AACA;AACA,sDAAsD,8BAA8B;AACpF,kDAAkD,2BAA2B;AAC7E,mDAAmD,4BAA4B;AAC/E,iDAAiD,+BAA+B;AAChF;AACA,QAAQ,qEAAc;AACtB;AACA;AACA;AACA;AACA,YAAY,oEAAe;AAC3B,yDAAyD,oBAAoB;AAC7E;AACA,YAAY,yEAAY,cAAc,sCAAsC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,QAAQ,gEAAS;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAkB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACO;;;;;;;;;;;;;AC1ZlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACqF;AACzB;AACC;AACuB;AACM;AACG;AACP;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD,YAAY,8EAAiB;AAC7B,gCAAgC,qDAAqD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA,YAAY,uEAAU;AACtB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA,YAAY,uEAAU;AACtB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,gCAAgC,4BAA4B;AAC5D;AACA,YAAY,8EAAiB;AAC7B,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gEAAgE;AAC5F,4BAA4B,gEAAgE;AAC5F;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,mBAAmB,8EAAiB,YAAY,8EAAiB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA,mBAAmB,8EAAiB;AACpC,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oBAAoB;AAC5E,uDAAuD,2BAA2B;AAClF,0DAA0D,mCAAmC,iBAAiB,EAAE;AAChH,QAAQ,yEAAY;AACpB;AACA;AACA;AACA,SAAS;AACT,QAAQ,uEAAU;AAClB,sDAAsD,mCAAmC,iBAAiB,EAAE;AAC5G,QAAQ,yEAAY;AACpB;AACA;AACA;AACA,SAAS;AACT,QAAQ,uEAAU;AAClB,6DAA6D,qCAAqC;AAClG,QAAQ,uEAAU;AAClB;AACA,kEAAkE,wCAAwC;AAC1G,8DAA8D,wCAAwC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qBAAqB;AAC9E,kDAAkD,SAAS,6DAA6D,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,YAAY,iFAAoB;AAC/D;AACA;AACA,8CAA8C,6DAAQ;AACtD;AACA,mDAAmD,gBAAgB;AACnE;AACA,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA,6DAA6D,wBAAwB;AACrF;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iCAAiC,yEAAoB;AACrD,2BAA2B,yDAAI;AAC/B,8DAA8D,SAAS,iBAAiB,EAAE;AAC1F,YAAY,yEAAY;AACxB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA,qDAAqD,oBAAoB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,iCAAiC,mEAAM;AACvC;AACA,sCAAsC,mEAAc;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,sCAAsC,mEAAc;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iCAAiC,mEAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC,iCAAiC,mEAAM;AACvC,sBAAsB,mEAAM;AAC5B,iCAAiC,mEAAM;AACvC,yBAAyB,mEAAM;AAC/B,6BAA6B,mEAAM;AACnC,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,kBAAkB,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,oDAAoD,kBAAkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,8DAA8D,iCAAiC;AAC/F;AACA,wEAAwE,6CAA6C;AACrH;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,2CAA2C,uBAAuB;AAClE,sGAAsG,gCAAgC;AACtI,qGAAqG,gCAAgC;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA,mCAAmC,8EAAiB;AACpD,uCAAuC,2BAA2B;AAClE;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yDAAyD,gDAAgD;AACzG;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA,YAAY,uEAAU,SAAS,qBAAqB;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,qEAAQ;AACxB,qBAAqB,8EAAiB;AACtC,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA,sBAAsB,8EAAiB;AACvC,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,qCAAqC,YAAY,wEAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE,8CAA8C,SAAS,gBAAgB,EAAE;AACzE,+CAA+C,mBAAmB;AAClE,mFAAmF,8EAAiB;AACpG,oBAAoB,qEAAQ;AAC5B,oBAAoB,yEAAY;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mEAAmE;AAC/G;AACA;AACA,4CAA4C,mEAAmE;AAC/G;AACA,wCAAwC,4BAA4B;AACpE;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC,4BAA4B,mEAAM;AAClC,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB,wBAAwB,8EAAiB;AACvF,4BAA4B,mEAAM;AAClC,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA,4EAA4E,gCAAgC;AAC5G;AACA;AACA,4EAA4E,0DAA0D;AACtI;AACA,uCAAuC;AACvC;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,mEAAM;AAClB,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAoB;AAChD;AACA;AACA;AACA;AACA,2DAA2D,sDAAsD;AACjH;AACA;AACA,aAAa;AACb;AACA;AACA,2DAA2D,qDAAqD;AAChH,6DAA6D,gDAAgD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iDAAiD;AAClH;AACA;AACA;AACA,qEAAqE,kDAAkD;AACvH;AACA;AACA,qEAAqE,kDAAkD;AACvH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAQ;AAC3B;AACA;AACA,mBAAmB,qEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA,wCAAwC,qBAAqB;AAC7D,wCAAwC,mCAAmC;AAC3E;AACA;AACA,wCAAwC,4CAA4C;AACpF;AACA;AACA;AACA,oCAAoC,yCAAyC;AAC7E;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC,YAAY,8EAAiB;AAC7B;AACA;AACA,gCAAgC,8EAAiB;AACjD,YAAY,wEAAW;AACvB;AACA,gCAAgC,8EAAiB;AACjD,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,+BAA+B,uBAAuB;AACtD;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA,oCAAoC,qBAAqB;AACzD;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,qEAAQ;AACpB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,QAAQ,mEAAM,0BAA0B,wBAAwB;AAChE;AACA;AACA;AACA,QAAQ,mEAAM,sBAAsB,gCAAgC;AACpE;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,qEAAQ;AACpB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,4BAA4B,8EAAiB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB,mCAAmC,8EAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,uEAAU;AACtB;AACA,yEAAyE,8EAAiB;AAC1F;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6CAA6C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA,gCAAgC,oEAAoE,QAAQ;AAC5G;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,oCAAoC,kBAAkB;AACtD,oCAAoC;AACpC;AACA;AACA,qBAAqB,8EAAiB;AACtC,wCAAwC,kBAAkB;AAC1D,wCAAwC;AACxC;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qBAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qBAAqB;AACzD,oCAAoC,6CAA6C;AACjF;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,gDAAgD,kDAAkD;AAClG;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA,+CAA+C,2BAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA,oDAAoD,mDAAmD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6CAA6C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA,oCAAoC,6CAA6C;AACjF;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;;AAEjB;AACA;AACA,uEAAuE,8EAAiB;AACxF;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA,oCAAoC,6CAA6C;AACjF;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAiB;AACvD,gCAAgC,6CAA6C;AAC7E;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D,aAAa,8EAAiB;AAC9B,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;AC/gFpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;AACD;;;;;;;;;;;;;ACJ1B;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAC0E;AACtB;AACkC;AACnC;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAoB;AAChD;AACA;AACA,mGAAmG,4DAA4D;AAC/J;AACA;AACA,mGAAmG,wDAAwD;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,qEAAqE,kBAAkB;AACvF;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,+EAA+E,sDAAsD;AACrI;AACA,yFAAyF,mDAAmD;AAC5I;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,2CAA2C,uBAAuB;AAClE,uHAAuH,qDAAqD;AAC5K,4IAA4I,qDAAqD;AACjM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA,2DAA2D,8EAAiB;AAC5E;AACA,uCAAuC,iDAAiD;AACxF,iGAAiG,uDAAuD;AACxJ,8HAA8H,uDAAuD;AACrL;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA,8BAA8B,gEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA,oCAAoC,gEAAW;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,uDAAuD;AAChJ;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qDAAqD;AACnI,0EAA0E,qDAAqD;AAC/H;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA,oCAAoC,gEAAW;AAC/C;AACA;AACA,YAAY,uEAAU,SAAS,qBAAqB;AACpD;AACA,yFAAyF,qDAAqD;AAC9I;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qCAAqC,YAAY,wEAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE,+DAA+D,SAAS,gBAAgB,EAAE;AAC1F,yCAAyC,gBAAgB;AACzD,gFAAgF,8EAAiB;AACjG,oBAAoB,qEAAQ;AAC5B,oBAAoB,yEAAY;AAChC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAW;AAC3B;AACA;AACA,eAAe,gEAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;;;;;;;;;;;;;AC/cA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AAC2G;AACA;AACjB;AACV;AACjC;AACA;AACC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iCAAiC,yEAAoB;AACrD,4BAA4B,yDAAI;AAChC,gCAAgC,wEAAwE;AACxG;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK,gBAAgB,yBAAyB;AACtD,QAAQ,qEAAQ;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,gCAAgC,kBAAkB;AAClD,gCAAgC;AAChC;AACA;AACA,iBAAiB,8EAAiB;AAClC,oCAAoC,kBAAkB;AACtD,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yEAAoB;AAClD;AACA,iCAAiC;AACjC,kCAAkC,iCAAiC,kBAAkB;AACrF;AACA;AACA,iCAAiC;AACjC,kCAAkC,iCAAiC,kBAAkB;AACrF;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yEAAoB;AACtD;AACA,qCAAqC;AACrC,sCAAsC,iCAAiC,kBAAkB;AACzF;AACA;AACA,qCAAqC;AACrC;AACA,sCAAsC,iCAAiC,kBAAkB;AACzF;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,EAAE,IAAI,EAAE;AAC3D;AACA,qDAAqD,EAAE,IAAI,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA,iCAAiC,mEAAM;AACvC,mCAAmC,mEAAc;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD,+EAA+E;AAC/E;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,8EAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mEAAM;AAC3C,+CAA+C,mEAAc;AAC7D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA;AACA,cAAc,oEAAO;AACrB,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA,mBAAmB,oEAAO;AAC1B,mBAAmB,oEAAO;AAC1B;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA;AACA,gBAAgB,uEAAU;AAC1B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB,mBAAmB,8EAAiB;AAClE;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,uDAAuD,4CAA4C;AACnG,aAAa,8EAAiB;AAC9B;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA,sBAAsB,4DAAO;AAC7B,sBAAsB,4DAAO,aAAa,2BAA2B,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA,uBAAuB,4DAAO,aAAa,qBAAqB,IAAI,uBAAuB;AAC3F;AACA;AACA;AACA,kDAAkD,mEAAM;AACxD;AACA,4DAA4D,mEAAc;AAC1E;AACA;AACA;AACA,yBAAyB;AACzB,4DAA4D,mEAAc;AAC1E;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B;AACnF,oDAAoD,4BAA4B;AAChF;AACA,kDAAkD,2BAA2B;AAC7E,oDAAoD,6BAA6B;AACjF;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA,0BAA0B,yCAAyC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uEAAU;AAChE;AACA;AACA,iGAAiG,uEAAU;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8BAA8B;AAClE;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB,qEAAqE,yCAAyC;AAC9G;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0BAA0B,4DAAO;AACjC;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,kCAAkC,4DAAO;AACzC;AACA;AACA,gDAAgD,8DAAS;AACzD;AACA;AACA,gDAAgD,8DAAS;AACzD;AACA;AACA,gIAAgI,4DAAO;AACvI;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,yBAAyB,8EAAiB;AAC1C,wBAAwB,qEAAQ;AAChC,wBAAwB,wEAAW;AACnC;AACA;AACA,gBAAgB,iEAAY;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,wEAAW;AACvB,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA,uBAAuB,iBAAiB;AACxC,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wEAAW;AAC7C;AACA,oBAAoB,uEAAU,qBAAqB,mCAAmC;AACtF;AACA;AACA;AACA,kCAAkC,wEAAW;AAC7C;AACA,oBAAoB,uEAAU,qBAAqB,mCAAmC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAoB;AAC9C;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA,gEAAgE,6CAA6C;AAC7G;AACA;AACA,gEAAgE,yCAAyC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C,gDAAgD,oDAAoD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA,+CAA+C,qEAAQ,mDAAmD;AAC1G;AACA;AACA;AACA;AACA;AACA,+CAA+C,qEAAQ,wCAAwC;AAC/F;AACA;AACA;AACA;AACA;AACA,+CAA+C,qEAAQ,wCAAwC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK,gBAAgB,0BAA0B;AAC3D,YAAY,uEAAU,qBAAqB,2DAA2D;AACtG;AACA;AACA,YAAY,4DAAK,gBAAgB,2BAA2B;AAC5D,YAAY,uEAAU,qBAAqB,kCAAkC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA,0HAA0H,8EAAiB;AAC3I,YAAY,qEAAQ;AACpB,YAAY,uEAAU,qBAAqB,yBAAyB;AACpE;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D;AACA,wCAAwC,oDAAoD;AAC5F,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,EAAE,8HAA8H;AAChJ;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,2DAAQ;AACY;;;;;;;;;;;;;ACv5DtB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC6B;;;;;;;;;;;;;ACH7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACgI;AACrC;AAC2C;AACb;AACrE;AACL;AACE;AACF;AACE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,qEAAqE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA,gBAAgB,uEAAU,qBAAqB,mCAAmC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAsD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA,wCAAwC,oDAAoD;AAC5F;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8BAA8B;AAClE;AACA;AACA;AACA,oCAAoC,yDAAyD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0BAA0B;AAC9D;AACA;AACA;AACA,oCAAoC,qDAAqD;AACzF;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD;AACA;AACA,YAAY,8EAAiB;AAC7B,gCAAgC,qDAAqD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA,mEAAmE,yCAAyC;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK,0BAA0B,wBAAwB;AAC/D;AACA,4BAA4B,mBAAmB,QAAQ;AACvD,4BAA4B,0EAA0E;AACtG;AACA,4BAA4B,gEAAgE;AAC5F,4BAA4B,gEAAgE;AAC5F,wBAAwB,yDAAI;AAC5B;AACA,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa,wEAAW;AACxB,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,2CAA2C,gEAAgE;AAC3G;AACA;AACA,4BAA4B,8EAAiB;AAC7C,0BAA0B,8EAAiB;AAC3C,mCAAmC,iGAAiG;AACpI,iBAAiB,8EAAiB,sBAAsB,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,mCAAmC,mEAAM;AACzC,2CAA2C,mEAAc;AACzD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAA8C;AAC1E,4BAA4B,kDAAkD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,qBAAqB,8EAAiB,iBAAiB,8EAAiB;AACxE,wCAAwC,SAAS,2CAA2C,EAAE;AAC9F;AACA;AACA;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA;AACA,oCAAoC,qDAAqD;AACzF;AACA;AACA,oCAAoC,8CAA8C;AAClF;AACA;AACA;AACA,oCAAoC,8CAA8C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS,yBAAyB,EAAE;AACpE;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA,QAAQ,4DAAK;AACb,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD,qCAAqC,8EAAiB;AACtD;AACA;AACA,sBAAsB;AACtB,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,oDAAoD;AACpG;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,+CAA+C,qEAAQ,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,+CAA+C,qEAAQ,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,+CAA+C,qEAAQ,oBAAoB;AAC3E;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C,+CAA+C,qEAAQ,6DAA6D;AACpH;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C,+CAA+C,qEAAQ,6DAA6D;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAa,SAAS,gEAAgE;AAClH;AACA;AACA,aAAa,wEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mEAAM;AAC3C,0CAA0C,mEAAc;AACxD;AACA;AACA;AACA,aAAa;AACb,2CAA2C,mEAAc;AACzD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAY,wBAAwB,2DAA2D;AACvG,QAAQ,yEAAY,wBAAwB,2DAA2D;AACvG,QAAQ,yEAAY,yBAAyB,2DAA2D;AACxG,QAAQ,yEAAY,yBAAyB,2DAA2D;AACxG;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,yEAAY,iBAAiB,2DAA2D;AAChG,QAAQ,yEAAY,qBAAqB,2DAA2D;AACpG;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAiB;AACzE;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB,sBAAsB,8EAAiB;AAC1E;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,yBAAyB,8EAAiB,sCAAsC,8EAAiB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB,mBAAmB,8EAAiB;AACnE,eAAe,8EAAiB;AAChC,sBAAsB,8EAAiB,sBAAsB,8EAAiB;AAC9E,qBAAqB,8EAAiB;AACtC;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,uEAAU,qBAAqB,yBAAyB;AACpE;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,uEAAU,qBAAqB,0BAA0B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,4CAA4C,8EAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,4BAA4B,oEAAO;AACnC,4BAA4B,oEAAO;AACnC,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,qCAAqC,8EAAiB;AAChG,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA,0BAA0B,8EAAiB;AAC3C,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB,mBAAmB,8EAAiB;AAC3E,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB,sBAAsB,8EAAiB;AAC9E;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,mBAAmB,8EAAiB,mBAAmB,8EAAiB;AACxE,qBAAqB,8EAAiB,qBAAqB,8EAAiB;AAC5E;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,qEAAqE,iCAAiC;AACtG;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC,4BAA4B,wEAAW;AACvC;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA,kEAAkE,8EAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB,yCAAyC,8EAAiB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,aAAa;AACb,uBAAuB,8EAAiB;AACxC;AACA;AACA,aAAa;AACb,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB;AACzE;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,yCAAyC,oEAAO;AAChD;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC,gCAAgC,iEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB,qBAAqB,8EAAiB;AACrE;AACA,kBAAkB,8EAAiB,yCAAyC,8EAAiB;AAC7F;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C,4BAA4B,8EAAiB;AAC7C;AACA,8BAA8B,8EAAiB;AAC/C,8BAA8B,8EAAiB;AAC/C;AACA;AACA,8BAA8B,8EAAiB;AAC/C,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD,gCAAgC,qEAAQ;AACxC,gCAAgC,iEAAY;AAC5C;AACA,iCAAiC,8EAAiB;AAClD,gCAAgC,qEAAQ;AACxC;AACA,gCAAgC,iEAAY;AAC5C,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA,yCAAyC,oEAAO;AAChD,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,iEAAY;AAC5B;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,sBAAsB;AACtB,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,oBAAoB,8EAAiB;AACvE;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,oBAAoB,8EAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB;AAChC,qBAAqB,8EAAiB;AACtC,sBAAsB,8EAAiB,sBAAsB,8EAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,yDAAyD,iCAAiC;AAC1F,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB,cAAc,8EAAiB,QAAQ,oEAAO;AAC9C;AACA;AACA,aAAa,8EAAiB,qBAAqB,8EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB,cAAc,8EAAiB,QAAQ,oEAAO;AAC9C;AACA;AACA,aAAa,8EAAiB,qBAAqB,8EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,wDAAwD,+BAA+B;AACvF;AACA,sDAAsD,wBAAwB;AAC9E,oDAAoD,sBAAsB;AAC1E,yDAAyD,wBAAwB;AACjF,YAAY,uEAAU,cAAc,gGAAgG;AACpI,YAAY,uEAAU,YAAY,8FAA8F;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E,yDAAyD,yBAAyB;AAClF,mCAAmC,8DAAM,EAAE,+CAA+C;AAC1F,iCAAiC,8DAAM,EAAE,6CAA6C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,8BAA8B,8EAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kBAAkB;AAClD,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,QAAQ,4DAAK;AACb;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA,aAAa,8EAAiB,mBAAmB,8EAAiB;AAClE;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,wBAAwB,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,iBAAiB,8EAAiB;AAClC,kBAAkB,8EAAiB,sBAAsB,8EAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,kBAAkB,8EAAiB,sBAAsB,8EAAiB;AAC1E,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB,sBAAsB,8EAAiB;AACvE,iBAAiB,8EAAiB;AAClC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,iBAAiB,8EAAiB;AAClC,kBAAkB,8EAAiB,sBAAsB,8EAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA,2DAA2D,+BAA+B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,oEAAO;AACnB;AACA,2DAA2D,2BAA2B;AACtF,4DAA4D,4BAA4B;AACxF;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8EAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,4BAA4B;AACtF,yDAAyD,yBAAyB;AAClF;AACA;AACA,iDAAiD,qBAAqB;AACtE,QAAQ,uEAAU,WAAW,gCAAgC;AAC7D;AACA;AACA,mDAAmD,uBAAuB;AAC1E;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E,sDAAsD,6CAA6C;AACnG;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,sBAAsB,8EAAiB,sBAAsB,8EAAiB;AAC9E,gCAAgC,8DAAM,EAAE,+CAA+C;AACvF,+BAA+B,8DAAM,EAAE,iEAAiE;AACxG,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,iBAAiB,wEAAW;AAC5B;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,qBAAqB,8EAAiB;AACnE;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mEAAM;AAC7C,+CAA+C,mEAAc;AAC7D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAgE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA,YAAY,yEAAY;AACxB;AACA;AACA;AACA,aAAa,wEAAW;AACxB,4DAA4D,6BAA6B,kBAAkB,EAAE;AAC7G,0BAA0B,8DAAQ;AAClC,YAAY,uEAAU,WAAW,gFAAgF;AACjH;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,iEAAY;AACxB;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA,kBAAkB,8EAAiB;AACnC;AACA,kBAAkB,wEAAW;AAC7B,qBAAqB,yBAAyB,IAAI,2BAA2B;AAC7E,kCAAkC,yBAAyB,IAAI,0BAA0B;AACzF;AACA;AACA;AACA,kBAAkB,wEAAW;AAC7B,qBAAqB,WAAW,IAAI,qBAAqB,KAAK,sBAAsB;AACpF;AACA;AACA;AACA;AACA,gBAAgB,uEAAU,sBAAsB,0BAA0B;AAC1E,gBAAgB,qEAAQ;AACxB;AACA;AACA,sDAAsD,mEAAc;AACpE;AACA;AACA,yCAAyC;AACzC,yBAAyB;AACzB,sDAAsD,mEAAc;AACpE;AACA;AACA,yCAAyC;AACzC,yBAAyB;AACzB;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,gDAAgD,mEAAM;AACtD,yDAAyD,mEAAc;AACvE;AACA;AACA;AACA,yBAAyB;AACzB,yDAAyD,mEAAc;AACvE;AACA;AACA,yCAAyC;AACzC,yBAAyB;AACzB,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4DAAO;AAC9C,oBAAoB,iEAAY;AAChC;AACA,aAAa;AACb;AACA,gBAAgB,uEAAU,sBAAsB,2BAA2B;AAC3E,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,qBAAqB,wEAAW;AAChC;AACA;AACA,qBAAqB,8EAAiB;AACtC,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,uCAAuC,4DAAO;AAC9C,oBAAoB,iEAAY;AAChC;AACA,aAAa;AACb,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAO;AAC7B,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,cAAc,8EAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,wBAAwB,8EAAiB;AACnF,4BAA4B,8EAAiB,eAAe,8EAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,cAAc,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mEAAc;AACrD;AACA;AACA,yBAAyB;AACzB,SAAS;AACT,+BAA+B,mEAAM;AACrC,uCAAuC,mEAAc;AACrD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB;AACxC,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,cAAc,8EAAiB,oBAAoB,oEAAO;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,cAAc,8EAAiB;AAC/B,cAAc,oEAAO;AACrB,iBAAiB,oEAAO;AACxB,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,QAAQ,uEAAU;AAClB;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,4DAAK,gBAAgB,yBAAyB;AACtD,aAAa,8EAAiB;AAC9B,YAAY,4DAAK,gBAAgB,uCAAuC;AACxE;AACA;AACA,QAAQ,qEAAQ;AAChB,YAAY,8EAAiB;AAC7B,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uEAAU;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD,gCAAgC,8EAAiB;AACjD;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE,gCAAgC;AAChC;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD,YAAY,4DAAK;AACjB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA,iBAAiB,8EAAiB,kCAAkC,8EAAiB;AACrF,kBAAkB,8EAAiB,+BAA+B,8EAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,kBAAkB,8EAAiB;AACzE;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA,oCAAoC,cAAc;AAClD,oCAAoC,mBAAmB;AACvD,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,gCAAgC,yEAAoB;AACpD;AACA;AACA;AACA;AACA,4CAA4C,EAAE,IAAI,EAAE;AACpD;AACA,+CAA+C,EAAE,IAAI,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM,8BAA8B,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA,oCAAoC,SAAS,2CAA2C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wCAAwC;AAChF;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA;AACA,wCAAwC,SAAS,2CAA2C,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8CAA8C;AAC9E,gCAAgC,kDAAkD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,iEAAY;AACxB,YAAY,4DAAK;AACjB,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,cAAc,8EAAiB;AAC/B,iBAAiB,8EAAiB;AAClC,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA,uBAAuB,iBAAiB;AACxC,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4DAAO;AAC5C,2EAA2E,8CAA8C;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wEAAW;AACxC;AACA;AACA;AACA,kDAAkD,8EAAiB,uBAAuB,8EAAiB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4DAAO;AACjD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,2BAA2B,8EAAiB;AAC7E;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB,wBAAwB,8EAAiB;AAC3F,gCAAgC,iEAAY;AAC5C,gCAAgC,iEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA,iCAAiC,8EAAiB,+BAA+B,8EAAiB;AAClG;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA,8CAA8C,4DAAO;AACrD,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD;AACA,4BAA4B,oDAAoD;AAChF,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C,4BAA4B,gBAAgB;AAC5C;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA,gCAAgC,SAAS,yBAAyB,EAAE;AACpE;AACA;AACA,gCAAgC,SAAS,yBAAyB,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,2BAA2B,8EAAiB;AACzE;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA,SAAS;AACT,QAAQ,uEAAU;AAClB;AACA,SAAS;AACT,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB,qBAAqB,8EAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,qBAAqB;AACpC,iBAAiB;AACjB;AACA;AACA;AACA,sBAAsB;AACtB,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,wCAAwC,mCAAmC;AAC3E;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE,oBAAoB,4DAAK;AACzB;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D;AACA,wCAAwC,oDAAoD;AAC5F,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB,qBAAqB,8EAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA,wCAAwC,mEAAmE;AAC3G;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAmE;AAC3G;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAiC;AACzE;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,IAAI;AACtB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,+DAAY;AACa;;;;;;;;;;;;;ACjyI3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACkC;;;;;;;;;;;;;ACHlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACoH;AACpB;AACuB;AACV;AAC/D;AACC;AACA;AACO;AACI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,oBAAoB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA,4BAA4B,0EAA0E;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB,gCAAgC,eAAe;AAC/C;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,uEAAU,qBAAqB,uDAAuD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,+BAA+B;AAC/B;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA,wBAAwB,4DAAK;AAC7B;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,iCAAiC,mEAAM;AACvC,mCAAmC,mEAAc;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ,sBAAsB,iFAAoB;AAC9E;AACA;AACA,sDAAsD,6DAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yEAAoB;AAC9C,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ,sBAAsB,iFAAoB;AAC9E;AACA;AACA,sDAAsD,6DAAQ;AAC9D;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAQ;AAC3B;AACA;AACA,mBAAmB,qEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA,2BAA2B,0EAAa,SAAS,6BAA6B,kBAAkB,EAAE;AAClG;AACA;AACA,0BAA0B,qEAAc;AACxC;AACA;AACA,QAAQ,uEAAU,gBAAgB,gFAAgF;AAClH,QAAQ,mEAAM;AACd;AACA,2BAA2B;AAC3B,wBAAwB,yEAAY;AACpC;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,uEAAU,qBAAqB,uCAAuC;AACtF;AACA;AACA;AACA;AACA,uCAAuC,0EAAa;AACpD;AACA,4BAA4B,oEAAoE;AAChG,iBAAiB;AACjB,qBAAqB,8EAAiB;AACtC;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8DAAS;AACxD;AACA;AACA,+CAA+C,8DAAS;AACxD;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,uEAAU,sBAAsB,0BAA0B;AAC1E,gBAAgB,iEAAY;AAC5B;AACA,SAAS;AACT;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA,cAAc,oEAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAO;AACxB,yFAAyF,4DAAO,SAAS,4DAAO;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB,6BAA6B,0EAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAK;AACpC;AACA;AACA;AACA,uBAAuB,4DAAO,aAAa,qBAAqB,IAAI,uBAAuB;AAC3F,sBAAsB,4DAAO;AAC7B,sBAAsB,4DAAO,aAAa,2BAA2B,IAAI,yBAAyB;AAClG;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,qBAAqB,4DAAO;AAC5B,6CAA6C,mEAAM;AACnD,2CAA2C,mEAAc;AACzD;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,aAAa,4DAAO;AACpB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,iBAAiB,4DAAO;AACxB,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA,gCAAgC,0DAA0D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oEAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C,aAAa,8EAAiB;AAC9B;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,uEAAU,qBAAqB,mEAAmE;AAC9G;AACA;AACA,YAAY,uEAAU,qBAAqB,kCAAkC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8DAAS;AAC/C;AACA,YAAY,uEAAU,qBAAqB,2BAA2B;AACtE,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,oDAAoD;AACpG;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA,aAAa,8EAAiB,uBAAuB,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8EAAiB;AAClE,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA,aAAa;AACb;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA,aAAa;AACb;AACA,gCAAgC,8EAAiB;AACjD,YAAY,4DAAK;AACjB;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,oBAAoB,8EAAiB,gBAAgB,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,oBAAoB;AACnC,iBAAiB;;AAEjB;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA,wBAAwB,4DAAK;AAC7B;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D;AACA,wCAAwC,oDAAoD;AAC5F,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6EAA6E;AACzH;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wBAAwB,4DAAK;AAC7B;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8EAAiB;AAClF;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,EAAE,8HAA8H;AAChJ;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,iEAAU;AACc;;;;;;;;;;;;;AC3iD1B;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;;;;;;;;;;;;;ACHjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;AACE;AACK;AACL;AACI;AACN;;;;;;;;;;;;;ACRjC;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACmC;;;;;;;;;;;;;ACHnC;AAAA;AAAA;AAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAI;AAC5B;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA,0CAA0C,sCAAsC;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,mEAAmE,0BAA0B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ,SAAS,iFAAoB;AAC1D;AACA;AACA,qBAAqB,qEAAQ,mEAAmE,6DAAQ;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;ACztB1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC6B;;;;;;;;;;;;;ACH7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AAC2G;AACjC;AACkC;AACiB;AACV;AACpE;AACA;AACE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mCAAmC;AACrG;AACA;AACA,sBAAsB,8DAAQ;AAC9B,gBAAgB;AAChB;AACA;AACA,CAAC,wCAAwC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oBAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD,kCAAkC,yEAAoB;AACtD;AACA;AACA;AACA,4BAA4B,sEAAsE;AAClG,4BAA4B,kEAAkE;AAC9F,4BAA4B,kEAAkE;AAC9F,4BAA4B,4EAA4E;AACxG;AACA;AACA;AACA;AACA,oCAAoC;AACpC,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B,4BAA4B,wEAAwE;AACpG;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA,gBAAgB,uEAAU,qBAAqB,mCAAmC;AAClF;AACA;AACA,YAAY,8EAAiB;AAC7B,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA,mEAAmE,yCAAyC;AAC5G;AACA;AACA,mEAAmE,kCAAkC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,4DAAK,gBAAgB,2BAA2B;AAC5D;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,0BAA0B,yEAAoB;AAC9C;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA,yBAAyB;AACzB,4BAA4B,8EAAiB;AAC7C;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC,8EAAiB;AACjD,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,+CAA+C,EAAE,IAAI,EAAE;AACvD;AACA,iDAAiD,EAAE,IAAI,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yCAAyC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qEAAQ,sBAAsB,iFAAoB;AACpF;AACA;AACA,4DAA4D,6DAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA,uBAAuB,yBAAyB;AAChD,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,wBAAwB,yEAAY;AACpC;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA,sBAAsB,4DAAO,aAAa,2BAA2B,IAAI,yBAAyB;AAClG,uBAAuB,4DAAO,aAAa,qBAAqB,IAAI,uBAAuB;AAC3F;AACA,sBAAsB,4DAAO;AAC7B;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,aAAa;AACb,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,aAAa;AACb,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT,aAAa,4DAAO;AACpB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,qDAAqD,mCAAmC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,uEAAU,qBAAqB,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,uEAAU,qBAAqB,yBAAyB;AACpE;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,2BAA2B,iFAAoB;AAC9E;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,+CAA+C,6DAAQ;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA,uDAAuD,uEAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ,sBAAsB,iFAAoB;AAC1E;AACA;AACA,kDAAkD,6DAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ,sBAAsB,iFAAoB;AAC9E;AACA;AACA,sDAAsD,6DAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ,uBAAuB,iFAAoB;AAC3E;AACA;AACA,wBAAwB,qEAAQ,+EAA+E,6DAAQ;AACvH;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,qDAAqD,6CAA6C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oEAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,oBAAoB,wEAAW;AAC/B,oBAAoB,uEAAU,sBAAsB,2BAA2B;AAC/E,oBAAoB,iEAAY;AAChC;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA,aAAa;AACb;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2DAA2D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,8EAAiB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,4DAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAA2C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA,aAAa,4DAAO;AACpB,gCAAgC,mEAAM;AACtC,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,qCAAqC,8EAAiB;AACtD,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,oDAAoD;AACpG;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,iCAAiC,8EAAiB;AAClD,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,iCAAiC,8EAAiB;AAClD,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA,oDAAoD,eAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,mDAAmD,8CAA8C;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA,aAAa,8EAAiB,iCAAiC,8EAAiB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,oBAAoB,8EAAiB,gBAAgB,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAQ;AACvB;AACA;AACA,eAAe,qEAAQ;AACvB;AACA;AACA,QAAQ,iEAAY;AACpB,aAAa,4DAAO;AACpB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,iBAAiB,4DAAO;AACxB,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,uEAAU,qBAAqB,mEAAmE;AAC9G;AACA;AACA,YAAY,uEAAU,qBAAqB,kCAAkC;AAC7E;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qDAAqD;AAChH;AACA;AACA;AACA,oEAAoE,qDAAqD;AACzH;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB,8EAAiB;AACjC;AACA,SAAS;AACT,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA,sDAAsD,6BAA6B,kBAAkB,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8CAA8C;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,8DAAQ;AAC/B,QAAQ,uEAAU,gBAAgB,gFAAgF;AAClH,QAAQ,mEAAM;AACd;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA,cAAc,oEAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAO;AACxB,sCAAsC,4DAAO,SAAS,4DAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,wEAAW;AACvB,YAAY,uEAAU,qBAAqB,2BAA2B;AACtE;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB,sEAAsE,2CAA2C;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4DAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8DAAS;AACzD;AACA;AACA,gDAAgD,8DAAS;AACzD;AACA;AACA,oBAAoB,uEAAU,sBAAsB,0BAA0B;AAC9E,oBAAoB,qEAAQ;AAC5B,oBAAoB,iEAAY;AAChC,0GAA0G,4DAAO;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,uBAAuB,8EAAiB,YAAY,8EAAiB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA,wFAAwF,uEAAU;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE,yCAAyC,yEAAoB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,oBAAoB,8EAAiB,+BAA+B,wCAAwC;AAC5G;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAsD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAiC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+EAA+E;AAC3H;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,EAAE,8HAA8H;AAChJ;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACW;AACtB;;;;;;;;;;;;;ACx8EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,WAAW;AAC1B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC6B;;;;;;;;;;;;;AC79B9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC8B;AACO;;;;;;;;;;;;;ACJrC;AAAA;AAAA;AAAA;AAAA;AAA8D;AACZ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+DAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gCAAgC;AACvE;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,0EAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAyE;AAChG;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,0CAA0C;AAC1C,kEAAkE;AAClE,kEAAkE;AAClE,uDAAuD;AACvD,2DAA2D;AAC3D,iEAAiE;AACjE,4DAA4D;AAC5D,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA,qCAAqC,0BAA0B;AAC/D;AACA,YAAY,+DAAI;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD,eAAe,iBAAiB;AAChC,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;AC3Z1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC2F;AAC1D;AACS;AAC3C,cAAc,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA,yBAAyB,8CAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8CAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,uBAAuB,4CAAK;AAC5B;AACA;AACA;AACA,2BAA2B,qBAAq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CAAQ;AAC7D,qDAAqD,8CAAQ;AAC7D;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,OAAO;AACvB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA,iCAAiC,8CAAQ;AACzC;AACA,gBAAgB,8CAAQ;AACxB;AACA,mBAAmB,8CAAQ;AAC3B,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ,qCAAqC;AAC5D;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,8EAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,eAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,cAAc;AAC9B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA,qBAAqB,8CAAQ;AAC7B;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA,wBAAwB,8CAAQ;AAChC;AACA;AACA;AACA;AACA,+BAA+B,gDAAS;AACxC;AACA,eAAe,gDAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C,qBAAqB,8CAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8EAAiB;AACrG;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA,qBAAqB,8EAAiB;AACtC,8BAA8B,8CAAQ;AACtC;AACA,iCAAiC,4CAAK;AACtC,wBAAwB,8CAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,oBAAoB,4CAAK;AACzB,qBAAqB,4CAAK;AAC1B,sBAAsB,4CAAK;AAC3B,uBAAuB,4CAAK;AAC5B,yBAAyB,4CAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC;AACA,sCAAsC,YAAY,qBAAqB,cAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,uEAAuE;AACvE;AACA,SAAS;AACT,QAAQ,mEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8CAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,uBAAuB,8CAAQ;AAC/B;AACA;AACA,uBAAuB,8CAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA,uBAAuB,qBAAqB;AAC5C,4BAA4B,gDAAS;AACrC;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,0BAA0B,gDAAS;AACnC;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,iBAAiB,8EAAiB;AAClC,+BAA+B,qBAAqB;AACpD,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ,gCAAgC;AACvD;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAAiB,4CAA4C,gBAAgB;AAC5G;AACA;AACA,mCAAmC,8CAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,0CAA0C,8CAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE;AACA;AACA;AACA,oDAAoD,8CAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,gBAAgB,WAAW;AAC3B,iBAAiB;AACjB;AACA;AACA,mCAAmC,8CAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8CAAQ;AAC1B;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8CAAQ;AAClC,+CAA+C,8CAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wCAAwC,WAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,WAAW,EAAE;AACzD,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yEAAyE,QAAQ,8CAAQ,yBAAyB,8CAAQ,0BAA0B,EAAE,aAAa,EAAE;AAC5M;AACA;AACA;AACA,wDAAwD,8CAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wCAAwC,yCAAyC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA,6CAA6C,8CAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA,8BAA8B,8CAAQ,qBAAqB,IAAI;AAC/D,oBAAoB,mEAAM,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,8CAAQ;AAC5B;AACA,gFAAgF,+BAA+B,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,uEAAuE;AACvE;AACA;AACA;AACA,SAAS;AACT,QAAQ,mEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAK;AAClC;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,+BAA+B,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2FAA2F;AAC3F,SAAS;AACT,qDAAqD,iCAAiC,EAAE;AACxF;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,0DAA0D,qCAAqC,EAAE;AACjG;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,8EAA8E,iCAAiC,EAAE;AACjH;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA,eAAe,8CAAQ,gCAAgC;AACvD;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8CAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW,EAAE;AACjE,gDAAgD,yCAAyC;AACzF;AACA;AACA,yDAAyD;AACzD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA,wDAAwD,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW,EAAE;AACjE,gDAAgD,yCAAyC;AACzF;AACA;AACA,yDAAyD;AACzD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8CAAQ;AAC1C,uDAAuD,8CAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,gDAAgD,WAAW;AAC3D;AACA;AACA,yDAAyD;AACzD;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA,0DAA0D,OAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8CAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ,gCAAgC;AACvD;AACA;AACA,CAAC;AACwB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,8CAAQ;AAC3B;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,EAAE,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,mEAAM,2BAA2B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F;AAC5F,sCAAsC,oBAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ;AAC7B;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,yBAAyB,qEAAQ;AACjC,0BAA0B,8EAAiB,eAAe,8CAAQ;AAClE;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,WAAW,4DAA4D;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,uBAAuB,8CAAQ;AAC/B,mBAAmB;AACnB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,uBAAuB,8CAAQ;AAC/B;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mBAAmB;AAClD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA,sBAAsB,4CAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA,+BAA+B,uCAAuC;AACtE,2CAA2C,gFAAgF;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,sBAAsB,8CAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,gBAAgB,YAAY;AAC5B,gBAAgB,MAAM;AACtB,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,8CAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK;AACrB;AACA;AACA,aAAa,8EAAiB,qCAAqC,8CAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,YAAY;AAC5B,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACz1ExB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;AACF;AACG;AACJ;;;;;;;;;;;;;ACNvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACqB;AAC/B;AACF;AAC2E;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,gBAAgB,MAAM;AACtB,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2DAAiB,kCAAkC,2DAAiB;AACxH;AACA;AACA;AACA;AACA;AACA,YAAY,8CAAQ;AACpB;AACA,kDAAkD,8CAAQ;AAC1D,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sDAAY;AACtD;AACA,wDAAwD,4CAAK;AAC7D;AACA;AACA;AACA;AACA,oCAAoC,qDAAW;AAC/C,aAAa;AACb;AACA;AACA,8CAA8C,qDAAW,SAAS,sDAAY;AAC9E;AACA,mDAAmD,sDAAY;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,sDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;AACA;AACA,qDAAqD,4CAAK;AAC1D,YAAY,8CAAQ;AACpB;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAQ;AACxB;AACA,2BAA2B,gBAAgB;AAC3C;AACA,6BAA6B,mEAAM,GAAG,IAAI;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAK;AACpC,YAAY,8CAAQ;AACpB;AACA;AACA,oBAAoB;AACpB;AACA,iBAAiB,8EAAiB;AAClC;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAM,GAAG;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAAQ;AAChC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA,0BAA0B,mEAAM,GAAG;AACnC;AACA;AACA,uBAAuB,8CAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yDAAI;AACjC;AACA;AACA;AACA;AACA,oCAAoC,aAAa,EAAE,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yDAAyD,uCAAuC;AAChG;AACA;AACA;AACA;AACA,oCAAoC,uBAAuB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8CAAQ;AAC5B;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,aAAa;AAC7B,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,iCAAiC,4CAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,4CAAK;AACnF;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,6BAA6B,yDAAI;AACjC;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA,8CAA8C,aAAa,EAAE,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,aAAa;AAC7B,gBAAgB,MAAM;AACtB;AACA;AACA,iCAAiC,4CAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,aAAa;AAC7B,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,oBAAoB,8CAAQ;AAC5B;AACA,iCAAiC,4CAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,aAAa;AAC7B,gBAAgB,MAAM;AACtB;AACA;AACA,iCAAiC,4CAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,sBAAsB,mEAAM,GAAG;AAC/B;AACA;AACA,YAAY,8CAAQ;AACpB;AACA;AACA;AACA;AACA,8CAA8C,8CAAQ;AACtD;AACA;AACA;AACA;AACA,mCAAmC,WAAW;AAC9C;AACA;AACA;AACA;AACA,cAAc,mEAAM,GAAG;AACvB;AACA,2CAA2C;AAC3C;AACA,SAAS;AACT;AACA;AACA,6BAA6B,yDAAI;AACjC;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa,EAAE,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;ACjjBpB;AAAA;AAAA;AAAA;AAAA;AAAkC;AACuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA,wDAAwD,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW;AAC3G;AACA,6DAA6D,2CAA2C;AACxG;AACA,yBAAyB,iBAAiB,MAAM,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ;AACvB;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,OAAO;AACvB,gBAAgB,sBAAsB;AACtC,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC,gBAAgB,gBAAgB;AAChC,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8CAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC,gBAAgB,gBAAgB;AAChC,gBAAgB,OAAO;AACvB;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA,6CAA6C,8CAAQ;AACrD;AACA;AACA;AACA;AACA;AACA,uBAAuB,8CAAQ;AAC/B;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,gBAAgB;AAChB,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,OAAO;AACvB,gBAAgB,4CAA4C;AAC5D,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8CAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAAQ;AACpD;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;ACnmBrB;AAAA;AAAA;AAAA;AAAA;AAAyD;AACjB;AACG;AAC3C,cAAc,cAAc,cAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA,YAAY,8EAAiB,OAAO,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA,YAAY,8EAAiB,OAAO,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA,4DAA4D,kCAAkC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,+DAA+D,mCAAmC,EAAE;AACpG;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA,yBAAyB,8EAAiB;AAC1C,gEAAgE,sCAAsC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB,gBAAgB,MAAM;AACtB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,uBAAuB,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uEAAuE,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,6BAA6B,oDAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAAS;AACxD;AACA;AACA;AACA;AACA;AACA,oCAAoC,gDAAS;AAC7C;AACA;AACA,oCAAoC,gDAAS;AAC7C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wCAAwC,yFAAyF,EAAE;AACnI;AACA;AACA,+CAA+C,yCAAyC,EAAE;AAC1F;AACA;AACA,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,yBAAyB,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA,kCAAkC,gDAAS;AAC3C;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA,oDAAoD,gDAAS,iBAAiB,gDAAS;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA,uBAAuB,oDAAW,sBAAsB,4CAAK;AAC7D,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA,uBAAuB,oDAAW,sBAAsB,4CAAK;AAC7D,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,sBAAsB;AAC1C,oBAAoB,sBAAsB;AAC1C,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,cAAc;AAClC,oBAAoB,cAAc;AAClC,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB,aAAa,8EAAiB;AACvE;AACA;AACA,oBAAoB,8EAAiB,aAAa,8EAAiB;AACnE;AACA,SAAS;AACT;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,OAAO;AAC3B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,OAAO;AAC3B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,KAAK;AACzB;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,2DAA2D,EAAE;AAC7D;AACA;AACA;AACA;AACA,+BAA+B,EAAE,2BAA2B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,qCAAqC,EAAE,gBAAgB,EAAE,EAAE,EAAE,aAAa,GAAG;AAC7E;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,2CAA2C,oBAAoB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,0DAA0D,eAAe;AACzE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,OAAO;AAC3B,oBAAoB,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,EAAE;AACjE;AACA;AACA;AACA,mCAAmC,EAAE,2BAA2B,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;ACh/DpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACyF;AACnC;AACgC;AACf;AACrB;AACkC;AAC9B;AACW;AAClB;AACW;AAC1D,kFAAmB;AACnB,kFAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,0DAAK;AAC7F,sDAAsD,8EAAiB;AACvE,uDAAuD,8EAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,2CAA2C,4CAA4C;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,MAAM;AACtB,gBAAgB,mBAAmB;AACnC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,gBAAgB,8EAAiB,cAAc,8EAAiB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kFAAmB;AACpE,aAAa,8EAAiB;AAC9B,YAAY,wEAAW,SAAS,kFAAmB;AACnD;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA,6BAA6B,yEAAM;AACnC;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,uEAAuE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,4BAA4B,gFAAe;AAC3C,yBAAyB;AACzB;AACA;AACA,wBAAwB,gFAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gFAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA,qCAAqC,4DAAK,YAAY,kFAAmB;AACzE;AACA;AACA,4BAA4B,iEAAY;AACxC;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,oBAAoB,sFAAqB;AACzC,oBAAoB,gFAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,4CAA4C,EAAE,4EAAa;AAC5E;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,6DAAQ;AACc;;;;;;;;;;;;;ACxZxB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACgC;;;;;;;;;;;;;ACHhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AAC6G;AACT;AACf;AAC/B;AAC2B;AAClC;AAC/C;AACA,kFAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,aAAa,8EAAiB;AAC9B,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,uDAAuD,kFAAmB,WAAW,4DAAO,cAAc,4DAAO;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,QAAQ,4DAAK;AACb,4BAA4B,yCAAyC;AACrE;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA,gBAAgB,wEAAW,kCAAkC,kFAAmB;AAChF;AACA;AACA,gBAAgB,qEAAQ,kCAAkC,kFAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,kFAAmB;AACxF;AACA;AACA;AACA;AACA,qEAAqE,kFAAmB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD,qDAAqD,kFAAmB;AACxE,uEAAuE,8EAAiB;AACxF;AACA;AACA;AACA,aAAa,4DAAO,uCAAuC,4DAAO;AAClE,aAAa,8EAAiB;AAC9B;AACA,6BAA6B,yEAAM;AACnC;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,kBAAkB,kFAAmB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB,oBAAoB,8EAAiB;AACxF,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA,YAAY,qEAAQ,wBAAwB,kFAAmB;AAC/D,YAAY,4EAAa;AACzB;AACA,uBAAuB,4DAAO;AAC9B,aAAa;AACb,YAAY,0EAAW;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,0EAAW;AACvB,YAAY,wEAAW,wBAAwB,kFAAmB;AAClE;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,gBAAgB,8EAAiB,cAAc,8EAAiB;AAC7F;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kFAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,aAAa,8EAAiB;AAC9B,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kFAAmB;AACtE;AACA;AACA,mDAAmD,kFAAmB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kFAAmB;AAC5E;AACA,6BAA6B,kFAAmB;AAChD;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C,gBAAgB,8EAAiB;AACjC,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,uBAAuB,qEAAQ;AAC3D;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,kBAAkB,qEAAQ;AAC1B,mBAAmB,qEAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC;AACA;AACA,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA,qFAAqF,8EAAiB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8EAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yEAAyE,8EAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,MAAM;AACtB,gBAAgB,mBAAmB;AACnC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D,yDAAyD,kFAAmB;AAC5E,mFAAmF,8EAAiB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yEAAM;AACvC;AACA,oBAAoB,8EAAiB;AACrC,uCAAuC,yEAAM;AAC7C;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,wCAAwC,8EAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,2EAAY;AACM;;;;;;;;;;;;;ACl1BpB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,eAAe;AAC3B,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,uBAAuB,2DAA2D;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,aAAa;AACb;AACO;AACP;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,eAAe;AAC3B,WAAW,SAAS;AACpB;AACA,YAAY,UAAU;AACtB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACO;AACP;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,8CAA8C,sBAAsB;AACpE;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACqC;AACF;;;;;;;;;;;;;ACJnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACiH;AACW;AACzB;AAC/B;AACnB;AACQ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACU;AAClB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qEAAQ;AAC5C,yBAAyB,8EAAiB,qCAAqC,qEAAQ;AACvF,gCAAgC,qEAAQ;AACxC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qEAAQ;AAChD,6BAA6B,8EAAiB,gBAAgB,8EAAiB;AAC/E,oCAAoC,qEAAQ;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qDAAqD,qEAAQ;AAC7D,oCAAoC,qEAAQ;AAC5C;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAQ;AAC/B,uBAAuB,6DAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAO,CAAC,mEAAM;AAC/C;AACA;AACA,iCAAiC,oEAAO;AACxC;AACA;AACA;AACA,kDAAkD;AAClD;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,sCAAsC,yDAAI,yBAAyB;AACnE;AACA;AACA;AACA;AACA,gCAAgC,yDAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAQ;AACtC,gCAAgC,UAAU,8BAA8B,EAAE;AAC1E;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C,iCAAiC,8EAAiB;AAClD,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAyD;AACxE,eAAe,mBAAmB;AAClC,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,0CAA0C,gEAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0CAA0C,gEAAW;AACrD;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAW,8BAA8B,0DAAK;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA,eAAe,8DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA,6DAA6D,0DAAK;AAClE;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,iCAAiC,mEAAM;AACvC;AACA,kCAAkC,8DAAQ;AAC1C;AACA;AACA;AACA,kCAAkC,8DAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,mBAAmB;AAClC,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAAQ;AACrC;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAW,8BAA8B,0DAAK;AAC9D;AACA;AACA,eAAe,8DAAQ;AACvB;AACA;AACA,sBAAsB,8EAAiB;AACvC,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,IAAI,UAAU,gBAAgB;AACvC,eAAe,mEAAM,GAAG;AACxB;AACA;AACA,YAAY,8EAAiB;AAC7B,iEAAiE,2CAA2C;AAC5G;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,mBAAmB;AAClC,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8DAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gEAAW,8BAA8B,0DAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC,mBAAmB,8DAAQ;AAC3B;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA;AACA,oBAAoB;AACpB,uBAAuB,GAAG,8EAAiB,6BAA6B;AACxE,iBAAiB,8EAAiB;AAClC;AACA;AACA,gDAAgD,8EAAiB;AACjE,oBAAoB,8EAAiB,CAAC,qEAAQ;AAC9C;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB,2BAA2B,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAQ,2BAA2B,8DAAQ;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0BAA0B;AACzC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAyD;AACxE,eAAe,mBAAmB;AAClC,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB;AACjB;AACA;AACA,+CAA+C,iDAAiD,kBAAkB,EAAE;AACpH;AACA;AACA,2BAA2B;AAC3B,yBAAyB,yEAAY;AACrC;AACA,qCAAqC,8EAAiB;AACtD,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D;AACA;AACA;AACA;AACA,0BAA0B,8DAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,oBAAoB,8DAAQ;AAC5B;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,+CAA+C,kGAAkG;AACjJ,oDAAoD,qEAAQ;AAC5D;AACA;AACA;AACA;AACA,qCAAqC,oEAAO;AAC5C;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,mEAAmE,qEAAQ;AAC3E;AACA,oCAAoC,wCAAwC;AAC5E;AACA;AACA,6CAA6C,8EAAiB;AAC9D;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,yBAAyB,8EAAiB,UAAU,qEAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,iEAAY;AACxB,iBAAiB,8EAAiB;AAClC;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,wDAAwD;AACzE;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACa;;;;;;;;;;;;;AC/uCxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;;;;;;;;;;;;;ACHjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AAC8G;AACO;AACpC;AACiB;AACC;AACpD;AACgD;AACV;AAChB;AACrE;AACO;AACP;AACA,WAAW,kFAAmB;AAC9B,cAAc,kFAAmB;AACjC,SAAS,kFAAmB;AAC5B,QAAQ,kFAAmB;AAC3B,aAAa,kFAAmB;AAChC,UAAU,kFAAmB;AAC7B,WAAW,kFAAmB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,kBAAkB,8EAAiB;AAChE,aAAa,8EAAiB;AAC9B,oDAAoD,gEAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC,iBAAiB,8EAAiB;AAClC,wDAAwD,gEAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB,wCAAwC,8EAAiB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA,gBAAgB,8EAAiB;AACjC,oCAAoC,aAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,8EAAiB;AAC7F,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA,YAAY,iEAAY;AACxB;AACA,aAAa,4DAAO;AACpB,sCAAsC,mEAAc;AACpD;AACA,aAAa;AACb;AACA;AACA,sCAAsC,mEAAc;AACpD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,+CAA+C,oEAAO;AACtD;AACA,YAAY,iEAAY;AACxB;AACA,aAAa,4DAAO;AACpB;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO,eAAe,kFAAmB;AAC1D;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAO,iBAAiB,kFAAmB;AACnE;AACA;AACA;AACA,yEAAyE,kFAAmB;AAC5F;AACA,YAAY,qEAAQ,OAAO,kFAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,kFAAmB;AAClF;AACA,gBAAgB,wEAAW,cAAc,kFAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oFAAiB;AACtC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,0EAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY,8EAAiB;AAC7B,kCAAkC,4DAAO,cAAc,8EAAiB;AACxE,iBAAiB,8EAAiB;AAClC,YAAY,qEAAQ;AACpB,YAAY,4EAAa;AACzB;AACA,uBAAuB,4DAAO;AAC9B,aAAa;AACb,YAAY,0EAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE;AACA;AACA,2BAA2B,8EAAiB;AAC5C,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,oDAAoD,kFAAmB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB,mBAAmB,oEAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4DAAO;AAC/C,kCAAkC,4DAAO,SAAS,4DAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kFAAmB;AAC5C;AACA;AACA;AACA,gDAAgD,8EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kFAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA,wDAAwD,kFAAmB;AAC3E;AACA,YAAY,wEAAW,gBAAgB,kFAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA,yDAAyD,kFAAmB;AAC5E;AACA,6BAA6B,kFAAmB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kFAAmB;AAC7E,qCAAqC,kFAAmB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,wBAAwB,uEAAuE;AACrH;AACA,gBAAgB,uEAAU,oBAAoB,uEAAuE;AACrH;AACA;AACA,mCAAmC,8EAAiB,+BAA+B,8EAAiB;AACpG;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA,YAAY,4DAAO;AACnB,YAAY,uEAAU,qBAAqB,wCAAwC;AACnF,YAAY,uEAAU,wBAAwB,2CAA2C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uCAAuC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,kFAAmB;AACpF;AACA,gBAAgB,wEAAW,gBAAgB,kFAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,wBAAwB,qEAAQ;AAChC,uBAAuB,qEAAQ;AAC/B;AACA,sBAAsB,8EAAiB;AACvC,aAAa,wEAAW;AACxB,qBAAqB,8EAAiB;AACtC,aAAa,wEAAW;AACxB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4BAA4B,iEAAiE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,0DAAK;AAC7F;AACA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,0DAAK;AAC7F;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,MAAM;AACtB,gBAAgB,mBAAmB;AACnC,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,wCAAwC,8EAAiB;AAC/F;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB,eAAe;AACvC;AACA,aAAa;AACb;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA,kCAAkC,4DAAK;AACvC;AACA;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb,iBAAiB,8EAAiB;AAClC;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,oEAAO;AACnB,YAAY,uEAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iBAAiB,4DAAO;AACxB,gBAAgB,iEAAY;AAC5B;AACA;AACA,iBAAiB,4DAAO;AACxB,2CAA2C,mEAAc;AACzD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2CAA2C,mEAAc;AACzD;AACA;AACA;AACA,iBAAiB;AACjB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO,aAAa,4DAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,uEAAU,aAAa,gFAAgF;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gEAAW;AACxE,uCAAuC,8EAAiB;AACxD,2DAA2D,wCAAwC,EAAE;AACrG;AACA,yFAAyF,8DAAS;AAClG;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAAiB;AACjE,oDAAoD,gEAAW;AAC/D,6BAA6B,8EAAiB,sBAAsB,8EAAiB;AACrF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,YAAY,8EAAiB,+BAA+B,8EAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA,qBAAqB,qEAAQ;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kFAAmB;AAC5E;AACA,gCAAgC,yEAAyE;AACzG;AACA;AACA;AACA;AACA,0CAA0C,kFAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,mCAAmC,uEAAU;AAC7C;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wGAAwG;AACxG,+CAA+C,uEAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,wBAAwB,8EAAiB;AAC/E;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,mDAAmD;AACnD;AACA,wBAAwB,uEAAU,0BAA0B,kBAAkB,UAAU,QAAQ,WAAW,GAAG;AAC9G,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA,+EAA+E,oCAAoC;AACnH;AACA,oBAAoB,iEAAY;AAChC;AACA,oBAAoB,4DAAO;AAC3B,oBAAoB,iEAAY;AAChC;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA,gBAAgB,uEAAU,yBAAyB,0BAA0B;AAC7E;AACA,gBAAgB,qEAAQ;AACxB,iCAAiC;AACjC;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA,gDAAgD,8DAAS;AACzD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,4DAAO,cAAc,4DAAO;AACzC,4BAA4B,wEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA,+DAA+D,uBAAuB;AACtF,iEAAiE,yBAAyB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA,aAAa;AACb;AACA,qBAAqB,4DAAO;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA,0DAA0D,8EAAiB;AAC3E,8CAA8C,8EAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,+CAA+C,8EAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,8EAAiB;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,0DAA0D,uEAAU;AACpE;AACA;AACA,gGAAgG,uEAAU;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,+EAA+E,wCAAwC;AACvH;AACA,YAAY,iEAAY;AACxB;AACA,YAAY,4DAAO;AACnB,YAAY,wEAAW;AACvB,YAAY,iEAAY;AACxB;AACA;AACA,iBAAiB,4DAAO;AACxB;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,QAAQ,uEAAU,wBAAwB,0DAA0D;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB,8EAAiB;AAClC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA,6DAA6D,SAAS,gCAAgC,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,QAAQ,oEAAO;AACf;AACA;AACA;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA;AACA;AACA,qFAAqF,wEAAW;AAChG;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,6BAA6B,oEAAO,CAAC,mEAAM;AAC3C;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA,8CAA8C;AAC9C;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,6BAA6B,oEAAO,CAAC,mEAAM;AAC3C;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA,8CAA8C;AAC9C;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,uCAAuC,4DAAO;AAC9C,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD,oEAAoE,gEAAW;AAC/E;AACA,uCAAuC;AACvC;AACA;AACA,4EAA4E,8EAAiB;AAC7F,0EAA0E,8EAAiB;AAC3F;AACA;AACA;AACA,0DAA0D,8EAAiB;AAC3E,uCAAuC;AACvC;AACA;AACA,0DAA0D,8EAAiB;AAC3E;AACA,iBAAiB,gDAAgD;AACjE;AACA;AACA;AACA;AACA,gDAAgD,8EAAiB,YAAY,8EAAiB;AAC9F,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,eAAe,8EAAiB,YAAY,8EAAiB;AAC7D,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iDAAiD;AAC7E;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA,wBAAwB,4DAAK;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,4DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,mBAAmB,EAAE;AAC3E;AACA,uDAAuD,gEAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,6DAA6D,gEAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,gBAAgB,wEAAW,6CAA6C,kFAAmB;AAC7H,6CAA6C,kFAAmB;AAChE;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,aAAa,8EAAiB,wDAAwD,kFAAmB;AACzG;AACA;AACA,QAAQ,uEAAU,wBAAwB,uEAAuE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4DAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ,+FAA4B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,gEAAW;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,2EAAY;AACU;;;;;;;;;;;;;AC/qFxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;;;;;;;;;;;;;ACHjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACwD;AACC;AACqB;AAC8C;AACS;AACd;AAC1D;AACd;AACQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA,2BAA2B,mEAAM;AACjC,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA,yDAAyD,SAAS,gCAAgC,EAAE;AACpG;AACA;AACA,wBAAwB,4DAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6BAA6B,kBAAkB,EAAE;AACpG;AACA,+CAA+C,gCAAgC;AAC/E;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA,8DAA8D,gEAAW;AACzE;AACA;AACA;AACA;AACA;AACA,mEAAmE,4CAA4C;AAC/G;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB,mBAAmB,EAAE;AACrE;AACA;AACA;AACA,2BAA2B,8EAAK;AAChC,aAAa,8EAAK;AAClB;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,QAAQ,oEAAO;AACf,6BAA6B,8DAAO;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA,8DAA8D,6CAA6C,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gEAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAQ;AACjC,oBAAoB,6DAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA,YAAY,iEAAY;AACxB;AACA,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAO,SAAS,4DAAO;AACpC;AACA;AACA;AACA,2CAA2C,8EAAK;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAM;AACxC,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B,oBAAoB,wEAAW;AAC/B,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,qEAAQ;AAC5B;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,wEAAW;AAC/B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B,MAAM,iCAAiC,MAAM;AACvG,4BAA4B,yDAAI;AAChC;AACA,4DAA4D,4BAA4B;AACxF;AACA,iCAAiC,oEAAO;AACxC;AACA,sCAAsC,oEAAO;AAC7C,sDAAsD,6BAA6B;AACnF;AACA;AACA,YAAY,mEAAM;AAClB;AACA,gCAAgC,mEAAM;AACtC;AACA,iBAAiB,8EAAK;AACtB;AACA,uCAAuC,EAAE,8EAAK,oBAAoB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA,gCAAgC,sEAAS;AACzC,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD,iCAAiC,qBAAqB;AACtD;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAQ;AACvB;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,iBAAiB,mEAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA,QAAQ,oEAAO;AACf;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,qEAAQ;AAChB,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,kBAAkB,oEAAO;AACzB,yBAAyB,8EAAK;AAC9B,+BAA+B,8EAAc,4BAA4B,uBAAuB;AAChG;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAO;AACnC,aAAa,8EAAK;AAClB;AACA,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAO;AACxC;AACA,mDAAmD,oDAAoD,gBAAgB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA,qDAAqD,8EAAK;AAC1D,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA,wCAAwC,8CAA8C;AACtF;AACA;AACA;AACA,wCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oCAAoC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mCAAmC;AAC3E,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAK;AACjB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA,2BAA2B,qEAAQ;AACnC,qBAAqB,8EAAK,wBAAwB,8EAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA,yDAAyD,8EAAK,CAAC,qEAAQ;AACvE;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF;AACA;AACA,8CAA8C,qEAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8EAAK;AACzD;AACA;AACA;AACA,2BAA2B,oEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uEAAU,sBAAsB,0BAA0B;AAC1E;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,iCAAiC;AACjC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,uEAAU;AACpC;AACA;AACA;AACA,0BAA0B,uEAAU;AACpC;AACA;AACA;AACA,0BAA0B,uEAAU;AACpC;AACA;AACA;AACA,0BAA0B,uEAAU;AACpC;AACA;AACA;AACA,sBAAsB,uEAAU;AAChC;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAK;AACrC;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA,iBAAiB;AACjB;AACA,oBAAoB,iEAAY;AAChC;AACA,iBAAiB;AACjB;AACA,yBAAyB,4DAAO;AAChC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA,wCAAwC,uEAAU;AAClD;AACA;AACA;AACA,qBAAqB,uEAAU;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B,uBAAuB,oEAAO;AAC9B,uBAAuB,oEAAO;AAC9B,uBAAuB,oEAAO;AAC9B;AACA,aAAa,oEAAO,+BAA+B,oEAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,YAAY,wEAAW;AACvB;AACA,aAAa,8EAAK;AAClB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD,2BAA2B,eAAe;AAC1C,yDAAyD,8EAAK,CAAC,qEAAQ;AACvE;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD,sDAAsD,8EAAK,CAAC,qEAAQ;AACpE;AACA;AACA,iBAAiB,8EAAK,CAAC,qEAAQ,gCAAgC,8EAAK,CAAC,qEAAQ;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,YAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ;AAC7B;AACA;AACA,oCAAoC,cAAc;AAClD;AACA,mCAAmC,qEAAQ;AAC3C;AACA;AACA,mCAAmC,qEAAQ;AAC3C;AACA,gBAAgB,4DAAK;AACrB,oCAAoC,qBAAqB;AACzD;AACA;AACA,gBAAgB,uEAAU,qBAAqB,sCAAsC;AACrF,gBAAgB,uEAAU,qBAAqB,yCAAyC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA;AACA,4BAA4B,sEAAS;AACrC,2BAA2B,sBAAsB;AACjD;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA,gBAAgB,4DAAK;AACrB;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAK;AACtC,2BAA2B,sBAAsB;AACjD,oBAAoB,8EAAK;AACzB;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA,2DAA2D,YAAY;AACvE,6BAA6B,qEAAQ;AACrC,qBAAqB,8EAAK,wBAAwB,8EAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,4CAA4C,YAAY;AACxD,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,oCAAoC,qEAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF;AACA,sDAAsD,qEAAQ;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8EAAK;AACzD;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA,4BAA4B,wBAAwB;AACpD,uBAAuB,8BAA8B;AACrD,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,oDAAoD,SAAS;AAC7D;AACA,uBAAuB,qEAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,wEAAW;AAC3B;AACA;AACA,QAAQ,4DAAK;AACb;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT,sDAAsD,0BAA0B;AAChF,oDAAoD,sCAAsC;AAC1F;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA,sDAAsD,0BAA0B;AAChF;AACA;AACA;AACA;AACA,sCAAsC,yCAAyC;AAC/E;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,YAAY,mEAAM;AAClB;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA,4BAA4B,aAAa;AACzC;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,4BAA4B,yDAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4CAA4C;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAK;AACzB,oBAAoB,4DAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA,4BAA4B,wEAAW;AACvC,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb,QAAQ,mEAAM;AACd,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,iBAAiB,EAAE,uBAAuB,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,uEAAU,qBAAqB,2BAA2B;AAClE;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AAC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;AACA;AACA;AACA;AAC+C;AACsC;AACuC;AACd;AACT;AAC9C;AACY;AAClB;AACkD;AACzC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uCAAuC,iBAAiB,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,kFAAmB;AACnG;AACA;AACA;AACA;AACA,QAAQ,wEAAW,eAAe,kFAAmB,UAAU,kFAAmB;AAClF;AACA;AACA,QAAQ,uEAAU,aAAa,2GAA2G;AAC1I;AACA;AACA;AACA;AACA,iCAAiC,yDAAI,wBAAwB,+DAA+D;AAC5H;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC,6BAA6B,EAAE,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,2CAA2C,+EAAgB;AAC3D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sCAAsC,oBAAoB,EAAE;AAClH;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,wEAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAY;AACzC;AACA;AACA;AACA,6BAA6B,yEAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAI;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,sBAAsB,8DAAM,EAAE,8CAA8C;AAC5E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAU;AACrC;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW,QAAQ,8DAAQ;AACvC;AACA;AACA,YAAY,qEAAQ,QAAQ,8DAAQ;AACpC;AACA;AACA;AACA;AACA,sDAAsD,iCAAiC;AACvF;AACA,oCAAoC,uEAAU;AAC9C;AACA,QAAQ,4EAAa,EAAE,uBAAuB;AAC9C,QAAQ,0EAAW;AACnB;AACA;AACA;AACA,YAAY,0EAAW;AACvB;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,8EAAiB;AACjH;AACA,2BAA2B,yEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAM,0BAA0B,qBAAqB;AACpE,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE,0BAA0B;AAC1B,wBAAwB;AACxB,uBAAuB,mEAAM,GAAG,YAAY,+BAA+B,gCAAgC,sEAAsE;AACjL;AACA,8BAA8B,mEAAM,cAAc,6BAA6B;AAC/E,uBAAuB,mEAAM,YAAY,6CAA6C;AACtF;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yEAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAM;AACrC,+BAA+B,mEAAM;AACrC,iCAAiC,mEAAM;AACvC;AACA;AACA;AACA;AACA;AACA,8BAA8B,mEAAM,cAAc,wBAAwB;AAC1E,uBAAuB,mEAAM,YAAY,sBAAsB;AAC/D;AACA;AACA,4BAA4B,mEAAM,YAAY,wBAAwB;AACtE,uBAAuB,mEAAM,YAAY,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sEAAsE,EAAE;AAClH;AACA;AACA,YAAY,wEAAW,QAAQ,8DAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B,8DAAQ,QAAQ,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAO;AACnE,cAAc,oEAAO,8BAA8B,oEAAO;AAC1D;AACA,sBAAsB,yEAAY;AAClC;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAM,GAAG,4BAA4B,uDAAuD;AAC9H,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA,0CAA0C,mCAAmC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW,OAAO,8DAAQ;AAC1C;AACA;AACA;AACA,gBAAgB,qEAAQ,OAAO,8DAAQ;AACvC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,yDAAyD,kFAAmB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA,qDAAqD,SAAS;AAC9D;AACA,mCAAmC,qEAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA,kDAAkD,QAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA,oCAAoC,yEAAY;AAChD;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA,wCAAwC,yEAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,wBAAwB,qCAAqC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8DAAQ;AAC/C;AACA;AACA;AACA,oDAAoD,4BAA4B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8DAAQ;AACjD;AACA;AACA,4CAA4C,8DAAQ;AACpD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yBAAyB,EAAE;AACpF;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,yBAAyB,EAAE;AAChG;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kFAAmB;AAC5E,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,oGAAoG;AACpG;AACA;AACA;AACA,wFAAwF,0DAAK;AAC7F;AACA;AACA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0DAAK;AAC7E;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,aAAa;AACb;AACA,wBAAwB,eAAe;AACvC;AACA,aAAa;AACb;AACA,6BAA6B,4DAAK;AAClC;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb,YAAY,mEAAM;AAClB,YAAY,oEAAO;AACnB,YAAY,uEAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA,kCAAkC,4DAAO;AACzC,wCAAwC,8DAAQ;AAChD;AACA;AACA;AACA,uFAAuF,4DAAO;AAC9F;AACA;AACA,qBAAqB;AACrB,oBAAoB,wEAAW,0BAA0B,8DAAQ;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,aAAa,8DAAQ;AACjD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qGAAqG;AACrI;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,0DAA0D,SAAS;AACnE;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,0DAA0D,SAAS;AACnE;AACA,6BAA6B,8EAAiB,UAAU,qEAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAM;AAClB;AACA,SAAS;AACT,wCAAwC,kDAAkD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB,EAAE;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB,EAAE;AAC9D;AACA;AACA,aAAa;AACb,4CAA4C,gBAAgB,EAAE;AAC9D;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,CAAC,mEAAM,MAAM,EAAE;AACjE;AACA;AACA;AACA,gBAAgB,oEAAM;AACtB,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,kDAAkD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8DAAQ;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAM;AACd;AACA,2BAA2B,+CAA+C;AAC1E,wCAAwC,kDAAkD;AAC1F;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,kDAAkD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAO;AAChC,aAAa;AACb;AACA;AACA,sEAAsE,8DAAQ;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAY;AAChC,8BAA8B,yEAAY;AAC1C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,8DAAQ;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,oCAAoC,wEAAwE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,0DAAK;AAC/E;AACA;AACA,sEAAsE,0DAAK;AAC3E;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,MAAM;AACtB,gBAAgB,mBAAmB;AACnC,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oFAAoF;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,8DAAQ;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,8DAAQ;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD,kCAAkC,iBAAiB;AACnD,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4BAA4B;AACpF;AACA;AACA;AACA,iDAAiD,8DAAQ;AACzD;AACA;AACA;AACA,oDAAoD,8DAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8DAAQ;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAI,wBAAwB,+DAA+D;AAC9H;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,0CAA0C,8DAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW,kCAAkC,8DAAQ,YAAY,8DAAQ;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAY;AACpC;AACA;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,8CAA8C,yDAAI,wBAAwB,+DAA+D;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,2EAAY;AACK;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACprEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AACV;AAC2D;AACF;AACjC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAc;AAC5C,uBAAuB,mEAAM;AAC7B,2DAA2D,8EAAiB;AAC5E,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,gCAAgC,oEAAO;AACvC;AACA,aAAa,8EAAiB;AAC9B,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAO;AACnC;AACA,aAAa,8EAAiB;AAC9B,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,aAAa;AACb;AACA,wBAAwB,eAAe;AACvC;AACA,aAAa;AACb;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA,kCAAkC,4DAAK;AACvC;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb,iBAAiB,8EAAiB;AAClC;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,oEAAO;AACnB,YAAY,uEAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,iBAAiB,4DAAO;AACxB,gBAAgB,iEAAY;AAC5B;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,QAAQ,uEAAU,gCAAgC,kBAAkB,UAAU,QAAQ,WAAW,GAAG;AACpG,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB,0BAA0B,8EAAiB;AAC3C;AACA,iBAAiB,4DAAO;AACxB,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,4DAAO;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,0BAA0B,oEAAO;AACnE;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB,0BAA0B,oEAAO;AACrE;AACA,kEAAkE,kFAAmB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4DAAO,SAAS,4DAAO;AACxE;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAAO;AACxC;AACA,mDAAmD,kEAAkE,gBAAgB;AACrI;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,2BAA2B,yDAAI,gCAAgC;AAC/D;AACA,2BAA2B,yDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,mEAAM;AACtB;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;;;;;;;;;;;AClgB7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACqE;AACe;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,iBAAiB;AAC5B,WAAW,gCAAgC;AAC3C,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB;AACO;AACP,0BAA0B,0EAAa,UAAU,uBAAuB;AACxE,4BAA4B,0EAAa,WAAW,uBAAuB;AAC3E,SAAS,8EAAiB;AAC1B;AACA,QAAQ,uEAAU,WAAW,0CAA0C;AACvE;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,YAAY;AACvB;AACO;AACP;AACA,QAAQ,qEAAQ;AAChB,QAAQ,wEAAW;AACnB;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,YAAY;AACvB,WAAW,iBAAiB;AAC5B,WAAW,gCAAgC;AAC3C,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA,QAAQ,mEAAM;AACd;AACA,aAAa,8EAAiB;AAC9B,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,iBAAiB;AAC5B,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B;AACO;AACP;AACA;AACA,SAAS,8EAAiB;AAC1B,QAAQ,qEAAQ;AAChB;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,eAAe;AAC1B,WAAW,gCAAgC;AAC3C,WAAW,eAAe;AAC1B,WAAW,OAAO;AAClB;AACO;AACP;AACA;AACA;AACA,oEAAoE,8EAAiB;AACrF;AACA,YAAY,wEAAW;AACvB;AACA,QAAQ,qEAAQ;AAChB;AACA;AACO;AACP;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;AACM;AACP;;;;;;;;;;;;;ACL9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACqF;AACpB;AACuB;AACE;AACrB;AACe;AACR;AACtB;AAC2D;AAClB;AAC1B;AACgD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6CAA6C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA,+EAA+E,8EAAiB;AAChG;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,gBAAgB,uEAAU,sBAAsB,0BAA0B;AAC1E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yEAAyE;AACzG;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kFAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAM;AAClC;AACA;AACA;AACA,gBAAgB,yEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,kBAAkB,gFAAgF;AACpH;AACA,QAAQ,uEAAU;AAClB;AACA,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM,QAAQ,0BAA0B;AACpD,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,sFAAsF,8EAAiB;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC,uBAAuB,uBAAuB;AAC9C;AACA,gCAAgC,8DAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,2BAA2B,uBAAuB;AAClD,8EAA8E,8EAAiB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gEAAgE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gEAAW;AAC3E;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,iBAAiB,8EAAiB,gBAAgB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B,aAAa,8EAAiB;AAC9B,+BAA+B,EAAE,8EAAiB,oBAAoB;AACtE;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA,6EAA6E,kFAAmB;AAChG;AACA,0EAA0E,kFAAmB;AAC7F,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA,4EAA4E,kFAAmB;AAC/F,wBAAwB,wEAAW,YAAY,kFAAmB;AAClE;AACA,4BAA4B,kFAAmB;AAC/C;AACA,4BAA4B,qEAAQ,eAAe,kFAAmB;AACtE;AACA;AACA;AACA,gFAAgF,kFAAmB;AACnG;AACA,gCAAgC,qEAAQ,cAAc,kFAAmB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,kFAAmB;AACzF;AACA;AACA;AACA,qEAAqE,kFAAmB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,kFAAmB;AACtF;AACA;AACA;AACA,kEAAkE,kFAAmB;AACrF;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,6DAA6D,kFAAmB;AAChF,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,6DAA6D,kFAAmB;AAChF,mEAAmE,kFAAmB;AACtF,yCAAyC,8EAAiB;AAC1D;AACA;AACA;AACA;AACA,2CAA2C,gFAAgF;AAC3H;AACA;AACA,2CAA2C,kFAAkF;AAC7H;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC,gBAAgB,MAAM;AACtB,gBAAgB,mBAAmB;AACnC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,0DAAK;AAC7F;AACA;AACA;AACA,iDAAiD,gEAAW;AAC5D;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA;AACA,iEAAiE,0DAAK;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yEAAyE;AACjH;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAW;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,2BAA2B,qEAAQ;AACnC;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,2BAA2B;AACtE;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,YAAY,wEAAW;AACvB;AACA,wCAAwC,4DAAO,UAAU,8EAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kFAAmB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,QAAQ,mEAAc;AACtB;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kFAAmB;AACrE;AACA;AACA;AACA;AACA;AACA,cAAc,kFAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kFAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,kFAAmB;AAC1F,kDAAkD,kFAAmB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,kFAAmB;AAC3E,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kFAAmB;AACnF;AACA;AACA;AACA,kCAAkC,kFAAmB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kFAAmB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,kFAAmB;AACjC;AACA,qEAAqE,8EAAiB;AACtF;AACA,kBAAkB,kFAAmB,eAAe,kFAAmB;AACvE;AACA;AACA,yDAAyD,kFAAmB;AAC5E;AACA;AACA;AACA,uCAAuC,gFAAgF;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,wEAAW;AAC7F;AACA;AACA;AACA;AACA,iDAAiD,kFAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kFAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kFAAmB;AACrC;AACA,yEAAyE,8EAAiB;AAC1F;AACA,sBAAsB,kFAAmB,eAAe,kFAAmB;AAC3E;AACA;AACA,+DAA+D,kFAAmB;AAClF;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,8EAAiB;AACxE;AACA;AACA;AACA,gDAAgD,sEAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mCAAmC,qFAAqF;AACxH,QAAQ,uEAAU,qBAAqB,sCAAsC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sDAAsD,8EAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kCAAkC;AAC3E;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kFAAmB;AACjD,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA,wBAAwB,kFAAmB;AAC3C;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA,wBAAwB,kFAAmB;AAC3C;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA,wFAAwF,uEAAU;AAClG;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4CAA4C;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kFAAmB;AACrC,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,YAAY,4DAAO;AACnB,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,sDAAsD,0BAA0B;AAChF,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA,iCAAiC,oEAAO,CAAC,mEAAM;AAC/C;AACA;AACA,iCAAiC,oEAAO;AACxC;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA,oBAAoB,mEAAM;AAC1B;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC,4BAA4B,8EAAiB;AAC7C;AACA;AACA,uEAAuE;AACvE,SAAS,IAAI,UAAU,gBAAgB;AACvC,QAAQ,mEAAM;AACd;AACA,uCAAuC,sHAAsH;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA,0CAA0C,gEAAgE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,4CAA4C,uEAAU;AACtD,oDAAoD,uEAAU;AAC9D;AACA;AACA,4CAA4C,uEAAU;AACtD;AACA,gCAAgC,4DAAK;AACrC,iFAAiF,yBAAyB;AAC1G,2DAA2D,uBAAuB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB,yBAAyB,4DAAO;AAChC;AACA;AACA;AACA,aAAa;AACb,4CAA4C,4DAAO;AACnD,gDAAgD,gEAAgE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,6BAA6B,oEAAO,CAAC,mEAAM;AAC3C;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA,YAAY,mEAAM;AAClB;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,6BAA6B,oEAAO,CAAC,mEAAM;AAC3C;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA,wCAAwC;AACxC;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA,QAAQ,mEAAM;AACd,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,sCAAsC;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE;AACA;AACA;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA,qEAAqE,8EAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO,aAAa,4DAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8EAAiB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gCAAgC,0DAAK;AACrC;AACA;AACA;AACA;AACA,uEAAuE,kFAAmB;AAC1F,oCAAoC,yEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,+BAA+B,EAAE,8EAAiB,oBAAoB;AACtE,wDAAwD,8EAAiB;AACzE,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA,qDAAqD,wEAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,mCAAmC,EAAE,8EAAiB,oBAAoB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC,wBAAwB,qEAAQ;AAChC,8EAA8E,kFAAmB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8EAAiB;AACpF,+CAA+C,kFAAkF;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,gGAAgG,kFAAmB;AACnH;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kFAAmB,qCAAqC,kFAAmB;AACxH,kCAAkC,kFAAmB;AACrD;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qEAAQ;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kFAAmB;AAC9E;AACA,YAAY,wEAAW,cAAc,kFAAmB;AACxD;AACA;AACA;AACA;AACA,+DAA+D,kFAAmB;AAClF,gEAAgE,kFAAmB;AACnF;AACA,gBAAgB,wEAAW,cAAc,kFAAmB;AAC5D,gBAAgB,wEAAW,WAAW,kFAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,OAAO,kFAAmB;AAC9C;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA,gBAAgB,qEAAQ,OAAO,kFAAmB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,YAAY,kFAAmB;AACnD;AACA;AACA,yEAAyE,8EAAiB;AAC1F,gBAAgB,qEAAQ,YAAY,kFAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kFAAmB;AAC/B,mEAAmE,kFAAmB;AACtF,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,6CAA6C,8EAAiB;AAC9D,+CAA+C,sFAAsF;AACrI;AACA;AACA,uCAAuC,sFAAsF;AAC7H;AACA;AACA;AACA,YAAY,uEAAU,qBAAqB,sCAAsC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO,eAAe,kFAAmB;AAC1D,uBAAuB,oEAAO,eAAe,kFAAmB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,8EAAiB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,wBAAwB,oEAAO,iBAAiB,kFAAmB;AACnE,+DAA+D,8EAAiB;AAChF;AACA,wBAAwB,oEAAO,iBAAiB,kFAAmB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB,mBAAmB,oEAAO;AAC9D;AACA;AACA;AACA;AACA,0CAA0C,4DAAO,SAAS,4DAAO;AACjE;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,kEAAkE,mDAAmD;AACrH;AACA;AACA,YAAY,4EAAa,EAAE,qCAAqC,4DAAO,6BAA6B;AACpG,YAAY,qEAAQ;AACpB,YAAY,0EAAW;AACvB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,0EAAW;AACvB,YAAY,wEAAW;AACvB;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,uEAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,MAAM;AACjD,uCAAuC,MAAM;AAC7C;AACA,2BAA2B,yDAAI;AAC/B;AACA,2BAA2B,yDAAI;AAC/B;AACA;AACA,2BAA2B,yDAAI;AAC/B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,6DAA6D,MAAM;AACnE;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,mCAAmC,EAAE,8EAAiB,oBAAoB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD,gDAAgD,MAAM;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA,qEAAqE,8EAAiB;AACtF;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4CAA4C;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kFAAmB;AACjD,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,qDAAqD,wEAAW;AAChE;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,oEAAO;AAC3D,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC;AACA,iBAAiB;AACjB;AACA;AACA,mCAAmC,8EAAiB;AACpD,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,+BAA+B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qDAAqD;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,4CAA4C,8DAAS;AACrD,oBAAoB,uEAAU,sBAAsB,2BAA2B;AAC/E;AACA,oDAAoD,iFAAiF;AACrI;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,iEAAY;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,qDAAqD,4DAAO;AAC5D,yDAAyD,iEAAiE;AAC1H;AACA;AACA;AACA,iDAAiD,4DAAO;AACxD,qDAAqD,iEAAiE;AACtH;AACA;AACA;AACA,sBAAsB,kFAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD,aAAa;AACb;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yDAAyD,kFAAkF;AAC3I,uDAAuD,4EAA4E,GAAG;AACtI;AACA,8DAA8D;AAC9D,SAAS;AACT,2DAA2D,6BAA6B;AACxF,yDAAyD,8BAA8B;AACvF;AACA,YAAY,qEAAQ;AACpB;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,uDAAuD,2DAA2D;AAClH;AACA,gEAAgE,uDAAuD;AACvH;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,8DAA8D,wEAAW;AACzE;AACA;AACA,8DAA8D,wEAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4DAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,wEAAW;AAChG;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB;AAChC;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,oBAAoB;AACvF;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA,oCAAoC,gBAAgB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8EAAiB;AACnE;AACA;AACA;AACA;AACA,aAAa,8EAAiB,gBAAgB,8EAAiB;AAC/D;AACA;AACA;AACA,6CAA6C,gEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAc;AACtB;AACA,YAAY,qEAAgB;AAC5B;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,wDAAwD,0BAA0B;AAClF;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,wDAAwD,EAAE,4EAAa;AACxF;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,2EAAY;AACS;;;;;;;;;;;;;AChhIvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;ACTvB;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;ACnBtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACkB;;;;;;;;;;;;;AC3HnB;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;;;;;;;;;;;;;AClDjB;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;;;;;;;;;;;;;ACTlB;AAAA;AAAA;AAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+DAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,sDAAsD;AACjJ;AACA;AACA;AACA,2FAA2F,oDAAoD;AAC/I;AACA;AACA;AACA;AACA;AACA,2FAA2F,qEAAqE;AAChK;AACA;AACA;AACA,2FAA2F,mEAAmE;AAC9J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,kCAAkC;AACzH;AACA;AACA;AACA,uFAAuF,iDAAiD;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB;AACA;AACA,0DAA0D,iBAAiB,gBAAgB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mDAAmD,iBAAiB,gBAAgB;AACpF;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;AChLrB;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;;;;;;;;;;;;;ACTjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC6B;AACN;AACE;AACH;AACK;AACC;AACC;AACA;AACK;AACJ;;;;;;;;;;;;;ACZ9B;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACc;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;ACtChB;AAAA;AAAA;AAAyD;AACG;AAC5D,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,aAAa,8EAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;ACzD1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACsD;AACc;AAC5E;AACA;AACF;AACK;AACoC;AAChC;AACsC;AACpC;AACE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAoB;AAC5C;AACA;AACA,gCAAgC,sEAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qDAAS;AAC3C,iCAAiC,gDAAI;AACrC;AACA,8CAA8C,sDAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA,gDAAgD,qDAAS;AACzD;AACA;AACA,mDAAmD,sDAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAU;AACxC;AACA,uBAAuB,YAAY;AACnC;AACA,4BAA4B,oDAAS;AACrC,kCAAkC,qDAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qDAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD,0BAA0B,8CAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yCAAI;AAC7B;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qBAAqB,8EAAiB;AACtC;AACA;AACA,qBAAqB;AACrB,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,0CAA0C,wCAAG;AAC7C;AACA,4CAA4C,2CAAK;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,+BAA+B,0CAAI;AACnC;AACA;AACA,qCAAqC,qDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAG;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mDAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2CAAK;AAC7B;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA,2BAA2B,0CAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oDAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qDAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qDAAS;AAC9C,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,wBAAwB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,oDAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mDAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAmE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,2CAA2C;AACxG;AACA;AACA;AACA,iEAAiE,yCAAyC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uCAAuC;AACpG;AACA;AACA;AACA,iEAAiE,qCAAqC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uCAAuC;AACpG;AACA;AACA;AACA,iEAAiE,qCAAqC;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kDAAM;AAC3D;AACA;AACA;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yBAAyB,qDAAS;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4CAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,yDAAyD,4EAA4E;AACrI;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA,qDAAqD;AACrD,oDAAoD;AACpD,oDAAoD;AACpD,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA,4BAA4B,wDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wDAAU;AACrC;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wDAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gBAAgB;AAC3D;AACA;AACA;AACA,8BAA8B,wDAAY;AAC1C;AACA;AACA;AACA,8BAA8B,mDAAO;AACrC;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kDAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qDAAS;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kIAAkI;AAClI,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE,kCAAkC,0EAAc;AAChD;AACA;AACA;AACA,kCAAkC,0EAAc;AAChD;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C,iCAAiC,cAAc;AAC/C,mEAAmE,0CAA0C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;;;;;;;;;;;AC57D7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;AC3GtB;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;ACxBtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ,uEAAuE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,aAAa;AACjC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA,mCAAmC;AACnC;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ,YAAY,kBAAkB;AAC9B;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;ACtVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AAC6B;AACG;AACL;AACJ;;;;;;;;;;;;;ACRvB;AAAA;AAAA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,KAAK;AACrB,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;AClGhB;AAAA;AAAA;AAAA;AAA+D;AACjC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,kDAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAI;AACZ;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gCAAgC,kDAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACjJxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAI;AACZ;AACA;AACA;AACA,4CAA4C,UAAU;AACtD,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0CAAI;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qBAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,wCAAwC;AACxC,wCAAwC;AACxC;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACjnBxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACyF;AACiC;AAC1B;AACvB;AACJ;AACb;AACkB;AACjC;AACkB;AACf;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,YAAY,iEAAY;AACxB;AACA,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,iDAAiD,sDAAsD;AACvG;AACA;AACA,QAAQ,uEAAU,gBAAgB,0CAA0C;AAC5E,oDAAoD,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,0BAA0B,yEAAY,kBAAkB,uBAAuB;AAC/E,6BAA6B,yEAAY,kBAAkB,qBAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4FAA4F;AAC/H,oCAAoC,wBAAwB;AAC5D,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,kDAAkD,0BAA0B;AAC5E,QAAQ,mEAAM;AACd;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA,YAAY,qEAAQ;AACpB;AACA,YAAY,4DAAO;AACnB;AACA;AACA,kCAAkC;AAClC;AACA,mCAAmC;AACnC;AACA,oCAAoC,+EAAgB;AACpD;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA,eAAe,wEAAW,qBAAqB,4DAAK;AACpD;AACA;AACA;AACA;AACA,sCAAsC,qEAAQ;AAC9C;AACA;AACA;AACA,yCAAyC,uEAAU;AACnD,0CAA0C,uEAAU;AACpD;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,sCAAsC,qEAAQ;AAC9C,iBAAiB,8EAAiB;AAClC,uCAAuC;AACvC;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA,QAAQ,wEAAW;AACnB,YAAY,4DAAO;AACnB,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAS;AACjB;AACA,0DAA0D,gCAAgC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,SAAS;AAC3D;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uEAAU;AAC/C;AACA;AACA;AACA;AACA,aAAa,mEAAM;AACnB,YAAY,sEAAS;AACrB;AACA;AACA;AACA,iDAAiD,8BAA8B,kBAAkB,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA,gDAAgD;AAChD,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yCAAyC;AACzC,aAAa;AACb,8CAA8C,mDAAmD;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA,iEAAiE,kCAAkC,EAAE;AACrG;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAS;AACjB,sDAAsD,0BAA0B;AAChF;AACA,4DAA4D,qBAAqB;AACjF,sDAAsD,6BAA6B,kBAAkB,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA,eAAe,mEAAM;AACrB;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA,qCAAqC,uEAAU;AAC/C;AACA;AACA,qCAAqC,uEAAU;AAC/C;AACA,gCAAgC,uEAAU;AAC1C;AACA;AACA,8DAA8D,gCAAgC;AAC9F;AACA;AACA,uDAAuD,oCAAoC;AAC3F;AACA,gDAAgD,4BAA4B;AAC5E;AACA,6BAA6B,qDAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gDAAgD,gCAAgC;AAChF;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wDAAwD,qCAAqC;AAC7F;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wEAAW,CAAC,mEAAM,iCAAiC,oEAAc;AACtG;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA,kDAAkD,oCAAoC;AACtF;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iCAAiC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,+FAA+F,0CAA0C;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,qBAAqB;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF,SAAS;AACT,QAAQ,mEAAM,8DAA8D,mEAAM;AAClF;AACA;AACA;AACA,0BAA0B,8DAAO;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,wBAAwB,QAAQ,iBAAiB,UAAU,iBAAiB;AAC5E,SAAS;AACT;AACA;AACA;AACA,uCAAuC,+EAAgB;AACvD,QAAQ,mEAAM,2EAA2E,iCAAiC;AAC1H;AACA;AACA,eAAe,wEAAW,iBAAiB,8DAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAS;AACpC;AACA,oBAAoB,uEAAU,OAAO,iBAAiB;AACtD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAK,8BAA8B,mEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd,QAAQ,mEAAM;AACd,QAAQ,mEAAM;AACd;AACA;AACA;AACA,eAAe,mEAAM;AACrB;AACA;AACA,wCAAwC,sEAAS;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA,YAAY,iEAAY,KAAK,mEAAM;AACnC;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,kCAAkC;AACpE;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,oDAAoD;AAC/E,4BAA4B,wFAAwF;AACpH;AACA,SAAS;AACT;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,2CAA2C;AACrF;AACA;AACA,QAAQ,mEAAM,CAAC,mEAAM;AACrB;AACA,YAAY,mEAAM,CAAC,mEAAM;AACzB;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA,sCAAsC,2CAA2C;AACjF;AACA;AACA;AACA;AACA,kCAAkC,uEAAU;AAC5C,iCAAiC,uEAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD,mBAAmB,wEAAW,CAAC,mEAAM,oCAAoC,oEAAc;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA,8CAA8C,wBAAwB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,oEAAO;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0CAA0C;AACpF;AACA,uBAAuB,sEAAS;AAChC,YAAY,mEAAM;AAClB,SAAS;AACT;AACA,YAAY,mEAAM,CAAC,mEAAM;AACzB;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0CAA0C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAS;AAC3C,6DAA6D,8CAA8C,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA,oCAAoC,gBAAgB,uBAAuB;AAC3E,gCAAgC,wFAAwF,iBAAiB;AACzI;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD,gCAAgC;AAChC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,4DAA4D,qCAAqC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,gBAAgB,iEAAY,QAAQ,mEAAM;AAC1C;AACA,YAAY,iEAAY,QAAQ,mEAAM;AACtC;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM,CAAC,mEAAM;AACjC;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM,CAAC,mEAAM;AAC7B;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM,CAAC,oEAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM,CAAC,mEAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,qCAAqC,mEAAM,iFAAiF,gCAAgC;AAC5J;AACA,wCAAwC,mEAAM;AAC9C;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,YAAY,mEAAM;AAClB;AACA;AACA,gBAAgB,mEAAM,CAAC,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,iBAAiB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,+CAA+C,mEAAM;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA,wCAAwC,6EAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,qBAAqB,UAAU,EAAE;AACjC;AACA;AACA;AACA;AACA,4CAA4C,mEAAM;AAClD;AACA,gCAAgC,mEAAM,CAAC,mEAAM;AAC7C;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACY;;;;;;;;;;;;;AC52DvB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;;;;;;;;;;;;;ACH/B;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACsF;AACP;AACa;AAChD;AAC5C;AACA;AACA;AACA;AACO;AACP;AACA,yCAAyC,GAAG,kBAAkB,GAAG,KAAK,EAAE,YAAY,GAAG;AACvF,cAAc,EAAE,YAAY,IAAI,IAAI,EAAE,YAAY,IAAI;AACtD,mFAAmF;AACnF,kCAAkC,EAAE;AACpC;AACA,kCAAkC,KAAK;AACvC,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ,iBAAiB,QAAQ,kBAAkB;AACnE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,EAAE;AACrD,+CAA+C,EAAE;AACjD,wDAAwD,EAAE,MAAM,EAAE;AAClE,kDAAkD,EAAE,MAAM,EAAE;AAC5D,8DAA8D,EAAE;AAChE,iEAAiE,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yDAAI;AAC7B;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,gDAAgD,mEAAM;AACtD;AACA;AACA;AACA,kCAAkC,sEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM,4BAA4B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAS;AAChC,+CAA+C,wBAAwB;AACvE;AACA,YAAY,mEAAM;AAClB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE,gBAAgB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,sEAAS;AACtC;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAS;AAChC,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8EAAiB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6DAA6D;AAC/F;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,KAAK;AAC3C,aAAa,8EAAiB;AAC9B,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAa;AACxC;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,0EAAa,uBAAuB,gEAAgE;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8EAAiB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,yDAAI;AACmB;;;;;;;;;;;;;ACl1BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;;;;;;;;;;;;;ACHjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACuC;AACD;AACR;AACC;AACQ;AACN;AACI;AACL;;;;;;;;;;;;;ACVhC;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACwB;;;;;;;;;;;;;ACHxB;AAAA;AAAA;AAAA;AAC2G;AACrB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yDAAyD,wBAAwB,EAAE;AACnH;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G,2BAA2B;AAC3B;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,aAAa,8EAAiB;AAC9B,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,oBAAoB,wEAAW;AAC/B;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,mDAAmD,kCAAkC;AACrF,sDAAsD,kCAAkC;AACxF,aAAa,8EAAiB;AAC9B;AACA,YAAY,uEAAU,gBAAgB,0CAA0C;AAChF;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G,0CAA0C,kCAAkC;AAC5E;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G;AACA,aAAa,8EAAiB;AAC9B,qDAAqD,uBAAuB;AAC5E;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,uCAAuC;AACtD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC;AACA,qBAAqB,8EAAiB;AACtC;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,eAAe,OAAO;AACtB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,YAAY;AAC3B;AACA;AACA;AACA,oCAAoC,uEAAU;AAC9C;AACA;AACA,0EAA0E,uEAAU;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,uCAAuC;AACtD;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,uEAAU,WAAW,8DAA8D;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,uCAAuC;AACtD;AACA;AACA;AACA;AACA,YAAY,uEAAU,WAAW,eAAe;AAChD;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,uCAAuC;AACtD;AACA;AACA;AACA,6BAA6B;AAC7B,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kDAAkD;AACvF;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB;AACvD;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB,YAAY,sEAAS;AACrB;AACA,YAAY,uEAAU,YAAY,6BAA6B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,wBAAwB;AACxB,mDAAmD,2BAA2B;AAC9E;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,kBAAkB;AACjC;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,gDAAgD,+BAA+B;AAC/E;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,YAAY;AAC3B;AACA;AACA,2BAA2B,8EAAiB,kDAAkD,kEAAa;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sBAAsB;AACvB;;;;;;;;;;;;;AC3zBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACkI;AACxF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,uEAAU;AACd;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,2BAA2B,4BAA4B;AACvD,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,0BAA0B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,sBAAsB,8EAAiB,+BAA+B,8EAAiB;AACvF,SAAS,8EAAiB;AAC1B;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8EAAiB;AAC7E,iDAAiD,8EAAiB;AAClE;AACA;AACA,0BAA0B,8EAAiB;AAC3C,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8EAAiB;AACpE,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0GAA0G;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,4DAAO;AACf;AACA;AACA,qBAAqB;AACrB,IAAI,mEAAM;AACV;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,yFAAyF;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0EAA0E;AAC9G,wCAAwC,0FAA0F;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,kCAAkC,8EAAiB;AAC7F,2BAA2B,8EAAiB;AAC5C;AACA;AACA,2EAA2E,8EAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,8EAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA,gCAAgC;AAChC;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uEAAU,gBAAgB,sCAAsC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4DAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB,UAAU,8EAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,iCAAiC,8EAAiB;AACxF,yBAAyB,8EAAiB,2BAA2B,8EAAiB;AACtF;AACA;AACA,6EAA6E,8EAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,4BAA4B,8EAAiB;AAC/E;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6DAA6D;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uEAAuE;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAO,eAAe,4DAAO;AAClD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,mDAAmD,8EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,IAAI,uEAAU,gBAAgB,yBAAyB;AACvD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B,QAAQ,wEAAW;AACnB;AACA,IAAI,wEAAW;AACf,IAAI,uEAAU,gBAAgB,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,+EAA+E,8EAAiB;AAChG;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qEAAQ;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACpB;AACA;AACA;;;;;;;;;;;;;AC9nCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC6B;AACS;;;;;;;;;;;;;ACJtC;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACgC;;;;;;;;;;;;;ACHhC;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACyF;AACkB;AACtC;AAC3B;AAC0F;AACtD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,wCAAwC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAQ;AACjC;AACA,QAAQ,wEAAW;AACnB;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAO,cAAc,4DAAO,4BAA4B,4DAAO;AAChF;AACA;AACA,gBAAgB,4DAAO,aAAa,4DAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB,QAAQ,qDAAS;AACjB;AACA,YAAY,2DAAe;AAC3B;AACA,kBAAkB,yDAAa;AAC/B;AACA;AACA;AACA,YAAY,wDAAY;AACxB;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA,YAAY,kDAAK;AACjB;AACA;AACA,gBAAgB,2DAAe;AAC/B;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,sDAAsD,uEAAU;AAChE,2CAA2C,uEAAU;AACrD;AACA;AACA,yEAAyE,uEAAU;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,wCAAwC;AACxF;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC,eAAe,mBAAmB;AAClC,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,wDAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB,oBAAoB,0DAAc;AAClC;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2DAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wDAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,eAAe,2DAAe;AAC9B;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,wDAAY;AACpB;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACc;;;;;;;;;;;;;AC1fzB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;;;;;;;;;;;;;ACHjC;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC+F;AAClC;AAC6B;AACM;AAClB;AACvC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAQ;AACjC;AACA,QAAQ,wEAAW;AACnB;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,uEAAU,gBAAgB,yFAAyF;AAC3H;AACA;AACA;AACA,wBAAwB,yDAAI;AAC5B;AACA,gCAAgC,wEAAwE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qDAAqD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,wCAAwC;AACxF;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,2EAA2E,cAAc;AACzF,+CAA+C,qEAAQ,oBAAoB;AAC3E;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,0EAA0E,cAAc;AACxF;AACA,mDAAmD,qEAAQ,mBAAmB;AAC9E;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,0EAA0E,cAAc;AACxF;AACA,mDAAmD,qEAAQ,mBAAmB;AAC9E;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,2EAA2E,cAAc;AACzF;AACA,mDAAmD,qEAAQ,oBAAoB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,cAAc;AACrF;AACA,mDAAmD,qEAAQ,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAoD;AAChF;AACA;AACA,4BAA4B,yEAAoB;AAChD;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,qEAAQ;AACpB,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,uBAAuB,kDAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,gBAAgB,0BAA0B;AAChE;AACA,yDAAyD,SAAS;AAClE,kEAAkE,EAAE;AACpE;AACA;AACA,QAAQ,uEAAU,oBAAoB,yBAAyB;AAC/D;AACA;AACA;AACA,YAAY,uEAAU,kBAAkB,2BAA2B;AACnE;AACA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,6CAA6C,uEAAU;AACvD;AACA;AACA,mFAAmF,uEAAU;AAC7F;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B,QAAQ,uEAAU;AAClB;AACA;AACA,SAAS;AACT,sBAAsB,kDAAK;AAC3B,QAAQ,uEAAU;AAClB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA,oCAAoC,qCAAqC,cAAc,iDAAiD;AACxI;AACA;AACA,oCAAoC,qCAAqC,cAAc,iDAAiD;AACxI;AACA;AACA,4BAA4B,iDAAiD;AAC7E,QAAQ,uEAAU,gBAAgB,6EAA6E;AAC/G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgC,sCAAsC,cAAc,kDAAkD;AACtI;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,uEAAU,gBAAgB,uDAAuD;AACzF;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,uEAAU;AACtB;AACA;AACA,aAAa;AACb;AACA,aAAa,8EAAiB;AAC9B,YAAY,uEAAU;AACtB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C,QAAQ,iEAAY,oBAAoB,4DAAO;AAC/C,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C,QAAQ,iEAAY,oBAAoB,4DAAO;AAC/C,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C,QAAQ,iEAAY,oBAAoB,4DAAO;AAC/C;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,QAAQ,iEAAY,qBAAqB,4DAAO;AAChD,QAAQ,iEAAY,uBAAuB,4DAAO;AAClD,QAAQ,iEAAY,qBAAqB,4DAAO;AAChD,QAAQ,iEAAY,uBAAuB,4DAAO;AAClD,QAAQ,iEAAY,qBAAqB,4DAAO;AAChD,QAAQ,iEAAY,uBAAuB,4DAAO;AAClD;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6EAAgB;AACpD,uCAAuC,qEAAQ;AAC/C;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA,wDAAwD,cAAc;AACtE;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4DAAO;AACvC;AACA;AACA;AACA;AACA,sCAAsC,qEAAQ,YAAY,6EAAgB;AAC1E,sCAAsC,qEAAQ,cAAc,6EAAgB;AAC5E,6DAA6D,cAAc;AAC3E;AACA,2CAA2C,qBAAqB;AAChE;AACA;AACA;AACA,yDAAyD,cAAc;AACvE,0DAA0D,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,gCAAgC,mDAAmD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,gBAAgB,yBAAyB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAO,aAAa,4DAAO;AACxC,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6EAAgB;AAC5C,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wBAAwB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAAO,aAAa,4DAAO;AAChD;AACA;AACA;AACA,iCAAiC,4DAAO,aAAa,4DAAO;AAC5D;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa,4DAAO;AACpB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc;AAClD;AACA,6DAA6D,cAAc;AAC3E;AACA,iBAAiB,4DAAO;AACxB,gBAAgB,iEAAY;AAC5B;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,SAAS;AACT,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAO;AACxB;AACA;AACA;AACA,aAAa,4DAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,oBAAoB;AACnC,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA,wBAAwB,uEAAU,gBAAgB,0BAA0B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,OAAO,qEAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA,sCAAsC,qEAAQ;AAC9C,4CAA4C,wBAAwB;AACpE;AACA;AACA;AACA;AACA;AACA,wCAAwC,qEAAQ;AAChD,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,OAAO,qEAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACe;;;;;;;;;;;;;ACzzC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyB;;;;;;;;;;;;;ACHzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACqG;AACnC;AACU;AACiC;AACX;AAC/B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACM;AACrB;AACA;AACA,IAAI,gDAAgD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACW;AAC1B;AACA;AACA,IAAI,4CAA4C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,YAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,kDAAkD,uEAAU,wBAAwB,uEAAU;AAC9F;AACA,qBAAqB,8EAAiB;AACtC,iDAAiD,uEAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yEAAoB;AAC5D;AACA;AACA,0CAA0C,8EAAiB;AAC3D,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,mDAAmD,uEAAU;AAC7D;AACA;AACA,yFAAyF,uEAAU;AACnG;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,0EAA0E;AACpI;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,0BAA0B,uEAAU;AAC9E;AACA,oFAAoF,uEAAU;AAC9F,8CAA8C,uEAAU;AACxD,iDAAiD,uEAAU;AAC3D;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS,6BAA6B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,uEAAU;AACtB;AACA,aAAa;AACb;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qEAAQ;AACpE,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,oBAAoB,8BAA8B;AACnF;AACA,oBAAoB,8EAAiB,qBAAqB,4BAA4B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB,mBAAmB,8EAAiB;AACrF;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB,mBAAmB,8EAAiB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,gCAAgC,8EAAiB,mBAAmB,8EAAiB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mFAAmF;AACxG,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,gFAAgF,YAAY,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAmC;AACtF;AACA;AACA,mDAAmD,gCAAgC;AACnF;AACA;AACA,mDAAmD,mCAAmC;AACtF;AACA;AACA,mDAAmD,gCAAgC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,uEAAuE;AAC5I,qBAAqB,2EAA2E;AAChG,mEAAmE,wEAAwE;AAC3I,qBAAqB,4EAA4E;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iEAAiE,EAAE;AAC3G;AACA;AACA,wCAAwC,gDAAgD,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gDAAgD,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAO;AACrC;AACA;AACA;AACA,wBAAwB,QAAQ,iBAAiB,UAAU,mCAAmC,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW,wBAAwB,EAAE;AACjE;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oEAAoE;AACvH,8DAA8D,yCAAyC;AACvG;AACA;AACA;AACA;AACA,oDAAoD,qEAAqE;AACzH,+DAA+D,yCAAyC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,+CAA+C,sDAAsD;AACvH,QAAQ,uEAAU,+CAA+C,sDAAsD;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAU,2BAA2B,uEAAU;AACxF;AACA;AACA,mCAAmC,uEAAU;AAC7C;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,oDAAoD,YAAY;AAChE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qBAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,iCAAiC,uEAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB,iBAAiB,8EAAiB;AACvE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,4CAA4C,uEAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAU,2BAA2B,uEAAU;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qCAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,gBAAgB,8EAAiB,YAAY,kDAAkD;AAC/F;AACA;AACA,gBAAgB,8EAAiB,YAAY,kDAAkD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB,iBAAiB,8EAAiB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,WAAW,oDAAoD;AACrF;AACA;AACA;AACA;AACA,gBAAgB,uEAAU,WAAW,gFAAgF;AACrH,gBAAgB,uEAAU,WAAW,gFAAgF;AACrH;AACA,oBAAoB,uEAAU,WAAW,gFAAgF;AACzH,oBAAoB,uEAAU,WAAW,gFAAgF;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,UAAU,8EAAiB,gDAAgD;AAC7H;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,oDAAoD;AACtG;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,WAAW,8EAAiB,gDAAgD;AAC9H;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,qDAAqD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,uEAAU,wBAAwB,uEAAU;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,+EAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,8EAAiB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAU,8BAA8B,uEAAU,2BAA2B,uEAAU;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uEAAU,6BAA6B,uEAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uEAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,UAAU,8EAAiB,gDAAgD;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,oDAAoD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,WAAW,8EAAiB,gDAAgD;AAC9H;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,iBAAiB,qDAAqD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uEAAU,6BAA6B,uEAAU,yBAAyB,uEAAU;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAU,yBAAyB,uEAAU;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,gBAAgB,iEAAY;AAC5B;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,+CAA+C,8CAA8C;AACnH,YAAY,uEAAU,+CAA+C,8CAA8C;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,gBAAgB,8EAAiB,wBAAwB,8EAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA,4CAA4C,iBAAiB;AAC7D,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,sBAAsB,8EAAiB;AACjF;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD,iBAAiB,8EAAiB,+BAA+B,8EAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,IAAI;AACtB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACO;;;;;;;;;;;;;ACh3FlB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC6H;AACZ;AACpD;AACtB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,gDAAgD;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD,6FAA6F,8EAAiB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAK;AAC7B;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D;AACA,wCAAwC,oDAAoD;AAC5F,oBAAoB,kDAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ;AACrC;AACA;AACA;AACA;AACA,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yEAAoB;AACjD,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B;AACA,gCAAgC,wEAAwE;AACxG;AACA;AACA,4CAA4C,wEAAW;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wEAAW;AACxD;AACA,+BAA+B,wCAAwC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA,yCAAyC,qBAAqB;AAC9D;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,wCAAwC;AACxF;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,gDAAgD,gCAAgC;AAChF;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,4BAA4B;AAC5E;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,8BAA8B,kDAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,kDAAK;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sCAAsC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kDAAK;AACjB;AACA;AACA;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,oBAAoB;AACnC;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,kDAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA,oCAAoC,iBAAiB;AACrD,gBAAgB,kDAAK;AACrB;AACA;AACA,oCAAoC,iBAAiB;AACrD,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA,oCAAoC,gBAAgB;AACpD,gBAAgB,kDAAK;AACrB;AACA;AACA,oCAAoC,kBAAkB;AACtD,gBAAgB,kDAAK;AACrB;AACA;AACA,oCAAoC,oBAAoB;AACxD,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACQ;;;;;;;;;;;;;AC3tBnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;;;;;;;;;;;;;ACH3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACkH;AAC1B;AACwB;AACR;AACvB;AACxB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAiB;AAC3D,yCAAyC,8EAAiB;AAC1D,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qEAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAI;AAC5B,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA,yBAAyB,qEAAQ;AACjC;AACA;AACA,4DAA4D,SAAS,eAAe,EAAE;AACtF;AACA,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,sBAAsB,8EAAiB,4BAA4B,8EAAiB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4DAAO;AAClC;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B,aAAa,8EAAiB;AAC9B,kBAAkB,qDAAqD;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC,mBAAmB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,4BAA4B;AACpF,0DAA0D;AAC1D,oBAAoB,iDAAiD,EAAE;AACvE,yDAAyD;AACzD,oBAAoB,iDAAiD,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2BAA2B;AAClF;AACA,0DAA0D,0BAA0B;AACpF;AACA;AACA;AACA;AACA,wDAAwD,6BAA6B;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,mEAAmE,gBAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,gBAAgB,4EAAa,EAAE,uCAAuC;AACtE,gBAAgB,0EAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,iBAAiB,8EAAiB;AAChE,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,YAAY,4EAAa,EAAE,uCAAuC;AAClE,YAAY,0EAAW;AACvB;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gCAAgC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,gBAAgB,8EAAiB;AAC/D;AACA,YAAY,0EAAW;AACvB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gCAAgC;AAClE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mCAAmC;AAChF,mDAAmD,sBAAsB;AACzE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wCAAwC;AAC3E,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA,2BAA2B,mDAAmD;AAC9E;AACA;AACA;AACA;AACA,yDAAyD,2BAA2B;AACpF;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD,+BAA+B,2BAA2B;AAC1D;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA,wDAAwD,0BAA0B,kCAAkC,EAAE;AACtH;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,wDAAwD,yBAAyB;AACjF;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA,wDAAwD,4BAA4B;AACpF;AACA,+CAA+C,wBAAwB;AACvE;AACA,0DAA0D,uBAAuB;AACjF;AACA,0DAA0D,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,2BAA2B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,0DAA0D,+BAA+B,+BAA+B,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB,gEAAgE,4BAA4B;AAC5F,8DAA8D,+BAA+B,yBAAyB,EAAE;AACxH;AACA,gEAAgE,uBAAuB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,2BAA2B;AAC9F;AACA;AACA;AACA;AACA,2DAA2D,uBAAuB;AAClF;AACA;AACA,gEAAgE,oBAAoB;AACpF;AACA;AACA;AACA,8DAA8D;AAC9D,4BAA4B,+BAA+B,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,+BAA+B,8EAAiB,oCAAoC,8EAAiB;AACrG;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,qBAAqB,8EAAiB,wDAAwD,8EAAiB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD,iBAAiB,8EAAiB,cAAc,8EAAiB;AACjE,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8BAA8B;AAC3F,6DAA6D,iCAAiC,yBAAyB,EAAE;AACzH,kEAAkE,oCAAoC;AACtG;AACA,0DAA0D,8BAA8B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,8EAAiB;AAChF,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA,6BAA6B,8EAAiB;AAC9C,4BAA4B,0EAAW;AACvC,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yDAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,yDAAyD,8EAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,0EAAW;AACvB,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,uDAAuD,iDAAiD,+BAA+B,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,sBAAsB,8EAAiB;AACxE;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,0EAAW;AAC3B,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,qCAAqC,gCAAgC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,wCAAwC;AAC7E;AACA,uCAAuC,uCAAuC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,yCAAyC,8DAAS,EAAE,iBAAiB;AACrE,sFAAsF,kBAAkB;AACxG,sFAAsF,kBAAkB;AACxG;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,gFAAgF,iBAAiB;AACjG;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,gFAAgF,iBAAiB;AACjG;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAS;AAC7B,2BAA2B,oEAAO,CAAC,mEAAM;AACzC;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA,mDAAmD,0BAA0B;AAC7E;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,gDAAgD,yDAAyD;AACzG;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAI,EAAE,gFAAgF;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,2DAA2D,iDAAiD,+BAA+B,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB,gBAAgB,8EAAiB;AAC/E,4BAA4B,0EAAW;AACvC,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,yDAAI;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB,oBAAoB,8EAAiB;AAC9E,0CAA0C,8EAAiB;AAC3D,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,oBAAoB,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,gBAAgB,8EAAiB;AACnE,oBAAoB,8EAAiB;AACrC,gBAAgB,0EAAW;AAC3B,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,oBAAoB,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB,oBAAoB,8EAAiB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,oBAAoB,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,8EAAiB,oBAAoB,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,kEAAkE,8EAAiB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,iDAAiD,8EAAiB;AAC/F,eAAe,8EAAiB;AAChC,2DAA2D,gDAAgD,+BAA+B,EAAE;AAC5I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA,6DAA6D,+BAA+B;AAC5F;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA,uBAAuB,8EAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,6BAA6B;AAC1G;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAiB;AACzE;AACA,wCAAwC,mEAAM;AAC9C;AACA;AACA,oCAAoC,mEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,2BAA2B;AAC5F;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,UAAU;AACzB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,eAAe,8EAAiB;AAC9D;AACA,YAAY,4EAAa,EAAE,uCAAuC;AAClE,YAAY,0EAAW;AACvB;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,6BAA6B;AAC9C;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,IAAI;AACtB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACS;AACpB;;;;;;;;;;;;;ACt4GA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkF;AACM;AACzC;AACW;AACnD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,IAAI;AACpB;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B,6BAA6B,mEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,IAAI;AACpB;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,IAAI;AACpB;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B;AACA,8BAA8B;AAC9B,uBAAuB,uBAAuB;AAC9C,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,OAAO;AACvB;AACA,gBAAgB,IAAI;AACpB;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B;AACA;AACA,uIAAuI,mEAAM,GAAG;AAChJ,6BAA6B,mEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAAiB;AACjE;AACA;AACA,8BAA8B;AAC9B;AACA,uBAAuB,uBAAuB;AAC9C;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC,mBAAmB,EAAE;AAC1H;AACA;AACA,0DAA0D,oCAAoC,mBAAmB,EAAE;AACnH;AACA;AACA;AACA;AACA,oFAAoF,8EAAiB;AACrG,yDAAyD,6DAA6D;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,8EAAiB;AACnF;AACA,gCAAgC;AAChC,oBAAoB,kEAAK;AACzB,4DAA4D,yCAAyC;AACrG;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,4DAA4D,6DAA6D;AACzH;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA,oBAAoB,oEAAO;AAC3B;AACA;AACA,oBAAoB,oEAAO;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,gBAAgB;AAChC;AACA,gBAAgB,OAAO;AACvB;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,IAAI;AACpB;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC,gBAAgB,QAAQ;AACxB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,GAAG;AAC3B,gBAAgB,cAAc;AAC9B,gBAAgB,UAAU;AAC1B;AACA;AACA,mCAAmC,oBAAoB;AACvD,wBAAwB,mEAAM,GAAG;AACjC,2BAA2B,0DAAK;AAChC;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B,gBAAgB,OAAO;AACvB,gBAAgB,MAAM;AACtB;AACA;AACA,+BAA+B,aAAa,0DAAK,GAAG;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA,mBAAmB,gEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,gBAAgB;AAChC;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B,qBAAqB,mEAAM,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yBAAyB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uBAAuB,iBAAiB;AACxC,iBAAiB,8EAAiB;AAClC,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,OAAO,GAAG;AAC3B,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA,6CAA6C,iCAAiC,uBAAuB,EAAE;AACvG,qBAAqB,mEAAM,GAAG;AAC9B,wBAAwB,mEAAM,GAAG;AACjC;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA,8CAA8C,8EAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,cAAc;AAC9B;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC,qBAAqB,mEAAM,GAAG;AAC9B;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4DAAO,GAAG,2DAAM;AACxF,iDAAiD,kDAAkD;AACnG;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B,6BAA6B,mEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,iBAAiB,8EAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,8EAAiB;AACjG;AACA,iBAAiB,kFAAkF,KAAK;AACxG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,kEAAK;AACjB;AACA;AACA;AACA;AACA;AACA,4CAA4C,iEAAiE;AAC7G;AACA;AACA,4CAA4C,gDAAgD;AAC5F,sDAAsD,iCAAiC;AACvF;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B,6BAA6B,mEAAM,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,8EAAiB;AACjG;AACA,iBAAiB,kFAAkF,KAAK;AACxG,SAAS;AACT,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,6DAA6D,mCAAmC,KAAK;AACrG,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gCAAgC,KAAK;AACnG,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA,gBAAgB,OAAO;AACvB;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B,6BAA6B,mEAAM,GAAG;AACtC;AACA;AACA,4CAA4C,8EAAiB;AAC7D,sDAAsD,gCAAgC,KAAK;AAC3F,SAAS;AACT,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA,gBAAgB,OAAO;AACvB;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA,qBAAqB,mEAAM,GAAG;AAC9B;AACA;AACA,mEAAmE,4DAAO,GAAG,2DAAM;AACnF;AACA;AACA,qBAAqB,8EAAiB;AACtC,aAAa;AACb;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,cAAc;AACzB;AACO;AACP;AACA,QAAQ,8EAAiB;AACzB,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,yBAAyB,8EAAiB;AAC1C,kDAAkD,qEAAQ;AAC1D,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;AC9/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACkC;AACH;AACJ;;;;;;;;;;;;;ACL3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;AACK;;;;;;;;;;;;;ACJjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACoG;AACD;AACV;AACb;AACT;AACG;AACZ;AACD;AACM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU;AACtB;AACA;AACA;AACA;AACA,YAAY,qEAAQ,iEAAiE,YAAY,EAAE;AACnG;AACA;AACA,YAAY,wEAAW,+DAA+D,YAAY,EAAE;AACpG;AACA;AACA;AACA,oCAAoC,uEAAU;AAC9C,mCAAmC,uEAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,cAAc,uEAAkB,6BAA6B;AACjG;AACA,wDAAwD,+BAA+B;AACvF,6DAA6D,gEAAgE;AAC7H,qDAAqD,kEAAkE;AACvH;AACA;AACA,wBAAwB,sBAAsB;AAC9C,aAAa;AACb;AACA;AACA;AACA;AACA,qCAAqC,oEAAO;AAC5C,mEAAmE,2CAA2C;AAC9G;AACA,uDAAuD;AACvD;AACA,oBAAoB,mEAAM;AAC1B;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAmE;AAC3G;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAc;AAC5C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kEAAK,aAAa,8DAA8D;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAO;AACpC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA,wBAAwB,0DAAQ;AAChC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,QAAQ,8EAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAK,aAAa,kFAAkF;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,+BAA+B,0DAAK,gBAAgB,4CAA4C;AAChG;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kEAAK,aAAa,8DAA8D;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC;AACA,aAAa,8EAAiB;AAC9B;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA,YAAY,kEAAK,aAAa,2GAA2G;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gEAAW;AAC/D;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAc;AAC9B;AACA;AACA,mDAAmD,8EAAiB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB,6BAA6B,8EAAiB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0DAAK;AACxD;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA;AACA,wBAAwB,0DAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA,iCAAiC,0DAAQ,iBAAiB,0DAAQ,2BAA2B,0DAAQ,6BAA6B,8EAAiB;AACnJ;AACA;AACA,iCAAiC,0DAAQ;AACzC;AACA;AACA;AACA,6BAA6B,0DAAQ,2BAA2B,0DAAQ,6BAA6B,8EAAiB;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAW;AAClD;AACA;AACA;AACA;AACA,oDAAoD,gEAAW;AAC/D;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB,oCAAoC,aAAa,0DAAQ,4BAA4B;AACrF;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA,4CAA4C,uBAAuB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA,sBAAsB,0DAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wEAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,8BAA8B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAY;AACpC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,YAAY,EAAE;AAC1G,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc,uEAAkB,6BAA6B;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gEAAW;AAC/D;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,gCAAgC,wEAAc;AAC9C;AACA;AACA;AACA,sDAAsD,8EAAiB;AACvE;AACA,uCAAuC,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,2BAA2B,iBAAiB;AAC5C,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gEAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA,oCAAoC,wEAAc;AAClD;AACA,yCAAyC,+CAA+C;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAc;AAC1C;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,oBAAoB,8EAAiB,eAAe,8EAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,iBAAiB,OAAO,GAAG;AAC3B;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD,oDAAoD,gEAAW;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wEAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAAQ;AACjD;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,gBAAgB,+BAA+B;AAC/C;AACA;AACA,wDAAwD,gEAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,kCAAkC,0CAA0C,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAM,GAAG;AAC5B;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yCAAyC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,GAAG;AACnB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,CAAC,0DAAQ;AACxB;AACA;AACA,QAAQ,qEAAQ,EAAE,qDAAqD;AACvE;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACS;;;;;;;;;;;;;AC1gEpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AAC0F;AACpF;AACI;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0DAAQ;AAChF;AACA;AACA,6FAA6F,YAAY,qDAAU,UAAU;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAQ;AAChC;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,0FAA0F,qDAAU;AACpG,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uEAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,qDAAU;AACvF,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAQ;AAC1C,2CAA2C,qDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0DAAQ;AAC9E,2CAA2C,qDAAU;AACrD;AACA;AACA;AACA;AACA,4CAA4C,qDAAU;AACtD,gBAAgB,mEAAM,6BAA6B,qDAAU;AAC7D;AACA;AACA,8DAA8D,qDAAU;AACxE;AACA,+BAA+B,qDAAU;AACzC;AACA,iBAAiB;AACjB,6EAA6E,qDAAU;AACvF;AACA;AACA;AACA;AACA,wFAAwF,qDAAU;AAClG;AACA,0DAA0D,qDAAU;AACpE;AACA,gDAAgD,qDAAU;AAC1D,6CAA6C,qDAAU;AACvD,iDAAiD,qDAAU;AAC3D,oBAAoB,mEAAM,6BAA6B,qDAAU;AACjE;AACA;AACA;AACA,iDAAiD,qDAAU;AAC3D,0CAA0C,qDAAU;AACpD,8CAA8C,qDAAU;AACxD,gHAAgH,qDAAU;AAC1H;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAU;AAC3C;AACA,kCAAkC,qDAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qDAAU;AACzE,qCAAqC,qDAAU;AAC/C,qCAAqC,qDAAU;AAC/C;AACA;AACA,oEAAoE,qDAAU;AAC9E;AACA;AACA,2DAA2D,qDAAU;AACrE,sCAAsC,qDAAU;AAChD,iEAAiE,qDAAU;AAC3E;AACA;AACA,0CAA0C,qDAAU;AACpD;AACA;AACA;AACA;AACA,qCAAqC,qDAAU;AAC/C;AACA,iBAAiB,8EAAiB;AAClC,2DAA2D,qDAAU;AACrE,sCAAsC,qDAAU;AAChD;AACA;AACA;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD,6CAA6C,qDAAU;AACvD;AACA,0CAA0C,qDAAU;AACpD;AACA;AACA;AACA,+CAA+C,qDAAU;AACzD,6CAA6C,qDAAU;AACvD;AACA,0CAA0C,qDAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA,mFAAmF,gEAAW;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iFAAiF,gEAAW;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qDAAU;AAC9E,oEAAoE,qDAAU,2BAA2B,qDAAU;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gEAAW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qDAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,8CAA8C,qDAAU;AACxD,4CAA4C,qDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,qDAAU;AAC9F;AACA;AACA,sEAAsE,qDAAU;AAChF;AACA,wEAAwE,qDAAU;AAClF,kDAAkD,qDAAU;AAC5D,gDAAgD,qDAAU;AAC1D;AACA;AACA;AACA,mDAAmD,qDAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0CAA0C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC,kBAAkB,8EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,6BAA6B,gDAAgD;AAC1G,uBAAuB,6BAA6B;AACpD;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW,kEAAkE,YAAY,EAAE;AACnH;AACA;AACA;AACA,wBAAwB,qEAAQ,uDAAuD,YAAY,EAAE;AACrG;AACA;AACA;AACA;AACA,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA,oBAAoB,qEAAQ,kEAAkE,YAAY,EAAE;AAC5G;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,IAAI,IAAI;AACxD,iDAAiD,IAAI,IAAI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA,oCAAoC,IAAI,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,IAAI,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0DAAQ;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;AC/lC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;;;;;;;;;;;;;ACH3B;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACiG;AACT;AACG;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qCAAqC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAA2D;AAC9F;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB,6DAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4CAA4C,+DAA+D;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oBAAoB,mEAAM;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,yEAAY,gBAAgB,8DAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2DAA2D,yEAAyE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAoB;AAC7C;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB;AACA,uBAAuB,yEAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oEAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAY,eAAe,8DAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,yDAAI;AACc;AACpB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;ACjcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC8G;AAC9B;AACwB;AACL;AACrB;AACgD;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,qDAAqD;AACtE;AACA;AACA,QAAQ,oEAAO,EAAE,uDAAuD;AACxE;AACA;AACA,CAAC,CAAC,kEAAa;AACuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8BAA8B,oEAAe;AAC7C;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B,qBAAqB,uEAAU;AAC/B,QAAQ,8EAAQ,gBAAgB,mCAAmC;AACnE;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA;AACA;AACA,4DAA4D,mEAAM;AAClE;AACA;AACA;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,sCAAsC,yEAAY,gBAAgB,6BAA6B;AAC/F;AACA;AACA,iCAAiC,mEAAc;AAC/C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAgB;AAC3C;AACA;AACA;AACA,uBAAuB,oEAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA,iDAAiD,2BAA2B;AAC5E,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAY;AAChC,oBAAoB,iEAAY;AAChC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC,wBAAwB,iEAAY;AACpC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oEAAO;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B,uBAAuB,oEAAO;AAC9B,uBAAuB,oEAAO;AAC9B,0BAA0B,8EAAK,cAAc,8EAAK;AAClD;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAK;AAC7B,yBAAyB,8EAAK,eAAe,8EAAK,CAAC,mEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8EAAK,CAAC,mEAAM;AACpD;AACA,0CAA0C,8EAAK,CAAC,mEAAM,+BAA+B,8EAAK,CAAC,oEAAO;AAClG,wCAAwC,8EAAK,CAAC,mEAAM,iCAAiC,oEAAO;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK,gBAAgB,8EAAK;AACvC,6BAA6B,mEAAM;AACnC,4BAA4B,oEAAO;AACnC;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,uCAAuC,mEAAM;AAC7C;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4BAA4B,wEAAW,kBAAkB;AACzG;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA;AACA,kDAAkD,sBAAsB;AACxE,sBAAsB,wEAAW;AACjC,YAAY,8EAAK;AACjB;AACA;AACA,QAAQ,uEAAU,YAAY,0CAA0C;AACxE;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAkB;AAChD;AACA;AACA,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA,kBAAkB,mEAAM;AACxB,8BAA8B,8EAAK;AACnC;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,uDAAuD,2BAA2B;AAClF,mDAAmD,uCAAuC;AAC1F;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8EAAK;AACpC;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uEAAkB;AAClD;AACA;AACA,sBAAsB,8EAAK;AAC3B;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAgB;AAC7C;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,aAAa,8EAAK,yCAAyC,8EAAK;AAChE;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,4BAA4B,uEAAkB;AAC9C;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA,iDAAiD,iDAAiD,wEAAW,iBAAiB;AAC9H,QAAQ,uEAAU,WAAW,wBAAwB;AACrD,6CAA6C,uBAAuB;AACpE;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,4CAA4C,uEAAkB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC,YAAY,8EAAK,WAAW,sEAAS;AACrC;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAQ,QAAQ,kCAAkC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,eAAe,0BAA0B;AAC/D,YAAY,uEAAU,+BAA+B,oDAAoD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wBAAwB;AACpD;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC,YAAY,8EAAK,WAAW,sEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAQ,QAAQ,iDAAiD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,eAAe,2BAA2B;AAChE,YAAY,uEAAU,+BAA+B,sDAAsD;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAA8D;AAC9E,gBAAgB,OAAO;AACvB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,8EAAK,SAAS,8EAAK,CAAC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,aAAa,4CAA4C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA;AACA,iBAAiB;AACjB,mCAAmC,mEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,SAAS;AACT;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,eAAe;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA,uCAAuC,sEAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8EAAK;AACjE;AACA;AACA;AACA,2DAA2D,8EAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8EAAK;AACjE;AACA;AACA,2DAA2D,8EAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mEAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAQ,gBAAgB,WAAW,uEAAU,kBAAkB;AACnF;AACA;AACA,oBAAoB,8EAAQ,gBAAgB,UAAU,uEAAU,iBAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACU;;;;;;;;;;;;;ACp3CrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACkL;AACjI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU,yBAAyB,GAAG,oCAAoC,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE,2BAA2B,gBAAgB;AAC3C;AACA,gCAAgC,sCAAsC;AACtE;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,uEAAuE;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA,yBAAyB;AACzB,wBAAwB,iEAAY;AACpC;AACA,yBAAyB;AACzB;AACA;AACA,8BAA8B,mEAAM,GAAG;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iEAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iDAAiD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM,GAAG;AACrC;AACA;AACA,gCAAgC,mEAAM,GAAG,YAAY,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM,CAAC,8DAAQ;AAC/B;AACA;AACA,uDAAuD,sDAAsD,kBAAkB,EAAE;AACjI,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gDAAgD;AAC7G;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB,mBAAmB,oEAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+CAA+C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACW;;;;;;;;;;;;;ACzftB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC6B;;;;;;;;;;;;;ACH7B;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC8F;AACN;AACpB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,4DAAO;AAC9B;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,yBAAyB,wEAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,0DAAK,gBAAgB,4EAA4E;AAChI,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,4BAA4B;AAC/E,mDAAmD,4BAA4B;AAC/E;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sEAAS;AAC3B,sBAAsB,sEAAS;AAC/B;AACA,YAAY,mEAAM;AAClB,SAAS;AACT,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA,YAAY,mEAAM;AAClB,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA,sBAAsB,sEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yDAAyD,kDAAkD;AAC3G;AACA,kDAAkD,+CAA+C;AACjG,iDAAiD,iEAAiE;AAClH;AACA,iDAAiD,iDAAiD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+CAA+C;AAC5F;AACA,iDAAiD,iEAAiE;AAClH;AACA,gDAAgD,iEAAiE;AACjH;AACA,qDAAqD,gEAAgE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAK,MAAM,mEAAmE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,iEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA,gBAAgB,8EAAiB;AACjC,gBAAgB,sEAAS;AACzB;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACQ;;;;;;;;;;;;;AC5enB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;AACA;AACG;AACsB;AACb;;;;;;;;;;;;;ACPvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC2G;AACzB;AACjC;AAC2E;AACe;AAC1F;AACmD;AAC1C;AACG;AAChB;AACA;AACuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,0BAA0B;AACzC;AACA;AACA;AACA;AACA,8BAA8B,8DAAS,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC,iBAAiB;AACjB,6BAA6B,qEAAQ;AACrC,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,+CAA+C,KAAK,wEAAW,wBAAwB;AACvF,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ;AACrC;AACA,0DAA0D,sDAAsD;AAChH,0DAA0D,WAAW;AACrE;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,kCAAkC,wEAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAY;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iDAAiD,sDAAsD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAQ,sCAAsC,UAAU,iBAAiB,EAAE;AACnG,gCAAgC,eAAe;AAC/C,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA,oBAAoB,wEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAS;AACvC,qDAAqD,SAAS;AAC9D;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,wBAAwB,4DAAO;AAC/B,4BAA4B,0DAAK,UAAU,wCAAwC;AACnF;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,sCAAsC,kFAAmB,qBAAqB,gBAAgB;AAC9F;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,aAAa,4DAAO;AACpB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA,wBAAwB,yEAAY,WAAW,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAc;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,oEAAO;AACnB,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAO;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gCAAgC;AACnE;AACA,iEAAiE,sEAAS;AAC1E,mBAAmB,8EAAiB,iBAAiB,mEAAM;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,aAAa;AAC9C,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mEAAM;AACxD,kBAAkB,sEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAO;AAC9C;AACA;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA,4BAA4B,yEAAa,CAAC,wEAAW,uBAAuB,wDAAO;AACnF,uCAAuC,wEAAW,WAAW,4DAAK;AAClE;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oEAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oEAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+FAA+F,sEAAS;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD,oBAAoB,oEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC,8BAA8B,UAAU;AACxC,2BAA2B,UAAU;AACrC,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,gCAAgC,4DAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA,gEAAgE,iEAAiE,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sEAAsE,EAAE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,+EAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4DAAK;AAChC;AACA;AACA,6CAA6C,uBAAuB,IAAI;AACxE,gEAAgE;AAChE,qEAAqE,uBAAuB,IAAI,yBAAyB;AACzH;AACA;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mDAAmD,qDAAqD;AACxG,qDAAqD,uEAAkB;AACvE;AACA;AACA,SAAS;AACT;AACA,8EAA8E;AAC9E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,0CAA0C,+DAA+D;AACzG;AACA,SAAS;AACT;AACA;AACA,eAAe,kEAAG,iBAAiB,aAAa,GAAG,uBAAuB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAY,sBAAsB,uBAAuB;AACrF;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,wEAAS;AAC3B;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA,iCAAiC,gFAAiB;AAClD;AACA;AACA,kBAAkB,wEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gDAAgD;AACxF,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB,qBAAqB,oEAAO;AACpE,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wEAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA,6BAA6B,gFAAiB;AAC9C;AACA;AACA,8BAA8B,wEAAS;AACvC;AACA;AACA,6BAA6B,gFAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wEAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,iCAAiC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,iBAAiB,8DAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,oEAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAO;AAC1C;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,uDAAuD,4DAAO;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4DAAO;AACnD,wHAAwH,oEAAO;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,oEAAO;AAC1F,mCAAmC,oEAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA,+CAA+C,4DAAO;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAY;AACxC;AACA;AACA,4BAA4B,wEAAY;AACxC;AACA;AACA,mCAAmC,mEAAM;AACzC,4BAA4B,wEAAY;AACxC,yBAAyB;AACzB;AACA;AACA;AACA;AACA,4BAA4B,yEAAa,CAAC,wEAAW,OAAO,wDAAO;AACnE;AACA;AACA,4BAA4B,yEAAa,CAAC,wEAAW,OAAO,wDAAO;AACnE;AACA;AACA;AACA;AACA;AACA,4BAA4B,yEAAa,CAAC,wEAAW,OAAO,wDAAO;AACnE;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,WAAW;AACzF,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA;AACA,8BAA8B,sEAAS;AACvC,qDAAqD,SAAS;AAC9D;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,wBAAwB,4DAAO;AAC/B,sCAAsC,wEAAW,SAAS,0DAAK;AAC/D;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,sCAAsC,kFAAmB,qBAAqB,gBAAgB;AAC9F;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,aAAa,4DAAO;AACpB,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,6BAA6B,wEAAW,UAAU,mEAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,eAAe,oEAAO;AACtB;AACA;AACA,+BAA+B,oBAAoB;AACnD,gCAAgC,aAAa;AAC7C,oCAAoC,oBAAoB;AACxD,+BAA+B,WAAW;AAC1C;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mEAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,EAAE,8HAA8H;AAC/I;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,oEAAO,EAAE,qDAAqD;AACtE;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACS;;;;;;;;;;;;;ACnqEpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACjB;AACA;AACrC;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA,0CAA0C,oCAAoC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAO,EAAE,uBAAuB;AACxD,+BAA+B,mEAAM;AACrC;AACA;AACA,wBAAwB,iDAAO,EAAE,uBAAuB;AACxD,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACO;AACP;AACA,mBAAmB,mEAAM;AACzB;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC2G;AACQ;AAC/C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,4DAAO;AAC9B;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,qBAAqB,wEAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+BAA+B,0DAAK,gBAAgB,4EAA4E;AAChI,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0EAAQ,SAAS,4BAA4B;AACrE,wBAAwB,0EAAQ,SAAS,4BAA4B;AACrE;AACA;AACA;AACA,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,mBAAmB,sEAAS;AAC5B,uBAAuB,sEAAS;AAChC;AACA,YAAY,mEAAM;AAClB,SAAS;AACT,uEAAuE,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA,YAAY,mEAAM;AAClB,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA,qBAAqB,sEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6BAA6B,0EAAQ,SAAS,iDAAiD;AAC/F;AACA,sBAAsB,0EAAQ,SAAS,4CAA4C;AACnF,sBAAsB,0EAAQ,SAAS,gEAAgE;AACvG;AACA,oBAAoB,0EAAQ,SAAS,+CAA+C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0EAAQ,SAAS,6CAA6C;AAChF;AACA,sBAAsB,0EAAQ,SAAS,gEAAgE;AACvG;AACA,yBAAyB,0EAAQ,SAAS,6DAA6D;AACvG;AACA,wBAAwB,0EAAQ,SAAS,8DAA8D;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAAK,OAAO,mEAAmE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,YAAY,iEAAY;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA,gBAAgB,8EAAiB;AACjC,gBAAgB,sEAAS;AACzB;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACQ;;;;;;;;;;;;;ACtdnB;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AAC4G;AAClD;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS,cAAc,GAAG,eAAe,EAAE,gBAAgB,qBAAqB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,wEAAW;AACxD;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,qCAAqC;AACvE,oCAAoC,+EAAgB;AACpD;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,YAAY;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,iBAAiB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,KAAK,0DAAQ;AAC/B;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0DAAQ;AACa;;;;;;;;;;;;;ACpIvB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;;;;;;;;;;;;;ACH/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;AACC;AACE;AACG;AACR;AACD;AACK;AACD;AACG;;;;;;;;;;;;;ACXnC;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACuB;;;;;;;;;;;;;ACHvB;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACmF;AACM;AAC3B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU,eAAe,GAAG,qBAAqB,EAAE,gBAAgB,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C,wEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,uEAAkB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,EAAE,8HAA8H,EAAE,+DAAa;AAC9J;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,0DAAQ;AACM;;;;;;;;;;;;;AC1RhB;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACuH;AACpB;AACA;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,0BAA0B,6DAAQ,GAAG,gEAAW;AAChD;AACA;AACA;AACA;AACA;AACA,gCAAgC,8CAA8C;AAC9E;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,8EAAQ,gBAAgB,4CAA4C;AAChF;AACA;AACA,YAAY,8EAAQ,gBAAgB,4CAA4C;AAChF;AACA;AACA,YAAY,8EAAQ,gBAAgB,yCAAyC;AAC7E;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA,uDAAuD,uEAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAQ,gBAAgB,8BAA8B;AAC9D;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,QAAQ,wEAAW;AACnB;AACA,QAAQ,qEAAQ;AAChB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,qCAAqC,4DAAO;AAC5C;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,wEAAW;AAC3B,gBAAgB,8EAAQ,iBAAiB,UAAU,uEAAU,mDAAmD;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gBAAgB;AACrD;AACA,4CAA4C,2BAA2B,EAAE;AACzE;AACA,gBAAgB,iEAAY;AAC5B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,gBAAgB,8EAAQ,iBAAiB,kBAAkB;AAC3D,gBAAgB,wEAAW;AAC3B,gBAAgB,8EAAQ,iBAAiB,UAAU,uEAAU,eAAe;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,eAAe;AACpD,gBAAgB,iEAAY;AAC5B;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,YAAY,8EAAQ,gBAAgB,gGAAgG;AACpI;AACA;AACA,YAAY,8EAAQ,gBAAgB,qGAAqG;AACzI;AACA;AACA,YAAY,8EAAQ,gBAAgB,4CAA4C;AAChF;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAK,iBAAiB,8CAA8C;AAC1G,kCAAkC,0DAAK,gBAAgB,8CAA8C;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA,oBAAoB,qEAAQ,yCAAyC,4DAAO;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC,wBAAwB,qEAAQ;AAChC;AACA;AACA,wBAAwB,wEAAW;AACnC,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,8CAA8C;AAC1F;AACA,wBAAwB,8EAAiB;AACzC,wBAAwB,wEAAW;AACnC,wBAAwB,wEAAW;AACnC,wBAAwB,8EAAQ,WAAW,sCAAsC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAO;AACxB;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,oBAAoB,4DAAO;AAC3B;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACQ;;;;;;;;;;;;;AC3sBnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACsB;;;;;;;;;;;;;ACHtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACuI;AACxC;AACd;AAC0D;AAC9C;AACX;AACrC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,uDAAuD;AACxE;AACA;AACA,QAAQ,oEAAO,EAAE,wDAAwD;AACzE;AACA;AACA,CAAC,CAAC,kEAAa;AACiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA,mBAAmB,4DAAO;AAC1B;AACA,QAAQ,8EAAQ,gBAAgB,UAAU,uEAAU,wBAAwB,uEAAU,eAAe;AACrG;AACA,QAAQ,uEAAU,gBAAgB,yEAAyE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kDAAkD,sDAAsD,oBAAoB,EAAE;AAC9H,4EAA4E,wEAAW;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK,cAAc,8EAAK;AACxC,oCAAoC,uCAAuC;AAC3E;AACA,SAAS;AACT;AACA,uDAAuD,yBAAyB;AAChF,iFAAiF,wBAAwB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK,CAAC,mEAAM,sCAAsC,8EAAK,CAAC,mEAAM;AAC3E;AACA,2BAA2B,mEAAM;AACjC,iBAAiB,8EAAK;AACtB,gBAAgB,yEAAY,gBAAgB,0BAA0B;AACtE;AACA;AACA,gBAAgB,sEAAS;AACzB,+BAA+B,mEAAM;AACrC,0DAA0D,iEAAiE;AAC3H,6BAA6B,mEAAM;AACnC,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAK;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B,aAAa,8EAAK;AAClB,YAAY,yEAAY,gBAAgB,0BAA0B;AAClE;AACA,YAAY,sEAAS;AACrB,2BAA2B,mEAAM;AACjC,4BAA4B,mEAAM;AAClC,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B,aAAa,8EAAK;AAClB,mCAAmC,0DAAK,eAAe,sCAAsC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA,4DAA4D,uBAAuB;AACnF;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,sEAAsE;AACtE,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,2DAA2D,+CAA+C,iBAAiB,EAAE;AAC7H;AACA,oBAAoB,sEAAS;AAC7B,iBAAiB;AACjB;AACA;AACA,yBAAyB,wDAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,uEAAU,eAAe,6BAA6B;AAC9D;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B,sBAAsB,sEAAS;AAC/B;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA,oBAAoB,qEAAQ;AAC5B,oBAAoB,uEAAU,oBAAoB,yEAAyE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,mCAAmC,0DAAK,eAAe,sCAAsC;AAC7F;AACA;AACA;AACA;AACA,sBAAsB,sEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB,8EAAK,iBAAiB,8EAAK;AAClD,uBAAuB,8EAAK,iBAAiB,8EAAK;AAClD,iBAAiB,8EAAK,2BAA2B,8EAAK,iBAAiB,8EAAK;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uEAAkB;AACxC;AACA;AACA,oCAAoC,8EAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8BAA8B,yBAAyB,EAAE;AAC9G;AACA,6BAA6B,8EAAK;AAClC,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oDAAoD,2BAA2B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA,gDAAgD,IAAI;AACpD;AACA,mDAAmD,wCAAwC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAS;AACpC,6DAA6D,0CAA0C,EAAE;AACzG;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B,sBAAsB,mEAAM;AAC5B,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAS;AAClD;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA,sBAAsB,sEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAS;AACxB;AACA;AACA,QAAQ,uEAAU,gBAAgB,sEAAsE;AACxG;AACA;AACA,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA,gBAAgB,8EAAQ,UAAU,yBAAyB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAQ,UAAU,gCAAgC;AAClE;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA,gBAAgB,8DAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,8EAAK,aAAa,8EAAK;AACnC;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA,uEAAuE,IAAI,8EAAK;AAChF;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAS;AACzB;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,gFAAgF,yCAAyC,EAAE;AAC3H;AACA;AACA;AACA;AACA,iFAAiF,2CAA2C,EAAE;AAC9H;AACA;AACA;AACA,qEAAqE,yCAAyC,EAAE;AAChH;AACA;AACA;AACA,4CAA4C,sEAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAkB;AAC9C;AACA;AACA,yBAAyB,oEAAO;AAChC;AACA;AACA,aAAa,8EAAK;AAClB,uCAAuC;AACvC;AACA,aAAa,8EAAK;AAClB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8EAAK;AAC5C;AACA,sBAAsB,uEAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,wEAAW;AACnB;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,kCAAkC,8FAA8F;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,2CAA2C,mEAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAQ,eAAe,qEAAqE;AAChH;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB,YAAY,8EAAQ,gBAAgB,mBAAmB;AACvD,YAAY,8EAAQ,eAAe,qEAAqE;AACxG;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC,+BAA+B,gBAAgB;AAC/C,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mEAAM;AACpC;AACA;AACA;AACA,gCAAgC;AAChC,qBAAqB;AACrB;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,eAAe,kCAAkC;AACrE;AACA;AACA,YAAY,8EAAQ,eAAe,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B,kBAAkB,mEAAM;AACxB,wBAAwB,mEAAM;AAC9B;AACA,YAAY,8EAAQ,OAAO,0BAA0B;AACrD,4BAA4B,8EAAK;AACjC;AACA,gBAAgB,8EAAQ,OAAO,iEAAiE;AAChG;AACA;AACA,gBAAgB,8EAAQ,OAAO,wBAAwB;AACvD;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC,gBAAgB,8EAAQ,SAAS,+DAA+D;AAChG;AACA;AACA,gBAAgB,8EAAQ,OAAO,0BAA0B;AACzD;AACA,2BAA2B,8EAAK;AAChC;AACA,gBAAgB,8EAAQ,OAAO,8FAA8F;AAC7H;AACA;AACA,gBAAgB,8EAAQ,OAAO,kCAAkC;AACjE;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D,sBAAsB,sEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,YAAY,uEAAU,OAAO,0DAA0D;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,QAAQ,uEAAU,gBAAgB,8BAA8B;AAChE;AACA,gBAAgB,mEAAM;AACtB,yCAAyC,mEAAM;AAC/C,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAM;AAChC;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,aAAa,8EAAK;AAClB,mCAAmC,0DAAK,eAAe,sCAAsC;AAC7F;AACA,6BAA6B,mEAAc,gBAAgB,qEAAqE;AAChI,gCAAgC,mEAAc;AAC9C;AACA,yBAAyB,4DAA4D;AACrF;AACA,SAAS;AACT;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA,aAAa,8EAAK,kBAAkB,8EAAK;AACzC;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,sCAAsC,oEAAO;AAC7C;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,sEAAS;AAChF,+CAA+C,wBAAwB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B,sBAAsB,mEAAM;AAC5B,aAAa,8EAAK;AAClB;AACA;AACA,mBAAmB,oEAAO;AAC1B,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA,mCAAmC,sEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA,sDAAsD,8EAAK;AAC3D;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B,mCAAmC,8EAAK;AACxC,yBAAyB,mEAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,0CAA0C,yDAAI,SAAS,+BAA+B;AACtF;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA,gCAAgC,8EAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAM;AACxC,kCAAkC,mEAAM;AACxC;AACA,oCAAoC,8EAAK;AACzC,4BAA4B,8EAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8EAAK;AAC7D,mEAAmE,8EAAK;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mEAAM;AAC1C;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B,0BAA0B,8DAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA,gEAAgE,8EAAK;AACrE;AACA;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC;AACA,gEAAgE,8EAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,gBAAgB,qEAAQ;AACxB;AACA,YAAY,wEAAW;AACvB,iBAAiB,8EAAK;AACtB,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,UAAU,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA,sBAAsB,sEAAS;AAC/B,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,gBAAgB,OAAO;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA,6BAA6B,sEAAS;AACtC;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAK;AAC1C;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAK;AAC3B,oBAAoB,8EAAK,+CAA+C,8EAAK;AAC7E;AACA;AACA;AACA,yCAAyC,8EAAK,kBAAkB,8EAAK;AACrE;AACA;AACA;AACA,gCAAgC;AAChC,qBAAqB;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,kBAAkB,sEAAS;AAC3B,YAAY,8EAAK;AACjB;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAM,iEAAiE,mEAAM;AAC1G,qBAAqB,8EAAK;AAC1B,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,qCAAqC,sEAAS;AAC9C;AACA;AACA;AACA;AACA,oBAAoB,sEAAS;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,mBAAmB,sEAAS;AAC5B,YAAY,8EAAK;AACjB;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAS;AAC7B;AACA;AACA,2CAA2C,QAAQ;AACnD;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wBAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,eAAe,MAAM;AACrB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B,sBAAsB,sEAAS;AAC/B,uBAAuB,mEAAM;AAC7B;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAK;AACnC,gBAAgB,mEAAM;AACtB;AACA;AACA,+BAA+B,8EAAK;AACpC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA,sCAAsC,uBAAuB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAK;AAC/B,sCAAsC,sEAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,8EAAQ,gBAAgB,QAAQ,uEAAU,iBAAiB;AAC/E;AACA;AACA,oBAAoB,8EAAQ,gBAAgB,SAAS,uEAAU,kBAAkB;AACjF;AACA;AACA;AACA,oDAAoD,8EAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB,gBAAgB,mEAAM;AACtB;AACA,2BAA2B,8EAAK,iBAAiB,8EAAK;AACtD,2BAA2B,8EAAK,iBAAiB,8EAAK;AACtD;AACA,yDAAyD,8BAA8B,yBAAyB,EAAE;AAClH,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wDAAwD,2BAA2B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,kDAAkD,IAAI;AACtD;AACA,wDAAwD,sCAAsC;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8EAAK;AACpD;AACA,8BAA8B,uEAAkB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,aAAa;AACb;AACA;AACA,aAAa;AACb,kDAAkD,gDAAgD,iBAAiB,EAAE;AACrH;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACI;;;;;;;;;;;;;ACxxEf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACgF;AACgD;AACxC;AAC4C;AAC3B;AAC1D;AACY;AACV;AACJ;AACA;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,CAAC,CAAC,kEAAa;AACC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,sBAAsB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK,SAAS,8EAAK,uBAAuB,8EAAK;AAChE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAc;AAC3C;AACA;AACA,SAAS;AACT,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAK,iBAAiB,sEAAS;AACvD;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,qBAAqB,oEAAO;AAC5B,2BAA2B,sEAAS;AACpC,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,CAAC,mEAAM,KAAK,EAAE;AAC9G;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAS;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAO;AAC5C;AACA,4BAA4B,sEAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sEAAS;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAS;AACxC;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kKAAkK,sEAAS;AAC3K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAK,CAAC,oEAAO;AAC3C;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAO;AAC1B,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA,uCAAuC,iCAAiC;AACxE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,sEAAS;AACrB;AACA,yBAAyB,iCAAiC;AAC1D;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gCAAgC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B,qBAAqB,uEAAU;AAC/B,YAAY,4DAAO;AACnB,YAAY,8EAAQ,gBAAgB,mBAAmB;AACvD;AACA,QAAQ,8EAAQ,gBAAgB,iBAAiB;AACjD;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,gBAAgB,WAAW,uEAAU,wBAAwB,uEAAU,cAAc;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wDAAO,EAAE,yDAAyD;AAC1G;AACA;AACA,wCAAwC,wDAAO,EAAE,yDAAyD;AAC1G;AACA;AACA,YAAY,8EAAQ,gBAAgB,qBAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAS;AAC/B,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK,aAAa,8EAAK,gBAAgB,sEAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB;AACA;AACA;AACA;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sEAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAQ,gBAAgB,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sEAAS;AAC/C,oBAAoB,sEAAS;AAC7B;AACA;AACA;AACA,oBAAoB,sEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAQ,MAAM,wCAAwC;AACtE;AACA;AACA,gBAAgB,8EAAQ,MAAM,wCAAwC;AACtE;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,sBAAsB,sEAAS;AAC/B,wCAAwC,QAAQ;AAChD;AACA;AACA,gBAAgB,8EAAQ,eAAe,kBAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb,sDAAsD,uDAAuD;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,gBAAgB,eAAe;AACnD;AACA,4BAA4B,4DAAK;AACjC;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,4CAA4C,sBAAsB,IAAI;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,YAAY,kCAAkC;AAClE,YAAY,8EAAQ,YAAY,uDAAuD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAQ,kBAAkB,gCAAgC;AAClE;AACA;AACA;AACA;AACA,uEAAuE,gFAAiB;AACxF;AACA;AACA,QAAQ,sEAAS;AACjB;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,kBAAkB,mCAAmC;AACzE;AACA;AACA;AACA,YAAY,8EAAQ,kBAAkB,2FAA2F;AACjI;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sEAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,6BAA6B,QAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAQ,YAAY,8CAA8C;AACtF;AACA;AACA,oBAAoB,8EAAQ,YAAY,6CAA6C;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAQ,UAAU,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAQ,YAAY,8CAA8C;AAC1F;AACA;AACA,wBAAwB,8EAAQ,YAAY,6CAA6C;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sEAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E,YAAY,4DAAO,yBAAyB,4DAAO;AACnD;AACA;AACA,iDAAiD,wCAAwC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAS;AACjC;AACA;AACA;AACA,YAAY,sEAAS;AACrB;AACA,gCAAgC,8EAAK;AACrC,kBAAkB,8EAAK,kDAAkD,sEAAS;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAQ,MAAM,iBAAiB;AAC3C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,sBAAsB,8EAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAQ,MAAM,0CAA0C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sEAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,0BAA0B;AAC3E,iDAAiD,4BAA4B;AAC7E,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C,gBAAgB,QAAQ;AACxB;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,8DAA8D,SAAS;AACvE;AACA;AACA;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wEAAW,0BAA0B,qEAAQ;AACpE;AACA;AACA;AACA;AACA,oBAAoB,8EAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B,gBAAgB,OAAO;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA,SAAS;AACT,yCAAyC,qBAAqB;AAC9D;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,yBAAyB,sEAAS;AAClC;AACA;AACA;AACA,oBAAoB,8EAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA,iCAAiC,sEAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0CAA0C;AAC1D;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,uCAAuC,sEAAS;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA,iCAAiC,sEAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK,cAAc,8EAAK;AACzC;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,8EAAK;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAgB;AAC7C;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA,yCAAyC;AACzC;AACA,iBAAiB,8EAAK;AACtB;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qDAAqD,wEAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE;AACA;AACA;AACA;AACA,gDAAgD,wEAAW;AAC3D,iDAAiD,+BAA+B;AAChF;AACA,0DAA0D,uEAAkB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAM,EAAE,0CAA0C;AAC3E;AACA;AACA;AACA,YAAY,8EAAQ,OAAO,UAAU,uEAAU,cAAc;AAC7D;AACA;AACA;AACA;AACA;AACA,kDAAkD,sBAAsB;AACxE;AACA;AACA,kDAAkD,uEAAkB;AACpE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B,gBAAgB,aAAa;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8EAAK;AACzC;AACA;AACA,4DAA4D,sEAAS;AACrE;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAQ,QAAQ,UAAU,uEAAU,iBAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAQ,gBAAgB,WAAW,uEAAU,kBAAkB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,QAAQ;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sEAAS;AAChD;AACA;AACA;AACA;AACA,6CAA6C,sEAAS;AACtD;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B,oBAAoB,8EAAK;AACzB;AACA,qDAAqD,sEAAS;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACQ;;;;;;;;;;;;;ACtoEnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;;;;;;;;;;;;;ACH3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACmG;AACJ;AACpB;AACJ;AACX;AACV;AAC2E;AACnE;AAC8D;AACvE;AAC4B;AAC9B;AACkC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAO,EAAE,qDAAqD;AACtE;AACA;AACA,QAAQ,oEAAO,EAAE,uDAAuD;AACxE;AACA;AACA,CAAC,CAAC,kEAAa;AACkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,8DAAS,GAAG;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB,gCAAgC,oBAAoB;AACpD;AACA,YAAY,8EAAK;AACjB,gCAAgC,mBAAmB;AACnD;AACA,YAAY,8EAAK;AACjB,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6DAAQ,GAAG,gEAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yEAAY;AACpC;AACA;AACA;AACA;AACA,4BAA4B,yEAAY;AACxC;AACA;AACA,qBAAqB,6DAAQ,GAAG,gEAAW;AAC3C;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,gEAAW;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oDAAoD,WAAW;AAC/D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oDAAoD,WAAW;AAC/D,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA,wBAAwB,0DAAK;AAC7B;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAQ;AAChB,aAAa,8EAAK,YAAY,8EAAK;AACnC;AACA;AACA;AACA;AACA;AACA,2CAA2C,qEAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gEAAW,iCAAiC,0DAAK;AACtF,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAW;AACvD,6CAA6C,0DAAK;AAClD,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D;AACA,yCAAyC,gEAAW;AACpD,yCAAyC,0DAAK;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gEAAW;AACrD,yCAAyC,0DAAK;AAC9C,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gEAAW;AAC1F;AACA,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qEAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAW;AAC5C,iCAAiC,0DAAK;AACtC;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sEAAS;AACrC;AACA,uBAAuB,0BAA0B;AACjD,uBAAuB,oEAAO;AAC9B;AACA;AACA,0CAA0C,gEAAW;AACrD,qCAAqC,0DAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAc,4BAA4B,4BAA4B;AACpG;AACA,uBAAuB,mEAAM;AAC7B;AACA,2FAA2F,8EAAK;AAChG,6BAA6B,qEAAQ;AACrC;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,sBAAsB,8EAAK;AAC3B,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B,QAAQ,kFAAkB;AAC1B;AACA;AACA;AACA,0BAA0B,qEAAQ;AAClC,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD,2BAA2B,eAAe;AAC1C;AACA,8DAA8D,8EAAK,CAAC,qEAAQ,2BAA2B,8EAAK,CAAC,qEAAQ;AACrH;AACA;AACA;AACA,+DAA+D,8EAAK,CAAC,qEAAQ;AAC7E;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS;AACjD,uDAAuD,8EAAK,CAAC,qEAAQ;AACrE;AACA;AACA,iBAAiB,8EAAK,CAAC,qEAAQ,8BAA8B,8EAAK,CAAC,qEAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAK;AAChC,iBAAiB,8DAAQ;AACzB;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAQ,qBAAqB,8DAAQ;AACxD;AACA;AACA;AACA;AACA,qBAAqB,sEAAS;AAC9B,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA,qBAAqB,sEAAS;AAC9B,uBAAuB,mBAAmB;AAC1C,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA,qBAAqB,sEAAS;AAC9B;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,4BAA4B,sEAAS;AACrC;AACA,2BAA2B,sBAAsB;AACjD;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sEAAS;AACzC,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA,+BAA+B,sEAAS;AACxC,qCAAqC,sEAAS;AAC9C,wBAAwB,sEAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,iBAAiB,8EAAK;AACtB,oCAAoC,oEAAO;AAC3C;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,+BAA+B,mEAAM;AACrC;AACA,iBAAiB,8EAAK;AACtB,6BAA6B,sEAAS;AACtC;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA,yBAAyB,8EAAK,2BAA2B,8EAAK,CAAC,qEAAQ;AACvE,uCAAuC,qEAAQ;AAC/C;AACA;AACA;AACA,8DAA8D,wEAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,wEAAW;AAC7F;AACA;AACA;AACA;AACA,0DAA0D,wEAAW;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sEAAS;AAC1B,aAAa,8EAAK;AAClB,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uBAAuB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mEAAM;AACrC;AACA;AACA;AACA;AACA,6BAA6B,sEAAS;AACtC;AACA,mCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gEAAW,iCAAiC,0DAAK;AAChF;AACA;AACA;AACA;AACA,oDAAoD,mEAAM;AAC1D,4CAA4C,mEAAM;AAClD;AACA;AACA;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,gEAAW;AACtF;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA,wCAAwC,mEAAM;AAC9C;AACA;AACA;AACA,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA,gDAAgD,mEAAM;AACtD,wCAAwC,mEAAM;AAC9C;AACA,8CAA8C,mEAAM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA,sBAAsB,mEAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C,8EAAK;AACnE;AACA;AACA,sBAAsB,mEAAM;AAC5B,aAAa,8EAAiB;AAC9B;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA,kDAAkD,gEAAW;AAC7D;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD,gCAAgC,mEAAM;AACtC,yBAAyB,8EAAK;AAC9B,mCAAmC,mEAAM,mBAAmB,mEAAM;AAClE,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB,mEAAM;AAC1B,aAAa,8EAAK;AAClB,uBAAuB,mEAAM,mBAAmB,mEAAM;AACtD,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAS;AAC9B;AACA;AACA,gCAAgC,oBAAoB;AACpD,2BAA2B,kBAAkB;AAC7C,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA,oCAAoC,mEAAM;AAC1C,kCAAkC,mEAAM;AACxC;AACA;AACA;AACA,uCAAuC,oEAAO;AAC9C,yBAAyB,8EAAK;AAC9B,2CAA2C,mEAAM;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA,sCAAsC,mEAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA,oCAAoC,mEAAM;AAC1C,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA,kDAAkD,gEAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA,iBAAiB,mEAAM;AACvB;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD;AACA;AACA,gBAAgB,8EAAK,cAAc,8EAAK;AACxC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,kDAAkD,gEAAW;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,oDAAoD,WAAW;AAC/D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,qCAAqC,8DAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,kDAAkD,gEAAW;AAC7D;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,iCAAiC,8DAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8EAAK;AACzD;AACA;AACA,gCAAgC,gBAAgB;AAChD;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,YAAY;AAChE,iCAAiC,qEAAQ;AACzC;AACA,+BAA+B,qEAAQ;AACvC;AACA,8BAA8B,8EAAK,CAAC,qEAAQ;AAC5C,wDAAwD,qEAAQ;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,6CAA6C,YAAY;AACzD,iBAAiB,8EAAK,iBAAiB,8EAAK,CAAC,qEAAQ;AACrD,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC,gDAAgD,SAAS;AACzD;AACA;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK,4DAA4D,8EAAK;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA,oBAAoB,sEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA,gBAAgB,8CAA8C,8EAAK;AACnE;AACA;AACA,0DAA0D,4DAAO;AACjE;AACA;AACA;AACA;AACA;AACA,oEAAoE,oEAAO;AAC3E;AACA;AACA;AACA,sCAAsC,oEAAO;AAC7C;AACA;AACA;AACA,mBAAmB,mEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mEAAM;AACvB;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC,2BAA2B,mBAAmB;AAC9C;AACA;AACA,iCAAiC,mEAAM,mBAAmB,mEAAM;AAChE,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAS;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oEAAO,CAAC,oEAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA;AACA,iCAAiC,gEAAW,iCAAiC,0DAAK;AAClF,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gEAAW,iCAAiC,0DAAK;AACvF,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yBAAyB;AAC3D,8BAA8B,qEAAQ;AACtC;AACA;AACA;AACA,6CAA6C,8EAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,8EAAK;AACxE;AACA;AACA,kCAAkC,qEAAQ;AAC1C;AACA,oBAAoB,qEAAQ;AAC5B,6BAA6B,qEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO,CAAC,oEAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B,YAAY,8EAAK;AACjB,2BAA2B,mEAAM;AACjC;AACA,eAAe,8EAAK,WAAW,8EAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,SAAS,SAAS,sEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,SAAS,SAAS,sEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,sEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,sEAAS;AAC3B;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sEAAS;AACnC;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,aAAa,8EAAK,CAAC,oEAAO,4BAA4B,oEAAO;AAC7D;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA,sFAAsF,mEAAM,8BAA8B,mEAAM;AAChI;AACA;AACA,0BAA0B,mEAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAQ;AAC3B;AACA,eAAe,mEAAM;AACrB;AACA;AACA;AACA,gBAAgB,8BAA8B,8EAAK;AACnD;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA,4BAA4B,yDAAyD;AACrF;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB,YAAY,wEAAW;AACvB;AACA,aAAa,8EAAK;AAClB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA,sBAAsB,mEAAM;AAC5B;AACA,oDAAoD,+BAA+B,sBAAsB,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA,6BAA6B,mEAAM;AACnC,iCAAiC,4DAAK;AACtC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ;AAC/B;AACA;AACA,aAAa,mEAAM;AACnB;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B,oBAAoB,oEAAO;AAC3B,QAAQ,mEAAM;AACd,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB,qEAAQ;AAC9B,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA,0DAA0D,YAAY;AACtE,6BAA6B,qEAAQ;AACrC,qBAAqB,8EAAK,uBAAuB,8EAAK;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,4CAA4C,YAAY;AACxD,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF;AACA,kDAAkD,qEAAQ;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8DAAS;AACpC;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC,+BAA+B,oEAAO;AACtC,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAK,CAAC,mEAAM;AAChC,2DAA2D,qCAAqC;AAChG;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA,6DAA6D,6CAA6C;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,qEAAQ;AACxB,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,6CAA6C,YAAY,QAAQ,8EAAK,2BAA2B,4DAAO,uBAAuB,EAAE;AACjI;AACA,aAAa;AACb;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,2BAA2B,8DAAS;AACpC;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,mEAAM;AACd,QAAQ,wEAAW;AACnB;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B,uBAAuB,oEAAO;AAC9B,mBAAmB,mEAAM;AACzB,QAAQ,wEAAW;AACnB;AACA;AACA;AACA,gDAAgD,8EAAK;AACrD;AACA;AACA;AACA,yBAAyB,oEAAO;AAChC,+BAA+B,oEAAO;AACtC,2BAA2B,oEAAO;AAClC,yBAAyB,oEAAO;AAChC;AACA;AACA;AACA,yCAAyC,mEAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,sDAAsD,gEAAW;AACjE;AACA;AACA;AACA;AACA;AACA,6BAA6B,sEAAS;AACtC;AACA,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,uBAAuB,oEAAO;AAC9B,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B,2BAA2B,oEAAO;AAClC,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,2BAA2B,oEAAO;AAClC,2BAA2B,oEAAO;AAClC;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAK;AAC3B,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA,iBAAiB,mEAAM;AACvB,aAAa,8EAAK;AAClB;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA,YAAY,8EAAK;AACjB,gBAAgB,8EAAK;AACrB,gBAAgB,8DAAQ;AACxB;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA,qBAAqB,8DAAQ;AAC7B;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,8DAAQ;AACxB;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA,gBAAgB,8EAAK;AACrB,gBAAgB,8DAAQ;AACxB;AACA,uBAAuB,mEAAM;AAC7B;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA,gBAAgB,8DAAQ;AACxB,uBAAuB,mEAAM;AAC7B,gBAAgB,wEAAW;AAC3B;AACA,qBAAqB,8DAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAM;AACxC;AACA;AACA,aAAa,8EAAK;AAClB;AACA,gDAAgD,SAAS;AACzD;AACA;AACA,0CAA0C,mEAAM;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oEAAO;AACzC;AACA;AACA;AACA;AACA;AACA,sCAAsC,oEAAO;AAC7C;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA,2DAA2D,oEAAO;AAClE;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mEAAM;AACpD;AACA,wDAAwD,gEAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,6BAA6B,mEAAM;AACnC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA,yBAAyB,sEAAS;AAClC,+CAA+C,sBAAsB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAK;AAC/B;AACA,gDAAgD,SAAS;AACzD;AACA,2BAA2B,mEAAM,oBAAoB,mEAAM;AAC3D,qBAAqB,8EAAK;AAC1B;AACA;AACA,qCAAqC,mEAAM;AAC3C;AACA;AACA;AACA;AACA,8DAA8D,sEAAS;AACvE,4CAA4C,SAAS;AACrD;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,0BAA0B,8EAAK;AAC/B;AACA,gDAAgD,SAAS;AACzD;AACA,2BAA2B,mEAAM,mBAAmB,mEAAM;AAC1D,qBAAqB,8EAAK;AAC1B;AACA;AACA,mCAAmC,mEAAM;AACzC;AACA;AACA;AACA;AACA,8DAA8D,sEAAS;AACvE,4CAA4C,SAAS;AACrD;AACA,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C,qBAAqB,sEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC,2BAA2B,oEAAO;AAClC,aAAa,8EAAK;AAClB;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sEAAS;AAC1D;AACA;AACA,4BAA4B,oBAAoB;AAChD,qBAAqB,sEAAS;AAC9B;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD,qBAAqB,sEAAS;AAC9B,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA,yBAAyB,gEAAW;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD,6BAA6B,gEAAW;AACxC,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA,uBAAuB,mEAAM,iBAAiB,mEAAM;AACpD,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAQ;AACzB;AACA;AACA,0DAA0D,mEAAM;AAChE;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8EAAK;AAC3B,2BAA2B,kBAAkB;AAC7C,qBAAqB,8EAAK;AAC1B;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,2BAA2B,qEAAQ;AACnC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB,oBAAoB,8EAAK;AACzB,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD,yBAAyB,qEAAQ;AACjC;AACA;AACA,wDAAwD,gEAAW;AACnE;AACA,oCAAoC,qEAAQ;AAC5C,wBAAwB,8EAAK;AAC7B;AACA;AACA,4BAA4B,8EAAK;AACjC,sDAAsD,SAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,wDAAwD,gEAAW,MAAM,8EAAK,CAAC,qEAAQ;AACvF,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,8CAA8C,SAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA,iCAAiC,qEAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB,0BAA0B,8EAAK;AAC/B;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D;AACA;AACA;AACA,gDAAgD,aAAa;AAC7D;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK,SAAS,8EAAK;AAC/B;AACA;AACA,4CAA4C,YAAY;AACxD,2BAA2B,kBAAkB;AAC7C;AACA,qBAAqB,8EAAK;AAC1B;AACA;AACA;AACA,qDAAqD,8EAAK,CAAC,qEAAQ;AACnE,iCAAiC,qEAAQ;AACzC;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF,iCAAiC,qEAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAK;AAC7B;AACA,wBAAwB,8EAAK;AAC7B;AACA,wBAAwB,8EAAK;AAC7B;AACA,wBAAwB,8EAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA,iCAAiC,gEAAW,iCAAiC,0DAAK;AAClF,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,4CAA4C,YAAY;AACxD,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF,iCAAiC,qEAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAK;AAC1C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAO;AACvC;AACA;AACA,4BAA4B,oEAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB,QAAQ,4EAAa;AACrB;AACA,mBAAmB,4DAAO;AAC1B,SAAS;AACT,QAAQ,0EAAW;AACnB;AACA;AACA,QAAQ,0EAAW;AACnB;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAW,iCAAiC,0DAAK;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA,iCAAiC,qEAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qEAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,YAAY;AAC7D,yBAAyB,qEAAQ;AACjC;AACA;AACA;AACA;AACA,0DAA0D,8EAAK,CAAC,qEAAQ;AACxE,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,uDAAuD,gEAAW,KAAK,8EAAK,CAAC,qEAAQ;AACrF,gCAAgC,qEAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,qCAAqC,EAAE;AAC/E,yCAAyC,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA,wCAAwC,mDAAmD,EAAE;AAC7F,yCAAyC,4CAA4C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB,2BAA2B,EAAE;AACpE;AACA;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW;AAClD;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA,wCAAwC,gBAAgB,8EAAK,sDAAsD;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uCAAuC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6CAA6C;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE,wBAAwB,IAAI;AAC9C,gBAAgB,mBAAmB;AACnC,gBAAgB,SAAS;AACzB,eAAe,UAAU;AACzB;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD,8BAA8B,qEAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gEAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,qCAAqC,mEAAM;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,mCAAmC,mEAAM;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA,mBAAmB,8EAAK;AACxB;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC,gBAAgB,iBAAiB;AACjC,gBAAgB,OAAO;AACvB,eAAe,UAAU;AACzB;AACA;AACA;AACA,YAAY,8EAAK;AACjB;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA,gBAAgB,8EAAK;AACrB;AACA;AACA;AACA;AACA;AACA,8CAA8C,gEAAW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,iBAAiB,wBAAwB,GAAG;AAC5C;AACA;AACA,YAAY,8EAAK,YAAY,8EAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qEAAQ;AAC5C,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C,oBAAoB,8EAAK;AACzB;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAM,GAAG;AACnC;AACA;AACA,0BAA0B,mEAAM,GAAG;AACnC;AACA,YAAY,8EAAK;AACjB;AACA;AACA;AACA;AACA;AACA,uBAAuB,8DAAQ;AAC/B,iBAAiB,mEAAM;AACvB,yBAAyB,qEAAQ;AACjC,0DAA0D,8EAAK;AAC/D;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAM;AAC/B,6BAA6B,mEAAM;AACnC,uBAAuB,mEAAM;AAC7B,0BAA0B,mEAAM;AAChC;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,qEAAQ;AAC5B;AACA;AACA,oBAAoB,wEAAW;AAC/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D;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACO;AACP,qCAAqC,wBAAwB;AAC7D,qBAAqB,mEAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,qBAAqB;AAChC,WAAW,QAAQ;AACnB,aAAa;AACb;AACO;AACP;AACA;AACA,qCAAqC,wBAAwB;AAC7D,0BAA0B,SAAS,oBAAoB;AACvD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,iBAAiB;AAC5B,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,WAAW;AACtB,WAAW,iBAAiB;AAC5B,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA,mBAAmB,mEAAiB;AACpC,cAAc,mEAAiB;AAC/B,cAAc,mEAAiB;AAC/B,cAAc,mEAAiB;AAC/B,cAAc,mEAAiB;AAC/B;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,iBAAiB;AAC5B,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,iBAAiB;AAC5B,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB,WAAW,iBAAiB;AAC5B,WAAW,WAAW;AACtB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB;AACxC;AACA;;;;;;;;;;;;;AC/ZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC2B;AACC;;;;;;;;;;;;;ACJ5B;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,eAAe;AAC5B;AACO;AACP;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,WAAW;AACtB,aAAa,eAAe;AAC5B;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,eAAe;AAC1B,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;;;;;;;;;;;;ACvLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA;AACA;AACA,gCAAgC,0EAAa,SAAS,sEAAsE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,0EAAa;AACpC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,YAAY;AACzB;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAK;AACb;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,QAAQ,iEAAY;AACpB,yBAAyB,4DAAO;AAChC,QAAQ,iEAAY;AACpB;AACA;AACA,SAAS,8EAAK;AACd,uBAAuB,2BAA2B;AAClD;AACA,YAAY,iEAAY;AACxB,6BAA6B,4DAAO;AACpC,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA;AACA,kBAAkB,8EAAK;AACvB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA,0BAA0B,4DAAO;AACjC,yBAAyB,4DAAO;AAChC,kBAAkB,8EAAK;AACvB,qBAAqB,4DAAO;AAC5B,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB,SAAS,8EAAK;AACd;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAO;AACjC,yBAAyB,4DAAO;AAChC,kBAAkB,8EAAK;AACvB,IAAI,iEAAY;AAChB,IAAI,iEAAY;AAChB;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAK;AACnB;AACA;AACA,SAAS,8EAAK;AACd;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA,sBAAsB,8EAAK;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA,sBAAsB,8EAAK;AAC3B;AACA,eAAe,8EAAK;AACpB,yBAAyB,8EAAK;AAC9B;AACA,QAAQ,8EAAK;AACb,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA,aAAa,8EAAK;AAClB;AACA;AACA;AACA;AACA,SAAS,8EAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA,aAAa;AACb;AACO;AACP;AACA,mBAAmB,qBAAqB;AACxC,QAAQ,mEAAM;AACd;AACA;AACA,SAAS,8EAAK;AACd,uBAAuB,2BAA2B;AAClD,YAAY,mEAAM;AAClB;AACA;AACA;;;;;;;;;;;;;ACjhBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACqH;AACR;AACvB;AACwB;AAC3C;AAClB;AACsB;AACgC;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,CAAC,CAAC,kEAAa;AACQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,0BAA0B;AAC1B,wBAAwB,yDAAI;AAC5B;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,QAAQ,mEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,YAAY,mEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA,qBAAqB,8EAAiB,oBAAoB,8EAAiB;AAC3E;AACA;AACA,oBAAoB,8EAAiB,iBAAiB,8EAAiB,8BAA8B,8EAAiB;AACtH;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,YAAY,4DAAO;AACnB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAU,gBAAgB,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA;AACA;AACA,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,8EAAiB;AAChE;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA,YAAY,uEAAU,gBAAgB,kDAAkD;AACxF;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA,oEAAoE,uBAAuB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,4BAA4B,kDAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB,gBAAgB,8EAAiB;AACvE;AACA;AACA,qBAAqB,8EAAiB,+BAA+B,8EAAiB;AACtF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,2BAA2B,8DAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD,kCAAkC,8EAAiB;AACnD,wDAAwD,SAAS,mBAAmB,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA,2DAA2D,uBAAuB;AAClF;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA,qCAAqC,8DAAM;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,iDAAiD,8EAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,0DAA0D;AAC5F,qDAAqD,kEAAkE;AACvH;AACA;AACA;AACA,kBAAkB,8EAAiB;AACnC;AACA;AACA,uDAAuD,qEAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4DAAO,6CAA6C,8EAAiB;AACrH,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oDAAoD,qEAAQ;AAC5D,yBAAyB,oEAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,4BAA4B,qEAAQ;AACpC;AACA;AACA,+CAA+C,uCAAuC,gBAAgB;AACtG;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,6BAA6B,uEAAkB;AAC/C;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA,wBAAwB,uEAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D;AACA;AACA,YAAY,4DAAO,oCAAoC,8EAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ,wBAAwB,wEAAW;AACxE;AACA,aAAa,8EAAiB;AAC9B,YAAY,mEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wDAAwD;AAChH;AACA;AACA;AACA;AACA,QAAQ,uEAAU,gBAAgB,qCAAqC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,4DAA4D,wEAAwE;AACpI;AACA;AACA;AACA,uDAAuD,wCAAwC,iBAAiB,EAAE;AAClH,mCAAmC,8DAAM,EAAE,2DAA2D;AACtG;AACA,aAAa,8EAAiB;AAC9B,YAAY,oEAAO;AACnB;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,uDAAuD,2BAA2B;AAClF;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC,wBAAwB,4DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAQ;AACvB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAM;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,8CAA8C,8EAAiB;AAC/D;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,sDAAsD,8EAAiB;AACvE;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,0EAA0E,8EAAiB;AAC3F,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,WAAW,uEAAU,kBAAkB;AAC5F;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,UAAU,uEAAU,iBAAiB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA,mCAAmC,iBAAiB;AACpD,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8EAAiB;AACzD,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,sBAAsB,qEAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kEAAW;AACnB,QAAQ,mEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,wEAAW,IAAI,8EAAiB;AAC5C;AACA;AACA,aAAa,8EAAiB;AAC9B,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,QAAQ,wEAAW;AACnB,aAAa,8EAAiB;AAC9B,YAAY,wEAAW;AACvB;AACA,aAAa,8EAAiB,sBAAsB,8EAAiB;AACrE;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,+BAA+B,mCAAmC;AAClE;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB;AACA,wCAAwC,8EAAiB;AACzD,2BAA2B,yBAAyB;AACpD;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,8EAAiB;AAC7E,iBAAiB,8EAAiB;AAClC;AACA;AACA,8BAA8B,qEAAQ;AACtC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA,wBAAwB,wEAAW;AACnC,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB,iBAAiB,yBAAyB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,6CAA6C,8EAAiB;AAC9D;AACA;AACA,YAAY,qEAAQ;AACpB,uCAAuC,8EAAiB;AACxD;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,wEAAW;AACvB,wCAAwC,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,IAAI;AACtB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,oEAAO,EAAE,2BAA2B,EAAE,yDAAY;AAC1D;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACO;AAClB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,4BAA4B,0EAAa,SAAS,8BAA8B;AAChF;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,aAAa;AACb;AACA,2CAA2C;AAC3C,2BAA2B,wBAAwB;AACnD;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,4BAA4B,0EAAa,SAAS,gCAAgC;AAClF;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,aAAa;AACb,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA,aAAa;AACb;AACA,6CAA6C,YAAY,wBAAwB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C,2BAA2B,8EAAiB;AAC5C,2BAA2B,8EAAiB;AAC5C,iCAAiC,8EAAiB;AAClD,iCAAiC,8EAAiB;AAClD,iCAAiC,8EAAiB;AAClD,4BAA4B,8EAAiB,uCAAuC;AACpF,qCAAqC,8EAAiB;AACtD,aAAa;AACb,4BAA4B,8EAAiB;AAC7C,0BAA0B,8EAAiB;AAC3C,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,aAAa;AACb,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,CAAC,sCAAsC;;;;;;;;;;;;;ACnzDvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyB;;;;;;;;;;;;;ACHzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC8B;AACC;AACA;AACC;AACA;;;;;;;;;;;;;ACPhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACwB;;;;;;;;;;;;;ACHxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACwG;AACnC;AACtB;AACwC;AACV;AAChB;AACT;AACO;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,aAAa,YAAY;AACrE,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B,eAAe,WAAW;AAC1B;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,UAAU,uEAAU,iBAAiB;AAC1F;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,WAAW,uEAAU,kBAAkB;AAC5F;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAU;AACrC;AACA;AACA,4BAA4B,uEAAU;AACtC;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gBAAgB;AACtG;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,YAAY,4DAAO;AACnB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,gBAAgB;AACtG;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,sDAAsD,8EAAiB;AACvE;AACA,4BAA4B,4BAA4B;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,YAAY;AAC3B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,aAAa,8EAAiB;AAC3D;AACA;AACA;AACA,yBAAyB;AACzB;AACA,wBAAwB,0EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,wBAAwB,uFAA8B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAI;AACZ;AACA;AACA,YAAY,mEAAS;AACrB,gBAAgB,8EAAiB;AACjC,2BAA2B,6DAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB,iBAAiB,8EAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe,eAAe;AAC9B,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD,iCAAiC,8EAAiB;AAClD;AACA,YAAY,8EAAiB,gBAAgB,wBAAwB;AACrE;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAS;AACzB;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,gBAAgB,8DAAS;AACzB;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE,6FAA6F,uEAAU;AACvG,sBAAsB,uEAAU;AAChC;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,kBAAkB,8EAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ,EAAE,uBAAuB;AACzC;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACM;AACjB;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW,cAAc;AACzB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW,cAAc;AACzB;AACA;AACO;AACP,6BAA6B,iBAAiB;AAC9C;AACA,mBAAmB,oBAAoB;AACvC;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnyBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,6BAA6B,sBAAsB,YAAY;AACxF;AACA;AACA,YAAY,OAAO;AACnB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB,YAAY,OAAO;AACnB,cAAc;AACd;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2DAA2D;AACnF;AACA;AACA,WAAW,YAAY;AACvB,WAAW,kBAAkB;AAC7B,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB,kDAAkD,kEAAa;AACvG;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA,SAAS,8EAAiB,oBAAoB,8EAAiB;AAC/D,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,qBAAqB,8EAAiB;AACtC;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa,YAAY;AACzB;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA;AACA,gDAAgD;AAChD,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA,cAAc,8EAAiB;AAC/B,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sEAAS,gDAAgD,sEAAS;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB,mBAAmB;AACjE;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,oBAAoB;AAChC,cAAc;AACd;AACA;AACO;AACP,uBAAuB,8EAAiB,kDAAkD,kEAAa;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACA;AACA,SAAS,8EAAiB;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACx2BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC0B;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACkG;AACD;AACI;AACX;AACA;AACnD;AACgB;AACF;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,EAAE,4CAA4C;AAC9D;AACA;AACA,QAAQ,qEAAQ,EAAE,6CAA6C;AAC/D;AACA;AACA,CAAC,CAAC,kEAAa;AACM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,6CAA6C;AAC1F,mDAAmD,mDAAmD;AACtG,mDAAmD,mDAAmD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D;AACA,4BAA4B,kDAAK;AACjC;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,0EAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAS;AAC9B;AACA,QAAQ,wEAAW;AACnB;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B,4BAA4B,mEAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mEAAM;AACnC;AACA,YAAY,qEAAQ;AACpB;AACA,uBAAuB,8EAAiB;AACxC;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,UAAU,uEAAkB,yBAAyB;AAC7F;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAO;AAC9C,iDAAiD;AACjD;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF;AACA,QAAQ,iEAAY,eAAe,4DAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU,UAAU,0EAA0E;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,uCAAuC,sEAAS;AAChD,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,oBAAoB,wEAAW,oCAAoC,wEAAW;AAC9E;AACA;AACA;AACA,qBAAqB;AACrB,wBAAwB,uEAAU,iBAAiB,WAAW,uEAAU,kBAAkB,kBAAkB;AAC5G,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAO;AACvB,gBAAgB,qEAAQ;AACxB;AACA;AACA,oDAAoD,uEAAU;AAC9D;AACA,yEAAyE,qBAAqB;AAC9F;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAc;AAC1B;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA;AACA,4DAA4D,8EAAiB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mBAAmB,6DAAG,8CAA8C,oBAAoB;AACxF;AACA;AACA,2BAA2B,mEAAM;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA,qDAAqD,8EAAiB;AACtE;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oEAAO;AAChD;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAAc;AACtB,QAAQ,wEAAW;AACnB,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oEAAO;AACtC;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY,mBAAmB,4DAAO;AACtD;AACA;AACA,oBAAoB,4DAAO;AAC3B,2CAA2C,0DAAK;AAChD;AACA;AACA,qBAAqB;AACrB,oBAAoB,iEAAY,mBAAmB,4DAAO;AAC1D;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,uBAAuB,4DAAO;AAC9B;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,2CAA2C,sEAAS;AACpD,uDAAuD,0BAA0B;AACjF;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA,oBAAoB,iEAAY;AAChC,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY,sBAAsB,4DAAO;AACzD;AACA;AACA,oBAAoB,4DAAO;AAC3B;AACA;AACA;AACA,oBAAoB,iEAAY,sBAAsB,4DAAO;AAC7D;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA,aAAa,8EAAiB;AAC9B,2CAA2C,sEAAS;AACpD,uDAAuD,0BAA0B;AACjF;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,yDAAyD,2BAA2B;AACpF;AACA;AACA,oBAAoB,iEAAY;AAChC;AACA,4CAA4C,4DAAO;AACnD,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,aAAa;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA,uFAAuF,uEAAU;AACjG;AACA;AACA;AACA;AACA;AACA,uDAAuD,uEAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,mEAAM;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,QAA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W;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC,wBAAwB,gEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gEAAW;AAC/B;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA,oBAAoB,gEAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,gEAAW;AAC/B;AACA;AACA;AACA;AACA,oBAAoB,gEAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAW;AAC1B;AACA;AACA,CAAC;AACkB;;;;;;;;;;;;;ACjOnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACgC;;;;;;;;;;;;;ACHhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACiC;AACS;AACX;;;;;;;;;;;;;ACL/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACmG;AACP;AAC/B;AACJ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,OAAO;AACpB;AACO;AACP,kCAAkC,4BAA4B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,aAAa,iFAAoB;AAC7D,mBAAmB,qEAAQ,YAAY,iFAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA,aAAa,qEAAQ,aAAa,6DAAQ;AAC1C;AACA,aAAa,qEAAQ,YAAY,6DAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+EAAmB,CAAC,qEAAQ;AACvD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+EAAmB,CAAC,qEAAQ;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+EAAmB,CAAC,qEAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+EAAmB,CAAC,qEAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,WAAW,aAAa;AACxB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACO;AACP,kCAAkC,8BAA8B;AAChE,8BAA8B,iBAAiB;AAC/C,kCAAkC,4BAA4B;AAC9D,iCAAiC,oBAAoB;AACrD,iCAAiC,oBAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC,iBAAiB,oEAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oCAAoC,8EAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,8DAAU;AAC9F;AACA;AACA;AACA;AACA,8GAA8G,8DAAU;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAO;AACvC,8BAA8B,mEAAO;AACrC;AACA,0BAA0B,qEAAS;AACnC,8BAA8B,qEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,qEAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA,wDAAwD,8DAAU;AAClE;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA,eAAe,8EAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6BAA6B,EAAE;AAC9F;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,kCAAkC,+BAA+B;AACjE,qCAAqC,oCAAoC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,2DAA2D,6BAA6B,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,yBAAyB,oCAAoC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA,0BAA0B,+BAA+B;AACzD;AACA;AACA,mEAAmE,6BAA6B,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,0BAA0B,sCAAsC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAU;AACtC;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,aAAa;AAC1B;AACA;AACO;AACP;AACA,mBAAmB,6DAAO;AAC1B;AACA,eAAe,+DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxlDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACoC;AACH;;;;;;;;;;;;;ACJjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACkG;AAC8B;AACvE;AACD;AACD;AACO;AACC;AACmE;AACtE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB;AACvD;AACA;AACA,6BAA6B,yDAAI;AACjC,4BAA4B,uEAAe;AAC3C;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,oCAAoC,kCAAkC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe,mBAAmB,6BAA6B,oBAAoB,SAAS,EAAE;AAClI;AACA;AACA;AACA;AACA,6CAA6C,QAAQ,wEAAW,+BAA+B,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,yCAAyC,kBAAkB;AAC3D;AACA;AACA;AACA,sCAAsC,yCAAyC;AAC/E,0CAA0C,2CAA2C;AACrF,uCAAuC,+CAA+C;AACtF,yCAAyC,mCAAmC;AAC5E;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA,YAAY,sEAAS;AACrB;AACA;AACA,YAAY,sEAAS;AACrB;AACA;AACA;AACA,6DAA6D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC7I;AACA;AACA,4DAA4D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC5I;AACA;AACA,6DAA6D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC7I;AACA;AACA,4DAA4D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC5I;AACA;AACA,6DAA6D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC7I;AACA;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA,6DAA6D,QAAQ,qEAAQ,8DAA8D,EAAE;AAC7I;AACA;AACA,iEAAiE,QAAQ,qEAAQ,8DAA8D,EAAE;AACjJ;AACA;AACA,kEAAkE,QAAQ,qEAAQ,8DAA8D,EAAE;AAClJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,6BAA6B,8CAA8C;AAC3E;AACA,oCAAoC,sDAAsD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,2BAA2B,sEAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,sEAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B,sEAAY;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAO;AACtB;AACA;AACA;AACA;AACA,gCAAgC,oEAAU;AAC1C;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ,wBAAwB,iFAAoB;AACzE;AACA;AACA,qBAAqB,qEAAQ,0GAA0G,6DAAQ;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA,6BAA6B,8DAAM,EAAE,4CAA4C;AACjF;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,8BAA8B,mEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,6BAA6B,mEAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qEAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,qEAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA,SAAS;AACT;AACA,kCAAkC,qEAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAsD;AACnF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8DAA8D;AACrF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qEAAqE;AAClG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,2BAA2B,iFAAoB;AAC9E;AACA;AACA;AACA,uBAAuB,qEAAQ,kBAAkB,6DAAQ;AACzD;AACA,6CAA6C,uBAAuB;AACpE;AACA,sBAAsB,qEAAQ;AAC9B,0BAA0B,mCAAmC,+EAAmB,wCAAwC;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,kBAAkB,iFAAoB;AACrE;AACA;AACA;AACA,uBAAuB,qEAAQ,kBAAkB,6DAAQ;AACzD;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA,sBAAsB,+EAAmB,CAAC,qEAAQ;AAClD;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G,mBAAmB;AAC/H;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA;AACA,mCAAmC,kBAAkB;AACrD;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA,0CAA0C,qCAAqC;AAC/E,2CAA2C,gBAAgB;AAC3D;AACA;AACA,0CAA0C,gBAAgB;AAC1D,6CAA6C,qCAAqC;AAClF,yDAAyD,gBAAgB;AACzE;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kCAAkC;AAC7E;AACA;AACA,iDAAiD,+BAA+B;AAChF;AACA;AACA,oDAAoD,+BAA+B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wCAAwC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mFAA2B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iCAAiC;AAC/D,eAAe,uEAAe;AAC9B;AACA;AACA,mBAAmB,8EAAiB;AACpC,eAAe,gEAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA,2CAA2C,cAAc;AACzD;AACA;AACA;AACA,0BAA0B,6EAAqB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,iBAAiB;AACjB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,gDAAgD,WAAW;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA;AACA,mDAAmD,2BAA2B;AAC9E;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uEAAe;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACiB;;;;;;;;;;;;;ACxmC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AACsH;AAC/C;AAC3B;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,yEAAyE,+DAA+D,EAAE;AAC1I,8EAA8E,8EAAiB;AAC/F;AACA,qEAAqE,+BAA+B,EAAE;AACtG;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qEAAsB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gBAAgB;AAC1E;AACA,+DAA+D,mEAAoB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,6EAA8B;AAClG;AACA,4BAA4B,0EAAa,SAAS,YAAY,6EAA8B,EAAE;AAC9F,yEAAyE,yEAA0B,GAAG,wEAAyB;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uEAAU;AACtD;AACA;AACA;AACA;AACA;AACA,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA;AACA;AACA,sCAAsC,uEAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0FAA0F,yEAA0B;AACpH;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAa,SAAS,+BAA+B;AAChF;AACA,+BAA+B,sEAAuB;AACtD,kEAAkE,mEAAoB,GAAG,qEAAsB;AAC/G;AACA,iCAAiC,4EAA6B;AAC9D;AACA,QAAQ,qEAAQ;AAChB,QAAQ,qEAAQ,YAAY,qEAAsB;AAClD,aAAa,8EAAiB;AAC9B;AACA;AACA,mCAAmC,uEAAU;AAC7C;AACA;AACA;AACA;AACA,QAAQ,8EAAiB,gBAAgB,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,qEAAsB;AACtG;AACA,QAAQ,wEAAW,WAAW,qEAAsB;AACpD;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA,YAAY,mEAAM;AAClB;AACA,0DAA0D,gBAAgB;AAC1E;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,oEAAoE,6EAA8B;AAClG;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qEAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,wBAAwB,qEAAsB;AAClE;AACA;AACA,YAAY,wEAAW,wBAAwB,qEAAsB;AACrE;AACA;AACA;AACA;AACA,4CAA4C,8EAAiB;AAC7D;AACA,8FAA8F,2EAA4B;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,WAAW,qEAAsB;AACjD,qFAAqF,sEAAuB;AAC5G,QAAQ,wEAAW,gBAAgB,qEAAsB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,uBAAuB,sEAAuB;AAC9D,QAAQ,8EAAiB;AACzB;AACA;AACA,SAAS;AACT;AACA,YAAY,8EAAiB,sBAAsB,gEAAgE;AACnH;AACA,mBAAmB,oDAAc;AACjC,0BAA0B,mEAAoB;AAC9C;AACA,0BAA0B,mEAAoB;AAC9C;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,wDAAwD,oEAAqB;AAC7E;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,sBAAsB,6BAA6B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,uCAAuC,4EAA6B;AACpE,uCAAuC,4EAA6B;AACpE;AACA;AACA,0BAA0B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa;AAC9C,uBAAuB,oEAAqB;AAC5C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,mEAAoB;AACrG;AACA;AACA;AACA;AACA,uCAAuC,sDAAsD,EAAE;AAC/F;AACA,wCAAwC,mEAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,sEAAuB;AAChH,6DAA6D,6BAA6B;AAC1F;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA,6DAA6D,oDAAc;AAC3E;AACA;AACA;AACA;AACA,YAAY,qEAAQ,uBAAuB,sEAAuB;AAClE;AACA,YAAY,8EAAiB,sBAAsB,sEAAsE;AACzH;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;ACxctB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACiE;AAC8B;AACpD;AACN;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC,EAAE,sBAAsB,oCAAoC,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB;AAC9C,6BAA6B,mEAAM;AACnC,yEAAyE,gDAAgD,EAAE;AAC3H,wEAAwE,+CAA+C,EAAE;AACzH;AACA;AACA;AACA;AACA,iCAAiC,wDAAgB;AACjD;AACA;AACA,wCAAwC,oDAAY,IAAI;AACxD;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAoB,GAAG,WAAW,eAAe,mCAAmC,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,8EAAiB;AAC7G;AACA,kHAAkH,yCAAyC,EAAE;AAC7J;AACA;AACA;AACA;AACA;AACA,uDAAuD,wBAAwB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAAqB;AACrD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6DAAqB;AAC1D;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,qCAAqC,4DAAoB,GAAG,WAAW;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAkB;AAClD;AACA;AACA,sCAAsC;AACtC;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,8CAA8C,mEAAM,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAkB;AACtD;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA,kDAAkD,mEAAM,GAAG;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAkB;AACtD;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA,qCAAqC,4DAA4D;AACjG;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,uCAAuC,EAAE;AACxI;AACA;AACA;AACA,yEAAyE,qGAA2B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,WAAW;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA,iCAAiC,4DAA4D;AAC7F;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA,iCAAiC,8DAA8D;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA,kCAAkC;AAClC;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA,+BAA+B,8DAA8D;AAC7F;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,4BAA4B,0DAAkB;AAC9C;AACA;AACA,kCAAkC;AAClC,8DAA8D,gBAAgB;AAC9E;AACA,yBAAyB,8EAAiB,mCAAmC,8EAAiB;AAC9F,8CAA8C,qGAA2B;AACzE;AACA,gEAAgE,8EAAiB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qGAA2B;AAChD,aAAa,8EAAiB;AAC9B;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kFAAQ;AACzC;AACA;AACA;AACA;AACA;AACA,2FAA2F,kDAAY;AACvG;AACA;AACA,+CAA+C;AAC/C;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA,gCAAgC,qGAA2B;AAC3D;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA,sCAAsC,qGAA2B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,+BAA+B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;AC7qBhB;AAAA;AAAA;AAAA;AAC0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iDAAiD,gEAAW,oBAAoB,gEAAW;AAC3F,sCAAsC,0DAAK,eAAe,0DAAK;AAC/D;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACe;;;;;;;;;;;;;ACtEhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACgH;AACxB;AACpC;AACC;AACW;AACb;AACa;AACpB;AACD;AACN;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAS;AACrB,yBAAyB,qEAAsB;AAC/C;AACA;AACA;AACA;AACA,qDAAqD,sBAAsB,IAAI,kBAAkB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD,sEAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8EAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,2EAA4B;AAC5F,oBAAoB,8EAAiB,yBAAyB,yDAAyD;AACvH;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wBAAwB,uEAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qEAAsB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uEAAU;AAClC;AACA;AACA;AACA,cAAc,8EAAiB;AAC/B,qEAAqE,yEAA0B;AAC/F,uBAAuB,uEAAU;AACjC;AACA;AACA,uBAAuB,uEAAU;AACjC;AACA,yDAAyD,2EAA4B;AACrF,uBAAuB,uEAAU,yCAAyC,mEAAoB;AAC9F,YAAY,8EAAiB;AAC7B,uBAAuB,uEAAU;AACjC,gDAAgD,uEAAU;AAC1D,aAAa;AACb;AACA;AACA,0DAA0D,2EAA4B;AACtF,yDAAyD,2EAA4B;AACrF,gBAAgB,8EAAiB;AACjC,4BAA4B,uEAAU;AACtC,2BAA2B,uEAAU;AACrC;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,uEAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAoB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,qBAAqB;AACrB;AACA,4BAA4B,wDAAgB;AAC5C,0CAA0C,8EAAiB;AAC3D,gBAAgB,8EAAiB;AACjC;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qEAAsB;AAC7F,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2EAA4B;AACxG;AACA,qBAAqB,8EAAiB;AACtC,0EAA0E,yEAA0B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2EAAa;AACjE;AACA;AACA,oDAAoD,2EAAa;AACjE;AACA;AACA;AACA,sCAAsC,8DAAS;AAC/C;AACA;AACA,kCAAkC,oDAAc;AAChD;AACA,uCAAuC,gEAAU;AACjD;AACA;AACA,0CAA0C,2EAAa;AACvD;AACA;AACA;AACA,gEAAgE,oDAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAQ,WAAW,qEAAsB;AACrE;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA,oCAAoC,mEAAM,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8EAAiB,2CAA2C,gEAAiB;AAC3F;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2EAA4B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,kCAAkC,oDAAc;AAChD,gCAAgC,oDAAc;AAC9C,qFAAqF,qDAAe;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uEAAU;AACvD,8CAA8C,uEAAU;AACxD,gCAAgC,oEAAO,sBAAsB,uDAAQ;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,uEAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mDAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2DAAqB;AACjD;AACA,uGAAuG,wDAAkB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA,4BAA4B,uDAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,iEAAiE,yEAA0B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mEAAoB;AACnH;AACA;AACA,8FAA8F,4EAA6B;AAC3H;AACA,oCAAoC,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,2EAA2E,2EAA4B;AACvG,0BAA0B,mFAAoC,SAAS,4EAA6B;AACpG;AACA;AACA,2CAA2C,mFAAoC;AAC/E;AACA,2FAA2F,qEAAsB;AACjH;AACA,2DAA2D,qBAAqB;AAChF;AACA;AACA;AACA;AACA,wDAAwD,uEAAU;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,8EAA+B;AACpG;AACA,8DAA8D,4EAA6B;AAC3F;AACA,+BAA+B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAChG;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,+DAA+D,qEAAsB;AACrF;AACA,YAAY,oEAAO,6BAA6B,mFAAoC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,2BAA2B,8EAAiB,CAAC,oEAAO;AACjF;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAU;AACnD,0CAA0C,uEAAU;AACpD,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA,0DAA0D,4EAA6B;AACvF;AACA,2BAA2B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,sCAAsC,8EAAiB,CAAC,oEAAO;AAC/D,eAAe,oEAAO,iDAAiD,mEAAoB;AAC3F,kBAAkB,oEAAO,iDAAiD,qEAAsB;AAChG;AACA;AACA;AACA;AACA;AACA,+DAA+D,qEAAsB;AACrF,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,uEAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mEAAoB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO,iDAAiD,mEAAoB;AACxF,YAAY,oEAAO,iDAAiD,qEAAsB;AAC1F,oBAAoB,oEAAO;AAC3B;AACA,uBAAuB,8EAAiB,UAAU,oEAAO;AACzD;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,2EAA4B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,2EAA4B;AACvF,wDAAwD,2EAA4B;AACpF,0BAA0B,kDAAY,CAAC,oDAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,+BAA+B;AAC5F;AACA,YAAY,mEAAM;AAClB;AACA;AACA,6DAA6D,8EAAiB;AAC9E,iDAAiD,oEAAO;AACxD;AACA,wCAAwC,mEAAM,GAAG;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAc,kCAAkC,oDAAc;AAC1E,qCAAqC,oDAAc;AACnD;AACA,2BAA2B,kDAAkD;AAC7E;AACA,+BAA+B,mEAAM,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oDAAc;AACxE,wDAAwD,kDAAY;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC,wBAAwB,oDAAc;AACtC;AACA,sBAAsB,oEAAqB;AAC3C;AACA,sBAAsB,mFAAoC;AAC1D;AACA;AACA,sBAAsB,mEAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC,wFAAwF,oDAAc;AACtG;AACA,+CAA+C,8EAAiB;AAChE;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA,sEAAsE,oDAAc;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA,6DAA6D,uEAAU;AACvE,gEAAgE,uEAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,mEAAoB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,uEAAU;AACzF,kFAAkF,uEAAU;AAC5F,iFAAiF,uEAAU;AAC3F,gFAAgF,uEAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,wBAAwB,sEAAuB;AACnE,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb,2FAA2F,4EAA6B;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH,cAAc,EAAE;AAClI;AACA;AACA;AACA,uCAAuC,sDAAsD,EAAE;AAC/F;AACA,+FAA+F,cAAc,EAAE;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD,6BAA6B,8EAAiB;AAC9C;AACA;AACA,+CAA+C,uEAAU;AACzD;AACA;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B,YAAY,oEAAO,8BAA8B,yEAA0B;AAC3E,aAAa,oEAAO,6BAA6B,mFAAoC;AACrF,YAAY,qEAAQ,yBAAyB,2EAA4B;AACzE;AACA;AACA;AACA,yFAAyF,qEAAsB;AAC/G;AACA,iEAAiE,6BAA6B;AAC9F;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,uBAAuB,uEAAU;AACjC,wBAAwB,uEAAU;AAClC,qBAAqB,uEAAU,yCAAyC,mEAAoB;AAC5F,aAAa;AACb;AACA,YAAY,oEAAO,8BAA8B,mEAAoB;AACrE,aAAa,oEAAO,6BAA6B,oEAAqB;AACtE,YAAY,wEAAW,yBAAyB,2EAA4B;AAC5E;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,sBAAsB,uEAAU;AAChC,wBAAwB,uEAAU;AAClC,uBAAuB,uEAAU;AACjC,aAAa;AACb;AACA;AACA;AACA,YAAY,8EAAiB,2BAA2B,8EAAiB,CAAC,oEAAO;AACjF;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB,aAAa,8EAAiB;AAC9B;AACA;AACA,qFAAqF,mEAAoB;AACzG;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,sEAAuB;AAC5G,yDAAyD,6BAA6B;AACtF;AACA,YAAY,mEAAM;AAClB;AACA;AACA,4BAA4B,oDAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qDAAe;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uEAAU;AACzD;AACA;AACA;AACA,+DAA+D,qEAAsB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,oDAAc;AACpG;AACA;AACA;AACA;AACA,2CAA2C,uEAAU;AACrD;AACA;AACA,0CAA0C,uEAAU;AACpD;AACA;AACA,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qEAAsB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAU;AACtC;AACA;AACA;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qDAAe;AACtF;AACA;AACA,uDAAuD,wDAAkB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,qEAAsB;AACrF;AACA,yBAAyB,wDAAkB;AAC3C,sBAAsB,8EAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,4EAA6B;AAC3F;AACA,2BAA2B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC5F;AACA;AACA;AACA,iBAAiB,oEAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,mEAAoB;AAC3E,kEAAkE,oEAAqB;AACvF;AACA;AACA;AACA,iCAAiC,uEAAU;AAC3C;AACA;AACA,sCAAsC,qBAAqB;AAC3D,uBAAuB,8EAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,mEAAmE,2EAA4B;AAC/F;AACA;AACA,oDAAoD,mFAAoC,SAAS,4EAA6B;AAC9H;AACA;AACA;AACA,2EAA2E,mEAAoB;AAC/F,6DAA6D,4EAA6B;AAC1F;AACA,+BAA+B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AACpF,gDAAgD,mFAAoC;AACpF;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,+DAAU;AACW;;;;;;;;;;;;;AClxCvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACqF;AACL;AACtC;AACL;AACO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mEAAc;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAmB;AAC1C;AACA;AACA,wBAAwB,4DAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mEAAoB;AAClE;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,8CAA8C,qEAAsB;AACpE;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA,oFAAoF,oEAAqB;AACzG,QAAQ,qEAAQ;AAChB;AACA;AACA,mEAAmE,qEAAsB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAO,iBAAiB,mEAAoB,UAAU,qEAAsB;AAC3F;AACA;AACA;AACA,oFAAoF,oEAAqB;AACzG,QAAQ,wEAAW;AACnB,wCAAwC,mEAAoB;AAC5D,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,wCAAwC,qEAAsB;AAC9D;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,6BAA6B,mEAAoB,UAAU,qEAAsB,UAAU,qEAAsB;AACjH,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAY;AACxC;AACA;AACA,+BAA+B,mEAAM,gCAAgC,6CAA6C;AAClH,oCAAoC,wDAAe;AACnD;AACA,SAAS;AACT;AACA;AACA,oFAAoF,oEAAqB;AACzG;AACA;AACA;AACA;AACA,YAAY,oEAAO,eAAe,sEAAuB;AACzD,0CAA0C,kFAAmC;AAC7E,0CAA0C,qEAAsB;AAChE,0CAA0C,mEAAoB;AAC9D,0CAA0C,qEAAsB;AAChE,0CAA0C,8DAAe;AACzD;AACA;AACA;AACA,+CAA+C,gEAAiB;AAChE,wDAAwD,qEAAsB;AAC9E;AACA;AACA;AACA;AACA,sCAAsC,uEAAwB,+BAA+B,wEAAyB;AACtH,0DAA0D,2EAA4B;AACtF;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB,+BAA+B,qEAAsB;AAC/G;AACA,uBAAuB,mEAAM,+BAA+B,0BAA0B;AACtF;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAiB;AACpD;AACA;AACA,mCAAmC,wDAAe;AAClD;AACA;AACA;AACA,sCAAsC,uEAAwB;AAC9D;AACA;AACA;AACA,sCAAsC,oEAAqB,+BAA+B,yEAA0B;AACpH,sCAAsC,mFAAoC,+BAA+B,uEAAwB;AACjI;AACA;AACA;AACA,sCAAsC,+EAAgC;AACtE,uCAAuC,uDAAuD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,sEAAuB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qEAAsB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,qEAAsB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sEAAuB;AACtF,8BAA8B,+DAAgB,WAAW,mEAAoB,cAAc,6EAA8B;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,qBAAqB;AACpC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,gCAAgC,qDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,6BAA6B;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,qEAAsB;AACjG;AACA;AACA;AACA,qEAAqE,2BAA2B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oEAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,eAAe,uEAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB,+BAA+B,qEAAsB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,qDAAe;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,oEAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,wCAAwC,EAAE;AACrF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2EAA4B;AACnG;AACA,wEAAwE,mEAAoB;AAC5F;AACA;AACA,qFAAqF,6DAAc;AACnG,kDAAkD,6DAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB,8CAA8C,6DAAc;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2EAA4B;AACnG;AACA,qEAAqE,mEAAoB;AACzF;AACA;AACA,gFAAgF,6DAAc;AAC9F,kDAAkD,6DAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB,8CAA8C,6DAAc;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,sEAAuB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,2EAA4B;AACnG;AACA,gDAAgD,6DAAc,0CAA0C,6DAAc;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mEAAoB;AACvF,uCAAuC,qEAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB;AAC1D,0CAA0C,mEAAoB;AAC9D;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qEAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mEAAoB;AACvF,uCAAuC,qEAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mEAAoB;AAC9D,sCAAsC,mEAAoB;AAC1D;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,qEAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,qEAAsB;AAC3F;AACA,oDAAoD,6DAAc,gCAAgC,+DAAgB;AAClH;AACA;AACA,oDAAoD,mEAAoB,gCAAgC,qEAAsB;AAC9H;AACA,SAAS;AACT;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO,eAAe,sEAAuB,UAAU,2EAA4B;AAC9G,4DAA4D,6DAAc;AAC1E,gDAAgD,2EAA4B;AAC5E;AACA;AACA;AACA;AACA;AACA,sCAAsC,uDAAQ;AAC9C;AACA;AACA;AACA,sCAAsC,uEAAwB;AAC9D;AACA;AACA,oCAAoC,oEAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,sEAAuB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oEAAqB;AAC3D,uFAAuF,oEAAqB;AAC5G;AACA;AACA,uFAAuF,oEAAqB;AAC5G,4CAA4C,uEAAwB;AACpE;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,oEAAqB;AACxF;AACA;AACA;AACA;AACA;AACA,iDAAiD,uEAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,8EAAiB;AAC1D;AACA,sDAAsD,oEAAqB;AAC3E,YAAY,qEAAQ,cAAc,qEAAsB;AACxD;AACA,uFAAuF,4DAAa;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH,oEAAqB;AACvI;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,oEAAqB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oEAAqB;AAC5E;AACA,oCAAoC,oEAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO,iBAAiB,6EAA8B;AAC3E,wDAAwD,8EAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uEAAwB;AACxF;AACA;AACA,2EAA2E,6EAA8B;AACzG,wFAAwF,uEAAwB;AAChH;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAoB;AACnF;AACA,oDAAoD,qEAAsB;AAC1E;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC8B;;;;;;;;;;;;;ACz6B/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACkJ;AAC9F;AACC;AAChB;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,qEAAsB;AAC/F,yDAAyD,6BAA6B;AACtF;AACA,YAAY,iEAAY,gBAAgB,4DAAO;AAC/C;AACA;AACA;AACA;AACA,wEAAwE,SAAS;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO,iBAAiB,qEAAsB;AACzE,iCAAiC,oEAAO,qBAAqB,oEAAqB;AAClF;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,4BAA4B,0DAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sEAAuB;AAC7E,uDAAuD,uEAAwB;AAC/E,qDAAqD,qEAAsB;AAC3E,wDAAwD,wEAAyB;AACjF;AACA;AACA,oEAAoE,mEAAoB;AACxF;AACA;AACA,sFAAsF,mBAAmB,EAAE;AAC3G;AACA;AACA;AACA;AACA,iEAAiE,6BAA6B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAU;AACjD;AACA,uEAAuE,qEAAsB;AAC7F,gCAAgC;AAChC,YAAY,iEAAY,eAAe,4DAAO;AAC9C,YAAY,iEAAY,eAAe,4DAAO;AAC9C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uDAAuD,qEAAsB;AAC7E;AACA;AACA,cAAc,8EAAiB,2CAA2C,gEAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uDAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA,oBAAoB,8EAAiB;AACrC,oBAAoB,qEAAQ,iBAAiB,sEAAuB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA,oBAAoB,8EAAiB;AACrC,oBAAoB,qEAAQ,iBAAiB,uEAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA,oBAAoB,8EAAiB;AACrC,oBAAoB,qEAAQ,iBAAiB,qEAAsB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA,oBAAoB,8EAAiB;AACrC,oBAAoB,qEAAQ,iBAAiB,wEAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,0BAA0B,8EAAiB;AACxE;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,sEAAuB;AAC5G,yDAAyD,6BAA6B;AACtF;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA,oFAAoF,kDAAY;AAChG;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM,GAAG;AACpC,4EAA4E,kDAAY;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC;AACA;AACA;AACA,uBAAuB,kDAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,qDAAe;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,yBAAyB,oDAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,mBAAmB,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,6BAA6B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAO;AACpC;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oDAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kDAAY;AAC5B;AACA,4BAA4B,kDAAY,CAAC,oDAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,qEAAsB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uEAAU;AAC9B,iBAAiB,uEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uEAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,uEAAU;AACxC;AACA;AACA;AACA,uBAAuB,uEAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,+DAAU;AACM;;;;;;;;;;;;;AClkBlB;AAAA;AAAA;AAAA;AAAkD;AACwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0CAA0C,uEAAU;AACpD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2CAA2C,uEAAU;AACrD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,2DAAY;AACnC,uBAAuB,uDAAQ;AAC/B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,2DAAY;AACpC,wBAAwB,uDAAQ;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,2BAA2B,6DAAc;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;;;;;;;;;;;;;AC9FlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmG;AACjC;AACvB;AACC;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,wEAAyB;AACxF,4BAA4B,0DAAK;AACjC;AACA;AACA;AACA,4BAA4B;AAC5B,SAAS;AACT,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA,2EAA2E,oEAAqB;AAChG,gBAAgB,oEAAO,+BAA+B,oEAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA,4CAA4C,kEAAmB;AAC/D;AACA;AACA;AACA,wBAAwB;AACxB,gCAAgC,0DAAkB;AAClD;AACA;AACA;AACA,6DAA6D,qEAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAoB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,uEAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,4DAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gCAAgC,6DAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO,+BAA+B,oEAAqB;AAChF,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+CAA+C;AACtF;AACA,mCAAmC,yEAAyE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gDAAgD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,kBAAkB,kEAAmB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mCAAmC,+CAA+C;AAClF;AACA;AACA,QAAQ,qEAAQ,iBAAiB,kEAAmB;AACpD;AACA;AACA;AACA;AACA,QAAQ,wEAAW,iBAAiB,kEAAmB;AACvD;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA,YAAY,wEAAW,8BAA8B,uEAAwB;AAC7E,YAAY,qEAAQ,8BAA8B,sEAAuB;AACzE;AACA;AACA,YAAY,mEAAM;AAClB;AACA,YAAY,wEAAW,8BAA8B,mEAAoB;AACzE,YAAY,qEAAQ,8BAA8B,sEAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAmB;AAC3B,QAAQ,wEAAW,iBAAiB,kEAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA,CAAC;AACwB;;;;;;;;;;;;;ACtOzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqH;AAC1E;AACC;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6EAA8B;AAC5F,8DAA8D,qEAAsB;AACpF,gEAAgE,oEAAqB;AACrF,oEAAoE,yEAA0B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kEAAkE,sEAAuB;AACzF,iBAAiB,8EAAiB;AAClC,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA,mBAAmB,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AAC9E;AACA;AACA;AACA;AACA,8DAA8D,sEAAuB;AACrF;AACA;AACA;AACA,mEAAmE,sEAAuB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,6EAA8B;AAChG,kEAAkE,qEAAsB;AACxF,oEAAoE,oEAAqB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oEAA8B,iCAAiC,mEAAoB;AAC3G;AACA;AACA;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6EAA8B;AAC5F,8DAA8D,qEAAsB;AACpF,gEAAgE,oEAAqB;AACrF,oEAAoE,yEAA0B;AAC9F,+DAA+D,sEAAuB;AACtF;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sBAAsB,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,uEAAwB;AACxG;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd,QAAQ,mEAAM;AACd,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB,kCAAkC,qDAAqD;AAChH,QAAQ,8EAAiB,kCAAkC,qDAAqD;AAChH,QAAQ,8EAAiB,aAAa,qDAAqD;AAC3F,aAAa,8EAAiB;AAC9B,YAAY,8EAAiB,iBAAiB,qDAAqD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mEAAoB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,6EAA8B;AAC/F,gFAAgF,uEAAwB;AACxG;AACA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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;AACP;AACO;;;;;;;;;;;;;AC1cP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACyJ;AAC/F;AACH;AACR;AACR;AACK;AACD;AACN;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0EAAa,QAAQ,YAAY,yEAA0B,EAAE;AACpF,wBAAwB,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AACnF;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,4BAA4B,yDAAiB;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A;AACA;AACA;AACA,oBAAoB,mEAAM,uBAAuB,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,SAAS;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+BAA+B,0EAAa;AAC5C,2BAA2B,gEAAiB;AAC5C;AACA,aAAa;AACb;AACA,4BAA4B,0EAAa,SAAS,mCAAmC;AACrF;AACA;AACA;AACA,yDAAyD,SAAS;AAClE;AACA;AACA;AACA;AACA,uDAAuD,uEAAwB;AAC/E,QAAQ,yDAAmB;AAC3B,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA,YAAY,qEAAQ,0CAA0C,gEAAiB,IAAI,gEAAiB;AACpG;AACA;AACA;AACA;AACA,oDAAoD,sEAAuB,qBAAqB,6DAAc;AAC9G;AACA,YAAY,wEAAW,sBAAsB,+DAAgB;AAC7D;AACA;AACA;AACA,YAAY,wEAAW;AACvB,YAAY,qEAAQ;AACpB;AACA,YAAY,qEAAQ,sBAAsB,+DAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW,sBAAsB,+DAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,4BAA4B,0DAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6DAAqB;AAC1D;AACA,SAAS;AACT;AACA;AACA,YAAY,oEAAO,0BAA0B,sEAAuB;AACpE;AACA;AACA,kEAAkE,sEAAuB;AACzF,0DAA0D,6DAAc;AACxE;AACA,YAAY,wEAAW,sBAAsB,+DAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA,iCAAiC,kDAAI;AACrC;AACA;AACA,iDAAiD,gDAAgD,EAAE;AACnG,iCAAiC,sDAAsD,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,gBAAgB;AAChG;AACA,8BAA8B,0DAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA,kDAAkD,gBAAgB;AAClE;AACA,2EAA2E,kCAAkC;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,+BAA+B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gBAAgB;AACzE;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAM;AAC3B;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA,2BAA2B,mEAAM;AACjC,uDAAuD,cAAc;AACrE;AACA,sDAAsD,gBAAgB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,8EAAiB;AAC1F;AACA,+BAA+B,wCAAwC;AACvE;AACA;AACA;AACA;AACA,+BAA+B,wCAAwC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,sBAAsB,EAAE;AACjH,wDAAwD;AACxD,iDAAiD,0BAA0B,EAAE;AAC7E,SAAS,EAAE;AACX;AACA,0CAA0C,kCAAkC,EAAE;AAC9E;AACA;AACA;AACA,kDAAkD,8BAA8B,EAAE;AAClF;AACA;AACA;AACA;AACA,+DAA+D,8BAA8B;AAC7F;AACA;AACA,oEAAoE,kBAAkB;AACtF;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM;AAC7B;AACA;AACA,0EAA0E,kBAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gEAAW,EAAE,4BAA4B;AACxE,iBAAiB;AACjB;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gEAAW,EAAE,4BAA4B;AACxE,iBAAiB;AACjB;AACA;AACA;AACA,6DAA6D,gBAAgB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B,wEAAwE,wBAAwB,EAAE;AAClG,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yDAAyD,uBAAuB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oEAAoE,mCAAmC,EAAE;AACzG;AACA;AACA;AACA;AACA,6DAA6D,uBAAuB,EAAE;AACtF;AACA,6DAA6D,6EAA8B;AAC3F,wBAAwB,2EAA4B;AACpD;AACA,0CAA0C,wEAAyB;AACnE;AACA;AACA,+CAA+C,0EAA2B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oEAAoE,qEAAsB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iEAAiE,uBAAuB,EAAE;AAC1F;AACA;AACA,sEAAsE,sEAAuB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,mEAAoB;AACzF,mEAAmE,+DAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,mEAAoB;AACrF,+DAA+D,+DAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,yCAAyC,EAAE;AAChH;AACA;AACA,kEAAkE,4BAA4B,EAAE;AAChG;AACA;AACA,uEAAuE,mEAAoB;AAC3F,mFAAmF,wBAAwB,EAAE;AAC7G;AACA;AACA;AACA;AACA,wBAAwB,4DAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM,yCAAyC,sEAAuB;AAClF,YAAY,mEAAM,yCAAyC,8EAA+B;AAC1F;AACA,oEAAoE,6EAA8B;AAClG;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;ACh/BxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACiG;AACwB;AACL;AACxB;AACX;AACpB;AAClB;AACM;AACS;AACnB;AACkB;AACE;AACN;AACE;AACF;AACP;AACG;AACA;AACmB;AACjB;AACZ;AACqB;AACH;AACjB;AACQ;AACgB;AAChB;AACc;AACnB;AACC;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,qBAAqB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,wDAAQ;AAChC;AACA,4BAA4B,uDAAO;AACnC;AACA;AACA,+BAA+B,uDAAO;AACtC;AACA;AACA,4BAA4B,gEAAgB;AAC5C;AACA;AACA,+BAA+B,gEAAgB;AAC/C;AACA;AACA,4BAA4B,8DAAc;AAC1C;AACA;AACA,+BAA+B,8DAAc;AAC7C;AACA;AACA;AACA,mDAAmD,wBAAwB;AAC3E;AACA;AACA;AACA;AACA,QAAQ,sEAAS;AACjB;AACA,QAAQ,4EAAa,EAAE,uBAAuB;AAC9C,gCAAgC,sDAAM;AACtC;AACA;AACA,gCAAgC,0DAAM;AACtC,6BAA6B,oEAAS;AACtC,kCAAkC,wEAAmB;AACrD;AACA,iDAAiD,qEAAmB;AACpE;AACA,gCAAgC,sEAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yEAAyB;AACvE,gEAAgE,YAAY,yEAAyB,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,oCAAoC,4DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wEAAc;AAClD;AACA;AACA,YAAY,4DAAO,aAAa,4DAAO;AACvC,2CAA2C,4DAAa;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kCAAkC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sGAAsG;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oCAAoC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gBAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM,EAAE,mBAAmB,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA,uEAAuE,8EAAiB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kDAAI;AAClC,8BAA8B,mDAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iEAAW;AAC1C,8BAA8B,gEAAW;AACzC;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAQ,mBAAmB,iFAAoB;AACtE;AACA;AACA;AACA,uBAAuB,qEAAQ,YAAY,6DAAQ;AACnD;AACA,mDAAmD,gBAAgB;AACnE;AACA,+BAA+B,qEAAQ;AACvC;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,uCAAuC,qEAAQ,sBAAsB,iFAAoB;AACzF;AACA;AACA,uCAAuC,qEAAQ,mGAAmG,6DAAQ;AAC1J;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8DAAO;AAC3C;AACA;AACA,oCAAoC,gEAAS;AAC7C;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB,2DAAkB;AACvC;AACA;AACA;AACA;AACA,8BAA8B,0DAAiB;AAC/C;AACA;AACA,6CAA6C,oBAAoB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,sCAAsC,8DAAqB;AAC3D;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,oBAAoB;AACpB,qBAAqB,2DAAkB;AACvC;AACA;AACA;AACA;AACA,8BAA8B,0DAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,sCAAsC,8DAAqB;AAC3D;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAS,EAAE,0DAA0D;AACjF;AACA;AACA;AACA;AACA,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA,0BAA0B,sCAAsC;AAChE;AACA;AACA,0BAA0B,iCAAiC;AAC3D;AACA,sBAAsB,sCAAsC;AAC5D,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE,sBAAsB,gCAAgC;AACtD;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0BAA0B,4DAAO,aAAa,wDAAiB;AAC/D,6BAA6B,yEAAoB;AACjD,4BAA4B,4DAAQ;AACpC,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,gCAAgC;AAChC;AACA,6BAA6B,yDAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY,eAAe,4DAAO;AAC1C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA;AACA,QAAQ,wEAAW,gBAAgB,uEAAuB;AAC1D;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC,eAAe,qBAAqB;AACpC,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,QAAQ,qEAAQ,QAAQ,uEAAuB;AAC/C;AACA;AACA,6BAA6B,0CAA0C;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,gDAAgD,oEAAoB;AACpE;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA,2DAA2D,uEAAuB;AAClF;AACA;AACA;AACA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA,iEAAiE,uEAAuB,uBAAuB,gEAAgB;AAC/H;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA,iEAAiE,oEAAoB;AACrF;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,kCAAkC,sEAAsB;AACxD,kCAAkC,sEAAsB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0DAA0D,mEAAmB;AAC7E,aAAa,8EAAiB;AAC9B,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,+BAA+B,qDAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6DAAoB,GAAG,cAAc;AACzD;AACA;AACA,YAAY,8EAAiB,0CAA0C,oDAAa;AACpF,yDAAyD,iEAAiB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAqB,GAAG,sEAAsE;AACtH;AACA;AACA;AACA,wBAAwB,4DAAmB,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAO;AAClC;AACA;AACA;AACA,uBAAuB,oEAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,8DAA8D,sEAAsB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,iCAAiC,2DAAoB;AACrD,qDAAqD,yDAAkB;AACvE;AACA;AACA,gCAAgC,4DAAqB;AACrD,+BAA+B,2DAAoB;AACnD,8BAA8B,6DAAsB;AACpD,qDAAqD,yDAAkB;AACvE;AACA;AACA,gCAAgC,4DAAqB;AACrD,qDAAqD,yDAAkB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB,QAAQ,iEAAY,kBAAkB,4DAAO;AAC7C;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wEAAc;AAC9D;AACA;AACA,gCAAgC,8DAAqB,GAAG,yCAAyC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yEAAoB;AAC7D,yCAAyC,yDAAI;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW,iBAAiB,sEAAsB;AAClE;AACA;AACA;AACA;AACA;AACA,0DAA0D,0EAA0B;AACpF,yDAAyD,oEAAoB;AAC7E;AACA,YAAY,qEAAQ,eAAe,2EAA2B;AAC9D,8CAA8C,6EAA6B;AAC3E,gBAAgB,wEAAW,eAAe,6EAA6B;AACvE;AACA;AACA,oFAAoF,sEAAsB;AAC1G;AACA;AACA;AACA;AACA,8CAA8C,2EAA2B;AACzE,gBAAgB,wEAAW,eAAe,2EAA2B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wDAAe,GAAG,gCAAgC,+CAA+C,EAAE;AAC/H;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qEAAmB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,wEAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mEAAY;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,0EAAW;AACnB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,QAAQ,0EAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,QAAQ,oEAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA,+BAA+B,qCAAqC;AACpE;AACA;AACA,YAAY,wEAAW,QAAQ,oEAAoB;AACnD;AACA;AACA,kFAAkF,oEAAoB;AACtG,YAAY,wEAAW,gBAAgB,oEAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,eAAe,8EAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,yDAAkB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA,YAAY,qDAAc;AAC1B;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA,yCAAyC,8EAAiB;AAC1D;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C,iDAAiD,oEAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,sBAAsB,uEAAU;AAChC,qBAAqB,uEAAU;AAC/B;AACA;AACA,YAAY,8EAAiB,eAAe,8EAAiB;AAC7D;AACA;AACA,sEAAsE,8EAAiB;AACvF;AACA;AACA,wGAAwG,sEAAsB;AAC9H,sCAAsC,sEAAsB;AAC5D,sBAAsB,mDAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;AACA;AACA,iEAAiE,uEAAuB;AACxF;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,iBAAiB;AACjB;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB;AACjB;AACA;AACA,4CAA4C,8EAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;AACA;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,cAAc;AAC7B;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA,YAAY,wEAAW,iBAAiB,sEAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yDAAgB,GAAG,wEAAwE;AACnH;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gEAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iEAAW;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA,kBAAkB,uEAAU;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,gBAAgB,8EAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,2EAA2E,qCAAqC,EAAE;AAClH;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B;AACA;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,+BAA+B,uEAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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Q,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACS;;;;;;;;;;;;;AC7rFpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgF;AAChF;AACA;AACA;AACO;AACA;AACA;AACP;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACO;AACP;AACA,aAAa,0EAAa,SAAS,0BAA0B;AAC7D;AACA;AACA;AACA;AACA,IAAI,mEAAM;AACV;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACO;AACP;AACA;AACA;AACA,kBAAkB,0EAAa;AAC/B;AACA,yCAAyC,cAAc,iBAAiB,mBAAmB,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACO;AACP,2CAA2C,cAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sBAAsB;AACjC,aAAa;AACb;AACO;AACP;AACA,yDAAyD,+BAA+B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACO;AACP;AACA,+DAA+D,yDAAyD,EAAE;AAC1H;AACA;AACA;AACA;AACA,0BAA0B,8EAAiB;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7XA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACwH;AACvE;AACA;AACZ;AACO;AACF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,2DAA2D;AACxF,0BAA0B,8DAAQ;AAClC;AACA;AACA;AACA,0CAA0C,wEAAyB,OAAO,QAAQ;AAClF,aAAa;AACb;AACA;AACA,0BAA0B,8DAAQ;AAClC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iCAAiC,0EAAa;AAC9C,+BAA+B,oEAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC,oBAAoB,qEAAQ,eAAe,iEAAkB;AAC7D;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA,4BAA4B,8EAA+B,GAAG,mFAAoC;AAClG,+CAA+C,0EAAa,SAAS,YAAY,uDAAQ,oBAAoB;AAC7G;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB,gBAAgB,yDAAmB;AACnC;AACA;AACA,0BAA0B,mEAAM,GAAG;AACnC;AACA;AACA,qCAAqC,4DAAmB;AACxD;AACA,wBAAwB,mEAAM;AAC9B;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,qEAAQ,QAAQ,0EAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAa,SAAS,YAAY,+DAAgB,EAAE;AACjF,aAAa,8EAAiB;AAC9B;AACA;AACA,mCAAmC,0EAAa,SAAS,YAAY,gEAAiB,2BAA2B;AACjH,aAAa,8EAAiB;AAC9B,uCAAuC,0EAAa,SAAS,YAAY,iEAAkB,4BAA4B;AACvH;AACA,aAAa,8EAAiB;AAC9B;AACA,gBAAgB,8EAA+B,GAAG,mFAAoC;AACtF,uCAAuC,0EAAa,SAAS,YAAY,uDAAQ,oBAAoB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,8CAA8C,qDAAe;AAC7D;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C,0BAA0B,0EAAa,SAAS,YAAY,kEAAmB,yBAAyB;AACxG;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,oEAAqB;AACzG,uDAAuD,4BAA4B;AACnF;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,6BAA6B,kDAAY;AACzC;AACA;AACA;AACA;AACA,uBAAuB,UAAU;AACjC;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAY;AACxC;AACA,kBAAkB,kDAAY;AAC9B;AACA;AACA,iCAAiC,sBAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,cAAc;AACrD;AACA,kGAAkG,kDAAY;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,kDAAY;AACrD;AACA;AACA,sFAAsF,0EAA2B;AACjH;AACA;AACA;AACA,kGAAkG,gEAAiB;AACnH;AACA;AACA;AACA,uDAAuD,mEAAM,GAAG;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA,mCAAmC,iBAAiB;AACpD;AACA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA,qDAAqD,mEAAM,GAAG;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAa,QAAQ,SAAS,cAAc,EAAE;AAC/D;AACA,iBAAiB,0EAAa,QAAQ,SAAS,6CAA6C,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA,+EAA+E,4BAA4B,EAAE;AAC7G,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qEAAsB,EAAE,oEAAqB;AAClF;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ,SAAS,qEAAsB,EAAE,2EAA4B;AAC7F;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ,QAAQ,wEAAyB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,SAAS,qEAAsB,EAAE,oEAAqB,EAAE,oEAAqB;AACrG,gCAAgC,uDAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AACpF,wBAAwB;AACxB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,yDAAyD,sEAAuB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0EAAa;AACpC,uBAAuB,2EAA4B;AACnD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB,uDAAiB;AACzC,iBAAiB,0EAAa,QAAQ,SAAS,uDAAuD,EAAE;AACxG,iBAAiB,0EAAa;AAC9B;AACA,oDAAoD,qEAAsB,GAAG,qEAAsB;AACnG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4DAAQ;AACY;;;;;;;;;;;;;AC9XtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACwF;AACK;AACxB;AAC8B;AAC9D;AACO;AACF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA,iBAAiB,8EAAiB,oCAAoC,8EAAiB;AACvF;AACA;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB,oCAAoC,8EAAiB;AAC/F;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,6EAA6E,+BAA+B;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,iDAAiD,yBAAyB;AAC1E;AACA;AACA,sCAAsC,oDAAc;AACpD,oBAAoB,oDAAc;AAClC;AACA,iDAAiD,oDAAc;AAC/D,+CAA+C,kDAAY,CAAC,oDAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4DAAsB;AACjF;AACA;AACA,yDAAyD,4DAAsB;AAC/E;AACA;AACA;AACA;AACA,yCAAyC,0CAA0C;AACnF;AACA,6DAA6D,+BAA+B;AAC5F;AACA,iBAAiB,8EAAiB;AAClC,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wDAAe,GAAG,2BAA2B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mEAAM;AAChC,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA,oBAAoB,oDAAc;AAClC;AACA,mDAAmD,oDAAc;AACjE,iDAAiD,kDAAY,CAAC,oDAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4CAA4C;AAClF;AACA,4BAA4B,8DAAS;AACrC,oBAAoB,8DAAS;AAC7B,oBAAoB,8DAAS;AAC7B,mBAAmB,8DAAS;AAC5B,oBAAoB,8DAAS;AAC7B,yBAAyB,gEAAW,EAAE,qBAAqB,mBAAmB,0DAAK;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,2DAA2D,EAAE;AAC/H;AACA;AACA,kEAAkE,uDAAuD,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,4CAA4C;AAClF;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAc;AAC5C,YAAY,oDAAc;AAC1B;AACA;AACA,sBAAsB,kDAAY,CAAC,oDAAc;AACjD;AACA,+BAA+B,kDAAY;AAC3C;AACA,8BAA8B,uDAAiB;AAC/C;AACA,0BAA0B,mEAAM,GAAG;AACnC;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,qBAAqB,oDAAc,0CAA0C,oDAAc;AAC3F;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAY,CAAC,oDAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAc;AAClC,kBAAkB,oDAAc;AAChC,YAAY,sDAAgB;AAC5B,uBAAuB,kDAAY,CAAC,oDAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA;AACA;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA,yEAAyE,6BAA6B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,yBAAyB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM,GAAG;AACzB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iEAAiE,6BAA6B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,qEAAsB;AAChH;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oCAAoC;AAC3G;AACA;AACA;AACA,QAAQ,wEAAW,uBAAuB,qEAAsB;AAChE;AACA,YAAY,wEAAW,uBAAuB,uEAAwB;AACtE;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ,QAAQ,qEAAsB;AAC9C;AACA;AACA,wEAAwE,qEAAsB,UAAU,oEAAqB;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,QAAQ;AACpF;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,eAAe,8EAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,qDAAe;AAC7B;AACA;AACA;AACA,uBAAuB,4DAAmB;AAC1C;AACA;AACA,wBAAwB,4DAAmB;AAC3C;AACA;AACA;AACA,YAAY,oEAAO,gBAAgB,oEAAqB;AACxD;AACA;AACA;AACA;AACA,kBAAkB,oEAAO,gBAAgB,6DAAc;AACvD;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,2BAA2B,8EAAiB;AAC5C,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA,gCAAgC,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AAC1F;AACA;AACA;AACA,kDAAkD,0EAAa,SAAS,mCAAmC;AAC3G,wBAAwB,qEAAQ,0CAA0C,uEAAwB,GAAG,sEAAuB;AAC5H,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,kDAAkD,0EAAa,SAAS,mCAAmC;AAC3G,wBAAwB,qEAAQ,0CAA0C,sEAAuB,GAAG,uEAAwB;AAC5H,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,kDAAkD,0EAAa,SAAS,mCAAmC;AAC3G,wBAAwB,qEAAQ,kBAAkB,qEAAsB;AACxE,wBAAwB,oEAAO;AAC/B;AACA;AACA;AACA;AACA,kDAAkD,0EAAa,SAAS,mCAAmC;AAC3G,wBAAwB,qEAAQ,kBAAkB,wEAAyB;AAC3E,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB,+BAA+B,qEAAsB;AAC/G;AACA;AACA;AACA;AACA,oGAAoG,qEAAsB;AAC1H,2BAA2B,oEAAO,yBAAyB,oEAAqB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qDAAY;AAC5C,uBAAuB,mEAAM,+BAA+B,0CAA0C;AACtG,gCAAgC,yDAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qDAAY;AAC5C,uBAAuB,mEAAM,+BAA+B,0CAA0C;AACtG,gCAAgC,yDAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ,yCAAyC,uEAAwB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0DAAiB;AAC7D;AACA;AACA,4CAA4C,yDAAgB;AAC5D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,2EAA4B;AAC/F,oEAAoE,uEAAwB;AAC5F;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,2BAA2B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,2CAA2C,EAAE;AACtH,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO,yBAAyB,oEAAqB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAiB;AACxC;AACA;AACA;AACA;AACA,oBAAoB,kFAAQ;AAC5B;AACA,gBAAgB,8EAAiB;AACjC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA,+BAA+B,mEAAM,GAAG;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA,8BAA8B,mEAAM,GAAG;AACvC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA,kDAAkD,6CAA6C,EAAE;AACjG;AACA;AACA;AACA;AACA,yEAAyE,8BAA8B,EAAE;AACzG,uDAAuD,4BAA4B;AACnF;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,4FAA4F,8EAAiB;AAC7G,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,2BAA2B,mEAAM,GAAG;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iCAAiC,yGAA+B;AAChE,sCAAsC,mEAAM,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA,iCAAiC,0EAAa;AAC9C,uBAAuB,0EAA2B;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAa;AAClD,2BAA2B,gEAAiB;AAC5C,aAAa;AACb;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA;AACA,iBAAiB,8EAAiB;AAClC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAW,8BAA8B,0DAAK;AACjE;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8DAAS;AAC/C,wBAAwB,8DAAS;AACjC;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,sCAAsC,8EAAiB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,yCAAyC;AAC1H;AACA,oCAAoC,8DAAS;AAC7C,uBAAuB,8DAAS;AAChC,wBAAwB,8DAAS;AACjC,wBAAwB,8DAAS;AACjC;AACA,sDAAsD,8DAAS;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD,oBAAoB,oDAAc,8BAA8B,oDAAc;AAC9E;AACA;AACA,oBAAoB,oDAAc,8BAA8B,oDAAc;AAC9E;AACA;AACA;AACA,+DAA+D,sEAAsE,EAAE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,mEAAoB;AACtG;AACA;AACA,0CAA0C,qCAAqC,EAAE;AACjF;AACA,SAAS;AACT;AACA,gDAAgD,qEAAsB;AACtE,8DAA8D,qEAAsB;AACpF;AACA,YAAY,qEAAQ,eAAe,4EAA6B;AAChE;AACA;AACA,YAAY,wEAAW,eAAe,4EAA6B;AACnE;AACA;AACA;AACA,mFAAmF,oEAAqB;AACxG,qDAAqD,2BAA2B;AAChF;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;;;;;;;;;;;;;ACjtCrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC6F;AAC7B;AACX;AACW;AACpB;AACD;AACN;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0DAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6DAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uEAAwB;AAChF,iDAAiD,uEAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oDAAc;AAClC,kBAAkB,oDAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,uEAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA,6DAA6D,uEAAwB;AACrF;AACA;AACA;AACA;AACA;AACA,0DAA0D,gEAAiB;AAC3E,2DAA2D,mEAAoB;AAC/E;AACA,4BAA4B,0EAAa,WAAW,YAAY,uEAAwB,UAAU,iBAAiB,EAAE;AACrH,YAAY,qEAAQ,WAAW,gEAAiB;AAChD,gBAAgB,oEAAO,qBAAqB,2EAA4B;AACxE;AACA;AACA;AACA,mEAAmE,+DAAgB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2EAAa;AAC7C;AACA,4EAA4E,sBAAsB,EAAE;AACpG;AACA,mGAAmG,qEAAsB;AACzH,8GAA8G,cAAc,EAAE;AAC9H,0FAA0F,2EAA4B;AACtH;AACA;AACA,iFAAiF,mEAAoB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAU;AACvC;AACA;AACA;AACA;AACA,sCAAsC,mEAAoB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oEAA8B,kCAAkC,oEAAqB;AACtH;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA,oEAAoE,uEAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA,+BAA+B,2EAAa;AAC5C;AACA,gGAAgG,8EAA+B;AAC/H,+DAA+D,mEAAoB;AACnF;AACA;AACA;AACA,mEAAmE,sEAAuB;AAC1F,2DAA2D,sEAAuB;AAClF;AACA,mCAAmC,oEAA8B,uBAAuB,oEAAqB;AAC7G;AACA;AACA;AACA;AACA;AACA,4EAA4E,qDAAe;AAC3F;AACA;AACA;AACA,oEAAoE,uEAAwB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,uEAAwB;AACrF;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO,eAAe,2EAA4B;AAC9D;AACA;AACA;AACA;AACA,8BAA8B,oEAAO,eAAe,oEAAqB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0EAAa;AACpD,uBAAuB,oEAAqB,SAAS,2EAA4B;AACjF,SAAS;AACT,4BAA4B,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AACvF;AACA,qBAAqB,0EAAa,WAAW,YAAY,uEAAwB,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,2EAA4B;AACrH;AACA,uDAAuD,QAAQ,mEAAM,OAAO,EAAE;AAC9E;AACA,oEAAoE,uEAAwB;AAC5F;AACA,qCAAqC,oEAAO,sBAAsB,oEAAqB;AACvF,YAAY,wEAAW,yCAAyC,gEAAiB,IAAI,gEAAiB;AACtG,YAAY,mEAAM;AAClB;AACA;AACA;AACA,wBAAwB,0DAAkB;AAC1C;AACA;AACA,CAAC;AACqB;;;;;;;;;;;;;ACzOtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC+G;AAC3B;AAC3C;AACG;AACD;AACN;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,qEAAsB;AACpF;AACA;AACA;AACA;AACA,mFAAmF,4EAA6B;AAChH;AACA,oFAAoF,SAAS;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,kCAAkC;AACzG;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,kCAAkC,sEAAuB;AACzD,8CAA8C,mEAAoB;AAClE;AACA;AACA;AACA,0BAA0B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC3F,iEAAiE,mEAAoB;AACrF;AACA;AACA;AACA;AACA,2BAA2B,oEAA8B,eAAe,oEAAqB;AAC7F;AACA,6EAA6E,8EAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAmB,IAAI;AAC1D;AACA,+BAA+B,6DAAqB;AACpD;AACA;AACA,+FAA+F,oEAAqB;AACpH;AACA;AACA,oBAAoB,8EAAiB,QAAQ,0BAA0B;AACvE,iBAAiB;AACjB,wDAAwD,4EAA6B;AACrF,4DAA4D,qEAAsB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,mEAAoB;AACnG;AACA;AACA;AACA;AACA,+EAA+E,mEAAoB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,QAAQ,4BAA4B;AACrE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA,6DAA6D,6BAA6B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mEAAM,GAAG;AACpC;AACA;AACA,mCAAmC,sDAAgB;AACnD,4BAA4B,mEAAM,GAAG;AACrC,6CAA6C,kDAAY,CAAC,oDAAc;AACxE;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAgB;AACnD,4BAA4B,mEAAM,GAAG;AACrC,+CAA+C,oDAAc;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gCAAgC;AACnG;AACA;AACA,iEAAiE,6BAA6B;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oDAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAa,SAAS,yBAAyB,wEAAyB,EAAE;AACvG,YAAY,8EAAiB,4BAA4B,wEAAyB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2DAAqB;AAC7C,sBAAsB,2DAAqB;AAC3C;AACA;AACA;AACA;AACA,YAAY,oDAAc,gCAAgC,oDAAc;AACxE;AACA;AACA,qCAAqC,oDAAc;AACnD;AACA;AACA,sCAAsC,kDAAY;AAClD,4CAA4C,oDAAc;AAC1D,uCAAuC,oDAAc;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,SAAS;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc,EAAE;AACzE,mEAAmE,sDAAgB;AACnF;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA,wBAAwB,mEAAM,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa,SAAS,YAAY,oEAAqB,gBAAgB;AACxG,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA,iCAAiC,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AAC5F;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAa;AAClD,2BAA2B,gEAAiB;AAC5C,8DAA8D;AAC9D,aAAa;AACb,uCAAuC,0EAAa;AACpD,2BAA2B,mEAAoB,mCAAmC,gEAAiB;AACnG;AACA,aAAa;AACb,qCAAqC,0EAAa;AAClD,2BAA2B,mEAAoB,mCAAmC,gEAAiB;AACnG;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0EAAa;AACpD,mCAAmC,mEAAoB;AACvD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAa;AAC/C,mCAAmC,mEAAoB,mCAAmC,gEAAiB;AAC3G,qBAAqB;AACrB,sCAAsC,0EAAa,SAAS,YAAY,iEAAkB,4BAA4B;AACtH;AACA;AACA,2BAA2B,0EAAa,SAAS,4BAA4B;AAC7E,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,yCAAyC,8EAAiB;AACxF;AACA,gBAAgB,8EAA+B,GAAG,mFAAoC;AACtF,2CAA2C,0EAAa;AACxD,2BAA2B,uDAAQ,qDAAqD,gEAAiB;AACzG,aAAa;AACb;AACA;AACA,2BAA2B,0EAAa;AACxC,2BAA2B,wEAAyB,SAAS,uDAAQ,SAAS,wEAAyB;AACvG,aAAa;AACb,YAAY,oEAAO;AACnB;AACA;AACA,4BAA4B,0EAAa;AACzC,2BAA2B,wEAAyB,SAAS,uDAAQ,SAAS,yEAA0B;AACxG,aAAa;AACb,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,oDAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mEAAM,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,sBAAsB,iDAAiD;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C;AACA,oCAAoC,8EAAiB,8BAA8B,uEAAwB;AAC3G;AACA,sCAAsC,kDAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,8EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,QAAQ,0BAA0B;AAC/D;AACA;AACA;AACA,6EAA6E,0EAA2B;AACxG,uDAAuD,4BAA4B;AACnF;AACA,yBAAyB,oEAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,mEAAmE,8EAAiB;AACpF;AACA;AACA;AACA;AACA;AACA,uDAAuD,4BAA4B;AACnF;AACA,2BAA2B,oDAAc;AACzC,iBAAiB,oDAAc;AAC/B,iBAAiB,oDAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO,qBAAqB,uEAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAsB;AAClD;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8DAA8D,0EAA2B;AACzF,kEAAkE,oEAAqB;AACvF;AACA,oBAAoB;AACpB,4BAA4B,4DAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA;AACA;AACA,oDAAoD,4EAA6B;AACjF;AACA;AACA;AACA;AACA,0BAA0B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD,uBAAuB,uEAAwB;AAC/C,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA,2BAA2B,yDAAmB,0BAA0B,oEAAqB;AAC7F;AACA,QAAQ,8EAAiB,SAAS,mDAAmD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,qDAAS;AACW;;;;;;;;;;;;;ACvrBtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACA;AACiH;AACrE;AACP;AACA;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,8EAA+B;AAClH,oEAAoE,sEAAuB;AAC3F;AACA,iEAAiE,sEAAuB;AACxF;AACA;AACA;AACA;AACA,gFAAgF,cAAc,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA,qBAAqB,oDAAc,0CAA0C,oDAAc;AAC3F,qBAAqB,oDAAc,wCAAwC,oDAAc;AACzF;AACA;AACA;AACA;AACA;AACA,2DAA2D,4BAA4B;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sCAAsC;AACjH;AACA;AACA,qBAAqB,oDAAc,0CAA0C,oDAAc;AAC3F,qBAAqB,oDAAc,wCAAwC,oDAAc;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8EAA+B;AACjE;AACA;AACA;AACA;AACA,oFAAoF,SAAS;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,oDAAc;AAC7E;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA,oDAAoD,oEAAqB;AACzE;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA,0BAA0B,oDAAc;AACxC,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,qCAAqC,mEAAM,GAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAiG,qEAAsB;AACvH;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,+BAA+B,gBAAgB;AAC/C,mEAAmE,uEAAwB;AAC3F;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAY;AAC9C;AACA;AACA;AACA;AACA;AACA,yCAAyC,2DAAqB,YAAY,2DAAqB,eAAe,wDAAkB;AAChI;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8EAAiB;AACxC;AACA;AACA;AACA;AACA;AACA,6EAA6E,8EAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA,YAAY,8EAAiB,QAAQ,0BAA0B;AAC/D;AACA,2EAA2E,8EAA+B;AAC1G;AACA;AACA,oBAAoB,8EAAiB,gBAAgB,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB,eAAe,0BAA0B;AAC1E;AACA;AACA;AACA;AACA,0BAA0B,sEAAuB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,0EAA2B;AACxG,uDAAuD,4BAA4B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,wEAAyB;AACxG,2DAA2D,8BAA8B;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD,wBAAwB,kDAAY;AACpC,4DAA4D,oDAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD,0BAA0B,kDAAY;AACtC,4DAA4D,oDAAc;AAC1E,0BAA0B,oDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,2DAAqB,YAAY,2DAAqB;AACvE,YAAY,wDAAkB;AAC9B;AACA;AACA;AACA;AACA,oBAAoB,2DAAqB,CAAC,oDAAc;AACxD;AACA,wDAAwD,oDAAc;AACtE;AACA;AACA;AACA,sBAAsB,2DAAqB,CAAC,oDAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,oDAAc;AACjF,iEAAiE,oDAAc;AAC/E;AACA;AACA;AACA;AACA,cAAc,2DAAqB,cAAc,2DAAqB;AACtE,iBAAiB,wDAAkB;AACnC;AACA;AACA;AACA;AACA,wCAAwC,2DAAqB,qBAAqB,2DAAqB;AACvG,gBAAgB,wDAAkB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAc;AACxC,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,uEAAwB;AAChG,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qEAAsB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa,SAAS,yBAAyB,wEAAyB,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,iDAAU;AACa;;;;;;;;;;;;;ACtgBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACmH;AACR;AAClE;AACJ;AACM;AACC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAS,EAAE,gDAAgD;AACzF;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA,uFAAuF,0EAA2B;AAClH,mBAAmB,oEAAqB,UAAU,0EAA2B;AAC7E;AACA,6DAA6D,+BAA+B;AAC5F;AACA,2DAA2D,2EAA4B;AACvF,2CAA2C,0EAA2B;AACtE;AACA,wFAAwF,SAAS;AACjG;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA,8CAA8C,mEAAoB;AAClE;AACA;AACA,+EAA+E,qEAAsB;AACrG;AACA;AACA;AACA;AACA,8DAA8D,mFAAoC;AAClG,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kBAAkB,EAAE;AAC9E,aAAa;AACb,YAAY,wEAAW,qBAAqB,2EAA4B;AACxE,oFAAoF,cAAc,EAAE;AACpG;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD,QAAQ,qEAAQ,qBAAqB,2EAA4B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,SAAS;AACjE;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAqB,QAAQ,2DAAqB;AAC3E,YAAY,wDAAkB;AAC9B;AACA;AACA;AACA;AACA,gFAAgF,4EAA6B;AAC7G;AACA,YAAY,8EAAiB,sBAAsB,mBAAmB;AACtE;AACA;AACA,YAAY,8EAAiB,sBAAsB,kBAAkB;AACrE;AACA,8DAA8D,0EAA2B;AACzF;AACA,kBAAkB,mEAAM,GAAG;AAC3B;AACA;AACA,4BAA4B,4DAAoB;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA,4DAA4D,gBAAgB;AAC5E;AACA,8BAA8B,kDAAY;AAC1C;AACA,+DAA+D,4BAA4B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAc;AACxC,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA,0EAA0E,qEAAsB;AAChG,8BAA8B,uEAAU;AACxC,2BAA2B,uEAAU;AACrC;AACA;AACA,8BAA8B,uEAAU;AACxC,2BAA2B,uEAAU;AACrC;AACA;AACA,YAAY,8EAAiB,sBAAsB,0DAA0D;AAC7G;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW,qBAAqB,2EAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,qCAAqC,EAAE;AAChI,yFAAyF,qCAAqC,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,cAAc,EAAE;AAC/E,4DAA4D;AAC5D,0EAA0E;AAC1E;AACA;AACA,8BAA8B,kDAAY;AAC1C;AACA;AACA,mEAAmE,4BAA4B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,mEAAM,GAAG;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,4BAA4B;AAC/F;AACA;AACA,qDAAqD,mEAAM,GAAG;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+BAA+B,cAAc,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa;AAC9C,uBAAuB,oEAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,qEAAQ;AACpB;AACA,iCAAiC,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAa,SAAS,YAAY,gEAAiB,4BAA4B;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,0EAAa;AAC5D,mCAAmC,mEAAoB,mCAAmC,gEAAiB;AAC3G;AACA,qBAAqB;AACrB,6CAA6C,0EAAa;AAC1D,mCAAmC,mEAAoB,mCAAmC,gEAAiB;AAC3G;AACA,qBAAqB;AACrB,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0EAAa;AACnD,+BAA+B,mEAAoB,mCAAmC,gEAAiB;AACvG;AACA,iBAAiB;AACjB,0CAA0C,0EAAa;AACvD,+BAA+B,iEAAkB;AACjD;AACA,iBAAiB;AACjB;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA,cAAc,8EAAiB,0CAA0C,8EAAiB;AAC1F;AACA,gBAAgB,8EAA+B,GAAG,mFAAoC;AACtF,iCAAiC,0EAAa,SAAS,YAAY,uDAAQ,oBAAoB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa;AAC9C,2BAA2B,0EAA2B;AACtD,oBAAoB,0EAA2B;AAC/C,aAAa;AACb,uCAAuC,0EAAa;AACpD,2BAA2B,uEAAwB;AACnD,wBAAwB,qFAAqF;AAC7G,oCAAoC;AACpC,aAAa;AACb;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,6DAA6D,uEAAwB;AACrF;AACA;AACA,+FAA+F;AAC/F;AACA;AACA;AACA,0BAA0B,0EAAa,SAAS,YAAY,wEAAyB,SAAS,uDAAQ,EAAE;AACxG;AACA;AACA,YAAY,qEAAQ,aAAa,wEAAyB;AAC1D,YAAY,oEAAO;AACnB;AACA;AACA;AACA,YAAY,qEAAQ,cAAc,yEAA0B;AAC5D,YAAY,mEAAM;AAClB;AACA;AACA;AACA,YAAY,qEAAQ,YAAY,sEAAuB;AACvD,YAAY,oEAAO;AACnB;AACA;AACA;AACA,YAAY,qEAAQ,eAAe,wEAAyB;AAC5D,YAAY,mEAAM;AAClB;AACA;AACA;AACA,0BAA0B,oDAAc;AACxC;AACA,8DAA8D,8BAA8B,EAAE;AAC9F;AACA,0BAA0B,oDAAc;AACxC;AACA;AACA,4BAA4B,2DAAqB;AACjD,oBAAoB,mEAAM,GAAG;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qEAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kDAAY;AACxB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uEAAuE,kDAAY;AACnF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA,yDAAyD,mEAAM,GAAG;AAClE,iFAAiF,mEAAoB;AACrG;AACA;AACA,sEAAsE,mFAAoC;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,yBAAyB,2EAA4B;AAC7E,4BAA4B;AAC5B,oCAAoC,4DAAoB;AACxD;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB,wBAAwB,iCAAiC,uEAAU,YAAY;AACxH;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAc;AACxC,uBAAuB,2DAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA,+CAA+C,mEAAM,GAAG;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,aAAa;AACb,uEAAuE,wEAAyB;AAChG;AACA,wEAAwE,gEAAiB;AACzF;AACA,iDAAiD,uEAAU;AAC3D;AACA;AACA;AACA;AACA;AACA,6FAA6F,qEAAsB;AACnH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2DAAqB,CAAC,oDAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,6BAA6B,oDAAc;AAC3C;AACA,2BAA2B,oDAAc;AACzC,wBAAwB,oDAAc;AACtC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,8EAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,2BAA2B,8BAA8B;AACzD,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,EAAE;AACzG;AACA;AACA,0DAA0D,kBAAkB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,4DAA4D,aAAa;AACzE,iBAAiB,8EAAiB;AAClC,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8EAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,yEAA0B;AAC3F;AACA,YAAY,qEAAQ,eAAe,0EAA2B;AAC9D;AACA,gEAAgE,mEAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA,YAAY,wEAAW,eAAe,4EAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,YAAY,oEAAqB;AACzD;AACA;AACA;AACA,gBAAgB,wEAAW,YAAY,oEAAqB;AAC5D;AACA;AACA,SAAS;AACT,8DAA8D,mFAAoC;AAClG;AACA,YAAY,wEAAW,mBAAmB,+EAAgC;AAC1E,YAAY,qEAAQ,mBAAmB,iFAAkC;AACzE;AACA;AACA,YAAY,wEAAW,mBAAmB,iFAAkC;AAC5E,YAAY,qEAAQ,mBAAmB,+EAAgC;AACvE;AACA;AACA,YAAY,wEAAW,mBAAmB,gEAAiB;AAC3D;AACA;AACA,YAAY,qEAAQ,mBAAmB,gEAAiB;AACxD;AACA,0EAA0E,0EAA2B;AACrG;AACA;AACA,gBAAgB,wEAAW,YAAY,gEAAiB;AACxD;AACA;AACA,gBAAgB,qEAAQ,YAAY,gEAAiB;AACrD;AACA,SAAS;AACT;AACA;AACA,2BAA2B,0EAAa,SAAS,YAAY,oEAAqB,+BAA+B;AACjH,4DAA4D,mFAAoC;AAChG;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,sDAAsD,mFAAoC;AAC1F,qEAAqE,+EAAgC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,qDAAS;AACc;;;;;;;;;;;;;AC9zBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC0G;AACnC;AACvB;AACX;AACM;AACC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,oEAAqB;AAChG,kBAAkB,4EAA6B,UAAU,uEAAwB;AACjF;AACA,yDAAyD,6BAA6B;AACtF;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2DAAqB;AACjD,0BAA0B,kDAAY,CAAC,0DAAoB;AAC3D,+BAA+B,yCAAyC;AACxE,4BAA4B,oDAAc;AAC1C,0BAA0B,kDAAY;AACtC;AACA;AACA;AACA;AACA,6CAA6C,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AACtG;AACA;AACA,4BAA4B,kDAAY;AACxC;AACA;AACA;AACA;AACA,+DAA+D,mEAAoB;AACnF;AACA,0BAA0B,yDAAmB,8BAA8B,oEAAqB;AAChG,iEAAiE,oEAAqB;AACtF,2BAA2B,oEAA8B,aAAa,oEAAqB;AAC3F,yFAAyF,8EAA+B;AACxH;AACA,yBAAyB,qBAAqB;AAC9C;AACA;AACA,+BAA+B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,4EAA6B;AACpG;AACA,yCAAyC,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAc;AAC7C,6BAA6B,kDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mEAAM,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,eAAe;AAC5E;AACA;AACA,6BAA6B,kDAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kDAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAoB;AACnF;AACA;AACA,iEAAiE,oEAAqB;AACtF,2BAA2B,oEAA8B,aAAa,oEAAqB;AAC3F,yFAAyF,8EAA+B;AACxH;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA,uDAAuD,SAAS;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,SAAS;AAC5D;AACA,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC5F;AACA,uBAAuB,kDAAY,CAAC,0DAAoB;AACxD;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA,4BAA4B,mEAAM,GAAG;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D,iDAAiD,mEAAM,GAAG,kBAAkB,0BAA0B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB;AACA,SAAS;AACT,oBAAoB;AACpB,4BAA4B,4DAAoB;AAChD;AACA;AACA;AACA;AACA,8CAA8C,mEAAM,GAAG;AACvD;AACA;AACA,8CAA8C,mEAAM,GAAG;AACvD;AACA;AACA;AACA,8CAA8C,mEAAM,GAAG;AACvD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAY,CAAC,0DAAoB;AACvD;AACA;AACA,sBAAsB,kDAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAAiB,iBAAiB,gGAAgG;AAC1I,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,2BAA2B,0EAAa;AACxC,uBAAuB,oEAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,qEAAQ;AACpB;AACA;AACA,YAAY,qEAAQ,iBAAiB,4DAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAa;AAC1C,2BAA2B,gEAAiB;AAC5C,4DAA4D;AAC5D,aAAa;AACb,+BAA+B,0EAAa;AAC5C,2BAA2B,mEAAoB,mCAAmC,gEAAiB;AACnG;AACA,aAAa;AACb,6BAA6B,0EAAa;AAC1C,2BAA2B,mEAAoB,mCAAmC,gEAAiB;AACnG;AACA,aAAa;AACb,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0EAAa,SAAS,YAAY,sEAAuB,EAAE;AAC5F,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kDAAY;AACnC,wBAAwB,mEAAM,GAAG;AACjC;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAc;AACpC,wBAAwB,oDAAc;AACtC;AACA,sBAAsB,kDAAY;AAClC;AACA,wDAAwD,qDAAe;AACvE;AACA;AACA,YAAY,oDAAc,yBAAyB,oDAAc;AACjE;AACA;AACA,YAAY,oDAAc,uBAAuB,oDAAc;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kDAAY;AACvC,wBAAwB,oDAAc;AACtC,sBAAsB,oDAAc;AACpC;AACA;AACA;AACA,4BAA4B,oDAAc;AAC1C,0BAA0B,kDAAY,CAAC,oDAAc;AACrD;AACA;AACA,sCAAsC,oDAAc;AACpD;AACA;AACA,uDAAuD,4BAA4B;AACnF;AACA;AACA;AACA;AACA;AACA,qBAAqB,oDAAc,uCAAuC,oDAAc;AACxF;AACA;AACA;AACA;AACA,sBAAsB,oDAAc,uCAAuC,oDAAc;AACzF,qBAAqB,oDAAc,uCAAuC,oDAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA,SAAS;AACT;AACA;AACA,oCAAoC,uEAAwB,mBAAmB,8EAA+B,mBAAmB,sEAAuB;AACxJ;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4DAAa;AACM;;;;;;;;;;;;;ACxgBrB;AAAA;AAAA;AAAA;AAAA;AAC8C;AACwE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,qGAA2B;AACjE,iBAAiB;AACjB,wEAAwE,2CAA2C,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA,kDAAkD,yGAA+B;AACjF;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,sBAAsB,mEAAM,GAAG;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oBAAoB,EAAE;AAC1F;AACA,oDAAoD,oEAAoE,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2BAA2B,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,yCAAyC,2BAA2B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;AClJ3B;AAAA;AAAA;AAAA;AAAA;AACiE;AACoB;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qGAA2B;AACvD,4DAA4D,8EAAiB;AAC7E;AACA;AACA;AACA,4BAA4B,qGAA2B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,4BAA4B,EAAE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,mEAAM;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,mCAAmC,EAAE;AACxF,mCAAmC,8EAAiB;AACpD,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA,iEAAiE,8EAAiB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yDAAyD,MAAM;AAC/D;AACA;AACA,gCAAgC,QAAQ,QAAQ,8BAA8B;AAC9E;AACA;AACA;AACA,6FAA6F;AAC7F,+BAA+B,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC0B;;;;;;;;;;;;;AC3L3B;AAAA;AAAA;AAAA;AAAA;AACwD;AACV;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB,mDAAmD,EAAE,EAAE;AACzH,qBAAqB,yBAAyB,mBAAmB;AACjE,4CAA4C,2BAA2B,2CAA2C,EAAE,EAAE;AACtH,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,qCAAqC;AACrC,iCAAiC,mEAAM,GAAG,eAAe,mBAAmB;AAC5E;AACA;AACA,aAAa;AACb,uBAAuB,8BAA8B;AACrD;AACA;AACA,6DAA6D,+BAA+B;AAC5F;AACA;AACA;AACA,0BAA0B,+BAA+B;AACzD,uBAAuB,qEAAQ,EAAE,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;ACnEvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACkC;AACA;AACH;AACP;;;;;;;;;;;;;ACNxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC4F;AAChD;AACa;AACjB;AACmB;AACD;AACH;AACX;AACF;AACO;AACT;AACF;AACK;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,kBAAkB,0EAAa;AAC/B;AACA;AACA;AACA;AACA;AACA,kCAAkC,qBAAqB,EAAE,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB,0EAAa,SAAS,uEAAuE;AACnH;AACA,QAAQ,uDAAQ,QAAQ,kDAAG,EAAE,oDAAI,EAAE,4DAAQ,EAAE,qDAAK,EAAE,uDAAM,EAAE,kEAAW,EAAE,qEAAa,EAAE,sEAAa,EAAE,mDAAI,EAAE,oEAAY;AACzH,iCAAiC,uDAAQ;AACzC;AACA;AACA,8BAA8B,qDAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,6BAA6B;AACtF;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,4BAA4B,8EAAiB;AAC7C;AACA;AACA;AACA;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kEAAS;AACpC;AACA,oCAAoC,qDAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgB;;;;;;;;;;;;;ACpIjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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A,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACM;;;;;;;;;;;;;ACvCrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC0F;AACzC;AACL;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAO;AACrC,wBAAwB,SAAS,oBAAoB,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA,mDAAmD,2EAA4B;AAC/E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,uEAAwB;AACvD;AACA;AACA,+BAA+B,oEAAqB;AACpD;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,2CAA2C,uEAAwB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,aAAa,8EAAiB;AAC9B,mCAAmC,0EAAa;AAChD;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oDAAc;AAC1C,0BAA0B,oDAAc;AACxC;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb,6BAA6B,8DAAwB;AACrD,iCAAiC,8DAAwB;AACzD,+BAA+B,8DAAwB;AACvD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iCAAiC,8DAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA,CAAC;AACuB;;;;;;;;;;;;;AClJxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwH;AACE;AACnE;AACI;AACX;AACsB;AACvB;AACY;AACT;AAC2B;AACjC;AACF;AACL;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,uBAAuB,0EAAa,SAAS,iDAAiD;AAC9F;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA,sBAAsB,4EAA6B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4EAA6B,SAAS,+DAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,qEAAsB;AACxG;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,+FAA+F,iFAAkC;AACjI;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,kCAAkC,WAAW,mFAAoC,kDAAkD;AACnI;AACA,iBAAiB;AACjB;AACA;AACA,gCAAgC,6DAAM;AACtC;AACA;AACA;AACA,QAAQ,qEAAQ,+BAA+B,4EAA6B;AAC5E;AACA,YAAY,iEAAY,sCAAsC,+EAAgC;AAC9F,YAAY,iEAAY,sCAAsC,+EAAgC;AAC9F;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,uCAAuC,8EAAiB;AACxD,YAAY,wEAAW,mEAAmE,gEAAiB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,8EAAiB;AAC7F,oBAAoB,qEAAQ,mEAAmE,gEAAiB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iFAAkC;AACzE;AACA;AACA;AACA;AACA,yCAAyC,qEAAsB;AAC/D;AACA;AACA;AACA;AACA,kCAAkC,6DAAQ;AAC1C,4BAA4B,yDAAe;AAC3C;AACA;AACA;AACA,2FAA2F,8EAAiB;AAC5G,iDAAiD,2EAA4B;AAC7E,+CAA+C,yEAA0B;AACzE,oEAAoE,yDAAkB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,6DAAQ;AAC1C,4BAA4B,0DAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,0EAAa,SAAS,YAAY,uEAAwB,EAAE;AACpF,mBAAmB,0EAAa;AAChC;AACA,uBAAuB,6DAAc;AACrC,oBAAoB,yBAAyB;AAC7C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,4BAA4B;AAC3F;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,kFAAkF;AAClF,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,mFAAoC;AAClF,qDAAqD,wFAAyC;AAC9F;AACA,wDAAwD,gEAAiB;AACzE,6CAA6C,gEAAiB;AAC9D,wDAAwD,iEAAkB;AAC1E,6CAA6C,iEAAkB;AAC/D,wDAAwD,mFAAoC;AAC5F;AACA,kEAAkE,2EAA4B;AAC9F,gDAAgD,2EAA4B;AAC5E,kEAAkE,yEAA0B;AAC5F,gDAAgD,yEAA0B;AAC1E,sDAAsD,mFAAoC;AAC1F;AACA,0DAA0D,6EAA8B;AACxF,0DAA0D,kEAAmB;AAC7E,sDAAsD,mFAAoC;AAC1F;AACA,0DAA0D,8EAA+B;AACzF,0DAA0D,4EAA6B;AACvF,oDAAoD,gFAAiC;AACrF;AACA,4CAA4C,4EAA6B;AACzE,kCAAkC,0EAAa,UAAU,oCAAoC;AAC7F,qBAAqB,0EAAa;AAClC;AACA,oBAAoB;AACpB,SAAS;AACT,6BAA6B,8DAAM,EAAE,+FAA+F;AACpI;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,0DAA0D,mFAAoC;AAC9F,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA,gDAAgD,oEAAqB;AACrE,mDAAmD,oEAAqB;AACxE,wCAAwC,oEAAqB;AAC7D;AACA,qBAAqB,0EAAa,YAAY,SAAS,yDAAyD,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAa,SAAS,uBAAuB;AAC5D;AACA;AACA,eAAe,0EAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wEAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,2EAA4B,UAAU,yEAA0B;AACpG;AACA,6DAA6D,+BAA+B;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2EAA4B;AACpE;AACA,0CAA0C,yEAA0B;AACpE;AACA;AACA,2BAA2B,yDAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,2BAA2B,8EAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yHAAyH;AACzH,wCAAwC,uCAAuC,+BAA+B;AAC9G;AACA,8BAA8B,qEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iCAAiC,yCAAyC;AAC1E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mCAAmC,sEAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iCAAiC,yCAAyC;AAC1E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA,gCAAgC,0DAAK;AACrC;AACA;AACA,aAAa;AACb,6BAA6B,wDAAwD;AACrF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oDAAoD,8EAA+B;AACnF,kDAAkD,4EAA6B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gEAAQ;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,oEAAqB;AAC1D;AACA;AACA,QAAQ,4DAAK;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAiB;AAClC;AACA;AACA,iBAAiB,iEAAkB;AACnC;AACA;AACA,iBAAiB,2EAA4B;AAC7C;AACA;AACA,iBAAiB,yEAA0B;AAC3C;AACA;AACA,iBAAiB,oEAAqB;AACtC;AACA;AACA,iBAAiB,6EAA8B;AAC/C;AACA;AACA,iBAAiB,8EAA+B;AAChD;AACA;AACA,iBAAiB,4EAA6B;AAC9C;AACA;AACA,iBAAiB,kEAAmB;AACpC;AACA;AACA,iBAAiB,4EAA6B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAiB;AAClC;AACA;AACA,iBAAiB,iEAAkB;AACnC;AACA;AACA,iBAAiB,oEAAqB;AACtC;AACA;AACA,iBAAiB,2EAA4B;AAC7C;AACA;AACA,iBAAiB,yEAA0B;AAC3C;AACA;AACA,iBAAiB,8EAA+B;AAChD;AACA;AACA,iBAAiB,4EAA6B;AAC9C;AACA;AACA,iBAAiB,4EAA6B;AAC9C;AACA;AACA,iBAAiB,6EAA8B;AAC/C;AACA;AACA,iBAAiB,kEAAmB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6EAA8B;AACpE;AACA;AACA,2CAA2C,kEAAmB;AAC9D;AACA;AACA,2CAA2C,4EAA6B;AACxE;AACA;AACA;AACA;AACA,sBAAsB,0EAAa;AACnC,sCAAsC,6DAAM;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,iBAAiB;AACjB,iBAAiB,0DAA0D,iEAAiE,EAAE;AAC9I;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mDAAmD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW;AACvB;AACA;AACA,YAAY,qEAAQ;AACpB,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6DAAc;AACvD,yCAAyC,gFAAiC;AAC1E;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qEAAsB;AAClF;AACA,YAAY,qEAAQ,iBAAiB,gEAAiB;AACtD;AACA;AACA;AACA;AACA,+BAA+B,8EAAiB,6BAA6B,8EAAiB;AAC9F;AACA,aAAa;AACb;AACA,sCAAsC,8EAAiB;AACvD;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA,8DAA8D,iFAAkC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,6DAAc;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,8DAAc;AAChD;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA,gDAAgD,4EAA6B;AAC7E;AACA,uDAAuD,4BAA4B;AACnF;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA,+CAA+C,kEAAmB;AAClE,kBAAkB,8EAAiB,yCAAyC,8EAAiB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2EAA4B;AACpE,sCAAsC,yEAA0B;AAChE;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC,YAAY,qEAAQ,gDAAgD,kFAAmC;AACvG,YAAY,qEAAQ,gBAAgB,gEAAiB;AACrD,iDAAiD,mFAAoC;AACrF,gBAAgB,wEAAW,mCAAmC,mFAAoC,IAAI,+DAAgB;AACtH;AACA;AACA;AACA;AACA,sBAAsB,8EAAiB;AACvC;AACA,YAAY,wEAAW,gDAAgD,kFAAmC;AAC1G,YAAY,wEAAW,gBAAgB,gEAAiB;AACxD;AACA,gBAAgB,qEAAQ,mCAAmC,mFAAoC,IAAI,+DAAgB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qDAAc;AACtC;AACA,2BAA2B,mDAAY;AACvC;AACA;AACA;AACA,0BAA0B,qDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,yDAAkB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qEAAQ,wBAAwB,iFAAoB;AACzE;AACA;AACA,qBAAqB,qEAAQ,mHAAmH,6DAAQ;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW,mCAAmC,qEAAsB,IAAI,gEAAiB;AACrG;AACA,yCAAyC,gFAAiC;AAC1E,yCAAyC,6DAAc;AACvD,YAAY,8EAAiB;AAC7B,uBAAuB,mEAAM,GAAG;AAChC,+CAA+C,kEAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,6CAA6C;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,8EAAiB;AACvD;AACA;AACA,gBAAgB,wEAAW;AAC3B,iDAAiD,gBAAgB;AACjE;AACA;AACA,gBAAgB,qEAAQ;AACxB,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA,8DAA8D,iFAAkC;AAChG,gEAAgE,qEAAsB;AACtF;AACA;AACA;AACA;AACA,4DAA4D,+EAAgC;AAC5F;AACA;AACA,oBAAoB,qEAAQ,aAAa,qEAAsB;AAC/D;AACA;AACA,oBAAoB,wEAAW,aAAa,qEAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qFAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,cAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,mFAAoC;AAC/F;AACA;AACA,YAAY,qEAAQ,gBAAgB,+DAAgB;AACpD,oDAAoD,8EAA+B;AACnF,kDAAkD,4EAA6B;AAC/E;AACA;AACA,yDAAyD,uCAAuC,EAAE;AAClG;AACA,mCAAmC,oDAAoD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAW,gBAAgB,+DAAgB;AACvD;AACA;AACA;AACA,+CAA+C,4EAA6B;AAC5E,qDAAqD,2BAA2B;AAChF;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6DAAc;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mEAAM,GAAG,6BAA6B,4EAA6B;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAM,GAAG;AAC/B;AACA,+CAA+C,8EAAiB;AAChE,kBAAkB,qDAAc;AAChC,6CAA6C,8EAAiB;AAC9D,kBAAkB,mDAAY,CAAC,qDAAc;AAC7C;AACA,gBAAgB;AAChB;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,aAAa;AACb,gBAAgB,8EAAiB;AACjC;AACA;AACA,iBAAiB;AACjB;AACA,uBAAuB,mEAAM,GAAG;AAChC;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB,+BAA+B,8EAAiB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8EAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC,oDAAoD;AACpD,2BAA2B;AAC3B;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,2CAA2C,uCAAuC;AAClF;AACA;AACA,+DAA+D,cAAc,EAAE;AAC/E,2CAA2C,0BAA0B;AACrE;AACA;AACA;AACA,+BAA+B,8EAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAiB;AACjC;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mDAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2CAA2C,uBAAuB,mEAAM,GAAG,SAAS,EAAE;AACtF,sBAAsB,mEAAM,GAAG;AAC/B;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC,sBAAsB,qDAAc;AACpC,oBAAoB,qDAAc;AAClC,qBAAqB,qDAAc;AACnC,wBAAwB,qDAAc;AACtC;AACA;AACA;AACA,yBAAyB,qDAAc;AACvC,oBAAoB,qDAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAc;AACpC,oBAAoB,qDAAc;AAClC,qBAAqB,qDAAc;AACnC,wBAAwB,qDAAc;AACtC;AACA;AACA;AACA,yBAAyB,qDAAc;AACvC,oBAAoB,qDAAc;AAClC;AACA;AACA;AACA;AACA,yBAAyB,qDAAc;AACvC,gBAAgB,qDAAc;AAC9B,iBAAiB,qDAAc;AAC/B,oBAAoB,qDAAc;AAClC,kBAAkB,qDAAc;AAChC,oBAAoB,qDAAc;AAClC,qBAAqB,qDAAc;AACnC,wBAAwB,qDAAc;AACtC;AACA;AACA;AACA,sBAAsB,qDAAc;AACpC,gBAAgB,qDAAc;AAC9B,iBAAiB,qDAAc;AAC/B,oBAAoB,qDAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAM,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,8EAAiB;AACtF;AACA;AACA;AACA;AACA,4BAA4B,2DAAoB;AAChD;AACA;AACA,4BAA4B,2DAAoB;AAChD;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,8DAA8D,uEAAuE,EAAE;AACvI,2CAA2C,sEAAsE,EAAE;AACnH;AACA,qCAAqC,gEAAgE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kEAAkE;AACrG;AACA;AACA,uCAAuC,0BAA0B;AACjE,0CAA0C,mEAAM,GAAG;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6DAAc;AAC9D;AACA;AACA;AACA,0BAA0B,4EAA6B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uEAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,2EAA4B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8EAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4EAA6B;AAC7E,uDAAuD,4BAA4B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;AC5wDvB;AAAA;AAAA;AAAA;AAAA;AAAA;AACgF;AACzB;AACX;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,oEAAa;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,qEAAsB,+BAA+B,qEAAsB;AACpH,yCAAyC,kFAAmC,+BAA+B,mEAAoB;AAC/H,yCAAyC,mFAAoC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AA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,oEAAqB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,kEAAmB;AAC3F,gBAAgB,8EAAiB;AACjC,gCAAgC,0EAAa;AAC7C,+BAA+B,kEAAmB;AAClD;AACA,iBAAiB;AACjB;AACA,6BAA6B,oEAAO,kBAAkB,mEAAoB,UAAU,qEAAsB;AAC1G;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO,kBAAkB,mEAAoB,UAAU,qEAAsB;AAClG,YAAY,qEAAsB;AAClC,YAAY,8EAAiB,yCAAyC,uEAAwB;AAC9F;AACA;AACA;AACA,uEAAuE,6DAAc;AACrF,+EAA+E,gEAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAa,SAAS,YAAY,mEAAoB,EAAE;AACrF;AACA;AACA;AACA,gEAAgE,gEAAiB;AACjF;AACA,YAAY,4DAAK,cAAc,uCAAuC,iDAAiD,EAAE;AACzH;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,2DAA2D,8DAAe;AAC1E;AACA,wDAAwD,uDAAQ,SAAS,mEAAoB;AAC7F;AACA,4DAA4D,kFAAmC;AAC/F;AACA;AACA;AACA,4DAA4D,qEAAsB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oEAAO,uBAAuB,oEAAqB;AAC3G,uEAAuE,6DAAc;AACrF,uEAAuE,6DAAc;AACrF;AACA;AACA;AACA;AACA,6EAA6E,mEAAoB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oEAAO,uBAAuB,oEAAqB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6DA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yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,8EAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kDAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,qDAAe;AAC5E,kCAAkC,OAAO;AACzC;AACA;AACA,+DAA+D,qDAAe;AAC9E,+EAA+E,OAAO;AACtF;AACA;AACA,0EAA0E,OAAO;AACjF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,6EAA6E,2EAA4B;AACzG;AACA,YAAY,mEAAM;AAClB;AACA;AACA,qBAAqB,oEAAO,qBAAqB,uEAAwB,UAAU,mEAAoB;AACvG,+DAA+D,uDAAuD;AACtH,mDAAmD,8EAA+B,cAAc,8DAAwB;AACxH,qEAAqE,+EAAgC;AACrG;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,mDAAmD,yEAA0B;AAC7E,QAAQ,wEAAW,4CAA4C,+EAAgC,cAAc,oEAAqB;AAClI,YAAY,oDAAc,0BAA0B,oDAAc;AAClE,YAAY,qEAAQ,4CAA4C,+EAAgC,cAAc,oEAAqB;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC,sFAAsF,qEAAsB;AAC5G;AACA;AACA;AACA,sFAAsF,qEAAsB;AAC5G;AACA,wBAAwB,8EAAiB;AACzC,iGAAiG,qEAAsB;AACvH;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oEAAO,eAAe,mEAAoB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,gEAAiB;AACtF;AACA,YAAY,mEAAM,+BAA+B,4BAA4B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,2EAA4B;AACzG;AACA,YAAY,mEAAM;AAClB;AACA,qEAAqE,+EAAgC;AACrG;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA,mDAAmD,yEAA0B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,4EAA6B;AAClG;AACA,sCAAsC,gFAAiC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sFAAuC;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4EAA6B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,4EAA6B;AACxE;AACA;AACA,+CAA+C,gEAAiB,gCAAgC,wEAAyB;AACzH,uCAAuC,4EAA6B,mCAAmC,4EAA6B;AACpI,qFAAqF,4EAA6B;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,wDAAwD,gEAAiB;AACzE;AACA,gBAAgB,qEAAQ,8CAA8C,kEAAmB,IAAI,+DAAgB;AAC7G;AACA;AACA,gBAAgB,wEAAW,8CAA8C,kEAAmB,IAAI,+DAAgB;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAwB,yCAAyC,oEAAoE;AACpJ;AACA;AACA,sCAAsC,oEAAqB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8EAAiB;AACpC,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uEAAuE,oEAAqB;AAC5F;AACA;AACA,kDAAkD,mEAAM,GAAG;AAC3D;AACA;AACA,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA,yDAAyD,6DAAc;AACvE;AACA;AACA,gBAAgB,yDAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,uEAAU;AACtE;AACA;AACA;AACA,kDAAkD;AAClD,iDAAiD;AACjD;AACA;AACA,kCAAkC,wEAAS;AAC3C;AACA;AACA;AACA,0CAA0C,wEAAS;AACnD;AACA,yDAAyD;AACzD,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,+EAA+E,qEAAsB;AACrG,yCAAyC,wDAAkB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qEAAsB;AACzF,oEAAoE,qEAAsB;AAC1F;AACA,mEAAmE,gEAAiB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mEAAoB;AAC5E,6EAA6E,gEAAiB;AAC9F;AACA;AACA;AACA;AACA;AACA,0EAA0E,mEAAoB;AAC9F;AACA;AACA;AACA,uEAAuE,6DAAc;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mEAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA,kDAAkD,uEAAU;AAC5D;AACA;AACA,mDAAmD,+EAAgC;AACnF;AACA;AACA;AACA,kEAAkE,2EAA4B;AAC9F;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6DAAc;AACtE;AACA;AACA,sEAAsE,mEAAoB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,sEAAuB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oEAAqB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B,oEAAO,iBAAiB,iEAAkB;AACpE,aAAa,8EAAiB;AAC9B;AACA,iBAAiB,8EAAiB;AAClC;AACA,2CAA2C,qBAAqB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAuB,UAAU,qEAAsB,UAAU,qEAAsB;AACtH,mBAAmB,mEAAoB,UAAU,oEAAqB;AACtE,gEAAgE,sEAAuB;AACvF,8DAA8D,oEAAO,0BAA0B,oEAAO;AACtG;AACA;AACA;AACA,0DAA0D,uEAAwB;AAClF;AACA;AACA;AACA,YAAY,oEAAO,eAAe,oEAAqB,UAAU,qEAAsB;AACvF;AACA;AACA,aAAa,oEAAO,eAAe,2EAA4B;AAC/D,uCAAuC,uEAAwB;AAC/D,iBAAiB,oEAAO,eAAe,6DAAc,OAAO,oEAAO,eAAe,mEAAoB;AACtG;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wDAAe;AACtC,uBAAuB,yDAAgB;AACvC,uBAAuB,4DAAmB;AAC1C,uBAAuB,wDAAe;AACtC;AACA;AACA,wBAAwB,wDAAe;AACvC,wBAAwB,yDAAgB;AACxC,wBAAwB,4DAAmB;AAC3C,wBAAwB,wDAAe;AACvC;AACA;AACA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;;;;;;;;;;;;;AC3zCvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC+G;AAClC;AAClB;AACtB;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0EAAa,SAAS,YAAY,mEAAoB,EAAE;AAC/E,QAAQ,qEAAQ;AAChB,wDAAwD,oEAAqB;AAC7E;AACA,gDAAgD,wEAAyB;AACzE,kBAAkB,0EAAa;AAC/B;AACA,qBAAqB,0EAAa;AAClC;AACA,mBAAmB,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AAC7E;AACA,yCAAyC,sEAAuB;AAChE;AACA;AACA,yBAAyB,oDAAc;AACvC;AACA;AACA;AACA,8DAA8D,kDAAkD;AAChH;AACA,kGAAkG,6EAA8B;AAChI;AACA;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,0BAA0B,mEAAM;AAChC,qDAAqD,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oDAAc;AACvC,qDAAqD,sEAAuB;AAC5E,QAAQ,yDAAmB;AAC3B;AACA;AACA,0BAA0B,oEAAO,cAAc,qEAAsB;AACrE;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D;AACA,gBAAgB,8EAAiB,gCAAgC,8EAAiB;AAClF,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,sEAAuB;AAC5E;AACA,YAAY,yDAAmB;AAC/B;AACA;AACA,YAAY,mEAAM;AAClB;AACA,yBAAyB,oDAAc;AACvC,yBAAyB,0EAAa;AACtC;AACA;AACA,sDAAsD,kDAAY;AAClE;AACA,QAAQ,mEAAM;AACd;AACA;AACA,yBAAyB,0EAAa;AACtC;AACA;AACA,sDAAsD,kDAAY;AAClE;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD;AACA,4BAA4B,kDAAY;AACxC;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA,qCAAqC,kDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAQ,iBAAiB,2EAA4B;AAC7E;AACA,iCAAiC,kDAAY;AAC7C;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAe;AACrE;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0EAAa;AACtC;AACA;AACA;AACA;AACA;AACA,kDAAkD,kDAAY;AAC9D;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA,yDAAyD,oBAAoB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kDAAY;AAC9D;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oEAAO,WAAW,qEAAsB;AACxE;AACA;AACA;AACA,gCAAgC,oEAAO,WAAW,qEAAsB;AACxE;AACA;AACA,+DAA+D,cAAc;AAC7E;AACA;AACA;AACA,wCAAwC,oEAAO,WAAW,qEAAsB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAY;AACtC;AACA;AACA;AACA,SAAS;AACT,sBAAsB,kDAAY;AAClC,oCAAoC,mBAAmB,kDAAY,cAAc,IAAI,sBAAsB,kDAAY;AACvH;AACA;AACA;AACA;AACA,aAAa,8EAAiB,eAAe,8EAAiB;AAC9D,wBAAwB,oDAAc;AACtC,sBAAsB,kDAAY,gCAAgC,qDAAe;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2DAA2D,oDAAc;AACzE;AACA,eAAe,oDAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2DAA2D,oDAAc;AACzE;AACA,eAAe,oDAAc,CAAC,kDAAY;AAC1C;AACA;AACA;AACA,eAAe,kDAAY;AAC3B;AACA;AACA,eAAe,oDAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kDAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,8BAA8B,8EAAiB;AAC/C,mBAAmB,8DAAwB,gDAAgD,8DAA8D;AACzJ;AACA;AACA;AACA,0BAA0B,kDAAY;AACtC;AACA;AACA;AACA;AACA,sBAAsB,oEAAO,wBAAwB,qEAAsB;AAC3E;AACA,aAAa,8EAAiB;AAC9B,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA,QAAQ,iEAAY,sCAAsC,qEAAsB,GAAG,qDAAY;AAC/F;AACA;AACA,QAAQ,iEAAY,yCAAyC,qEAAsB,GAAG,qDAAY;AAClG;AACA,iEAAiE,iCAAiC;AAClG;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,uBAAuB,6DAAoB;AAC3C,uBAAuB,wDAAe;AACtC;AACA;AACA;AACA,4BAA4B,6DAAoB;AAChD,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,qEAAsB;AACjF;AACA,uCAAuC,uEAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sEAAU;AACM;;;;;;;;;;;;;ACtclB;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2DAAY;AACC;;;;;;;;;;;;;ACvCf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwH;AAClE;AACD;AACN;AACJ;AACN;AACO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,4DAAoB;AAC3C;AACA;AACA,wBAAwB,4DAAoB;AAC5C;AACA;AACA,yBAAyB,oEAAO;AAChC,yBAAyB,oEAAO;AAChC,kEAAkE,qEAAsB;AACxF;AACA,iBAAiB,8EAAiB;AAClC;AACA,gFAAgF,6DAAc;AAC9F,gBAAgB,qEAAQ,gBAAgB,gEAAiB;AACzD;AACA;AACA,gBAAgB,wEAAW,gBAAgB,gEAAiB;AAC5D;AACA,qBAAqB,8EAAiB;AACtC;AACA,uCAAuC,8EAAiB;AACxD,oDAAoD,6DAAc;AAClE;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AAChF,yBAAyB,0EAAa,SAAS,YAAY,iEAAkB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAkB,GAAG,oDAAoD;AACrG,mCAAmC,mEAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,+EAA+E,iEAAkB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6DAAqB,GAAG,oEAAoE;AAC7H,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAkB,GAAG,oDAAoD;AACzG;AACA;AACA,qCAAqC,6DAAqB,GAAG,oEAAoE;AACjI,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,WAAW,+DAAgB;AACnD;AACA;AACA,gBAAgB,wEAAW,WAAW,+DAAgB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,eAAe,8DAAwB;AACvC;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS;AACT;AACA;AACA,iDAAiD;AACjD,SAAS;AACT;AACA;AACA;AACA,6BAA6B;AAC7B,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,sEAAsE;AAClG;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AACvF,gCAAgC,0EAAa,SAAS,YAAY,wEAAyB,EAAE;AAC7F;AACA;AACA,+BAA+B,4DAAK;AACpC;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA,SAAS;AACT;AACA,kCAAkC,kEAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAO;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,6DAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,oDAAc;AACtG,2CAA2C,oDAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,wDAAkB;AACnE;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,mDAAmD,mEAAM,QAAQ,2CAA2C;AAC5G;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA,gDAAgD,iCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,eAAe,+DAAgB;AACvD;AACA;AACA,gBAAgB,wEAAW,eAAe,+DAAgB;AAC1D;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,eAAe,+DAAgB;AACvD;AACA;AACA,gBAAgB,wEAAW,eAAe,+DAAgB;AAC1D;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,iBAAiB,gEAAiB;AAC1D;AACA;AACA,gBAAgB,wEAAW,iBAAiB,gEAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sEAAuB;AAC5F,qEAAqE,kEAAmB;AACxF;AACA;AACA;AACA,wBAAwB,2DAAqB,CAAC,oDAAc;AAC5D,uBAAuB,kDAAY;AACnC;AACA;AACA,wBAAwB,2DAAqB;AAC7C,qCAAqC,oDAAc;AACnD,uBAAuB,0DAAoB;AAC3C;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;;;;;;;;;;;;;ACnhB1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACmF;AACxB;AAC3B;AACK;AACM;AACC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0EAAa,SAAS,YAAY,0EAA2B,EAAE;AAC9F;AACA,sBAAsB,0EAAa,SAAS,YAAY,yEAA0B,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,0EAA2B;AACjG;AACA;AACA;AACA;AACA,0DAA0D,yEAA0B;AACpF;AACA,gEAAgE,0EAA2B;AAC3F,4DAA4D,yEAA0B;AACtF;AACA,wEAAwE,uEAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA,+DAA+D,mEAAoB;AACnF;AACA,kDAAkD,8EAA+B;AACjF,yCAAyC,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AAC5G;AACA,uCAAuC,oDAAc;AACrD;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAmB,IAAI;AAClD;AACA;AACA;AACA;AACA,uDAAuD,yEAA0B;AACjF,QAAQ,yDAAmB;AAC3B;AACA;AACA,mCAAmC,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAc;AACtC,sBAAsB,kDAAY,gCAAgC,qDAAe;AACjF;AACA;AACA;AACA,sFAAsF,8EAA+B;AACrH,yEAAyE,qCAAqC;AAC9G;AACA,YAAY,mEAAM;AAClB;AACA,iEAAiE,yEAA0B;AAC3F;AACA;AACA,kBAAkB,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AACrF,QAAQ,qEAAQ,QAAQ,wEAAyB;AACjD;AACA,QAAQ,yDAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA,2BAA2B,oDAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sEAAU;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4CAAK;AACgB;;;;;;;;;;;;;AC1KvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACqI;AAC9F;AACc;AAChB;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAoB;AAC3C,uBAAuB,wDAAe;AACtC,uBAAuB,wDAAe;AACtC;AACA;AACA;AACA,4BAA4B,6DAAoB;AAChD,4BAA4B,wDAAe;AAC3C,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA;AACA,8BAA8B,gEAAU;AACxC;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,oDAAoD;AACpD;AACA;AACA,2BAA2B,4DAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4EAA6B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,qEAAsB;AACpF;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,uEAAU;AAC7C;AACA;AACA;AACA,0DAA0D,sEAAuB;AACjF;AACA;AACA,4CAA4C,uEAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,sDAAgB;AAChF;AACA,yBAAyB,aAAa;AACtC,6BAA6B,qEAAsB;AACnD,oFAAoF,sBAAsB,EAAE;AAC5G;AACA,+BAA+B,oEAAqB;AACpD;AACA,4BAA4B,iGAAiG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAa,SAAS,YAAY,mEAAoB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uEAAwB;AACjD;AACA;AACA,yBAAyB,oEAAqB;AAC9C;AACA,QAAQ,qEAAQ;AAChB;AACA,wDAAwD,oEAAqB;AAC7E;AACA;AACA;AACA;AACA;AACA,qFAAqF,6EAA8B;AACnH;AACA;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,QAAQ,mEAAM;AACd;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA,iBAAiB,0EAAa;AAC9B;AACA,qBAAqB,0EAAa;AAClC;AACA;AACA,QAAQ,oEAAO;AACf;AACA;AACA;AACA,2BAA2B,0EAAa,QAAQ,6BAA6B;AAC7E;AACA;AACA;AACA,iBAAiB,0EAAa;AAC9B;AACA;AACA;AACA,qBAAqB,0EAAa;AAClC,mBAAmB,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA,qCAAqC,0EAAa,SAAS,YAAY,wEAAyB,EAAE;AAClG;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,wBAAwB,EAAE;AACtF,iBAAiB,0EAAa;AAC9B,6BAA6B,0EAAa,SAAS,YAAY,4EAA6B,EAAE;AAC9F;AACA;AACA;AACA,mEAAmE,sDAAgB;AACnF;AACA,wEAAwE,cAAc;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AAC3F,mBAAmB,0EAAa,SAAS,YAAY,yEAA0B,EAAE;AACjF;AACA;AACA;AACA,oBAAoB,0EAAa;AACjC,uBAAuB,2BAA2B;AAClD;AACA;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0EAAa;AACjC;AACA;AACA,sBAAsB,0EAAa,UAAU,YAAY,8DAAwB,2EAA2E;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,UAAU,oEAAqB;AACnD;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA,0BAA0B,0EAAa,UAAU,YAAY,iEAAkB,EAAE;AACjF;AACA,uEAAuE,8DAA8D;AACrI,0CAA0C,8DAAwB;AAClE;AACA,+DAA+D,2DAA2D;AAC1H,+DAA+D,yDAAyD;AACxH,gCAAgC,8DAAwB;AACxD;AACA;AACA;AACA;AACA,oBAAoB;AACpB,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mEAAoB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,gBAAgB;AAC5F;AACA,iEAAiE,wBAAwB,EAAE;AAC3F,wEAAwE,sDAAgB;AACxF,+BAA+B,sCAAsC;AACrE;AACA,2DAA2D,wBAAwB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,wBAAwB,EAAE;AACxF,oEAAoE,sDAAgB;AACpF;AACA,2BAA2B,uCAAuC;AAClE;AACA,uDAAuD,wBAAwB;AAC/E;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA,2CAA2C,mEAAoB,EAAE,+DAAgB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mEAAoB;AACpD;AACA;AACA,gCAAgC,gEAAiB;AACjD;AACA;AACA,gCAAgC,sEAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oDAAc;AACxE;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAa,QAAQ,SAAS,cAAc,EAAE;AAC/D,iBAAiB,0EAAa,QAAQ,SAAS,6CAA6C,EAAE;AAC9F;AACA,yBAAyB,wBAAwB;AACjD;AACA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wEAAyB;AAC5D,gCAAgC,6EAA8B;AAC9D;AACA;AACA;AACA,gCAAgC,gEAAiB;AACjD;AACA;AACA,gCAAgC,oEAAqB;AACrD;AACA,QAAQ,qEAAQ;AAChB;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA,oBAAoB;AACpB,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AAClF;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA,6DAA6D,2DAA2D;AACxH,6DAA6D,yDAAyD;AACtH,mCAAmC,8DAAwB;AAC3D;AACA;AACA;AACA,YAAY,qEAAQ,eAAe,iEAAkB;AACrD;AACA,gFAAgF,8DAA8D;AAC9I;AACA;AACA;AACA;AACA,yBAAyB,2DAAqB;AAC9C;AACA;AACA;AACA;AACA,sBAAsB,oDAAc;AACpC,8BAA8B,2DAAqB;AACnD,uBAAuB,kDAAY,kBAAkB,sDAAgB;AACrE;AACA;AACA;AACA;AACA,0BAA0B,oDAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAY;AAChC;AACA,wBAAwB,oDAAc;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAc;AACjC;AACA;AACA,mBAAmB,oDAAc;AACjC;AACA;AACA;AACA,eAAe,kDAAY;AAC3B;AACA;AACA,sCAAsC,8EAAiB;AACvD;AACA,8BAA8B,oDAAc,CAAC,0DAAoB;AACjE;AACA,kGAAkG,0DAA0D;AAC5J,oEAAoE,2DAA2D;AAC/H,mEAAmE,yDAAyD;AAC5H,2BAA2B,8DAAwB;AACnD;AACA,wFAAwF,0DAA0D;AAClJ;AACA,+DAA+D,2DAA2D;AAC1H,+DAA+D,yDAAyD;AACxH,uBAAuB,8DAAwB;AAC/C;AACA;AACA,mBAAmB,8DAAwB,6DAA6D,0DAA0D;AAClK;AACA;AACA;AACA;AACA,kEAAkE,8DAAwB,6DAA6D,4DAA4D;AACnN;AACA;AACA,iBAAiB,0EAAa;AAC9B,iBAAiB,0EAAa;AAC9B,uBAAuB,oEAAqB;AAC5C,oBAAoB,gFAAgF;AACpG;AACA,SAAS;AACT;AACA,oBAAoB;AACpB,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA,oEAAoE,qEAAsB;AAC1F;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAQ;AACO;;;;;;;;;;;;;ACplBjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgF;AACtB;AACH;AACX;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qEAAa;AAC/D;AACA;AACA;AACA,4CAA4C,sEAAuB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kEAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ,wBAAwB,4DAAa;AAC7D;AACA,4DAA4D,4DAAa;AACzE,gBAAgB,wEAAW,wBAAwB,4DAAa;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACiB;;;;;;;;;;;;;AC9HlB;AAAA;AAAA;AAAA;AAAqD;AACU;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qBAAqB;AAC9D;AACA;AACA;AACA,iFAAiF,qDAAU;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,2DAA2D;AACvH;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sEAAmB;AAC9F;AACA;AACA;AACA;AACA,oCAAoC,0EAAa,SAAS,0BAA0B;AACpF;AACA;AACA,0BAA0B,mGAAmG;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;;;;;;;;;;;;;AC/H7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC8E;AAC/C;AACgC;AACN;AACrB;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2EAAa;AAC5C;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,gDAAgD,6EAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,uEAAU;AACtD;AACA,+BAA+B,uEAAU;AACzC;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA,6BAA6B,qEAAsB;AACnD;AACA,+BAA+B,oEAAqB;AACpD;AACA,4BAA4B,sFAAsF;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0EAAa;AACrC;AACA,wBAAwB,0EAAa;AACrC;AACA;AACA;AACA,wBAAwB,0EAAa;AACrC;AACA,mBAAmB,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AAC7E;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD,4EAA4E,gBAAgB;AAC5F;AACA,kCAAkC,mEAAoB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gEAAiB;AACjD;AACA;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,mEAAmE,oDAAc;AACjF;AACA;AACA;AACA,mEAAmE,oDAAc;AACjF,wDAAwD,oDAAc;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,qEAAsB;AAC9F;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4CAAK;AACkB;;;;;;;;;;;;;AC1KzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC+H;AACjF;AACiB;AACN;AAChB;AACE;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,6EAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oDAAc;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8EAAiB;AAChC,YAAY,8EAAiB;AAC7B;AACA;AACA,yBAAyB,8EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sEAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kEAAmB,KAAK,kEAAmB,EAAE,mEAAoB;AACtG;AACA;AACA;AACA;AACA;AACA,iDAAiD,yBAAyB;AAC1E;AACA;AACA,gCAAgC,mEAAM;AACtC,6DAA6D,6BAA6B;AAC1F;AACA,+BAA+B,oDAAc;AAC7C,4BAA4B,kDAAY,WAAW,sDAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sEAAuB;AAC7E,0DAA0D,yEAA0B;AACpF,2DAA2D,qEAAsB;AACjF,gCAAgC,0EAAa;AAC7C,uBAAuB,yEAA0B;AACjD,uEAAuE,uEAAU,WAAW,YAAY,uEAAU;AAClH,SAAS;AACT;AACA,wEAAwE,yEAA0B;AAClG,kEAAkE,qEAAsB;AACxF,YAAY,8EAAiB;AAC7B;AACA,aAAa;AACb;AACA,6BAA6B,0EAAa;AAC1C;AACA,uBAAuB,qEAAsB;AAC7C,SAAS;AACT;AACA,yEAAyE,uEAAU;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAa;AAC9B;AACA;AACA;AACA,qBAAqB,0EAAa;AAClC;AACA;AACA,QAAQ,oEAAO;AACf;AACA;AACA,wEAAwE;AACxE;AACA;AACA,iEAAiE,oDAAc;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAa;AAC9B;AACA,wBAAwB,0EAAa;AACrC;AACA;AACA;AACA,qBAAqB,0EAAa;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,iBAAiB,0EAAa,QAAQ,SAAS,cAAc,EAAE;AAC/D,iBAAiB,0EAAa,QAAQ,SAAS,6CAA6C,EAAE;AAC9F;AACA,uBAAuB,aAAa;AACpC;AACA,4EAA4E,gBAAgB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,mEAAoB;AACnG,aAAa,mEAAoB,EAAE,wEAAyB;AAC5D;AACA;AACA,uCAAuC,2EAAa;AACpD;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2DAAY;AACW;;;;;;;;;;;;;ACpQzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AACuE;AACzC;AACY;AACE;AACP;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0EAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0EAAa,QAAQ,YAAY,oEAAqB,EAAE;AAC1F;AACA,kEAAkE,yEAA0B;AAC5F;AACA,iBAAiB,0EAAa;AAC9B;AACA,wBAAwB,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AAC3F;AACA;AACA;AACA,4DAA4D,yEAA0B;AACtF;AACA;AACA;AACA,0BAA0B,0EAAa,SAAS,YAAY,yEAA0B,EAAE;AACxF;AACA;AACA;AACA;AACA,0BAA0B,0EAAa;AACvC;AACA;AACA;AACA,gCAAgC,2BAA2B;AAC3D;AACA,8BAA8B,0EAAa,QAAQ,YAAY,qEAAsB,EAAE;AACvF;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yDAAgB,GAAG,+CAA+C;AACtG;AACA;AACA;AACA;AACA,mBAAmB,0EAAa,SAAS,u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ACxB;AACA,yCAAyC,iEAAiE;AAC1G;AACA;AACA,oCAAoC,yDAAgB,GAAG,6DAA6D;AACpH;AACA;AACA;AACA,sEAAsE,qEAAsB;AAC5F;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,mEAAoB;AACrG;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA;AACA;AACA,iCAAiC,oDAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yEAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0CAAI;AACkB;;;;;;;;;;;;;ACxYxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACmG;AACC;AAC9D;AACyB;AACX;AAChB;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAoB;AAC3C,uBAAuB,wDAAe;AACtC;AACA;AACA;AACA,4BAA4B,6DAAoB;AAChD,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA;AACA,gBAAgB,2EAAa,oBAAoB,gEAAU;AAC3D;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA;AACA;AACA,2BAA2B,4DAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,yEAA0B;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4DAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,uEAAU;AACxF;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA,sBAAsB,uEAAU;AAChC;AACA,8EAA8E,uEAAU;AACxF;AACA;AACA;AACA;AACA,qEAAqE,mEAAoB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,WAAW,8EAAiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6CAA6C;AACpF,qCAAqC,yCAAyC;AAC9E;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA,6BAA6B,qEAAsB;AACnD;AACA,+BAA+B,oEAAqB;AACpD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,mEAAoB;AACtG;AACA;AACA;AACA,oBAAoB,8EAAiB;AACrC;AACA,mCAAmC,wDAAkB;AACrD,qCAAqC,wDAAkB;AACvD;AACA,iCAAiC,8EAAiB;AAClD;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,6EAA6E,gBAAgB;AAC7F;AACA,6EAA6E,oDAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,oDAAc;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,mCAAmC,EAAE,EAAE,wDAAkB;AAClI;AACA;AACA,gCAAgC,0EAA2B,UAAU,yEAA0B,UAAU,qEAAsB;AAC/H;AACA,yDAAyD,6BAA6B;AACtF;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uEAAU;AAChC;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA,4EAA4E,yEAA0B;AACtG,uDAAuD,cAAc;AACrE,uCAAuC,0EAAa,SAAS,YAAY,0EAA2B,4BAA4B;AAChI;AACA,+DAA+D,gCAAgC;AAC/F;AACA,yCAAyC,0EAAa,SAAS,YAAY,yEAA0B,4BAA4B;AACjI;AACA,6BAA6B,0EAAa;AAC1C;AACA,uBAAuB,qEAAsB;AAC7C;AACA,SAAS;AACT;AACA,YAAY,wEAAW,sCAAsC,oEAAqB,GAAG,oEAAqB;AAC1G;AACA,gBAAgB,qEAAQ,uCAAuC,oEAAqB;AACpF;AACA,YAAY,oEAAO;AACnB,uCAAuC,uEAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,mEAAoB;AAC/E;AACA;AACA;AACA,sBAAsB,0EAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,8DAAwB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd;AACA,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,sBAAsB,0EAAa,SAAS,YAAY,mEAAoB,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AAC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AAc;AACrC;AACA,yBAAyB,gEAAiB;AAC1C;AACA,QAAQ,kDAAY,WAAW,sDAAgB;AAC/C;AACA,qCAAqC,wEAAyB;AAC9D,yBAAyB,6EAA8B;AACvD;AACA;AACA;AACA;AACA;AACA,yBAAyB,mEAAoB;AAC7C;AACA,QAAQ,qEAAQ;AAChB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA;AACA;AACA,oBAAoB;AACpB,4BAA4B,yDAAgB;AAC5C;AACA;AACA;AACA,yBAAyB,mEAAoB,KAAK,mEAAoB,EAAE,wEAAyB;AACjG;AACA;AACA,oBAAoB,0EAAa;AACjC;AACA;AACA;AACA;AACA,QAAQ,oEAAO;AACf;AACA;AACA,8BAA8B,WAAW;AACzC,iBAAiB,0EAAa;AAC9B;AACA,4CAA4C,SAAS;AACrD;AACA,kCAAkC,0EAAa;AAC/C,iDAAiD,mFAAoC;AACrF,oBAAoB,yEAA0B,GAAG,oEAAqB,UAAU;AAChF,aAAa;AACb,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA,mCAAmC,0EAAa;AAChD,wBAAwB,4EAA6B;AACrD,+BAA+B,4EAA6B;AAC5D,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yEAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wEAAyB;AACzE;AACA;AACA,iFAAiF,wDAAkB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,wDAAkB;AACnG;AACA,gCAAgC,qDAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA,gBAAgB,+DAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY,8BAA8B,4DAAO;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAQ;AACc;;;;;;;;;;;;;ACjxBxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkM;AACtJ;AACF;AACL;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAM;AACd,oBAAoB,0EAAa;AACjC;AACA,QAAQ,oEAAO;AACf,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA;AACA;AACA;AACA,uDAAuD,uDAAuD;AAC9G;AACA;AACA;AACA;AACA,+DAA+D,uDAAuD;AACtH;AACA,2DAA2D,yDAAyD;AACpH;AACA;AACA;AACA;AACA,2DAA2D,4DAA4D;AACvH;AACA,eAAe,8DAAwB;AACvC;AACA;AACA,yBAAyB,0EAAa,SAAS,YAAY,oEAAqB,EAAE;AAClF,QAAQ,mEAAM;AACd;AACA;AACA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC,6BAA6B,0EAAa,SAAS,YAAY,8EAA+B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,oEAAqB;AACpG;AACA;AACA;AACA;AACA,oBAAoB,0EAAa,WAAW,YAAY,uEAAwB,0BAA0B,gBAAgB,EAAE;AAC5H,oBAAoB,0EAAa;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,sBAAsB,EAAE,gCAAgC,oBAAoB,EAAE;AACjI;AACA,0BAA0B,0EAAa;AACvC,uBAAuB,YAAY;AACnC,oCAAoC,0EAAa;AACjD;AACA,QAAQ,oEAAO;AACf;AACA;AACA,iEAAiE,4DAAsB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2BAA2B;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;AACA,6DAA6D,2BAA2B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAmB;AAClD;AACA;AACA,oEAAoE,0EAA2B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uEAAwB;AAC7C,YAAY,oEAAO,yDAAyD,wEAAyB;AACrG;AACA;AACA,oDAAoD,wEAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,8EAA+B;AAC/E;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAY;AAC3B;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAmD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8EAAiB,eAAe,8EAAiB;AAC7D;AACA;AACA;AACA;AACA,iBAAiB,sDAAgB,SAAS,sDAAgB,eAAe,sDAAgB,UAAU,sDAAgB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAc;AAC7C,wBAAwB,2DAAqB;AAC7C,uCAAuC,sDAAgB,0CAA0C,cAAc;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAY;AACpC;AACA;AACA;AACA,wBAAwB,2DAAqB,CAAC,oDAAc;AAC5D,uCAAuC,sDAAgB,0CAA0C,cAAc;AAC/G;AACA;AACA;AACA,wBAAwB,kDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAY;AACpC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kDAAY;AACnC;AACA;AACA;AACA;AACA,2BAA2B,kDAAY;AACvC;AACA,+BAA+B,kDAAY;AAC3C;AACA;AACA;AACA,2BAA2B,kDAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kDAAY;AAC/C;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2CAA2C,sDAAgB,IAAI,sDAAgB;AAC/E,eAAe,kDAAY;AAC3B;AACA;AACA;AACA,qEAAqE,8DAAwB,6DAA6D,4DAA4D;AACtN;AACA;AACA;AACA;AACA,mBAAmB,8DAAwB,6DAA6D,8DAA8D;AACtK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8EAAiB;AAC9B;AACA;AACA,wDAAwD,mEAAmE;AAC3H,uBAAuB,8DAAwB;AAC/C;AACA,qDAAqD,mEAAmE;AACxH,uDAAuD,mEAAmE;AAC1H,mBAAmB,8DAAwB;AAC3C;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ,qBAAqB,iFAAoB;AAC9E;AACA;AACA,6BAA6B,qEAAQ,uFAAuF,6DAAQ;AACpI;AACA;AACA,mBAAmB,8DAAwB,kCAAkC,yCAAyC;AACtH;AACA;AACA;AACA;AACA;AACA,oEAAoE,+BAA+B;AACnG,uDAAuD,yCAAyC;AAChG;AACA;AACA,oEAAoE,mCAAmC;AACvG,uDAAuD,wCAAwC;AAC/F;AACA;AACA;AACA,gEAAgE,wCAAwC;AACxG,mDAAmD,wCAAwC;AAC3F;AACA;AACA;AACA;AACA;AACA,oEAAoE,oCAAoC;AACxG,uDAAuD,qCAAqC;AAC5F;AACA;AACA,oEAAoE,mCAAmC;AACvG,uDAAuD,yCAAyC;AAChG;AACA;AACA;AACA;AACA,2CAA2C,yCAAyC;AACpF,mDAAmD,yCAAyC;AAC5F;AACA;AACA;AACA,4DAA4D,yCAAyC;AACrG,+CAA+C,yCAAyC;AACxF;AACA,eAAe,8DAAwB;AACvC;AACA;AACA,mBAAmB,0EAAa;AAChC;AACA,0FAA0F,uDAAuD;AACjJ,gBAAgB,8DAAwB,yCAAyC,uDAAuD;AACxI,SAAS;AACT;AACA;AACA;AACA,mCAAmC,aAAa,gEAAiB,CAAC;AAClE;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,kCAAkC,0EAAa;AAC/C;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ,YAAY,8DAAe;AAC/C;AACA;AACA;AACA,iEAAiE,qEAAsB,eAAe,yEAA0B;AAChI;AACA;AACA;AACA;AACA,+DAA+D,sEAAuB;AACtF;AACA,gDAAgD,QAAQ,8EAAiB,OAAO,UAAU,uEAAU,cAAc,EAAE,EAAE;AACtH;AACA,6EAA6E,6EAA8B;AAC3G,qBAAqB,8EAAiB;AACtC,oBAAoB,8EAAiB,kBAAkB,WAAW,uEAAU,wBAAwB;AACpG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;AACA;AACA;AACA;AACA,gDAAgD,qEAAsB;AACtE;AACA;AACA;AACA,8EAA8E,2EAA4B;AAC1G,qDAAqD,yBAAyB;AAC9E;AACA,gBAAgB,iEAAY;AAC5B,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA,kFAAkF,8EAAiB;AACnG;AACA;AACA;AACA,8BAA8B,oDAAc;AAC5C,yDAAyD,mEAAoB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8EAAiB,cAAc,8EAAiB,6BAA6B,8EAAiB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAY;AAClC;AACA,sBAAsB,kDAAY;AAClC;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;AC9gBpB;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2DAAY;AACE;;;;;;;;;;;;;AC7ChB;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AAC8C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2DAAY;AACM;;;;;;;;;;;;;AC7CpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD;AAC2G;AACpE;AACY;AACd;AACK;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,kDAAkD;AAChH;AACA,sBAAsB,0EAAa,SAAS,YAAY,mEAAoB,EAAE;AAC9E;AACA,QAAQ,qEAAQ;AAChB;AACA,mDAAmD,oEAAqB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,qEAAsB;AAC/E,2BAA2B,2DAAkB,IAAI;AACjD;AACA;AACA,4DAA4D;AAC5D;AACA,iBAAiB,0EAAa;AAC9B;AACA,iBAAiB,0EAAa;AAC9B;AACA;AACA,6BAA6B,0EAAa,SAAS,YAAY,qEAAsB,EAAE;AACvF;AACA;AACA;AACA,kBAAkB,0EAAa;AAC/B;AACA,kBAAkB,0EAAa;AAC/B;AACA,8BAA8B,0EAAa,SAAS,kCAAkC;AACtF;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA,kCAAkC,0EAAa;AAC/C;AACA,wBAAwB;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAa,SAAS,gCAAgC;AAClF,4BAA4B,0EAAa,SAAS,wEAAwE;AAC1H;AACA,4BAA4B,yDAAgB,GAAG,wEAAwE;AACvH;AACA;AACA;AACA;AACA,6BAA6B,0EAAa,SAAS,iCAAiC;AACpF,wEAAwE,sEAAuB;AAC/F;AACA,oBAAoB,0EAAa,WAAW,6BAA6B;AACzE,iBAAiB,0EAAa;AAC9B,0BAA0B,2DAAqB,CAAC,2DAAqB;AACrE;AACA,2BAA2B,0EAAa;AACxC;AACA,uBAAuB,KAAK,sDAAgB,CAAC;AAC7C,2BAA2B,0EAAa,QAAQ,qEAAqE;AACrH,2DAA2D,qDAAe;AAC1E;AACA;AACA,QAAQ,oEAAO;AACf;AACA;AACA,qDAAqD,sDAAgB;AACrE,uBAAuB,0EAAa,QAAQ,SAAS,gBAAgB,EAAE;AACvE;AACA;AACA,yBAAyB,0EAAa;AACtC;AACA,4BAA4B,oDAAoD;AAChF;AACA,iBAAiB;AACjB;AACA,oCAAoC,yDAAgB,GAAG,8CAA8C;AACrG;AACA,qDAAqD,yBAAyB;AAC9E;AACA,yBAAyB,0EAAa;AACtC,2CAA2C,mEAAoB;AAC/D,4BAA4B;AAC5B,iBAAiB;AACjB,2BAA2B,0EAAa;AACxC,2FAA2F,yDAAyD;AACpJ,4BAA4B,gDAAgD,iCAAiC;AAC7G,iBAAiB;AACjB;AACA;AACA;AACA,mCAAmC,mEAAoB;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,oCAAoC,yDAAgB,GAAG,oDAAoD;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0EAAa;AACvC,uBAAuB,WAAW;AAClC,oCAAoC,0EAAa;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,eAAe,8DAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E,iCAAiC,qCAAqC;AACtE;AACA,sEAAsE,qEAAsB;AAC5F,iFAAiF,iBAAiB;AAClG,6EAA6E,iBAAiB;AAC9F,aAAa;AACb;AACA;AACA;AACA,wBAAwB,2DAAqB,CAAC,2DAAqB;AACnE,sBAAsB,kDAAY,4BAA4B,sDAAgB;AAC9E;AACA,mCAAmC,qCAAqC,SAAS,kDAAY;AAC7F,gCAAgC,oDAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAc,2BAA2B,oDAAc;AACtE;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA,SAAS;AACT;AACA;AACA,qBAAqB,oEAAO,iBAAiB,mEAAoB;AACjE;AACA,sBAAsB,kDAAY;AAClC;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uEAAwB,UAAU,6EAA8B;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,8EAA+B;AAC5F;AACA;AACA;AACA,8DAA8D,qEAAsB;AACpF;AACA,0CAA0C,uEAAU;AACpD;AACA;AACA,iCAAiC,4DAAsB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uEAAwB,UAAU,6EAA8B;AACtG;AACA;AACA;AACA,4CAA4C,uEAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAY,CAAC,oDAAc;AAC1C;AACA;AACA,eAAe,2DAAqB;AACpC;AACA;AACA,eAAe,kDAAY,CAAC,0DAAoB;AAChD;AACA;AACA;AACA;AACA,mBAAmB,0DAAoB;AACvC;AACA,eAAe,kDAAY;AAC3B;AACA;AACA,eAAe,mDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA,gEAAgE,mBAAmB,uDAAuD,mBAAmB;AAC7J;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA;AACA;AACA,uBAAuB,6DAAoB;AAC3C,uBAAuB,wDAAe;AACtC;AACA;AACA;AACA,4BAA4B,6DAAoB;AAChD,4BAA4B,wDAAe;AAC3C;AACA;AACA;AACA,mCAAmC,8DAAS;AAC5C;AACA,2BAA2B,2DAAkB;AAC7C;AACA;AACA;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA,gBAAgB,iEAAY;AAC5B;AACA,oBAAoB,iEAAY;AAChC;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,qEAAsB;AACvF;AACA,gBAAgB,iEAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mDAAQ;AACM;;;;;;;;;;;;;AClXhB;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;AACb;AACP,KAAK,kDAAkD;AACvD,KAAK,4DAA4D;AACjE,KAAK,6DAA6D;AAClE,KAAK,4DAA4D;AACjE,KAAK,sDAAsD;AAC3D,KAAK,4DAA4D;AACjE,KAAK,8DAA8D;AACnE,KAAK,wDAAwD;AAC7D,KAAK,iEAAiE;AACtE,KAAK,uEAAuE;AAC5E,KAAK,2EAA2E;AAChF,KAAK,6EAA6E;AAClF,KAAK,0DAA0D;AAC/D,KAAK,6DAA6D;AAClE,KAAK,wEAAwE;AAC7E,KAAK,qFAAqF;AAC1F,KAAK,kFAAkF;AACvF,KAAK,0EAA0E;AAC/E,KAAK,8EAA8E;AACnF,KAAK,gFAAgF;AACrF,KAAK,sDAAsD;AAC3D,KAAK,6DAA6D;AAClE,KAAK,+EAA+E;AACpF,KAAK,qEAAqE;AAC1E,KAAK,+EAA+E;AACpF,KAAK,yEAAyE;AAC9E,KAAK,8DAA8D;AACnE,KAAK,gEAAgE;AACrE,KAAK,4DAA4D;AACjE,KAAK,4DAA4D;AACjE,KAAK,wDAAwD;AAC7D,KAAK,8DAA8D;AACnE,KAAK,sDAAsD;AAC3D,KAAK,6DAA6D;AAClE,KAAK,8DAA8D;AACnE,KAAK,uEAAuE;AAC5E,KAAK,uEAAuE;AAC5E,KAAK,4DAA4D;AACjE,KAAK,sDAAsD;AAC3D,KAAK,wDAAwD;AAC7D,KAAK,kDAAkD;AACvD,KAAK,sDAAsD;AAC3D,KAAK,sDAAsD;AAC3D,KAAK,sEAAsE;AAC3E,KAAK,8DAA8D;AACnE,KAAK,wEAAwE;AAC7E,KAAK,0DAA0D;AAC/D,KAAK,yDAAyD;AAC9D,KAAK,4DAA4D;AACjE,KAAK,wDAAwD;AAC7D,KAAK,wDAAwD;AAC7D,KAAK,8DAA8D;AACnE,KAAK,sDAAsD;AAC3D,KAAK,sDAAsD;AAC3D,KAAK,sDAAsD;AAC3D,KAAK,8DAA8D;AACnE,KAAK,oEAAoE;AACzE,KAAK,gEAAgE;AACrE,KAAK,gEAAgE;AACrE,KAAK,oEAAoE;AACzE,KAAK,oDAAoD;AACzD,KAAK,+EAA+E;AACpF,KAAK,4DAA4D;AACjE,KAAK,0DAA0D;AAC/D,KAAK,oDAAoD;AACzD,KAAK,4EAA4E;AACjF,KAAK,kEAAkE;AACvE,KAAK,wDAAwD;AAC7D,KAAK,sDAAsD;AAC3D,KAAK,4DAA4D;AACjE,KAAK,wDAAwD;AAC7D,KAAK,sDAAsD;AAC3D,KAAK,0DAA0D;AAC/D,KAAK,8DAA8D;AACnE,KAAK,yDAAyD;AAC9D,KAAK,8DAA8D;AACnE,KAAK,kEAAkE;AACvE,KAAK,sDAAsD;AAC3D,KAAK,2DAA2D;AAChE,KAAK,uDAAuD;AAC5D,KAAK,0DAA0D;AAC/D,KAAK,yDAAyD;AAC9D,KAAK,wDAAwD;AAC7D,KAAK,4DAA4D;AACjE,KAAK,qEAAqE;AAC1E,KAAK,uDAAuD;AAC5D,KAAK,+DAA+D;AACpE,KAAK,kEAAkE;AACvE,KAAK,uDAAuD;AAC5D,KAAK,mDAAmD;AACxD,KAAK,qDAAqD;AAC1D,KAAK,+DAA+D;AACpE,KAAK,6DAA6D;AAClE,KAAK,kEAAkE;AACvE,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,sDAAsD;AAC3D,KAAK,iEAAiE;AACtE,KAAK,qDAAqD;AAC1D,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,6DAA6D;AAClE,KAAK,4BAA4B;AACjC,KAAK,uDAAuD;AAC5D,KAAK,2DAA2D;AAChE,KAAK,uDAAuD;AAC5D,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,yDAAyD;AAC9D,KAAK,iFAAiF;AACtF,KAAK,6EAA6E;AAClF,KAAK,mDAAmD;AACxD,KAAK,6DAA6D;AAClE,KAAK,2DAA2D;AAChE,KAAK,mDAAmD;AACxD,KAAK,6DAA6D;AAClE,KAAK,qDAAqD;AAC1D,KAAK,mDAAmD;AACxD,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,iDAAiD;AACtD,KAAK,mDAAmD;AACxD,KAAK,iDAAiD;AACtD,KAAK,2DAA2D;AAChE,KAAK,qDAAqD;AAC1D,KAAK,mDAAmD;AACxD,KAAK,qDAAqD;AAC1D,KAAK,qDAAqD;AAC1D,KAAK,qDAAqD;AAC1D,KAAK,iDAAiD;AACtD,KAAK,qDAAqD;AAC1D,KAAK,mDAAmD;AACxD,KAAK,2DAA2D;AAChE,KAAK,mDAAmD;AACxD,KAAK,yDAAyD;AAC9D,KAAK,uDAAuD;AAC5D,KAAK,+CAA+C;AACpD,KAAK,yDAAyD;AAC9D,KAAK,yDAAyD;AAC9D,KAAK,iEAAiE;AACtE,KAAK,yDAAyD;AAC9D,KAAK,iDAAiD;AACtD,KAAK,qDAAqD;AAC1D,KAAK,2EAA2E;AAChF,KAAK,qDAAqD;AAC1D,KAAK,iDAAiD;AACtD,KAAK,mDAAmD;AACxD,KAAK,uDAAuD;AAC5D,KAAK,uDAAuD;AAC5D,KAAK,uDAAuD;AAC5D,KAAK,yDAAyD;AAC9D,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,mDAAmD;AACxD,KAAK,iEAAiE;AACtE,KAAK,uDAAuD;AAC5D,KAAK,iDAAiD;AACtD,KAAK,mDAAmD;AACxD,KAAK,uDAAuD;AAC5D,KAAK,mDAAmD;AACxD,KAAK,+CAA+C;AACpD,KAAK,iDAAiD;AACtD,KAAK,iDAAiD;AACtD,KAAK,2DAA2D;AAChE,KAAK,iEAAiE;AACtE,KAAK,uDAAuD;AAC5D,KAAK,qDAAqD;AAC1D,KAAK,qDAAqD;AAC1D,KAAK,iDAAiD;AACtD,KAAK,iDAAiD;AACtD,KAAK,mDAAmD;AACxD,KAAK,uDAAuD;AAC5D,KAAK,uDAAuD;AAC5D,KAAK,qDAAqD;AAC1D,KAAK,2DAA2D;AAChE,KAAK,yDAAyD;AAC9D,KAAK,yDAAyD;AAC9D,KAAK,6EAA6E;AAClF,KAAK,uDAAuD;AAC5D,KAAK,qDAAqD;AAC1D,KAAK,iEAAiE;AACtE,KAAK,uDAAuD;AAC5D,KAAK,mDAAmD;AACxD,KAAK,qDAAqD;AAC1D,KAAK,qDAAqD;AAC1D,KAAK,iDAAiD;AACtD,KAAK,2DAA2D;AAChE,KAAK,qDAAqD;AAC1D,KAAK,yDAAyD;AAC9D,KAAK,mDAAmD;AACxD,KAAK,oDAAoD;AACzD,KAAK,qDAAqD;AAC1D,KAAK,2DAA2D;AAChE,KAAK,uDAAuD;AAC5D,KAAK,kDAAkD;AACvD,KAAK,+CAA+C;AACpD,KAAK,qDAAqD;AAC1D,KAAK,yEAAyE;AAC9E,KAAK,mDAAmD;AACxD,KAAK,mEAAmE;AACxE,KAAK,2DAA2D;AAChE,KAAK,yDAAyD;AAC9D,KAAK,+DAA+D;AACpE,KAAK,iDAAiD;AACtD,KAAK,uDAAuD;AAC5D,KAAK,mDAAmD;AACxD,KAAK,iEAAiE;AACtE,KAAK,yDAAyD;AAC9D,KAAK,mDAAmD;AACxD,KAAK,6DAA6D;AAClE,KAAK,qEAAqE;AAC1E,KAAK,yDAAyD;AAC9D,KAAK,+CAA+C;AACpD,KAAK,uDAAuD;AAC5D,KAAK,iEAAiE;AACtE,KAAK,oDAAoD;AACzD,KAAK,iDAAiD;AACtD,KAAK,iDAAiD;AACtD,KAAK,uEAAuE;AAC5E,KAAK,2EAA2E;AAChF,KAAK,2EAA2E;AAChF,KAAK,kDAAkD;AACvD,KAAK,yEAAyE;AAC9E,KAAK,kEAAkE;AACvE,KAAK,qDAAqD;AAC1D,KAAK,2EAA2E;AAChF,KAAK,uDAAuD;AAC5D,KAAK,uEAAuE;AAC5E,KAAK,kFAAkF;AACvF,KAAK,oDAAoD;AACzD,KAAK,gEAAgE;AACrE,KAAK,sDAAsD;AAC3D,KAAK,iEAAiE;AACtE,KAAK,0DAA0D;AAC/D,KAAK,sDAAsD;AAC3D,KAAK,uDAAuD;AAC5D,KAAK,0DAA0D;AAC/D,KAAK,4DAA4D;AACjE,KAAK,sDAAsD;AAC3D,KAAK,uFAAuF;AAC5F,KAAK,sDAAsD;AAC3D,KAAK,sDAAsD;AAC3D,KAAK,kDAAkD;AACvD,KAAK,sDAAsD;AAC3D,KAAK,0DAA0D;AAC/D,KAAK,4DAA4D;AACjE,KAAK,wDAAwD;AAC7D,KAAK,kDAAkD;AACvD,KAAK,4DAA4D;AACjE,KAAK,kDAAkD;AACvD,KAAK;AACL;;;;;;;;;;;;;AC/SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC4B;;;;;;;;;;;;;ACH5B;AAAA;AAAA;AAAA;AAA2G;AAC1D;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B,UAAU,kBAAkB;AAC5B,UAAU;AACV;AACA,IAAI;AACJ;AACA;AACA,WAAW,OAAO;AAClB,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,uBAAuB;AAClC,WAAW,SAAS;AACpB,aAAa,YAAY;AACzB;AACO;AACP,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA,QAAQ,8EAAiB;AACzB,wBAAwB,kEAAqB;AAC7C;AACA;AACA,IAAI,qEAAQ;AACZ;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAM,eAAe;AACrC;AACA;AACA;AACA;;;;;;;;;;;;;AC/EA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;;;;;;;;;;;;;ACH/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AAC+F;AAC/F;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACO;AACP,cAAc,mEAAM,GAAG;AACvB,2CAA2C,gBAAgB;AAC3D;AACA;AACA,YAAY,yEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACC;;;;;;;;;;;;;ACzKhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACyB;;;;;;;;;;;;;ACHzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACgH;AACrC;AACuB;AACpC;AACb;AACF;AACO;AACiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS,kBAAkB,GAAG,kBAAkB,EAAE,kBAAkB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA,0BAA0B,mDAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA,2CAA2C,SAAS;AACpD,sDAAsD,WAAW;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4BAA4B,4DAAK;AACjC;AACA,wBAAwB,sBAAsB;AAC9C,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,uEAAU,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,mDAAmD,mEAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA,uBAAuB,kBAAkB;AACzC;AACA,wDAAwD,uEAAkB;AAC1E;AACA;AACA;AACA,wBAAwB,uCAAuC;AAC/D,wCAAwC,wEAAW;AACnD,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mDAAmD,kDAAkD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAiB;AAC7B;AACA;AACA;AACA,2CAA2C,SAAS;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uEAAkB;AACtE,wCAAwC,mEAAmE,mBAAmB,EAAE;AAChI;AACA;AACA,0BAA0B,8DAAM;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA,YAAY,wEAAW;AACvB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,mEAAM;AAC1B;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA,wBAAwB,yEAAY,gBAAgB,kCAAkC;AACtF;AACA;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,oEAAO;AACrD;AACA;AACA;AACA,kDAAkD,oEAAO;AACzD,eAAe,oEAAO;AACtB;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,gBAAgB,qEAAQ;AACxB;AACA;AACA,gCAAgC;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA,+BAA+B;AAC/B;AACA;AACA,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wEAAW;AAC3B;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,iEAAY;AACxB;AACA,QAAQ,iEAAY;AACpB,QAAQ,iEAAY;AACpB;AACA,YAAY,iEAAY;AACxB,YAAY,iEAAY;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,oBAAoB;AACpC,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kCAAkC,+DAAQ;AAC1C;AACA;AACA;AACA,wCAAwC,+DAAQ;AAChD;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAS;AACjC;AACA;AACA;AACA,4BAA4B,wEAAW;AACvC;AACA;AACA,4BAA4B,qEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,KAAK,mDAAI;AAC3B;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAS;AACe;;;;;;;;;;;;;AClsB1B;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACmC;;;;;;;;;;;;;ACHnC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;AACU;AACJ;AACA;AACG;;;;;;;;;;;;;ACPxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACkC;;;;;;;;;;;;;ACHlC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACiD;AAC2D;AAC1C;AACgB;AACD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,CAAC,CAAC,kEAAa;AACc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wEAAW;AACnB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,yBAAyB;AAC3E;AACA,QAAQ,4EAAa;AACrB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,sBAAsB;AACnF;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAkB;AACrC;AACA;AACA,6DAA6D,yCAAyC;AACtG;AACA;AACA,mDAAmD,4CAA4C;AAC/F;AACA,mDAAmD,0CAA0C;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAS,GAAG;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0EAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA,SAAS;AACT;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA,QAAQ,iEAAY;AACpB;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC,gBAAgB,oBAAoB;AACpC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0EAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mEAAM;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,oEAAO,GAAG;AAClB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,8DAAM;AACkB;;;;;;;;;;;;;AC9hB1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AAC+B;;;;;;;;;;;;;ACH/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAiB,SAAI,IAAI,SAAI;AAC7B;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACwG;AACP;AACL;AAC3C;AACG;AACkB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAuB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,6BAA6B,qEAAQ;AACrC,oDAAoD,SAAS,mBAAmB,EAAE;AAClF,uDAAuD,sDAAsD;AAC7G,0DAA0D,WAAW;AACrE;AACA;AACA;AACA,YAAY,mEAAM;AAClB;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA,8BAA8B,wEAAW;AACzC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,eAAe,SAAS;AACxB,iBAAiB,KAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sDAAsD;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8DAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mCAAmC,iFAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uEAAU;AAClB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAW;AAC/B,oBAAoB,wEAAW;AAC/B;AACA;AACA,oBAAoB,wEAAW;AAC/B;AACA;AACA,qBAAqB;AACrB;AACA,oBAAoB,mEAAM;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAY;AACpB,YAAY,mEAAc;AAC1B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,iEAAY;AACpB,QAAQ,wEAAW,eAAe,mEAAc;AAChD;AACA;AACA,+BAA+B,wBAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC,gBAAgB,iBAAiB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA,yCAAyC,+DAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,+DAAQ;AACnD,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA,oBAAoB,qEAAQ;AAC5B;AACA;AACA;AACA,wBAAwB,qEAAQ;AAChC;AACA;AACA,wBAAwB,wEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,uEAAU,KAAK,mDAAI;AAC3B;AACA;AACA,QAAQ,qEAAQ;AAChB;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,kEAAK;AACb;AACA;AACA,QAAQ,0EAAqB;AAC7B;AACA;AACA,CAAC,CAAC,iFAAc;AACO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACmB;;;;;;;;;;;;;AC3ZpB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kB,EAAE,0DAA0D,wCAAwC,8DAAQ,CAAC,+DAAU,GAAG,EAAE,0DAA0D;AAChP,oFAAoF,+CAA+C,sDAAe,CAAC,+DAAiB,GAAG;AACvK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,+DAAiB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACvE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8DAA8D;AAC9D,SAAS,uBAAuB;AAChC,SAAS;AACT,MAAM;AACN,wCAAwC,wEAAkB,EAAE,0DAA0D,wCAAwC,8DAAQ,kBAAkB,8DAAQ,cAAc,EAAE,0DAA0D;AAC1Q,oFAAoF,+CAA+C,sDAAe,kBAAkB,sDAAe,cAAc;AACjM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,uBAAuB,GAAG,mBAAmB,EAAE,EAAE,QAAQ,EAAE;AAC1F;AACA,CAAC;;AAED;AACA;AACA;AACA,oEAAoE,yCAAyC;AAC7G,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAe;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iEAAU;AAC5B,iCAAiC,sEAAiB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,gEAAS;AACrB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+CAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gEAAS;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iDAAiD,6DAAM,wBAAwB,2BAA2B,EAAE,GAAG,2DAAI,KAAK,gEAAS;AACjI;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,kCAAkC,gEAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,qCAAqC,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAY;AACzC;AACA,sEAAsE,0DAAG;AACzE,0DAA0D;AAC1D;AACA;AACA,qBAAqB;AACrB;AACA,iFAAiF,2BAA2B;AAC5G,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,eAAe,+CAAE;AACjB;AACA;AACA;AACA;AACA,mBAAmB,sFAAU;AAC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AAE,6DAA6D;AACnQ,0FAA0F,oDAAoD;AAC9I,uCAAuC,gEAAyB,EAAE,+DAA+D,+CAA+C,EAAE,sBAAsB;AACxM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb,YAAY,uDAAkB,IAAI,6CAAS;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C,iCAAiC,0DAAY;AAC7C,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kGAAkG;AAClG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,+BAA+B,qBAAqB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,+BAA+B,4BAA4B;AAC3D,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6CAA6C;AAC3E;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,+BAA+B,4BAA4B;AAC3D,2BAA2B,E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AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,sDAAe,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,sEAA+B,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG;AACjM,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAErC;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA,2CAA2C,sDAAQ;AACnD;AACA,WAAW,qEAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA,0DAA0D,oEAAoE;AAC9H,wDAAwD,oEAAoE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA,6CAA6C,6BAA6B;AAC1E,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,wFAAwF,iDAAiD,+DAAwB,eAAe;AAChL,qCAAqC,+DAAwB,EAAE,oKAAoK;AACnO,QAAQ,wDAAiB,6EAA6E,sBAAsB,EAAE;AAC9H,KAAK,EAAE,WAAW,2FAA2F,YAAY,mCAAmC,EAAE;AAC9J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,GAAG;AAC1D,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,gFAAgF,6CAA6C,+DAAwB,eAAe;AACpK,iCAAiC,+DAAwB,EAAE,wJAAwJ;AACnN,QAAQ,wDAAiB,yEAAyE,sBAAsB,EAAE;AAC1H,KAAK,EAAE,WAAW,2FAA2F,YAAY,mCAAmC,EAAE;AAC9J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,GAAG;AAC1D,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,0EAA0E,0CAA0C,+DAAwB,eAAe;AAC3J,8BAA8B,+DAAwB,EAAE,+IAA+I;AACvM,QAAQ,wDAAiB,sEAAsE,sBAAsB,EAAE;AACvH,KAAK,EAAE,WAAW,uBAAuB,YAAY,mCAAmC,EAAE;AAC1F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,GAAG;AAC1D,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA,+DAA+D;AAC/D,SAAS;AACT,MAAM;AACN,sFAAsF,gDAAgD,sDAAe,eAAe;AACpK,qCAAqC,gEAAyB,EAAE,6DAA6D,6CAA6C,EAAE,EAAE;AAC9K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,QAAQ,EAAE;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6CAA6C;AACxD,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,wEAAwE,uEAAuE;AAC/I,8BAA8B,gEAAyB,EAAE,sDAAsD,sCAAsC,EAAE,EAAE;AACzJ,yCAAyC,mEAA4B;AACrE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD,sCAAsC,kBAAkB;AACxD,qCAAqC,kBAAkB;AACvD;AACA,+IAA+I,kCAAkC,EAAE;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mDAAmD;AACnD,SAAS,8BAA8B;AACvC,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN,uBAAuB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AAC/D;AACA,8DAA8D,oCAAoC,+DAAwB,yBAAyB,+DAAwB,CAAC,uDAAS,GAAG;AACxL,yBAAyB,0DAAmB,EAAE,2DAA2D;AACzG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,8BAA8B,GAAG;AAChE,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,6CAA6C;AACxD;AACA;AACA;AACA;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,SAAS;AACT,MAAM;AACN,0EAA0E,0CAA0C,+DAAwB,+BAA+B;AAC3K,+BAA+B,0DAAmB,EAAE,uEAAuE;AAC3H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,oCAAoC,EAAE,EAAE,QAAQ,EAAE;AACjF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY,GAAG;AACxC,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAU;AAC7B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,iDAAiD;AACjD,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,qBAAqB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAQ;AAC5D;AACA,0DAA0D,kCAAkC,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,wDAAQ,GAAG;AACzN,sBAAsB,+DAAwB,EAAE,mEAAmE,iDAAiD,YAAY,oBAAoB,EAAE;AACtM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG;AACxF,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,2BAA2B,0DAAY,GAAG;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB;AACA,wEAAwE,2CAA2C;AACnH,6BAA6B,+DAAwB,EAAE,4IAA4I;AACnM,QAAQ,wDAAiB,+EAA+E,+BAA+B,EAAE;AACzI,KAAK,EAAE,YAAY,6BAA6B,EAAE;AAClD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,oDAAM;AACxB;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAY;AAC3B;AACA;AACA,eAAe,wEAAiB;AAChC;AACA;AACA,eAAe,kEAAW;AAC1B;AACA,gDAAgD;AAChD,SAAS;AACT,MAAM;AACN,wDAAwD,iCAAiC,sDAAe,eAAe;AACvH,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,QAAQ,EAAE;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,6BAA6B;AACxC,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAU;AAC5C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,wBAAwB,kEAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kEAAU;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA,gCAAgC,kEAAU,gFAAgF,kEAAU;AACpI;AACA,oCAAoC,kEAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,kEAAU;AAC5G;AACA,6CAA6C,kEAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS,OAAO,8DAAc;AAC9B,MAAM;AACN,sDAAsD,gCAAgC,sDAAe,CAAC,8DAAqB,GAAG;AAC9H,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,8DAAqB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC3E;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,KAAK,EAAE,mCAAmC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sIAAsI,kCAAkC,EAAE;AAC1K;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN,uBAAuB,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,uDAAS;AAC/D;AACA,8DAA8D,oCAAoC,+DAAwB,gBAAgB,+DAAwB,CAAC,uDAAS,GAAG;AAC/K,yBAAyB,0DAAmB,EAAE,2DAA2D;AACzG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,kDAAI;AAClB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,qBAAqB,GAAG;AACvD,sBAAsB,oDAAM;AAC5B,uBAAuB,uDAAS;AAChC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED,iBAAiB,4DAAc;AAC/B;AACA;AACA;AACA;AACA,WAAW,6DAA6D;AACxE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,SAAS,gCAAgC,OAAO,oDAAM,mBAAmB,GAAG;AAC5E,SAAS;AACT,MAAM;AACN,kCAAkC,wDAAU,GAAG,qDAAO,IAAI,4DAAM;AAChE;AACA,oFAAoF,+CAA+C,sDAAe,UAAU,sDAAe,eAAe;AAC1L,oCAAoC,gEAAyB,EAAE,4DAA4D,4CAA4C,EAAE,EAAE;AAC3K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,GAAG,oBAAoB,EAAE,EAAE,QAAQ,EAAE;AACrD;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iBAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8DAA8D;AAC9D,SAAS;AACT,MAAM;AACN,oFAAoF,+CAA+C,sDAAe,eAAe;AACjK,oCAAoC,gEAAyB,EAAE,4DAA4D,4CAA4C,EAAE,EAAE;AAC3K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,oBAAoB,EAAE,EAAE,QAAQ,EAAE;AACjE;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC,gFAAgF;;AAEjF;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAuB,EAAE,6BAA6B;AAClF,4BAA4B,8DAAuB,EAAE,oDAAoD,0CAA0C,EAAE,cAAc,8DAAc,cAAc,4DAAY,IAAI;AAC/M,cAAc,oDAAoD,gEAAyB,wBAAwB,4BAA4B;AAC/I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE,EAAE,EAAE,EAAE;AACvC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,8DAAc;AAC1C;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+BAA+B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA,kDAAkD,+BAA+B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,eAAe;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ;AACjC;AACA;AACA,gCAAgC,sDAAQ,GAAG;AAC3C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iDAAiD,sDAAQ,EAAE,sHAAsH;AACjL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,EAAE,oBAAoB;AACrE;AACA;AACA;AACA,sCAAsC,sDAAQ,EAAE;AAChD;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa,wEAAwE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,qFAAqF,4CAA4C,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oDAAM;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,sBAAsB;AAC/B,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI,GAAG;AAC5E,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AA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wBAAwB,SAAS,yEAAe;AAChF,QAAQ,6EAAiB;AACzB;AACA;AACA;AACA;AACA,oDAAoD,EAAE,EAAE,EAAE,EAAE;AAC5D,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA,oBAAoB,4DAAY;AAChC,oBAAoB,yEAAe;AACnC,oBAAoB,6EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAe;AACnC,oBAAoB,6EAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb;AACA,IAAI,w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oEAAoE;AACpE,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,2BAA2B,OAAO,mDAAK,EAAE;AACzC;AACA,gGAAgG,qDAAqD,+DAAwB,CAAC,wDAAiB,GAAG;AAClM,yCAAyC,+DAAwB,EAAE,yGAAyG,iFAAiF,EAAE;AAC/P,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA,4BAA4B,4CAAO;AACnC,8BAA8B;AAC9B;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qDAAqD,6DAAM;AAC3D,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE,IAAI,+DAAQ;AAC3D,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uGAAuG,oCAAoC,mCAAmC,uCAAuC,+BAA+B,aAAa;AACjQ;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,6CAA6C,+CAAU;AACvD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB,aAAa,QAAQ,gEAAS,uBAAuB,0DAAG;AACxD,wBAAwB;AACxB;AACA,yBAAyB,kCAAkC,EAAE;AAC7D,uBAAuB,EAAE;AACzB,mCAAmC,4CAAO;AAC1C,uBAAuB,EAAE;AACzB,kCAAkC,kDAAa;AAC/C;AACA,wBAAwB;AACxB;AACA;AACA,4CAA4C,aAAa;AACzD,aAAa;AACb,uBAAuB,EAAE;AACzB,gCAAgC,kDAAK,yEAAyE,4DAAK;AACnH,uBAAuB,EAAE;AACzB,8BAA8B,0DAAa;AAC3C;AACA;AACA,oBAAoB,0DAAG;AACvB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,yBAAyB,oDAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,0DAAG;AACpB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,0DAAG;AACpB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,IAAI,0DAAG;AACpB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,uBAAuB,sDAAQ,GAAG,aAAa,qEAAqE;AACpH,aAAa,IAAI,6DAAM;AACvB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,qBAAqB;AACrB,aAAa,IAAI,gEAAS,iBAAiB,4DAAK;AAChD,uBAAuB,EAAE;AACzB,gDAAgD,2DAAI,KAAK,4DAAK;AAC9D,uBAAuB,EAAE;AACzB,8CAA8C,+DAAQ,KAAK,4DAAK;AAChE;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,0CAA0C,2BAA2B;AACrE,iBAAiB;AACjB,iCAAiC,oEAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC,8CAA8C,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;AACA,yCAAyC,6BAA6B,EAAE;AACxE;AACA,mCAAmC,EAAE;AACrC,oCAAoC;AACpC;AACA;AACA;AACA,yBAAyB;AACzB;AACA,oCAAoC;AACpC;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,gCAAgC;AAChC;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA,sBAAsB,+DAAQ;AAC9B,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B,oDAAoD,4DAAK,IAAI,2DAAI,KAAK,0DAAG;AACzE,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,wCAAwC,SAAS,sDAAQ,GAAG,gBAAgB,iCAAiC,GAAG,EAAE;AAClH;AACA;AACA,aAAa;AACb;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,wCAAwC,2CAA2C;AACnF,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,YAAY,kDAAK;AACjB,sBAAsB,2DAAI;AAC1B;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS,IAAI,4DAAK;AAClB,QAAQ,kDAAK,sBAAsB,2DAAI,KAAK,0DAAG;AAC/C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,kBAAkB,EAAE,0BAA0B,+DAAQ;AAChF,kBAAkB,6DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA;AACA;AACA;AACA,SAAS,IAAI,0DAAG;AAChB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,qBAAqB,oDAAM;AAC3B;AACA,SAAS,IAAI,gEAAS,IAAI,4DAAuB;AACjD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,qCAAqC,aAAa;AAClD,aAAa;AACb;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,sDAAS;AACjD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB,sCAAsC,sDAAS;AAC/C;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yBAAyB,EAAE;AAC3B,gCAAgC,EAAE;AAClC,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,wBAAwB;AACjC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,wDAAwD,OAAO,sDAAQ,EAAE,GAAG;AACrF,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,4CAA4C,OAAO,mDAAK,EAAE;AAC1D,wBAAwB,OAAO,mDAAK,EAAE;AACtC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,qBAAqB,OAAO,oDAAM,EAAE;AACpC,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,oDAAM,EAAE;AAClC;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,mBAAmB,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,wCAAwC,+DAAwB,CAAC,wDAAQ,GAAG;AAC5a,0BAA0B,+DAAwB,EAAE,2EAA2E,2ZAA2Z,YAAY,mJAAmJ,aAAa,kEAA2B,GAAG;AACpuB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,wBAAwB,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG;AAC/K,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,wBAAwB,0DAAY,GAAG;AACvC;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,uCAAuC,0DAAG;AAC1C,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,gGAAgG,EAAE;AAClG;AACA;AACA,kFAAkF,EAAE;AACpF;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB,kDAAkD,2EAAoB;AACtE,uBAAuB,EAAE;AACzB;AACA;AA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C,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,8FAA8F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE,iGAAiG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AAC9b,IAAI,0DAAmB;AACvB,CAAC;AACD,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,8FAA8F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE,iGAAiG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AAC9b,IAAI,0DAAmB;AACvB,CAAC;AACD,wDAAwD;AACxD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,8FAA8F,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE,iGAAiG,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,+CAA+C,EAAE;AAC9b,IAAI,0DAAmB;AACvB,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;AACnC;AACA;AACA;AACA;AACA,CAAC,4BAA4B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS;AACT,MAAM;AACN,sBAAsB,wDAAU,GAAG,wDAAU;AAC7C;AACA,4DAA4D,mCAAmC,sDAAe,8BAA8B;AAC5I,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,mCAAmC,EAAE,EAAE,QAAQ,EAAE;AAChF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS;AACT,MAAM;AACN,wBAAwB,wDAAU,GAAG,wDAAU;AAC/C;AACA,gEAAgE,qCAAqC,sDAAe,8BAA8B;AAClJ,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,mCAAmC,EAAE,EAAE,QAAQ,EAAE;AAChF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,CAAC,sDAAQ,GAAG,yDAAyD,qLAAqL;AACjR;AACA;AACA,eAAe,sDAAQ,CAAC,sDAAQ,GAAG,yDAAyD,wLAAwL;AACpR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS;AACT,MAAM;AACN,uBAAuB,wDAAU,GAAG,wDAAU;AAC9C;AACA,8DAA8D,oCAAoC,sDAAe,8BAA8B;AAC/I,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,mCAAmC,EAAE,EAAE,QAAQ,EAAE;AAChF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,iBAAiB,EAAE;AAC1F,+CAA+C,wBAAwB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,2DAA2D;AACnG,iBAAiB,mDAAmD;AACpE;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS;AACT,MAAM;AACN,mBAAmB,wDAAU,GAAG,wDAAU;AAC1C;AACA,sDAAsD,gCAAgC,sDAAe,kCAAkC;AACvI,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,uCAAuC,EAAE,EAAE,QAAQ,EAAE;AACpF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAA+C;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+CAA+C;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS;AACT,MAAM;AACN,mBAAmB,wDAAU,GAAG,wDAAU;AAC1C;AACA,sDAAsD,gCAAgC,sDAAe,kCAAkC;AACvI,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,uCAAuC,EAAE,EAAE,QAAQ,EAAE;AACpF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6DAA6D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,uCAAuC;AAChD,SAAS,mCAAmC;AAC5C,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN,wBAAwB,wDAAU,GAAG,wDAAU,mFAAmF,oDAAM;AACxI;AACA,gEAAgE,qCAAqC,sDAAe,kCAAkC,sDAAe,8BAA8B,sDAAe,CAAC,oDAAa,GAAG;AACnO,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,uCAAuC,GAAG,mCAAmC,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnJ;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,SAAS;AACT,MAAM;AACN,yBAAyB,wDAAU,GAAG,wDAAU;AAChD;AACA,kEAAkE,sCAAsC,sDAAe,kCAAkC;AACzJ,2BAA2B,gEAAyB,EAAE,mDAAmD,mCAAmC,EAAE,EAAE;AAChJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,uCAAuC,EAAE,EAAE,QAAQ,EAAE;AACpF;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,uCAAuC;AAChD,SAAS,mCAAmC;AAC5C,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN,wBAAwB,wDAAU,GAAG,wDAAU,mFAAmF,oDAAM;AACxI;AACA,gEAAgE,qCAAqC,sDAAe,kCAAkC,sDAAe,8BAA8B,sDAAe,CAAC,oDAAa,GAAG;AACnO,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,uCAAuC,GAAG,mCAAmC,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnJ;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,wDAAU,gBAAgB,OAAO,oDAAM,SAAS,wDAAU,IAAI,GAAG;AACjF,SAAS,0BAA0B;AACnC,SAAS,OAAO,uDAAS,gBAAgB,OAAO,oDAAM,SAAS,uDAAS,IAAI,GAAG;AAC/E,SAAS,OAAO,oDAAM,gBAAgB,OAAO,oDAAM,SAAS,oDAAM,IAAI;AACtE,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,iEAAW;AACnB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,4BAA4B,wDAAU,GAAG,qDAAO,IAAI,4DAAM,CAAC,wDAAU,IAAI,qDAAO,IAAI,4DAAM,CAAC,uDAAS,IAAI,qDAAO,IAAI,4DAAM,CAAC,oDAAM;AAChI,QAAQ,w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CA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACwC;AACxC;AACA,+BAA+B,eAAe;AAC9C,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,kCAAkC,wBAAwB,EAAE;AAC5D,gCAAgC,gBAAgB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA,2BAA2B,sCAAsC;AACjE;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iDAAiD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,yBAAyB;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,oBAAoB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,2BAA2B,4CAAO;AAClC;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC,4BAA4B,4CAAO;AACnC,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB,kDAAK;AAC9B,mBAAmB,EAAE;AACrB,yBAAyB,kDAAK,8DAA8D,0DAAG;AAC/F;AACA;AACA;AACA;AACA,SAAS,GAAG,4DAAK;AACjB,mBAAmB,EAAE;AACrB,uBAAuB,kDAAK;AAC5B,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,sDAAQ,GAAG;AAC9B;AACA;AACA,kBAAkB,gEAAS,oBAAoB,0DAAG;AAClD;AACA,qEAAqE,kCAAkC,EAAE;AACzG,SAAS,GAAG,gEAAS;AACrB,2DAA2D,0CAAK;AAChE,SAAS,GAAG,gEAAS,4BAA4B,gEAAS;AAC1D;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,kBAAkB,+DAAQ;AAC1B;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE,KAAK,kDAAK,iBAAiB,2DAAI,UAAU,0DAAG,oBAAoB,mBAAmB,EAAE,oBAAoB,+DAAQ;AACnJ,sBAAsB,0DAAG;AACzB,yBAAyB,oDAAM;AAC/B;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB,6DAAM;AAC5B,yBAAyB,oDAAM;AAC/B;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb,sBAAsB,0DAAG;AACzB,yBAAyB,oDAAM;AAC/B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,sBAAsB,gEAAS,CAAC,kDAAK;AACrC,SAAS;AACT,kBAAkB,6DAAM,cAAc,wBAAwB,EAAE;AAChE;AACA,kBAAkB,0DAAG;AACrB;AACA,uDAAuD,EAAE,+CAA+C,EAAE;AAC1G,SAAS;AACT,kBAAkB,6DAAM;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,6DAAM;AACxB;AACA;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C,sDAAsD,EAAE;AACxD;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS,GAAG,gEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,EAAE;AAC7C,sDAAsD,EAAE;AACxD;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb,wBAAwB,EAAE;AAC1B,SAAS;AACT;AACA,kBAAkB,0DAAG;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,SAAS;AACT,kBAAkB,6DAAM;AACxB;AACA,SAAS,GAAG,gEAAS;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE,wDAAwD,EAAE;AACxF;AACA,4BAA4B,EAAE,yDAAyD,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uEAAuE;AACvE,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,sBAAsB,gEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD,0DAA0D,EAAE;AAC5D,sDAAsD,EAAE;AACxD,yBAAyB;AACzB,+CAA+C,EAAE;AACjD,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AACjF,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,mCAAmC,OAAO,mDAAK,EAAE;AACjD,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,uBAAuB,OAAO,oDAAM,EAAE;AACtC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,yDAAW,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AACjR,0BAA0B,+DAAwB,EAAE,2EAA2E,uWAAuW,YAAY,2EAA2E,aAAa,kEAA2B,GAAG;AACxmB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,yDAAW;AAClC,aAAa,GAAG,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AACzG,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA,+BAA+B,+CAAU;AACzC,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,4DAAK;AACrB,+BAA+B,+CAAU;AACzC,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,4DAAK;AACrB,6BAA6B,+CAAU;AACvC,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,4DAAK;AACrB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA,SAAS;AACT;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS;AACT,MAAM;AACN;AACA,uBAAuB,OAAO,mDAAK,EAAE;AACrC,uBAAuB,OAAO,0DAAY;AAC1C;AACA;AACA;AACA,yBAAyB,GAAG,OAAO,0DAAY,wEAAwE;AACvH,qBAAqB,OAAO,0DAAY;AACxC;AACA;AACA,yBAAyB,GAAG,OAAO,0DAAY;AAC/C;AACA;AACA,yBAAyB,GAAG,OAAO,0DAAY,4DAA4D;AAC3G;AACA,wEAAwE,yCAAyC,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG,+DAAwB,sBAAsB;AACjS,6BAA6B,+DAAwB,EAAE,4IAA4I;AACnM,QAAQ,wDAAiB,qFAAqF,sFAAsF,EAAE,oFAAoF,gEAAgE,EAAE,kFAAkF,0FAA0F,EAAE,wFAAwF,0FAA0F,EAAE,gFAAgF,sDAAsD,EAAE;AACt0B,KAAK,EAAE,WAAW,6BAA6B,EAAE;AACjD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,GAAG,2BAA2B,EAAE,EAAE,GAAG;AACnJ,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA,uBAAuB,8DAAuB,EAAE,wBAAwB;AACxE,uBAAuB,8DAAuB,EAAE,+CAA+C,qCAAqC,EAAE,EAAE;AACxI,cAAc,oDAAoD,gEAAyB,mBAAmB;AAC9G;AACA,gCAAgC,EAAE,EAAE;AACpC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEsE;;AAEtE,qD;;;;;;;;;;;;AC/gCa;AACb,8CAA8C,cAAc;AAC5D,yBAAyB,mBAAO,CAAC,mGAAwB;AACzD;AACA,sBAAsB,mBAAO,CAAC,6FAAqB;AACnD;AACA;;AAEA,iC;;;;;;;;;;;;ACRa;AACb,8CAA8C,cAAc;AAC5D,aAAa,mBAAO,CAAC,8EAAe;AACpC,aAAa,mBAAO,CAAC,8EAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD,WAAW;AAC7D;AACA,0BAA0B,sBAAsB;AAChD,uBAAuB,sBAAsB;AAC7C,sBAAsB,qBAAqB;AAC3C,qBAAqB,qBAAqB;AAC1C,uBAAuB,qBAAqB;AAC5C,kBAAkB,qBAAqB;AACvC;AACA,4DAA4D,qCAAqC;AACjG,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ACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACnND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,SAAI,IAAI,SAAI;AAClC,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kDAAkD,4BAA4B,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,+DAA+D;AAC5G,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,sOAAsO,6BAA6B;AACnQ;AACA;AACA;AACA;AACA,yCAAyC,2BAA2B,EAAE;AACtE,+CAA+C,uCAAuC;AACtF;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,qBAAqB,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,KAAK;AACL,8BAA8B,4BAA4B,EAAE;AAC5D,8BAA8B,mBAAmB,EAAE;AACnD,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,EAAE;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,2BAA2B,EAAE;AAC3E,2CAA2C,2BAA2B,EAAE;AACxE;AACA,2CAA2C,kBAAkB,SAAS,SAAS,KAAK;AACpF;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2CAA2C,aAAa,aAAa;AACrE,aAAa;AACb,uCAAuC,UAAU,qBAAqB;AACtE,SAAS;AACT;AACA,gGAAgG,wBAAwB,EAAE;AAC1H;AACA,2CAA2C,mCAAmC,EAAE;AAChF;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,WAAW,yCAAyC;AAC3F,SAAS;AACT;AACA;AACA;AACA;AACA,gHAAgH,qCAAqC,EAAE;AACvJ;AACA,+CAA+C,WAAW,0EAA0E,wBAAwB,EAAE,iBAAiB;AAC/K;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACO;AACP,2hBAA2hB,6BAA6B,oFAAoF,6BAA6B;AACzqB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,wCAAwC,6BAA6B;AACrE,kCAAkC,6BAA6B;AAC/D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,2BAA2B,EAAE;AACtE;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAsC;AACzD;AACA;AACA;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA,wDAAwD,oDAAoD,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sBAAsB,EAAE;AACxE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,oCAAoC,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yEAAyE,iCAAiC,EAAE;AAC5G;AACA,gDAAgD,qBAAqB,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,UAAU;AACjD;AACA;AACA;AACA;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA,mBAAmB,kBAAkB;AACrC;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kEAAkE;AAC5D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0C;;;;;;;;;;;;ACpoBa;AACb,8CAA8C,cAAc;AAC5D,iBAAiB,mBAAO,CAAC,sDAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCa;;AAEb,eAAe,mBAAO,CAAC,0DAAW;;AAElC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL,iCAAiC;AACjC,KAAK;;AAEL;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC3FA;AAAA;AAAA;AAAA;;AAEO;AACA;;;;;;;;;;;;;ACHP;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiC;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE9B;AACf,cAAc,oDAAQ;AACtB,eAAe,kDAAM;AACrB,kBAAkB,6DAAO;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0DAAQ;AACnB,WAAW,yDAAK,kCAAkC;AAClD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA,aAAa,0DAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,4DAAQ;AAC7E;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,4FAA4F,4DAAQ,CAAC,+CAAK,YAAY,4DAAQ;AAC9H;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5ED;AAAA;AAAA;AAAA;AAAA;AAAuC;AACF;;AAErC,sBAAsB,4DAAQ,CAAC,qDAAS;AACjC;AACA;AACQ,0EAAW,EAAC;;;;;;;;;;;;;ACN3B;AAAA;AAAuC;;AAExB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,6DAAS;AACpB;AACA;;;;;;;;;;;;;AChCA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACLA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAqC;;AAEtB;AACf,YAAY,4DAAQ;AACpB;AACA;;;;;;;;;;;;;ACLA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5BD;AAAA;AAAA;AAAuC;;AAExB,oCAAoC,qDAAS;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAS;AACrB,YAAY,6DAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAuC;AACF;;AAEtB,yCAAyC,qDAAS;AACjE,mCAAmC,4DAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;;AAEtB;AACf,sBAAsB,oDAAQ,EAAE,oDAAQ;AACxC;;AAEO;AACP,kCAAkC,oDAAQ;AAC1C;;AAEO;AACP,sBAAsB,oDAAQ;AAC9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACnCA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuE;AACnB;AACF;AACN;AACA;AACE;AACQ;AACF;AACN;AACuB;AACP,eAAe;AACQ;AACtB;AACI;AAC3B;AACU;AACR;AACI;AACF;AACJ;AACU;AACN;AACI;AACkB;AACV;AACZ;AACA;AACU;AACJ;AACU;AAClB,eAAe;AACT;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;;ACpCxC;AAAA;AAAA;AAAuC;;AAExB,iCAAiC,qDAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAS;AACrB,YAAY,6DAAS;AACrB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAA;AAAuC;AACF;;AAEtB,sCAAsC,qDAAS;AAC9D,mCAAmC,4DAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAqC;;AAEtB;AACf,SAAS,4DAAQ;AACjB,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrBA;AAAA;AAAe;AACf;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACdA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2B;AACA;AACgB;AACC;;AAE7B;AACf,6BAA6B,0DAAO;AACpC;AACA,qCAAqC,uDAAG;AACxC,qBAAqB,uDAAG;AACxB;AACA;AACA;AACA,eAAe,uDAAG,CAAC,+DAAW;AAC9B,eAAe,uDAAG;AAClB;AACA;;AAEO,6CAA6C,kDAAM;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BA;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACe,6EAA6E,qDAAS;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3CA;AAAe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAyC;;AAE1B;AACf,gBAAgB,8DAAU;AAC1B;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAgC;AACM;;AAEvB;AACf,uCAAuC,4DAAQ,iBAAiB,4DAAQ,2BAA2B,yDAAK;AACxG,CAAC;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAgC;AACQ;;AAEzB;AACf,wCAAwC,6DAAS,oBAAoB,yDAAK;AAC1E,CAAC;;;;;;;;;;;;;ACLD;AAAA;AAAgC;;AAEjB;AACf,4BAA4B,yDAAK;AACjC,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClDA;AAAA;AAA2B;;AAEZ;AACf;AACA,uBAAuB,uDAAG,2CAA2C,SAAS;AAC9E,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA;AAAA;AAAuC;;AAExB;AACf,SAAS,6DAAS;AAClB,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACW;AACL;AAC2B;AAC9B;AACH;AACD;AACgB;;AAEpD,iBAAiB,aAAa;AAC9B,kBAAkB,cAAc;AAChC,mBAAmB,eAAe;AAClC,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,0DAAK,SAAS,kDAAK;AAC9B;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,EAAE;AAC3F,wBAAwB,mCAAmC;AAC3D;;AAEA;AACA;AACA;AACA,uBAAuB,wCAAwC,EAAE;AACjE,wBAAwB,WAAW;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA,UAAU,kDAAK,aAAa,kDAAK;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,kBAAkB,4DAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,2DAAM;AAChB;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe,EAAE;;AAEvD;;AAEA;AACA,oCAAoC,mCAAmC,EAAE;AACzE,qCAAqC,wBAAwB,EAAE;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,gDAAgD,EAAE;AAC3F,uDAAuD,gCAAgC,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAW;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAAS;AACrB;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,gHAAgH,EAAE;AACpJ,kCAAkC,gGAAgG,EAAE;AACpI,sCAAsC,uGAAuG,EAAE;AAC/I,uCAAuC,uGAAuG,EAAE;AAChJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,gEAAW,KAAK,iDAAU;AAChC;AACA;;AAEA;AACA,wBAAwB,kDAAK;AAC7B;;AAEA;AACA,eAAe,kDAAK;AACpB,wBAAwB,kDAAK,2EAA2E,kDAAK;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kDAAK;AAClD;AACA;AACA,kBAAkB,kDAAK,mBAAmB,kDAAK,iCAAiC,kDAAK;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB,2DAAM;AACtB;;AAEA;AACA;;AAEA,QAAQ,kDAAK;AACb;AACA;AACA,KAAK;AACL,iBAAiB,2DAAM,CAAC,kDAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,2DAAW,CAAC,kDAAK;AACvB;;AAEA,IAAI,iEAAa;AACjB,IAAI,+DAAS;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iEAAa;AACnB,UAAU,kDAAK;AACf,YAAY,kDAAK;AACjB;AACA,6CAA6C,oBAAoB,EAAE,OAAO;AAC1E,OAAO;AACP,QAAQ,0DAAU,CAAC,kDAAK;AACxB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,UAAU;AAC5B;AACA,wCAAwC;AACxC,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;;AAEA;AACA,cAAc,kDAAK;AACnB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gBAAgB,kDAAK;AACrB;AACA;AACA;AACA,aAAa;AACb,qCAAqC;AACrC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,sEAAsE,4DAAQ;AAC9E;;AAEA;AACA,yEAAyE,4DAAQ;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC5kBA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKoB;;;;;;;;;;;;;ACLpB;AAAA;AAAA;AAAmC;;AAE5B;AACP,EAAE,kDAAK;AACP;;AAEe;AACf,EAAE,kDAAK;AACP,EAAE,kDAAK;AACP,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AClXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gDAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,uBAAuB,yDAAM,CAAC,+CAAK;AACzC;AACA,oBAAoB,kDAAQ,YAAY,kDAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,gDAAM,YAAY,gDAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,gDAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DD;AAAA;AAAe;AACf;AACA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACE;AACJ;;;;;;;;;;;;;ACFpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,6CAAG,OAAO,4DAAU;AACzC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6CAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,gDAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,gDAAO;AACvB;AACA;;AAEA,0DAAM,WAAW,yDAAM,CAAC,+CAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1HD;AAAA;AAAA;AAAO;AACA;;;;;;;;;;;;;ACDP;AAAA,YAAY;;AAEZ;AACA,8CAA8C,IAAI,OAAO;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,iBAAiB;AACjB;AACA;AACA,GAAG;AACH;AACA,kFAAkF,OAAO;AACzF;AACA,+CAA+C,OAAO;AACtD,GAAG;AACH;AACA;AACA,mDAAmD,OAAO;AAC1D;AACA;;AAEA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACnFx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AO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AAAA;AAAuC;;AAEvC;AACO;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,0DAAY;AACvB;AACA;AACA;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAA+C;;AAEhC;AACf,aAAa,iEAAa;AAC1B,CAAC;;;;;;;;;;;;;ACJD;AAAA;AACA;AACA;AACe;AACf,+FAA+F;AAC/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACbD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjBD;AAAe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAA+C;;AAExC;;AAEQ;AACf,UAAU,iEAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iEAAa,+BAA+B;AACxF,CAAC;;;;;;;;;;;;;ACfD;AAAA;AAA+C;;AAEhC;AACf,UAAU,iEAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,sDAAsD;;AAE/C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9CA;AAAA;AACe;AACf,iDAAiD,OAAO;AACxD;AACA,4BAA4B;AAC5B,qCAAqC,QAAQ;AAC7C,qCAAqC,oBAAoB;AACz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;;;;ACND;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAe;AACf;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,kDAAkD,OAAO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAe;AACf;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoC;AACF;AACY;AACF;AACZ;AACE;AACA;AACU;AACI;AACV;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,iDAAU;AACnB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,cAAc,sDAAe;AAC7B,OAAO,+CAAQ;AACf,QAAQ,gDAAS;AACjB,QAAQ,gDAAS;AACjB,aAAa,qDAAc;AAC3B,eAAe,uDAAgB;AAC/B,UAAU,kDAAW;AACrB,SAAS,kDAAU;AACnB;AACA;;;;;;;;;;;;;AC9EA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA,wBAAwB;AACxB,kBAAkB,kCAAkC;AACpD;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACRD;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACRD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACU;AACV;AACW;AACF;AACL;AACF;AACR;AACY;AACO;AACJ;AACE;AACQ;AACF;AACI;;;;;;;;;;;;;ACdrE;AAAA;AAA2C;;AAE5B;AACf,4BAA4B,yDAAO,CAAC,+CAAK;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kBAAkB;AAC/B,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHA;AAAA;AAAA;AAAA;AAA0C;AACD;AACa;;AAEtD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,gBAAgB,yDAAY;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kCAAkC,yDAAY;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,8DAAQ;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,uEAAuE,4DAAQ;AAC/E;;AAEA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,OAAO;AAC/B,UAAU,gEAAW;AACrB,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,wCAAwC,KAAK,2DAAO;;AAEvE;AACA,aAAa,OAAO;;AAEpB;AACA;;AAEe;AACf;AACA;AACA,CAAC;;;;;;;;;;;;;ACrHD;AAAA;AAAA;AAA2C;AACC;;AAE7B;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAA;AAAwC;AACiB;;AAEzD;AACA,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB,yCAAyC,wDAAI;AAC7C;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,oCAAoC,KAAK,EAAE,aAAa,iEAAa;AACzG;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC,8DAAQ;AAC5C;;AAEA;AACA,0CAA0C,8DAAQ;AAClD;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACxED;AAAA;AAA0C;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,gBAAgB;AAChB,aAAa;AACb,aAAa;AACb,aAAa;AACb,aAAa;AACb,gBAAgB;AAChB,aAAa;AACb;;AAEA,mCAAmC,wDAAI;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACe;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC5OD;AAAe;AACf;AACA;AACA;;AAEA,6BAA6B,OAAO;AACpC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC7CD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAAmC;AACE;AACI;AACa;;AAEvC;AACf,aAAa,oDAAQ;AACrB;AACA;AACA;AACA;AACA,qBAAqB,yDAAY;AACjC,mBAAmB,yDAAY;AAC/B,qBAAqB,yDAAY;AACjC,sBAAsB,yDAAY;AAClC,oBAAoB,yDAAY;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iDAAS;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,sCAAsC,8DAAQ;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA,4EAA4E,4DAAQ;AACpF;;AAEA;AACA;AACA;;AAEA;AACA,0EAA0E,4DAAQ;AAClF;;AAEA;AACA,4EAA4E,4DAAQ;AACpF;;AAEA;AACA,6EAA6E,4DAAQ;AACrF;;AAEA;AACA,2EAA2E,4DAAQ;AACnF;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC7FD;AAAA;AAAA;AAAA;AAAoC;AACE;AACW;;AAElC;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iDAAiD,OAAO;AACxD,sBAAsB,wDAAW;AACjC,aAAa,yDAAY;AACzB;AACA;AACA,KAAK;AACL,gCAAgC,kEAAa;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,EAAE,gDAAG,CAAC,EAAC;;;;;;;;;;;;;ACnCR;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACXD;AAAA;AAAA;AAA6B;AACE;;AAEhB;AACf,sBAAsB,iDAAK,GAAG,gDAAI;AAClC,CAAC;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAA;AAAA;AAAoC;AACE;;AAE/B;;AAEA;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;AACA,UAAU,QAAQ;AAClB;AACA;AACA;AACA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;AACf,UAAU,yDAAK;AACf,gBAAgB,yDAAK;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,CAAC;;AAEM;AACP;AACA;;;;;;;;;;;;;ACbA;AAAA;AAA+B;;AAEhB;AACf,YAAY;AACZ,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,yDAAK;AAClB,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACPA;AAAe;AACf;AACA,iBAAiB,OAAO;AACxB;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACV;AACY;AACD;;AAE3B;AACf,cAAc,uDAAK;;AAEnB;AACA,2BAA2B,oDAAQ,mBAAmB,oDAAQ;AAC9D;AACA;AACA,kBAAkB,yDAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,cAAc,oDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,iDAAK;AAC9B,+BAA+B,uDAAW;;;;;;;;;;;;;ACtDjD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAiC;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,2BAA2B;AAC3B;AACA;AACA,wCAAwC;AACxC,2BAA2B;AAC3B;AACA,KAAK,OAAO;AACZ;AACA,cAAc,SAAS,0DAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA,SAAS;AACT,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAA;AAAA;AAAkC;AACY;;AAE9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,0DAAM,SAAS,GAAG,aAAa,0DAAM,SAAS;AACzE,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,gCAAgC,gCAAgC;AAChE,cAAc,sDAAsD,0DAAM,OAAO;AACjF,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,0DAAM,OAAO;AAChF,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,0DAAM,SAAS,GAAG,aAAa,0DAAM,SAAS;AACzE,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,kDAAQ;AAC3D,mDAAmD,kDAAQ;;;;;;;;;;;;;AC9DlE;AAAA;AAAA;AAAA;AAAmD;;AAEnD;AACA;AACA;AACA;;AAEO;AACP,+BAA+B,sDAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEO;AACP,4BAA4B,sDAAQ;AACpC;AACA;AACA,iEAAiE,sDAAQ;AACzE;AACA,SAAS,6DAAS;AAClB;;;;;;;;;;;;;ACxBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACJ;AACa;AACX;AACI;AACA;AACA;AACI;AACuB;;AAE7C;AACf;AACA,wCAAwC,4DAAQ;AAChD,0BAA0B,kDAAM;AAChC,+BAA+B,sDAAK,eAAe,+CAAG,IAAI,kDAAM;AAChE,qBAAqB,8CAAK,GAAG,+CAAG;AAChC,4BAA4B,gDAAI;AAChC,QAAQ,qEAAa,MAAM,uDAAW;AACtC,2BAA2B,sDAAY;AACvC,0FAA0F,kDAAM;AAChG,QAAQ,kDAAM;AACd,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC/DD;AAAA;AAAA;AAAA;AAA0C;;;;;;;;;;;;;ACA1C;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACjIpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACP;AACD;;AAEpB;AACf,cAAc,2DAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sDAAQ,qBAAqB,yBAAyB,EAAE;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAS;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACpGA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACoE;AAC/D;AACJ;;AAEjC;;AAEO;AACP;AACA;;AAEA;AACA;AACA,qBAAqB,oBAAoB;AACzC,QAAQ,4DAAQ;AAChB;;AAEA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kBAAkB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,uDAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,0DAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,gEAAiB;AACzG;;AAEA;AACA,sDAAsD,kDAAM;AAC5D;;AAEA;A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E;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,QAAQ;AAC/B,gCAAgC,UAAU;AAC1C;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,QAAQ;AAC3B,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAK;AACrC,KAAK;AACL,UAAU,sDAAK;AACf;;AAEA;AACA;;AAEA;AACA;AACA,qDAAqD,wDAAM;AAC3D;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,wDAAI;AACtB,0BAA0B,kCAAkC,EAAE;AAC9D,yBAAyB,iCAAiC;AAC1D,KAAK;AACL;;AAEA;AACA;;AAEe;AACf,sBAAsB,kEAAW;;AAEjC;AACA,WAAW,2DAAI;AACf;;AAEA,EAAE,kDAAS;;AAEX;AACA;;;;;;;;;;;;;ACjJA;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACjBD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAoC;;AAE7B;;AAEQ;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,kDAAS;;AAEX;AACA;;;;;;;;;;;;;AC7CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACsB;AACxB;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wBAAwB,uDAAQ,EAAE,uDAAQ;AAC1C;;AAEA;AACA,sCAAsC,uDAAQ,EAAE,uDAAQ;AACxD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,4DAAS;AAClB;;AAEe;AACf,qBAAqB,kEAAW;;AAEhC;AACA,WAAW,2DAAI;AACf;;AAEA,EAAE,kDAAS;;AAEX;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAkE;AAC9B;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,yDAAS;AACjD;AACA;;AAEA;AACA,2CAA2C,uDAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAS;AAClB;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACM;AACF;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAS,OAAO,4DAAS;AAClC;;;;;;;;;;;;;ACvDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyC;AACL;AACE;AACL;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,gBAAgB,8DAAU;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oEAAoE,kDAAM;AAC1E;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,kDAAS;;AAEX,SAAS,4DAAS;AAClB;;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AACpB;AACE;AACL;AACL;AACK;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uDAAQ;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,0DAAW;;AAEjC,2BAA2B,+DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,cAAc,4DAAS,eAAe,uDAAQ;;AAE9C;AACA;AACA;;AAEA,SAAS,yDAAgB;AACzB;;AAEO;AACP,cAAc,uDAAO;;AAErB;AACA;AACA;;AAEA,SAAS,yDAAgB;AACzB;;AAEO;AACP,cAAc,4DAAS;;AAEvB;AACA;AACA;;AAEA,SAAS,yDAAgB;AACzB;;AAEO;AACP,cAAc,sDAAM;;AAEpB;AACA;AACA;;AAEA,SAAS,yDAAgB;AACzB;;AAEO;AACP;AACA;;;;;;;;;;;;;AC1GA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACZ;AACE;;AAE5B;AACf;AACA,qBAAqB,uDAAQ;;AAE7B;AACA,6CAA6C,uDAAM;AACnD;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,kDAAS;AACzB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,cAAc,YAAY,yDAAQ;AACzD;;AAEA;AACA;AACA;;AAEA,SAAS,yDAAgB;AACzB;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACY;AACd;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA,SAAS,4DAAS;AAClB;;AAEe;AACf,wBAAwB,kEAAW;;AAEnC;AACA,WAAW,2DAAI;AACf;;AAEA,SAAS,kDAAS;AAClB;;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAgC;AACI;;AAErB;AACf;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,uDAAM;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,kDAAS;AAClB;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAkC;AAC+E;;AAElG;AACf,aAAa,yDAAQ;AACrB;AACA,cAAc,iEAAe;AAC7B;AACA;AACA;AACA,4DAA4D,iEAAe;AAC3E,aAAa,8DAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gEAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,gEAAc;AAC1E;AACA;AACA;AACA,SAAS,wDAAM;AACf,CAAC;;;;;;;;;;;;;AC5BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACsE;AACxE;AACO;AACb;AACP;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP,cAAc,8DAAU;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,yDAAQ,cAAc,aAAa,EAAE;AACnD;AACA;AACA,eAAe,yDAAQ;AACvB;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,wBAAwB,yDAAQ;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,wDAAI;AACrB;AACA;;AAEA;AACA,WAAW,2DAAI;AACf;;AAEA;AACA;;AAEe;AACf,SAAS,kDAAS,gBAAgB,gDAAQ,EAAE,iDAAS,EAAE,gDAAQ,EAAE,+CAAO,EAAE,gDAAQ,EAAE,kDAAU,EAAE,kDAAU,EAAE,uDAAe,EAAE,yDAAU;AACvI,CAAC;;;;;;;;;;;;;ACvID;AAAA;AAAA;AAAA;AAAA;AAAmC;AACM;AACiE;AACtE;;AAErB;AACf,SAAS,kDAAS,OAAO,yDAAQ,CAAC,+CAAO,EAAE,gDAAQ,EAAE,+CAAO,EAAE,8CAAM,EAAE,+CAAO,EAAE,iDAAS,EAAE,iDAAS,EAAE,sDAAc,EAAE,wDAAS;AAC9H,CAAC;;;;;;;;;;;;;ACPD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAgC;AACF;;AAEf;AACf,SAAS,uDAAM,CAAC,wDAAO;AACvB,CAAC;;;;;;;;;;;;;ACLD;AAAA;AAAA;AAAoC;AACD;;AAEnC;AACA;AACA;AACA;AACA,mBAAmB,iDAAK,8CAA8C,iDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;AAC1B;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACE;AACJ;AACI;AACJ;AACQ;AACE;AACJ;AACJ;AACM;AACM;AACR;AACM;AACC;AACb;AACI;AACF;AACO;;;;;;;;;;;;;ACjBlD;AAAA;AAAA;;AAEe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAA;AAAwC;AACZ;;AAEb;AACf,cAAc,4DAAW;AACzB;AACA,SAAS,sDAAK;AACd,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAsC;;AAEvB;AACf;AACA;AACA,SAAS,mDAAU,2BAA2B,OAAO,mDAAU,sBAAsB;AACrF,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAO;;AAEQ;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACRF;AAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,eAAe,qDAAI;AACxC,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAkD;;AAEnC;AACf;AACA,YAAY,0DAAS;AACrB,YAAY,0DAAS,qCAAqC,qDAAI;AAC9D,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAiC;;AAElB;AACf,mDAAmD,wDAAO;AAC1D;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,0DAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACxDD;AAAe;AACf;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACLD;AAAA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1ED;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAA;AAAA;AAAkC;AACA;AACC;;AAEnC,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,gDAAS;AAC9B;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA,2BAA2B,eAAe,EAAE;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C,yDAAQ;;AAEnD,sGAAsG,OAAO;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,gDAAS;AACxB;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACrHD;AAAe;AACf;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACJD;AAAA;AAAoC;;AAEpC;AACA,eAAe,uDAAW;AAC1B;;AAEA;AACA;AACA,G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;AAAA;;AAEO;;AAEP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA,6CAA6C,OAAO;AACpD,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;AC1GA;AAAe;;AAEf,4DAA4D,SAAS;AACrE,4EAA4E,UAAU;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC3BD;AAAA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACPD;AAAA;AAAA;AAAkC;AACC;;AAEpB;AACf,6CAA6C,yDAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gDAAS;AACtB,CAAC;;;;;;;;;;;;;AChBD;AAAA;AAAA;AAAkC;AACO;;AAE1B;AACf,6CAA6C,4DAAW;;AA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BAA8B,oFAAoF;AAClH,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AClDD;AAAA;AAAA;AAA8B;AACG;;AAEjC;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,4BAA4B;AAC1D,8BAA8B,4BAA4B,4FAA4F;AACtJ,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACnDD;AAAA;AAAiC;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,oFAAoF,0EAA0E;AAC5L,8BAA8B;AAC9B,eAAe,uDAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACtCD;AAAA;AAAiC;;AAEjC;AACA,oBAAoB,+CAAK;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4BAA4B,+CAAK;AACjC;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,OAAO,EAAC;;;;;;;;;;;;;ACvDT;AAAA;AAAA;AAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,8CAA8C;AAC9C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B,4BAA4B;AAC1D,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAA;AAA8B;AACM;;AAE7B;AACP;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AC5DN;AAAA;AAAA;AAAoC;;AAE7B;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,0DAAK,aAAa;AACjC;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,IAAI,EAAC;;;;;;;;;;;;;AChDN;AAAA;AAAA;AAAA;AAAmC;AACI;;AAEhC;AACP;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gDAAO;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B;AAC9B,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,wDAAwD,qDAAQ;AAChE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACvFR;AAAA;AAAA;AAAA;AAAmD;AACrB;AACQ;;AAEtC;AACA;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,4BAA4B;AAC1D,8BAA8B,kDAAkD;AAChF,8BAA8B,4BAA4B;AAC1D,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,8DAA8D,iEAAc;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;ACzER;AAAA;AAAA;AAA+C;AACT;;AAEtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,8BAA8B;AAC9B,8BAA8B,kGAAkG;AAChI,8BAA8B;AAC9B,eAAe,4DAAK,aAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;;AAEf;AACA,4DAA4D,6DAAY;AACxE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC,MAAM,EAAC;;;;;;;;;;;;;AC7DR;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,0CAA0C;AAC1C;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AC9BD;AAAA;AAA8B;;AAE9B;AACA;AACA;;AAEA;AACA,aAAa,gDAAI;AACjB,WAAW,gDAAI;AACf;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACxBD;AAAA;AAAA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uDAAuD;AACvD,4DAA4D;AAC5D;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B,8BAA8B,wDAAwD;AACtF,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,4BAA4B,EAAE;AACxD,yBAAyB,2BAA2B,EAAE;AACtD,0BAA0B,4BAA4B,EAAE;AACxD,iDAAiD,mDAAmD;AACpG;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACvGA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,WAAW;AACxB;AACA,aAAa,OAAO;AACpB;AACA,iBAAiB,QAAQ;AACzB;AACA,aAAa,WAAW;AACxB;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;AChED;AAAA;AAAA;AAAA;AAAsC;;AAE/B,oCAAoC,kDAAW;;AAEtD;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe;;AAEf;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,8BAA8B,sEAAsE;AACpG,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;AAEM;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;;ACpDA;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAe;AACf;AACA,CAAC;;;;;;;;;;;;;ACFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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AACA;AACA;;AAEA;AACA,oEAAoE,4DAAQ;AAC5E;;AAEA;AACA,oEAAoE,4DAAQ;AAC5E;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;AC7CD;AAAA;AAAmC;;AAEpB;AACf;AACA,6BAA6B,2CAAE;AAC/B;AACA,4BAA4B,4CAAG;AAC/B;AACA,CAAC,EAAC;;;;;;;;;;;;;ACRF;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACjBF;AAAA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACbF;AAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACNF;AAAA;AAAmC;;AAEnC;AACA,kBAAkB,2CAAE,sBAAsB,2CAAE;AAC5C,kBAAkB,4CAAG;AACrB,mBAAmB,4CAAG;;AAEP;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,cAAc,4CAAG;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACvBF;AAAA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACVF;AAAA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACzBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;;AAEvC;AACO;AACA;AACA;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,0DAAY;AACvB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkH;AAC1D;AACJ;AACF;;;;;;;;;;;;;ACHlD;AAAA;AAAA;AAA6C;;AAEtC;;AAEP;AACA;AACA;;AAEA;AACA;AACA,MAAM,mEAAS;;AAEA,wEAAS,EAAC;;;;;;;;;;;;;ACZzB;AAAA;AAAA;AAA4C;AACA;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,kEAAQ,CAAC,0DAAY;;AAEZ,uEAAQ,EAAC;;;;;;;;;;;;;ACZxB;AAAA;AAAA;AAWiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iDAAS,cAAc,yDAAS;AACxE,iBAAiB,8CAAM;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,kDAAU,cAAc,0DAAU;AAC1E,iBAAiB,+CAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA,KAAK;AACL;AACA;AACA,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;;AAEA,YAAY,4BAA4B;AACxC;AACA;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,+CAAO,OAAO,wDAAQ;AACvC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,kDAAU,OAAO,wDAAQ;AACtC;;AAEA;AACA;AACA,gCAAgC,4DAAY,MAAM,oDAAY;AAC9D,aAAa,oDAAY,OAAO,wDAAQ,WAAW,wDAAQ;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,kDAAU,OAAO,wDAAQ;AACtC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,8CAAM,OAAO,uDAAO;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iDAAS,OAAO,uDAAO;AACpC;;AAEA;AACA;AACA,gCAAgC,2DAAW,MAAM,mDAAW;AAC5D,aAAa,mDAAW,OAAO,uDAAO,WAAW,uDAAO;AACxD;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,iDAAS,OAAO,uDAAO;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;A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;;AAE3D;AACA,SAAS,4DAAQ;AACjB;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,kFAAkF,2DAAc,IAAI,yDAAY;AAChH,GAAG;AACH;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5BP;AAAA;AAAA;AAAqC;;AAErC,WAAW,4DAAQ;AACnB;AACA;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;AACD;AACA,CAAC;;AAED;AACA;AACA,2DAA2D,4DAAQ;AACnE;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEe,mEAAI,EAAC;AACb;;;;;;;;;;;;;ACzBP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIoB;;AAIE;;AAIC;;;;;;;;;;;;;ACZvB;AAAA;AAAsC;;AAEvB;AACf,cAAc,+CAAK;AACnB;AACA,wCAAwC,qDAAG;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACZD;AAAA;AAAiC;;AAElB;AACf,cAAc,+CAAK;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qIAAqI,mBAAmB;;AAEjJ;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;;AC7GA;AAAA;AAAA;AAAiD;AACE;;AAEnD;;AAEe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,iEAAS;AACrD,mBAAmB,+DAAU;AAC7B;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACpBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8B;AAC8B;AACd;AACM;;;;;;;;;;;;;ACHpD;AAAA;AAAiE;;AAElD;AACf;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,kDAAkD,eAAe,UAAU;AAC3E,8BAA8B,gEAAQ,qBAAqB,8DAAM;AACjE,qBAAqB,6DAAK;AAC1B;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAA;AAAuC;AACU;AACE;;AAEnD,sDAAS,uBAAuB,qDAAmB;AACnD,sDAAS,wBAAwB,sDAAoB;;;;;;;;;;;;;ACLrD;AAAA;AAAwC;;AAEzB;AACf;AACA,IAAI,6DAAS;AACb,GAAG;AACH,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAyD;AACR;AACV;AACV;;AAE7B;AACA;AACA;AACA;AACA,QAAQ,sDAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,oDAAG;AACrC;AACA;AACA;AACA;;AAEe;AACf;AACA;;AAEA,sBAAsB,+DAAU;AAChC;AACA,GAAG;AACH,SAAS,kEAAK,oCAAoC,oDAAG;AACrD;;AAEA,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA;;AAEA,aAAa,+DAAU;AACvB,CAAC;;;;;;;;;;;;;ACzCD;AAAA;AAAA;AAAA;AAAA;AAA+E;AACxC;AACD;AACK;;AAE3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,iBAAiB,8DAAS,uCAAuC,sEAAoB,GAAG,uDAAW;AACnG;AACA,sEAAsE,4DAAU;AAChF;AACA;AACA,CAAC;;;;;;;;;;;;;AC7ED;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,iBAAiB,8DAAS;AAC1B;AACA,CAAC;;;;;;;;;;;;;AC3CD;AAAA;AAAwC;;AAExC;AACA;AACA,IAAI,yDAAI;AACR;AACA;;AAEA;AACA;AACA,IAAI,yDAAI;AACR;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA,QAAQ,wDAAG;AACX,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAuC;;AAEvC;AACA;AACA,IAAI,wDAAG;AACP;AACA;;AAEA;AACA;AACA,IAAI,wDAAG;AACP;AACA;;AAEe;AACf;;AAEA;AACA;AACA;AACA;AACA,QAAQ,wDAAG;AACX,CAAC;;;;;;;;;;;;;ACtBD;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,IAAI,wDAAG;AACP;AACA;;AAEe;AACf;;AAEA;AACA;AACA,QAAQ,wDAAG;AACX,CAAC;;;;;;;;;;;;;ACfD;AAAA;AAAkC;;AAEnB;AACf;AACA;AACA,kBAAkB,cAAc;AAChC,eAAe,mBAAmB,6BAA6B;;AAE/D;AACA,qBAAqB,wDAAG;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,GAAG;AACH,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAA;AAAqC;AACC;;AAEvB;AACf,2CAA2C,4DAAO;;AAElD,qFAAqF,OAAO;AAC5F,4FAA4F,OAAO;AACnG;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuC;AACC;AACU;AACR;AACM;AACR;AACI;AACF;AACN;AACQ;AACA;AACM;AACA;AACR;AACU;AACZ;AACU;AACE;AACV;AACJ;;AAEtC;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEe;AACf,SAAS,8DAAS;AAClB;;AAEO;AACP;AACA;;AAEA,0BAA0B,sDAAS;;AAEnC;AACA;AACA,UAAU,mDAAiB;AAC3B,aAAa,sDAAoB;AACjC,UAAU,kDAAiB;AAC3B,SAAS,iDAAgB;AACzB,aAAa,sDAAoB;AACjC,cAAc,uDAAqB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8CAAa;AACnB,QAAQ,gDAAe;AACvB,aAAa,qDAAoB;AACjC,SAAS,kDAAgB;AACzB,cAAc,uDAAqB;AACnC,QAAQ,iDAAe;AACvB,aAAa,sDAAoB;AACjC,UAAU,kDAAiB;AAC3B,SAAS,kDAAgB;AACzB,SAAS,iDAAgB;AACzB,YAAY,oDAAmB;AAC/B,QAAQ,gDAAe;AACvB,OAAO,gDAAc;AACrB;;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAA+B;AACqD;;AAErE;AACf;AACA,kCAAkC,gEAAiB;AACnD,qBAAqB,8CAAK,GAAG,6DAAc;AAC3C,aAAa,sDAAK,eAAe,6DAAc;AAC/C,QAAQ,gEAAiB;AACzB,CAAC;;;;;;;;;;;;;ACTD;AAAA;AAAsC;;AAEvB;AACf;;AAEA,+JAA+J,OAAO;AACtK,wHAAwH,OAAO;AAC/H;AACA;AACA;AACA;AACA;;AAEA,QAAQ,QAAQ;AAChB;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;AClBD;AAAA;AAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,oCAAoC,iDAAI,GAAG,gDAAG;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;AACA,QAAQ,wDAAG;AACX;AACA,CAAC;;;;;;;;;;;;;AC/BD;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,CAAC;;;;;;;;;;;;;ACVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqC;AACG;;AAExC,cAAc,4DAAQ;AACtB;;AAEO;AACA;AACA;AACA;AACA;AACA;AACA;;AAEQ;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAEM;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA,0DAA0D;AAC1D;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,sDAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C,sCAAsC,wDAAO;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wDAAwD;AACxD;AACA,0DAA0D;AAC1D;AACA,IAAI,wDAAO;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;;;;;;;;;;;;;ACxJA;AAAA;AAAA;AAAA;AAAsC;AACA;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,6DAAQ;;AAErD,qFAAqF,OAAO;AAC5F,+GAA+G,OAAO;AACtH;AACA;AACA;AACA,QAAQ,4DAAQ,qCAAqC,wDAAG;AACxD;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACrBD;AAAA;AAAA;AAAA;AAAyC;AACH;AACM;;AAE7B;AACf;AACA;;AAEA,6CAA6C,gEAAW;;AAExD,yFAAyF,OAAO;AAChG,8DAA8D,OAAO;AACrE;AACA,yFAAyF,wDAAG,uCAAuC,OAAO;AAC1I;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACzBD;AAAA;AAAuC;;AAEvC,gBAAgB,sDAAS;;AAEV;AACf;AACA,CAAC;;;;;;;;;;;;;ACND;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAC5C;AACD;AACI;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB,oDAAoD,0DAAK;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAAK;AACvB;AACA;AACA,6EAA6E,0DAAK;AAClF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf,yCAAyC,sEAAoB,GAAG,uDAAW;AAC3E;AACA;AACA;AACA;AACA,+CAA+C,4DAAU;AACzD;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC/ED;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA,qBAAqB,4DAAU;AAC/B;AACA,CAAC;;;;;;;;;;;;;ACnBD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAA6C;AACD;;AAE7B;AACf;AACA;AACA,YAAY,uDAAK;;AAEjB,2DAA2D,OAAO;AAClE,8DAA8D,OAAO;AACrE;AACA,sBAAsB,wDAAG;AACzB,QAAQ,4DAAQ;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,aAAa,oDAAU;AACvB,CAAC;;;;;;;;;;;;;ACvBD;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,wDAAG;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB,2BAA2B,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;;AAEA;;AAEA;AACA,gBAAgB,wDAAG;AACnB,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAEM;AACP;;AAEA;AACA,mBAAmB,wDAAG;AACtB,2CAA2C;AAC3C,GAAG;;AAEH;AACA,WAAW,wDAAG;AACd;AACA;;;;;;;;;;;;;AChFA;AAAA;AAAe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACTA;AAAA;AAAe;AACf;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAwC;AACzB;AACf,SAAS,gEAAM,GAAG;AAClB,C;;;;;;;;;;;;ACHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0D;AACW;AACJ;AACQ;AACd;AACQ;AACN;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA,yBAAyB,4EAAc,gBAAgB;;AAEvD,4EAA4E;;AAE5E;AACA;AACA,aAAa,yEAAe;AAC5B,KAAK;;;AAGL;AACA;AACA;AACA,OAAO;AACP,KAAK;;;AAGL,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA,sBAAsB,+EAAiB,OAAO;;AAE9C,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC;;AAEpC;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA,eAAe,wEAAU;;AAEzB;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA,kBAAkB,2EAAa;;AAE/B;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA,oBAAoB,6EAAe;;AAEnC;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yEAAe;AAC9B;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA,WAAW,iEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW,yEAAe;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,yEAAe;AAC3D;;AAEA;AACA;AACA;AACA,kBAAkB,yEAAe;AACjC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,yEAAe;AAC7B,gBAAgB,yEAAe;AAC/B;AACA;;AAEe,yEAAU,E;;;;;;;;;;;;ACv1BzB;AAAA;AAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA,+CAA+C,yEAAe;AAC9D,GAAG;AACH;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA,WAAW,yEAAe;AAC1B,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW,yEAAe;AAC1B;AACA;AACe,yEAAU,E;;;;;;;;;;;;ACjFzB;AAAA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA,mCAAmC,MAAM,0DAA0D,MAAM;AACzG;;AAEA;AACA;AACA;AACA;AACe,6EAAc,E;;;;;;;;;;;;AC/F7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K;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,eAAe,uEAAS;AACxB;AACA;AACA;AACA,kBAAkB,uEAAS;AAC3B,+CAA+C;;AAE/C,sCAAsC;;AAEtC;AACA;AACA,SAAS,mEAAS;AAClB,GAAG;;;AAGH;AACA;AACA,C;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,eAAe,uEAAS;AACxB;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACK;AACA;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,wEAAc,YAAY,wEAAc;AACjD,C;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,kBAAkB,gEAAM;AACxB,eAAe,uEAAS;AACxB;AACA,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACgB;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,eAAe,uEAAS;AACxB;AACA;AACA;AACA;AACA,oBAAoB,wEAAc,uBAAuB;AACzD;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACL;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB;AACA,SAAS,mEAAS;AAClB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACT;AACe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB;AACA,SAAS,iEAAO;AAChB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACL;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,mEAAS;AAClB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE,QAAQ;AACR;AACA;AACA;AACA,WAAW,SAAS,8DAA8D;AAClF,WAAW,SAAS,gEAAgE;AACpF,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;;AAEe;AACf;AACA,EAAE,0EAAY;AACd;AACA;AACA,sBAAsB,gEAAM;AAC5B,oBAAoB,gEAAM;AAC1B,uBAAuB,gEAAM;AAC7B,qBAAqB,gEAAM,8BAA8B;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC/GA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,sBAAsB,gEAAM;;AAE5B;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;AACpB,GAAG;AACH,iCAAiC;AACjC,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,gEAAM;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACxEA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,gBAAgB;AAC3B,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,sBAAsB,gEAAM;;AAE5B;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA,oBAAoB;AACpB,GAAG;AACH,iCAAiC;AACjC,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,gEAAM;;AAE5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;ACtEA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;;AAEA;AACA;AACA,GAAG;AACH,aAAa,0BAA0B;AACvC,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;;AAEA;AACA;AACA,GAAG;AACH,aAAa,0BAA0B;AACvC,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AACA;AACA;AACA,WAAW;AACX;AACA;AACO;AACP;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEO,uB;;;;;;;;;;;;ACdP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACI;AACN;AACoC;AAClC;AACI;AACK;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB,OAAO,iEAAO,eAAe,iEAAO;AACpC,2BAA2B,kFAAwB;AACnD;AACA,cAAc,uEAAS;AACvB;AACA,cAAc,iEAAO,uBAAuB;;AAE5C,UAAU,mEAAS;AACnB;AACA,cAAc,mEAAS;AACvB,gBAAgB,iEAAO;AACvB;;AAEA;AACA,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAA;AAA+F;AAC/C;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,uBAAuB,oEAAU;AACjC,wBAAwB,oEAAU;AAClC,iDAAiD,6FAA+B;AAChF,mDAAmD,6FAA+B,kBAAkB;AACpG;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAwD;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,wEAAc,kBAAkB,wEAAc;AACvD,C;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AAA+F;AACvC;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,2BAA2B,wEAAc;AACzC,4BAA4B,wEAAc;AAC1C,qDAAqD,6FAA+B;AACpF,uDAAuD,6FAA+B,sBAAsB;AAC5G;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA;AACA;AACA,C;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACR;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,oBAAoB,oEAAU,aAAa,oEAAU;AACrD;AACA,C;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AAAkD;AAC6C;AACtC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,wBAAwB,qEAAW;AACnC,yBAAyB,qEAAW;AACpC,kDAAkD,6FAA+B;AACjF,oDAAoD,6FAA+B,mBAAmB;AACtG;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACtDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB,4DAA4D;;AAE5D;AACA;AACA,C;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAA4E;AACnB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,kFAAwB;AACrC;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACoD;AAC5C;AACU;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB,aAAa,oEAAU;AACvB,4BAA4B,0FAAgC;AAC5D,aAAa,yEAAe,8BAA8B;AAC1D;AACA;;AAEA,iCAAiC,oEAAU;AAC3C,8DAA8D;;AAE9D;AACA,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAA4E;AACnB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,kFAAwB;AACrC;AACA,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACwC;AAChC;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB,aAAa,oEAAU;AACvB,4BAA4B,oFAA0B;AACtD,6DAA6D;AAC7D;;AAEA,2BAA2B,oEAAU;AACrC,wDAAwD;;AAExD;AACA,C;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAgE;AACP;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,4EAAkB;AAC/B;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAA4E;AACnB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,kFAAwB;AACrC;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAA4D;AACH;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,0EAAgB;AAC7B;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACsC;AAC9B;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB,aAAa,oEAAU;AACvB,4BAA4B,mFAAyB,uBAAuB;AAC5E;;AAEA;AACA,gCAAgC;AAChC;;AAEA,0BAA0B,oEAAU;AACpC,uDAAuD;;AAEvD;AACA,C;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,WAAW,SAAS,yCAAyC;AAC7D,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,kBAAkB,gEAAM;AACxB,gBAAgB,gEAAM;AACtB,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gEAAM;AACrB;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS,yCAAyC;AAC7D,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,kBAAkB,gEAAM;AACxB,gBAAgB,gEAAM;AACtB,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gEAAM;AACrB;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACM;AACV;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS,yCAAyC;AAC7D,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,kBAAkB,gEAAM;AACxB,gBAAgB,gEAAM;AACtB,kCAAkC;;AAElC;AACA;AACA;;AAEA,sBAAsB,qEAAW;AACjC,oBAAoB,qEAAW,mBAAmB;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,gEAAM;AACrB,kBAAkB,kEAAQ;AAC1B;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8D;AAClB;AACE;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS,+CAA+C;AACnE,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,qBAAqB,2EAAiB;AACtC;AACA;;AAEA;AACA;;AAEA,QAAQ,mEAAS;AACjB;AACA,UAAU,kEAAQ;AAClB;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsE;AAClB;AACJ;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,kBAAkB,sEAAY;AAC9B;AACA,gBAAgB,oEAAU;AAC1B,SAAS,+EAAqB;AAC9B;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsE;AACpB;AACJ;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,kBAAkB,qEAAW;AAC7B;AACA,gBAAgB,mEAAS;AACzB,SAAS,+EAAqB;AAC9B;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS,yCAAyC;AAC7D,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,kBAAkB,gEAAM;AACxB,gBAAgB,gEAAM;AACtB,kCAAkC;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,gEAAM;AACrB;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM,iEAAiE;AAClF,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACnCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAA8C;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,mEAAS;AAClB;AACA,GAAG;AACH,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACA;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,wEAAc;AAC3B;AACA;AACA;AACA,aAAa,wEAAc;AAC3B;AACA;AACA,C;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,SAAS,kEAAQ;AACjB,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,kBAAkB;AAC9E;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACW;AACK;AAClB;AACoB;AACQ;AAC2B;AAC6B;AACzE;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qFAAqF;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW,mDAAmD;AAC1E,YAAY,WAAW,+CAA+C;AACtE,YAAY,WAAW,yDAAyD;AAChF,YAAY,WAAW,2DAA2D;AAClF,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA,iCAAiC,8DAAa;AAC9C;AACA,+EAA+E,uEAAS;AACxF,qGAAqG,uEAAS,gCAAgC;;AAE9I;AACA;AACA;;AAEA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,gEAAM;;AAE3B,OAAO,iEAAO;AACd;AACA,GAAG;AACH;AACA;;;AAGA,uBAAuB,6FAA+B;AACtD,gBAAgB,yEAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,2EAAc;AACxC;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,uEAAU;;AAE9B;AACA,kDAAkD,8FAAwB;AAC1E,QAAQ,yFAAmB;AAC3B;;AAEA,mDAAmD,+FAAyB;AAC5E,QAAQ,yFAAmB;AAC3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;AC9aA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACgB;AACE;AACb;AACb;AACe;AACwC;AACtC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO,kEAAkE;AACpF,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,iCAAiC,8DAAa;;AAE9C;AACA;AACA;;AAEA,mBAAmB,oEAAU;;AAE7B;AACA;AACA;;AAEA,wBAAwB,yEAAW;AACnC;AACA;AACA;AACA;;AAEA;AACA,eAAe,gEAAM;AACrB,gBAAgB,gEAAM;AACtB,GAAG;AACH,eAAe,gEAAM;AACrB,gBAAgB,gEAAM;AACtB;;AAEA,gBAAgB,6EAAmB;AACnC,yBAAyB,6FAA+B,cAAc,6FAA+B;AACrG;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL,GAAG;AACH,uEAAuE;AACvE,GAAG;AACH,oEAAoE;AACpE,GAAG;AACH;AACA,wEAAwE;AACxE,GAAG;AACH,8DAA8D;AAC9D,GAAG;AACH;AACA,iEAAiE;AACjE,GAAG;AACH;AACA;AACA;;AAEA,WAAW,4EAAkB,sBAAsB;;AAEnD;AACA;AACA,2EAA2E;AAC3E,GAAG;AACH;AACA,wCAAwC;;AAExC;AACA,0EAA0E;AAC1E,KAAK;AACL,yEAAyE;AACzE,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;ACpNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+F;AAC/C;AACR;AAC0B;AACX;AACF;AACI;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,8CAA8C;AACzD,WAAW,uBAAuB;AAClC,WAAW,OAAO,kEAAkE;AACpF,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,iCAAiC,8DAAa;;AAE9C;AACA;AACA;;AAEA,mBAAmB,oEAAU;;AAE7B;AACA;AACA;;AAEA,wBAAwB,yEAAW;AACnC;AACA;AACA;AACA;;AAEA;AACA,eAAe,gEAAM;AACrB,gBAAgB,gEAAM;AACtB,GAAG;AACH,eAAe,gEAAM;AACrB,gBAAgB,gEAAM;AACtB;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA,gBAAgB,6EAAmB;AACnC,yBAAyB,6FAA+B,cAAc,6FAA+B;AACrG;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;;;AAGH;AACA,uEAAuE;AACvE,GAAG;AACH,uEAAuE;AACvE,GAAG;AACH;AACA,mEAAmE;AACnE,GAAG;AACH;AACA,iEAAiE;AACjE,GAAG;AACH;AACA,qEAAqE;AACrE,GAAG;AACH;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AAAyD;AACA;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO,kEAAkE;AACpF,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,wEAAe;AACxB,C;;;;;;;;;;;;AC/GA;AAAA;AAAA;AAAA;AAAqE;AACZ;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,8CAA8C;AACzD,WAAW,uBAAuB;AAClC,WAAW,OAAO,kEAAkE;AACpF,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,8EAAqB;AAC9B,C;;;;;;;;;;;;AChFA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACE;AACqB;AAC/D;AACA;AAC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;AACf,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,cAAc;AAC3B,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACU;AAC0B;AACnB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,aAAa,kFAAwB,OAAO,qEAAW;AACvD;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACQ;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;;AAEnB;AACA;AACA;;AAEA,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACgB;AACQ;AACP;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,aAAa,wEAAc,mBAAmB,4EAAkB,iBAAiB;AACjF;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACgB;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,wBAAwB,wEAAc;AACtC;AACA;AACA;AACA,wBAAwB,wEAAc;;AAEtC;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAgE;AACpB;AACa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,4EAAkB;AACnC,iBAAiB,4EAAkB,CAAC,kEAAQ;AAC5C,qDAAqD;AACrD;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE,QAAQ;AACR;AACA;AACA;AACA,WAAW,SAAS,8DAA8D;AAClF,WAAW,SAAS,gEAAgE;AACpF,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAA2D;AACjE,MAAM;AACN;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA,sBAAsB,gEAAM;AAC5B,oBAAoB,gEAAM;AAC1B,uBAAuB,gEAAM;AAC7B,qBAAqB,gEAAM,8BAA8B;;AAEzD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AC5FA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAA0C;AACe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,oBAAoB,iEAAO;AAC3B,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACQ;AAClB;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,aAAa,qEAAW,4BAA4B,yEAAe,0BAA0B;AAC7F;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACF;AACY;AACD;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA,0BAA0B,iEAAO;;AAEjC;AACA;AACA;;AAEA,qBAAqB,gEAAM,CAAC,sEAAY;AACxC;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AClEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACV;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA;AACA;AACA;AACA,qDAAqD,2BAA2B;AAChF;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,+EAA+E,uEAAS;AACxF,qGAAqG,uEAAS,gCAAgC;;AAE9I;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,qEAAW;AACnC;AACA;AACA;AACA,wBAAwB,qEAAW;;AAEnC;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8E;AACtB;AACJ;AACK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,mFAAyB,CAAC,wEAAc,QAAQ,sEAAY;AACrE,C;;;;;;;;;;;;ACvCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgD;AACwB;AAChB;AACE;AACc;AACA;AACV;AACF;AACI;AACF;AACJ;AACA;AAC8B;AAClB;AACV;AACE;AACE;AAC0B;AACA;AACgB;AACR;AACJ;AACI;AACN;AACA;AAClB;AACE;AACc;AACA;AACV;AACF;AACI;AACF;AACJ;AACA;AACA;AACI;AACF;AACM;AACN;AACF;AACE;AACpB;AACM;AACJ;AACM;AACQ;AACV;AACF;AACI;AACF;AACF;AACM;AACR;AACA;AACU;AAChB;AACgB;AACY;AACF;AACY;AAChC;AACQ;AACA;AACA;AACE;AACJ;AACV;AACF;AACY;AACI;AACF;AACR;AACF;AACE;AACE;AACQ;AACM;AACJ;AACV;AACJ;AAC0C;AACtC;AACA;AACN;AACQ;AACR;AACc;AACN;AACQ;AAChB;AACA;AACE;AACJ;AACE;AACE;AACkB;AAClB;AACA;AACgB;AACZ;AACJ;AACJ;AACM;AACE;AACM;AACQ;AACV;AACF;AACI;AACF;AACJ;AACA;AACA;AACJ;AACI;AACM;AACF;AACF;AACI;AACF;AACJ;AACA;AACA;AACN;AACM;AACF;AACJ;AACQ;AACJ;AACc;AACV;AACQ;AACE;AACQ;AACZ;AACI;AACN;AACA;AACJ;AAChB;AACA;AACI;AACM;AACE;AACwB;AACpC;AACQ;AACF;AACY;AACR;AACE;AACE;AACQ;AACE;AACV;AACJ;AACI;AACA;AACN;AACQ;AACR;AACM;AACM;AACJ;AACM;AACQ;AACV;AACF;AACI;AACF;AACF;AACM;AACR;AACQ;AACR;AACU;AAC1B;AACwB;AAChB;AACE;AACc;AACA;AACV;AACF;AACI;AACF;AACJ;AACA;AACJ;;;;;;;;;;;;;AC9LtD;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,sBAAsB,gEAAM;AAC5B;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,sBAAsB,gEAAM;AAC5B;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACI;AACI;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,SAAS,kEAAQ,qBAAqB,oEAAU;AAChD,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAgD;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,2BAA2B,oEAAU;AACrC,4BAA4B,oEAAU;AACtC;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAkD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,4BAA4B,qEAAW;AACvC,6BAA6B,qEAAW;AACxC;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAgD;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,oEAAU;AACnB;AACA,GAAG;AACH,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAgE;AACP;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,4BAA4B,4EAAkB;AAC9C,6BAA6B,4EAAkB;AAC/C;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAsD;AACG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,8BAA8B,uEAAa;AAC3C,+BAA+B,uEAAa;AAC5C;AACA,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwD;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,+BAA+B,wEAAc;AAC7C,gCAAgC,wEAAc;AAC9C;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAsD;AACG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,8BAA8B,uEAAa;AAC3C,+BAA+B,uEAAa;AAC5C;AACA,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAkD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,4BAA4B,qEAAW;AACvC,6BAA6B,qEAAW;AACxC;AACA,C;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB,gEAAM;AACvB,kBAAkB,gEAAM;AACxB;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAgD;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAsD;AACG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,uEAAa;AACtB,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAoD;AACK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,sEAAY;AACrB,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAkD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,qEAAW;AACpB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAsD;AACG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,uEAAa;AACtB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAoD;AACK;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,sEAAY;AACrB,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAgD;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,kBAAkB;AACrE;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAgD;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAA8C;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,mEAAS;AAClB,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACI;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,mEAAS,YAAY,iEAAO;AACrC,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA,C;;;;;;;;;;;;AChEA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,aAAa,gEAAM;AACnB,kBAAkB,gEAAM;AACxB,gBAAgB,gEAAM,yBAAyB;;AAE/C;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACJ;AACe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,QAAQ;AACrB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,mEAAS,YAAY,iEAAO;AACrC,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAsD;AACG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,uEAAa;AACtB;AACA,GAAG;AACH,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACA;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,wEAAc;AAC3B;AACA;AACA;AACA,aAAa,wEAAc;AAC3B;AACA;AACA,C;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,MAAM,iEAAiE;AAClF,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,kBAAkB;AAClF;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACyB;AAC8B;AACrD;AACgB;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,qBAAqB,gEAAM;;AAE3B,OAAO,iEAAO;AACd;AACA,GAAG;AACH;AACA;;;AAGA,uBAAuB,6FAA+B;AACtD,gBAAgB,yEAAe;AAC/B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,oBAAoB,4EAAU;;AAE9B;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACtHA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACPA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjDA;AAAA;AAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACxBA;AAAA;AAAA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA,oBAAoB,OAAO;AAC3B,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA,oBAAoB,OAAO;AAC3B,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA,oBAAoB,OAAO;AAC3B,GAAG;AACH;AACA;AACA,cAAc,OAAO;AACrB,GAAG;AACH;AACA;AACA,mBAAmB,OAAO;AAC1B,GAAG;AACH;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA;AACe;AACf;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,0DAA0D,OAAO;AACjE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC5EA;AAAA;AAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM,QAAQ,MAAM;AAC/B,WAAW,MAAM,QAAQ,MAAM;AAC/B,aAAa,MAAM,IAAI,MAAM;AAC7B,YAAY,MAAM,IAAI,MAAM;AAC5B;AACA;AACA,QAAQ,+EAAiB;AACzB;AACA;AACA,GAAG;AACH,QAAQ,+EAAiB;AACzB;AACA;AACA,GAAG;AACH,YAAY,+EAAiB;AAC7B;AACA;AACA,GAAG;AACH;AACe,yEAAU,E;;;;;;;;;;;;ACjCzB;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA,C;;;;;;;;;;;;ACVA;AAAA;AAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO,6EAAe;AACtB;AACA;AACA,GAAG;AACH,WAAW,6EAAe;AAC1B;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,6EAAe;AACxB;AACA;AACA,GAAG;AACH,OAAO,6EAAe;AACtB;AACA;AACA,GAAG;AACH,aAAa,6EAAe;AAC5B;AACA;AACA;AACA;AACA,GAAG;AACH;AACe,uEAAQ,E;;;;;;;;;;;;ACpJvB;AAAA;AAAA;AAA6E;AACd;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iFAAmB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,0EAAY;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW,0EAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,SAAS,0EAAY;AACrB;AACA;AACA;AACA;AACA,GAAG;AACH,OAAO,0EAAY;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH,aAAa,0EAAY;AACzB;AACA;AACA;AACA;AACA,GAAG;AACH;AACe,oEAAK,E;;;;;;;;;;;;ACjGpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4D;AACR;AACQ;AACZ;AACN;AAC1C;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mCAAmC;AACnC;;AAEA;AACA;AACA,kBAAkB,oEAAc;AAChC,cAAc,gEAAU;AACxB,kBAAkB,oEAAc;AAChC,YAAY,8DAAQ;AACpB,SAAS,2DAAK;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACe,qEAAM,E;;;;;;;;;;;;AC7BrB;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB;;AAEjB;AACA,iCAAiC;AACjC,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gEAAM;;AAE5B;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;AChEA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,iBAAiB;;AAEjB;AACA,iCAAiC;AACjC,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,gEAAM;;AAE5B;AACA;AACA;AACA,GAAG;AACH;AACA,C;;;;;;;;;;;;AChEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmE;AACV;AACM;AACE;AACN;AACc;AACN;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,IAAI;AACtB;AACA,oBAAoB,IAAI;AACxB;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA,4BAA4B,IAAI;AAChC;AACA,2BAA2B,IAAI;;AAE/B;AACA;AACA,oCAAoC,EAAE,KAAK,EAAE;AAC7C,qBAAqB,EAAE,KAAK,EAAE;AAC9B,oCAAoC,EAAE,KAAK,EAAE,MAAM,EAAE;AACrD,wBAAwB,EAAE,MAAM,EAAE;AAClC,uCAAuC,EAAE,MAAM,EAAE,OAAO,EAAE;AAC1D;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kDAAkD,YAAY;AAC9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oDAAoD,YAAY;AAChE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+EAA+E;;AAE/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,wBAAwB,4EAAc;;AAEtC;AACA;AACA;AACA;AACA,eAAe,4EAAc;AAC7B;;AAEA;AACA;AACA;AACA,aAAa,4EAAc;AAC3B,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa,+EAAiB;AAC9B,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,4EAAc,CAAC,wEAAU;AACtC,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,+EAAiB,CAAC,2EAAa;AAC5C,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,uEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,uEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,uEAAS;AACtB;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,aAAa,0EAAY;AACzB;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,sEAAO,E;;;;;;;;;;;;AC59CtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqD;AACK;AAClB;AACK;AACuB;AAC2B;AAC6B;AACzE;AACL;AACW;AACzD,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qFAAqF;AACrF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE,wBAAwB,4CAA4C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,WAAW,mDAAmD;AAC1E,YAAY,WAAW,+CAA+C;AACtE,YAAY,WAAW,yDAAyD;AAChF,YAAY,WAAW,2DAA2D;AAClF,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,iCAAiC,8DAAa;;AAE9C;AACA;AACA;;AAEA;AACA,+EAA+E,uEAAS;AACxF,qGAAqG,uEAAS,gCAAgC;;AAE9I;AACA;AACA;;AAEA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA;AACA;AACA,aAAa,gEAAM;AACnB,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,0BAA0B,2EAAc;AACxC;AACA;;AAEA;AACA,GAAG;AACH;;AAEA,aAAa,mBAAmB;AAChC;;AAEA,gDAAgD,8FAAwB;AACxE,MAAM,yFAAmB;AACzB;;AAEA,iDAAiD,+FAAyB;AAC1E,MAAM,yFAAmB;AACzB;;AAEA;AACA,iBAAiB,6DAAO;;AAExB;AACA;;AAEA;AACA;;AAEA,wBAAwB,wBAAwB;AAChD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH,aAAa,gEAAM;;AAEnB;AACA;AACA,GAAG;AACH;AACA;;;AAGA,gBAAgB,yEAAe,OAAO,6FAA+B;AACrE;;AAEA,aAAa,kCAAkC;AAC/C;;AAEA;AACA;AACA;;AAEA,wEAAwE;;AAExE;AACA;AACA,MAAM,oEAAM,mBAAmB;AAC/B,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACjiBA;AAAA;AAAA;AAAA;AAAmD;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE;AACxE,sBAAsB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE;AAC1E,gCAAgC,EAAE,UAAU,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,wFAAwF,uEAAS;;AAEjG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,EAAE,SAAS,+BAA+B,OAAO,EAAE,SAAS,+BAA+B;AAC9H,yCAAyC;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;AC5RA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;;AAEe;AACf,EAAE,0EAAY;;AAEd;AACA,oCAAoC,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,IAAI;;AAE/F;AACA;AACA;;AAEA;AACA;;AAEA,SAAS,gEAAM;AACf,C;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAwC;AACW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,gBAAgB;AAC1F;AACA;AACA;;AAEe;AACf;AACA;AACA;;AAEA,sDAAsD,uEAAS;;AAE/D;AACA;AACA;;AAEA,aAAa,gEAAM;AACnB,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACI;AACO;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA;AACA;AACA;AACA,sDAAsD,YAAY;AAClE;AACA;;AAEe;AACf,EAAE,0EAAY;;AAEd;AACA;AACA;;AAEA,aAAa,gEAAM,YAAY;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,kEAAQ;AACnB;;AAEA;AACA,iBAAiB,uEAAS;AAC1B;;AAEA;AACA,kBAAkB,uEAAS;AAC3B;;AAEA;AACA,oBAAoB,uEAAS;AAC7B;;AAEA;AACA,oBAAoB,uEAAS;AAC7B;;AAEA;AACA,yBAAyB,uEAAS;AAClC;;AAEA;AACA,C;;;;;;;;;;;;ACrFA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,mBAAmB,uEAAS;AAC5B;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACF;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA,aAAa,gEAAM;AACnB,YAAY,uEAAS;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAO;AAChB,C;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,kBAAkB,uEAAS;AAC3B;AACA;AACA;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,cAAc,uEAAS;AACvB;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACE;AACI;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,YAAY,uEAAS;AACrB,mBAAmB,mEAAS;AAC5B;AACA,SAAS,iEAAO;AAChB,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACQ;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,gBAAgB,uEAAS;AACzB,aAAa,oEAAU;AACvB;AACA;AACA,C;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACwB;AACY;AACnB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,oBAAoB,uEAAS;AAC7B,aAAa,kFAAwB,OAAO,4EAAkB;AAC9D;AACA;AACA;AACA,SAAS,4EAAkB;AAC3B;AACA;AACA,C;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,qBAAqB,uEAAS;AAC9B;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,gBAAgB,uEAAS;AACzB;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACgB;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,cAAc,uEAAS;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB,wEAAc,uBAAuB;AACzD;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACI;AACa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,gBAAgB,uEAAS;AACzB;AACA;AACA,SAAS,kEAAQ;AACjB,C;;;;;;;;;;;;AClCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,gBAAgB,uEAAS;AACzB;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACF;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,aAAa,uEAAS;AACtB,aAAa,iEAAO;AACpB;AACA;AACA,C;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4E;AAClB;AAClB;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,+EAA+E,uEAAS;AACxF,qGAAqG,uEAAS;AAC9G,aAAa,gEAAM;AACnB,iBAAiB,uEAAS;AAC1B,aAAa,kFAAwB,OAAO,yEAAe;AAC3D;AACA;AACA;AACA,SAAS,yEAAe;AACxB;AACA;AACA,C;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACX;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB,aAAa,uEAAS,YAAY;;AAElC;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAkD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,SAAS,qEAAW;AACpB;AACA,GAAG;AACH,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAwD;AACA;AACC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,wEAAc;AAC3B;AACA;AACA;AACA,aAAa,wEAAc;AAC3B;AACA,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjCA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,aAAa,gEAAM;AACnB;AACA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACW;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,kBAAkB;AAChF;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,6DAA6D,uEAAS;AACtE,0EAA0E,uEAAS,uBAAuB;;AAE1G;AACA;AACA;;AAEA,aAAa,gEAAM;AACnB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACA;AACC;AACM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO,kEAAkE;AACpF,WAAW,cAAc;AACzB,WAAW,cAAc;AACzB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA;AACA;AACA,+EAA+E,uEAAS;AACxF,qGAAqG,uEAAS;AAC9G,aAAa,qEAAW;AACxB;AACA;AACA;AACA,aAAa,qEAAW;AACxB;AACA,C;;;;;;;;;;;;AC7DA;AAAA;AAAA;AAAA;AAAwC;AACiB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,kBAAkB,gEAAM;AACxB;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACI;AACN;AACiB;AACN;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEe;AACf,EAAE,0EAAY;AACd;AACA,oCAAoC,uEAAS;AAC7C,sCAAsC,uEAAS;AAC/C,oCAAoC,uEAAS;AAC7C,kCAAkC,uEAAS;AAC3C,oCAAoC,uEAAS;AAC7C,wCAAwC,uEAAS;AACjD,wCAAwC,uEAAS,uBAAuB;;AAExE,0BAA0B,mEAAS,CAAC,gEAAM,kCAAkC;;AAE5E,wBAAwB,iEAAO,sCAAsC;;AAErE;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACjEA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACT;AACe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,iEAAO;AAChB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACP;AACa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,kEAAQ;AACjB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACO;AACD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,yEAAe;AACxB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACH;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACL;AACW;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,mEAAS;AAClB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,qEAAW;AACpB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACH;AACS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,oEAAU;AACnB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACP;AACa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,kEAAQ;AACjB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACP;AACa;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,eAAe,uEAAS;AACxB,SAAS,kEAAQ;AACjB,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,KAAK;AAClB,YAAY,UAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf,EAAE,0EAAY;AACd,wDAAwD;;AAExD;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,kKAAkK;;AAElK;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACnDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;AC/Ia;;AAEb,8CAA8C,cAAc;;AAE5D,+BAA+B,iFAAiF;;AAEhH,oCAAoC,mBAAO,CAAC,sEAAiB;;AAE7D;AACA;AACA,cAAc,6BAA6B;AAC3C,eAAe,6BAA6B;AAC5C,gBAAgB,6CAA6C;AAC7D,iBAAiB,8CAA8C;AAC/D,gBAAgB,6CAA6C;AAC7D,iBAAiB,8CAA8C;AAC/D,YAAY,6BAA6B;AACzC,YAAY;AACZ;;AAEA;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACtDa;;AAEb,8CAA8C,cAAc;;AAE5D,+BAA+B,iFAAiF;;AAEhH,gCAAgC,mBAAO,CAAC,sDAAY;AACpD,8BAA8B,mBAAO,CAAC,kDAAU;AAChD,gCAAgC,mBAAO,CAAC,2DAAW;;AAEnD,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,+BAA+B,WAAW;AAC1C,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,cAAc,WAAW;;AAEzB;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA,gBAAgB,gBAAgB;AAChC;AACA,aAAa,yBAAyB;AACtC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,aAAa,+CAA+C;AAC5D;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACrJA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,YAAY;AACZ;;AAEA;AACA;AACA;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACZA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,kGAAkG;;AAE9O;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACe;AACf;AACA,C;;;;;;;;;;;ACVA;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,yCAAyC;AACzC,WAAW,WAAW,GAAG,WAAW,EAAE;AACtC,WAAW,WAAW,GAAG,WAAW,EAAE;AACtC,WAAW,iBAAiB,GAAG,WAAW,EAAE;AAC5C,WAAW,WAAW,GAAG,iBAAiB,EAAE;AAC5C,oBAAoB,KAAK,iBAAiB,KAAK,IAAI;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4BAA4B;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,IAAsD,EAAE,mBAAmB,KAAK,UAAoO,CAAC,aAAa,0BAA0B,0BAA0B,gBAAgB,UAAU,UAAU,0CAA0C,gBAAgB,OAAC,OAAO,oBAAoB,8CAA8C,qCAAqC,YAAY,YAAY,mCAAmC,iBAAiB,gBAAgB,sBAAsB,oBAAoB,0CAA0C,YAAY,WAAW,YAAY,SAAS,GAAG;AAClzB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC,qIAAqI;AACtI,CAAC,GAAG;AACJ;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,CAAC,EAAE,MAAM;AACT;AACA;AACA;AACA;AACA;;AAEA,CAAC,qIAAqI;AACtI,CAAC,EAAE,MAAM;AACT;;AAEA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB;AACrB,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,oCAAoC,yBAAyB;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA,iBAAiB;AACjB,mGAAmG;AACnG;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,+BAA+B,oBAAoB;AACnD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA,mCAAmC,oBAAoB;AACvD;AACA;AACA;AACA;AACA,iBAAiB;AACjB,mGAAmG;AACnG;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,kBAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,mCAAmC,YAAY;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB,qBAAqB;AACrB,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,yBAAyB;AAC5D;AACA;;AAEA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,yBAAyB;AACxD;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;;AAEA;AACA,0EAA0E,SAAS;AACnF;AACA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,QAAQ;AACrD;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,iDAAiD,QAAQ;AACzD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC;AACvC,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA,mEAAmE;AACnE;;AAEA,6CAA6C;AAC7C;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,6EAA6E;;AAE7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D,SAAS;AACpE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yEAAyE,WAAW;AACpF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AA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;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,yDAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;A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ACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAE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,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,2DAA2D;;AAE3D;AACA,+CAA+C;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB,yBAAyB;AACzB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,MAAM,aAAa,OAAO;;AAEpD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2CAA2C,EAAE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,eAAe;AACf;;AAEA;AACA;AACA,UAAU;AACV,SAAS;AACT,SAAS;AACT,WAAW;AACX,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,KAA0B;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,MAAM;AACnB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,EAAE;AACf,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,SAAS;AACtB,aAAa,EAAE;AACf,aAAa,QAAQ;AACrB;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,SAAS;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,MAAM;AACnB,eAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,EAAE;AACf,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe,SAAS;AACxB;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA,mBAAmB,gCAAgC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B,EAAE;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,6BAA6B;AAC5C,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB,OAAO;;AAEP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,mBAAmB;AAClC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,gBAAgB,QAAQ;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,OAAO,WAAW;AACjC,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,WAAW;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,WAAW;AACjC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,oEAAoE;AACpE;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,wCAAwC;AACxC,+DAA+D;AAC/D,iEAAiE;AACjE;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,GAAG,SAAS,KAAK,SAAS;AAC3D,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D;AACA,mCAAmC,iBAAiB;AACpD,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,4CAA4C,kBAAkB,EAAE;AAChE;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,2BAA2B,EAAE;AACpE;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,2CAA2C,4BAA4B,EAAE;AACzE;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,SAAS,KAAK,SAAS,GAAG,SAAS;AAC7D,eAAe,SAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AAClE;AACA,4BAA4B,SAAS,GAAG,SAAS;AACjD;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAC9E;AACA,8BAA8B,iBAAiB;AAC/C;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,iCAAiC,SAAS,eAAe,YAAY,EAAE;AACvE;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,SAAS,eAAe,YAAY,EAAE;AAC3E;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,4CAA4C,kBAAkB,EAAE;AAChE;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,qCAAqC;AAC/C,UAAU,qCAAqC;AAC/C,UAAU;AACV;AACA;AACA,uCAAuC,kBAAkB,EAAE;AAC3D;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,KAAK,SAAS,GAAG,SAAS;AACtD,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS,GAAG,SAAS,GAAG,SAAS;AACnD,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB,GAAG,iBAAiB;AAChF;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,KAAK,SAAS,GAAG,SAAS;AACpD,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA,uBAAuB,iBAAiB,GAAG,iBAAiB;AAC5D,sBAAsB,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA,eAAe,iBAAiB,GAAG,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc,OAAO,QAAQ,SAAS,GAAG,SAAS,GAAG;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,+BAA+B;AACzC,UAAU,+BAA+B;AACzC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,8BAA8B;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,UAAU,8CAA8C;AACxD,UAAU;AACV;AACA;AACA,oCAAoC,kBAAkB,EAAE;AACxD;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU,gDAAgD;AAC1D,UAAU;AACV;AACA;AACA,kCAAkC,mBAAmB,EAAE;AACvD;AACA;AACA;AACA,sBAAsB,2BAA2B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,eAAe,EAAE;AACjB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,sBAAsB;AACrC;AACA,eAAe,KAAK;AACpB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,UAAU,4BAA4B;AACtC,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR,cAAc,OAAO,4BAA4B,QAAQ,8BAA8B;AACvF;AACA;AACA,cAAc,UAAU,4BAA4B,YAAY,8BAA8B;AAC9F;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA,UAAU,mBAAmB;AAC7B,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,qCAAqC;AACpD;AACA,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,gDAAgD;AAC1D,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,cAAc,iBAAiB,EAAE;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA,QAAQ,IAAI;AACZ,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA,UAAU,+CAA+C;AACzD,UAAU;AACV;AACA;AACA,oCAAoC,kBAAkB,EAAE;AACxD;AACA;AACA;AACA,wBAAwB,4BAA4B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,gBAAgB,OAAO;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,mCAAmC;AAC7C,UAAU;AACV;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,yBAAyB;AACxC;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU,8BAA8B;AACxC,UAAU;AACV;AACA;AACA,qCAAqC,eAAe,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oBAAoB,iCAAiC;AACrD,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,qBAAqB;AACpC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,6BAA6B,mBAAmB,cAAc,EAAE,EAAE;AAClE;AACA;AACA,6BAA6B,mBAAmB,cAAc,EAAE,EAAE;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA,iCAAiC,kBAAkB,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB,EAAE;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,0BAA0B,SAAS;AACnC;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,GAAG,SAAS,GAAG,SAAS;AAClD,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,MAAM;AACvB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS,GAAG,SAAS;AACpD,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,uBAAuB,OAAO,SAAS,EAAE,GAAG,OAAO,iBAAiB,EAAE;AACtE,cAAc,OAAO,iBAAiB;AACtC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD,qBAAqB,6BAA6B;AAClD,qBAAqB;AACrB;AACA;AACA,qCAAqC,mBAAmB,EAAE;AAC1D;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD,qBAAqB,6BAA6B;AAClD,qBAAqB;AACrB;AACA;AACA,yCAAyC,mBAAmB,EAAE;AAC9D;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,OAAO,SAAS;AACrC,6BAA6B,gBAAgB,SAAS,GAAG;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,8BAA8B,gBAAgB,SAAS,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,QAAQ;AACR,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,KAAK;AACpB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,oBAAoB,EAAE;AAC1D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,QAAQ;AACR,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD,qBAAqB;AACrB;AACA;AACA,uCAAuC,cAAc,EAAE;AACvD,cAAc,2BAA2B;AACzC;AACA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,gBAAgB,SAAS,GAAG,SAAS;AACrC;AACA;AACA;AACA,gBAAgB,SAAS,GAAG,SAAS;AACrC;AACA;AACA;AACA,cAAc,QAAQ,iBAAiB,GAAG,iBAAiB;AAC3D;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,KAAK;;AAEL;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA,gCAAgC;AAChC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB,QAAQ,OAAO,+BAA+B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,WAAW;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA,QAAQ,IAAI;AACZ,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,iBAAiB,QAAQ;AACzB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA;AACA;AACA;AACA,cAAc,QAAQ,QAAQ,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ,QAAQ,EAAE;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,qBAAqB,QAAQ,OAAO,SAAS,EAAE;AAC/C;AACA,iDAAiD,cAAc,EAAE;AACjE;AACA;AACA;AACA,iDAAiD,sBAAsB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO,WAAW;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,KAAK;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,gBAAgB;AAC/B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,gBAAgB,OAAO;AACvB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC,qBAAqB,UAAU;AAC/B;AACA;AACA,sEAAsE,2BAA2B,EAAE;AACnG,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,4DAA4D;AAC5D,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA,qDAAqD,2BAA2B,EAAE;AAClF,wCAAwC,aAAa,eAAe,EAAE;AACtE,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA,wDAAwD,qCAAqC;AAC7F;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD,0CAA0C,QAAQ;AAClD,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B,mCAAmC;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA,4CAA4C;;AAE5C;AACA,uDAAuD;AACvD;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,+BAA+B,iCAAiC;AAChE,cAAc;AACd;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,gBAAgB,OAAO;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC,aAAa,QAAQ,QAAQ,UAAU,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,gBAAgB,OAAO;AACvB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,KAAK;AACpB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,sBAAsB,kBAAkB;AACxC;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B,UAAU;AACV;AACA;AACA,qCAAqC,mBAAmB,cAAc,EAAE,EAAE;AAC1E,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA,eAAe,SAAS,GAAG,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,EAAE;AACnB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,8CAA8C;AACxD,UAAU;AACV;AACA;AACA;AACA,mCAAmC,mCAAmC;AACtE,eAAe,8CAA8C;AAC7D;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU;AACV;AACA;AACA,oCAAoC,iBAAiB;AACrD,eAAe,yBAAyB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU;AACV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,OAAO,qBAAqB,EAAE;AACxC,UAAU,OAAO,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,eAAe,OAAO;AACtB,eAAe,OAAO,YAAY;AAClC,eAAe,QAAQ;AACvB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,qDAAqD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU,OAAO,SAAS,EAAE;AAC5B,UAAU,OAAO,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,YAAY,EAAE;AACnD,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AACpE;AACA,sCAAsC,YAAY,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,EAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C;AACA,qCAAqC,YAAY,EAAE;AACnD,cAAc;AACd;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,SAAS;AACxB,iBAAiB,OAAO;AACxB;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AACpE;AACA,qCAAqC,YAAY,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK,MAAM,iBAAiB;;AAE5B;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,4DAA4D;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA,MAAM,IAA0E;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,oGAAC;AACN;AACA;AACA,OAAO,EASJ;AACH,CAAC;;;;;;;;;;;;;ACvthBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;ACjBA,8BAA8B,mBAAO,CAAC,4EAAmB;AACzD,eAAe,mBAAO,CAAC,yFAA2B;;;;;;;;;;;;ACDlD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK,KAA0B;AAC/B,2BAA2B,mBAAO,CAAC,+CAAQ,GAAG;AAC9C,EAAE,UAAU,IAA0C;AACtD,EAAE,iCAAO,CAAC,oEAAQ,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC,CAAC;AAC9B,EAAE,MAAM,EAEN;AACF,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY;AACZ,YAAY;AACZ,gBAAgB;AAChB,YAAY;AACZ,cAAc;AACd;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS,kBAAkB;AAC3B;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B,mEAAmE;AACnE;;AAEA;AACA;;AAEA;AACA;;AAEA,aAAa,oBAAoB;AACjC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,SAAS;AACvB;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,kCAAkC,IAAI;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,aAAa,oBAAoB;AACjC;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,oBAAoB;AACjC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;;;;;;;;;;;AClrBD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA,4FAA4F;AAC5F,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrID;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClID;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrJD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA,iDAAiD;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1KD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gGAAgG;AAC7G;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iCAAiC;AACjC,gCAAgC;AAChC,gCAAgC;AAChC,+BAA+B;AAC/B;AACA;AACA;AACA,yDAAyD;AACzD;AACA,0DAA0D;AAC1D;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;;AAI5B;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxJD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI,IAAI,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClID;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8CAA8C,IAAI,IAAI,IAAI;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,uCAAuC,IAAI;AAC3C;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtID;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,yCAAyC,IAAI;AAC7C;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA,uDAAuD,IAAI;AAC3D,6DAA6D,IAAI;AACjE,4DAA4D,IAAI;AAChE,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,+CAA+C;AAC/C,8CAA8C;AAC9C,gDAAgD;AAChD,4CAA4C;AAC5C,6CAA6C;AAC7C,6CAA6C;AAC7C,8CAA8C;AAC9C,8CAA8C;AAC9C,+CAA+C;AAC/C,6CAA6C;AAC7C,+CAA+C;AAC/C;AACA;AACA;AACA;AACA,kDAAkD;AAClD,iDAAiD;AACjD,gDAAgD;AAChD,iDAAiD;AACjD,8CAA8C;AAC9C,+CAA+C;AAC/C,+CAA+C;AAC/C,gDAAgD;AAChD,iDAAiD;AACjD,kDAAkD;AAClD,+CAA+C;AAC/C,gDAAgD;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC9JD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACpLD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1JD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC3KD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACtFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACnED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACzDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC;AAChC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,kCAAkC;AAClC,aAAa;AACb,+BAA+B;AAC/B,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC/HD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,qCAAqC,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACvFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACjED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;;ACvHD,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5FD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACzFD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrHD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxJD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AChGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACxDD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC7ED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AClED;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2CAA2C,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC1DD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;AC5GD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrGD;;AAEA,CAAC;AACD,GAAG,KACoC,WAAW,mBAAO,CAAC,kDAAW;AACrE,GAAG,SACsB;AACzB,CAAC,2BAA2B;;;AAG5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA,CAAC;;;;;;;;;;;;ACrGD,eAAe,KAAgF,GAAG,mBAAO,CAAC,kDAAW,GAAG,SAAyE,CAAC,kBAAkB,aAAa,qBAAqB,sZAAsZ,sBAAsB,0BAA0B,oCAAoC,iBAAiB,iHAAiH,WAAW,gJAAgJ,eAAe,uMAAuM,4BAA4B,IAAI,8BAA8B,0CAA0C,OAAO,aAAa,0BAA0B,g7CAAg7C,gHAAgH,WAAW,icAAic,eAAe,sbAAsb,OAAO,aAAa,0BAA0B,o3CAAo3C,gHAAgH,WAAW,icAAic,eAAe,sbAAsb,OAAO,cAAc,EAAE,OAAO,4DAA4D,eAAe,mEAAmE,IAAI,4sDAA4sD,eAAe,yBAAyB,wBAAwB,+CAA+C,maAAma,wBAAwB,8oBAA8oB,0HAA0H,gDAAgD,mBAAmB,0BAA0B,8BAA8B,WAAW,ucAAuc,eAAe,8KAA8K,sBAAsB,gCAAgC,wBAAwB,mCAAmC,YAAY,yBAAyB,OAAO,cAAc,0BAA0B,o3CAAo3C,gHAAgH,WAAW,icAAic,eAAe,sbAAsb,OAAO,cAAc,EAAE,OAAO,8GAA8G,IAAI,mIAAmI,wBAAwB,g7CAAg7C,gHAAgH,gDAAgD,mBAAmB,0BAA0B,8BAA8B,WAAW,icAAic,eAAe,sbAAsb,sBAAsB,+FAA+F,YAAY,yBAAyB,wBAAwB,mCAAmC,YAAY,yBAAyB,OAAO,aAAa,0BAA0B,g4CAAg4C,gHAAgH,WAAW,icAAic,eAAe,sbAAsb,OAAO,aAAa,EAAE,OAAO,8GAA8G,IAAI,kIAAkI,eAAe,mEAAmE,IAAI,4sDAA4sD,eAAe,yBAAyB,wBAAwB,+CAA+C,maAAma,qBAAqB,8oBAA8oB,0HAA0H,gDAAgD,mBAAmB,0BAA0B,8BAA8B,WAAW,ucAAuc,eAAe,8KAA8K,sBAAsB,+FAA+F,YAAY,yBAAyB,wBAAwB,mCAAmC,YAAY,yBAAyB,OAAO,cAAc,EAAE,OAAO,qOAAqO,kBAAkB,QAAQ,6NAA6N,ihCAAihC,0FAA0F,qBAAqB,oiBAAoiB,iHAAiH,WAAW,uNAAuN,eAAe,sPAAsP,oFAAoF,4CAA4C,0BAA0B,+EAA+E,4BAA4B,IAAI,yEAAyE,oCAAoC,WAAW,gDAAgD,OAAO,aAAa,uBAAuB,QAAQ,omCAAomC,wTAAwT,4xBAA4xB,2PAA2P,2IAA2I,WAAW,yLAAyL,kCAAkC,qBAAqB,mBAAmB,yGAAyG,6FAA6F,cAAc,eAAe,gSAAgS,wJAAwJ,4EAA4E,0BAA0B,mJAAmJ,4BAA4B,IAAI,qDAAqD,UAAU,gHAAgH,iCAAiC,kBAAkB,OAAO,aAAa,uBAAuB,kyCAAkyC,4GAA4G,WAAW,mMAAmM,mBAAmB,oHAAoH,sHAAsH,cAAc,eAAe,ikBAAikB,4BAA4B,IAAI,sGAAsG,mBAAmB,qLAAqL,OAAO,aAAa,uBAAuB,udAAud,yLAAyL,WAAW,kNAAkN,eAAe,6PAA6P,OAAO,aAAa,EAAE,OAAO,8GAA8G,IAAI,mIAAmI,qBAAqB,0/CAA0/C,mMAAmM,WAAW,8MAA8M,eAAe,kiBAAkiB,sBAAsB,+FAA+F,YAAY,EAAE,wBAAwB,mCAAmC,YAAY,EAAE,yKAAyK,4IAA4I,0BAA0B,iKAAiK,OAAO,aAAa,EAAE,OAAO,8GAA8G,IAAI,mIAAmI,kBAAkB,UAAU,iBAAiB,mCAAmC,yBAAyB,kBAAkB,oDAAoD,kBAAkB,YAAY,UAAU,2EAA2E,+CAA+C,wEAAwE,2CAA2C,iEAAiE,sCAAsC,0EAA0E,yEAAyE,qBAAqB,srFAAsrF,uHAAuH,WAAW,oXAAoX,eAAe,omBAAomB,sBAAsB,+FAA+F,YAAY,EAAE,wBAAwB,mCAAmC,YAAY,EAAE,uPAAuP,sLAAsL,0BAA0B,+OAA+O,OAAO,aAAa,uBAAuB,yXAAyX,qJAAqJ,WAAW,gJAAgJ,eAAe,wLAAwL,qBAAqB,qBAAqB,KAAK,qDAAqD,4BAA4B,4BAA4B,IAAI,iCAAiC,+BAA+B,OAAO,aAAa,uBAAuB,icAAic,gHAAgH,WAAW,kEAAkE,mBAAmB,qCAAqC,oCAAoC,mCAAmC,qDAAqD,iDAAiD,mBAAmB,gDAAgD,6CAA6C,+DAA+D,cAAc,eAAe,mHAAmH,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,QAAQ,kRAAkR,0UAA0U,8MAA8M,WAAW,mBAAmB,sDAAsD,oBAAoB,yDAAyD,qBAAqB,sDAAsD,oBAAoB,sDAAsD,qBAAqB,kEAAkE,cAAc,eAAe,iMAAiM,4BAA4B,IAAI,sCAAsC,qDAAqD,oCAAoC,OAAO,aAAa,EAAE,8qBAA8qB,cAAc,6BAA6B,oBAAoB,YAAY,UAAU,uDAAuD,+DAA+D,MAAM,+CAA+C,4DAA4D,MAAM,+CAA+C,4DAA4D,MAAM,iCAAiC,qDAAqD,MAAM,sDAAsD,wFAAwF,MAAM,kCAAkC,oDAAoD,OAAO,oBAAoB,OAAO,2OAA2O,yBAAyB,oBAAoB,OAAO,2OAA2O,yBAAyB,oBAAoB,OAAO,2OAA2O,yBAAyB,qBAAqB,4sBAA4sB,8HAA8H,WAAW,oEAAoE,mBAAmB,oCAAoC,sCAAsC,qCAAqC,sCAAsC,iCAAiC,gCAAgC,iDAAiD,mBAAmB,0CAA0C,8CAA8C,0CAA0C,8CAA8C,sCAAsC,cAAc,eAAe,yFAAyF,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,suCAAsuC,4ZAA4Z,WAAW,8cAA8c,eAAe,mBAAmB,oJAAoJ,ukBAAukB,4BAA4B,IAAI,2DAA2D,aAAa,uBAAuB,saAAsa,iHAAiH,WAAW,8IAA8I,eAAe,iMAAiM,4BAA4B,IAAI,+CAA+C,SAAS,oMAAoM,OAAO,aAAa,uBAAuB,iYAAiY,8HAA8H,WAAW,2JAA2J,eAAe,iNAAiN,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,wbAAwb,oHAAoH,WAAW,gLAAgL,eAAe,uIAAuI,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,2aAA2a,oHAAoH,WAAW,gLAAgL,eAAe,uIAAuI,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,kbAAkb,oHAAoH,WAAW,gLAAgL,eAAe,uIAAuI,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,y5BAAy5B,qBAAqB,0QAA0Q,8GAA8G,4DAA4D,yBAAyB,0BAA0B,0CAA0C,WAAW,kQAAkQ,eAAe,wuBAAwuB,sBAAsB,gCAAgC,wBAAwB,gCAAgC,OAAO,cAAc,uBAAuB,+zCAA+zC,uKAAuK,o3BAAo3B,4EAA4E,kBAAkB,yCAAyC,8DAA8D,qHAAqH,aAAa,iDAAiD,iDAAiD,wBAAwB,2CAA2C,0BAA0B,mBAAmB,wGAAwG,MAAM,+GAA+G,OAAO,cAAc,wBAAwB,2CAA2C,uHAAuH,2DAA2D,eAAe,osBAAosB,4BAA4B,IAAI,iCAAiC,aAAa,0BAA0B,uXAAuX,iHAAiH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,0BAA0B,uXAAuX,qHAAqH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,0BAA0B,uXAAuX,wHAAwH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,uEAAuE,0BAA0B,uXAAuX,iHAAiH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,0BAA0B,uXAAuX,gHAAgH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,0BAA0B,uXAAuX,iHAAiH,WAAW,mJAAmJ,eAAe,iLAAiL,4BAA4B,IAAI,mCAAmC,WAAW,uEAAuE,0BAA0B,uXAAuX,qHAAqH,WAAW,mJAAmJ,eAAe,iMAAiM,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,uBAAuB,gaAAga,8IAA8I,8CAA8C,sCAAsC,0BAA0B,oDAAoD,WAAW,iKAAiK,eAAe,+LAA+L,4BAA4B,IAAI,uBAAuB,aAAa,EAAE,uaAAua,wBAAwB,uIAAuI,qDAAqD,miBAAmiB,mJAAmJ,WAAW,mBAAmB,mDAAmD,oBAAoB,yDAAyD,qBAAqB,oDAAoD,oBAAoB,oDAAoD,qBAAqB,gEAAgE,cAAc,eAAe,+MAA+M,4BAA4B,IAAI,6BAA6B,aAAa,EAAE,uaAAua,wBAAwB,uIAAuI,qDAAqD,miBAAmiB,mJAAmJ,WAAW,mBAAmB,mDAAmD,oBAAoB,yDAAyD,qBAAqB,oDAAoD,oBAAoB,oDAAoD,qBAAqB,gEAAgE,cAAc,eAAe,+MAA+M,4BAA4B,IAAI,6BAA6B,aAAa,EAAE,uaAAua,oBAAoB,OAAO,0YAA0Y,mDAAmD,qBAAqB,uIAAuI,qDAAqD,miBAAmiB,2IAA2I,WAAW,mBAAmB,mDAAmD,oBAAoB,yDAAyD,qBAAqB,oDAAoD,oBAAoB,oDAAoD,qBAAqB,gEAAgE,cAAc,eAAe,+MAA+M,4BAA4B,IAAI,6BAA6B,aAAa,uBAAuB,mZAAmZ,gHAAgH,WAAW,8IAA8I,eAAe,yGAAyG,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,+bAA+b,2PAA2P,WAAW,wJAAwJ,eAAe,mNAAmN,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,OAAO,8GAA8G,IAAI,mIAAmI,qBAAqB,47CAA47C,iHAAiH,wIAAwI,mEAAmE,0BAA0B,sHAAsH,WAAW,6UAA6U,eAAe,kfAAkf,sBAAsB,gDAAgD,YAAY,yBAAyB,wBAAwB,mCAAmC,YAAY,yBAAyB,4BAA4B,IAAI,iCAAiC,cAAc,EAAE,qLAAqL,oBAAoB,aAAa,UAAU,uDAAuD,wCAAwC,uCAAuC,oCAAoC,MAAM,kCAAkC,+BAA+B,MAAM,8CAA8C,8CAA8C,MAAM,wCAAwC,qCAAqC,MAAM,kCAAkC,+BAA+B,MAAM,4CAA4C,qBAAqB,8aAA8a,gPAAgP,WAAW,yKAAyK,eAAe,mGAAmG,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,yaAAya,kHAAkH,WAAW,wKAAwK,eAAe,gPAAgP,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,mcAAmc,gHAAgH,WAAW,kKAAkK,eAAe,8MAA8M,4BAA4B,IAAI,8BAA8B,UAAU,4EAA4E,4CAA4C,0BAA0B,mcAAmc,gHAAgH,WAAW,kKAAkK,eAAe,8MAA8M,4BAA4B,IAAI,8BAA8B,UAAU,4EAA4E,2CAA2C,OAAO,aAAa,uBAAuB,mcAAmc,gHAAgH,WAAW,kKAAkK,eAAe,8MAA8M,4BAA4B,IAAI,6BAA6B,UAAU,iCAAiC,oEAAoE,2CAA2C,OAAO,aAAa,EAAE,6IAA6I,qBAAqB,6IAA6I,qDAAqD,4OAA4O,gHAAgH,WAAW,qJAAqJ,eAAe,sNAAsN,4BAA4B,IAAI,8BAA8B,0CAA0C,OAAO,aAAa,EAAE,qBAAqB,wjBAAwjB,iHAAiH,WAAW,yJAAyJ,eAAe,mOAAmO,4BAA4B,IAAI,+BAA+B,uCAAuC,OAAO,aAAa,EAAE,oBAAoB,OAAO,2WAA2W,yBAAyB,qBAAqB,6iBAA6iB,iHAAiH,WAAW,qKAAqK,eAAe,qNAAqN,4BAA4B,IAAI,+BAA+B,uCAAuC,OAAO,aAAa,uBAAuB,qcAAqc,2IAA2I,WAAW,mBAAmB,wDAAwD,oBAAoB,8DAA8D,qBAAqB,qDAAqD,oBAAoB,oDAAoD,qBAAqB,gEAAgE,cAAc,eAAe,mBAAmB,yCAAyC,0LAA0L,4BAA4B,IAAI,6BAA6B,aAAa,6BAA6B,gaAAga,sMAAsM,WAAW,uIAAuI,eAAe,iFAAiF,4BAA4B,IAAI,4BAA4B,UAAU,sBAAsB,oEAAoE,OAAO,YAAY,wEAAwE,8GAA8G,0BAA0B,sEAAsE,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,67CAA67C,2QAA2Q,WAAW,8MAA8M,eAAe,wiBAAwiB,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,0IAA0I,iLAAiL,0BAA0B,qJAAqJ,OAAO,aAAa,uBAAuB,kmCAAkmC,0NAA0N,WAAW,qUAAqU,eAAe,yQAAyQ,kFAAkF,uCAAuC,kFAAkF,6CAA6C,oGAAoG,uCAAuC,2HAA2H,qVAAqV,2IAA2I,0BAA0B,+VAA+V,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,mBAAmB,YAAY,UAAU,2EAA2E,+CAA+C,wEAAwE,2CAA2C,iEAAiE,sCAAsC,0EAA0E,yEAAyE,qBAAqB,uyCAAuyC,mMAAmM,WAAW,0KAA0K,eAAe,6hBAA6hB,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,0IAA0I,iLAAiL,0BAA0B,qJAAqJ,OAAO,aAAa,uBAAuB,QAAQ,0QAA0Q,iWAAiW,gHAAgH,WAAW,kEAAkE,mBAAmB,qCAAqC,oCAAoC,mCAAmC,qDAAqD,iDAAiD,mBAAmB,gDAAgD,6CAA6C,+DAA+D,cAAc,eAAe,2HAA2H,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,+GAA+G,qBAAqB,QAAQ,UAAU,6EAA6E,0DAA0D,4CAA4C,0CAA0C,oDAAoD,kDAAkD,2CAA2C,yCAAyC,qDAAqD,mDAAmD,8CAA8C,4CAA4C,SAAS,eAAe,0DAA0D,eAAe,0BAA0B,qBAAqB,YAAY,UAAU,gEAAgE,0EAA0E,+CAA+C,mGAAmG,+EAA+E,wCAAwC,yFAAyF,gEAAgE,sIAAsI,qCAAqC,4EAA4E,qBAAqB,wcAAwc,oHAAoH,yCAAyC,sCAAsC,0BAA0B,8CAA8C,WAAW,wEAAwE,wBAAwB,iDAAiD,wBAAwB,cAAc,eAAe,iGAAiG,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,QAAQ,omCAAomC,+7BAA+7B,2IAA2I,WAAW,kJAAkJ,8DAA8D,qBAAqB,+FAA+F,cAAc,eAAe,8eAA8e,0NAA0N,gHAAgH,sBAAsB,qNAAqN,4BAA4B,IAAI,IAAI,IAAI,oDAAoD,UAAU,sFAAsF,kBAAkB,OAAO,aAAa,uBAAuB,0WAA0W,iIAAiI,kEAAkE,+FAA+F,0BAA0B,oDAAoD,WAAW,8JAA8J,eAAe,mMAAmM,OAAO,aAAa,uBAAuB,qeAAqe,4HAA4H,WAAW,yKAAyK,eAAe,2HAA2H,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,8YAA8Y,gHAAgH,WAAW,2HAA2H,mBAAmB,0CAA0C,4CAA4C,cAAc,eAAe,mBAAmB,6CAA6C,oLAAoL,4BAA4B,IAAI,6BAA6B,aAAa,uBAAuB,8YAA8Y,gHAAgH,WAAW,2HAA2H,mBAAmB,0CAA0C,4CAA4C,cAAc,eAAe,mBAAmB,6CAA6C,oLAAoL,4BAA4B,IAAI,6BAA6B,aAAa,uBAAuB,ynBAAynB,oRAAoR,6DAA6D,yBAAyB,0BAA0B,0CAA0C,WAAW,6EAA6E,8DAA8D,kDAAkD,8DAA8D,cAAc,4BAA4B,IAAI,8BAA8B,UAAU,4CAA4C,kBAAkB,eAAe,4NAA4N,uBAAuB,4WAA4W,iIAAiI,uEAAuE,oGAAoG,0BAA0B,yDAAyD,WAAW,8KAA8K,eAAe,mOAAmO,OAAO,aAAa,uBAAuB,QAAQ,8lCAA8lC,wQAAwQ,+xBAA+xB,qSAAqS,qHAAqH,WAAW,4TAA4T,eAAe,mBAAmB,iLAAiL,kBAAkB,wUAAwU,gaAAga,0DAA0D,IAAI,IAAI,IAAI,6BAA6B,qGAAqG,OAAO,aAAa,EAAE,QAAQ,oXAAoX,qBAAqB,8yCAA8yC,iHAAiH,WAAW,kaAAka,eAAe,wlBAAwlB,4BAA4B,IAAI,kDAAkD,gDAAgD,OAAO,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,kwCAAkwC,iHAAiH,gGAAgG,2CAA2C,0BAA0B,8EAA8E,WAAW,2ZAA2Z,eAAe,okBAAokB,wCAAwC,IAAI,gDAAgD,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,OAAO,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,wjDAAwjD,uHAAuH,WAAW,gOAAgO,eAAe,4qBAA4qB,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,4MAA4M,mPAAmP,0BAA0B,yOAAyO,4BAA4B,IAAI,0CAA0C,8BAA8B,OAAO,aAAa,uBAAuB,ojBAAojB,sRAAsR,WAAW,oJAAoJ,eAAe,yOAAyO,4BAA4B,IAAI,8CAA8C,UAAU,4CAA4C,0BAA0B,kCAAkC,kBAAkB,4DAA4D,yBAAyB,0BAA0B,2CAA2C,EAAE,QAAQ,8GAA8G,KAAK,kIAAkI,8jBAA8jB,qBAAqB,03BAA03B,iHAAiH,wHAAwH,2DAA2D,0BAA0B,sGAAsG,WAAW,0aAA0a,eAAe,ioBAAioB,sBAAsB,+FAA+F,aAAa,yBAAyB,wBAAwB,mCAAmC,aAAa,yBAAyB,OAAO,cAAc,EAAE,QAAQ,oXAAoX,qBAAqB,OAAO,iJAAiJ,yBAAyB,eAAe,sCAAsC,gBAAgB,0BAA0B,UAAU,WAAW,wBAAwB,UAAU,KAAK,MAAM,OAAO,aAAa,kBAAkB,qBAAqB,ozCAAozC,iHAAiH,WAAW,qaAAqa,eAAe,4kBAA4kB,4BAA4B,IAAI,4EAA4E,gDAAgD,OAAO,aAAa,uBAAuB,sdAAsd,4IAA4I,WAAW,qIAAqI,mBAAmB,8CAA8C,yCAAyC,eAAe,mBAAmB,qDAAqD,kBAAkB,2DAA2D,2IAA2I,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,00CAA00C,kIAAkI,wHAAwH,iDAAiD,0BAA0B,sGAAsG,WAAW,ucAAuc,eAAe,2iBAA2iB,gDAAgD,IAAI,sBAAsB,8BAA8B,EAAE,QAAQ,0ZAA0Z,qBAAqB,sCAAsC,eAAe,2BAA2B,eAAe,wBAAwB,qBAAqB,YAAY,qGAAqG,qBAAqB,QAAQ,2XAA2X,oFAAoF,8SAA8S,qJAAqJ,mSAAmS,WAAW,+IAA+I,eAAe,wDAAwD,qFAAqF,8DAA8D,4BAA4B,IAAI,0BAA0B,gBAAgB,OAAO,aAAa,EAAE,QAAQ,4nBAA4nB,mBAAmB,mEAAmE,mBAAmB,2BAA2B,mBAAmB,qBAAqB,qBAAqB,ucAAuc,+IAA+I,WAAW,sMAAsM,eAAe,qDAAqD,+DAA+D,8DAA8D,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,OAAO,qPAAqP,sCAAsC,uCAAuC,2BAA2B,kBAAkB,uEAAuE,qBAAqB,UAAU,qLAAqL,kHAAkH,8GAA8G,4FAA4F,kGAAkG,sFAAsF,4FAA4F,kBAAkB,qBAAqB,4bAA4b,gHAAgH,WAAW,mEAAmE,mBAAmB,qCAAqC,oCAAoC,mCAAmC,qDAAqD,gDAAgD,sQAAsQ,cAAc,eAAe,gNAAgN,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,wVAAwV,IAAI,uDAAuD,IAAI,sDAAsD,IAAI,4DAA4D,IAAI,2OAA2O,yHAAyH,WAAW,wJAAwJ,eAAe,oNAAoN,4BAA4B,IAAI,6BAA6B,aAAa,uBAAuB,+xCAA+xC,4GAA4G,WAAW,gPAAgP,mBAAmB,mHAAmH,2HAA2H,cAAc,eAAe,ukBAAukB,4BAA4B,IAAI,sGAAsG,mBAAmB,qLAAqL,OAAO,aAAa,uBAAuB,0lDAA0lD,+KAA+K,WAAW,sOAAsO,eAAe,wuBAAwuB,6RAA6R,4NAA4N,0BAA0B,qRAAqR,uBAAuB,21DAA21D,8MAA8M,6DAA6D,yBAAyB,0BAA0B,0CAA0C,WAAW,+SAA+S,eAAe,gJAAgJ,4BAA4B,IAAI,iDAAiD,UAAU,+DAA+D,mBAAmB,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,SAAS,eAAe,oEAAoE,MAAM,+CAA+C,MAAM,wDAAwD,MAAM,qDAAqD,MAAM,4CAA4C,MAAM,mCAAmC,MAAM,kDAAkD,MAAM,yCAAyC,MAAM,wDAAwD,MAAM,+CAA+C,MAAM,kDAAkD,MAAM,+CAA+C,MAAM,eAAe,gFAAgF,MAAM,2DAA2D,MAAM,oEAAoE,MAAM,2DAA2D,MAAM,wDAAwD,MAAM,+CAA+C,MAAM,8DAA8D,MAAM,qDAAqD,MAAM,0EAA0E,MAAM,iEAAiE,MAAM,8DAA8D,MAAM,qDAAqD,MAAM,0BAA0B,qBAAqB,s8CAAs8C,mPAAmP,WAAW,kMAAkM,eAAe,0JAA0J,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,sMAAsM,6OAA6O,0BAA0B,mOAAmO,OAAO,aAAa,0BAA0B,qWAAqW,iIAAiI,wEAAwE,qGAAqG,0BAA0B,0DAA0D,WAAW,+JAA+J,eAAe,kMAAkM,OAAO,aAAa,uBAAuB,qWAAqW,iIAAiI,wEAAwE,qGAAqG,0BAA0B,0DAA0D,WAAW,+JAA+J,eAAe,kMAAkM,OAAO,aAAa,uBAAuB,wcAAwc,iHAAiH,WAAW,yKAAyK,eAAe,mNAAmN,4BAA4B,IAAI,6BAA6B,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,k1CAAk1C,gHAAgH,WAAW,uWAAuW,eAAe,2oBAA2oB,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,OAAO,aAAa,uBAAuB,sbAAsb,+HAA+H,WAAW,0JAA0J,eAAe,oNAAoN,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,y8CAAy8C,mPAAmP,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,kKAAkK,yMAAyM,0BAA0B,mLAAmL,WAAW,iOAAiO,eAAe,yjBAAyjB,OAAO,aAAa,EAAE,kbAAkb,wBAAwB,sIAAsI,wDAAwD,8gBAA8gB,gHAAgH,WAAW,uJAAuJ,eAAe,iPAAiP,4BAA4B,IAAI,8BAA8B,0CAA0C,OAAO,aAAa,EAAE,kbAAkb,qBAAqB,sIAAsI,wDAAwD,8gBAA8gB,gHAAgH,WAAW,uJAAuJ,eAAe,iPAAiP,4BAA4B,IAAI,8BAA8B,0CAA0C,OAAO,aAAa,uBAAuB,0XAA0X,8HAA8H,WAAW,kLAAkL,eAAe,kNAAkN,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,wBAAwB,o5CAAo5C,mMAAmM,WAAW,qMAAqM,eAAe,8iBAA8iB,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,sJAAsJ,6LAA6L,0BAA0B,iKAAiK,OAAO,aAAa,EAAE,gRAAgR,eAAe,sCAAsC,mBAAmB,YAAY,UAAU,6CAA6C,wCAAwC,2CAA2C,0CAA0C,6CAA6C,0DAA0D,wCAAwC,mBAAmB,UAAU,qDAAqD,+DAA+D,IAAI,mBAAmB,QAAQ,6GAA6G,4yBAA4yB,0FAA0F,qBAAqB,qBAAqB,wGAAwG,2SAA2S,iHAAiH,WAAW,sEAAsE,mBAAmB,uCAAuC,gCAAgC,wCAAwC,oCAAoC,iCAAiC,8CAA8C,mBAAmB,wDAAwD,yDAAyD,qDAAqD,6CAA6C,cAAc,eAAe,6IAA6I,4BAA4B,IAAI,wBAAwB,aAAa,0BAA0B,ocAAoc,+JAA+J,WAAW,mIAAmI,kGAAkG,cAAc,eAAe,yMAAyM,4BAA4B,IAAI,uBAAuB,uBAAuB,ocAAoc,+IAA+I,WAAW,mIAAmI,kGAAkG,cAAc,eAAe,kMAAkM,4BAA4B,IAAI,6BAA6B,aAAa,uBAAuB,ybAAyb,6GAA6G,WAAW,6IAA6I,eAAe,qKAAqK,OAAO,aAAa,EAAE,qSAAqS,qBAAqB,QAAQ,g4BAAg4B,cAAc,ukBAAukB,WAAW,i3BAAi3B,2tFAA2tF,uIAAuI,WAAW,yMAAyM,gHAAgH,mBAAmB,iGAAiG,+GAA+G,gHAAgH,sBAAsB,gHAAgH,mBAAmB,qFAAqF,mGAAmG,oGAAoG,cAAc,eAAe,2UAA2U,6IAA6I,4EAA4E,0BAA0B,uIAAuI,4BAA4B,IAAI,qDAAqD,UAAU,6CAA6C,iCAAiC,mCAAmC,kBAAkB,OAAO,aAAa,EAAE,ilBAAilB,qBAAqB,qFAAqF,sHAAsH,wEAAwE,+BAA+B,0BAA0B,sDAAsD,WAAW,qTAAqT,eAAe,0gBAA0gB,sBAAsB,gCAAgC,wBAAwB,gCAAgC,OAAO,aAAa,uBAAuB,okBAAokB,+IAA+I,WAAW,6IAA6I,eAAe,uPAAuP,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,09CAA09C,oJAAoJ,WAAW,kOAAkO,eAAe,ogBAAogB,4BAA4B,IAAI,+CAA+C,qCAAqC,iJAAiJ,wEAAwE,0BAA0B,yIAAyI,EAAE,oMAAoM,eAAe,gBAAgB,qBAAqB,YAAY,UAAU,0DAA0D,mEAAmE,MAAM,wDAAwD,sEAAsE,MAAM,+CAA+C,gEAAgE,MAAM,2CAA2C,6DAA6D,MAAM,wCAAwC,iEAAiE,MAAM,kCAAkC,wDAAwD,OAAO,qBAAqB,YAAY,UAAU,qDAAqD,sHAAsH,2CAA2C,iIAAiI,qCAAqC,yGAAyG,yCAAyC,yFAAyF,8CAA8C,kIAAkI,4CAA4C,kHAAkH,qBAAqB,qOAAqO,+GAA+G,WAAW,kEAAkE,mBAAmB,oCAAoC,sCAAsC,+BAA+B,sCAAsC,+BAA+B,gCAAgC,iDAAiD,mBAAmB,4CAA4C,8CAA8C,uCAAuC,8CAA8C,wCAAwC,cAAc,eAAe,gGAAgG,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,8bAA8b,gHAAgH,WAAW,oEAAoE,mBAAmB,qCAAqC,mCAAmC,oCAAoC,sDAAsD,mDAAmD,mBAAmB,iDAAiD,+CAA+C,gDAAgD,kEAAkE,cAAc,eAAe,sGAAsG,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,0bAA0b,wBAAwB,0BAA0B,sBAAsB,iBAAiB,iHAAiH,WAAW,4JAA4J,eAAe,4OAA4O,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,OAAO,g5BAAg5B,sCAAsC,uCAAuC,2BAA2B,kBAAkB,uEAAuE,0BAA0B,o0CAAo0C,gHAAgH,WAAW,8HAA8H,mBAAmB,2EAA2E,qEAAqE,2EAA2E,+DAA+D,oEAAoE,ksBAAksB,cAAc,eAAe,uXAAuX,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,OAAO,kPAAkP,sCAAsC,uCAAuC,2BAA2B,kBAAkB,uEAAuE,qBAAqB,wbAAwb,gHAAgH,WAAW,kEAAkE,mBAAmB,oCAAoC,kCAAkC,mCAAmC,qDAAqD,gDAAgD,kQAAkQ,cAAc,eAAe,6MAA6M,4BAA4B,IAAI,wBAAwB,aAAa,uBAAuB,mbAAmb,qHAAqH,WAAW,2JAA2J,eAAe,2NAA2N,2EAA2E,+DAA+D,4BAA4B,kHAAkH,4BAA4B,IAAI,qBAAqB,aAAa,uBAAuB,2YAA2Y,+KAA+K,WAAW,oIAAoI,eAAe,8NAA8N,4BAA4B,IAAI,2BAA2B,WAAW,uDAAuD,OAAO,aAAa,uBAAuB,kZAAkZ,iHAAiH,WAAW,mKAAmK,eAAe,wNAAwN,OAAO,aAAa,EAAE,QAAQ,8GAA8G,KAAK,mIAAmI,qBAAqB,44DAA44D,mHAAmH,WAAW,+PAA+P,eAAe,mzBAAmzB,4BAA4B,IAAI,wCAAwC,8BAA8B,sBAAsB,+FAA+F,aAAa,EAAE,wBAAwB,mCAAmC,aAAa,EAAE,gPAAgP,6RAA6R,4BAA4B,2MAA2M,OAAO,aAAa,uBAAuB,s7CAAs7C,uHAAuH,WAAW,kMAAkM,eAAe,krBAAkrB,4BAA4B,IAAI,4OAA4O,yPAAyP,0BAA0B,+OAA+O,OAAO,aAAa,wBAAwB,wXAAwX,iHAAiH,WAAW,0JAA0J,eAAe,4MAA4M,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,EAAE,QAAQ,0ZAA0Z,qBAAqB,guCAAguC,iHAAiH,WAAW,ggBAAggB,eAAe,2fAA2f,0IAA0I,iLAAiL,0BAA0B,qJAAqJ,4BAA4B,IAAI,kDAAkD,gDAAgD,OAAO,aAAa,uBAAuB,u6CAAu6C,kMAAkM,4JAA4J,yEAAyE,0BAA0B,0IAA0I,WAAW,gdAAgd,eAAe,0hBAA0hB,0BAA0B,wXAAwX,oHAAoH,WAAW,gKAAgK,eAAe,mOAAmO,4BAA4B,IAAI,sBAAsB,SAAS,OAAO,aAAa,EAAE,6EAA6E,qBAAqB,kBAAkB,+DAA+D,wBAAwB,sCAAsC,gCAAgC,sBAAsB,IAAI,UAAU,yBAAyB,yBAAyB,yBAAyB,yBAAyB,yBAAyB,0BAA0B,sBAAsB,gwBAAgwB,iHAAiH,WAAW,4HAA4H,eAAe,mBAAmB,QAAQ,gJAAgJ,kBAAkB,QAAQ,qJAAqJ,sIAAsI,4BAA4B,IAAI,wBAAwB,aAAa,EAAE,QAAQ,qOAAqO,qBAAqB,OAAO,sWAAsW,mCAAmC,mBAAmB,QAAQ,iNAAiN,6+BAA6+B,0FAA0F,eAAe,kBAAkB,0DAA0D,qBAAqB,uaAAua,iHAAiH,WAAW,wKAAwK,eAAe,sNAAsN,uBAAuB,UAAU,2CAA2C,4CAA4C,WAAW,oDAAoD,OAAO,aAAa,wBAAwB,qbAAqb,oJAAoJ,6CAA6C,8BAA8B,0BAA0B,wCAAwC,WAAW,mKAAmK,eAAe,iGAAiG,4BAA4B,IAAI,wBAAwB,aAAa,6BAA6B,4iBAA4iB,gHAAgH,WAAW,gIAAgI,eAAe,0MAA0M,OAAO,cAAc,wBAAwB,ssDAAssD,gHAAgH,WAAW,wNAAwN,eAAe,8gBAA8gB,OAAO,cAAc,0BAA0B,49CAA49C,wXAAwX,iTAAiT,4TAA4T,0BAA0B,cAAc,yTAAyT,WAAW,maAAma,eAAe,klBAAklB,4BAA4B,IAAI,uGAAuG,UAAU,+DAA+D,2DAA2D,kBAAkB,sBAAsB,gCAAgC,wBAAwB,gCAAgC,OAAO,aAAa,uBAAuB,QAAQ,w/BAAw/B,+TAA+T,OAAO,09BAA09B,oTAAoT,2PAA2P,2IAA2I,WAAW,wNAAwN,mBAAmB,wGAAwG,wGAAwG,cAAc,eAAe,qUAAqU,kJAAkJ,4EAA4E,0BAA0B,6IAA6I,4BAA4B,IAAI,8CAA8C,UAAU,6DAA6D,iCAAiC,kBAAkB,OAAO,aAAa,EAAE,qkBAAqkB,4BAA4B,qFAAqF,sHAAsH,wEAAwE,+BAA+B,0BAA0B,sDAAsD,WAAW,8UAA8U,eAAe,8fAA8f,sBAAsB,gCAAgC,wBAAwB,gCAAgC,OAAO,aAAa,4BAA4B,wXAAwX,iHAAiH,WAAW,uLAAuL,eAAe,2MAA2M,OAAO,aAAa,uBAAuB,otCAAotC,iHAAiH,WAAW,mcAAmc,eAAe,4mBAA4mB,OAAO,aAAa,uBAAuB,uiBAAuiB,sBAAsB,0BAA0B,oCAAoC,iBAAiB,oOAAoO,WAAW,+MAA+M,eAAe,iRAAiR,4BAA4B,IAAI,sBAAsB,SAAS,OAAO,aAAa,6BAA6B,svBAAsvB,kGAAkG,WAAW,+MAA+M,eAAe,2VAA2V,4BAA4B,IAAI,mCAAmC,WAAW,sEAAsE,OAAO,aAAa,uBAAuB,i1BAAi1B,qHAAqH,WAAW,gPAAgP,eAAe,gWAAgW,iDAAiD,IAAI,yCAAyC,aAAa,0BAA0B,mqBAAmqB,oSAAoS,0HAA0H,2IAA2I,0BAA0B,cAAc,kIAAkI,WAAW,kJAAkJ,4BAA4B,IAAI,8CAA8C,UAAU,4CAA4C,0BAA0B,kCAAkC,kBAAkB,eAAe,kPAAkP,OAAO,aAAa,0BAA0B,mqBAAmqB,gRAAgR,0HAA0H,qKAAqK,0BAA0B,cAAc,kIAAkI,WAAW,kJAAkJ,4BAA4B,IAAI,8CAA8C,UAAU,4CAA4C,0BAA0B,kCAAkC,kBAAkB,eAAe,mPAAmP,0BAA0B,mqBAAmqB,gRAAgR,0HAA0H,qKAAqK,0BAA0B,cAAc,kIAAkI,WAAW,uJAAuJ,4BAA4B,IAAI,8CAA8C,UAAU,4CAA4C,0BAA0B,kCAAkC,kBAAkB,eAAe,mPAAmP,mBAAmB,E;;;;;;;;;;;ACAlkpR;;AAEA,CAAC;AACD,IAAI,KAA4D;AAChE,IAAI,SACyB;AAC7B,CAAC,qBAAqB;;AAEtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,IAAI;AAC/B;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,IAAI;;AAEhD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4LAA4L,IAAI;;AAEhM,qEAAqE,IAAI;;AAEzE;;AAEA;;AAEA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,0CAA0C,YAAY;AACtD;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B;AAC9B,gCAAgC;AAChC,6BAA6B,EAAE,EAAE;AACjC,6BAA6B,EAAE,EAAE;AACjC,kCAAkC,EAAE,EAAE;AACtC,iCAAiC;AACjC,qCAAqC;AACrC,yCAAyC;AACzC,6BAA6B,IAAI,EAAE;AACnC,6BAA6B,IAAI,EAAE;AACnC,kCAAkC,IAAI,EAAE;;AAExC,+BAA+B;AAC/B,oCAAoC;;AAEpC,8CAA8C;AAC9C,qDAAqD;;AAErD,wCAAwC,IAAI,IAAI;;AAEhD;AACA;AACA,2BAA2B,MAAM,wEAAwE,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;;AAEzK;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA,8CAA8C;AAC9C;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,OAAO;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8EAAe,IAAW,OAAO,CAAC;AAClD;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,+BAA+B;AAClD;AACA;;AAEA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,EAAE,IAAI,EAAE;AACnD,wCAAwC,EAAE,IAAI,EAAE;;AAEhD;;AAEA;AACA,iCAAiC,EAAE;AACnC,2BAA2B,EAAE;AAC7B,6BAA6B,EAAE;AAC/B,2BAA2B,EAAE;AAC7B,yBAAyB,EAAE,IAAI,EAAE;AACjC,wBAAwB,EAAE;AAC1B,+BAA+B,GAAG;AAClC,yBAAyB,EAAE;AAC3B;AACA,2BAA2B,EAAE,IAAI,EAAE;AACnC,0BAA0B,EAAE,IAAI,EAAE;AAClC,wBAAwB,EAAE;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA,8DAA8D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;;AAEvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,gBAAgB;AAClD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6BAA6B;AACtC;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,cAAc;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,6DAA6D;AAC7D,yDAAyD;AACzD,+DAA+D;AAC/D,wDAAwD,OAAO;AAC/D,wDAAwD,OAAO;AAC/D,uDAAuD,OAAO;AAC9D,mEAAmE,OAAO;AAC1E,qEAAqE,OAAO;AAC5E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;;AAGL;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;;AAEL;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;;ACz/ID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2G;AAC5D;;AAE/C;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAWV;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,sDAAsD;AACtD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAoDV;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAWV;;AAED,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,WAAW,EAKV;AACD;AACA;AACA;AACA,gCAAgC;AAChC,WAAW,EAuCV;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,mBAAmB,EAAE;AAClD;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAiD;AACvF;AACA,0CAA0C,6CAA6C;AACvF;AACA;AACA,0CAA0C,6CAA6C;AACvF;AACA;AACA,0CAA0C,6CAA6C;AACvF;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,2EAA2E,iBAAiB;AAC5F;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE;AACvB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,0BAA0B,EAAE;AACrD;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,mCAAmC,EAAE;AAC9D;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,sBAAsB,EAAE;AACjD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,yBAAyB,EAAE;AACpD;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,4CAA4C,EAAE;AACvE;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,iCAAiC,kCAAkC,EAAE;AACrE;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,wBAAwB;AACxB;AACA,yBAAyB,gEAAgE,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,4EAA4E,WAAW;AACvF,uDAAuD,WAAW;AAClE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,yBAAyB,EAAE;AAC3B;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,6EAA6E,UAAU;AACvF;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,yCAAyC,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,4CAA4C,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAwBV;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,oBAAoB,OAAO,0DAAY,qBAAqB;AAC5D;AACA,oEAAoE,uCAAuC,+DAAwB,CAAC,wDAAiB,GAAG;AACxJ,2BAA2B,+DAAwB,EAAE,sIAAsI;AAC3L,QAAQ,wDAAiB,qEAAqE,uBAAuB,EAAE;AACvH,KAAK,EAAE,WAAW,uBAAuB,YAAY,mCAAmC,EAAE;AAC1F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,8BAA8B;AAC9C,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD,WAAW,EAUV;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yBAAyB,EAAE;AAC3B,qDAAqD,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,kBAAkB,OAAO,0DAAY,+BAA+B;AACpE,sBAAsB,OAAO,0DAAY,mCAAmC;AAC5E,uBAAuB,OAAO,0DAAY,oCAAoC;AAC9E;AACA,gEAAgE,qCAAqC,+DAAwB,CAAC,wDAAiB,GAAG;AAClJ,yBAAyB,+DAAwB,EAAE,gIAAgI;AACnL,QAAQ,wDAAiB,qEAAqE,2BAA2B,EAAE,8EAA8E,+BAA+B,EAAE,gFAAgF,gCAAgC,EAAE;AAC5V,KAAK,EAAE,WAAW,uBAAuB,YAAY,iDAAiD,EAAE;AACxG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB,gBAAgB,4BAA4B;AAC5C,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD,WAAW,EAYV;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA,wBAAwB,8DAAuB,EAAE,yBAAyB;AAC1E,wBAAwB,8DAAuB,EAAE,gDAAgD,sCAAsC,EAAE,aAAa,4DAAY,IAAI;AACtK,cAAc,oDAAoD,gEAAyB,oBAAoB,4BAA4B;AAC3I,6BAA6B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AACxG,6BAA6B,EAAE,EAAE,EAAE,EAAE;AACrC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;;AAE4G;;AAE5G,2C;;;;;;;;;;;;AC3gEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuF;AACwC;AAChF;AACd;AACJ;AACqB;AACF;;AAEhD;AACA;AACA;AACA;AACwC;AACO;AACL;;AAE1C,kDAAkD;AAClD,gBAAgB,8DAAuB;AACvC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,0EAA0E,CAAC,2DAAoB,QAAQ,gBAAgB,2DAAoB,GAAG,qCAAqC,EAAE;AAC1M,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB,4BAA4B,2DAAoB;AACrE,CAAC;AACD,gEAAgE;AAChE,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,CAAC;AACD,0DAA0D;AAC1D,IAAI,wDAAiB;AACrB,CAAC;AACD,mBAAmB,2DAAoB;AACvC,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oCAAoC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sCAAsC,EAAE;AAChF,qCAAqC,iCAAiC,EAAE;AACxE;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,GAAG;AAClD;AACA,cAAc,0CAAG;AACjB;AACA;AACA,yBAAyB,gDAAQ;AACjC;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wDAAU,GAAG,wDAAU;AAC3C;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA,wBAAwB,4DAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC;AACA;AACA,aAAa;AACb,mBAAmB,sDAAQ,0DAA0D,yCAAyC,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,0BAA0B;AACpG,MAAM;AACN,0BAA0B,wDAAU,GAAG,qDAAO,IAAI,8DAAQ;AAC1D,QAAQ,qDAAO,IAAI,4DAAM;AACzB,QAAQ,wDAAU;AAClB;AACA,oEAAoE,uCAAuC,sDAAe,oBAAoB;AAC9I,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6BAA6B,EAAE;AACnE,kDAAkD,2BAA2B,EAAE;AAC/E;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,+DAAU,EAAE;AAC5B,SAAS;AACT,MAAM;AACN,oBAAoB,wDAAU,GAAG,wDAAU,uBAAuB,+DAAU;AAC5E;AACA;AACA,wDAAwD,iCAAiC,sDAAe,CAAC,+DAAiB,GAAG,sDAAe,uBAAuB;AACnK,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,+DAAiB,EAAE,GAAG,4BAA4B,EAAE,EAAE,QAAQ,EAAE;AACtG;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE;AACzB;AACA;AACA,iFAAiF;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ,EAAE,sLAAsL;AAC/M;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAS,cAAc,sBAAsB,EAAE,GAAG,0DAAG,sBAAsB,qDAAqD,EAAE;AACpJ,6CAA6C,sCAAsC,EAAE;AACrF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,oCAAoC,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,yCAAyC,EAAE;AACzG;AACA,kDAAkD;AAClD,SAAS,sBAAsB;AAC/B,SAAS;AACT,MAAM;AACN,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU,gBAAgB,0DAAY;AAC9C;AACA,sBAAsB,wDAAU,GAAG,wDAAU;AAC7C;AACA;AACA,4DAA4D,mCAAmC,+DAAwB,iBAAiB,+DAAwB,iBAAiB;AACjL,uBAAuB,+DAAwB,EAAE,8DAA8D,olBAAolB,YAAY,iCAAiC,aAAa,kEAA2B,kaAAka;AAC1rC,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,oEAAoE,8BAA8B,EAAE;AAC7H,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB,0EAA0E,oEAA6B;AAChI,QAAQ,0DAAmB;AAC3B,KAAK;AACL,oBAAoB,yDAAkB;AACtC,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,uDAAc,EAAE,oDAAW,+BAA+B,+BAA+B,SAAS,IAAI;AAC5H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,0LAA0L,kWAAkW,cAAc;AAC1iB,yCAAyC,+BAA+B,SAAS;AACjF,aAAa;AACb,KAAK,gBAAgB,UAAU,sBAAsB,GAAG,sBAAsB,EAAE,EAAE,GAAG;AACrF,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mEAAmE;AACpF;AACA;AACA;AACA;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,kCAAkC,EAAE,6EAA6E,4DAAY,IAAI;AAC1N,cAAc,oDAAoD,gEAAyB,gBAAgB,4BAA4B,0BAA0B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB,0BAA0B,EAAE,EAAE,EAAE,EAAE;AAC9Q,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAE0K;;AAE1K,sC;;;;;;;;;;;;AC35BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,wLAAwL,IAAI;AAC5L;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,YAAY;AAC5C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,YAAY;AACnC;AACA,+BAA+B,EAAE,4CAA4C,+DAA+D;AAC5I;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,uBAAuB,OAAO;AAC9B,uBAAuB,OAAO;AAC9B,uBAAuB,OAAO;AAC9B,uBAAuB,OAAO;AAC9B,uBAAuB,OAAO;AAC9B,wBAAwB,QAAQ;AAChC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,iBAAiB,EAAE;AACnB;AACA,WAAW,EAAE;AACb,iBAAiB,EAAE;AACnB;AACA,WAAW,EAAE;AACb,sBAAsB,EAAE;AACxB;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,oBAAoB,IAAI;AACxB;AACA,WAAW,EAAE;AACb,oBAAoB,IAAI;AACxB;AACA,WAAW,EAAE;AACb,yBAAyB,IAAI;AAC7B;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,oCAAoC,IAAI;AACxC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,uBAAuB,MAAM,2DAA2D,MAAM,mBAAmB,MAAM,qBAAqB,MAAM,EAAE,IAAI;AACxJ,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wCAAwC,6BAA6B,EAAE;AACvE;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,gCAAgC;AAChC,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,eAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,wCAAwC,IAAI;AAC5C,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,0CAA0C,EAAE;AAC5C,uBAAuB,EAAE;AACzB,kCAAkC,EAAE;AACpC,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA,2DAA2D,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,8BAA8B,EAAE;AAChC;AACA;AACA;AACA,8BAA8B,EAAE;AAChC;AACA;AACA,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,OAAO;AAC9B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yCAAyC,+CAA+C;AACxF,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,aAAa;AACzC,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA,8CAA8C,EAAE;AAChD;AACA,4BAA4B,EAAE,qCAAqC,kBAAkB,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,MAAM;AACN;AACA;AACA;AACA,wEAAwE,KAAK;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6BAA6B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,IAAI;AACxC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,2CAA2C;AAC3C;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA,qDAAqD,wBAAwB;AAC7E;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,uCAAuC,EAAE,IAAI,EAAE;AAC/C;AACA,WAAW,EAAE;AACb,oCAAoC,EAAE,IAAI,EAAE;AAC5C,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,6BAA6B,EAAE;AAC/B,uBAAuB,EAAE;AACzB,yBAAyB,EAAE;AAC3B,uBAAuB,EAAE;AACzB,qBAAqB,EAAE,IAAI,EAAE;AAC7B,oBAAoB,EAAE;AACtB,2BAA2B,GAAG;AAC9B,qBAAqB,EAAE;AACvB;AACA,uBAAuB,EAAE,IAAI,EAAE;AAC/B,sBAAsB,EAAE,IAAI,EAAE;AAC9B,oBAAoB,EAAE;AACtB;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,0DAA0D,IAAI,0DAA0D,IAAI,qEAAqE,EAAE;AACnM;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,YAAY;AACxC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,qEAAqE,IAAI;AACzE,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,sBAAsB;AACrC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB,iDAAiD,EAAE;AACnD;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gDAAgD,EAAE;AAC1E;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,iCAAiC,QAAQ,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gDAAgD,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oBAAoB,8BAA8B,EAAE;AACpD;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,aAAa;AACzC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,eAAe;AACf;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,+CAA+C,oCAAoC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,sBAAsB;AAClD,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,WAAW;AACrC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,0BAA0B,WAAW;AACrC;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B,KAAK;AACL,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,iCAAiC,KAA6B,WAAW,SAAE;AAC3E,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,iCAAiC,KAA6B,WAAW,SAAE;AAC3E,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,iCAAiC,KAA6B,WAAW,SAAE;AAC3E,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,iCAAiC,KAA6B,WAAW,SAAE;AAC3E,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,oCAAoC,KAAsC,oBAAoB,SAAE;AAChG,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0CAA0C,IAAI,IAAI,IAAI;AACtD;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,wCAAwC;AACxC,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,wBAAwB;AACxB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gCAAgC,IAAI;AACpC;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEiyB;;AAEjyB,iD;;;;;;;;;;;;ACzkUA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8I;AAC7C;AAClC;;AAE/D;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACwC;AACY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA,2BAA2B,0DAAY;AACvC;AACA,gCAAgC,0DAAY;AAC5C,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,2BAA2B,sDAAQ;AACnC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wDAAU;AACpD;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,sCAAsC,8EAAkB;AACxD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wCAAwC,gFAAoB;AAC5D;AACA;AACA;AACA,gCAAgC;AAChC;AACA,iCAAiC,iCAAiC,EAAE;AACpE,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mCAAmC,4EAAgB;AACnD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,iCAAiC,EAAE;AAChE,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAW;AAC1C;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uDAAuD;AACvD;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,uCAAuC,sDAAQ;AAC/C;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,u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ACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,2IAA2I,6DAAsB;AACtL,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wCAAwC;AAC1G,2BAA2B,gEAAyB,EAAE,mDAAmD,mCAAmC,EAAE,EAAE;AAChJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oBAAoB;AACpB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB;AACtB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,yCAAyC;AAC7G,4BAA4B,gEAAyB,EAAE,oDAAoD,oCAAoC,EAAE,EAAE;AACnJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,2BAA2B,oDAAe;AAC1C;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,qCAAqC;AACjG,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oBAAoB,EAAE,wCAAwC,EAAE;AAChE,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oBAAoB,EAAE,wCAAwC,EAAE;AAChE,2BAA2B,EAAE;AAC7B;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,sCAAsC,4CAA4C;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oB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E;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,sBAAsB,qEAAO;AAC7B,eAAe,EAAE;AACjB,yBAAyB;AACzB,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,qBAAqB;AACrB;AACA,eAAe,wEAAU;AACzB,KAAK,EAAE,EAAE;AACT;AACA;AACA;AACA,mBAAmB,wEAAU;AAC7B;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,4BAA4B,yEAAW;AACvC,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,6BAA6B,yEAAW;AACxC,uBAAuB,EAAE;AACzB,6CAA6C;AAC7C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uEAAS,mCAAmC,WAAW;AAC3G,qDAAqD,uEAAS,mCAAmC,UAAU;AAC3G;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,eAAe;AACf;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,yBAAyB;AACzB,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,qBAAqB;AACrB;AACA,eAAe,wEAAU;AACzB,KAAK,EAAE,EAAE;AACT,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uEAAS,YAAY,yBAAyB;AACzD;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,eAAe,wEAAU;AACzB,eAAe,EAAE;AACjB,aAAa,wEAAU;AACvB;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,4BAA4B,wEAAU;AACtC,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,6BAA6B,wEAAU;AACvC,uBAAuB,EAAE;AACzB,6CAA6C,WAAW,uEAAuE;AAC/H;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uEAAS,kCAAkC,WAAW;AAC1G,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,qDAAqD,uEAAS,kCAAkC,UAAU;AAC1G;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,uBAAuB,yEAAW;AAClC,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,4BAA4B,QAAQ,yBAAyB;AAC7D;AACA;AACA;AACA,4BAA4B,4BAA4B,yBAAyB;AACjF;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,4BAA4B,QAAQ,yBAAyB;AAC7D,mCAAmC;AACnC;AACA;AACA,mCAAmC,UAAU,8BAA8B;AAC3E;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,6BAA6B;AAC7B,mCAAmC;AACnC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,4BAA4B,yEAAW;AACvC,mBAAmB,qEAAO,oBAAoB,yEAAW;AACzD;AACA,uBAAuB,EAAE;AACzB;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,oBAAoB,qEAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,6BAA6B;AAC7B,mCAAmC;AACnC;AACA;AACA,mCAAmC;AACnC;AACA,aAAa;AACb;AACA;AACA,mCAAmC;AACnC;AACA,aAAa;AACb;AACA;AACA,mCAAmC;AACnC;AACA,aAAa;AACb;AACA;AACA,mCAAmC;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,uBAAuB,uEAAS,YAAY,YAAY;AACxD;AACA,gDAAgD,uEAAS;AACzD,mBAAmB,EAAE;AACrB;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA,uBAAuB,uEAAS,YAAY,WAAW;AACvD;AACA,+BAA+B,UAAU,2BAA2B;AACpE;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA,uBAAuB,uEAAS,YAAY,UAAU;AACtD;AACA,+BAA+B,UAAU,iCAAiC;AAC1E;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA,uBAAuB,uEAAS,YAAY,yBAAyB;AACrE;AACA,+BAA+B,UAAU,yCAAyC;AAClF;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,+BAA+B,UAAU,mCAAmC;AAC5E;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA,uBAAuB,uEAAS,YAAY,UAAU;AACtD;AACA,+BAA+B,UAAU,iCAAiC;AAC1E;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA,uBAAuB,uEAAS,YAAY,WAAW;AACvD;AACA,+BAA+B,UAAU,yCAAyC;AAClF;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,+BAA+B,UAAU,+BAA+B;AACxE;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,+BAA+B,UAAU,+CAA+C;AACxF;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,+BAA+B,UAAU,6CAA6C;AACtF;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,yBAAyB,uEAAS,eAAe,0BAA0B;AAC3E,eAAe,uEAAS;AACxB;AACA,WAAW,uEAAS,CAAC,qEAAO;AAC5B;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,mBAAmB,qEAAO;AAC1B;AACA;AACA,mBAAmB,sEAAQ;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,mBAAmB,EAAE;AACrB,8BAA8B,oDAAe;AAC7C;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,wBAAwB,iEAAS;AACjC;AACA;AACA;AACA;AACA,oDAAoD,WAAW;AAC/D,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b,KAAK,gBAAgB,UAAU,OAAO,uDAAgB,EAAE,GAAG,2BAA2B,GAAG,0BAA0B,GAAG,OAAO,wDAAiB,EAAE,GAAG,4BAA4B,GAAG,4BAA4B,GAAG,OAAO,4EAAyB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjQ;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAsD;AAC5E;AACA;AACA,uBAAuB,6BAA6B;AACpD,mBAAmB,4BAA4B;AAC/C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,6BAA6B,UAAU;AACzE;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,SAAS,2BAA2B;AACpC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,qFAAsB;AACtC,MAAM;AACN;AACA,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,mDA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A,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAsD;AAC5E;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D,SAAS,iCAAiC;AAC1C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,qFAAsB;AACtC,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,yBAAyB,OAAO,mDAAK,EAAE;AACvC,yBAAyB,OAAO,oDAAM,EAAE;AACxC;AACA,oFAAoF,+CAA+C,+DAAwB,4BAA4B,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,qFAA6B,GAAG;AAC5X,mCAAmC,+DAAwB,EAAE,oFAAoF,qLAAqL,YAAY,iCAAiC,+CAA+C,kEAA2B,GAAG;AAChc,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,iCAAiC,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG,OAAO,qFAA6B,EAAE,EAAE,EAAE,GAAG;AAC5M,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,uFAAuF;AAC/K,sCAAsC,gEAAyB,EAAE,8DAA8D,8CAA8C,EAAE,EAAE;AACjL,iDAAiD,mEAA4B;AAC7E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,QAAQ,yCAAyC,EAAE;AAC3E;AACA,SAAS;AACT;AACA,kBAAkB,2DAAI;AACtB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,qCAAqC,EAAE;AAChE;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,6BAA6B,UAAU;AACzE;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,sEAAsE;AACtE,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AACrC,SAAS,OAAO,4EAAkB;AAClC,MAAM;AACN,oGAAoG,uDAAuD,+D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AS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,aAAa,gEAAiB;AAC9B;AACA,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,mCAAmC,EAAE;AACtD;AACA;AACA,WAAW,EAAE;AACb;AACA,aAAa,4DAAa;AAC1B;AACA,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,mCAAmC,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,8BAA8B,uEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,cAAc,wEAAU;AACxB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,oEAAM;AAClB,uBAAuB,EAAE;AACzB,+BAA+B,yEAAW;AAC1C;AACA,wBAAwB,UAAU,kBAAkB;AACpD;AACA,wDAAwD,sEAAQ;AAChE;AACA,wBAAwB,UAAU,gCAAgC;AAClE;AACA,wDAAwD,qEAAO;AAC/D;AACA,wBAAwB,UAAU,gCAAgC;AAClE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uEAAS;AACnC;AACA;AACA;AACA,0BAA0B,uEAAS;AACnC;AACA,8BAA8B,wEAAU;AACxC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D,SAAS,4CAA4C,OAAO,kDAAI,EAAE,GAAG;AACrE,SAAS,wBAAwB;AACjC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN,kFAAkF,8CAA8C,+DAAwB,4BAA4B,+DAAwB,mBAAmB,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,+DAAwB,GAAG;AAC5W,kCAAkC,+DAAwB,EAAE,wJAAwJ;AACpN,QAAQ,wDAAiB,kFAAkF,6BAA6B,EAAE,mFAAmF,mBAAmB,EAAE,yEAAyE,qBAAqB,EAAE;AAClV,KAAK,EAAE,aAAa,gEAAyB,4DAA4D;AACzG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,kDAAI;AAC1B,aAAa,GAAG,GAAG,wBAAwB,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,+DAAwB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACtJ;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,2EAA2E;AACvJ,gCAAgC,gEAAyB,EAAE,wDAAwD,wCAAwC,EAAE,EAAE;AAC/J,2CAA2C,mEAA4B;AACvE,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAsD;AAC5E;AACA;AACA,uBAAuB,6BAA6B;AACpD,mBAAmB,4BAA4B;AAC/C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,6DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,wCAAwC,EAAE;AACpE;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,6BAA6B,UAAU;AACzE;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AA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B;AACA,kBAAkB,wEAAU;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,wDAAwD,qEAAO;AAC/D;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,cAAc,EAAE;AACzC,mBAAmB,EAAE;AACrB,gCAAgC,yEAAW;AAC3C,mBAAmB,EAAE;AACrB,iCAAiC,yEAAW;AAC5C;AACA,oBAAoB,UAAU,qBAAqB;AACnD;AACA;AACA,oBAAoB,UAAU,qBAAqB;AACnD;AACA,oDAAoD,sEAAQ;AAC5D;AACA,yBAAyB,UAAU,gCAAgC,EAAE;AACrE;AACA,oDAAoD,qEAAO;AAC3D;AACA,yBAAyB,UAAU,gCAAgC,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uEAAS;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B,wEAAU,CAAC,uEAAS;AAC/C;AACA,uBAAuB,uEAAS;AAChC,aAAa;AACb;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AAC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,yCAAyC,EAAE,EAAE,EAAE,EAAE;AACjD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,6DAAY;AACtC,8BAA8B,sDAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,wEAAU;AACzB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C,0BAA0B,0DAAY;AACtC,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,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ACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sCAAsC;AACpG,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,aAAa,gEAAiB;AAC9B;AACA,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,4BAA4B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACj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CA;AACA,oBAAoB,kEAAK;AACzB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mCAAmC;AACnC;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,QAAQ;AACnC,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,qCAAqC,oBAAoB;AACzD;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACr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AE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C,oCAAoC,0DAAY;AAChD,+BAA+B,0DAAY;AAC3C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD,WAAW;AAC7D,4DAA4D,qCAAqC;AACjG,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK,EAAE,gCAAgC;AAC3C,IAAI,mEAAO,4BAA4B,iEAAK,EAAE,kCAAkC;AAChF;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,6BAA6B,iEAAK;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D,SAAS,wBAAwB;AACjC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAgB;AAChC,MAAM;AACN,sFAAsF,gDAAgD,+DAAwB,mBAAmB,+DAAwB,CAAC,+DAAwB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oEAAuB,GAAG;AACjX,oCAAoC,+DAAwB,EAAE,wPAAwP;AACtT,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,2BAA2B,8BAA8B,EAAE,wCAAwC;AAC1G,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iCAAiC,qEAAuB;AACxD;AACA,0CAA0C,mBAAmB;AAC7D,iBAAiB;AACjB;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,wBAAwB,GAAG,OAAO,+DAAwB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oEAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrM;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kDAAkD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB,iEAAK;AACzB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA;AACA,kBAAkB,6DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,cAAc,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,qBAAqB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,sCAAsC,UAAU;AAClF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,aAAa,iEAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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BAA0B,0BAA0B,EAAE;AACtD;AACA;AACA;AACA,CAAC,CAAC,oDAAe;;AAEjB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,uCAAuC,0DAAG;AAC1C,4BAA4B,2EAAoB;AAChD;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,+CAAU;;AAEoB;;AAEhC,mD;;;;;;;;;;;;ACnJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiL;AAClF;AACvB;AACT;;AAE/D;AACA;AACA,cAAc,uFAAuF;AACrG;AACwC;AACiB;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF,mBAAmB,gEAAyB,EAAE,2CAA2C,2BAA2B,EAAE,EAAE;AACxH,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mEAAmE,iEAAK;AACxE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,iEAAK;AACrE;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0DAA0D;AAC1D,SAAS,qBAAqB;AAC9B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,0BAA0B,OAAO,0DAAY,oCAAoC;AACjF,uBAAuB,OAAO,0DAAY,kCAAkC;AAC5E,iBAAiB,OAAO,0DAAY,6CAA6C;AACjF;AACA,4EAA4E,2CAA2C,+DAAwB,gBAAgB,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AACxP,+BAA+B,+DAAwB,EAAE,kNAAkN;AAC3Q,QAAQ,wDAAiB,qFAAqF,mCAAmC,EAAE,kFAAkF,gCAAgC,EAAE,0FAA0F,0BAA0B,EAAE,SAAS,6DAAsB;AAC5Z,KAAK;AACL,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,kKAAkK;AACzK,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,KAAK,EAAE,oBAAoB;AAC3B,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,qBAAqB,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,GAAG;AACpH,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,4EAA4E,eAAe;AAC3F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iEAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,yDAAK;AACjB;AACA;AACA;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN,0EAA0E,0CAA0C,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AAC7M,8BAA8B,+DAAwB,EAAE,qLAAqL,EAAE,oBAAoB;AACnQ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE;AACnG;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAU,IAAI,4DAAU;AACpC,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA,wCAAwC,4DAAU;AAClD;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAAQ;AAChB,QAAQ,0DAAQ;AAChB;AACA;AACA,aAAa,iEAAK;AAClB;AACA;AACA;AACA;AACA,kCAAkC,0DAAQ;AAC1C,wBAAwB;AACxB;AACA,yBAAyB,0BAA0B,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAU,IAAI,4DAAU;AACxC,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAK;AACjB;AACA;AACA;AACA,aAAa,iEAAK;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB,4DAAU,IAAI,4DAAU;AAC5C,gDAAgD,4DAAU;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uCAAuC,0DAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,iCAAiC,4DAAU,oBAAoB,0DAAQ;AACvE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,aAAa,4DAAU;AACvB;AACA;AACA,4CAA4C,0DAAQ;AACpD,8BAA8B,4DAAU;AACxC;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,4DAAU;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mCAAmC,4DAAU;AAC7C,mBAAmB,EAAE;AACrB;AACA,mCAAmC,4DAAU;AAC7C;AACA;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,qFAAsB;AACtC,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,0BAA0B,OAAO,0DAAY,oCAAoC;AACjF,uBAAuB,OAAO,0DAAY,kCAAkC;AAC5E,iBAAiB,OAAO,0DAAY,sCAAsC;AAC1E;AACA,0DAA0D,kCAAkC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,qFAA6B,GAAG;AACjS,sBAAsB,+DAAwB,EAAE,sHAAsH;AACtK,QAAQ,wDAAiB,4EAA4E,mCAAmC,EAAE,yEAAyE,gCAAgC,EAAE,iFAAiF,0BAA0B,EAAE;AAClW,KAAK,EAAE,WAAW,mBAAmB,YAAY,+EAA+E,0BAA0B;AAC1J,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,qFAA6B,EAAE,EAAE,EAAE,GAAG;AACxK,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA,2BAA2B,0DAAY;AACvC;AACA,0BAA0B,0DAAY;AACtC;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,+BAA+B,EAAE;AACtD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,sBAAsB,+CAA+C;AACrE,sBAAsB,4CAA4C;AAClE;AACA;AACA,mBAAmB,mHAAmH;AACtI;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,0CAA0C,EAAE;AACrE,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gB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oDAAW,+CAA+C,4BAA4B,OAAO,oEAAoE,0BAA0B,OAAO,wCAAwC,4BAA4B,OAAO,mEAAmE,0BAA0B,OAAO,4CAA4C,4BAA4B,OAAO,0IAA0I,wBAAwB,OAAO,wBAAwB;AACvpB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iCAAiC,qEAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,iBAAiB;AACjB,mIAAmI,SAAS;AAC5I,uDAAuD,4BAA4B,OAAO,oCAAoC,0BAA0B,OAAO,6BAA6B,4BAA4B,OAAO,mCAAmC,0BAA0B,OAAO,iCAAiC,4BAA4B,OAAO,0EAA0E,wBAAwB,OAAO;AAChd,aAAa;AACb,KAAK,gBAAgB,UAAU,sBAAsB,EAAE,EAAE,GAAG;AAC5D,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4CAA4C;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB,2BAA2B,kDAAK;AAChC,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,yEAAa;AAC7B;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,sBAAsB;AAC/B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,qFAAsB,EAAE;AACxC,SAAS,OAAO,4EAAkB;AAClC,MAAM;AACN;AACA,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,mBAAmB,OAAO,mDAAK,EAAE;AACjC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,wBAAwB,OAAO,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CA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,0CAA0C,EAAE;AAC5C,sCAAsC,EAAE;AACxC;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,iCAAiC,EAAE,4CAA4C,EAAE,4CAA4C,EAAE,4CAA4C,EAAE,4CAA4C,EAAE;AAC3N,iCAAiC,EAAE;AACnC,+CAA+C,EAAE;AACjD,+CAA+C,EAAE;AACjD;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,cAAc;AACxC,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,WAAW,sDAAQ,GAAG,YAAY,4EAA4E;AAC9G;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,8BAA8B,kBAAkB;AAChD,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mCAAmC,uBAAuB;AAC1D,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mCAAmC,uBAAuB;AAC1D,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C,mCAAmC,uBAAuB;AAC1D;AACA,eAAe,EAAE;AACjB,sBAAsB;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,sCAAsC,uDAAuD;AAC7F,uCAAuC,gCAAgC;AACvE,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oBAAoB,SAAS,sDAAQ,EAAE,WAAW,eAAe,4BAA4B,GAAG,EAAE;AAClG;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wBAAwB,qBAAqB,EAAE,sBAAsB,EAAE;AACvE;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,mCAAmC,sBAAsB;AACzD,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,iBAAiB,EAAE;AACnB;AACA;AACA;AACA,iBAAiB,EAAE;AACnB;AACA,uBAAuB,EAAE;AACzB;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,oEAAoE,EAAE;AACtE,qBAAqB,EAAE;AACvB,yBAAyB,EAAE;AAC3B;AACA;AACA,4BAA4B,EAAE,2EAA2E,EAAE;AAC3G,qBAAqB,EAAE;AACvB,gCAAgC,EAAE,kFAAkF,EAAE;AACtH;AACA;AACA;AACA,eAAe,EAAE;AACjB,qCAAqC,EAAE;AACvC;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,0CAA0C,EAAE;AAC5C;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,GAAG;AACzC;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,GAAG;AAC7C;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,qCAAqC,EAAE;AACvC,6BAA6B,EAAE;AAC/B;AACA;AACA,8CAA8C,EAAE;AAChD;AACA,0BAA0B;AAC1B,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,GAAG,oCAAoC,EAAE;AAC/E,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B;AAC3B,yBAAyB;AACzB;AACA;AACA;AACA,8BAA8B,sDAAQ,GAAG,uBAAuB,EAAE;AAClE;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2CAA2C,+BAA+B,EAAE;AAC5E;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA,wBAAwB;AACxB;AACA;AACA,sCAAsC,kDAAK,CAAC,sDAAS,oBAAoB,gBAAgB,GAAG,sDAAS,oBAAoB,gBAAgB;AACzI;AACA,gBAAgB,+CAAE,IAAI,4DAAuB;AAC7C;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;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BAA6B,+DAAwB,EAAE,8EAA8E,+BAA+B,EAAE;AACtK,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,EAAE,EAAE,GAAG;AACtE,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF,qBAAqB,gEAAyB,EAAE,6CAA6C,6BAA6B,EAAE,EAAE;AAC9H,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,YAAY,8BAA8B;AAC3E,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,qBAAqB;AAC9B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,yDAAW,kCAAkC;AACrE;AACA,4DAA4D,mCAAmC,+DAAwB,gBAAgB,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,wDAAiB,GAAG;AAChO,uBAAuB,+DAAwB,EAAE,4HAA4H;AAC7K,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,WAAW,6DAA6D,iQAAiQ,+MAA+M;AAC/hB,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,yEAAyE,gCAAgC,EAAE;AACpI,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,uDAAc,EAAE,uDAAc,yBAAyB,oDAAW,qIAAqI,eAAe,IAAI;AAChP,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,0MAA0M,uNAAuN,qWAAqW,gBAAgB,gFAAgF,iBAAiB,oCAAoC;AAC35B,wEAAwE,eAAe;AACvF,aAAa;AACb,KAAK,gBAAgB,UAAU,qBAAqB,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AACpH,kBAAkB,yDAAW;AAC7B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qCAAqC,+BAA+B;AACpE;AACA;AACA,+CAA+C;AAC/C,SAAS,wB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gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,uCAAuC;AACvG,0BAA0B,gEAAyB,EAAE,kDAAkD,kCAAkC,EAAE,EAAE;AAC7I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,cAAc;AACxC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,eAAe;AAC5C,6BAA6B,eAAe;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,0CAA0C,iBAAiB;AAC3D;AACA;AACA,uBAAuB,EAAE;AACzB,iDAAiD,qBAAqB;AACtE;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA,uDAAuD,wBAAwB;AAC/E;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,0CAA0C,kBAAkB;AAC5D;AACA;AACA,uBAAuB,EAAE;AACzB,iDAAiD,sBAAsB;AACvE;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,sCAAsC;AACpG,yBAAyB,gEAAyB,EAAE,iDAAiD,iCAAiC,EAAE,EAAE;AAC1I,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA,mCAAmC,UAAU,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,oDAAoD,4BAA4B;AAChF;AACA;AACA;AACA,mCAAmC,UAAU,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,oDAAoD,8BAA8B;AAClF;AACA;AACA;AACA,mCAAmC,UAAU,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mCAAmC,UAAU,kBAAkB;AAC/D;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mCAAmC,UAAU,kBAAkB;AAC/D;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,mBAAmB,EAAE;AACrB,8BAA8B,oDAAe;AAC7C;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,wBAAwB,iEAAS;AACjC;AACA;AACA;AACA;AACA,kDAAkD,WAAW;AAC7D,4DAA4D,qCAAqC;AACjG,wBAAwB,gEAAyB,EAAE,gDAAgD,gCAAgC,EAAE,EAAE;AACvI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC,CAAC,iEAAS;;AAEX;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,aAAa,gEAAiB;AAC9B;AACA,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,4BAA4B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,oBAAoB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,uBAAuB,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,kEAAkE,6BAA6B;AAC/F;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,oEAAoE,6BAA6B;AACjG;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA,oEAAoE,6BAA6B;AACjG;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,SAAS,yBAAyB;AAClC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,wBAAwB;AACjC,SAAS;AACT,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,eAAe,OAAO,mDAAK,EAAE;AAC7B,eAAe,OAAO,mDAAK,EAAE;AAC7B,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,mBAAmB,OAAO,oDAAM,EAAE;AAClC;AACA,oEAAoE,uCAAuC,+DAAwB,oBAAoB,+DAAwB,CAAC,+DAAwB,GAAG,+DAAwB,mBAAmB,+DAAwB,qBAAqB;AACnS,2BAA2B,+DAAwB,EAAE,kEAAkE,mdAAmd,YAAY,qBAAqB,aAAa,gEAAyB,wDAAwD,kEAA2B,8lBAA8lB;AACl0C,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,sEAAsE,sCAAsC,EAAE;AACvI,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,iFAAiF,qBAAqB,uEAAuE,EAAE,gGAAgG,6CAA6C,EAAE,oGAAoG,iDAAiD,EAAE,oFAAoF,6CAA6C,EAAE;AACjnB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uEAAuE,0CAA0C,EAAE;AAC5I,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,oDAAW,gCAAgC,4BAA4B,uBAAuB,mBAAmB,oBAAoB,2BAA2B,oCAAoC,OAAO,wBAAwB,yCAAyC,iCAAiC,iBAAiB,OAAO,0BAA0B,2CAA2C,mCAAmC,kBAAkB,OAAO,8BAA8B,oBAAoB,gCAAgC,OAAO,8CAA8C;AACnmB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iCAAiC,qEAAuB;AACxD;AACA,4ZAA4Z,MAAM,MAAM,0VAA0V,4WAA4W,MAAM,MAAM,kiBAAkiB,wVAAwV,OAAO,yeAAye,8WAA8W,OAAO,yeAAye,wXAAwX,MAAM,MAAM,+TAA+T,YAAY,iaAAia,MAAM,MAAM,sWAAsW,8WAA8W,MAAM,MAAM;AAC9pK,+BAA+B,+DAAiB;AAChD,6CAA6C,4BAA4B,uBAAuB,mBAAmB,oBAAoB,2BAA2B,oCAAoC,OAAO,wBAAwB,yCAAyC,iCAAiC,iBAAiB,OAAO,0BAA0B,2CAA2C,mCAAmC,kBAAkB,OAAO,8BAA8B,oBAAoB,gCAAgC,OAAO;AACjiB,aAAa;AACb,KAAK,gBAAgB,UAAU,yBAAyB,GAAG,OAAO,+DAAwB,EAAE,GAAG,wBAAwB,GAAG,0BAA0B,EAAE,EAAE,GAAG;AAC3J,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8DAAuB,EAAE,yBAAyB;AAC1E,wBAAwB,8DAAuB,EAAE,gDAAgD,sCAAsC,EAAE,aAAa,4DAAY,IAAI;AACtK,cAAc,oDAAoD,gEAAyB,oBAAoB,4BAA4B,8BAA8B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB,8BAA8B,EAAE,EAAE,EAAE,EAAE;AAC1R,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAE+I;;AAEhJ,oD;;;;;;;;;;;;AC7+CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0K;AAC3F;AAChC;AACyB;AACT;AAClC;AACkB;;AAE/C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACwC;AACiB;AACL;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mCAAmC;AAC3F,sBAAsB,gEAAyB,EAAE,8CAA8C,8BAA8B,EAAE,EAAE;AACjI,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mBAAmB,iEAAK;AACxB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,SAAS;AACT,MAAM;AACN,gFAAgF,6CAA6C,+DAAwB,iBAAiB;AACtK,iCAAiC,+DAAwB,EAAE,8LAA8L;AACzP,QAAQ,yDAAkB;AAC1B,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,6KAA6K;AACpL,QAAQ,6DAAsB;AAC9B,QAAQ,uDAAgB;AACxB,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK,EAAE,sCAAsC,uBAAuB,6BAA6B,OAAO,oEAAoE,0BAA0B,OAAO,2CAA2C,wBAAwB,OAAO,kFAAkF,oBAAoB,OAAO,2IAA2I,wBAAwB,OAAO,wBAAwB;AACtkB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,iCAAiC,qEAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,+CAA+C,uBAAuB,6BAA6B,OAAO,oCAAoC,0BAA0B,OAAO,gCAAgC,wBAAwB,OAAO,4DAA4D,oBAAoB,OAAO,2EAA2E,wBAAwB,OAAO;AAC/a,aAAa;AACb,KAAK,gBAAgB,UAAU,sBAAsB,EAAE,EAAE,QAAQ,EAAE;AACnE;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA,sBAAsB,2CAA2C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,YAAY,oEAAQ;AACpB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB,2BAA2B,kDAAK;AAChC,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,gBAAgB,yEAAa;AAC7B;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,qFAAsB,EAAE;AACxC,SAAS,sBAAsB;AAC/B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,4EAAkB;AAClC,MAAM;AACN;AACA,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,mBAAmB,OAAO,mDAAK,EAAE;AACjC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,uBAAuB,OAAO,mDAAK,0BAA0B;AAC7D,sBAAsB,OAAO,mDAAK,+BAA+B;AACjE,mBAAmB,OAAO,mDAAK,4BAA4B;AAC3D,mBAAmB,OAAO,mDAAK,4BAA4B;AAC3D,yBAAyB,OAAO,mDAAK,kCAAkC;AACvE,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,uBAAuB,OAAO,mDAAK,2BAA2B;AAC9D,2BAA2B,OAAO,mDAAK,6BAA6B;AACpE,8BAA8B,OAAO,mDAAK,gCAAgC;AAC1E,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,2BAA2B,OAAO,mDAAK,6BAA6B;AACpE,+BAA+B,OAAO,oDAAM,EAAE;AAC9C;AACA,IAAI,wDAAU;AACd,QAAQ,oEAAQ;AAChB,QAAQ,wDAAU;AAClB;AACA,8DAA8D,oCAAoC,+DAAwB,CAAC,8DAAuB,GAAG,+DAAwB,CAAC,qFAA6B,GAAG,+DAAwB,iBAAiB,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG,+DAAwB,CAAC,4EAAyB,GAAG;AACrY,wBAAwB,+DAAwB,EAAE,6FAA6F,ovBAAovB,YAAY,uHAAuH,4BAA4B;AACliC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG,OAAO,qFAA6B,EAAE,GAAG,sBAAsB,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,GAAG,OAAO,4EAAyB,EAAE,EAAE,EAAE,GAAG;AACtO,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uCAAuC,qFAAsB,EAAE,4EAAkB;AACjF;AACA;AACA,qBAAqB,8DAAuB,EAAE,sBAAsB;AACpE,qBAAqB,8DAAuB,EAAE,6CAA6C,mCAAmC,EAAE,aAAa,4DAAY,IAAI;AAC7J,cAAc,oDAAoD,gEAAyB,iBAAiB,4BAA4B;AACxI,mCAAmC,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB,2BAA2B,EAAE,EAAE,EAAE,EAAE;AACjJ,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAEoF;;AAErF,iD;;;;;;;;;;;;AChrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;;AAE1C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,2BAA2B;AACxD,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wBAAwB,2BAA2B,EAAE;AACrD;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,KAAK;AACL,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,kCAAkC,wBAAwB,EAAE;AAC5D,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,6BAA6B,EAAE;AACtD;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,6BAA6B,EAAE;AACpD,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,kCAAkC,wBAAwB,EAAE;AAC5D,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,sCAAsC,EAAE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,sCAAsC,EAAE;AACvE;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,mEAAmE,EAAE,OAAO;AAC5E,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,YAAY;AACZ;AACA,aAAa,iBAAiB,EAAE;AAChC,YAAY;AACZ;AACA,aAAa,aAAa,EAAE;AAC5B,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,wBAAwB;AAC1D;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qBAAqB;AAChD;AACA,6BAA6B,qCAAqC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,kBAAkB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,WAAW,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,SAAS,+DAAS;AAClB;AACA;AACA;AACA;AACA;AACA;;AAE+M;;AAE/M,+C;;;;;;;;;;;;ACx6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwL;AACzI;AACd;AACwB;AACP;;AAElD;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACwC;AACY;AACL;AACL;;AAE1C;AACA;AACA,wDAAwD;AACxD,gBAAgB,8DAAuB;AAC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B,wBAAwB;AACxB,wBAAwB;AACxB,wBAAwB;AACxB,yBAAyB;AACzB;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,mDAAmD,KAAK;AACxD,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,YAAY;AACnC,2BAA2B,WAAW;AACtC,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,uCAAuC,cAAc;AACrD,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,2CAA2C,cAAc;AACzD,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA,sBAAsB;AACtB,WAAW,EAmBV;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE,kBAAkB,EAAE;AAChD;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C,kCAAkC,0DAAY;AAC9C,+BAA+B,0DAAY;AAC3C,gCAAgC,0DAAY;AAC5C,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,wDAAwD,EAAE;AACpF;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,EAAE;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qCAAqC,EAAE;AAC5D;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,6CAA6C,EAAE;AACxE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,GAAG;AAC9C;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,6CAA6C,EAAE;AACxE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,qCAAqC,eAAe;AACpD;AACA,iBAAiB,+DAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ,EAAE,qHAAqH;AACxJ;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,sDAAQ,EAAE,kMAAkM;AACrO;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,yCAAyC,EAAE;AAC3C;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,qCAAqC,sDAAQ,GAAG;AAChD;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;A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AC5C;AACA,CAAC;;AAED;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,uDAAuD;AACvD,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,mBAAmB,uBAAuB;AAC1C;AACA;AACA,2BAA2B,aAAa;AACxC;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEA;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEmE;;AAEnE,6C;;;;;;;;;;;;ACz9DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACK;AACkC;AAC2J;AAC5K;AACjB;AACK;;AAEd;AACE;;AAE1C,4DAA4D;AAC5D,IAAI,4DAAqB;AACzB,IAAI,uDAAgB;AACpB,IAAI,uDAAgB;AACpB,IAAI,uDAAgB;AACpB,IAAI,uDAAgB;AACpB,IAAI,0DAAmB;AACvB,CAAC;AACD,oBAAoB,2DAAoB;AACxC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,yDAAkB;AACtB,CAAC;AACD;AACA,mCAAmC,4DAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA,6BAA6B,0DAAY;AACzC,6BAA6B,0DAAY;AACzC,8BAA8B,0DAAY;AAC1C,gCAAgC,0DAAY;AAC5C,gCAAgC,0DAAY;AAC5C,iCAAiC,0DAAY;AAC7C,+BAA+B,0DAAY;AAC3C,iCAAiC,0DAAY;AAC7C,+BAA+B,0DAAY;AAC3C,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA,8BAA8B,yEAAiB;AAC/C;AACA,yCAAyC;AACzC;AACA,qCAAqC,yDAAgB;AACrD,aAAa;AACb;AACA,qEAAqE;AACrE,sDAAsD;AACtD;AACA;AACA,+BAA+B,gEAAc;AAC7C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,gFAAgF,8BAA8B,EAAE;AAChH,oBAAoB,sDAAS;AAC7B,8BAA8B,gEAAS,MAAM,gEAAS;AACtD;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iDAAiD,yEAAiB;AAClE,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,yEAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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B,yCAAyC,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB,sDAAS;AAC7B,8BAA8B,gEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB,sDAAS;AAC7B,8BAA8B,gEAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB,kDAAK,CAAC,sDAAS;AACnC,8BAA8B,4DAAK,QAAQ,sDAAS;AACpD,8BAA8B,4DAAK,QAAQ,sDAAS;AACpD,8BAA8B,4DAAK,YAAY,sDAAS;AACxD,8BAA8B,4DAAK,aAAa,sDAAS;AACzD,8BAA8B,4DAAK,WAAW,sDAAS;AACvD,8BAA8B,4DAAK;AACnC,8BAA8B,gEAAS;AACvC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AAC3E,MAAM;AACN,IAAI,wD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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kDAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,6DAAM,eAAe,6BAA6B,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA,4DAA4D,sDAAQ,CAAC,sDAAQ,GAAG,aAAa,aAAa;AAC1G;AACA;AACA;AACA,6DAA6D,yBAAyB;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wBAAwB;AACtD,kCAAkC,cAAc;AAChD;AACA;AACA,6DAA6D,0BAA0B;AACvF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,8BAA8B,wEAAkB,EAAE,gDAAgD,gCAAgC,EAAE,gDAAgD;AACpL,wBAAwB,wDAAU,GAAG,wDAAU;AAC/C;AACA,gEAAgE,uCAAuC;AACvG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAS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AAC;AACvB,GAAG,MAAM,EAGN;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO,IAAI;AACX;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,4BAA4B;AAChE;AACA,CAAC;;;;;;;;;;;;;ACnSD;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,yEAAyE,iCAAiC;AAC1G;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B,EAAE;AACtD,wBAAwB,0BAA0B,EAAE;AACpD;AACA,GAAG;AACH;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD,6BAA6B,+BAA+B,EAAE;AAC9D,GAAG;AACH;;AAEA;AACA;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,wEAAwE,EAAE;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0BAA0B,WAAW,qBAAqB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,0CAA0C;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,oDAAoD,+BAA+B,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,sBAAsB,EAAE;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yEAAyE,mBAAmB;AAC5F;AACA;AACA;AACA;AACA;AACA,yEAAyE,mBAAmB;AAC5F;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,wDAAwD,4BAA4B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH,wDAAwD,4BAA4B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,oCAAoC,mCAAmC;AACvE,sCAAsC,2EAA2E;;AAEjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;;AAE3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,+CAA+C;AAC1E,0BAA0B,kDAAkD;;AAE5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA,4BAA4B,cAAc;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,yDAAyD,sCAAsC,EAAE;;AAEjG,qDAAqD;AACrD,2CAA2C;AAC3C,wDAAwD,2BAA2B,EAAE;AACrF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,mBAAmB;AAC/C,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kBAAkB;AAC9C,4BAA4B,kBAAkB;;AAE9C;;AAEA;AACA;;AAEA,4BAA4B,cAAc;AAC1C,4BAA4B,cAAc;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,qCAAqC,EAAE;AACpE;AACA;;AAEe,+EAAgB,EAAC;AAChC;;;;;;;;;;;;;AC5zCA;AAAA;AAAA;AAAA;AAAiD;AACjD,iC;;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yCAAyC;AACtG,+DAA+D,yCAAyC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,yBAAyB,MAAM,wBAAwB;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA,gEAAgE,uDAAuD,EAAE;AACzH;AACA;AACA,0DAA0D,uBAAuB,EAAE;AACnF;AACA;AACA,mDAAmD,qCAAqC,EAAE;AAC1F;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6BAA6B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAA6B,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uC;;;;;;;;;;;;ACtNA;AAAA;AAAA;AA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2BAA2B,0DAAY;AACvC,2BAA2B,0DAAY;AACvC,0BAA0B,0DAAY;AACtC,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,sBAAsB,uEAAiB;AACvC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAU;AAC7C;AACA,wBAAwB,sDAAU;AAClC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,yDAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,sDAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B,0CAA0C,sDAAU;AACpD;AACA;AACA;AACA,4BAA4B,yDAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA,0DAA0D,uBAAuB,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,yDAAW;AAC9D;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6EAA6E,UAAU;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD,oBAAoB,yDAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD,oBAAoB,yDAAW;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,yDAAW;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;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AE,2DAAY,EAAE,wDAAY;AACnF,wCAAwC,wDAAY;AACpD;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEyE;;AAEzE,gD;;;;;;;;;;;;AC1lCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwG;AAC/D;AACM;;AAEP;AACE;;AAE1C,6BAA6B,SAAS,+EAA+E;AACrH,0CAA0C;AAC1C,IAAI,uDAAgB;AACpB,CAAC;AACD,iBAAiB,2DAAoB;AACrC,IAAI,wDAAiB;AACrB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,CAAC;AACD,6CAA6C,SAAS,0OAA0O;AAChS;AACA,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA,wBAAwB,sDAAU;AAClC,wBAAwB,sDAAU;AAClC;AACA;AACA,wBAAwB,sDAAU;AAClC,wBAAwB,sDAAU;AAClC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA,4DAA4D,mCAAmC,+DAAwB,CAAC,wDAAiB,GAAG;AAC5I,uBAAuB,+DAAwB,EAAE,mEAAmE,yFAAyF,EAAE;AAC/M,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,2BAA2B,0DAAY;AACvC,0BAA0B,0DAAY;AACtC;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,4DAAM;AACd;AACA;AACA,QAAQ,4DAAM;AACd;AACA;AACA,QAAQ,4DAAM;AACd;AACA,0CAA0C,4BAA4B;AACtE,cAAc,+DAAwB,EAAE,mDAAmD,iIAAiI,YAAY,2DAA2D,kQAAkQ;AACriB,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,oEAAoE,iCAAiC,EAAE,qEAAqE,iCAAiC,EAAE,mEAAmE,gCAAgC,EAAE;AAC7U,QAAQ,0DAAmB;AAC3B,QAAQ,wDAAiB;AACzB,QAAQ,4DAAqB;AAC7B,QAAQ,oDAAa;AACrB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB,4DAA4D,6DAAsB;AAC3G,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,+DAAwB;AAChC,KAAK,EAAE,eAAe,uDAAc,EAAE,uDAAc,EAAE,oDAAW,qBAAqB;AACtF,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,+JAA+J,ofAAof,qMAAqM,oKAAoK,iMAAiM,iBAAiB;AAC9sC,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,GAAG;AACrC,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA,oBAAoB,8DAAuB,EAAE,qBAAqB;AAClE,oBAAoB,8DAAuB,EAAE,4CAA4C,kCAAkC,EAAE,aAAa,4DAAY,IAAI;AAC1J,cAAc,oDAAoD,gEAAyB,gBAAgB,4BAA4B;AACvI,gBAAgB,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB;AAC3F,gBAAgB,EAAE,EAAE,EAAE,EAAE;AACxB,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEiD;;AAEjD,0C;;;;;;;;;;;;ACrQA;AAAA;AAAA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2DAA2D;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2DAA2D;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2HAA2H,6BAA6B;AACxJ;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEsB;;AAEtB,uC;;;;;;;;;;;;AC3dA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmF;AACwF;AAC1F;AAClC;AAC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kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC,2BAA2B,0DAAY;AACvC,0BAA0B,0DAAY;AACtC,2BAA2B,0DAAY;AACvC,0BAA0B,0DAAY;AACtC,0BAA0B,0DAAY;AACtC,0CAA0C;AAC1C,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0CAA0C,yDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sDAAU;AACzC;AACA,gBAAgB,sDAAU,iCAAiC,sDAAU;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAU;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAU;AAC9C;AACA;AACA,4EAA4E,sDAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,sDAAU;AACzD;AACA,4BAA4B,sDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B,0CAA0C,sDAAU;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,4CAA4C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,WAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mIAAmI;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kCAAkC;AAC5E,kFAAkF,2CAA2C;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD,mCAAmC,0FAA0F;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C,8DAA8D,yDAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,gBAAgB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,UAAU;AACnF;AACA,iDAAiD,yDAAW;AAC5D;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA,wCAAwC,yDAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE,oEAAoE,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE,oEAAoE,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,oBAAoB,EAAE;AAChG;AACA,mHAAmH,2BAA2B;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,yBAAyB,kEAAa;AACtC;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB,kEAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2CAA2C;AAC5F;AACA;AACA,gDAAgD,qBAAqB;AACrE;AACA;AACA;AACA,yBAAyB,kEAAa;AACtC;AACA;AACA;AACA,+CAA+C,iDAAiD;AAChG;AACA;AACA;AACA,aAAa;AACb;AACA,oCAAoC,mCAAmC;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gDAAgD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,EAAE;AACzE,qEAAqE,EAAE;AACvE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,sEAAY,EAAE;AAC9B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAU;AAC1B,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DA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wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB,YAAY,6DAAsB;AACvD,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,CAAC;AACD,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA,2CAA2C,YAAY,KAAK,WAAW;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gFAAgF,UAAU;AAC1F;AACA;AACA,oDAAoD,kDAAkD;AACtG;AACA;AACA,oDAAoD,iCAAiC;AACrF;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,UAAU;AACtF;AACA,kDAAkD,yDAAW;AAC7D;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,0CAA0C,yDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iDAAiD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qCAAqC,yDAAW;AAChD,qCAAqC,yDAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,qBAAqB,yDAAW;AAChC,qBAAqB,yDAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAU;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yDAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8BAA8B,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA,iDAAiD,iEAAiE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,wFAAwF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iEAAiE;AACtH;AACA;AACA;AACA;AACA,mDAAmD,wFAAwF;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,8BAA8B,EAAE;AACvH;AACA,qDAAqD,iEAAiE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wFAAwF;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2EAA2E;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,yDAAW;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,6DAA6D;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA,yDAAyD,yDAAW;AACpE;AACA;AACA;AACA,uCAAuC,wDAAwD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,4BAA4B,EAAE;AACzG,uDAAuD,yDAAW;AAClE;AACA;AACA;AACA,uCAAuC,wDAAwD;AAC/F;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,yDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gGAAgG;AACnI;AACA;AACA,0CAA0C,yDAAW;AACrD;AACA;AACA;AACA;AACA;AACA,qCAAqC,gGAAgG;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yDAAW;AAC5D;AACA;AACA;AACA,uEAAuE,8BAA8B,EAAE;AACvG;AACA,qCAAqC,6FAA6F;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,6FAA6F;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uCAAuC;AACjF;AACA;AACA;AACA;AACA;AACA,0EAA0E,yDAAW;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yDAAW;AAC5D,mDAAmD,yDAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA,0CAA0C,yDAAW,mCAAmC,yDAAW;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD;AACA;AACA,mCAAmC,yDAAW;AAC9C;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4BAA4B,cAAc;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAU;AAC9B;AACA,+CAA+C,qHAAqH;AACpK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yDAAW;AAC7C;AACA;AACA;AACA,YAAY,sDAAU;AACtB,sCAAsC,yDAAW;AACjD;AACA;AACA;AACA;AACA,kCAAkC,yDAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,yDAAW;AAC7C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yDAAW;AACtD;AACA;AACA,0CAA0C,yDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAU;AACtC;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAU;AACtC,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,sDAAU;AAChE,wDAAwD,sDAAU;AAClE,wDAAwD,sDAAU;AAClE,oDAAoD,sDAAU;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA,6BAA6B,sDAAU;AACvC,+BAA+B,sDAAU;AACzC,+BAA+B,sDAAU;AACzC,kCAAkC,sDAAU;AAC5C,oCAAoC,sDAAU;AAC9C,oCAAoC,sDAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,wEAAwE,sDAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAU;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAU;AAC1C,iCAAiC,sDAAU;AAC3C;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,kCAAkC,sDAAU;AAC5C,mCAAmC,sDAAU;AAC7C;AACA,gCAAgC,sDAAU;AAC1C,gCAAgC,sDAAU;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAU;AACtC,4BAA4B,sDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yDAAW;AAC3B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,uBAAuB,sDAAU,6BAA6B,sDAAU;AACxE;AACA,iCAAiC,sDAAU;AAC3C;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA,oBAAoB,sDAAU;AAC9B;AACA,oBAAoB,sDAAU;AAC9B;AACA;AACA;AACA,oBAAoB,sDAAU;AAC9B;AACA,oBAAoB,sDAAU;AAC9B;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA,QAAQ,sDAAU;AAClB,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAW;AACvB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sDAAsD,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAU;AAChC,uCAAuC,oBAAoB,sDAAU,wBAAwB,EAAE;AAC/F;AACA;AACA,iDAAiD,sDAAU;AAC3D,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAU;AAC3C,+BAA+B,sDAAU;AACzC,sDAAsD,iDAAiD,EAAE;AACzG,oDAAoD,iDAAiD,EAAE;AACvG;AACA;AACA,8BAA8B,sDAAU;AACxC,sDAAsD,oDAAoD,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,4DAA4D,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;A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;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,oDAAM;AACxB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAk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Cb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAU;AAC7C,sCAAsC,sDAAU;AAChD;AACA,6CAA6C,sDAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF,0CAA0C,sDAAU;AACpD;AACA;AACA;AACA,0CAA0C,sDAAU;AACpD;AACA;AACA,yCAAyC,sDAAU;AACnD;AACA,6DAA6D;AAC7D;AACA;AACA,4CAA4C,sDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAU,2DAA2D,sDAAU;AAC9F;AACA;AACA;AACA,8DAA8D,sDAAU;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS,cAAc;AACvB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,+DAAS;AACjB;AACA;AACA,QAAQ,+DAAS;AACjB;AACA;AACA,QA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ACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,SAAS;AACT,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA,8CAA8C,4BAA4B,+DAAwB,SAAS;AAC3G,gBAAgB,+DAAwB,EAAE,uDAAuD,iBAAiB,2IAA2I;AAC7P,QAAQ,uDAAgB;AACxB,KAAK;AACL,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,KAAK,EAAE,eAAe,uDAAc,qBAAqB;AACzD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,gGAAgG,4FAA4F;AAC5L,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,EAAE,EAAE,GAAG;AACpD,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QA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EAAE,EAAE,GAAG;AACzG,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,SAAS;AACT,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,kEAAY;AACpB;AACA,kDAAkD,8BAA8B,+DAAwB,SAAS;AACjH,kBAAkB,+DAAwB,EAAE,kHAAkH;AAC9J,QAAQ,wDAAiB,gEAAgE,4BAA4B,EAAE;AACvH,KAAK,EAAE,WAAW,4EAA4E,EAAE;AAChG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,EAAE,EAAE,GAAG;AACpD,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,cAAc;AACvB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA,4DAA4D,mCAAmC,+DAAwB,SAAS,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AACtN,uBAAuB,+DAAwB,EAAE,4EAA4E,uDAAuD,EAAE;AACtL,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AAC1G,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,sDAAU;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,cAAc;AACvB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,kEAAY;AACpB;AACA,gEAAgE,qCAAqC,+DAAwB,SAAS,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AAC5N,yBAAyB,+DAAwB,EAAE,uIAAuI;AAC1L,QAAQ,wDAAiB,qEAAqE,2BAA2B,EAAE;AAC3H,KAAK,EAAE,WAAW,2DAA2D,EAAE;AAC/E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AAC1G,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB,iCAAiC,2DAA2D;AAC5F;AACA;AACA;AACA,uCAAuC,sDAAU;AACjD;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,yCAAyC,6GAA6G;AACtJ;AACA,uCAAuC,6GAA6G;AACpJ,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS,cAAc;AACvB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,kEAAY;AACpB;AACA;AACA,QAAQ,kEAAY;AACpB;AACA;AACA,QAAQ,kEAAY;AACpB;AACA;AACA,QAAQ,kEAAY;AACpB,QAAQ,kEAAY;AACpB,QAAQ,kEAAY;AACpB;AACA,0DAA0D,kCAAkC,+DAAwB,SAAS,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AACnN,sBAAsB,+DAAwB,EAAE,8HAA8H;AAC9K,QAAQ,wDAAiB,oEAAoE,4BAA4B,EAAE,qFAAqF,mCAAmC,EAAE,uFAAuF,oCAAoC,EAAE,iFAAiF,mCAAmC,EAAE,6FAA6F,mCAAmC,EAAE,2FAA2F,mCAAmC,EAAE;AAC1uB,KAAK,EAAE,WAAW,+NAA+N,EAAE;AACnP,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AAC1G,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA,oDAAoD,+BAA+B,+DAAwB,CAAC,wDAAiB,GAAG;AAChI,mBAAmB,+DAAwB,EAAE,oEAAoE,+EAA+E,EAAE;AAClM,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,kEAAY;AACpB;AACA,4DAA4D,mCAAmC,+DAAwB,SAAS,+DAAwB,eAAe;AACvK,uBAAuB,+DAAwB,EAAE,iIAAiI;AAClL,QAAQ,wDAAiB,qEAAqE,4BAA4B,EAAE;AAC5H,KAAK,EAAE,EAAE;AACT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,oBAAoB,EAAE,EAAE,GAAG;AAC3E,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,kEAAY;AACpB;AACA,4DAA4D,mCAAmC,+DAAwB,SAAS,+DAAwB,eAAe;AACvK,uBAAuB,+DAAwB,EAAE,iIAAiI;AAClL,QAAQ,wDAAiB,qEAAqE,4BAA4B,EAAE;AAC5H,KAAK,EAAE,EAAE;AACT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,oBAAoB,EAAE,EAAE,GAAG;AAC3E,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,kEAAY;AACpB;AACA,gEAAgE,qCAAqC,+DAAwB,SAAS,+DAAwB,eAAe;AAC7K,yBAAyB,+DAAwB,EAAE,uIAAuI;AAC1L,QAAQ,wDAAiB,uEAAuE,4BAA4B,EAAE;AAC9H,KAAK,EAAE,EAAE;AACT,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,oBAAoB,EAAE,EAAE,GAAG;AAC3E,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL,6CAA6C;AAC7C,SAAS,cAAc;AACvB,SAAS,qCAAqC,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,kCAAkC,OAAO,sDAAQ,EAAE;AAC5D,MAAM;AACN;AACA,QAAQ,qEAAe,CAAC,yDAAa;AACrC;AACA,yCAAyC,8DAAQ,gBAAgB,8DAAQ;AACzE;AACA,kDAAkD,8BAA8B,+DAAwB,SAAS,+DAAwB,qBAAqB,+DAAwB,kBAAkB;AACxM,kBAAkB,+DAAwB,EAAE,yHAAyH;AACrK,QAAQ,4DAAqB,WAAW,yDAAa;AACrD,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,sHAAsH;AAC7H,QAAQ,wDAAiB;AACzB,QAAQ,wDAAiB;AACzB,KAAK;AACL,QAAQ,wDAAiB;AACzB,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,oDAAW,EAAE,gEAAuB,qBAAqB;AAC/E,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG;AAChD,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,GAAG;AACnB,sBAAsB,sDAAQ;AAC9B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,6DAAe;AACjC,mBAAmB,yDAAa;AAChC,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,+DAAS;AACjB;AACA,8DAA8D,oCAAoC,+DAAwB,SAAS,+DAAwB,gBAAgB;AAC3K,wBAAwB,+DAAwB,EAAE,mHAAmH;AACrK,QAAQ,yDAAkB;AAC1B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,iHAAiH,iVAAiV;AACpd,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,2EAA2E,4BAA4B,EAAE;AAClI,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,uEAAuE,sBAAsB,EAAE,sEAAsE,qBAAqB,EAAE;AACrN,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,KAAK,EAAE,eAAe,uDAAc,qBAAqB;AACzD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,ubAAub,+HAA+H,kIAAkI,0BAA0B;AACltB,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,qBAAqB,EAAE,EAAE,GAAG;AAC5E,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,+DAAS;AACjB;AACA,wDAAwD,iCAAiC,+DAAwB,SAAS,+DAAwB,gBAAgB;AAClK,qBAAqB,+DAAwB,EAAE,0GAA0G;AACzJ,QAAQ,yDAAkB;AAC1B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,uIAAuI,0UAA0U;AACne,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,wEAAwE,4BAA4B,EAAE;AAC/H,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,oEAAoE,sBAAsB,EAAE,mEAAmE,qBAAqB,EAAE;AAC/M,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,KAAK,EAAE,eAAe,uDAAc,qBAAqB;AACzD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,kdAAkd,0HAA0H,gIAAgI,sBAAsB;AACluB,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,qBAAqB,EAAE,EAAE,GAAG;AAC5E,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,uDAAS;AAC3B;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA,QAAQ,sDAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,UAAU;AACxF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,sDAAsD;AACtD,SAAS,cAAc;AACvB,SAAS;AACT,MAAM;AACN;AACA,QAAQ,+DAAS;AACjB;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA,oEAAoE,uCAAuC,+DAAwB,SAAS,+DAAwB,gBAAgB;AACpL,2BAA2B,+DAAwB,EAAE,4HAA4H;AACjL,QAAQ,yDAAkB;AAC1B,KAAK;AACL;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,KAAK,EAAE,WAAW,iFAAiF,4VAA4V;AAC/b,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,8EAA8E,4BAA4B,EAAE;AACrI,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,wDAAiB,0EAA0E,sBAAsB,EAAE,yEAAyE,qBAAqB,EAAE;AAC3N,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,4DAAqB;AAC7B,QAAQ,uDAAgB;AACxB,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB;AACzB,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,QAAQ,yDAAkB;AAC1B,QAAQ,uDAAgB;AACxB,QAAQ,wDAAiB,YAAY,6DAAsB;AAC3D,KAAK,EAAE,eAAe,uDAAc,qBAAqB;AACzD,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,6bAA6b,+HAA+H,gIAAgI,sBAAsB;AACltB,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,qBAAqB,EAAE,EAAE,GAAG;AAC5E,kBAAkB,uDAAS;AAC3B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB;AACA,uDAAuD;AACvD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA,sEAAsE,wCAAwC,+DAAwB,CAAC,wDAAiB,GAAG;AAC3J,4BAA4B,+DAAwB,EAAE,sFAAsF,4CAA4C,EAAE;AAC1L,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,EAAE,EAAE,GAAG;AAChE,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,SAAS,cAAc;AACvB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,kEAAY;AACpB;AACA,0DAA0D,kCAAkC,+DAAwB,SAAS,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AACnN,sBAAsB,+DAAwB,EAAE,8HAA8H;AAC9K,QAAQ,wDAAiB,kEAAkE,2BAA2B,EAAE;AACxH,KAAK,EAAE,WAAW,0FAA0F,EAAE;AAC9G,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,cAAc,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AAC1G,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA,mBAAmB,8DAAuB,EAAE,oBAAoB;AAChE,mBAAmB,8DAAuB,EAAE,2CAA2C,iCAAiC,EAAE,aAAa,4DAAY,EAAE,iEAAe;AACpK,QAAQ,wDAAY,GAAG;AACvB,cAAc,oDAAoD,gEAAyB,eAAe,4BAA4B;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,iEAAe,EAAE,EAAE,wBAAwB;AACvH,QAAQ,wDAAY;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,EAAE,EAAE,EAAE;AACnC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY,EAAE,iEAAe;AACvD,iCAAiC,wDAAY;AAC7C;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEiY;;AAEjY,yC;;;;;;;;;;;;ACvkJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+E;AAChC;AACN;;AAED;AACxC,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,cAAc,EAAE;AACvE;AACA;AACA;AACA;AACA,uDAAuD,cAAc,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,uDAAuD,cAAc,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAU;AACtB;AACA,YAAY,sDAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sDAAU;AAClB;AACA,4CAA4C,sDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAU;AACrD,yCAAyC,sDAAU;AACnD,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAU;AAC/C,oCAAoC,sDAAU,yCAAyC,sDAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAU;AAC/C,oCAAoC,sDAAU,yCAAyC,sDAAU;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAU,wCAAwC,sDAAU;AAClG,mCAAmC,sDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAU,wCAAwC,sDAAU;AAClG,mCAAmC,sDAAU;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sDAAU;AAC9B,qBAAqB,sDAAU;AAC/B,uBAAuB,sDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA;AACA,QAAQ,2DAAK;AACb;AACA,4CAA4C,2BAA2B,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,oDAAa,GAAG;AAC7J,eAAe,+DAAwB,EAAE,4DAA4D,wVAAwV,EAAE;AAC/b,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,oDAAa,EAAE,EAAE,EAAE,GAAG;AACzF,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS;AACT,kBAAkB,mDAAK;AACvB,SAAS,GAAG,EAAE,EAAE;AAChB;AACA,CAAC;AACD;AACA;AACA;AACA,qBAAqB,8DAAuB,EAAE,sBAAsB;AACpE,qBAAqB,8DAAuB,EAAE,6CAA6C,mCAAmC,EAAE,aAAa,4DAAY,IAAI;AAC7J,cAAc,oDAAoD,gEAAyB,iBAAiB,4BAA4B,kBAAkB,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB,kBAAkB,EAAE,EAAE,EAAE,EAAE;AAC/P,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;AAC5C;AACA,CAAC;;AAED;AACA;AACA;;AAEkC;;AAElC,2C;;;;;;;;;;;;ACtaA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAAgB,SAAI,IAAI,SAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,WAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,SAAS;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,eAAe;AACtF;AACA,sCAAsC,yDAAyD;AAC/F;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,kBAAkB,SAAI,IAAI,SAAI;AAC9B;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,iBAAiB;AAClG;AACA;AACA,6GAA6G,kBAAkB;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE+D;;AAE/D,yC;;;;;;;;;;;AC/WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAoD,oBAAoB,SAAoE,CAAC,iBAAiB,aAAa,OAAO,QAAQ,4rBAA4rB,cAAc,iFAAiF,gBAAgB,aAAa,oGAAoG,KAAK,gBAAgB,8EAA8E,gBAAgB,YAAY,WAAW,KAAK,WAAW,+GAA+G,kBAAkB,uCAAuC,gBAAgB,4GAA4G,0CAA0C,aAAa,qCAAqC,YAAY,cAAc,iEAAiE,6CAA6C,KAAK,gBAAgB,8CAA8C,uBAAuB,OAAO,gBAAgB,+DAA+D,oGAAoG,SAAS,MAAM,iBAAiB,cAAc,mJAAmJ,aAAa,kCAAkC,oGAAoG,EAAE,+CAA+C,4CAA4C,4FAA4F,uIAAuI,2SAA2S,OAAO,UAAU,EAAE,yCAAyC,6LAA6L,iCAAiC,yBAAyB,sBAAsB,4BAA4B,cAAc,kEAAkE,KAAK,iFAAiF,GAAG,EAAE,2BAA2B,kCAAkC,EAAE,2BAA2B,wZAAwZ,KAAK,gBAAgB,aAAa,UAAU,kBAAkB,oCAAoC,mBAAmB,EAAE,+BAA+B,mBAAmB,EAAE,iCAAiC,0BAA0B,EAAE,mCAAmC,kCAAkC,mBAAmB,EAAE,iCAAiC,uBAAuB,EAAE,sCAAsC,oHAAoH,KAAK,mBAAmB,sBAAsB,eAAe,aAAa,oDAAoD,oBAAoB,mCAAmC,wCAAwC,EAAE,iCAAiC,qCAAqC,iJAAiJ,GAAG,EAAE,8BAA8B,WAAW,KAAK,iBAAiB,aAAa,oDAAoD,oBAAoB,mCAAmC,iFAAiF,EAAE,wCAAwC,qCAAqC,GAAG,UAAU,IAAI,sCAAsC,EAAE,uCAAuC,WAAW,uGAAuG,OAAO,gLAAgL,kFAAkF,mHAAmH,kBAAkB,sCAAsC,8BAA8B,EAAE,oBAAoB,0DAA0D,EAAE,oBAAoB,0DAA0D,GAAG,EAAE,+BAA+B,KAAK,iBAAiB,aAAa,oDAAoD,oBAAoB,mCAAmC,qDAAqD,EAAE,iCAAiC,8EAA8E,mBAAmB,KAAK,iBAAiB,aAAa,oDAAoD,oBAAoB,mCAAmC,8EAA8E,EAAE,iCAAiC,gNAAgN,EAAE,6BAA6B,iDAAiD,KAAK,iBAAiB,aAAa,oDAAoD,oBAAoB,mCAAmC,+CAA+C,EAAE,iCAAiC,wEAAwE,mBAAmB,EAAE,8BAA8B,YAAY,KAAK,GAAG,sBAAsB,cAAc,kDAAkD,oDAAoD,8EAA8E,sBAAsB,8DAA8D,aAAa,2CAA2C,kCAAkC,eAAe,kGAAkG,uEAAuE,KAAK,mFAAmF,wBAAwB,SAAS,UAAU,EAAE,yCAAyC,sBAAsB,qDAAqD,EAAE,4CAA4C,SAAS,sFAAsF,EAAE,+CAA+C,aAAa,UAAU,eAAe,2BAA2B,kBAAkB,yBAAyB,kCAAkC,UAAU,eAAe,EAAE,mDAAmD,kDAAkD,oGAAoG,yBAAyB,wEAAwE,8CAA8C,EAAE,4CAA4C,oBAAoB,UAAU,eAAe,sEAAsE,wCAAwC,mCAAmC,SAAS,oDAAoD,kFAAkF,uCAAuC,EAAE,+OAA+O,aAAa,gEAAgE,gOAAgO,KAAK,yCAAyC,KAAK,OAAO,SAAS,EAAE,iCAAiC,aAAa,0DAA0D,6CAA6C,IAAI,yBAAyB,SAAS,MAAM,eAAe,uCAAuC,yBAAyB,mBAAmB,8BAA8B,EAAE,iBAAiB,EAAE,6BAA6B,UAAU,wEAAwE,UAAU,EAAE,8BAA8B,MAAM,yIAAyI,EAAE,6BAA6B,WAAW,sGAAsG,UAAU,EAAE,iCAAiC,SAAS,+FAA+F,UAAU,EAAE,+BAA+B,uGAAuG,EAAE,+BAA+B,UAAU,gBAAgB,gEAAgE,gLAAgL,KAAK,8CAA8C;AAC/sW;;;;;;;;;;;;;ACtCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA,iCAAiC,YAAY;AAC7C,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,6BAA6B,EAAE,aAAa;AAC5G,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8CAA8C;AAC9C,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAA2C;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;AC/5BrB;AACA;AACA;AACA;AACa;;AAEb,gBAAgB,mBAAO,CAAC,qEAAkB;;AAE1C;;AAEA;;AAEA;;AAEA;;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACa;;AAEb;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA,sDAAsD,EAAE,sBAAsB;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;;;;;;;;;;;ACnKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACmD;AACiC;AACnB;AACP;AACb;AACgB;AACJ;AACF;AACW;AACG;AACA;AAC2B;AACA;AAC/C;AACM;AACJ;AACsB;AAC7B;AACA;AACQ;AACQ;AACsB;AAC1B;AAC0B;AACR;AACd;AACM;AACQ;AACN;AACd;AACF;AACA;AACM;AACR;AACU;AACc;AAChB;AACV;AACU;AACN;AACA;AACN;AAC8B;AACxB;AACQ;AACV;AACE;AACU;AACV;AACA;AACJ;AACW;AACP;AACA;AACT;AAC3C;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACG;AACU;AAC9C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gDAAO;AACe;AACxB;;;;;;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACG;AACqC;AACzE;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gDAAO;AACkB;AAC3B;;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAA;AACiC;AACS;AAC1C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACe;AAC3B;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACN;AACgB;AAC9C;AACP;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yDAAE;AACzB;AACA,uBAAuB,yEAAU;AACjC;AACA,uBAAuB,+DAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;;;;;;;;;;;;;AC3EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACuD;AACJ;AACmB;AAC1B;AACV;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uEAAY;AAC/B;AACA;AACA;AACA;AACA,qCAAqC,8CAAM;AAC3C;AACA;AACA;AACA,YAAY,8CAAM;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAM;AACtB;AACA;AACA;AACA,gBAAgB,2EAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB,6DAAiB;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,gEAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB,EAAE,kBAAkB,oBAAoB,EAAE,eAAe,uBAAuB,EAAE;AAC9I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACqB;AACtB;AACA;AACA,sBAAsB,8CAAM;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnHA;AAAA;AAAA;AAAA;AAAA;AACkC;AACuB;AAClD;AACP;AACA,4BAA4B,EAAE;AAC9B;AACA,YAAY,8CAAM;AAClB;AACA;AACA;AACA,YAAY,6EAAe;AAC3B;AACA,KAAK;AACL,2BAA2B;AAC3B;AACA;;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AACiC;AACS;AAC1C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACe;AAC3B;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACG;AACM;AACI;AACc;AACa;AACb;AAC5D;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA,+BAA+B,wEAAmB;AAClD;AACA;AACA,4CAA4C,wEAAmB;AAC/D;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gDAAO;AACgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpHA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mBAAmB;AACpD;AACA,CAAC;AACoB;AACrB;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACS;AACA;AACI;AAC2B;AACb;AACyB;AACrF;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACiB;AAC7B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAkB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA,uBAAuB,wEAAmB;AAC1C;AACA;AACA;AACA,6BAA6B,sDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACO;AACnB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0DAAY;AAC/B;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;;;;;;;;;;;;;AC7JA;AAAA;AAAA;AAAA;AAAA;AACiC;AACa;AAC9C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0DAAY;AACiB;AAC/B;;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACc;AACK;AACN;AACuC;AACnD;AACuB;AACzD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+CAAa;AACjD;AACA;AACA;AACA,wCAAwC,+CAAa;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0EAAkB,iBAAiB,aAAa;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0DAAY;AACQ;AACtB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,YAAY,mEAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+CAAa;AAChD;AACA,oBAAoB,mEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8CAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8CAAM;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6EAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6CAA6C;AAChG,qBAAqB,8CAAM;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAM;AACtB;AACA;AACA;AACA,gBAAgB,6EAAe;AAC/B;AACA;AACA;AACA;AACA,aAAa,8CAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAAM;AACtB;AACA;AACA;AACA;AACA;AACA,gBAAgB,6EAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;;;;;;;;;;;;;ACxOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACyC;AACE;AACI;AACkB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA,YAAY,mEAAU;AACtB;AACA;AACA;AACA;AACA,sCAAsC,6EAAmB;AACzD;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA;AACA;AACA,oBAAoB,+DAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,yCAAyC,6EAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,6EAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACuB;AACxB;AACA,+CAA+C,oCAAoC,6EAAmB,sBAAsB,EAAE;AAC9H;AACA;;;;;;;;;;;;;ACvIA;AAAA;AAAA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACc;AACJ;AACA;AACI;AACyB;AACxE;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0DAAY;AAC5D;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAmB;AAClC;AACA;AACA,CAAC,CAAC,sDAAU;AACqB;AAC1B;AACP;AACA;AACA,mBAAmB,cAAc;AACjC,oBAAoB,2BAA2B;AAC/C,mBAAmB,8BAA8B;AACjD,sBAAsB,8BAA8B;AACpD,qBAAqB,qCAAqC;AAC1D,sBAAsB,sDAAsD;AAC5E,qBAAqB,qCAAqC;AAC1D,kBAAkB,kCAAkC;AACpD,mBAAmB;AACnB;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0DAAiB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC7IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACF;AACK;AAC9C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAS;AACtB;AACA;AACA;AACA,8BAA8B,oDAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oDAAI;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC,CAAC,sDAAU;AACqB;AACjC;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACR;AACiB;AACd;AACQ;AAC3C;AACP;AACA,YAAY,qEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA,sFAAsF,0DAAG,kBAAkB,QAAQ,6DAAO,mEAAmE,EAAE;AAC/L;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAU;AAC7B;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA,2DAA2D,iCAAiC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACR;AACiB;AACN;AACR;AACnC;AACP;AACA,YAAY,qEAAW;AACvB;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA,0FAA0F,0DAAG,kBAAkB,QAAQ,6DAAO,mEAAmE,EAAE;AACnM;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAU;AAC7B;AACA;AACA;AACA;AACA,mDAAmD,0DAAY;AAC/D;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2EAAc;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2DAA2D;AACnH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA,gEAAgE,6BAA6B;AAC7F;AACA;AACA;AACA,+DAA+D,iCAAiC;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6BAA6B;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AChHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACiB;AACR;AACW;AACS;AACtB;AACxC;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,QAAQ,qEAAW;AACnB;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAO;AAC3C;AACA;AACA,WAAW,4DAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgC;AACjC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACkB;AACnC;;;;;;;;;;;;;ACpGA;AAAA;AAAA;AAAA;AAAA;AAC0B;AACyB;AAC5C;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,WAAW,sEAAS,GAAG,sCAAE;AACzB;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACb;AACE;AACzB;AACP,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kDAAI,UAAU,oDAAK;AAChD;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACpC,8BAA8B,sDAAU,wBAAwB,8BAA8B,EAAE;AAChG;AACP;AACA;AACA;AACA,eAAe,sDAAU,wBAAwB,wCAAwC,8BAA8B,EAAE,EAAE,EAAE;AAC7H;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACD;AACH;AACK;AACd;AACvB;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA,YAAY,+DAAQ;AACpB;AACA,6DAA6D,qBAAqB,EAAE;AACpF;AACA;AACA;AACA;AACA,2CAA2C,6DAAO;AAClD,oDAAoD,0DAAG,kBAAkB,6CAA6C,EAAE;AACxH;AACA;AACA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kDAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC,8BAA8B,EAAE;AACvE;AACA;AACA;AACA;AACA;AACA,uEAAuE,0CAA0C,EAAE,IAAI;AACvH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACO;AACC;AAC5C;AACP;AACA,6BAA6B,sDAAU;AACvC;AACA;AACA,mBAAmB,sDAAU,CAAC,qEAAW;AACzC;AACA;AACA,eAAe,sEAAS;AACxB;AACA;AACA;;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACiB;AACD;AACpD;AACP;AACA,mBAAmB,sDAAU,CAAC,+EAAgB;AAC9C;AACA;AACA,eAAe,8EAAa;AAC5B;AACA;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACD;AACM;AACT;AACvC,2CAA2C,kCAAkC,EAAE;AACxE;AACP,QAAQ,mEAAU;AAClB;AACA;AACA;AACA;AACA,0DAA0D,0DAAG,kBAAkB,QAAQ,6DAAO,mEAAmE,EAAE;AACnK;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,kEAAkE;AACrG;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA,mCAAmC,oDAAoD;AACvF;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACD;AACM;AACT;AAChC;AACP;AACA,gEAAgE,0DAAG,kBAAkB,QAAQ,6DAAO,mEAAmE,EAAE;AACzK;AACA,eAAe,sDAAU;AACzB;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mEAAU;AACvB;AACA;AACA,4BAA4B,yCAAyC;AACrE,KAAK;AACL;AACA;;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACC;AACM;AAC3C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,uDAAQ;AAC3D;AACA;AACA,yDAAyD,qEAAW;AACpE;AACA,yBAAyB,uDAAQ;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5HA;AAAA;AAAA;AAAA;AAAA;AACgC;AACA;AACzB;AACP;AACA,qBAAqB,4CAAK;AAC1B;AACA;AACA,sBAAsB,4CAAK;AAC3B;AACA,WAAW,oDAAK,cAAc,+CAA+C,EAAE;AAC/E;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACA;AACG;AACvC;AACP;AACA;AACA;AACA;AACA,oBAAoB,sDAAK;AACzB;AACA,SAAS,iEAAS;AAClB;AACA;AACA;AACA,oBAAoB,sDAAK;AACzB;AACA,eAAe,sDAAU;AACzB,6DAA6D,qDAAqD;AAClH;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mBAAmB,+DAA+D;AAClF;AACA;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACO;AACD;AACT;AACjC;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sDAAU;AAC9F;AACA;AACA,WAAW,oEAAQ,aAAa,4DAAS;AACzC;AACA;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACP;AAC7B,8BAA8B,sDAAU,CAAC,+CAAI;AAC7C;AACP;AACA;AACA;;;;;;;;;;;;;ACPA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkD;AACV;AACmB;AACpD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,QAAQ,qEAAW;AACnB;AACA,eAAe,8EAAa;AAC5B;AACA;AACA,eAAe,4DAAS;AACxB;AACA;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACb;AACY;AACV;AACzB;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,eAAe,4CAAK;AACpB;AACA;AACA,gCAAgC,6DAAO;AACvC;AACA;AACA,eAAe,sDAAU;AACzB,mCAAmC,yFAAyF;AAC5H,eAAe,kDAAI;AACnB,oCAAoC,wBAAwB,EAAE;AAC9D;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACxC;AACP;AACA,mBAAmB,sDAAU;AAC7B;AACA,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,sDAAU;AAC7B;AACA,mCAAmC,0DAAY;AAC/C,8DAA8D,qFAAqF;AACnJ;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,4CAA4C,6FAA6F;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACkC;AACgB;AACL;AACF;AACpC;AACP;AACA,QAAQ,gEAAM,yBAAyB,sDAAU,CAAC,qEAAW;AAC7D,QAAQ,gEAAM,CAAC,qDAAG,0BAA0B,sDAAU,CAAC,qEAAW;AAClE;AACA;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACS;AACF;AACa;AACS;AACvD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA,mCAAmC,iFAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACS;AAC1B;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACpC;AACP;AACA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAC2C;AACpC;AACP;AACA,mBAAmB,sDAAU,wBAAwB,gCAAgC,EAAE;AACvF;AACA;AACA,mBAAmB,sDAAU,wBAAwB,yCAAyC,uCAAuC,EAAE,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACA;AACG;AACI;AAC3C;AACP;AACA;AACA;AACA;AACA,QAAQ,iEAAS;AACjB;AACA;AACA,aAAa,qEAAW;AACxB;AACA;AACA,SAAS,qEAAW;AACpB,oBAAoB,sDAAK;AACzB;AACA,eAAe,sDAAU;AACzB,kBAAkB,iEAAS;AAC3B;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACb;AACE;AACzB;AACP,eAAe,sDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kDAAI,WAAW,4CAAK;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACO;AACE;AACC;AACU;AACS;AACe;AACtE;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA,8BAA8B,kEAAe;AAC7C,oDAAoD,kEAAe;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAe;AACjD;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kEAAe;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iFAAiB;AAChC;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACzNA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACX;AACY;AACrC;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,WAAW,oDAAK,cAAc,QAAQ,+DAAK,sBAAsB,EAAE;AACnE;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA,kBAAkB,iFAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACzFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACA;AACO;AAC3C;AACP;AACA,oBAAoB,sDAAK;AACzB,QAAQ,qEAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sGAAsG,2CAA2C;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACnJA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACc;AACe;AACT;AAC9C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,kBAAkB,iFAAiB;AACnC;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C,uBAAuB;AACvB;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC1GA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACc;AACM;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACjFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACA;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gEAAe;AACrD;AACA,oCAAoC,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AACoE;AAC7D;AACP,8BAA8B,wBAAwB,+EAAqB,WAAW;AACtF;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC0C;AAC0B;AAC1B;AAC1C;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAO;AAC3C;AACA;AACA,8BAA8B,yBAAyB,6DAAI,oCAAoC,+EAAqB,WAAW;AAC/H;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAC8D;AACvD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,8BAA8B,yBAAyB,yDAAY,8CAA8C;AACjH;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AACsC;AAC/B;AACP,WAAW,0DAAQ;AACnB;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AACsC;AAC/B;AACP,WAAW,0DAAQ;AACnB;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AACwC;AACjC;AACP,WAAW,4DAAS,cAAc,wBAAwB,EAAE;AAC5D;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,0DAA0D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP,8BAA8B,4DAA4D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC3EA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACA;AACpC;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,8BAA8B,kEAAkE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;;;;;;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA,8BAA8B,8DAA8D;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACH;AACG;AACI;AACxC;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,wBAAwB,2DAAM;AAC9B;AACA,8BAA8B,4DAA4D;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;AC5FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACA;AACU;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAkE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iFAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACnIA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP,8BAA8B,gEAAgE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB,iFAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACa;AAC9B;;;;;;;;;;;;;AChEA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,4EAA4E;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC3DA;AAAA;AAAA;AAAA;AAC8D;AACvD;AACP,WAAW,kFAAoB,kBAAkB,8DAA8D,EAAE;AACjH;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC0E;AACxC;AACY;AACI;AACpB;AACvB;AACP;AACA,kBAAkB,qFAAuB;AACzC;AACA;AACA;AACA,2BAA2B,sDAAM,kBAAkB,oBAAoB,EAAE,GAAG,kDAAI;AAChF,cAAc,sEAAc;AAC5B,cAAc,kEAAY,cAAc,YAAY,qFAAuB,GAAG,EAAE;AAChF;AACA;AACA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AAC8C;AACR;AAC/B;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,8BAA8B,QAAQ,iEAAM,SAAS,iDAAE,uBAAuB;AAC9E;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,mEAAmE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iFAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACA;AACS;AAClC;AACc;AACnC;AACP;AACA,kCAAkC,gDAAgD,QAAQ,6DAAI,qBAAqB,gDAAG,mBAAmB,oCAAoC,EAAE,GAAG,EAAE,GAAG;AACvL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAe;AACjD;AACA;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACpFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,wEAAwE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACyB;AAC1B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iFAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACW;AAC5B;;;;;;;;;;;;;ACxGA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC1CA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACI;AACxC;AACP,8BAA8B,mDAAmD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA,sBAAsB,0DAAY;AAClC;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA,8BAA8B,8EAA8E;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACmB;AAC/B;;;;;;;;;;;;;AC1DA;AAAA;AAAA;AAAA;AACsD;AAC/C;AACP,8BAA8B,wBAAwB,iEAAiB,oCAAoC;AAC3G;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgD;AACd;AACJ;AACoB;AACJ;AACF;AACrC;AACP;AACA,8BAA8B,gCAAgC,sDAAM,kBAAkB,gCAAgC,EAAE,IAAI,uDAAQ,EAAE,kDAAI,uBAAuB,sEAAc,iBAAiB,kEAAY,cAAc,YAAY,2DAAU,GAAG,EAAE,GAAG;AACxP;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACI;AACJ;AACN;AAC9B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,gDAAO;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACiB;AAC7B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0DAAY;AACd;;;;;;;;;;;;;ACrLA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACgD;AACd;AACI;AACQ;AACI;AACN;AACrC;AACP;AACA,8BAA8B,gCAAgC,sDAAM,kBAAkB,gCAAgC,EAAE,IAAI,uDAAQ,EAAE,0DAAQ,uBAAuB,sEAAc,iBAAiB,kEAAY,cAAc,YAAY,2DAAU,GAAG,EAAE,GAAG;AAC5P;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACsB;AACvB;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,8CAA8C;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACI;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AACkC;AAC3B;AACP;AACA,2BAA2B,mCAAmC;AAC9D,2BAA2B,sBAAsB;AACjD,WAAW,sDAAM;AACjB;AACA;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAC2D;AACpD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,8BAA8B,yBAAyB,uDAAW,8CAA8C;AAChH;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AACsC;AACM;AACrC;AACP;AACA;AACA;AACA,WAAW,0DAAQ,CAAC,uDAAQ;AAC5B;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AAC6B;AACT;AACA;AACzB;AACc;AACnC;AACP;AACA;AACA;AACA;AACA,kCAAkC,8CAA8C,QAAQ,6DAAI,qBAAqB,gDAAG,mBAAmB,oCAAoC,EAAE,GAAG,EAAE,eAAe;AACjM;AACA;AACA;AACA;AACA,8BAA8B,+DAA+D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAe;AACjD;AACA;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACa;AAC9B;;;;;;;;;;;;;ACtGA;AAAA;AAAA;AAAA;AACsC;AAC/B;AACP;AACA;AACA;AACA;AACA,eAAe,0DAAQ,cAAc,wBAAwB,EAAE;AAC/D;AACA;AACA;AACA;AACA,WAAW,0DAAQ,cAAc,wBAAwB,EAAE;AAC3D;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AAC6B;AACT;AACA;AAC9C;AACP;AACA;AACA;AACA,8BAA8B,0EAA0E;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAe;AACjD;AACA;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACc;AAC/B;;;;;;;;;;;;;ACnGA;AAAA;AAAA;AAAA;AACkC;AAC3B;AACP;AACA,2BAA2B,mCAAmC;AAC9D,2BAA2B,sBAAsB;AACjD,WAAW,sDAAM;AACjB;AACA;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AACsF;AAC/E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iGAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACI;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC4B;AAC7B;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACmB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAC2B;AAC5B;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACS;AACA;AACW;AACA;AACS;AACvD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,oCAAoC,6DAAO;AAC3C;AACA;AACA,8BAA8B,gEAAgE;AAC9F;AACO;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,oCAAoC,6DAAO;AAC3C;AACA;AACA;AACA,WAAW,6DAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gEAAe;AACrD;AACA;AACA,oCAAoC,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,4CAA4C;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AAAA;AACkC;AACA;AAC3B;AACP;AACA;AACA,YAAY,sDAAM;AAClB,YAAY,sDAAM,CAAC,qDAAG;AACtB;AACA;AACA;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAC4B;AACrB;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ,gDAAG,sCAAsC;AAC/E;AACA;AACA;AACA;AACA,uBAAuB,YAAY;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AACqC;AACG;AACjC;AACP;AACA,QAAQ,4DAAS,cAAc,YAAY,gDAAO,GAAG,EAAE;AACvD,QAAQ,4DAAS,KAAK,gDAAO;AAC7B;AACA;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAA;AACqD;AACb;AACjC;AACP,8BAA8B,QAAQ,4DAAS,KAAK,gEAAe,iBAAiB;AACpF;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAC+C;AACP;AACjC;AACP,8BAA8B,QAAQ,4DAAS,KAAK,0DAAY,YAAY;AAC5E;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AACiD;AACT;AACjC;AACP;AACA;AACA;AACA;AACA,sBAAsB,4DAAa;AACnC,8BAA8B,QAAQ,4DAAS,cAAc,gBAAgB,EAAE,oBAAoB;AACnG;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAC0C;AACc;AACjD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,wCAAwC,6DAAO;AAC/C;AACA;AACA,gCAAgC,qDAAU;AAC1C;AACA;AACA;;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC8B;AACQ;AACY;AACd;AAC7B;AACP;AACA;AACA,mBAAmB,uDAAI,CAAC,kDAAI,qBAAqB,0DAAQ,KAAK,sEAAc;AAC5E;AACA;AACA;AACA,eAAe,uDAAI,CAAC,kDAAI,+BAA+B,2CAA2C,EAAE,GAAG,0DAAQ;AAC/G;AACA;AACA;;;;;;;;;;;;;ACfA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACC;AACrC;AACP;AACA;AACA;AACA;AACA;AACA,mBAAmB,+DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACgB;AACS;AACvD;AACP,8BAA8B,sDAAsD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gDAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iFAAiB;AACpD;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AClFA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA,8BAA8B,sDAAsD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACgB;AACS;AACvD;AACP,8BAA8B,6DAA6D;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gDAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iFAAiB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC1EA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP,8BAA8B,kDAAkD;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiB;AAC1C;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACA;AACpC;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,8BAA8B,+DAA+D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,oEAAoE,oCAAoC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACtEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,sEAAsE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACgC;AACjC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACuB;AACnC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC7GA;AAAA;AAAA;AAAA;AAAA;AAAA;AACwC;AACF;AACD;AACrC;AACA,eAAe,gDAAO;AACtB;AACO;AACP,8BAA8B,QAAQ,0DAAQ,GAAG,4DAAS,+BAA+B;AACzF;AACA;;;;;;;;;;;;;ACVA;AAAA;AAAA;AAAA;AACiD;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iDAAiD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAa;AACvC;AACA,wCAAwC,qBAAqB,EAAE;AAC/D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;ACtDA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACK;AACzC;AACP,8BAA8B,2DAA2D;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2DAAU;AAC5C;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,6CAA6C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AAC+B;AACnE;AACP,8BAA8B,iDAAiD;AAC/E;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA,wCAAwC,sDAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACA;AACS;AACvD;AACP,8BAA8B,qDAAqD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA,kCAAkC,gEAAe;AACjD;AACA;AACA,gCAAgC,iFAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC/CA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP,8BAA8B,sDAAsD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC5CA;AAAA;AAAA;AAAA;AAAA;AAC8C;AACI;AAC3C;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,QAAQ,qEAAW;AACnB;AACA,kCAAkC,QAAQ,iEAAM,2BAA2B;AAC3E;AACA;AACA,kCAAkC,QAAQ,iEAAM,gBAAgB;AAChE;AACA;AACA;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAC4E;AACrE;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,uFAAqB;AACxC;AACA;AACA,CAAC;AACD;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AACwC;AACI;AACrC;AACP,WAAW,4DAAS,CAAC,uDAAQ;AAC7B;AACA;;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACA;AACS;AAClC;AACc;AACnC;AACP;AACA,kCAAkC,+CAA+C,QAAQ,6DAAI,qBAAqB,gDAAG,mBAAmB,oCAAoC,EAAE,GAAG,EAAE,GAAG;AACtL;AACA,8BAA8B,oDAAoD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gEAAe;AACjD;AACA;AACA,iCAAiC,iFAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAA;AACwC;AACjC;AACP,4BAA4B,4DAAS,cAAc,wBAAwB,EAAE,oBAAoB,4DAAS,cAAc,wBAAwB,EAAE;AAClJ;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,+DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AChDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,+DAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC/DA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP,8BAA8B,qDAAqD;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iFAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;ACxDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACP;AACY;AACzC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA,yBAAyB,+CAAI;AAC7B,0BAA0B,+CAAI;AAC9B,6BAA6B,+CAAI;AACjC,mCAAmC,+CAAI;AACvC,yCAAyC,+CAAI;AAC7C,YAAY,mEAAU;AACtB;AACA;AACA;AACA;AACA;AACA,oDAAoD,+CAAI;AACxD,sDAAsD,+CAAI;AAC1D,4DAA4D,+CAAI;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC1EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA,8BAA8B,6FAA6F;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iFAAiB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AC1FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACA;AACQ;AAC5C;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA;AACA,iBAAiB,+DAAqB;AACtC;AACA,8BAA8B,oGAAoG;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,mBAAmB;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpFA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACe;AACL;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA,eAAe,2DAAU;AACzB;AACA;;;;;;;;;;;;;ACrDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACb;AACc;AAChB;AACrB;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA;AACA,eAAe,+DAAK;AACpB,+BAA+B,kDAAI;AACnC;AACA,yBAAyB,wDAAwD;AACjF,aAAa,GAAG,8DAA8D,GAAG,gDAAG;AACpF;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACuB;AACxB;;;;;;;;;;;;;AC7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACS;AACR;AACU;AAC/C;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,WAAW,gEAAW,MAAM,yEAAU,KAAK,+DAAY;AACvD;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACH;AACa;AACS;AACvD;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA;AACA,8BAA8B,2DAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iFAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACf;AACrB;AACP;AACA,oBAAoB,sDAAK;AACzB;AACA,WAAW,gDAAG,mBAAmB,8CAA8C,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACoB;AACrB;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AACkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,sDAAM;AACjB;AACA;;;;;;;;;;;;;ACZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACgB;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iFAAiB;AAClD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA,2BAA2B,gDAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,gDAAO;AACjD;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AClEA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACU;AACN;AAC9B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,6BAA6B,gDAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACM;AACA;AACG;AACI;AAC3C;AACP,oBAAoB,sDAAK;AACzB;AACA;AACA,QAAQ,qEAAW;AACnB;AACA;AACA,QAAQ,qEAAW;AACnB;AACA;AACA,aAAa,iEAAS;AACtB;AACA;AACA,QAAQ,qEAAW;AACnB;AACA;AACA,aAAa,iEAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC,CAAC,gDAAO;AACT;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,sDAAU;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1JA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACU;AACM;AACS;AACvD;AACP,8BAA8B,yEAAyE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA,2CAA2C,iFAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gDAAO;AACtC,mCAAmC,0DAAY;AAC/C,6BAA6B;AAC7B;AACA,oCAAoC,iFAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AChIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACI;AACgB;AACS;AACvD;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gDAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iFAAiB;AAC7D;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;ACnFA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACoB;AACS;AACvD;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA,uBAAuB,SAAS;AAChC;AACA,sBAAsB,iFAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,gEAAe;AACjB;;;;;;;;;;;;;AClFA;AAAA;AAAA;AAAA;AACqD;AAC9C;AACP;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA,gCAAgC,mDAAS;AACzC;AACA;AACA;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACgD;AACzC;AACP,8BAA8B,wBAAwB,2DAAW,WAAW;AAC5E;AACA;;;;;;;;;;;;;ACLA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACxC;AACP,eAAe,sDAAU;AACzB,sBAAsB,0DAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACkB;AAC1D;AACP;AACA;AACA;AACA,eAAe,sDAAU;AACzB,sBAAsB,0DAAY;AAClC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,yDAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AC7CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACwB;AAChE;AACP,eAAe,sDAAU;AACzB,sBAAsB,0DAAY;AAClC;AACA,mCAAmC,6DAAiB;AACpD;AACA,wCAAwC,yCAAyC,+BAA+B,EAAE,GAAG,EAAE;AACvH,uCAAuC,yCAAyC,8BAA8B,EAAE,GAAG,EAAE;AACrH,uCAAuC,yCAAyC,8BAA8B,EAAE,GAAG,EAAE;AACrH,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;AClBA;AAAA;AAAA;AAAA;AAAA;AAC2C;AACI;AACxC;AACP,eAAe,sDAAU;AACzB,sBAAsB,0DAAY;AAClC;AACA;AACA;AACA;AACA,4DAA4D,8BAA8B,EAAE;AAC5F,iBAAiB;AACjB,aAAa;AACb,wDAAwD,8BAA8B,EAAE;AACxF,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAC0D;AACN;AACJ;AACM;AACY;AACpB;AACI;AACF;AACzC;AACP;AACA,YAAY,qFAAmB;AAC/B,mBAAmB,8EAAkB;AACrC;AACA,iBAAiB,iEAAS;AAC1B,mBAAmB,wEAAe;AAClC;AACA,iBAAiB,qEAAW;AAC5B,mBAAmB,oEAAa;AAChC;AACA,iBAAiB,mEAAU;AAC3B,mBAAmB,0EAAgB;AACnC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AACiC;AACc;AAC/C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,0DAAY;AACI;AAClB;;;;;;;;;;;;;ACjBA;AAAA;AAAA;AAAA;AAAA;AACiC;AACW;AAC5C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gGAAgG,8BAA8B,EAAE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wDAAW;AACmB;AAChC;;;;;;;;;;;;;ACrCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACiB;AAClD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,8DAAc;AACmB;AACnC;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACa;AACF;AAC5C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yDAAS;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wDAAW;AACS;AACtB;;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACiB;AAClD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,8DAAc;AACS;AACzB;;;;;;;;;;;;;AChCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACC;AAClC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,8CAAM;AACe;AACvB;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AAAA;AACiC;AACQ;AACzC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA,kBAAkB,oDAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,oDAAS;AACe;AAC1B;;;;;;;;;;;;;ACzDA;AAAA;AAAA;AAAA;AAAA;AACiC;AACW;AAC5C;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wDAAW;AACU;AACvB;;;;;;;;;;;;;ACxCA;AAAA;AAAA;AAAA;AAAA;AACiC;AACiB;AAClD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA,CAAC,CAAC,8DAAc;AACU;AAC1B;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACiC;AACW;AACM;AAClD;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,oBAAoB,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,8DAAc;AACgB;AAChC;AACA,IAAI,+CAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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ACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACO;AACP;AACA,eAAe,0CAAI;AACnB;AACA;AACA;AACA;AACA;AACA,+CAA+C,iBAAiB,EAAE;AAClE;AACA;AACA;;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACsD;AACI;AACE;AACI;AACpB;AACJ;AACF;AAC2B;AACM;AAChE;AACP,kCAAkC,6DAAiB;AACnD,eAAe,oFAAqB;AACpC;AACA,aAAa,gEAAW;AACxB,eAAe,0EAAgB;AAC/B;AACA,aAAa,4DAAS;AACtB,eAAe,8EAAkB;AACjC;AACA,uCAAuC,yDAAe;AACtD,eAAe,gFAAmB;AAClC;AACA;AACA,oBAAoB,0DAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC9BA;AAAA;AAAA;AACO;AACP;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AACiE;AAC1D;AACP;AACA,gCAAgC,yDAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AACuE;AAChE;AACP;AACA,sBAAsB,6DAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACbA;AAAA;AAAA;AAAA;AACoD;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,8BAA8B,EAAE;AAC3D,wBAAwB,gEAAe;AACvC;AACA;AACA;AACA;;;;;;;;;;;;;ACdA;AAAA;AAAA;AAAA;AAAA;AAAA;AACqD;AACT;AACD;AACpC;AACP;AACA,8BAA8B,gEAAe;AAC7C;AACA;AACA;AACA;AACA,0BAA0B,sDAAU;AACpC;AACA;AACA,WAAW,gEAAW;AACtB;AACA;;;;;;;;;;;;;AChBA;AAAA;AA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EAAqB;AAClD,mBAAmB,mBAAO,CAAC,8EAAqB;AAChD,aAAa,mBAAO,CAAC,8DAAa;AAClC,eAAe,mBAAO,CAAC,wDAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB,EAAE,kBAAkB,oBAAoB,EAAE,eAAe,uBAAuB,EAAE;AAC9I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sC;;;;;;;;;;;;ACpHa;AACb,8CAA8C,cAAc;AAC5D,eAAe,mBAAO,CAAC,wDAAU;AACjC,wBAAwB,mBAAO,CAAC,oFAAwB;AACxD;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,2BAA2B;AAC3B;AACA,oC;;;;;;;;;;;;ACjBa;AACb;AACA;AACA;AACA,cAAc,gBAAgB,sCAAsC,iBAAiB,EAAE;AACvF,6BAA6B,uDAAuD;AACpF;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;AACD,8CAA8C,cAAc;AAC5D,mBAAmB,mBAAO,CAAC,0EAAmB;AAC9C,iBAAiB,mBAAO,CAAC,4DAAY;AACrC,qBAAqB,mBAAO,CAAC,oEAAgB;AAC7C,qBAAqB,mBAAO,CAAC,4FAAiC;AAC9D,eAAe,mBAAO,CAAC,wDAAU;AACjC,wBAAwB,mBAAO,CAAC,oFAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,6CAA6C;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,sC;;;;;;;;;;;;ACrPa;AACb,8CAA8C,cAAc;AAC5D,gBAAgB,mBAAO,CAAC,oEAAgB;AACxC,iBAAiB,mBAAO,CAAC,sEAAiB;AAC1C,mBAAmB,mBAAO,CAAC,0EAAmB;AAC9C,4BAA4B,mBAAO,CAAC,4FAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,+CAA+C,mGAAmG,EAAE;AACpJ;AACA,wC;;;;;;;;;;;;ACxIa;AACb,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,kC;;;;;;;;;;;;ACnBa;AACb,8CAA8C,cAAc;AAC5D,mBAAmB,mBAAO,CAAC,iEAAe;AAC1C;AACA;AACA,kEAAkE,gCAAgC,EAAE;AACpG;AACA;AACA,kEAAkE,yCAAyC,uCAAuC,EAAE,EAAE;AACtJ;AA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a,cAAc,0BAA0B,WAAW,cAAc,OAAO,0DAA0D,OAAO,2BAA2B,oOAAoO,oEAAoE,oGAAoG,sBAAsB,uEAAuE,wFAAwF,6DAA6D,UAAU,kEAAkE,gBAAgB,uEAAuE,8CAA8C,SAAS,OAAO,mHAAmH,2GAA2G,aAAa,WAAW,eAAe,oBAAoB,wBAAwB,QAAQ,GAAG,mCAAmC,+LAA+L,iCAAiC,uFAAuF,gBAAgB,4CAA4C,kCAAkC,gCAAgC,cAAc,8BAA8B,sCAAsC,iCAAiC,sIAAsI,sCAAsC,SAAS,EAAE,iCAAiC,YAAY,mBAAmB,KAAK,mBAAmB,sEAAsE,SAAS,2EAA2E,gBAAgB,aAAa,qGAAqG,YAAY,0NAA0N,GAAG,E;;;;;;;;;;;;ACAvyQ;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;AAGA;AACA,8CAA8C,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,IAAI;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,+B;;;;;;;;;;;;ACjZA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;;AAEO;AACP;AACA,mBAAmB,sBAAsB;AACzC;AACA;;AAEO;AACP;AACA,gDAAgD,OAAO;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,4DAA4D,cAAc;AAC1E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;;AAEO;AACP,mCAAmC,oCAAoC;AACvE;;AAEO;AACP;AACA;;AAEO;AACP,2BAA2B,+DAA+D,gBAAgB,EAAE,EAAE;AAC9G;AACA,mCAAmC,MAAM,6BAA6B,EAAE,YAAY,WAAW,EAAE;AACjG,kCAAkC,MAAM,iCAAiC,EAAE,YAAY,WAAW,EAAE;AACpG,+BAA+B,qFAAqF;AACpH;AACA,KAAK;AACL;;AAEO;AACP,aAAa,6BAA6B,0BAA0B,aAAa,EAAE,qBAAqB;AACxG,gBAAgB,qDAAqD,oEAAoE,aAAa,EAAE;AACxJ,sBAAsB,sBAAsB,qBAAqB,GAAG;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,kCAAkC,SAAS;AAC3C,kCAAkC,WAAW,UAAU;AACvD,yCAAyC,cAAc;AACvD;AACA,6GAA6G,OAAO,UAAU;AAC9H,gFAAgF,iBAAiB,OAAO;AACxG,wDAAwD,gBAAgB,QAAQ,OAAO;AACvF,8CAA8C,gBAAgB,gBAAgB,OAAO;AACrF;AACA,iCAAiC;AACjC;AACA;AACA,SAAS,YAAY,aAAa,OAAO,EAAE,UAAU,WAAW;AAChE,mCAAmC,SAAS;AAC5C;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM,gBAAgB;AACzC;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;;AAEO;AACP,4BAA4B,sBAAsB;AAClD;AACA;AACA;;AAEO;AACP,iDAAiD,QAAQ;AACzD,wCAAwC,QAAQ;AAChD,wDAAwD,QAAQ;AAChE;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA,iBAAiB,sFAAsF,aAAa,EAAE;AACtH,sBAAsB,gCAAgC,qCAAqC,0CAA0C,EAAE,EAAE,GAAG;AAC5I,2BAA2B,MAAM,eAAe,EAAE,YAAY,oBAAoB,EAAE;AACpF,sBAAsB,oGAAoG;AAC1H,6BAA6B,uBAAuB;AACpD,4BAA4B,wBAAwB;AACpD,2BAA2B,yDAAyD;AACpF;;AAEO;AACP;AACA,iBAAiB,4CAA4C,SAAS,EAAE,qDAAqD,aAAa,EAAE;AAC5I,yBAAyB,6BAA6B,oBAAoB,gDAAgD,gBAAgB,EAAE,KAAK;AACjJ;;AAEO;AACP;AACA;AACA,2GAA2G,sFAAsF,aAAa,EAAE;AAChN,sBAAsB,8BAA8B,gDAAgD,uDAAuD,EAAE,EAAE,GAAG;AAClK,4CAA4C,sCAAsC,UAAU,oBAAoB,EAAE,EAAE,UAAU;AAC9H;;AAEO;AACP,gCAAgC,uCAAuC,aAAa,EAAE,EAAE,OAAO,kBAAkB;AACjH;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,4CAA4C;AAC5C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpNa;;AAEb,8CAA8C,cAAc;;AAE5D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,2EAA2E,aAAa;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA","file":"vendor.js","sourcesContent":["/**\n * @license Angular v9.1.0\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the `build()` method to create a programmatic animation using the\n * `animate()` function. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nvar AnimationBuilder = /** @class */ (function () {\n function AnimationBuilder() {\n }\n return AnimationBuilder;\n}());\n/**\n * A factory object returned from the `AnimationBuilder`.`build()` method.\n *\n * @publicApi\n */\nvar AnimationFactory = /** @class */ (function () {\n function AnimationFactory() {\n }\n return AnimationFactory;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nvar AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of `state()`\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of `state()`\n * and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
...
\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
\n *
\n *
\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* Trigger */, name: name, definitions: definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" })),\n * style({ background: \"red\" }))\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles) {\n if (styles === void 0) { styles = null; }\n return { type: 4 /* Animate */, styles: styles, timings: timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 3 /* Group */, steps: steps, options: options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 2 /* Sequence */, steps: steps, options: options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation `state`, within an animation `sequence`,\n * or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow a component to animate from\n * a height of 0 up to the height of the parent element:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* State */, name: name, styles: styles, options: options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* Keyframes */, steps: steps };\n}\n/**\n * Declares an animation transition as a sequence of animation steps to run when a given\n * condition is satisfied. The condition is a Boolean expression or function that compares\n * the previous and current animation states, and returns true if this transition should occur.\n * When the state criteria of a defined transition are met, the associated animation is\n * triggered.\n *\n * @param stateChangeExpr A Boolean expression or function that compares the previous and current\n * animation states, and returns true if this transition should occur. Note that \"true\" and \"false\"\n * match 1 and 0, respectively. An expression is evaluated each time a state change occurs in the\n * animation trigger element.\n * The animation steps run when the expression evaluates to true.\n *\n * - A state-change string takes the form \"state1 => state2\", where each side is a defined animation\n * state, or an asterix (*) to refer to a dynamic start or end state.\n * - The expression string can contain multiple comma-separated statements;\n * for example \"state1 => state2, state3 => state4\".\n * - Special values `:enter` and `:leave` initiate a transition on the entry and exit states,\n * equivalent to \"void => *\" and \"* => void\".\n * - Special values `:increment` and `:decrement` initiate a transition when a numeric value has\n * increased or decreased in value.\n * - A function is executed each time a state change occurs in the animation trigger element.\n * The animation steps run when the function returns true.\n *\n * @param steps One or more animation objects, as returned by the `animate()` or\n * `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the animation,\n * and additional developer-defined parameters. Provided values for additional parameters are used\n * as defaults, and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n * The template associated with a component binds an animation trigger to an element.\n *\n * ```HTML\n * \n *
...
\n * ```\n *\n * All transitions are defined within an animation trigger,\n * along with named states that the transitions change to and from.\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * // define states\n * state(\"on\", style({ background: \"green\" })),\n * state(\"off\", style({ background: \"grey\" })),\n * ...]\n * ```\n *\n * Note that when you call the `sequence()` function within a `{@link animations/group group()}`\n * or a `transition()` call, execution does not continue to the next instruction\n * until each of the inner animation steps have completed.\n *\n * ### Syntax examples\n *\n * The following examples define transitions between the two defined states (and default states),\n * using various options:\n *\n * ```typescript\n * // Transition occurs when the state value\n * // bound to \"myAnimationTrigger\" changes from \"on\" to \"off\"\n * transition(\"on => off\", animate(500))\n * // Run the same animation for both directions\n * transition(\"on <=> off\", animate(500))\n * // Define multiple state-change pairs separated by commas\n * transition(\"on => off, off => void\", animate(500))\n * ```\n *\n * ### Special values for state-change expressions\n *\n * - Catch-all state change for when an element is inserted into the page and the\n * destination state is unknown:\n *\n * ```typescript\n * transition(\"void => *\", [\n * style({ opacity: 0 }),\n * animate(500)\n * ])\n * ```\n *\n * - Capture a state change between any states:\n *\n * `transition(\"* => *\", animate(\"1s 0s\"))`\n *\n * - Entry and exit transitions:\n *\n * ```typescript\n * transition(\":enter\", [\n * style({ opacity: 0 }),\n * animate(500, style({ opacity: 1 }))\n * ]),\n * transition(\":leave\", [\n * animate(500, style({ opacity: 0 }))\n * ])\n * ```\n *\n * - Use `:increment` and `:decrement` to initiate transitions:\n *\n * ```typescript\n * transition(\":increment\", group([\n * query(':enter', [\n * style({ left: '100%' }),\n * animate('0.5s ease-out', style('*'))\n * ]),\n * query(':leave', [\n * animate('0.5s ease-out', style({ left: '-100%' }))\n * ])\n * ]))\n *\n * transition(\":decrement\", group([\n * query(':enter', [\n * style({ left: '100%' }),\n * animate('0.5s ease-out', style('*'))\n * ]),\n * query(':leave', [\n * animate('0.5s ease-out', style({ left: '-100%' }))\n * ])\n * ]))\n * ```\n *\n * ### State-change functions\n *\n * Here is an example of a `fromState` specified as a state-change function that invokes an\n * animation when true:\n *\n * ```typescript\n * transition((fromState, toState) =>\n * {\n * return fromState == \"off\" && toState == \"on\";\n * },\n * animate(\"1s 0s\"))\n * ```\n *\n * ### Animating to the final state\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no style data, that step is automatically considered the final animation arc,\n * for the element to reach the final state. Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n * The following example defines a transition that starts by hiding the element,\n * then makes sure that it animates properly to whatever state is currently active for trigger:\n *\n * ```typescript\n * transition(\"void => *\", [\n * style({ opacity: 0 }),\n * animate(500)\n * ])\n * ```\n * ### Boolean value matching\n * If a trigger binding value is a Boolean, it can be matched using a transition expression\n * that compares true and false or 1 and 0. For example:\n *\n * ```\n * // in the template\n *
...
\n * // in the component metadata\n * trigger('openClose', [\n * state('true', style({ height: '*' })),\n * state('false', style({ height: '0px' })),\n * transition('false <=> true', animate(500))\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options) {\n if (options === void 0) { options = null; }\n return { type: 1 /* Transition */, expr: stateChangeExpr, animation: steps, options: options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options) {\n if (options === void 0) { options = null; }\n return { type: 8 /* Reference */, animation: steps, options: options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options) {\n if (options === void 0) { options = null; }\n return { type: 9 /* AnimateChild */, options: options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options) {\n if (options === void 0) { options = null; }\n return { type: 10 /* AnimateRef */, animation: animation, options: options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements.\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
\n *

Title

\n *
\n * Blah blah blah\n *
\n *
\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options) {\n if (options === void 0) { options = null; }\n return { type: 11 /* Query */, selector: selector, animation: animation, options: options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
\n *
\n *
\n * {{ item }}\n *
\n *
\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* Stagger */, timings: timings, animation: animation };\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nfunction scheduleMicroTask(cb) {\n Promise.resolve(null).then(cb);\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nvar NoopAnimationPlayer = /** @class */ (function () {\n function NoopAnimationPlayer(duration, delay) {\n if (duration === void 0) { duration = 0; }\n if (delay === void 0) { delay = 0; }\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n NoopAnimationPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n NoopAnimationPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n NoopAnimationPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n NoopAnimationPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n NoopAnimationPlayer.prototype.hasStarted = function () { return this._started; };\n NoopAnimationPlayer.prototype.init = function () { };\n NoopAnimationPlayer.prototype.play = function () {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n };\n /** @internal */\n NoopAnimationPlayer.prototype.triggerMicrotask = function () {\n var _this = this;\n scheduleMicroTask(function () { return _this._onFinish(); });\n };\n NoopAnimationPlayer.prototype._onStart = function () {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n };\n NoopAnimationPlayer.prototype.pause = function () { };\n NoopAnimationPlayer.prototype.restart = function () { };\n NoopAnimationPlayer.prototype.finish = function () { this._onFinish(); };\n NoopAnimationPlayer.prototype.destroy = function () {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n NoopAnimationPlayer.prototype.reset = function () { };\n NoopAnimationPlayer.prototype.setPosition = function (position) { };\n NoopAnimationPlayer.prototype.getPosition = function () { return 0; };\n /** @internal */\n NoopAnimationPlayer.prototype.triggerCallback = function (phaseName) {\n var methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(function (fn) { return fn(); });\n methods.length = 0;\n };\n return NoopAnimationPlayer;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nvar AnimationGroupPlayer = /** @class */ (function () {\n function AnimationGroupPlayer(_players) {\n var _this = this;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n var doneCount = 0;\n var destroyCount = 0;\n var startCount = 0;\n var total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(function () { return _this._onFinish(); });\n }\n else {\n this.players.forEach(function (player) {\n player.onDone(function () {\n if (++doneCount == total) {\n _this._onFinish();\n }\n });\n player.onDestroy(function () {\n if (++destroyCount == total) {\n _this._onDestroy();\n }\n });\n player.onStart(function () {\n if (++startCount == total) {\n _this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce(function (time, player) { return Math.max(time, player.totalTime); }, 0);\n }\n AnimationGroupPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n AnimationGroupPlayer.prototype.init = function () { this.players.forEach(function (player) { return player.init(); }); };\n AnimationGroupPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n AnimationGroupPlayer.prototype._onStart = function () {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n }\n };\n AnimationGroupPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n AnimationGroupPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n AnimationGroupPlayer.prototype.hasStarted = function () { return this._started; };\n AnimationGroupPlayer.prototype.play = function () {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(function (player) { return player.play(); });\n };\n AnimationGroupPlayer.prototype.pause = function () { this.players.forEach(function (player) { return player.pause(); }); };\n AnimationGroupPlayer.prototype.restart = function () { this.players.forEach(function (player) { return player.restart(); }); };\n AnimationGroupPlayer.prototype.finish = function () {\n this._onFinish();\n this.players.forEach(function (player) { return player.finish(); });\n };\n AnimationGroupPlayer.prototype.destroy = function () { this._onDestroy(); };\n AnimationGroupPlayer.prototype._onDestroy = function () {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(function (player) { return player.destroy(); });\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n AnimationGroupPlayer.prototype.reset = function () {\n this.players.forEach(function (player) { return player.reset(); });\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n };\n AnimationGroupPlayer.prototype.setPosition = function (p) {\n var timeAtPosition = p * this.totalTime;\n this.players.forEach(function (player) {\n var position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n };\n AnimationGroupPlayer.prototype.getPosition = function () {\n var min = 0;\n this.players.forEach(function (player) {\n var p = player.getPosition();\n min = Math.min(p, min);\n });\n return min;\n };\n AnimationGroupPlayer.prototype.beforeDestroy = function () {\n this.players.forEach(function (player) {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n };\n /** @internal */\n AnimationGroupPlayer.prototype.triggerCallback = function (phaseName) {\n var methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(function (fn) { return fn(); });\n methods.length = 0;\n };\n return AnimationGroupPlayer;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ɵPRE_STYLE = '!';\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n\n//# sourceMappingURL=animations.js.map","/**\n * @license Angular v9.1.0\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { __spread, __decorate, __read, __extends, __assign, __values } from 'tslib';\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport { Injectable } from '@angular/core';\n\nimport * as ɵngcc0 from '@angular/core';\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes(driver, normalizer, element, keyframes, preStyles, postStyles) {\n if (preStyles === void 0) { preStyles = {}; }\n if (postStyles === void 0) { postStyles = {}; }\n var errors = [];\n var normalizedKeyframes = [];\n var previousOffset = -1;\n var previousKeyframe = null;\n keyframes.forEach(function (kf) {\n var offset = kf['offset'];\n var isSameOffset = offset == previousOffset;\n var normalizedKeyframe = (isSameOffset && previousKeyframe) || {};\n Object.keys(kf).forEach(function (prop) {\n var normalizedProp = prop;\n var normalizedValue = kf[prop];\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles[prop];\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles[prop];\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe[normalizedProp] = normalizedValue;\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n var LINE_START = '\\n - ';\n throw new Error(\"Unable to animate due to the following errors:\" + LINE_START + errors.join(LINE_START));\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(function () { return callback(event && copyAnimationEvent(event, 'start', player)); });\n break;\n case 'done':\n player.onDone(function () { return callback(event && copyAnimationEvent(event, 'done', player)); });\n break;\n case 'destroy':\n player.onDestroy(function () { return callback(event && copyAnimationEvent(event, 'destroy', player)); });\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n var totalTime = player.totalTime;\n var disabled = player.disabled ? true : false;\n var event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n var data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName, totalTime, disabled) {\n if (phaseName === void 0) { phaseName = ''; }\n if (totalTime === void 0) { totalTime = 0; }\n return { element: element, triggerName: triggerName, fromState: fromState, toState: toState, phaseName: phaseName, totalTime: totalTime, disabled: !!disabled };\n}\nfunction getOrSetAsInMap(map, key, defaultValue) {\n var value;\n if (map instanceof Map) {\n value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n }\n else {\n value = map[key];\n if (!value) {\n value = map[key] = defaultValue;\n }\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n var separatorPos = command.indexOf(':');\n var id = command.substring(1, separatorPos);\n var action = command.substr(separatorPos + 1);\n return [id, action];\n}\nvar _contains = function (elm1, elm2) { return false; };\nvar ɵ0 = _contains;\nvar _matches = function (element, selector) {\n return false;\n};\nvar ɵ1 = _matches;\nvar _query = function (element, selector, multi) {\n return [];\n};\nvar ɵ2 = _query;\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nvar _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n // this is well supported in all browsers\n _contains = function (elm1, elm2) { return elm1.contains(elm2); };\n _matches = (function () {\n if (_isNode || Element.prototype.matches) {\n return function (element, selector) { return element.matches(selector); };\n }\n else {\n var proto = Element.prototype;\n var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n proto.oMatchesSelector || proto.webkitMatchesSelector;\n if (fn_1) {\n return function (element, selector) { return fn_1.apply(element, [selector]); };\n }\n else {\n return _matches;\n }\n }\n })();\n _query = function (element, selector, multi) {\n var results = [];\n if (multi) {\n results.push.apply(results, __spread(element.querySelectorAll(selector)));\n }\n else {\n var elm = element.querySelector(selector);\n if (elm) {\n results.push(elm);\n }\n }\n return results;\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nvar _CACHED_BODY = null;\nvar _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n var result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n var camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.substr(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nvar matchesElement = _matches;\nvar containsElement = _contains;\nvar invokeQuery = _query;\nfunction hypenatePropsObject(object) {\n var newObj = {};\n Object.keys(object).forEach(function (prop) {\n var newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newObj[newProp] = object[prop];\n });\n return newObj;\n}\n\n/**\n * @publicApi\n */\nvar NoopAnimationDriver = /** @class */ (function () {\n function NoopAnimationDriver() {\n }\n NoopAnimationDriver.prototype.validateStyleProperty = function (prop) { return validateStyleProperty(prop); };\n NoopAnimationDriver.prototype.matchesElement = function (element, selector) {\n return matchesElement(element, selector);\n };\n NoopAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };\n NoopAnimationDriver.prototype.query = function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n NoopAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {\n return defaultValue || '';\n };\n NoopAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers, scrubberAccessRequested) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n return new NoopAnimationPlayer(duration, delay);\n };\nNoopAnimationDriver.ɵfac = function NoopAnimationDriver_Factory(t) { return new (t || NoopAnimationDriver)(); };\nNoopAnimationDriver.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NoopAnimationDriver, factory: function (t) { return NoopAnimationDriver.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NoopAnimationDriver, [{\n type: Injectable\n }], function () { return []; }, null); })();\n return NoopAnimationDriver;\n}());\n/**\n * @publicApi\n */\nvar AnimationDriver = /** @class */ (function () {\n function AnimationDriver() {\n }\n AnimationDriver.NOOP = new NoopAnimationDriver();\n return AnimationDriver;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ONE_SECOND = 1000;\nvar SUBSTITUTION_EXPR_START = '{{';\nvar SUBSTITUTION_EXPR_END = '}}';\nvar ENTER_CLASSNAME = 'ng-enter';\nvar LEAVE_CLASSNAME = 'ng-leave';\nvar ENTER_SELECTOR = '.ng-enter';\nvar LEAVE_SELECTOR = '.ng-leave';\nvar NG_TRIGGER_CLASSNAME = 'ng-trigger';\nvar NG_TRIGGER_SELECTOR = '.ng-trigger';\nvar NG_ANIMATING_CLASSNAME = 'ng-animating';\nvar NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n var matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n var regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n var duration;\n var delay = 0;\n var easing = '';\n if (typeof exp === 'string') {\n var matches = exp.match(regex);\n if (matches === null) {\n errors.push(\"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n var delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n var easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n var containsErrors = false;\n var startIndex = errors.length;\n if (duration < 0) {\n errors.push(\"Duration values below 0 are not allowed for this animation step.\");\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(\"Delay values below 0 are not allowed for this animation step.\");\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, \"The provided timing value \\\"\" + exp + \"\\\" is invalid.\");\n }\n }\n return { duration: duration, delay: delay, easing: easing };\n}\nfunction copyObj(obj, destination) {\n if (destination === void 0) { destination = {}; }\n Object.keys(obj).forEach(function (prop) { destination[prop] = obj[prop]; });\n return destination;\n}\nfunction normalizeStyles(styles) {\n var normalizedStyles = {};\n if (Array.isArray(styles)) {\n styles.forEach(function (data) { return copyStyles(data, false, normalizedStyles); });\n }\n else {\n copyStyles(styles, false, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, readPrototype, destination) {\n if (destination === void 0) { destination = {}; }\n if (readPrototype) {\n // we make use of a for-in loop so that the\n // prototypically inherited properties are\n // revealed from the backFill map\n for (var prop in styles) {\n destination[prop] = styles[prop];\n }\n }\n else {\n copyObj(styles, destination);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n var styleAttrValue = '';\n for (var i = 0; i < element.style.length; i++) {\n var key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (var key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n var dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.hasOwnProperty(prop)) {\n formerStyles[prop] = element.style[camelProp];\n }\n element.style[camelProp] = styles[prop];\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n Object.keys(styles).forEach(function (prop) {\n var camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n var params = options.params || {};\n var matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(function (varName) {\n if (!params.hasOwnProperty(varName)) {\n errors.push(\"Unable to resolve the local animation param \" + varName + \" in the given list of values\");\n }\n });\n }\n}\nvar PARAM_REGEX = new RegExp(SUBSTITUTION_EXPR_START + \"\\\\s*(.+?)\\\\s*\" + SUBSTITUTION_EXPR_END, 'g');\nfunction extractStyleParams(value) {\n var params = [];\n if (typeof value === 'string') {\n var match = void 0;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n var original = value.toString();\n var str = original.replace(PARAM_REGEX, function (_, varName) {\n var localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (!params.hasOwnProperty(varName)) {\n errors.push(\"Please provide a value for the animation param \" + varName);\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n var arr = [];\n var item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nfunction mergeAnimationOptions(source, destination) {\n if (source.params) {\n var p0_1 = source.params;\n if (!destination.params) {\n destination.params = {};\n }\n var p1_1 = destination.params;\n Object.keys(p0_1).forEach(function (param) {\n if (!p1_1.hasOwnProperty(param)) {\n p1_1[param] = p0_1[param];\n }\n });\n }\n return destination;\n}\nvar DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n var previousStyleProps = Object.keys(previousStyles);\n if (previousStyleProps.length && keyframes.length) {\n var startingKeyframe_1 = keyframes[0];\n var missingStyleProps_1 = [];\n previousStyleProps.forEach(function (prop) {\n if (!startingKeyframe_1.hasOwnProperty(prop)) {\n missingStyleProps_1.push(prop);\n }\n startingKeyframe_1[prop] = previousStyles[prop];\n });\n if (missingStyleProps_1.length) {\n var _loop_1 = function () {\n var kf = keyframes[i];\n missingStyleProps_1.forEach(function (prop) { kf[prop] = computeStyle(element, prop); });\n };\n // tslint:disable-next-line\n for (var i = 1; i < keyframes.length; i++) {\n _loop_1();\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* State */:\n return visitor.visitState(node, context);\n case 1 /* Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* Group */:\n return visitor.visitGroup(node, context);\n case 4 /* Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* Style */:\n return visitor.visitStyle(node, context);\n case 8 /* Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* Query */:\n return visitor.visitQuery(node, context);\n case 12 /* Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw new Error(\"Unable to resolve animation metadata node #\" + node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n var expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(function (str) { return parseInnerTransitionStr(str, expressions, errors); });\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n var result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n var match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(\"The provided transition expression \\\"\" + eventStr + \"\\\" is not supported\");\n return expressions;\n }\n var fromState = match[1];\n var separator = match[2];\n var toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n var isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return function (fromState, toState) { return parseFloat(toState) > parseFloat(fromState); };\n case ':decrement':\n return function (fromState, toState) { return parseFloat(toState) < parseFloat(fromState); };\n default:\n errors.push(\"The transition alias value \\\"\" + alias + \"\\\" is not supported\");\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nvar TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nvar FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n var LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n var RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return function (fromState, toState) {\n var lhsMatch = lhs == ANY_STATE || lhs == fromState;\n var rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\nvar SELF_TOKEN = ':self';\nvar SELF_TOKEN_REGEX = new RegExp(\"s*\" + SELF_TOKEN + \"s*,?\", 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors);\n}\nvar ROOT_SELECTOR = '';\nvar AnimationAstBuilderVisitor = /** @class */ (function () {\n function AnimationAstBuilderVisitor(_driver) {\n this._driver = _driver;\n }\n AnimationAstBuilderVisitor.prototype.build = function (metadata, errors) {\n var context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n return visitDslNode(this, normalizeAnimationEntry(metadata), context);\n };\n AnimationAstBuilderVisitor.prototype._resetContextStyleTimingState = function (context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = {};\n context.collectedStyles[ROOT_SELECTOR] = {};\n context.currentTime = 0;\n };\n AnimationAstBuilderVisitor.prototype.visitTrigger = function (metadata, context) {\n var _this = this;\n var queryCount = context.queryCount = 0;\n var depCount = context.depCount = 0;\n var states = [];\n var transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push('animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n }\n metadata.definitions.forEach(function (def) {\n _this._resetContextStyleTimingState(context);\n if (def.type == 0 /* State */) {\n var stateDef_1 = def;\n var name_1 = stateDef_1.name;\n name_1.toString().split(/\\s*,\\s*/).forEach(function (n) {\n stateDef_1.name = n;\n states.push(_this.visitState(stateDef_1, context));\n });\n stateDef_1.name = name_1;\n }\n else if (def.type == 1 /* Transition */) {\n var transition = _this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push('only state() and transition() definitions can sit inside of a trigger()');\n }\n });\n return {\n type: 7 /* Trigger */,\n name: metadata.name, states: states, transitions: transitions, queryCount: queryCount, depCount: depCount,\n options: null\n };\n };\n AnimationAstBuilderVisitor.prototype.visitState = function (metadata, context) {\n var styleAst = this.visitStyle(metadata.styles, context);\n var astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n var missingSubs_1 = new Set();\n var params_1 = astParams || {};\n styleAst.styles.forEach(function (value) {\n if (isObject(value)) {\n var stylesObj_1 = value;\n Object.keys(stylesObj_1).forEach(function (prop) {\n extractStyleParams(stylesObj_1[prop]).forEach(function (sub) {\n if (!params_1.hasOwnProperty(sub)) {\n missingSubs_1.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs_1.size) {\n var missingSubsArr = iteratorToArray(missingSubs_1.values());\n context.errors.push(\"state(\\\"\" + metadata.name + \"\\\", ...) must define default values for all the following style substitutions: \" + missingSubsArr.join(', '));\n }\n }\n return {\n type: 0 /* State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n };\n AnimationAstBuilderVisitor.prototype.visitTransition = function (metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n var animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n var matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* Transition */,\n matchers: matchers,\n animation: animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitSequence = function (metadata, context) {\n var _this = this;\n return {\n type: 2 /* Sequence */,\n steps: metadata.steps.map(function (s) { return visitDslNode(_this, s, context); }),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitGroup = function (metadata, context) {\n var _this = this;\n var currentTime = context.currentTime;\n var furthestTime = 0;\n var steps = metadata.steps.map(function (step) {\n context.currentTime = currentTime;\n var innerAst = visitDslNode(_this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* Group */,\n steps: steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitAnimate = function (metadata, context) {\n var timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n var styleAst;\n var styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n var styleMetadata_1 = metadata.styles;\n var isEmpty = false;\n if (!styleMetadata_1) {\n isEmpty = true;\n var newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata_1 = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n var _styleAst = this.visitStyle(styleMetadata_1, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n };\n AnimationAstBuilderVisitor.prototype.visitStyle = function (metadata, context) {\n var ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n };\n AnimationAstBuilderVisitor.prototype._makeStyleAst = function (metadata, context) {\n var styles = [];\n if (Array.isArray(metadata.styles)) {\n metadata.styles.forEach(function (styleTuple) {\n if (typeof styleTuple == 'string') {\n if (styleTuple == AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(\"The provided style string value \" + styleTuple + \" is not allowed.\");\n }\n }\n else {\n styles.push(styleTuple);\n }\n });\n }\n else {\n styles.push(metadata.styles);\n }\n var containsDynamicStyles = false;\n var collectedEasing = null;\n styles.forEach(function (styleData) {\n if (isObject(styleData)) {\n var styleMap = styleData;\n var easing = styleMap['easing'];\n if (easing) {\n collectedEasing = easing;\n delete styleMap['easing'];\n }\n if (!containsDynamicStyles) {\n for (var prop in styleMap) {\n var value = styleMap[prop];\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* Style */,\n styles: styles,\n easing: collectedEasing,\n offset: metadata.offset, containsDynamicStyles: containsDynamicStyles,\n options: null\n };\n };\n AnimationAstBuilderVisitor.prototype._validateStyleAst = function (ast, context) {\n var _this = this;\n var timings = context.currentAnimateTimings;\n var endTime = context.currentTime;\n var startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(function (tuple) {\n if (typeof tuple == 'string')\n return;\n Object.keys(tuple).forEach(function (prop) {\n if (!_this._driver.validateStyleProperty(prop)) {\n context.errors.push(\"The provided animation property \\\"\" + prop + \"\\\" is not a supported CSS property for animations\");\n return;\n }\n var collectedStyles = context.collectedStyles[context.currentQuerySelector];\n var collectedEntry = collectedStyles[prop];\n var updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(\"The CSS property \\\"\" + prop + \"\\\" that exists between the times of \\\"\" + collectedEntry.startTime + \"ms\\\" and \\\"\" + collectedEntry.endTime + \"ms\\\" is also being animated in a parallel animation between the times of \\\"\" + startTime + \"ms\\\" and \\\"\" + endTime + \"ms\\\"\");\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles[prop] = { startTime: startTime, endTime: endTime };\n }\n if (context.options) {\n validateStyleParams(tuple[prop], context.options, context.errors);\n }\n });\n });\n };\n AnimationAstBuilderVisitor.prototype.visitKeyframes = function (metadata, context) {\n var _this = this;\n var ast = { type: 5 /* Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(\"keyframes() must be placed inside of a call to animate()\");\n return ast;\n }\n var MAX_KEYFRAME_OFFSET = 1;\n var totalKeyframesWithOffsets = 0;\n var offsets = [];\n var offsetsOutOfOrder = false;\n var keyframesOutOfRange = false;\n var previousOffset = 0;\n var keyframes = metadata.steps.map(function (styles) {\n var style = _this._makeStyleAst(styles, context);\n var offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n var offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(\"Please ensure that all keyframe offsets are between 0 and 1\");\n }\n if (offsetsOutOfOrder) {\n context.errors.push(\"Please ensure that all keyframe offsets are in order\");\n }\n var length = metadata.steps.length;\n var generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(\"Not all style() steps within the declared keyframes() contain offsets\");\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n var limit = length - 1;\n var currentTime = context.currentTime;\n var currentAnimateTimings = context.currentAnimateTimings;\n var animateDuration = currentAnimateTimings.duration;\n keyframes.forEach(function (kf, i) {\n var offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n var durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n _this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n };\n AnimationAstBuilderVisitor.prototype.visitReference = function (metadata, context) {\n return {\n type: 8 /* Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitAnimateChild = function (metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitAnimateRef = function (metadata, context) {\n return {\n type: 10 /* AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitQuery = function (metadata, context) {\n var parentSelector = context.currentQuerySelector;\n var options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n var _a = __read(normalizeSelector(metadata.selector), 2), selector = _a[0], includeSelf = _a[1];\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetAsInMap(context.collectedStyles, context.currentQuerySelector, {});\n var animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* Query */,\n selector: selector,\n limit: options.limit || 0,\n optional: !!options.optional, includeSelf: includeSelf, animation: animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n };\n AnimationAstBuilderVisitor.prototype.visitStagger = function (metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(\"stagger() can only be used inside of query()\");\n }\n var timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context), timings: timings,\n options: null\n };\n };\n return AnimationAstBuilderVisitor;\n}());\nfunction normalizeSelector(selector) {\n var hasAmpersand = selector.split(/\\s*,\\s*/).find(function (token) { return token == SELF_TOKEN; }) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // the :enter and :leave selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, function (match) { return NG_TRIGGER_SELECTOR + '-' + match.substr(1); })\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nvar AnimationAstBuilderContext = /** @class */ (function () {\n function AnimationAstBuilderContext(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = {};\n this.options = null;\n }\n return AnimationAstBuilderContext;\n}());\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n var offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(function (styleTuple) {\n if (isObject(styleTuple) && styleTuple.hasOwnProperty('offset')) {\n var obj = styleTuple;\n offset = parseFloat(obj['offset']);\n delete obj['offset'];\n }\n });\n }\n else if (isObject(styles) && styles.hasOwnProperty('offset')) {\n var obj = styles;\n offset = parseFloat(obj['offset']);\n delete obj['offset'];\n }\n return offset;\n}\nfunction isObject(value) {\n return !Array.isArray(value) && typeof value == 'object';\n}\nfunction constructTimingAst(value, errors) {\n var timings = null;\n if (value.hasOwnProperty('duration')) {\n timings = value;\n }\n else if (typeof value == 'number') {\n var duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n var strValue = value;\n var isDynamic = strValue.split(/\\s+/).some(function (v) { return v.charAt(0) == '{' && v.charAt(1) == '{'; });\n if (isDynamic) {\n var ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n timings = timings || resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration: duration, delay: delay, easing: easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing, subTimeline) {\n if (easing === void 0) { easing = null; }\n if (subTimeline === void 0) { subTimeline = false; }\n return {\n type: 1 /* TimelineAnimation */,\n element: element,\n keyframes: keyframes,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n duration: duration,\n delay: delay,\n totalTime: duration + delay, easing: easing, subTimeline: subTimeline\n };\n}\n\nvar ElementInstructionMap = /** @class */ (function () {\n function ElementInstructionMap() {\n this._map = new Map();\n }\n ElementInstructionMap.prototype.consume = function (element) {\n var instructions = this._map.get(element);\n if (instructions) {\n this._map.delete(element);\n }\n else {\n instructions = [];\n }\n return instructions;\n };\n ElementInstructionMap.prototype.append = function (element, instructions) {\n var existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push.apply(existingInstructions, __spread(instructions));\n };\n ElementInstructionMap.prototype.has = function (element) { return this._map.has(element); };\n ElementInstructionMap.prototype.clear = function () { this._map.clear(); };\n return ElementInstructionMap;\n}());\n\nvar ONE_FRAME_IN_MILLISECONDS = 1;\nvar ENTER_TOKEN = ':enter';\nvar ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nvar LEAVE_TOKEN = ':leave';\nvar LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of prototypical inheritance, AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two wihtin a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergesort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill object. Given that each of the keyframe\n * styles are objects that prototypically inhert from the backFill object, this means that if a\n * value is added into the backFill then it will automatically propagate any missing values to all\n * keyframes. Therefore the missing `height` value will be properly filled into the already\n * processed keyframes.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * (For prototypically-inherited contents to be detected a `for(i in obj)` loop must be used.)\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors) {\n if (startingStyles === void 0) { startingStyles = {}; }\n if (finalStyles === void 0) { finalStyles = {}; }\n if (errors === void 0) { errors = []; }\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nvar AnimationTimelineBuilderVisitor = /** @class */ (function () {\n function AnimationTimelineBuilderVisitor() {\n }\n AnimationTimelineBuilderVisitor.prototype.buildKeyframes = function (driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors) {\n if (errors === void 0) { errors = []; }\n subInstructions = subInstructions || new ElementInstructionMap();\n var context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n var timelines = context.timelines.filter(function (timeline) { return timeline.containsAnimation(); });\n if (timelines.length && Object.keys(finalStyles).length) {\n var tl = timelines[timelines.length - 1];\n if (!tl.allowOnlyTimelineStyles()) {\n tl.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(function (timeline) { return timeline.buildKeyframes(); }) :\n [createTimelineInstruction(rootElement, [], [], [], 0, 0, '', false)];\n };\n AnimationTimelineBuilderVisitor.prototype.visitTrigger = function (ast, context) {\n // these values are not visited in this AST\n };\n AnimationTimelineBuilderVisitor.prototype.visitState = function (ast, context) {\n // these values are not visited in this AST\n };\n AnimationTimelineBuilderVisitor.prototype.visitTransition = function (ast, context) {\n // these values are not visited in this AST\n };\n AnimationTimelineBuilderVisitor.prototype.visitAnimateChild = function (ast, context) {\n var elementInstructions = context.subInstructions.consume(context.element);\n if (elementInstructions) {\n var innerContext = context.createSubContext(ast.options);\n var startTime = context.currentTimeline.currentTime;\n var endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitAnimateRef = function (ast, context) {\n var innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype._visitSubInstructions = function (instructions, context, options) {\n var startTime = context.currentTimeline.currentTime;\n var furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n var duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n var delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(function (instruction) {\n var instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n };\n AnimationTimelineBuilderVisitor.prototype.visitReference = function (ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitSequence = function (ast, context) {\n var _this = this;\n var subContextCount = context.subContextCount;\n var ctx = context;\n var options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(function (s) { return visitDslNode(_this, s, ctx); });\n // this is here just incase the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitGroup = function (ast, context) {\n var _this = this;\n var innerTimelines = [];\n var furthestTime = context.currentTimeline.currentTime;\n var delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(function (s) {\n var innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(_this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(function (timeline) { return context.currentTimeline.mergeTimelineCollectedStyles(timeline); });\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype._visitTiming = function (ast, context) {\n if (ast.dynamic) {\n var strValue = ast.strValue;\n var timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n };\n AnimationTimelineBuilderVisitor.prototype.visitAnimate = function (ast, context) {\n var timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n var timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n var style = ast.style;\n if (style.type == 5 /* Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitStyle = function (ast, context) {\n var timeline = context.currentTimeline;\n var timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.getCurrentStyleProperties().length) {\n timeline.forwardFrame();\n }\n var easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitKeyframes = function (ast, context) {\n var currentAnimateTimings = context.currentAnimateTimings;\n var startTime = (context.currentTimeline).duration;\n var duration = currentAnimateTimings.duration;\n var innerContext = context.createSubContext();\n var innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(function (step) {\n var offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitQuery = function (ast, context) {\n var _this = this;\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n var startTime = context.currentTimeline.currentTime;\n var options = (ast.options || {});\n var delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === 6 /* Style */ ||\n (startTime == 0 && context.currentTimeline.getCurrentStyleProperties().length))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n var furthestTime = startTime;\n var elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n var sameElementTimeline = null;\n elms.forEach(function (element, i) {\n context.currentQueryIndex = i;\n var innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(_this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n var endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n };\n AnimationTimelineBuilderVisitor.prototype.visitStagger = function (ast, context) {\n var parentContext = context.parentContext;\n var tl = context.currentTimeline;\n var timings = ast.timings;\n var duration = Math.abs(timings.duration);\n var maxTime = duration * (context.currentQueryTotal - 1);\n var delay = duration * context.currentQueryIndex;\n var staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n var timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n var startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n };\n return AnimationTimelineBuilderVisitor;\n}());\nvar DEFAULT_NOOP_PREVIOUS_NODE = {};\nvar AnimationTimelineContext = /** @class */ (function () {\n function AnimationTimelineContext(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n Object.defineProperty(AnimationTimelineContext.prototype, \"params\", {\n get: function () { return this.options.params; },\n enumerable: true,\n configurable: true\n });\n AnimationTimelineContext.prototype.updateOptions = function (options, skipIfExists) {\n var _this = this;\n if (!options)\n return;\n var newOptions = options;\n var optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n var newParams = newOptions.params;\n if (newParams) {\n var paramsToUpdate_1 = optionsToUpdate.params;\n if (!paramsToUpdate_1) {\n paramsToUpdate_1 = this.options.params = {};\n }\n Object.keys(newParams).forEach(function (name) {\n if (!skipIfExists || !paramsToUpdate_1.hasOwnProperty(name)) {\n paramsToUpdate_1[name] = interpolateParams(newParams[name], paramsToUpdate_1, _this.errors);\n }\n });\n }\n };\n AnimationTimelineContext.prototype._copyOptions = function () {\n var options = {};\n if (this.options) {\n var oldParams_1 = this.options.params;\n if (oldParams_1) {\n var params_1 = options['params'] = {};\n Object.keys(oldParams_1).forEach(function (name) { params_1[name] = oldParams_1[name]; });\n }\n }\n return options;\n };\n AnimationTimelineContext.prototype.createSubContext = function (options, element, newTime) {\n if (options === void 0) { options = null; }\n var target = element || this.element;\n var context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n };\n AnimationTimelineContext.prototype.transformIntoNewTimeline = function (newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n };\n AnimationTimelineContext.prototype.appendInstructionToTimeline = function (instruction, duration, delay) {\n var updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n var builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n };\n AnimationTimelineContext.prototype.incrementTime = function (time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n };\n AnimationTimelineContext.prototype.delayNextStep = function (delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n };\n AnimationTimelineContext.prototype.invokeQuery = function (selector, originalSelector, limit, includeSelf, optional, errors) {\n var results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // if :self is only used then the selector is empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n var multi = limit != 1;\n var elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push.apply(results, __spread(elements));\n }\n if (!optional && results.length == 0) {\n errors.push(\"`query(\\\"\" + originalSelector + \"\\\")` returned zero elements. (Use `query(\\\"\" + originalSelector + \"\\\", { optional: true })` if you wish to allow this.)\");\n }\n return results;\n };\n return AnimationTimelineContext;\n}());\nvar TimelineBuilder = /** @class */ (function () {\n function TimelineBuilder(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = {};\n this._currentKeyframe = {};\n this._keyframes = new Map();\n this._styleSummary = {};\n this._pendingStyles = {};\n this._backFill = {};\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._localTimelineStyles = Object.create(this._backFill, {});\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n TimelineBuilder.prototype.containsAnimation = function () {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.getCurrentStyleProperties().length > 0;\n default:\n return true;\n }\n };\n TimelineBuilder.prototype.getCurrentStyleProperties = function () { return Object.keys(this._currentKeyframe); };\n Object.defineProperty(TimelineBuilder.prototype, \"currentTime\", {\n get: function () { return this.startTime + this.duration; },\n enumerable: true,\n configurable: true\n });\n TimelineBuilder.prototype.delayNextStep = function (delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n var hasPreStyleStep = this._keyframes.size == 1 && Object.keys(this._pendingStyles).length;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n };\n TimelineBuilder.prototype.fork = function (element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n };\n TimelineBuilder.prototype._loadKeyframe = function () {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = Object.create(this._backFill, {});\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n };\n TimelineBuilder.prototype.forwardFrame = function () {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n };\n TimelineBuilder.prototype.forwardTime = function (time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n };\n TimelineBuilder.prototype._updateStyle = function (prop, value) {\n this._localTimelineStyles[prop] = value;\n this._globalTimelineStyles[prop] = value;\n this._styleSummary[prop] = { time: this.currentTime, value: value };\n };\n TimelineBuilder.prototype.allowOnlyTimelineStyles = function () { return this._currentEmptyStepKeyframe !== this._currentKeyframe; };\n TimelineBuilder.prototype.applyEmptyStep = function (easing) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n Object.keys(this._globalTimelineStyles).forEach(function (prop) {\n _this._backFill[prop] = _this._globalTimelineStyles[prop] || AUTO_STYLE;\n _this._currentKeyframe[prop] = AUTO_STYLE;\n });\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n };\n TimelineBuilder.prototype.setStyles = function (input, easing, errors, options) {\n var _this = this;\n if (easing) {\n this._previousKeyframe['easing'] = easing;\n }\n var params = (options && options.params) || {};\n var styles = flattenStyles(input, this._globalTimelineStyles);\n Object.keys(styles).forEach(function (prop) {\n var val = interpolateParams(styles[prop], params, errors);\n _this._pendingStyles[prop] = val;\n if (!_this._localTimelineStyles.hasOwnProperty(prop)) {\n _this._backFill[prop] = _this._globalTimelineStyles.hasOwnProperty(prop) ?\n _this._globalTimelineStyles[prop] :\n AUTO_STYLE;\n }\n _this._updateStyle(prop, val);\n });\n };\n TimelineBuilder.prototype.applyStylesToKeyframe = function () {\n var _this = this;\n var styles = this._pendingStyles;\n var props = Object.keys(styles);\n if (props.length == 0)\n return;\n this._pendingStyles = {};\n props.forEach(function (prop) {\n var val = styles[prop];\n _this._currentKeyframe[prop] = val;\n });\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n if (!_this._currentKeyframe.hasOwnProperty(prop)) {\n _this._currentKeyframe[prop] = _this._localTimelineStyles[prop];\n }\n });\n };\n TimelineBuilder.prototype.snapshotCurrentStyles = function () {\n var _this = this;\n Object.keys(this._localTimelineStyles).forEach(function (prop) {\n var val = _this._localTimelineStyles[prop];\n _this._pendingStyles[prop] = val;\n _this._updateStyle(prop, val);\n });\n };\n TimelineBuilder.prototype.getFinalKeyframe = function () { return this._keyframes.get(this.duration); };\n Object.defineProperty(TimelineBuilder.prototype, \"properties\", {\n get: function () {\n var properties = [];\n for (var prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n },\n enumerable: true,\n configurable: true\n });\n TimelineBuilder.prototype.mergeTimelineCollectedStyles = function (timeline) {\n var _this = this;\n Object.keys(timeline._styleSummary).forEach(function (prop) {\n var details0 = _this._styleSummary[prop];\n var details1 = timeline._styleSummary[prop];\n if (!details0 || details1.time > details0.time) {\n _this._updateStyle(prop, details1.value);\n }\n });\n };\n TimelineBuilder.prototype.buildKeyframes = function () {\n var _this = this;\n this.applyStylesToKeyframe();\n var preStyleProps = new Set();\n var postStyleProps = new Set();\n var isEmpty = this._keyframes.size === 1 && this.duration === 0;\n var finalKeyframes = [];\n this._keyframes.forEach(function (keyframe, time) {\n var finalKeyframe = copyStyles(keyframe, true);\n Object.keys(finalKeyframe).forEach(function (prop) {\n var value = finalKeyframe[prop];\n if (value == ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value == AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe['offset'] = time / _this.duration;\n }\n finalKeyframes.push(finalKeyframe);\n });\n var preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n var postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n var kf0 = finalKeyframes[0];\n var kf1 = copyObj(kf0);\n kf0['offset'] = 0;\n kf1['offset'] = 1;\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n };\n return TimelineBuilder;\n}());\nvar SubTimelineBuilder = /** @class */ (function (_super) {\n __extends(SubTimelineBuilder, _super);\n function SubTimelineBuilder(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe) {\n if (_stretchStartingKeyframe === void 0) { _stretchStartingKeyframe = false; }\n var _this = _super.call(this, driver, element, timings.delay) || this;\n _this.element = element;\n _this.keyframes = keyframes;\n _this.preStyleProps = preStyleProps;\n _this.postStyleProps = postStyleProps;\n _this._stretchStartingKeyframe = _stretchStartingKeyframe;\n _this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n return _this;\n }\n SubTimelineBuilder.prototype.containsAnimation = function () { return this.keyframes.length > 1; };\n SubTimelineBuilder.prototype.buildKeyframes = function () {\n var keyframes = this.keyframes;\n var _a = this.timings, delay = _a.delay, duration = _a.duration, easing = _a.easing;\n if (this._stretchStartingKeyframe && delay) {\n var newKeyframes = [];\n var totalTime = duration + delay;\n var startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n var newFirstKeyframe = copyStyles(keyframes[0], false);\n newFirstKeyframe['offset'] = 0;\n newKeyframes.push(newFirstKeyframe);\n var oldFirstKeyframe = copyStyles(keyframes[0], false);\n oldFirstKeyframe['offset'] = roundOffset(startingGap);\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still renderered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n var limit = keyframes.length - 1;\n for (var i = 1; i <= limit; i++) {\n var kf = copyStyles(keyframes[i], false);\n var oldOffset = kf['offset'];\n var timeAtKeyframe = delay + oldOffset * duration;\n kf['offset'] = roundOffset(timeAtKeyframe / totalTime);\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n };\n return SubTimelineBuilder;\n}(TimelineBuilder));\nfunction roundOffset(offset, decimalPoints) {\n if (decimalPoints === void 0) { decimalPoints = 3; }\n var mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n var styles = {};\n var allProperties;\n input.forEach(function (token) {\n if (token === '*') {\n allProperties = allProperties || Object.keys(allStyles);\n allProperties.forEach(function (prop) { styles[prop] = AUTO_STYLE; });\n }\n else {\n copyStyles(token, false, styles);\n }\n });\n return styles;\n}\n\nvar Animation = /** @class */ (function () {\n function Animation(_driver, input) {\n this._driver = _driver;\n var errors = [];\n var ast = buildAnimationAst(_driver, input, errors);\n if (errors.length) {\n var errorMessage = \"animation validation failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n this._animationAst = ast;\n }\n Animation.prototype.buildTimelines = function (element, startingStyles, destinationStyles, options, subInstructions) {\n var start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n var dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n var errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n var result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n var errorMessage = \"animation building failed:\\n\" + errors.join(\"\\n\");\n throw new Error(errorMessage);\n }\n return result;\n };\n return Animation;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @publicApi\n */\nvar AnimationStyleNormalizer = /** @class */ (function () {\n function AnimationStyleNormalizer() {\n }\n return AnimationStyleNormalizer;\n}());\n/**\n * @publicApi\n */\nvar NoopAnimationStyleNormalizer = /** @class */ (function () {\n function NoopAnimationStyleNormalizer() {\n }\n NoopAnimationStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) { return propertyName; };\n NoopAnimationStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n };\n return NoopAnimationStyleNormalizer;\n}());\n\nvar WebAnimationsStyleNormalizer = /** @class */ (function (_super) {\n __extends(WebAnimationsStyleNormalizer, _super);\n function WebAnimationsStyleNormalizer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n WebAnimationsStyleNormalizer.prototype.normalizePropertyName = function (propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n };\n WebAnimationsStyleNormalizer.prototype.normalizeStyleValue = function (userProvidedProperty, normalizedProperty, value, errors) {\n var unit = '';\n var strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_MAP[normalizedProperty] && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n var valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(\"Please provide a CSS unit value for \" + userProvidedProperty + \":\" + value);\n }\n }\n }\n return strVal + unit;\n };\n return WebAnimationsStyleNormalizer;\n}(AnimationStyleNormalizer));\nvar ɵ0$1 = function () { return makeBooleanMap('width,height,minWidth,minHeight,maxWidth,maxHeight,left,top,bottom,right,fontSize,outlineWidth,outlineOffset,paddingTop,paddingLeft,paddingBottom,paddingRight,marginTop,marginLeft,marginBottom,marginRight,borderRadius,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,textIndent,perspective'\n .split(',')); };\nvar DIMENSIONAL_PROP_MAP = (ɵ0$1)();\nfunction makeBooleanMap(keys) {\n var map = {};\n keys.forEach(function (key) { return map[key] = true; });\n return map;\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* TransitionAnimation */,\n element: element,\n triggerName: triggerName,\n isRemovalTransition: isRemovalTransition,\n fromState: fromState,\n fromStyles: fromStyles,\n toState: toState,\n toStyles: toStyles,\n timelines: timelines,\n queriedElements: queriedElements,\n preStyleProps: preStyleProps,\n postStyleProps: postStyleProps,\n totalTime: totalTime,\n errors: errors\n };\n}\n\nvar EMPTY_OBJECT = {};\nvar AnimationTransitionFactory = /** @class */ (function () {\n function AnimationTransitionFactory(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n AnimationTransitionFactory.prototype.match = function (currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n };\n AnimationTransitionFactory.prototype.buildStyles = function (stateName, params, errors) {\n var backupStateStyler = this._stateStyles['*'];\n var stateStyler = this._stateStyles[stateName];\n var backupStyles = backupStateStyler ? backupStateStyler.buildStyles(params, errors) : {};\n return stateStyler ? stateStyler.buildStyles(params, errors) : backupStyles;\n };\n AnimationTransitionFactory.prototype.build = function (driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n var errors = [];\n var transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n var currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n var currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n var nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n var nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n var queriedElements = new Set();\n var preStyleMap = new Map();\n var postStyleMap = new Map();\n var isRemoval = nextState === 'void';\n var animationOptions = { params: __assign(__assign({}, transitionAnimationParams), nextAnimationParams) };\n var timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n var totalTime = 0;\n timelines.forEach(function (tl) { totalTime = Math.max(tl.duration + tl.delay, totalTime); });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(function (tl) {\n var elm = tl.element;\n var preProps = getOrSetAsInMap(preStyleMap, elm, {});\n tl.preStyleProps.forEach(function (prop) { return preProps[prop] = true; });\n var postProps = getOrSetAsInMap(postStyleMap, elm, {});\n tl.postStyleProps.forEach(function (prop) { return postProps[prop] = true; });\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n var queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n };\n return AnimationTransitionFactory;\n}());\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(function (fn) { return fn(currentState, nextState, element, params); });\n}\nvar AnimationStateStyles = /** @class */ (function () {\n function AnimationStateStyles(styles, defaultParams) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n }\n AnimationStateStyles.prototype.buildStyles = function (params, errors) {\n var finalStyles = {};\n var combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(function (key) {\n var value = params[key];\n if (value != null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(function (value) {\n if (typeof value !== 'string') {\n var styleObj_1 = value;\n Object.keys(styleObj_1).forEach(function (prop) {\n var val = styleObj_1[prop];\n if (val.length > 1) {\n val = interpolateParams(val, combinedParams, errors);\n }\n finalStyles[prop] = val;\n });\n }\n });\n return finalStyles;\n };\n return AnimationStateStyles;\n}());\n\n/**\n * @publicApi\n */\nfunction buildTrigger(name, ast) {\n return new AnimationTrigger(name, ast);\n}\n/**\n* @publicApi\n*/\nvar AnimationTrigger = /** @class */ (function () {\n function AnimationTrigger(name, ast) {\n var _this = this;\n this.name = name;\n this.ast = ast;\n this.transitionFactories = [];\n this.states = {};\n ast.states.forEach(function (ast) {\n var defaultParams = (ast.options && ast.options.params) || {};\n _this.states[ast.name] = new AnimationStateStyles(ast.style, defaultParams);\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(function (ast) {\n _this.transitionFactories.push(new AnimationTransitionFactory(name, ast, _this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states);\n }\n Object.defineProperty(AnimationTrigger.prototype, \"containsQueries\", {\n get: function () { return this.ast.queryCount > 0; },\n enumerable: true,\n configurable: true\n });\n AnimationTrigger.prototype.matchTransition = function (currentState, nextState, element, params) {\n var entry = this.transitionFactories.find(function (f) { return f.match(currentState, nextState, element, params); });\n return entry || null;\n };\n AnimationTrigger.prototype.matchStyles = function (currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n };\n return AnimationTrigger;\n}());\nfunction createFallbackTransition(triggerName, states) {\n var matchers = [function (fromState, toState) { return true; }];\n var animation = { type: 2 /* Sequence */, steps: [], options: null };\n var transition = {\n type: 1 /* Transition */,\n animation: animation,\n matchers: matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(obj, key1, key2) {\n if (obj.hasOwnProperty(key1)) {\n if (!obj.hasOwnProperty(key2)) {\n obj[key2] = obj[key1];\n }\n }\n else if (obj.hasOwnProperty(key2)) {\n obj[key1] = obj[key2];\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nvar TimelineAnimationEngine = /** @class */ (function () {\n function TimelineAnimationEngine(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = {};\n this._playersById = {};\n this.players = [];\n }\n TimelineAnimationEngine.prototype.register = function (id, metadata) {\n var errors = [];\n var ast = buildAnimationAst(this._driver, metadata, errors);\n if (errors.length) {\n throw new Error(\"Unable to build the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n else {\n this._animations[id] = ast;\n }\n };\n TimelineAnimationEngine.prototype._buildPlayer = function (i, preStyles, postStyles) {\n var element = i.element;\n var keyframes = normalizeKeyframes(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n };\n TimelineAnimationEngine.prototype.create = function (id, element, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var errors = [];\n var ast = this._animations[id];\n var instructions;\n var autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, {}, {}, options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(function (inst) {\n var styles = getOrSetAsInMap(autoStylesMap, inst.element, {});\n inst.postStyleProps.forEach(function (prop) { return styles[prop] = null; });\n });\n }\n else {\n errors.push('The requested animation doesn\\'t exist or has already been destroyed');\n instructions = [];\n }\n if (errors.length) {\n throw new Error(\"Unable to create the animation due to the following errors: \" + errors.join(\"\\n\"));\n }\n autoStylesMap.forEach(function (styles, element) {\n Object.keys(styles).forEach(function (prop) { styles[prop] = _this._driver.computeStyle(element, prop, AUTO_STYLE); });\n });\n var players = instructions.map(function (i) {\n var styles = autoStylesMap.get(i.element);\n return _this._buildPlayer(i, {}, styles);\n });\n var player = optimizeGroupPlayer(players);\n this._playersById[id] = player;\n player.onDestroy(function () { return _this.destroy(id); });\n this.players.push(player);\n return player;\n };\n TimelineAnimationEngine.prototype.destroy = function (id) {\n var player = this._getPlayer(id);\n player.destroy();\n delete this._playersById[id];\n var index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n };\n TimelineAnimationEngine.prototype._getPlayer = function (id) {\n var player = this._playersById[id];\n if (!player) {\n throw new Error(\"Unable to find the timeline player referenced by \" + id);\n }\n return player;\n };\n TimelineAnimationEngine.prototype.listen = function (id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n var baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return function () { };\n };\n TimelineAnimationEngine.prototype.command = function (id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n var options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n var player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n };\n return TimelineAnimationEngine;\n}());\n\nvar QUEUED_CLASSNAME = 'ng-animate-queued';\nvar QUEUED_SELECTOR = '.ng-animate-queued';\nvar DISABLED_CLASSNAME = 'ng-animate-disabled';\nvar DISABLED_SELECTOR = '.ng-animate-disabled';\nvar STAR_CLASSNAME = 'ng-star-inserted';\nvar STAR_SELECTOR = '.ng-star-inserted';\nvar EMPTY_PLAYER_ARRAY = [];\nvar NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nvar NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nvar REMOVAL_FLAG = '__ng_removed';\nvar StateValue = /** @class */ (function () {\n function StateValue(input, namespaceId) {\n if (namespaceId === void 0) { namespaceId = ''; }\n this.namespaceId = namespaceId;\n var isObj = input && input.hasOwnProperty('value');\n var value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n var options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n Object.defineProperty(StateValue.prototype, \"params\", {\n get: function () { return this.options.params; },\n enumerable: true,\n configurable: true\n });\n StateValue.prototype.absorbOptions = function (options) {\n var newParams = options.params;\n if (newParams) {\n var oldParams_1 = this.options.params;\n Object.keys(newParams).forEach(function (prop) {\n if (oldParams_1[prop] == null) {\n oldParams_1[prop] = newParams[prop];\n }\n });\n }\n };\n return StateValue;\n}());\nvar VOID_VALUE = 'void';\nvar DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nvar AnimationTransitionNamespace = /** @class */ (function () {\n function AnimationTransitionNamespace(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = {};\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n AnimationTransitionNamespace.prototype.listen = function (element, name, phase, callback) {\n var _this = this;\n if (!this._triggers.hasOwnProperty(name)) {\n throw new Error(\"Unable to listen on the animation trigger event \\\"\" + phase + \"\\\" because the animation trigger \\\"\" + name + \"\\\" doesn't exist!\");\n }\n if (phase == null || phase.length == 0) {\n throw new Error(\"Unable to listen on the animation trigger \\\"\" + name + \"\\\" because the provided event is undefined!\");\n }\n if (!isTriggerEventValid(phase)) {\n throw new Error(\"The provided animation trigger event \\\"\" + phase + \"\\\" for the animation trigger \\\"\" + name + \"\\\" is not supported!\");\n }\n var listeners = getOrSetAsInMap(this._elementListeners, element, []);\n var data = { name: name, phase: phase, callback: callback };\n listeners.push(data);\n var triggersWithStates = getOrSetAsInMap(this._engine.statesByElement, element, {});\n if (!triggersWithStates.hasOwnProperty(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates[name] = DEFAULT_STATE_VALUE;\n }\n return function () {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n _this._engine.afterFlush(function () {\n var index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!_this._triggers[name]) {\n delete triggersWithStates[name];\n }\n });\n };\n };\n AnimationTransitionNamespace.prototype.register = function (name, ast) {\n if (this._triggers[name]) {\n // throw\n return false;\n }\n else {\n this._triggers[name] = ast;\n return true;\n }\n };\n AnimationTransitionNamespace.prototype._getTrigger = function (name) {\n var trigger = this._triggers[name];\n if (!trigger) {\n throw new Error(\"The provided animation trigger \\\"\" + name + \"\\\" has not been registered!\");\n }\n return trigger;\n };\n AnimationTransitionNamespace.prototype.trigger = function (element, triggerName, value, defaultToFallback) {\n var _this = this;\n if (defaultToFallback === void 0) { defaultToFallback = true; }\n var trigger = this._getTrigger(triggerName);\n var player = new TransitionAnimationPlayer(this.id, triggerName, element);\n var triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = {});\n }\n var fromState = triggersWithStates[triggerName];\n var toState = new StateValue(value, this.id);\n var isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates[triggerName] = toState;\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n var isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n var errors = [];\n var fromStyles_1 = trigger.matchStyles(fromState.value, fromState.params, errors);\n var toStyles_1 = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(function () {\n eraseStyles(element, fromStyles_1);\n setStyles(element, toStyles_1);\n });\n }\n }\n return;\n }\n var playersOnElement = getOrSetAsInMap(this._engine.playersByElement, element, []);\n playersOnElement.forEach(function (player) {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new palyer)\n if (player.namespaceId == _this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n var transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n var isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element: element, triggerName: triggerName, transition: transition, fromState: fromState, toState: toState, player: player, isFallbackTransition: isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(function () { removeClass(element, QUEUED_CLASSNAME); });\n }\n player.onDone(function () {\n var index = _this.players.indexOf(player);\n if (index >= 0) {\n _this.players.splice(index, 1);\n }\n var players = _this._engine.playersByElement.get(element);\n if (players) {\n var index_1 = players.indexOf(player);\n if (index_1 >= 0) {\n players.splice(index_1, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n };\n AnimationTransitionNamespace.prototype.deregister = function (name) {\n var _this = this;\n delete this._triggers[name];\n this._engine.statesByElement.forEach(function (stateMap, element) { delete stateMap[name]; });\n this._elementListeners.forEach(function (listeners, element) {\n _this._elementListeners.set(element, listeners.filter(function (entry) { return entry.name != name; }));\n });\n };\n AnimationTransitionNamespace.prototype.clearElementCache = function (element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n var elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(function (player) { return player.destroy(); });\n this._engine.playersByElement.delete(element);\n }\n };\n AnimationTransitionNamespace.prototype._signalRemovalForInnerTriggers = function (rootElement, context) {\n var _this = this;\n var elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(function (elm) {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n var namespaces = _this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(function (ns) { return ns.triggerLeaveAnimation(elm, context, false, true); });\n }\n else {\n _this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(function () { return elements.forEach(function (elm) { return _this.clearElementCache(elm); }); });\n };\n AnimationTransitionNamespace.prototype.triggerLeaveAnimation = function (element, context, destroyAfterComplete, defaultToFallback) {\n var _this = this;\n var triggerStates = this._engine.statesByElement.get(element);\n if (triggerStates) {\n var players_1 = [];\n Object.keys(triggerStates).forEach(function (triggerName) {\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (_this._triggers[triggerName]) {\n var player = _this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players_1.push(player);\n }\n }\n });\n if (players_1.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players_1).onDone(function () { return _this._engine.processLeaveNode(element); });\n }\n return true;\n }\n }\n return false;\n };\n AnimationTransitionNamespace.prototype.prepareLeaveAnimationListeners = function (element) {\n var _this = this;\n var listeners = this._elementListeners.get(element);\n if (listeners) {\n var visitedTriggers_1 = new Set();\n listeners.forEach(function (listener) {\n var triggerName = listener.name;\n if (visitedTriggers_1.has(triggerName))\n return;\n visitedTriggers_1.add(triggerName);\n var trigger = _this._triggers[triggerName];\n var transition = trigger.fallbackTransition;\n var elementStates = _this._engine.statesByElement.get(element);\n var fromState = elementStates[triggerName] || DEFAULT_STATE_VALUE;\n var toState = new StateValue(VOID_VALUE);\n var player = new TransitionAnimationPlayer(_this.id, triggerName, element);\n _this._engine.totalQueuedPlayers++;\n _this._queue.push({\n element: element,\n triggerName: triggerName,\n transition: transition,\n fromState: fromState,\n toState: toState,\n player: player,\n isFallbackTransition: true\n });\n });\n }\n };\n AnimationTransitionNamespace.prototype.removeNode = function (element, context) {\n var _this = this;\n var engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n var containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n var currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n var parent_1 = element;\n while (parent_1 = parent_1.parentNode) {\n var triggers = engine.statesByElement.get(parent_1);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n var removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(function () { return _this.clearElementCache(element); });\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n };\n AnimationTransitionNamespace.prototype.insertNode = function (element, parent) { addClass(element, this._hostClassName); };\n AnimationTransitionNamespace.prototype.drainQueuedTransitions = function (microtaskId) {\n var _this = this;\n var instructions = [];\n this._queue.forEach(function (entry) {\n var player = entry.player;\n if (player.destroyed)\n return;\n var element = entry.element;\n var listeners = _this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(function (listener) {\n if (listener.name == entry.triggerName) {\n var baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n _this._engine.afterFlush(function () {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort(function (a, b) {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n var d0 = a.transition.ast.depCount;\n var d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return _this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n };\n AnimationTransitionNamespace.prototype.destroy = function (context) {\n this.players.forEach(function (p) { return p.destroy(); });\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n };\n AnimationTransitionNamespace.prototype.elementContainsData = function (element) {\n var containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(function (entry) { return entry.element === element; }) ? true : false) || containsData;\n return containsData;\n };\n return AnimationTransitionNamespace;\n}());\nvar TransitionAnimationEngine = /** @class */ (function () {\n function TransitionAnimationEngine(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = function (element, context) { };\n }\n /** @internal */\n TransitionAnimationEngine.prototype._onRemovalComplete = function (element, context) { this.onRemovalComplete(element, context); };\n Object.defineProperty(TransitionAnimationEngine.prototype, \"queuedPlayers\", {\n get: function () {\n var players = [];\n this._namespaceList.forEach(function (ns) {\n ns.players.forEach(function (player) {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n },\n enumerable: true,\n configurable: true\n });\n TransitionAnimationEngine.prototype.createNamespace = function (namespaceId, hostElement) {\n var ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (hostElement.parentNode) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is apart of the animation code, it\n // may or may not be inserted by a parent node that is an of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n };\n TransitionAnimationEngine.prototype._balanceNamespaceList = function (ns, hostElement) {\n var limit = this._namespaceList.length - 1;\n if (limit >= 0) {\n var found = false;\n for (var i = limit; i >= 0; i--) {\n var nextNamespace = this._namespaceList[i];\n if (this.driver.containsElement(nextNamespace.hostElement, hostElement)) {\n this._namespaceList.splice(i + 1, 0, ns);\n found = true;\n break;\n }\n }\n if (!found) {\n this._namespaceList.splice(0, 0, ns);\n }\n }\n else {\n this._namespaceList.push(ns);\n }\n this.namespacesByHostElement.set(hostElement, ns);\n return ns;\n };\n TransitionAnimationEngine.prototype.register = function (namespaceId, hostElement) {\n var ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n };\n TransitionAnimationEngine.prototype.registerTrigger = function (namespaceId, name, trigger) {\n var ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n };\n TransitionAnimationEngine.prototype.destroy = function (namespaceId, context) {\n var _this = this;\n if (!namespaceId)\n return;\n var ns = this._fetchNamespace(namespaceId);\n this.afterFlush(function () {\n _this.namespacesByHostElement.delete(ns.hostElement);\n delete _this._namespaceLookup[namespaceId];\n var index = _this._namespaceList.indexOf(ns);\n if (index >= 0) {\n _this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(function () { return ns.destroy(context); });\n };\n TransitionAnimationEngine.prototype._fetchNamespace = function (id) { return this._namespaceLookup[id]; };\n TransitionAnimationEngine.prototype.fetchNamespacesByElement = function (element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply the dedupe\n // of namespaces incase there are multiple triggers both the elm and host\n var namespaces = new Set();\n var elementStates = this.statesByElement.get(element);\n if (elementStates) {\n var keys = Object.keys(elementStates);\n for (var i = 0; i < keys.length; i++) {\n var nsId = elementStates[keys[i]].namespaceId;\n if (nsId) {\n var ns = this._fetchNamespace(nsId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n };\n TransitionAnimationEngine.prototype.trigger = function (namespaceId, element, name, value) {\n if (isElementNode(element)) {\n var ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n };\n TransitionAnimationEngine.prototype.insertNode = function (namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n var details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n var index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n var ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n };\n TransitionAnimationEngine.prototype.collectEnterElement = function (element) { this.collectedEnterElements.push(element); };\n TransitionAnimationEngine.prototype.markElementAsDisabled = function (element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n };\n TransitionAnimationEngine.prototype.removeNode = function (namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n var ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n var hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n };\n TransitionAnimationEngine.prototype.markElementAsRemoved = function (namespaceId, element, hasAnimation, context) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId: namespaceId,\n setForRemoval: context, hasAnimation: hasAnimation,\n removedBeforeQueried: false\n };\n };\n TransitionAnimationEngine.prototype.listen = function (namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return function () { };\n };\n TransitionAnimationEngine.prototype._buildInstruction = function (entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n };\n TransitionAnimationEngine.prototype.destroyInnerAnimations = function (containerElement) {\n var _this = this;\n var elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(function (element) { return _this.destroyActiveAnimationsForElement(element); });\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(function (element) { return _this.finishActiveQueriedAnimationOnElement(element); });\n };\n TransitionAnimationEngine.prototype.destroyActiveAnimationsForElement = function (element) {\n var players = this.playersByElement.get(element);\n if (players) {\n players.forEach(function (player) {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n };\n TransitionAnimationEngine.prototype.finishActiveQueriedAnimationOnElement = function (element) {\n var players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(function (player) { return player.finish(); });\n }\n };\n TransitionAnimationEngine.prototype.whenRenderingDone = function () {\n var _this = this;\n return new Promise(function (resolve) {\n if (_this.players.length) {\n return optimizeGroupPlayer(_this.players).onDone(function () { return resolve(); });\n }\n else {\n resolve();\n }\n });\n };\n TransitionAnimationEngine.prototype.processLeaveNode = function (element) {\n var _this = this;\n var details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n var ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (this.driver.matchesElement(element, DISABLED_SELECTOR)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(function (node) {\n _this.markElementAsDisabled(node, false);\n });\n };\n TransitionAnimationEngine.prototype.flush = function (microtaskId) {\n var _this = this;\n if (microtaskId === void 0) { microtaskId = -1; }\n var players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach(function (ns, element) { return _this._balanceNamespaceList(ns, element); });\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (var i = 0; i < this.collectedEnterElements.length; i++) {\n var elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n var cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (var i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (var i = 0; i < this.collectedLeaveElements.length; i++) {\n var element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(function (fn) { return fn(); });\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n var quietFns_1 = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(function () { quietFns_1.forEach(function (fn) { return fn(); }); });\n }\n else {\n quietFns_1.forEach(function (fn) { return fn(); });\n }\n }\n };\n TransitionAnimationEngine.prototype.reportError = function (errors) {\n throw new Error(\"Unable to process animations due to the following failed trigger transitions\\n \" + errors.join('\\n'));\n };\n TransitionAnimationEngine.prototype._flushAnimations = function (cleanupFns, microtaskId) {\n var _this = this;\n var subTimelines = new ElementInstructionMap();\n var skippedPlayers = [];\n var skippedPlayersMap = new Map();\n var queuedInstructions = [];\n var queriedElements = new Map();\n var allPreStyleElements = new Map();\n var allPostStyleElements = new Map();\n var disabledElementsSet = new Set();\n this.disabledNodes.forEach(function (node) {\n disabledElementsSet.add(node);\n var nodesThatAreDisabled = _this.driver.query(node, QUEUED_SELECTOR, true);\n for (var i_1 = 0; i_1 < nodesThatAreDisabled.length; i_1++) {\n disabledElementsSet.add(nodesThatAreDisabled[i_1]);\n }\n });\n var bodyNode = this.bodyNode;\n var allTriggerElements = Array.from(this.statesByElement.keys());\n var enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n var enterNodeMapIds = new Map();\n var i = 0;\n enterNodeMap.forEach(function (nodes, root) {\n var className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(function (node) { return addClass(node, className); });\n });\n var allLeaveNodes = [];\n var mergedLeaveNodes = new Set();\n var leaveNodesWithoutAnimations = new Set();\n for (var i_2 = 0; i_2 < this.collectedLeaveElements.length; i_2++) {\n var element = this.collectedLeaveElements[i_2];\n var details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(function (elm) { return mergedLeaveNodes.add(elm); });\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n var leaveNodeMapIds = new Map();\n var leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach(function (nodes, root) {\n var className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(function (node) { return addClass(node, className); });\n });\n cleanupFns.push(function () {\n enterNodeMap.forEach(function (nodes, root) {\n var className = enterNodeMapIds.get(root);\n nodes.forEach(function (node) { return removeClass(node, className); });\n });\n leaveNodeMap.forEach(function (nodes, root) {\n var className = leaveNodeMapIds.get(root);\n nodes.forEach(function (node) { return removeClass(node, className); });\n });\n allLeaveNodes.forEach(function (element) { _this.processLeaveNode(element); });\n });\n var allPlayers = [];\n var erroneousTransitions = [];\n for (var i_3 = this._namespaceList.length - 1; i_3 >= 0; i_3--) {\n var ns = this._namespaceList[i_3];\n ns.drainQueuedTransitions(microtaskId).forEach(function (entry) {\n var player = entry.player;\n var element = entry.element;\n allPlayers.push(player);\n if (_this.collectedEnterElements.length) {\n var details = element[REMOVAL_FLAG];\n // move animations are currently not supported...\n if (details && details.setForMove) {\n player.destroy();\n return;\n }\n }\n var nodeIsOrphaned = !bodyNode || !_this.driver.containsElement(bodyNode, element);\n var leaveClassName = leaveNodeMapIds.get(element);\n var enterClassName = enterNodeMapIds.get(element);\n var instruction = _this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be apart of the DOM, it may\n // still be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important we still style the element.\n if (nodeIsOrphaned) {\n player.onStart(function () { return eraseStyles(element, instruction.fromStyles); });\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n skippedPlayers.push(player);\n return;\n }\n // if a unmatched transition is queued to go then it SHOULD NOT render\n // an animation and cancel the previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(function () { return eraseStyles(element, instruction.fromStyles); });\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub trigger\n // then it will instruct the timeline builder to not add a player delay, but\n // instead stretch the first keyframe gap up until the animation starts. The\n // reason this is important is to prevent extra initialization styles from being\n // required by the user in the animation.\n instruction.timelines.forEach(function (tl) { return tl.stretchStartingKeyframe = true; });\n subTimelines.append(element, instruction.timelines);\n var tuple = { instruction: instruction, player: player, element: element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(function (element) { return getOrSetAsInMap(queriedElements, element, []).push(player); });\n instruction.preStyleProps.forEach(function (stringMap, element) {\n var props = Object.keys(stringMap);\n if (props.length) {\n var setVal_1 = allPreStyleElements.get(element);\n if (!setVal_1) {\n allPreStyleElements.set(element, setVal_1 = new Set());\n }\n props.forEach(function (prop) { return setVal_1.add(prop); });\n }\n });\n instruction.postStyleProps.forEach(function (stringMap, element) {\n var props = Object.keys(stringMap);\n var setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n props.forEach(function (prop) { return setVal.add(prop); });\n });\n });\n }\n if (erroneousTransitions.length) {\n var errors_1 = [];\n erroneousTransitions.forEach(function (instruction) {\n errors_1.push(\"@\" + instruction.triggerName + \" has failed due to:\\n\");\n instruction.errors.forEach(function (error) { return errors_1.push(\"- \" + error + \"\\n\"); });\n });\n allPlayers.forEach(function (player) { return player.destroy(); });\n this.reportError(errors_1);\n }\n var allPreviousPlayersMap = new Map();\n // this map works to tell which element in the DOM tree is contained by\n // which animation. Further down below this map will get populated once\n // the players are built and in doing so it can efficiently figure out\n // if a sub player is skipped due to a parent player having priority.\n var animationElementMap = new Map();\n queuedInstructions.forEach(function (entry) {\n var element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n _this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(function (player) {\n var element = player.element;\n var previousPlayers = _this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(function (prevPlayer) {\n getOrSetAsInMap(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed (either by)\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or auto since the element\n // that is being getComputedStyle'd will not be visible (since * = destination)\n var replaceNodes = allLeaveNodes.filter(function (node) {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n var postStylesMap = new Map();\n var allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(function (node) {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n var preStylesMap = new Map();\n enterNodeMap.forEach(function (nodes, root) {\n cloakAndComputeStyles(preStylesMap, _this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(function (node) {\n var post = postStylesMap.get(node);\n var pre = preStylesMap.get(node);\n postStylesMap.set(node, __assign(__assign({}, post), pre));\n });\n var rootPlayers = [];\n var subPlayers = [];\n var NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(function (entry) {\n var element = entry.element, player = entry.player, instruction = entry.instruction;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n var parentWithAnimation_1 = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n var elm = element;\n var parentsToAdd = [];\n while (elm = elm.parentNode) {\n var detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation_1 = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(function (parent) { return animationElementMap.set(parent, parentWithAnimation_1); });\n }\n var innerPlayer = _this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation_1 === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n var parentPlayers = _this.playersByElement.get(parentWithAnimation_1);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(function () { return setStyles(element, instruction.toStyles); });\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation player\n subPlayers.forEach(function (player) {\n // even if any players are not found for a sub animation then it\n // will still complete itself after the next tick since it's Noop\n var playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n var innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(function (player) {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (var i_4 = 0; i_4 < allLeaveNodes.length; i_4++) {\n var element = allLeaveNodes[i_4];\n var details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n var players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n var queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push.apply(players, __spread(queriedPlayerResults));\n }\n var queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (var j = 0; j < queriedInnerElements.length; j++) {\n var queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push.apply(players, __spread(queriedPlayers));\n }\n }\n }\n var activePlayers = players.filter(function (p) { return !p.destroyed; });\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(function (player) {\n _this.players.push(player);\n player.onDone(function () {\n player.destroy();\n var index = _this.players.indexOf(player);\n _this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n };\n TransitionAnimationEngine.prototype.elementContainsData = function (namespaceId, element) {\n var containsData = false;\n var details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n };\n TransitionAnimationEngine.prototype.afterFlush = function (callback) { this._flushFns.push(callback); };\n TransitionAnimationEngine.prototype.afterFlushAnimationsDone = function (callback) { this._whenQuietFns.push(callback); };\n TransitionAnimationEngine.prototype._getPreviousPlayers = function (element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n var players = [];\n if (isQueriedElement) {\n var queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n var elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n var isRemovalAnimation_1 = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(function (player) {\n if (player.queued)\n return;\n if (!isRemovalAnimation_1 && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(function (player) {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n };\n TransitionAnimationEngine.prototype._beforeAnimationBuild = function (namespaceId, instruction, allPreviousPlayersMap) {\n var e_1, _a;\n var triggerName = instruction.triggerName;\n var rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n var targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n var targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n var _loop_1 = function (timelineInstruction) {\n var element = timelineInstruction.element;\n var isQueriedElement = element !== rootElement;\n var players = getOrSetAsInMap(allPreviousPlayersMap, element, []);\n var previousPlayers = this_1._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(function (player) {\n var realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n };\n var this_1 = this;\n try {\n for (var _b = __values(instruction.timelines), _c = _b.next(); !_c.done; _c = _b.next()) {\n var timelineInstruction = _c.value;\n _loop_1(timelineInstruction);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n };\n TransitionAnimationEngine.prototype._buildAnimation = function (namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n var _this = this;\n var triggerName = instruction.triggerName;\n var rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n var allQueriedPlayers = [];\n var allConsumedElements = new Set();\n var allSubElements = new Set();\n var allNewPlayers = instruction.timelines.map(function (timelineInstruction) {\n var element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n var details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n var isQueriedElement = element !== rootElement;\n var previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(function (p) { return p.getRealPlayer(); }))\n .filter(function (p) {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n var pp = p;\n return pp.element ? pp.element === element : false;\n });\n var preStyles = preStylesMap.get(element);\n var postStyles = postStylesMap.get(element);\n var keyframes = normalizeKeyframes(_this.driver, _this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n var player = _this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n var wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(function (player) {\n getOrSetAsInMap(_this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(function () { return deleteOrUnsetInMap(_this.playersByQueriedElement, player.element, player); });\n });\n allConsumedElements.forEach(function (element) { return addClass(element, NG_ANIMATING_CLASSNAME); });\n var player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(function () {\n allConsumedElements.forEach(function (element) { return removeClass(element, NG_ANIMATING_CLASSNAME); });\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(function (element) { getOrSetAsInMap(skippedPlayersMap, element, []).push(player); });\n return player;\n };\n TransitionAnimationEngine.prototype._buildPlayer = function (instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n };\n return TransitionAnimationEngine;\n}());\nvar TransitionAnimationPlayer = /** @class */ (function () {\n function TransitionAnimationPlayer(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = {};\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n TransitionAnimationPlayer.prototype.setRealPlayer = function (player) {\n var _this = this;\n if (this._containsRealPlayer)\n return;\n this._player = player;\n Object.keys(this._queuedCallbacks).forEach(function (phase) {\n _this._queuedCallbacks[phase].forEach(function (callback) { return listenOnPlayer(player, phase, undefined, callback); });\n });\n this._queuedCallbacks = {};\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n };\n TransitionAnimationPlayer.prototype.getRealPlayer = function () { return this._player; };\n TransitionAnimationPlayer.prototype.overrideTotalTime = function (totalTime) { this.totalTime = totalTime; };\n TransitionAnimationPlayer.prototype.syncPlayerEvents = function (player) {\n var _this = this;\n var p = this._player;\n if (p.triggerCallback) {\n player.onStart(function () { return p.triggerCallback('start'); });\n }\n player.onDone(function () { return _this.finish(); });\n player.onDestroy(function () { return _this.destroy(); });\n };\n TransitionAnimationPlayer.prototype._queueEvent = function (name, callback) {\n getOrSetAsInMap(this._queuedCallbacks, name, []).push(callback);\n };\n TransitionAnimationPlayer.prototype.onDone = function (fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n };\n TransitionAnimationPlayer.prototype.onStart = function (fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n };\n TransitionAnimationPlayer.prototype.onDestroy = function (fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n };\n TransitionAnimationPlayer.prototype.init = function () { this._player.init(); };\n TransitionAnimationPlayer.prototype.hasStarted = function () { return this.queued ? false : this._player.hasStarted(); };\n TransitionAnimationPlayer.prototype.play = function () { !this.queued && this._player.play(); };\n TransitionAnimationPlayer.prototype.pause = function () { !this.queued && this._player.pause(); };\n TransitionAnimationPlayer.prototype.restart = function () { !this.queued && this._player.restart(); };\n TransitionAnimationPlayer.prototype.finish = function () { this._player.finish(); };\n TransitionAnimationPlayer.prototype.destroy = function () {\n this.destroyed = true;\n this._player.destroy();\n };\n TransitionAnimationPlayer.prototype.reset = function () { !this.queued && this._player.reset(); };\n TransitionAnimationPlayer.prototype.setPosition = function (p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n };\n TransitionAnimationPlayer.prototype.getPosition = function () { return this.queued ? 0 : this._player.getPosition(); };\n /** @internal */\n TransitionAnimationPlayer.prototype.triggerCallback = function (phaseName) {\n var p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n };\n return TransitionAnimationPlayer;\n}());\nfunction deleteOrUnsetInMap(map, key, value) {\n var currentValues;\n if (map instanceof Map) {\n currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n var index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n }\n else {\n currentValues = map[key];\n if (currentValues) {\n if (currentValues.length) {\n var index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n delete map[key];\n }\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n var oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n var cloakVals = [];\n elements.forEach(function (element) { return cloakVals.push(cloakElement(element)); });\n var failedElements = [];\n elementPropsMap.forEach(function (props, element) {\n var styles = {};\n props.forEach(function (prop) {\n var value = styles[prop] = driver.computeStyle(element, prop, defaultStyle);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n var i = 0;\n elements.forEach(function (element) { return cloakElement(element, cloakVals[i++]); });\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n var rootMap = new Map();\n roots.forEach(function (root) { return rootMap.set(root, []); });\n if (nodes.length == 0)\n return rootMap;\n var NULL_NODE = 1;\n var nodeSet = new Set(nodes);\n var localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n var root = localRootMap.get(node);\n if (root)\n return root;\n var parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(function (node) {\n var root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nvar CLASSES_CACHE_KEY = '$$classes';\nfunction containsClass(element, className) {\n if (element.classList) {\n return element.classList.contains(className);\n }\n else {\n var classes = element[CLASSES_CACHE_KEY];\n return classes && classes[className];\n }\n}\nfunction addClass(element, className) {\n if (element.classList) {\n element.classList.add(className);\n }\n else {\n var classes = element[CLASSES_CACHE_KEY];\n if (!classes) {\n classes = element[CLASSES_CACHE_KEY] = {};\n }\n classes[className] = true;\n }\n}\nfunction removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n }\n else {\n var classes = element[CLASSES_CACHE_KEY];\n if (classes) {\n delete classes[className];\n }\n }\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(function () { return engine.processLeaveNode(element); });\n}\nfunction flattenGroupPlayers(players) {\n var finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (var i = 0; i < players.length; i++) {\n var player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n var k1 = Object.keys(a);\n var k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (var i = 0; i < k1.length; i++) {\n var prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n var postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n var preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(function (data) { return preEntry.add(data); });\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nvar AnimationEngine = /** @class */ (function () {\n function AnimationEngine(bodyNode, _driver, normalizer) {\n var _this = this;\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = function (element, context) { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, normalizer);\n this._transitionEngine.onRemovalComplete = function (element, context) {\n return _this.onRemovalComplete(element, context);\n };\n }\n AnimationEngine.prototype.registerTrigger = function (componentId, namespaceId, hostElement, name, metadata) {\n var cacheKey = componentId + '-' + name;\n var trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n var errors = [];\n var ast = buildAnimationAst(this._driver, metadata, errors);\n if (errors.length) {\n throw new Error(\"The animation trigger \\\"\" + name + \"\\\" has failed to build due to the following errors:\\n - \" + errors.join(\"\\n - \"));\n }\n trigger = buildTrigger(name, ast);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n };\n AnimationEngine.prototype.register = function (namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n };\n AnimationEngine.prototype.destroy = function (namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n };\n AnimationEngine.prototype.onInsert = function (namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n };\n AnimationEngine.prototype.onRemove = function (namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n };\n AnimationEngine.prototype.disableAnimations = function (element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n };\n AnimationEngine.prototype.process = function (namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n var _a = __read(parseTimelineCommand(property), 2), id = _a[0], action = _a[1];\n var args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n };\n AnimationEngine.prototype.listen = function (namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n var _a = __read(parseTimelineCommand(eventName), 2), id = _a[0], action = _a[1];\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n };\n AnimationEngine.prototype.flush = function (microtaskId) {\n if (microtaskId === void 0) { microtaskId = -1; }\n this._transitionEngine.flush(microtaskId);\n };\n Object.defineProperty(AnimationEngine.prototype, \"players\", {\n get: function () {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n },\n enumerable: true,\n configurable: true\n });\n AnimationEngine.prototype.whenRenderingDone = function () { return this._transitionEngine.whenRenderingDone(); };\n return AnimationEngine;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n var startStyles = null;\n var endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nvar SpecialCasedStyles = /** @class */ (function () {\n function SpecialCasedStyles(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* Pending */;\n var initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = {});\n }\n this._initialStyles = initialStyles;\n }\n SpecialCasedStyles.prototype.start = function () {\n if (this._state < 1 /* Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* Started */;\n }\n };\n SpecialCasedStyles.prototype.finish = function () {\n this.start();\n if (this._state < 2 /* Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* Started */;\n }\n };\n SpecialCasedStyles.prototype.destroy = function () {\n this.finish();\n if (this._state < 3 /* Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* Destroyed */;\n }\n };\n SpecialCasedStyles.initialStylesByElement = new WeakMap();\n return SpecialCasedStyles;\n}());\nfunction filterNonAnimatableStyles(styles) {\n var result = null;\n var props = Object.keys(styles);\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n if (isNonAnimatableStyle(prop)) {\n result = result || {};\n result[prop] = styles[prop];\n }\n }\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ELAPSED_TIME_MAX_DECIMAL_PLACES = 3;\nvar ANIMATION_PROP = 'animation';\nvar ANIMATIONEND_EVENT = 'animationend';\nvar ONE_SECOND$1 = 1000;\nvar ElementAnimationStyleHandler = /** @class */ (function () {\n function ElementAnimationStyleHandler(_element, _name, _duration, _delay, _easing, _fillMode, _onDoneFn) {\n var _this = this;\n this._element = _element;\n this._name = _name;\n this._duration = _duration;\n this._delay = _delay;\n this._easing = _easing;\n this._fillMode = _fillMode;\n this._onDoneFn = _onDoneFn;\n this._finished = false;\n this._destroyed = false;\n this._startTime = 0;\n this._position = 0;\n this._eventFn = function (e) { return _this._handleCallback(e); };\n }\n ElementAnimationStyleHandler.prototype.apply = function () {\n applyKeyframeAnimation(this._element, this._duration + \"ms \" + this._easing + \" \" + this._delay + \"ms 1 normal \" + this._fillMode + \" \" + this._name);\n addRemoveAnimationEvent(this._element, this._eventFn, false);\n this._startTime = Date.now();\n };\n ElementAnimationStyleHandler.prototype.pause = function () { playPauseAnimation(this._element, this._name, 'paused'); };\n ElementAnimationStyleHandler.prototype.resume = function () { playPauseAnimation(this._element, this._name, 'running'); };\n ElementAnimationStyleHandler.prototype.setPosition = function (position) {\n var index = findIndexForAnimation(this._element, this._name);\n this._position = position * this._duration;\n setAnimationStyle(this._element, 'Delay', \"-\" + this._position + \"ms\", index);\n };\n ElementAnimationStyleHandler.prototype.getPosition = function () { return this._position; };\n ElementAnimationStyleHandler.prototype._handleCallback = function (event) {\n var timestamp = event._ngTestManualTimestamp || Date.now();\n var elapsedTime = parseFloat(event.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES)) * ONE_SECOND$1;\n if (event.animationName == this._name &&\n Math.max(timestamp - this._startTime, 0) >= this._delay && elapsedTime >= this._duration) {\n this.finish();\n }\n };\n ElementAnimationStyleHandler.prototype.finish = function () {\n if (this._finished)\n return;\n this._finished = true;\n this._onDoneFn();\n addRemoveAnimationEvent(this._element, this._eventFn, true);\n };\n ElementAnimationStyleHandler.prototype.destroy = function () {\n if (this._destroyed)\n return;\n this._destroyed = true;\n this.finish();\n removeKeyframeAnimation(this._element, this._name);\n };\n return ElementAnimationStyleHandler;\n}());\nfunction playPauseAnimation(element, name, status) {\n var index = findIndexForAnimation(element, name);\n setAnimationStyle(element, 'PlayState', status, index);\n}\nfunction applyKeyframeAnimation(element, value) {\n var anim = getAnimationStyle(element, '').trim();\n var index = 0;\n if (anim.length) {\n index = countChars(anim, ',') + 1;\n value = anim + \", \" + value;\n }\n setAnimationStyle(element, '', value);\n return index;\n}\nfunction removeKeyframeAnimation(element, name) {\n var anim = getAnimationStyle(element, '');\n var tokens = anim.split(',');\n var index = findMatchingTokenIndex(tokens, name);\n if (index >= 0) {\n tokens.splice(index, 1);\n var newValue = tokens.join(',');\n setAnimationStyle(element, '', newValue);\n }\n}\nfunction findIndexForAnimation(element, value) {\n var anim = getAnimationStyle(element, '');\n if (anim.indexOf(',') > 0) {\n var tokens = anim.split(',');\n return findMatchingTokenIndex(tokens, value);\n }\n return findMatchingTokenIndex([anim], value);\n}\nfunction findMatchingTokenIndex(tokens, searchToken) {\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(searchToken) >= 0) {\n return i;\n }\n }\n return -1;\n}\nfunction addRemoveAnimationEvent(element, fn, doRemove) {\n doRemove ? element.removeEventListener(ANIMATIONEND_EVENT, fn) :\n element.addEventListener(ANIMATIONEND_EVENT, fn);\n}\nfunction setAnimationStyle(element, name, value, index) {\n var prop = ANIMATION_PROP + name;\n if (index != null) {\n var oldValue = element.style[prop];\n if (oldValue.length) {\n var tokens = oldValue.split(',');\n tokens[index] = value;\n value = tokens.join(',');\n }\n }\n element.style[prop] = value;\n}\nfunction getAnimationStyle(element, name) {\n return element.style[ANIMATION_PROP + name];\n}\nfunction countChars(value, char) {\n var count = 0;\n for (var i = 0; i < value.length; i++) {\n var c = value.charAt(i);\n if (c === char)\n count++;\n }\n return count;\n}\n\nvar DEFAULT_FILL_MODE = 'forwards';\nvar DEFAULT_EASING = 'linear';\nvar CssKeyframesPlayer = /** @class */ (function () {\n function CssKeyframesPlayer(element, keyframes, animationName, _duration, _delay, easing, _finalStyles, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.animationName = animationName;\n this._duration = _duration;\n this._delay = _delay;\n this._finalStyles = _finalStyles;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._started = false;\n this.currentSnapshot = {};\n this._state = 0;\n this.easing = easing || DEFAULT_EASING;\n this.totalTime = _duration + _delay;\n this._buildStyler();\n }\n CssKeyframesPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n CssKeyframesPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n CssKeyframesPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n CssKeyframesPlayer.prototype.destroy = function () {\n this.init();\n if (this._state >= 4 /* DESTROYED */)\n return;\n this._state = 4 /* DESTROYED */;\n this._styler.destroy();\n this._flushStartFns();\n this._flushDoneFns();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n };\n CssKeyframesPlayer.prototype._flushDoneFns = function () {\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n };\n CssKeyframesPlayer.prototype._flushStartFns = function () {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n };\n CssKeyframesPlayer.prototype.finish = function () {\n this.init();\n if (this._state >= 3 /* FINISHED */)\n return;\n this._state = 3 /* FINISHED */;\n this._styler.finish();\n this._flushStartFns();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._flushDoneFns();\n };\n CssKeyframesPlayer.prototype.setPosition = function (value) { this._styler.setPosition(value); };\n CssKeyframesPlayer.prototype.getPosition = function () { return this._styler.getPosition(); };\n CssKeyframesPlayer.prototype.hasStarted = function () { return this._state >= 2 /* STARTED */; };\n CssKeyframesPlayer.prototype.init = function () {\n if (this._state >= 1 /* INITIALIZED */)\n return;\n this._state = 1 /* INITIALIZED */;\n var elm = this.element;\n this._styler.apply();\n if (this._delay) {\n this._styler.pause();\n }\n };\n CssKeyframesPlayer.prototype.play = function () {\n this.init();\n if (!this.hasStarted()) {\n this._flushStartFns();\n this._state = 2 /* STARTED */;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this._styler.resume();\n };\n CssKeyframesPlayer.prototype.pause = function () {\n this.init();\n this._styler.pause();\n };\n CssKeyframesPlayer.prototype.restart = function () {\n this.reset();\n this.play();\n };\n CssKeyframesPlayer.prototype.reset = function () {\n this._styler.destroy();\n this._buildStyler();\n this._styler.apply();\n };\n CssKeyframesPlayer.prototype._buildStyler = function () {\n var _this = this;\n this._styler = new ElementAnimationStyleHandler(this.element, this.animationName, this._duration, this._delay, this.easing, DEFAULT_FILL_MODE, function () { return _this.finish(); });\n };\n /** @internal */\n CssKeyframesPlayer.prototype.triggerCallback = function (phaseName) {\n var methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(function (fn) { return fn(); });\n methods.length = 0;\n };\n CssKeyframesPlayer.prototype.beforeDestroy = function () {\n var _this = this;\n this.init();\n var styles = {};\n if (this.hasStarted()) {\n var finished_1 = this._state >= 3 /* FINISHED */;\n Object.keys(this._finalStyles).forEach(function (prop) {\n if (prop != 'offset') {\n styles[prop] = finished_1 ? _this._finalStyles[prop] : computeStyle(_this.element, prop);\n }\n });\n }\n this.currentSnapshot = styles;\n };\n return CssKeyframesPlayer;\n}());\n\nvar DirectStylePlayer = /** @class */ (function (_super) {\n __extends(DirectStylePlayer, _super);\n function DirectStylePlayer(element, styles) {\n var _this = _super.call(this) || this;\n _this.element = element;\n _this._startingStyles = {};\n _this.__initialized = false;\n _this._styles = hypenatePropsObject(styles);\n return _this;\n }\n DirectStylePlayer.prototype.init = function () {\n var _this = this;\n if (this.__initialized || !this._startingStyles)\n return;\n this.__initialized = true;\n Object.keys(this._styles).forEach(function (prop) {\n _this._startingStyles[prop] = _this.element.style[prop];\n });\n _super.prototype.init.call(this);\n };\n DirectStylePlayer.prototype.play = function () {\n var _this = this;\n if (!this._startingStyles)\n return;\n this.init();\n Object.keys(this._styles)\n .forEach(function (prop) { return _this.element.style.setProperty(prop, _this._styles[prop]); });\n _super.prototype.play.call(this);\n };\n DirectStylePlayer.prototype.destroy = function () {\n var _this = this;\n if (!this._startingStyles)\n return;\n Object.keys(this._startingStyles).forEach(function (prop) {\n var value = _this._startingStyles[prop];\n if (value) {\n _this.element.style.setProperty(prop, value);\n }\n else {\n _this.element.style.removeProperty(prop);\n }\n });\n this._startingStyles = null;\n _super.prototype.destroy.call(this);\n };\n return DirectStylePlayer;\n}(NoopAnimationPlayer));\n\nvar KEYFRAMES_NAME_PREFIX = 'gen_css_kf_';\nvar TAB_SPACE = ' ';\nvar CssKeyframesDriver = /** @class */ (function () {\n function CssKeyframesDriver() {\n this._count = 0;\n this._head = document.querySelector('head');\n this._warningIssued = false;\n }\n CssKeyframesDriver.prototype.validateStyleProperty = function (prop) { return validateStyleProperty(prop); };\n CssKeyframesDriver.prototype.matchesElement = function (element, selector) {\n return matchesElement(element, selector);\n };\n CssKeyframesDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };\n CssKeyframesDriver.prototype.query = function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n CssKeyframesDriver.prototype.computeStyle = function (element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n };\n CssKeyframesDriver.prototype.buildKeyframeElement = function (element, name, keyframes) {\n keyframes = keyframes.map(function (kf) { return hypenatePropsObject(kf); });\n var keyframeStr = \"@keyframes \" + name + \" {\\n\";\n var tab = '';\n keyframes.forEach(function (kf) {\n tab = TAB_SPACE;\n var offset = parseFloat(kf['offset']);\n keyframeStr += \"\" + tab + offset * 100 + \"% {\\n\";\n tab += TAB_SPACE;\n Object.keys(kf).forEach(function (prop) {\n var value = kf[prop];\n switch (prop) {\n case 'offset':\n return;\n case 'easing':\n if (value) {\n keyframeStr += tab + \"animation-timing-function: \" + value + \";\\n\";\n }\n return;\n default:\n keyframeStr += \"\" + tab + prop + \": \" + value + \";\\n\";\n return;\n }\n });\n keyframeStr += tab + \"}\\n\";\n });\n keyframeStr += \"}\\n\";\n var kfElm = document.createElement('style');\n kfElm.innerHTML = keyframeStr;\n return kfElm;\n };\n CssKeyframesDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers, scrubberAccessRequested) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n if (scrubberAccessRequested) {\n this._notifyFaultyScrubber();\n }\n var previousCssKeyframePlayers = previousPlayers.filter(function (player) { return player instanceof CssKeyframesPlayer; });\n var previousStyles = {};\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousCssKeyframePlayers.forEach(function (player) {\n var styles = player.currentSnapshot;\n Object.keys(styles).forEach(function (prop) { return previousStyles[prop] = styles[prop]; });\n });\n }\n keyframes = balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles);\n var finalStyles = flattenKeyframesIntoStyles(keyframes);\n // if there is no animation then there is no point in applying\n // styles and waiting for an event to get fired. This causes lag.\n // It's better to just directly apply the styles to the element\n // via the direct styling animation player.\n if (duration == 0) {\n return new DirectStylePlayer(element, finalStyles);\n }\n var animationName = \"\" + KEYFRAMES_NAME_PREFIX + this._count++;\n var kfElm = this.buildKeyframeElement(element, animationName, keyframes);\n document.querySelector('head').appendChild(kfElm);\n var specialStyles = packageNonAnimatableStyles(element, keyframes);\n var player = new CssKeyframesPlayer(element, keyframes, animationName, duration, delay, easing, finalStyles, specialStyles);\n player.onDestroy(function () { return removeElement(kfElm); });\n return player;\n };\n CssKeyframesDriver.prototype._notifyFaultyScrubber = function () {\n if (!this._warningIssued) {\n console.warn('@angular/animations: please load the web-animations.js polyfill to allow programmatic access...\\n', ' visit http://bit.ly/IWukam to learn more about using the web-animation-js polyfill.');\n this._warningIssued = true;\n }\n };\n return CssKeyframesDriver;\n}());\nfunction flattenKeyframesIntoStyles(keyframes) {\n var flatKeyframes = {};\n if (keyframes) {\n var kfs = Array.isArray(keyframes) ? keyframes : [keyframes];\n kfs.forEach(function (kf) {\n Object.keys(kf).forEach(function (prop) {\n if (prop == 'offset' || prop == 'easing')\n return;\n flatKeyframes[prop] = kf[prop];\n });\n });\n }\n return flatKeyframes;\n}\nfunction removeElement(node) {\n node.parentNode.removeChild(node);\n}\n\nvar WebAnimationsPlayer = /** @class */ (function () {\n function WebAnimationsPlayer(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = {};\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n WebAnimationsPlayer.prototype._onFinish = function () {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(function (fn) { return fn(); });\n this._onDoneFns = [];\n }\n };\n WebAnimationsPlayer.prototype.init = function () {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n };\n WebAnimationsPlayer.prototype._buildPlayer = function () {\n var _this = this;\n if (this._initialized)\n return;\n this._initialized = true;\n var keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : {};\n this.domPlayer.addEventListener('finish', function () { return _this._onFinish(); });\n };\n WebAnimationsPlayer.prototype._preparePlayerBeforeStart = function () {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n };\n /** @internal */\n WebAnimationsPlayer.prototype._triggerWebAnimation = function (element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](keyframes, options);\n };\n WebAnimationsPlayer.prototype.onStart = function (fn) { this._onStartFns.push(fn); };\n WebAnimationsPlayer.prototype.onDone = function (fn) { this._onDoneFns.push(fn); };\n WebAnimationsPlayer.prototype.onDestroy = function (fn) { this._onDestroyFns.push(fn); };\n WebAnimationsPlayer.prototype.play = function () {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(function (fn) { return fn(); });\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n };\n WebAnimationsPlayer.prototype.pause = function () {\n this.init();\n this.domPlayer.pause();\n };\n WebAnimationsPlayer.prototype.finish = function () {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n };\n WebAnimationsPlayer.prototype.reset = function () {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n };\n WebAnimationsPlayer.prototype._resetDomPlayerState = function () {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n };\n WebAnimationsPlayer.prototype.restart = function () {\n this.reset();\n this.play();\n };\n WebAnimationsPlayer.prototype.hasStarted = function () { return this._started; };\n WebAnimationsPlayer.prototype.destroy = function () {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(function (fn) { return fn(); });\n this._onDestroyFns = [];\n }\n };\n WebAnimationsPlayer.prototype.setPosition = function (p) { this.domPlayer.currentTime = p * this.time; };\n WebAnimationsPlayer.prototype.getPosition = function () { return this.domPlayer.currentTime / this.time; };\n Object.defineProperty(WebAnimationsPlayer.prototype, \"totalTime\", {\n get: function () { return this._delay + this._duration; },\n enumerable: true,\n configurable: true\n });\n WebAnimationsPlayer.prototype.beforeDestroy = function () {\n var _this = this;\n var styles = {};\n if (this.hasStarted()) {\n Object.keys(this._finalKeyframe).forEach(function (prop) {\n if (prop != 'offset') {\n styles[prop] =\n _this._finished ? _this._finalKeyframe[prop] : computeStyle(_this.element, prop);\n }\n });\n }\n this.currentSnapshot = styles;\n };\n /** @internal */\n WebAnimationsPlayer.prototype.triggerCallback = function (phaseName) {\n var methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(function (fn) { return fn(); });\n methods.length = 0;\n };\n return WebAnimationsPlayer;\n}());\n\nvar WebAnimationsDriver = /** @class */ (function () {\n function WebAnimationsDriver() {\n this._isNativeImpl = /\\{\\s*\\[native\\s+code\\]\\s*\\}/.test(getElementAnimateFn().toString());\n this._cssKeyframesDriver = new CssKeyframesDriver();\n }\n WebAnimationsDriver.prototype.validateStyleProperty = function (prop) { return validateStyleProperty(prop); };\n WebAnimationsDriver.prototype.matchesElement = function (element, selector) {\n return matchesElement(element, selector);\n };\n WebAnimationsDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };\n WebAnimationsDriver.prototype.query = function (element, selector, multi) {\n return invokeQuery(element, selector, multi);\n };\n WebAnimationsDriver.prototype.computeStyle = function (element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n };\n WebAnimationsDriver.prototype.overrideWebAnimationsSupport = function (supported) { this._isNativeImpl = supported; };\n WebAnimationsDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers, scrubberAccessRequested) {\n if (previousPlayers === void 0) { previousPlayers = []; }\n var useKeyframes = !scrubberAccessRequested && !this._isNativeImpl;\n if (useKeyframes) {\n return this._cssKeyframesDriver.animate(element, keyframes, duration, delay, easing, previousPlayers);\n }\n var fill = delay == 0 ? 'both' : 'forwards';\n var playerOptions = { duration: duration, delay: delay, fill: fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n var previousStyles = {};\n var previousWebAnimationPlayers = previousPlayers.filter(function (player) { return player instanceof WebAnimationsPlayer; });\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(function (player) {\n var styles = player.currentSnapshot;\n Object.keys(styles).forEach(function (prop) { return previousStyles[prop] = styles[prop]; });\n });\n }\n keyframes = keyframes.map(function (styles) { return copyStyles(styles, false); });\n keyframes = balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles);\n var specialStyles = packageNonAnimatableStyles(element, keyframes);\n return new WebAnimationsPlayer(element, keyframes, playerOptions, specialStyles);\n };\n return WebAnimationsDriver;\n}());\nfunction supportsWebAnimations() {\n return typeof getElementAnimateFn() === 'function';\n}\nfunction getElementAnimateFn() {\n return (isBrowser() && Element.prototype['animate']) || {};\n}\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, CssKeyframesDriver as ɵCssKeyframesDriver, CssKeyframesPlayer as ɵCssKeyframesPlayer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, SpecialCasedStyles as ɵangular_packages_animations_browser_browser_a, containsElement as ɵcontainsElement, invokeQuery as ɵinvokeQuery, matchesElement as ɵmatchesElement, supportsWebAnimations as ɵsupportsWebAnimations, validateStyleProperty as ɵvalidateStyleProperty };\n\n//# sourceMappingURL=browser.js.map","import { InjectionToken, inject, EventEmitter, Injectable, Optional, Inject, ɵɵdefineInjectable, ɵɵinject, Directive, Output, Input, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nvar DIR_DOCUMENT = new InjectionToken('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n/** @docs-private */\nfunction DIR_DOCUMENT_FACTORY() {\n return inject(DOCUMENT);\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/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\nvar Directionality = /** @class */ (function () {\n function Directionality(_document) {\n /** The current 'ltr' or 'rtl' value. */\n this.value = 'ltr';\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n this.change = new EventEmitter();\n if (_document) {\n // TODO: handle 'auto' value -\n // We still need to account for dir=\"auto\".\n // It looks like HTMLElemenet.dir is also \"auto\" when that's set to the attribute,\n // but getComputedStyle return either \"ltr\" or \"rtl\". avoiding getComputedStyle for now\n var bodyDir = _document.body ? _document.body.dir : null;\n var htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n var value = bodyDir || htmlDir;\n this.value = (value === 'ltr' || value === 'rtl') ? value : 'ltr';\n }\n }\n Directionality.prototype.ngOnDestroy = function () {\n this.change.complete();\n };\n /** @nocollapse */\n Directionality.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DIR_DOCUMENT,] }] }\n ]; };\n Directionality.ɵprov = ɵɵdefineInjectable({ factory: function Directionality_Factory() { return new Directionality(ɵɵinject(DIR_DOCUMENT, 8)); }, token: Directionality, providedIn: \"root\" });\nDirectionality.ɵfac = function Directionality_Factory(t) { return new (t || Directionality)(ɵngcc0.ɵɵinject(DIR_DOCUMENT, 8)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Directionality, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DIR_DOCUMENT]\n }] }]; }, null); })();\n return Directionality;\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/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\nvar Dir = /** @class */ (function () {\n function Dir() {\n /** Normalized direction that accounts for invalid/unsupported values. */\n this._dir = 'ltr';\n /** Whether the `value` has been set to its initial value. */\n this._isInitialized = false;\n /** Event emitted when the direction changes. */\n this.change = new EventEmitter();\n }\n Object.defineProperty(Dir.prototype, \"dir\", {\n /** @docs-private */\n get: function () { return this._dir; },\n set: function (value) {\n var old = this._dir;\n var normalizedValue = value ? value.toLowerCase() : value;\n this._rawDir = value;\n this._dir = (normalizedValue === 'ltr' || normalizedValue === 'rtl') ? normalizedValue : 'ltr';\n if (old !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Dir.prototype, \"value\", {\n /** Current layout direction of the element. */\n get: function () { return this.dir; },\n enumerable: true,\n configurable: true\n });\n /** Initialize once default value has been set. */\n Dir.prototype.ngAfterContentInit = function () {\n this._isInitialized = true;\n };\n Dir.prototype.ngOnDestroy = function () {\n this.change.complete();\n };\n Dir.propDecorators = {\n change: [{ type: Output, args: ['dirChange',] }],\n dir: [{ type: Input }]\n };\nDir.ɵfac = function Dir_Factory(t) { return new (t || Dir)(); };\nDir.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: Dir, selectors: [[\"\", \"dir\", \"\"]], hostVars: 1, hostBindings: function Dir_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"dir\", ctx._rawDir);\n } }, inputs: { dir: \"dir\" }, outputs: { change: \"dirChange\" }, exportAs: [\"dir\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: Directionality, useExisting: Dir }])] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Dir, [{\n type: Directive,\n args: [{\n selector: '[dir]',\n providers: [{ provide: Directionality, useExisting: Dir }],\n host: { '[attr.dir]': '_rawDir' },\n exportAs: 'dir'\n }]\n }], function () { return []; }, { change: [{\n type: Output,\n args: ['dirChange']\n }], dir: [{\n type: Input\n }] }); })();\n return Dir;\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 */\nvar BidiModule = /** @class */ (function () {\n function BidiModule() {\n }\nBidiModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: BidiModule });\nBidiModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function BidiModule_Factory(t) { return new (t || BidiModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(BidiModule, { declarations: [Dir], exports: [Dir] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(BidiModule, [{\n type: NgModule,\n args: [{\n exports: [Dir],\n declarations: [Dir]\n }]\n }], function () { return []; }, null); })();\n return BidiModule;\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BidiModule, DIR_DOCUMENT, Dir, Directionality, DIR_DOCUMENT_FACTORY as ɵangular_material_src_cdk_bidi_bidi_a };\n\n//# sourceMappingURL=bidi.js.map","import { __extends, __values } from 'tslib';\nimport { isObservable, of, Subject } from 'rxjs';\nimport { Injectable, ɵɵdefineInjectable } from '@angular/core';\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 */\nimport * as ɵngcc0 from '@angular/core';\nvar DataSource = /** @class */ (function () {\n function DataSource() {\n }\n return DataSource;\n}());\n/** Checks whether an object is a data source. */\nfunction isDataSource(value) {\n // Check if the value is a DataSource by observing if it has a connect function. Cannot\n // be checked as an `instanceof DataSource` since people could create their own sources\n // that match the interface, but don't extend DataSource.\n return value && typeof value.connect === 'function';\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/** DataSource wrapper for a native array. */\nvar ArrayDataSource = /** @class */ (function (_super) {\n __extends(ArrayDataSource, _super);\n function ArrayDataSource(_data) {\n var _this = _super.call(this) || this;\n _this._data = _data;\n return _this;\n }\n ArrayDataSource.prototype.connect = function () {\n return isObservable(this._data) ? this._data : of(this._data);\n };\n ArrayDataSource.prototype.disconnect = function () { };\n return ArrayDataSource;\n}(DataSource));\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/**\n * Class to be used to power selecting one or more options from a list.\n */\nvar SelectionModel = /** @class */ (function () {\n function SelectionModel(_multiple, initiallySelectedValues, _emitChanges) {\n var _this = this;\n if (_multiple === void 0) { _multiple = false; }\n if (_emitChanges === void 0) { _emitChanges = true; }\n this._multiple = _multiple;\n this._emitChanges = _emitChanges;\n /** Currently-selected values. */\n this._selection = new Set();\n /** Keeps track of the deselected options that haven't been emitted by the change event. */\n this._deselectedToEmit = [];\n /** Keeps track of the selected options that haven't been emitted by the change event. */\n this._selectedToEmit = [];\n /** Event emitted when the value has changed. */\n this.changed = new Subject();\n if (initiallySelectedValues && initiallySelectedValues.length) {\n if (_multiple) {\n initiallySelectedValues.forEach(function (value) { return _this._markSelected(value); });\n }\n else {\n this._markSelected(initiallySelectedValues[0]);\n }\n // Clear the array in order to avoid firing the change event for preselected values.\n this._selectedToEmit.length = 0;\n }\n }\n Object.defineProperty(SelectionModel.prototype, \"selected\", {\n /** Selected values. */\n get: function () {\n if (!this._selected) {\n this._selected = Array.from(this._selection.values());\n }\n return this._selected;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Selects a value or an array of values.\n */\n SelectionModel.prototype.select = function () {\n var _this = this;\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n this._verifyValueAssignment(values);\n values.forEach(function (value) { return _this._markSelected(value); });\n this._emitChangeEvent();\n };\n /**\n * Deselects a value or an array of values.\n */\n SelectionModel.prototype.deselect = function () {\n var _this = this;\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n this._verifyValueAssignment(values);\n values.forEach(function (value) { return _this._unmarkSelected(value); });\n this._emitChangeEvent();\n };\n /**\n * Toggles a value between selected and deselected.\n */\n SelectionModel.prototype.toggle = function (value) {\n this.isSelected(value) ? this.deselect(value) : this.select(value);\n };\n /**\n * Clears all of the selected values.\n */\n SelectionModel.prototype.clear = function () {\n this._unmarkAll();\n this._emitChangeEvent();\n };\n /**\n * Determines whether a value is selected.\n */\n SelectionModel.prototype.isSelected = function (value) {\n return this._selection.has(value);\n };\n /**\n * Determines whether the model does not have a value.\n */\n SelectionModel.prototype.isEmpty = function () {\n return this._selection.size === 0;\n };\n /**\n * Determines whether the model has a value.\n */\n SelectionModel.prototype.hasValue = function () {\n return !this.isEmpty();\n };\n /**\n * Sorts the selected values based on a predicate function.\n */\n SelectionModel.prototype.sort = function (predicate) {\n if (this._multiple && this.selected) {\n this._selected.sort(predicate);\n }\n };\n /**\n * Gets whether multiple values can be selected.\n */\n SelectionModel.prototype.isMultipleSelection = function () {\n return this._multiple;\n };\n /** Emits a change event and clears the records of selected and deselected values. */\n SelectionModel.prototype._emitChangeEvent = function () {\n // Clear the selected values so they can be re-cached.\n this._selected = null;\n if (this._selectedToEmit.length || this._deselectedToEmit.length) {\n this.changed.next({\n source: this,\n added: this._selectedToEmit,\n removed: this._deselectedToEmit\n });\n this._deselectedToEmit = [];\n this._selectedToEmit = [];\n }\n };\n /** Selects a value. */\n SelectionModel.prototype._markSelected = function (value) {\n if (!this.isSelected(value)) {\n if (!this._multiple) {\n this._unmarkAll();\n }\n this._selection.add(value);\n if (this._emitChanges) {\n this._selectedToEmit.push(value);\n }\n }\n };\n /** Deselects a value. */\n SelectionModel.prototype._unmarkSelected = function (value) {\n if (this.isSelected(value)) {\n this._selection.delete(value);\n if (this._emitChanges) {\n this._deselectedToEmit.push(value);\n }\n }\n };\n /** Clears out the selected values. */\n SelectionModel.prototype._unmarkAll = function () {\n var _this = this;\n if (!this.isEmpty()) {\n this._selection.forEach(function (value) { return _this._unmarkSelected(value); });\n }\n };\n /**\n * Verifies the value assignment and throws an error if the specified value array is\n * including multiple values while the selection model is not supporting multiple values.\n */\n SelectionModel.prototype._verifyValueAssignment = function (values) {\n if (values.length > 1 && !this._multiple) {\n throw getMultipleValuesInSingleSelectionError();\n }\n };\n return SelectionModel;\n}());\n/**\n * Returns an error that reports that multiple values are passed into a selection model\n * with a single value.\n * @docs-private\n */\nfunction getMultipleValuesInSingleSelectionError() {\n return Error('Cannot pass multiple values into SelectionModel with single-value mode.');\n}\n\n/**\n * Class to coordinate unique selection based on name.\n * Intended to be consumed as an Angular service.\n * This service is needed because native radio change events are only fired on the item currently\n * being selected, and we still need to uncheck the previous selection.\n *\n * This service does not *store* any IDs and names because they may change at any time, so it is\n * less error-prone if they are simply passed through when the events occur.\n */\nvar UniqueSelectionDispatcher = /** @class */ (function () {\n function UniqueSelectionDispatcher() {\n this._listeners = [];\n }\n /**\n * Notify other items that selection for the given name has been set.\n * @param id ID of the item.\n * @param name Name of the item.\n */\n UniqueSelectionDispatcher.prototype.notify = function (id, name) {\n var e_1, _a;\n try {\n for (var _b = __values(this._listeners), _c = _b.next(); !_c.done; _c = _b.next()) {\n var listener = _c.value;\n listener(id, name);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Listen for future changes to item selection.\n * @return Function used to deregister listener\n */\n UniqueSelectionDispatcher.prototype.listen = function (listener) {\n var _this = this;\n this._listeners.push(listener);\n return function () {\n _this._listeners = _this._listeners.filter(function (registered) {\n return listener !== registered;\n });\n };\n };\n UniqueSelectionDispatcher.prototype.ngOnDestroy = function () {\n this._listeners = [];\n };\n UniqueSelectionDispatcher.ɵprov = ɵɵdefineInjectable({ factory: function UniqueSelectionDispatcher_Factory() { return new UniqueSelectionDispatcher(); }, token: UniqueSelectionDispatcher, providedIn: \"root\" });\nUniqueSelectionDispatcher.ɵfac = function UniqueSelectionDispatcher_Factory(t) { return new (t || UniqueSelectionDispatcher)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(UniqueSelectionDispatcher, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n return UniqueSelectionDispatcher;\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ArrayDataSource, DataSource, SelectionModel, UniqueSelectionDispatcher, getMultipleValuesInSingleSelectionError, isDataSource };\n\n//# sourceMappingURL=collections.js.map","import { Injectable, Optional, Inject, PLATFORM_ID, ɵɵdefineInjectable, ɵɵinject, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\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// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nimport * as ɵngcc0 from '@angular/core';\nvar hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);\n}\ncatch (_a) {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nvar Platform = /** @class */ (function () {\n /**\n * @breaking-change 8.0.0 remove optional decorator\n */\n function Platform(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ?\n isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n /** @nocollapse */\n Platform.ctorParameters = function () { return [\n { type: Object, decorators: [{ type: Optional }, { type: Inject, args: [PLATFORM_ID,] }] }\n ]; };\n Platform.ɵprov = ɵɵdefineInjectable({ factory: function Platform_Factory() { return new Platform(ɵɵinject(PLATFORM_ID, 8)); }, token: Platform, providedIn: \"root\" });\nPlatform.ɵfac = function Platform_Factory(t) { return new (t || Platform)(ɵngcc0.ɵɵinject(PLATFORM_ID, 8)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Platform, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: Object, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, null); })();\n return Platform;\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 */\nvar PlatformModule = /** @class */ (function () {\n function PlatformModule() {\n }\nPlatformModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: PlatformModule });\nPlatformModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function PlatformModule_Factory(t) { return new (t || PlatformModule)(); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PlatformModule, [{\n type: NgModule,\n args: [{}]\n }], function () { return []; }, null); })();\n return PlatformModule;\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/** Cached result Set of input types support by the current browser. */\nvar supportedInputTypes;\n/** Types of `` that *might* be supported. */\nvar candidateInputTypes = [\n // `color` must come first. Chrome 56 shows a warning if we change the type to `color` after\n // first changing it to something else:\n // The specified value \"\" does not conform to the required format.\n // The format is \"#rrggbb\" where rr, gg, bb are two-digit hexadecimal numbers.\n 'color',\n 'button',\n 'checkbox',\n 'date',\n 'datetime-local',\n 'email',\n 'file',\n 'hidden',\n 'image',\n 'month',\n 'number',\n 'password',\n 'radio',\n 'range',\n 'reset',\n 'search',\n 'submit',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week',\n];\n/** @returns The input types supported by this browser. */\nfunction getSupportedInputTypes() {\n // Result is cached.\n if (supportedInputTypes) {\n return supportedInputTypes;\n }\n // We can't check if an input type is not supported until we're on the browser, so say that\n // everything is supported when not on the browser. We don't use `Platform` here since it's\n // just a helper function and can't inject it.\n if (typeof document !== 'object' || !document) {\n supportedInputTypes = new Set(candidateInputTypes);\n return supportedInputTypes;\n }\n var featureTestInput = document.createElement('input');\n supportedInputTypes = new Set(candidateInputTypes.filter(function (value) {\n featureTestInput.setAttribute('type', value);\n return featureTestInput.type === value;\n }));\n return supportedInputTypes;\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/** Cached result of whether the user's browser supports passive event listeners. */\nvar supportsPassiveEvents;\n/**\n * Checks whether the user's browser supports passive event listeners.\n * See: https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nfunction supportsPassiveEventListeners() {\n if (supportsPassiveEvents == null && typeof window !== 'undefined') {\n try {\n window.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n get: function () { return supportsPassiveEvents = true; }\n }));\n }\n finally {\n supportsPassiveEvents = supportsPassiveEvents || false;\n }\n }\n return supportsPassiveEvents;\n}\n/**\n * Normalizes an `AddEventListener` object to something that can be passed\n * to `addEventListener` on any browser, no matter whether it supports the\n * `options` parameter.\n * @param options Object to be normalized.\n */\nfunction normalizePassiveListenerOptions(options) {\n return supportsPassiveEventListeners() ? options : !!options.capture;\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/** Cached result of the way the browser handles the horizontal scroll axis in RTL mode. */\nvar rtlScrollAxisType;\n/** Check whether the browser supports scroll behaviors. */\nfunction supportsScrollBehavior() {\n return !!(typeof document == 'object' && 'scrollBehavior' in document.documentElement.style);\n}\n/**\n * Checks the type of RTL scroll axis used by this browser. As of time of writing, Chrome is NORMAL,\n * Firefox & Safari are NEGATED, and IE & Edge are INVERTED.\n */\nfunction getRtlScrollAxisType() {\n // We can't check unless we're on the browser. Just assume 'normal' if we're not.\n if (typeof document !== 'object' || !document) {\n return 0 /* NORMAL */;\n }\n if (rtlScrollAxisType == null) {\n // Create a 1px wide scrolling container and a 2px wide content element.\n var scrollContainer = document.createElement('div');\n var containerStyle = scrollContainer.style;\n scrollContainer.dir = 'rtl';\n containerStyle.height = '1px';\n containerStyle.width = '1px';\n containerStyle.overflow = 'auto';\n containerStyle.visibility = 'hidden';\n containerStyle.pointerEvents = 'none';\n containerStyle.position = 'absolute';\n var content = document.createElement('div');\n var contentStyle = content.style;\n contentStyle.width = '2px';\n contentStyle.height = '1px';\n scrollContainer.appendChild(content);\n document.body.appendChild(scrollContainer);\n rtlScrollAxisType = 0 /* NORMAL */;\n // The viewport starts scrolled all the way to the right in RTL mode. If we are in a NORMAL\n // browser this would mean that the scrollLeft should be 1. If it's zero instead we know we're\n // dealing with one of the other two types of browsers.\n if (scrollContainer.scrollLeft === 0) {\n // In a NEGATED browser the scrollLeft is always somewhere in [-maxScrollAmount, 0]. For an\n // INVERTED browser it is always somewhere in [0, maxScrollAmount]. We can determine which by\n // setting to the scrollLeft to 1. This is past the max for a NEGATED browser, so it will\n // return 0 when we read it again.\n scrollContainer.scrollLeft = 1;\n rtlScrollAxisType =\n scrollContainer.scrollLeft === 0 ? 1 /* NEGATED */ : 2 /* INVERTED */;\n }\n scrollContainer.parentNode.removeChild(scrollContainer);\n }\n return rtlScrollAxisType;\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 */\nvar shadowDomIsSupported;\n/** Checks whether the user's browser support Shadow DOM. */\nfunction _supportsShadowDom() {\n if (shadowDomIsSupported == null) {\n var head = typeof document !== 'undefined' ? document.head : null;\n shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow));\n }\n return shadowDomIsSupported;\n}\n/** Gets the shadow root of an element, if supported and the element is inside the Shadow DOM. */\nfunction _getShadowRoot(element) {\n if (_supportsShadowDom()) {\n var rootNode = element.getRootNode ? element.getRootNode() : null;\n if (rootNode instanceof ShadowRoot) {\n return rootNode;\n }\n }\n return null;\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Platform, PlatformModule, _getShadowRoot, _supportsShadowDom, getRtlScrollAxisType, getSupportedInputTypes, normalizePassiveListenerOptions, supportsPassiveEventListeners, supportsScrollBehavior };\n\n//# sourceMappingURL=platform.js.map","import { __extends } from 'tslib';\nimport { ElementRef, Directive, TemplateRef, ViewContainerRef, EventEmitter, ComponentFactoryResolver, Inject, Output, NgModule } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\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/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nfunction throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nfunction throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nfunction throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' +\n 'a ComponentPortal or a TemplatePortal.');\n}\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nfunction throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nfunction throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\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/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nvar Portal = /** @class */ (function () {\n function Portal() {\n }\n /** Attach this portal to a host. */\n Portal.prototype.attach = function (host) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n this._attachedHost = host;\n return host.attach(this);\n };\n /** Detach this portal from its host */\n Portal.prototype.detach = function () {\n var host = this._attachedHost;\n if (host == null) {\n throwNoPortalAttachedError();\n }\n else {\n this._attachedHost = null;\n host.detach();\n }\n };\n Object.defineProperty(Portal.prototype, \"isAttached\", {\n /** Whether this portal is attached to a host. */\n get: function () {\n return this._attachedHost != null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n Portal.prototype.setAttachedHost = function (host) {\n this._attachedHost = host;\n };\n return Portal;\n}());\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nvar ComponentPortal = /** @class */ (function (_super) {\n __extends(ComponentPortal, _super);\n function ComponentPortal(component, viewContainerRef, injector, componentFactoryResolver) {\n var _this = _super.call(this) || this;\n _this.component = component;\n _this.viewContainerRef = viewContainerRef;\n _this.injector = injector;\n _this.componentFactoryResolver = componentFactoryResolver;\n return _this;\n }\n return ComponentPortal;\n}(Portal));\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nvar TemplatePortal = /** @class */ (function (_super) {\n __extends(TemplatePortal, _super);\n function TemplatePortal(template, viewContainerRef, context) {\n var _this = _super.call(this) || this;\n _this.templateRef = template;\n _this.viewContainerRef = viewContainerRef;\n _this.context = context;\n return _this;\n }\n Object.defineProperty(TemplatePortal.prototype, \"origin\", {\n get: function () {\n return this.templateRef.elementRef;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n TemplatePortal.prototype.attach = function (host, context) {\n if (context === void 0) { context = this.context; }\n this.context = context;\n return _super.prototype.attach.call(this, host);\n };\n TemplatePortal.prototype.detach = function () {\n this.context = undefined;\n return _super.prototype.detach.call(this);\n };\n return TemplatePortal;\n}(Portal));\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nvar DomPortal = /** @class */ (function (_super) {\n __extends(DomPortal, _super);\n function DomPortal(element) {\n var _this = _super.call(this) || this;\n _this.element = element instanceof ElementRef ? element.nativeElement : element;\n return _this;\n }\n return DomPortal;\n}(Portal));\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nvar BasePortalOutlet = /** @class */ (function () {\n function BasePortalOutlet() {\n /** Whether this host has already been permanently disposed. */\n this._isDisposed = false;\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n this.attachDomPortal = null;\n }\n /** Whether this host has an attached portal. */\n BasePortalOutlet.prototype.hasAttached = function () {\n return !!this._attachedPortal;\n };\n /** Attaches a portal. */\n BasePortalOutlet.prototype.attach = function (portal) {\n if (!portal) {\n throwNullPortalError();\n }\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n }\n else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n }\n else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n throwUnknownPortalTypeError();\n };\n /** Detaches a previously attached portal. */\n BasePortalOutlet.prototype.detach = function () {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n this._invokeDisposeFn();\n };\n /** Permanently dispose of this portal host. */\n BasePortalOutlet.prototype.dispose = function () {\n if (this.hasAttached()) {\n this.detach();\n }\n this._invokeDisposeFn();\n this._isDisposed = true;\n };\n /** @docs-private */\n BasePortalOutlet.prototype.setDisposeFn = function (fn) {\n this._disposeFn = fn;\n };\n BasePortalOutlet.prototype._invokeDisposeFn = function () {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n };\n return BasePortalOutlet;\n}());\n/**\n * @deprecated Use `BasePortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nvar BasePortalHost = /** @class */ (function (_super) {\n __extends(BasePortalHost, _super);\n function BasePortalHost() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return BasePortalHost;\n}(BasePortalOutlet));\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/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nvar DomPortalOutlet = /** @class */ (function (_super) {\n __extends(DomPortalOutlet, _super);\n function DomPortalOutlet(\n /** Element into which the content is projected. */\n outletElement, _componentFactoryResolver, _appRef, _defaultInjector, \n /**\n * @deprecated `_document` Parameter to be made required.\n * @breaking-change 10.0.0\n */\n _document) {\n var _this = _super.call(this) || this;\n _this.outletElement = outletElement;\n _this._componentFactoryResolver = _componentFactoryResolver;\n _this._appRef = _appRef;\n _this._defaultInjector = _defaultInjector;\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n _this.attachDomPortal = function (portal) {\n // @breaking-change 10.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!_this._document) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n var element = portal.element;\n if (!element.parentNode) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n var anchorNode = _this._document.createComment('dom-portal');\n element.parentNode.insertBefore(anchorNode, element);\n _this.outletElement.appendChild(element);\n _super.prototype.setDisposeFn.call(_this, function () {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n _this._document = _document;\n return _this;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n DomPortalOutlet.prototype.attachComponentPortal = function (portal) {\n var _this = this;\n var resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n var componentFactory = resolver.resolveComponentFactory(portal.component);\n var componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n this.setDisposeFn(function () { return componentRef.destroy(); });\n }\n else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(function () {\n _this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n this.outletElement.appendChild(this._getComponentRootNode(componentRef));\n return componentRef;\n };\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n DomPortalOutlet.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n var viewContainer = portal.viewContainerRef;\n var viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n viewRef.detectChanges();\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach(function (rootNode) { return _this.outletElement.appendChild(rootNode); });\n this.setDisposeFn((function () {\n var index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n }));\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n };\n /**\n * Clears out a portal from the DOM.\n */\n DomPortalOutlet.prototype.dispose = function () {\n _super.prototype.dispose.call(this);\n if (this.outletElement.parentNode != null) {\n this.outletElement.parentNode.removeChild(this.outletElement);\n }\n };\n /** Gets the root HTMLElement for an instantiated component. */\n DomPortalOutlet.prototype._getComponentRootNode = function (componentRef) {\n return componentRef.hostView.rootNodes[0];\n };\n return DomPortalOutlet;\n}(BasePortalOutlet));\n/**\n * @deprecated Use `DomPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nvar DomPortalHost = /** @class */ (function (_super) {\n __extends(DomPortalHost, _super);\n function DomPortalHost() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return DomPortalHost;\n}(DomPortalOutlet));\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/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\nvar CdkPortal = /** @class */ (function (_super) {\n __extends(CdkPortal, _super);\n function CdkPortal(templateRef, viewContainerRef) {\n return _super.call(this, templateRef, viewContainerRef) || this;\n }\n /** @nocollapse */\n CdkPortal.ctorParameters = function () { return [\n { type: TemplateRef },\n { type: ViewContainerRef }\n ]; };\nCdkPortal.ɵfac = function CdkPortal_Factory(t) { return new (t || CdkPortal)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nCdkPortal.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CdkPortal, selectors: [[\"\", \"cdkPortal\", \"\"]], exportAs: [\"cdkPortal\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkPortal, [{\n type: Directive,\n args: [{\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }, { type: ɵngcc0.ViewContainerRef }]; }, null); })();\n return CdkPortal;\n}(TemplatePortal));\n/**\n * @deprecated Use `CdkPortal` instead.\n * @breaking-change 9.0.0\n */\nvar TemplatePortalDirective = /** @class */ (function (_super) {\n __extends(TemplatePortalDirective, _super);\n function TemplatePortalDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\nTemplatePortalDirective.ɵfac = function TemplatePortalDirective_Factory(t) { return ɵTemplatePortalDirective_BaseFactory(t || TemplatePortalDirective); };\nTemplatePortalDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: TemplatePortalDirective, selectors: [[\"\", \"cdk-portal\", \"\"], [\"\", \"portal\", \"\"]], exportAs: [\"cdkPortal\"], features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nvar ɵTemplatePortalDirective_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(TemplatePortalDirective);\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(TemplatePortalDirective, [{\n type: Directive,\n args: [{\n selector: '[cdk-portal], [portal]',\n exportAs: 'cdkPortal',\n providers: [{\n provide: CdkPortal,\n useExisting: TemplatePortalDirective\n }]\n }]\n }], null, null); })();\n return TemplatePortalDirective;\n}(CdkPortal));\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * ``\n */\nvar CdkPortalOutlet = /** @class */ (function (_super) {\n __extends(CdkPortalOutlet, _super);\n function CdkPortalOutlet(_componentFactoryResolver, _viewContainerRef, \n /**\n * @deprecated `_document` parameter to be made required.\n * @breaking-change 9.0.0\n */\n _document) {\n var _this = _super.call(this) || this;\n _this._componentFactoryResolver = _componentFactoryResolver;\n _this._viewContainerRef = _viewContainerRef;\n /** Whether the portal component is initialized. */\n _this._isInitialized = false;\n /** Emits when a portal is attached to the outlet. */\n _this.attached = new EventEmitter();\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n _this.attachDomPortal = function (portal) {\n // @breaking-change 9.0.0 Remove check and error once the\n // `_document` constructor parameter is required.\n if (!_this._document) {\n throw Error('Cannot attach DOM portal without _document constructor parameter');\n }\n var element = portal.element;\n if (!element.parentNode) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n var anchorNode = _this._document.createComment('dom-portal');\n portal.setAttachedHost(_this);\n element.parentNode.insertBefore(anchorNode, element);\n _this._getRootNode().appendChild(element);\n _super.prototype.setDisposeFn.call(_this, function () {\n if (anchorNode.parentNode) {\n anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n _this._document = _document;\n return _this;\n }\n Object.defineProperty(CdkPortalOutlet.prototype, \"portal\", {\n /** Portal associated with the Portal outlet. */\n get: function () {\n return this._attachedPortal;\n },\n set: function (portal) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `
`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n if (this.hasAttached()) {\n _super.prototype.detach.call(this);\n }\n if (portal) {\n _super.prototype.attach.call(this, portal);\n }\n this._attachedPortal = portal;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkPortalOutlet.prototype, \"attachedRef\", {\n /** Component or view reference that is attached to the portal. */\n get: function () {\n return this._attachedRef;\n },\n enumerable: true,\n configurable: true\n });\n CdkPortalOutlet.prototype.ngOnInit = function () {\n this._isInitialized = true;\n };\n CdkPortalOutlet.prototype.ngOnDestroy = function () {\n _super.prototype.dispose.call(this);\n this._attachedPortal = null;\n this._attachedRef = null;\n };\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n CdkPortalOutlet.prototype.attachComponentPortal = function (portal) {\n portal.setAttachedHost(this);\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n var viewContainerRef = portal.viewContainerRef != null ?\n portal.viewContainerRef :\n this._viewContainerRef;\n var resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n var componentFactory = resolver.resolveComponentFactory(portal.component);\n var ref = viewContainerRef.createComponent(componentFactory, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this._getRootNode().appendChild(ref.hostView.rootNodes[0]);\n }\n _super.prototype.setDisposeFn.call(this, function () { return ref.destroy(); });\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n return ref;\n };\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n CdkPortalOutlet.prototype.attachTemplatePortal = function (portal) {\n var _this = this;\n portal.setAttachedHost(this);\n var viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n _super.prototype.setDisposeFn.call(this, function () { return _this._viewContainerRef.clear(); });\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n return viewRef;\n };\n /** Gets the root node of the portal outlet. */\n CdkPortalOutlet.prototype._getRootNode = function () {\n var nativeElement = this._viewContainerRef.element.nativeElement;\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n return (nativeElement.nodeType === nativeElement.ELEMENT_NODE ?\n nativeElement : nativeElement.parentNode);\n };\n /** @nocollapse */\n CdkPortalOutlet.ctorParameters = function () { return [\n { type: ComponentFactoryResolver },\n { type: ViewContainerRef },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n CdkPortalOutlet.propDecorators = {\n attached: [{ type: Output }]\n };\nCdkPortalOutlet.ɵfac = function CdkPortalOutlet_Factory(t) { return new (t || CdkPortalOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nCdkPortalOutlet.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CdkPortalOutlet, selectors: [[\"\", \"cdkPortalOutlet\", \"\"]], inputs: { portal: [\"cdkPortalOutlet\", \"portal\"] }, outputs: { attached: \"attached\" }, exportAs: [\"cdkPortalOutlet\"], features: [ɵngcc0.ɵɵInheritDefinitionFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkPortalOutlet, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n inputs: ['portal: cdkPortalOutlet']\n }]\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { attached: [{\n type: Output\n }] }); })();\n return CdkPortalOutlet;\n}(BasePortalOutlet));\n/**\n * @deprecated Use `CdkPortalOutlet` instead.\n * @breaking-change 9.0.0\n */\nvar PortalHostDirective = /** @class */ (function (_super) {\n __extends(PortalHostDirective, _super);\n function PortalHostDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\nPortalHostDirective.ɵfac = function PortalHostDirective_Factory(t) { return ɵPortalHostDirective_BaseFactory(t || PortalHostDirective); };\nPortalHostDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: PortalHostDirective, selectors: [[\"\", \"cdkPortalHost\", \"\"], [\"\", \"portalHost\", \"\"]], inputs: { portal: [\"cdkPortalHost\", \"portal\"] }, exportAs: [\"cdkPortalHost\"], features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\nvar ɵPortalHostDirective_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(PortalHostDirective);\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PortalHostDirective, [{\n type: Directive,\n args: [{\n selector: '[cdkPortalHost], [portalHost]',\n exportAs: 'cdkPortalHost',\n inputs: ['portal: cdkPortalHost'],\n providers: [{\n provide: CdkPortalOutlet,\n useExisting: PortalHostDirective\n }]\n }]\n }], null, null); })();\n return PortalHostDirective;\n}(CdkPortalOutlet));\nvar PortalModule = /** @class */ (function () {\n function PortalModule() {\n }\nPortalModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: PortalModule });\nPortalModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function PortalModule_Factory(t) { return new (t || PortalModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(PortalModule, { declarations: [CdkPortal,\n CdkPortalOutlet,\n TemplatePortalDirective,\n PortalHostDirective], exports: [CdkPortal,\n CdkPortalOutlet,\n TemplatePortalDirective,\n PortalHostDirective] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PortalModule, [{\n type: NgModule,\n args: [{\n exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],\n declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective]\n }]\n }], function () { return []; }, null); })();\n return PortalModule;\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/**\n * Custom injector to be used when providing custom\n * injection tokens to components inside a portal.\n * @docs-private\n */\nvar PortalInjector = /** @class */ (function () {\n function PortalInjector(_parentInjector, _customTokens) {\n this._parentInjector = _parentInjector;\n this._customTokens = _customTokens;\n }\n PortalInjector.prototype.get = function (token, notFoundValue) {\n var value = this._customTokens.get(token);\n if (typeof value !== 'undefined') {\n return value;\n }\n return this._parentInjector.get(token, notFoundValue);\n };\n return PortalInjector;\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, BasePortalOutlet, CdkPortal, CdkPortalOutlet, ComponentPortal, DomPortal, DomPortalHost, DomPortalOutlet, Portal, PortalHostDirective, PortalInjector, PortalModule, TemplatePortal, TemplatePortalDirective };\n\n//# sourceMappingURL=portal.js.map","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { InjectionToken, Directive, forwardRef, Input, Injectable, NgZone, Optional, Inject, ɵɵdefineInjectable, ɵɵinject, ElementRef, Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Output, ViewChild, ViewContainerRef, TemplateRef, IterableDiffers, SkipSelf, NgModule } from '@angular/core';\nimport { Subject, of, Observable, fromEvent, merge, animationFrameScheduler, asapScheduler, Subscription, isObservable } from 'rxjs';\nimport { distinctUntilChanged, auditTime, filter, takeUntil, startWith, pairwise, switchMap, shareReplay } from 'rxjs/operators';\nimport { Platform, getRtlScrollAxisType, supportsScrollBehavior, PlatformModule } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { Directionality, BidiModule } from '@angular/cdk/bidi';\nimport { __extends, __values, __read } from 'tslib';\nimport { isDataSource, ArrayDataSource } from '@angular/cdk/collections';\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/** The injection token used to specify the virtual scrolling strategy. */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/cdk/platform';\nimport * as ɵngcc2 from '@angular/cdk/bidi';\n\nvar _c0 = [\"contentWrapper\"];\nvar _c1 = [\"*\"];\nvar VIRTUAL_SCROLL_STRATEGY = new InjectionToken('VIRTUAL_SCROLL_STRATEGY');\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/** Virtual scrolling strategy for lists with items of known fixed size. */\nvar FixedSizeVirtualScrollStrategy = /** @class */ (function () {\n /**\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n function FixedSizeVirtualScrollStrategy(itemSize, minBufferPx, maxBufferPx) {\n this._scrolledIndexChange = new Subject();\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n this.scrolledIndexChange = this._scrolledIndexChange.pipe(distinctUntilChanged());\n /** The attached viewport. */\n this._viewport = null;\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n FixedSizeVirtualScrollStrategy.prototype.attach = function (viewport) {\n this._viewport = viewport;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n };\n /** Detaches this scroll strategy from the currently attached viewport. */\n FixedSizeVirtualScrollStrategy.prototype.detach = function () {\n this._scrolledIndexChange.complete();\n this._viewport = null;\n };\n /**\n * Update the item size and buffer size.\n * @param itemSize The size of the items in the virtually scrolling list.\n * @param minBufferPx The minimum amount of buffer (in pixels) before needing to render more\n * @param maxBufferPx The amount of buffer (in pixels) to render when rendering more.\n */\n FixedSizeVirtualScrollStrategy.prototype.updateItemAndBufferSize = function (itemSize, minBufferPx, maxBufferPx) {\n if (maxBufferPx < minBufferPx) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._itemSize = itemSize;\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._updateTotalContentSize();\n this._updateRenderedRange();\n };\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n FixedSizeVirtualScrollStrategy.prototype.onContentScrolled = function () {\n this._updateRenderedRange();\n };\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n FixedSizeVirtualScrollStrategy.prototype.onDataLengthChanged = function () {\n this._updateTotalContentSize();\n this._updateRenderedRange();\n };\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n FixedSizeVirtualScrollStrategy.prototype.onContentRendered = function () { };\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n FixedSizeVirtualScrollStrategy.prototype.onRenderedOffsetChanged = function () { };\n /**\n * Scroll to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling.\n */\n FixedSizeVirtualScrollStrategy.prototype.scrollToIndex = function (index, behavior) {\n if (this._viewport) {\n this._viewport.scrollToOffset(index * this._itemSize, behavior);\n }\n };\n /** Update the viewport's total content size. */\n FixedSizeVirtualScrollStrategy.prototype._updateTotalContentSize = function () {\n if (!this._viewport) {\n return;\n }\n this._viewport.setTotalContentSize(this._viewport.getDataLength() * this._itemSize);\n };\n /** Update the viewport's rendered range. */\n FixedSizeVirtualScrollStrategy.prototype._updateRenderedRange = function () {\n if (!this._viewport) {\n return;\n }\n var scrollOffset = this._viewport.measureScrollOffset();\n var firstVisibleIndex = scrollOffset / this._itemSize;\n var renderedRange = this._viewport.getRenderedRange();\n var newRange = { start: renderedRange.start, end: renderedRange.end };\n var viewportSize = this._viewport.getViewportSize();\n var dataLength = this._viewport.getDataLength();\n var startBuffer = scrollOffset - newRange.start * this._itemSize;\n if (startBuffer < this._minBufferPx && newRange.start != 0) {\n var expandStart = Math.ceil((this._maxBufferPx - startBuffer) / this._itemSize);\n newRange.start = Math.max(0, newRange.start - expandStart);\n newRange.end = Math.min(dataLength, Math.ceil(firstVisibleIndex + (viewportSize + this._minBufferPx) / this._itemSize));\n }\n else {\n var endBuffer = newRange.end * this._itemSize - (scrollOffset + viewportSize);\n if (endBuffer < this._minBufferPx && newRange.end != dataLength) {\n var expandEnd = Math.ceil((this._maxBufferPx - endBuffer) / this._itemSize);\n if (expandEnd > 0) {\n newRange.end = Math.min(dataLength, newRange.end + expandEnd);\n newRange.start = Math.max(0, Math.floor(firstVisibleIndex - this._minBufferPx / this._itemSize));\n }\n }\n }\n this._viewport.setRenderedRange(newRange);\n this._viewport.setRenderedContentOffset(this._itemSize * newRange.start);\n this._scrolledIndexChange.next(Math.floor(firstVisibleIndex));\n };\n return FixedSizeVirtualScrollStrategy;\n}());\n/**\n * Provider factory for `FixedSizeVirtualScrollStrategy` that simply extracts the already created\n * `FixedSizeVirtualScrollStrategy` from the given directive.\n * @param fixedSizeDir The instance of `CdkFixedSizeVirtualScroll` to extract the\n * `FixedSizeVirtualScrollStrategy` from.\n */\nfunction _fixedSizeVirtualScrollStrategyFactory(fixedSizeDir) {\n return fixedSizeDir._scrollStrategy;\n}\n/** A virtual scroll strategy that supports fixed-size items. */\nvar CdkFixedSizeVirtualScroll = /** @class */ (function () {\n function CdkFixedSizeVirtualScroll() {\n this._itemSize = 20;\n this._minBufferPx = 100;\n this._maxBufferPx = 200;\n /** The scroll strategy used by this directive. */\n this._scrollStrategy = new FixedSizeVirtualScrollStrategy(this.itemSize, this.minBufferPx, this.maxBufferPx);\n }\n Object.defineProperty(CdkFixedSizeVirtualScroll.prototype, \"itemSize\", {\n /** The size of the items in the list (in pixels). */\n get: function () { return this._itemSize; },\n set: function (value) { this._itemSize = coerceNumberProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkFixedSizeVirtualScroll.prototype, \"minBufferPx\", {\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n get: function () { return this._minBufferPx; },\n set: function (value) { this._minBufferPx = coerceNumberProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkFixedSizeVirtualScroll.prototype, \"maxBufferPx\", {\n /**\n * The number of pixels worth of buffer to render for when rendering new items. Defaults to 200px.\n */\n get: function () { return this._maxBufferPx; },\n set: function (value) { this._maxBufferPx = coerceNumberProperty(value); },\n enumerable: true,\n configurable: true\n });\n CdkFixedSizeVirtualScroll.prototype.ngOnChanges = function () {\n this._scrollStrategy.updateItemAndBufferSize(this.itemSize, this.minBufferPx, this.maxBufferPx);\n };\n CdkFixedSizeVirtualScroll.propDecorators = {\n itemSize: [{ type: Input }],\n minBufferPx: [{ type: Input }],\n maxBufferPx: [{ type: Input }]\n };\nCdkFixedSizeVirtualScroll.ɵfac = function CdkFixedSizeVirtualScroll_Factory(t) { return new (t || CdkFixedSizeVirtualScroll)(); };\nCdkFixedSizeVirtualScroll.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CdkFixedSizeVirtualScroll, selectors: [[\"cdk-virtual-scroll-viewport\", \"itemSize\", \"\"]], inputs: { itemSize: \"itemSize\", minBufferPx: \"minBufferPx\", maxBufferPx: \"maxBufferPx\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(function () { return CdkFixedSizeVirtualScroll; })]\n }]), ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkFixedSizeVirtualScroll, [{\n type: Directive,\n args: [{\n selector: 'cdk-virtual-scroll-viewport[itemSize]',\n providers: [{\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _fixedSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(function () { return CdkFixedSizeVirtualScroll; })]\n }]\n }]\n }], function () { return []; }, { itemSize: [{\n type: Input\n }], minBufferPx: [{\n type: Input\n }], maxBufferPx: [{\n type: Input\n }] }); })();\n return CdkFixedSizeVirtualScroll;\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/** Time in ms to throttle the scrolling events by default. */\nvar DEFAULT_SCROLL_TIME = 20;\n/**\n * Service contained all registered Scrollable references and emits an event when any one of the\n * Scrollable references emit a scrolled event.\n */\nvar ScrollDispatcher = /** @class */ (function () {\n function ScrollDispatcher(_ngZone, _platform, \n /** @breaking-change 11.0.0 make document required */\n document) {\n this._ngZone = _ngZone;\n this._platform = _platform;\n /** Subject for notifying that a registered scrollable reference element has been scrolled. */\n this._scrolled = new Subject();\n /** Keeps track of the global `scroll` and `resize` subscriptions. */\n this._globalSubscription = null;\n /** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */\n this._scrolledCount = 0;\n /**\n * Map of all the scrollable references that are registered with the service and their\n * scroll event subscriptions.\n */\n this.scrollContainers = new Map();\n this._document = document;\n }\n /**\n * Registers a scrollable instance with the service and listens for its scrolled events. When the\n * scrollable is scrolled, the service emits the event to its scrolled observable.\n * @param scrollable Scrollable instance to be registered.\n */\n ScrollDispatcher.prototype.register = function (scrollable) {\n var _this = this;\n if (!this.scrollContainers.has(scrollable)) {\n this.scrollContainers.set(scrollable, scrollable.elementScrolled()\n .subscribe(function () { return _this._scrolled.next(scrollable); }));\n }\n };\n /**\n * Deregisters a Scrollable reference and unsubscribes from its scroll event observable.\n * @param scrollable Scrollable instance to be deregistered.\n */\n ScrollDispatcher.prototype.deregister = function (scrollable) {\n var scrollableReference = this.scrollContainers.get(scrollable);\n if (scrollableReference) {\n scrollableReference.unsubscribe();\n this.scrollContainers.delete(scrollable);\n }\n };\n /**\n * Returns an observable that emits an event whenever any of the registered Scrollable\n * references (or window, document, or body) fire a scrolled event. Can provide a time in ms\n * to override the default \"throttle\" time.\n *\n * **Note:** in order to avoid hitting change detection for every scroll event,\n * all of the events emitted from this stream will be run outside the Angular zone.\n * If you need to update any data bindings as a result of a scroll event, you have\n * to run the callback using `NgZone.run`.\n */\n ScrollDispatcher.prototype.scrolled = function (auditTimeInMs) {\n var _this = this;\n if (auditTimeInMs === void 0) { auditTimeInMs = DEFAULT_SCROLL_TIME; }\n if (!this._platform.isBrowser) {\n return of();\n }\n return new Observable(function (observer) {\n if (!_this._globalSubscription) {\n _this._addGlobalListener();\n }\n // In the case of a 0ms delay, use an observable without auditTime\n // since it does add a perceptible delay in processing overhead.\n var subscription = auditTimeInMs > 0 ?\n _this._scrolled.pipe(auditTime(auditTimeInMs)).subscribe(observer) :\n _this._scrolled.subscribe(observer);\n _this._scrolledCount++;\n return function () {\n subscription.unsubscribe();\n _this._scrolledCount--;\n if (!_this._scrolledCount) {\n _this._removeGlobalListener();\n }\n };\n });\n };\n ScrollDispatcher.prototype.ngOnDestroy = function () {\n var _this = this;\n this._removeGlobalListener();\n this.scrollContainers.forEach(function (_, container) { return _this.deregister(container); });\n this._scrolled.complete();\n };\n /**\n * Returns an observable that emits whenever any of the\n * scrollable ancestors of an element are scrolled.\n * @param elementRef Element whose ancestors to listen for.\n * @param auditTimeInMs Time to throttle the scroll events.\n */\n ScrollDispatcher.prototype.ancestorScrolled = function (elementRef, auditTimeInMs) {\n var ancestors = this.getAncestorScrollContainers(elementRef);\n return this.scrolled(auditTimeInMs).pipe(filter(function (target) {\n return !target || ancestors.indexOf(target) > -1;\n }));\n };\n /** Returns all registered Scrollables that contain the provided element. */\n ScrollDispatcher.prototype.getAncestorScrollContainers = function (elementRef) {\n var _this = this;\n var scrollingContainers = [];\n this.scrollContainers.forEach(function (_subscription, scrollable) {\n if (_this._scrollableContainsElement(scrollable, elementRef)) {\n scrollingContainers.push(scrollable);\n }\n });\n return scrollingContainers;\n };\n /** Access injected document if available or fallback to global document reference */\n ScrollDispatcher.prototype._getDocument = function () {\n return this._document || document;\n };\n /** Use defaultView of injected document if available or fallback to global window reference */\n ScrollDispatcher.prototype._getWindow = function () {\n var doc = this._getDocument();\n return doc.defaultView || window;\n };\n /** Returns true if the element is contained within the provided Scrollable. */\n ScrollDispatcher.prototype._scrollableContainsElement = function (scrollable, elementRef) {\n var element = elementRef.nativeElement;\n var scrollableElement = scrollable.getElementRef().nativeElement;\n // Traverse through the element parents until we reach null, checking if any of the elements\n // are the scrollable's element.\n do {\n if (element == scrollableElement) {\n return true;\n }\n } while (element = element.parentElement);\n return false;\n };\n /** Sets up the global scroll listeners. */\n ScrollDispatcher.prototype._addGlobalListener = function () {\n var _this = this;\n this._globalSubscription = this._ngZone.runOutsideAngular(function () {\n var window = _this._getWindow();\n return fromEvent(window.document, 'scroll').subscribe(function () { return _this._scrolled.next(); });\n });\n };\n /** Cleans up the global scroll listener. */\n ScrollDispatcher.prototype._removeGlobalListener = function () {\n if (this._globalSubscription) {\n this._globalSubscription.unsubscribe();\n this._globalSubscription = null;\n }\n };\n /** @nocollapse */\n ScrollDispatcher.ctorParameters = function () { return [\n { type: NgZone },\n { type: Platform },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }\n ]; };\n ScrollDispatcher.ɵprov = ɵɵdefineInjectable({ factory: function ScrollDispatcher_Factory() { return new ScrollDispatcher(ɵɵinject(NgZone), ɵɵinject(Platform), ɵɵinject(DOCUMENT, 8)); }, token: ScrollDispatcher, providedIn: \"root\" });\nScrollDispatcher.ɵfac = function ScrollDispatcher_Factory(t) { return new (t || ScrollDispatcher)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc1.Platform), ɵngcc0.ɵɵinject(DOCUMENT, 8)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ScrollDispatcher, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n return ScrollDispatcher;\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/**\n * Sends an event when the directive's element is scrolled. Registers itself with the\n * ScrollDispatcher service to include itself as part of its collection of scrolling events that it\n * can be listened to through the service.\n */\nvar CdkScrollable = /** @class */ (function () {\n function CdkScrollable(elementRef, scrollDispatcher, ngZone, dir) {\n var _this = this;\n this.elementRef = elementRef;\n this.scrollDispatcher = scrollDispatcher;\n this.ngZone = ngZone;\n this.dir = dir;\n this._destroyed = new Subject();\n this._elementScrolled = new Observable(function (observer) {\n return _this.ngZone.runOutsideAngular(function () {\n return fromEvent(_this.elementRef.nativeElement, 'scroll').pipe(takeUntil(_this._destroyed))\n .subscribe(observer);\n });\n });\n }\n CdkScrollable.prototype.ngOnInit = function () {\n this.scrollDispatcher.register(this);\n };\n CdkScrollable.prototype.ngOnDestroy = function () {\n this.scrollDispatcher.deregister(this);\n this._destroyed.next();\n this._destroyed.complete();\n };\n /** Returns observable that emits when a scroll event is fired on the host element. */\n CdkScrollable.prototype.elementScrolled = function () {\n return this._elementScrolled;\n };\n /** Gets the ElementRef for the viewport. */\n CdkScrollable.prototype.getElementRef = function () {\n return this.elementRef;\n };\n /**\n * Scrolls to the specified offsets. This is a normalized version of the browser's native scrollTo\n * method, since browsers are not consistent about what scrollLeft means in RTL. For this method\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param options specified the offsets to scroll to.\n */\n CdkScrollable.prototype.scrollTo = function (options) {\n var el = this.elementRef.nativeElement;\n var isRtl = this.dir && this.dir.value == 'rtl';\n // Rewrite start & end offsets as right or left offsets.\n if (options.left == null) {\n options.left = isRtl ? options.end : options.start;\n }\n if (options.right == null) {\n options.right = isRtl ? options.start : options.end;\n }\n // Rewrite the bottom offset as a top offset.\n if (options.bottom != null) {\n options.top =\n el.scrollHeight - el.clientHeight - options.bottom;\n }\n // Rewrite the right offset as a left offset.\n if (isRtl && getRtlScrollAxisType() != 0 /* NORMAL */) {\n if (options.left != null) {\n options.right =\n el.scrollWidth - el.clientWidth - options.left;\n }\n if (getRtlScrollAxisType() == 2 /* INVERTED */) {\n options.left = options.right;\n }\n else if (getRtlScrollAxisType() == 1 /* NEGATED */) {\n options.left = options.right ? -options.right : options.right;\n }\n }\n else {\n if (options.right != null) {\n options.left =\n el.scrollWidth - el.clientWidth - options.right;\n }\n }\n this._applyScrollToOptions(options);\n };\n CdkScrollable.prototype._applyScrollToOptions = function (options) {\n var el = this.elementRef.nativeElement;\n if (supportsScrollBehavior()) {\n el.scrollTo(options);\n }\n else {\n if (options.top != null) {\n el.scrollTop = options.top;\n }\n if (options.left != null) {\n el.scrollLeft = options.left;\n }\n }\n };\n /**\n * Measures the scroll offset relative to the specified edge of the viewport. This method can be\n * used instead of directly checking scrollLeft or scrollTop, since browsers are not consistent\n * about what scrollLeft means in RTL. The values returned by this method are normalized such that\n * left and right always refer to the left and right side of the scrolling container irrespective\n * of the layout direction. start and end refer to left and right in an LTR context and vice-versa\n * in an RTL context.\n * @param from The edge to measure from.\n */\n CdkScrollable.prototype.measureScrollOffset = function (from) {\n var LEFT = 'left';\n var RIGHT = 'right';\n var el = this.elementRef.nativeElement;\n if (from == 'top') {\n return el.scrollTop;\n }\n if (from == 'bottom') {\n return el.scrollHeight - el.clientHeight - el.scrollTop;\n }\n // Rewrite start & end as left or right offsets.\n var isRtl = this.dir && this.dir.value == 'rtl';\n if (from == 'start') {\n from = isRtl ? RIGHT : LEFT;\n }\n else if (from == 'end') {\n from = isRtl ? LEFT : RIGHT;\n }\n if (isRtl && getRtlScrollAxisType() == 2 /* INVERTED */) {\n // For INVERTED, scrollLeft is (scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n else {\n return el.scrollLeft;\n }\n }\n else if (isRtl && getRtlScrollAxisType() == 1 /* NEGATED */) {\n // For NEGATED, scrollLeft is -(scrollWidth - clientWidth) when scrolled all the way left and\n // 0 when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft + el.scrollWidth - el.clientWidth;\n }\n else {\n return -el.scrollLeft;\n }\n }\n else {\n // For NORMAL, as well as non-RTL contexts, scrollLeft is 0 when scrolled all the way left and\n // (scrollWidth - clientWidth) when scrolled all the way right.\n if (from == LEFT) {\n return el.scrollLeft;\n }\n else {\n return el.scrollWidth - el.clientWidth - el.scrollLeft;\n }\n }\n };\n /** @nocollapse */\n CdkScrollable.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ScrollDispatcher },\n { type: NgZone },\n { type: Directionality, decorators: [{ type: Optional }] }\n ]; };\nCdkScrollable.ɵfac = function CdkScrollable_Factory(t) { return new (t || CdkScrollable)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ScrollDispatcher), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.Directionality, 8)); };\nCdkScrollable.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CdkScrollable, selectors: [[\"\", \"cdk-scrollable\", \"\"], [\"\", \"cdkScrollable\", \"\"]] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkScrollable, [{\n type: Directive,\n args: [{\n selector: '[cdk-scrollable], [cdkScrollable]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ScrollDispatcher }, { type: ɵngcc0.NgZone }, { type: ɵngcc2.Directionality, decorators: [{\n type: Optional\n }] }]; }, null); })();\n return CdkScrollable;\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/** Time in ms to throttle the resize events by default. */\nvar DEFAULT_RESIZE_TIME = 20;\n/**\n * Simple utility for getting the bounds of the browser viewport.\n * @docs-private\n */\nvar ViewportRuler = /** @class */ (function () {\n function ViewportRuler(_platform, ngZone, \n /** @breaking-change 11.0.0 make document required */\n document) {\n var _this = this;\n this._platform = _platform;\n this._document = document;\n ngZone.runOutsideAngular(function () {\n var window = _this._getWindow();\n _this._change = _platform.isBrowser ?\n merge(fromEvent(window, 'resize'), fromEvent(window, 'orientationchange')) :\n of();\n // Note that we need to do the subscription inside `runOutsideAngular`\n // since subscribing is what causes the event listener to be added.\n _this._invalidateCache = _this.change().subscribe(function () { return _this._updateViewportSize(); });\n });\n }\n ViewportRuler.prototype.ngOnDestroy = function () {\n this._invalidateCache.unsubscribe();\n };\n /** Returns the viewport's width and height. */\n ViewportRuler.prototype.getViewportSize = function () {\n if (!this._viewportSize) {\n this._updateViewportSize();\n }\n var output = { width: this._viewportSize.width, height: this._viewportSize.height };\n // If we're not on a browser, don't cache the size since it'll be mocked out anyway.\n if (!this._platform.isBrowser) {\n this._viewportSize = null;\n }\n return output;\n };\n /** Gets a ClientRect for the viewport's bounds. */\n ViewportRuler.prototype.getViewportRect = function () {\n // Use the document element's bounding rect rather than the window scroll properties\n // (e.g. pageYOffset, scrollY) due to in issue in Chrome and IE where window scroll\n // properties and client coordinates (boundingClientRect, clientX/Y, etc.) are in different\n // conceptual viewports. Under most circumstances these viewports are equivalent, but they\n // can disagree when the page is pinch-zoomed (on devices that support touch).\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=489206#c4\n // We use the documentElement instead of the body because, by default (without a css reset)\n // browsers typically give the document body an 8px margin, which is not included in\n // getBoundingClientRect().\n var scrollPosition = this.getViewportScrollPosition();\n var _a = this.getViewportSize(), width = _a.width, height = _a.height;\n return {\n top: scrollPosition.top,\n left: scrollPosition.left,\n bottom: scrollPosition.top + height,\n right: scrollPosition.left + width,\n height: height,\n width: width,\n };\n };\n /** Gets the (top, left) scroll position of the viewport. */\n ViewportRuler.prototype.getViewportScrollPosition = function () {\n // While we can get a reference to the fake document\n // during SSR, it doesn't have getBoundingClientRect.\n if (!this._platform.isBrowser) {\n return { top: 0, left: 0 };\n }\n // The top-left-corner of the viewport is determined by the scroll position of the document\n // body, normally just (scrollLeft, scrollTop). However, Chrome and Firefox disagree about\n // whether `document.body` or `document.documentElement` is the scrolled element, so reading\n // `scrollTop` and `scrollLeft` is inconsistent. However, using the bounding rect of\n // `document.documentElement` works consistently, where the `top` and `left` values will\n // equal negative the scroll position.\n var document = this._getDocument();\n var window = this._getWindow();\n var documentElement = document.documentElement;\n var documentRect = documentElement.getBoundingClientRect();\n var top = -documentRect.top || document.body.scrollTop || window.scrollY ||\n documentElement.scrollTop || 0;\n var left = -documentRect.left || document.body.scrollLeft || window.scrollX ||\n documentElement.scrollLeft || 0;\n return { top: top, left: left };\n };\n /**\n * Returns a stream that emits whenever the size of the viewport changes.\n * @param throttleTime Time in milliseconds to throttle the stream.\n */\n ViewportRuler.prototype.change = function (throttleTime) {\n if (throttleTime === void 0) { throttleTime = DEFAULT_RESIZE_TIME; }\n return throttleTime > 0 ? this._change.pipe(auditTime(throttleTime)) : this._change;\n };\n /** Access injected document if available or fallback to global document reference */\n ViewportRuler.prototype._getDocument = function () {\n return this._document || document;\n };\n /** Use defaultView of injected document if available or fallback to global window reference */\n ViewportRuler.prototype._getWindow = function () {\n var doc = this._getDocument();\n return doc.defaultView || window;\n };\n /** Updates the cached viewport size. */\n ViewportRuler.prototype._updateViewportSize = function () {\n var window = this._getWindow();\n this._viewportSize = this._platform.isBrowser ?\n { width: window.innerWidth, height: window.innerHeight } :\n { width: 0, height: 0 };\n };\n /** @nocollapse */\n ViewportRuler.ctorParameters = function () { return [\n { type: Platform },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }\n ]; };\n ViewportRuler.ɵprov = ɵɵdefineInjectable({ factory: function ViewportRuler_Factory() { return new ViewportRuler(ɵɵinject(Platform), ɵɵinject(NgZone), ɵɵinject(DOCUMENT, 8)); }, token: ViewportRuler, providedIn: \"root\" });\nViewportRuler.ɵfac = function ViewportRuler_Factory(t) { return new (t || ViewportRuler)(ɵngcc0.ɵɵinject(ɵngcc1.Platform), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DOCUMENT, 8)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ViewportRuler, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc1.Platform }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n return ViewportRuler;\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/** Checks if the given ranges are equal. */\nfunction rangesEqual(r1, r2) {\n return r1.start == r2.start && r1.end == r2.end;\n}\n/**\n * Scheduler to be used for scroll events. Needs to fall back to\n * something that doesn't rely on requestAnimationFrame on environments\n * that don't support it (e.g. server-side rendering).\n */\nvar SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\n/** A viewport that virtualizes its scrolling with the help of `CdkVirtualForOf`. */\nvar CdkVirtualScrollViewport = /** @class */ (function (_super) {\n __extends(CdkVirtualScrollViewport, _super);\n function CdkVirtualScrollViewport(elementRef, _changeDetectorRef, ngZone, _scrollStrategy, dir, scrollDispatcher, \n /**\n * @deprecated `viewportRuler` parameter to become required.\n * @breaking-change 11.0.0\n */\n viewportRuler) {\n var _this = _super.call(this, elementRef, scrollDispatcher, ngZone, dir) || this;\n _this.elementRef = elementRef;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._scrollStrategy = _scrollStrategy;\n /** Emits when the viewport is detached from a CdkVirtualForOf. */\n _this._detachedSubject = new Subject();\n /** Emits when the rendered range changes. */\n _this._renderedRangeSubject = new Subject();\n _this._orientation = 'vertical';\n // Note: we don't use the typical EventEmitter here because we need to subscribe to the scroll\n // strategy lazily (i.e. only if the user is actually listening to the events). We do this because\n // depending on how the strategy calculates the scrolled index, it may come at a cost to\n // performance.\n /** Emits when the index of the first element visible in the viewport changes. */\n _this.scrolledIndexChange = new Observable(function (observer) {\n return _this._scrollStrategy.scrolledIndexChange.subscribe(function (index) {\n return Promise.resolve().then(function () { return _this.ngZone.run(function () { return observer.next(index); }); });\n });\n });\n /** A stream that emits whenever the rendered range changes. */\n _this.renderedRangeStream = _this._renderedRangeSubject.asObservable();\n /**\n * The total size of all content (in pixels), including content that is not currently rendered.\n */\n _this._totalContentSize = 0;\n /** A string representing the `style.width` property value to be used for the spacer element. */\n _this._totalContentWidth = '';\n /** A string representing the `style.height` property value to be used for the spacer element. */\n _this._totalContentHeight = '';\n /** The currently rendered range of indices. */\n _this._renderedRange = { start: 0, end: 0 };\n /** The length of the data bound to this viewport (in number of items). */\n _this._dataLength = 0;\n /** The size of the viewport (in pixels). */\n _this._viewportSize = 0;\n /** The last rendered content offset that was set. */\n _this._renderedContentOffset = 0;\n /**\n * Whether the last rendered content offset was to the end of the content (and therefore needs to\n * be rewritten as an offset to the start of the content).\n */\n _this._renderedContentOffsetNeedsRewrite = false;\n /** Whether there is a pending change detection cycle. */\n _this._isChangeDetectionPending = false;\n /** A list of functions to run after the next change detection cycle. */\n _this._runAfterChangeDetection = [];\n /** Subscription to changes in the viewport size. */\n _this._viewportChanges = Subscription.EMPTY;\n if (!_scrollStrategy) {\n throw Error('Error: cdk-virtual-scroll-viewport requires the \"itemSize\" property to be set.');\n }\n // @breaking-change 11.0.0 Remove null check for `viewportRuler`.\n if (viewportRuler) {\n _this._viewportChanges = viewportRuler.change().subscribe(function () {\n _this.checkViewportSize();\n });\n }\n return _this;\n }\n Object.defineProperty(CdkVirtualScrollViewport.prototype, \"orientation\", {\n /** The direction the viewport scrolls. */\n get: function () {\n return this._orientation;\n },\n set: function (orientation) {\n if (this._orientation !== orientation) {\n this._orientation = orientation;\n this._calculateSpacerSize();\n }\n },\n enumerable: true,\n configurable: true\n });\n CdkVirtualScrollViewport.prototype.ngOnInit = function () {\n var _this = this;\n _super.prototype.ngOnInit.call(this);\n // It's still too early to measure the viewport at this point. Deferring with a promise allows\n // the Viewport to be rendered with the correct size before we measure. We run this outside the\n // zone to avoid causing more change detection cycles. We handle the change detection loop\n // ourselves instead.\n this.ngZone.runOutsideAngular(function () { return Promise.resolve().then(function () {\n _this._measureViewportSize();\n _this._scrollStrategy.attach(_this);\n _this.elementScrolled()\n .pipe(\n // Start off with a fake scroll event so we properly detect our initial position.\n startWith(null), \n // Collect multiple events into one until the next animation frame. This way if\n // there are multiple scroll events in the same frame we only need to recheck\n // our layout once.\n auditTime(0, SCROLL_SCHEDULER))\n .subscribe(function () { return _this._scrollStrategy.onContentScrolled(); });\n _this._markChangeDetectionNeeded();\n }); });\n };\n CdkVirtualScrollViewport.prototype.ngOnDestroy = function () {\n this.detach();\n this._scrollStrategy.detach();\n // Complete all subjects\n this._renderedRangeSubject.complete();\n this._detachedSubject.complete();\n this._viewportChanges.unsubscribe();\n _super.prototype.ngOnDestroy.call(this);\n };\n /** Attaches a `CdkVirtualForOf` to this viewport. */\n CdkVirtualScrollViewport.prototype.attach = function (forOf) {\n var _this = this;\n if (this._forOf) {\n throw Error('CdkVirtualScrollViewport is already attached.');\n }\n // Subscribe to the data stream of the CdkVirtualForOf to keep track of when the data length\n // changes. Run outside the zone to avoid triggering change detection, since we're managing the\n // change detection loop ourselves.\n this.ngZone.runOutsideAngular(function () {\n _this._forOf = forOf;\n _this._forOf.dataStream.pipe(takeUntil(_this._detachedSubject)).subscribe(function (data) {\n var newLength = data.length;\n if (newLength !== _this._dataLength) {\n _this._dataLength = newLength;\n _this._scrollStrategy.onDataLengthChanged();\n }\n _this._doChangeDetection();\n });\n });\n };\n /** Detaches the current `CdkVirtualForOf`. */\n CdkVirtualScrollViewport.prototype.detach = function () {\n this._forOf = null;\n this._detachedSubject.next();\n };\n /** Gets the length of the data bound to this viewport (in number of items). */\n CdkVirtualScrollViewport.prototype.getDataLength = function () {\n return this._dataLength;\n };\n /** Gets the size of the viewport (in pixels). */\n CdkVirtualScrollViewport.prototype.getViewportSize = function () {\n return this._viewportSize;\n };\n // TODO(mmalerba): This is technically out of sync with what's really rendered until a render\n // cycle happens. I'm being careful to only call it after the render cycle is complete and before\n // setting it to something else, but its error prone and should probably be split into\n // `pendingRange` and `renderedRange`, the latter reflecting whats actually in the DOM.\n /** Get the current rendered range of items. */\n CdkVirtualScrollViewport.prototype.getRenderedRange = function () {\n return this._renderedRange;\n };\n /**\n * Sets the total size of all content (in pixels), including content that is not currently\n * rendered.\n */\n CdkVirtualScrollViewport.prototype.setTotalContentSize = function (size) {\n if (this._totalContentSize !== size) {\n this._totalContentSize = size;\n this._calculateSpacerSize();\n this._markChangeDetectionNeeded();\n }\n };\n /** Sets the currently rendered range of indices. */\n CdkVirtualScrollViewport.prototype.setRenderedRange = function (range) {\n var _this = this;\n if (!rangesEqual(this._renderedRange, range)) {\n this._renderedRangeSubject.next(this._renderedRange = range);\n this._markChangeDetectionNeeded(function () { return _this._scrollStrategy.onContentRendered(); });\n }\n };\n /**\n * Gets the offset from the start of the viewport to the start of the rendered data (in pixels).\n */\n CdkVirtualScrollViewport.prototype.getOffsetToRenderedContentStart = function () {\n return this._renderedContentOffsetNeedsRewrite ? null : this._renderedContentOffset;\n };\n /**\n * Sets the offset from the start of the viewport to either the start or end of the rendered data\n * (in pixels).\n */\n CdkVirtualScrollViewport.prototype.setRenderedContentOffset = function (offset, to) {\n var _this = this;\n if (to === void 0) { to = 'to-start'; }\n // For a horizontal viewport in a right-to-left language we need to translate along the x-axis\n // in the negative direction.\n var isRtl = this.dir && this.dir.value == 'rtl';\n var isHorizontal = this.orientation == 'horizontal';\n var axis = isHorizontal ? 'X' : 'Y';\n var axisDirection = isHorizontal && isRtl ? -1 : 1;\n var transform = \"translate\" + axis + \"(\" + Number(axisDirection * offset) + \"px)\";\n this._renderedContentOffset = offset;\n if (to === 'to-end') {\n transform += \" translate\" + axis + \"(-100%)\";\n // The viewport should rewrite this as a `to-start` offset on the next render cycle. Otherwise\n // elements will appear to expand in the wrong direction (e.g. `mat-expansion-panel` would\n // expand upward).\n this._renderedContentOffsetNeedsRewrite = true;\n }\n if (this._renderedContentTransform != transform) {\n // We know this value is safe because we parse `offset` with `Number()` before passing it\n // into the string.\n this._renderedContentTransform = transform;\n this._markChangeDetectionNeeded(function () {\n if (_this._renderedContentOffsetNeedsRewrite) {\n _this._renderedContentOffset -= _this.measureRenderedContentSize();\n _this._renderedContentOffsetNeedsRewrite = false;\n _this.setRenderedContentOffset(_this._renderedContentOffset);\n }\n else {\n _this._scrollStrategy.onRenderedOffsetChanged();\n }\n });\n }\n };\n /**\n * Scrolls to the given offset from the start of the viewport. Please note that this is not always\n * the same as setting `scrollTop` or `scrollLeft`. In a horizontal viewport with right-to-left\n * direction, this would be the equivalent of setting a fictional `scrollRight` property.\n * @param offset The offset to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n CdkVirtualScrollViewport.prototype.scrollToOffset = function (offset, behavior) {\n if (behavior === void 0) { behavior = 'auto'; }\n var options = { behavior: behavior };\n if (this.orientation === 'horizontal') {\n options.start = offset;\n }\n else {\n options.top = offset;\n }\n this.scrollTo(options);\n };\n /**\n * Scrolls to the offset for the given index.\n * @param index The index of the element to scroll to.\n * @param behavior The ScrollBehavior to use when scrolling. Default is behavior is `auto`.\n */\n CdkVirtualScrollViewport.prototype.scrollToIndex = function (index, behavior) {\n if (behavior === void 0) { behavior = 'auto'; }\n this._scrollStrategy.scrollToIndex(index, behavior);\n };\n /**\n * Gets the current scroll offset from the start of the viewport (in pixels).\n * @param from The edge to measure the offset from. Defaults to 'top' in vertical mode and 'start'\n * in horizontal mode.\n */\n CdkVirtualScrollViewport.prototype.measureScrollOffset = function (from) {\n return from ?\n _super.prototype.measureScrollOffset.call(this, from) :\n _super.prototype.measureScrollOffset.call(this, this.orientation === 'horizontal' ? 'start' : 'top');\n };\n /** Measure the combined size of all of the rendered items. */\n CdkVirtualScrollViewport.prototype.measureRenderedContentSize = function () {\n var contentEl = this._contentWrapper.nativeElement;\n return this.orientation === 'horizontal' ? contentEl.offsetWidth : contentEl.offsetHeight;\n };\n /**\n * Measure the total combined size of the given range. Throws if the range includes items that are\n * not rendered.\n */\n CdkVirtualScrollViewport.prototype.measureRangeSize = function (range) {\n if (!this._forOf) {\n return 0;\n }\n return this._forOf.measureRangeSize(range, this.orientation);\n };\n /** Update the viewport dimensions and re-render. */\n CdkVirtualScrollViewport.prototype.checkViewportSize = function () {\n // TODO: Cleanup later when add logic for handling content resize\n this._measureViewportSize();\n this._scrollStrategy.onDataLengthChanged();\n };\n /** Measure the viewport size. */\n CdkVirtualScrollViewport.prototype._measureViewportSize = function () {\n var viewportEl = this.elementRef.nativeElement;\n this._viewportSize = this.orientation === 'horizontal' ?\n viewportEl.clientWidth : viewportEl.clientHeight;\n };\n /** Queue up change detection to run. */\n CdkVirtualScrollViewport.prototype._markChangeDetectionNeeded = function (runAfter) {\n var _this = this;\n if (runAfter) {\n this._runAfterChangeDetection.push(runAfter);\n }\n // Use a Promise to batch together calls to `_doChangeDetection`. This way if we set a bunch of\n // properties sequentially we only have to run `_doChangeDetection` once at the end.\n if (!this._isChangeDetectionPending) {\n this._isChangeDetectionPending = true;\n this.ngZone.runOutsideAngular(function () { return Promise.resolve().then(function () {\n _this._doChangeDetection();\n }); });\n }\n };\n /** Run change detection. */\n CdkVirtualScrollViewport.prototype._doChangeDetection = function () {\n var e_1, _a;\n var _this = this;\n this._isChangeDetectionPending = false;\n // Apply the content transform. The transform can't be set via an Angular binding because\n // bypassSecurityTrustStyle is banned in Google. However the value is safe, it's composed of\n // string literals, a variable that can only be 'X' or 'Y', and user input that is run through\n // the `Number` function first to coerce it to a numeric value.\n this._contentWrapper.nativeElement.style.transform = this._renderedContentTransform;\n // Apply changes to Angular bindings. Note: We must call `markForCheck` to run change detection\n // from the root, since the repeated items are content projected in. Calling `detectChanges`\n // instead does not properly check the projected content.\n this.ngZone.run(function () { return _this._changeDetectorRef.markForCheck(); });\n var runAfterChangeDetection = this._runAfterChangeDetection;\n this._runAfterChangeDetection = [];\n try {\n for (var runAfterChangeDetection_1 = __values(runAfterChangeDetection), runAfterChangeDetection_1_1 = runAfterChangeDetection_1.next(); !runAfterChangeDetection_1_1.done; runAfterChangeDetection_1_1 = runAfterChangeDetection_1.next()) {\n var fn = runAfterChangeDetection_1_1.value;\n fn();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (runAfterChangeDetection_1_1 && !runAfterChangeDetection_1_1.done && (_a = runAfterChangeDetection_1.return)) _a.call(runAfterChangeDetection_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /** Calculates the `style.width` and `style.height` for the spacer element. */\n CdkVirtualScrollViewport.prototype._calculateSpacerSize = function () {\n this._totalContentHeight =\n this.orientation === 'horizontal' ? '' : this._totalContentSize + \"px\";\n this._totalContentWidth =\n this.orientation === 'horizontal' ? this._totalContentSize + \"px\" : '';\n };\n /** @nocollapse */\n CdkVirtualScrollViewport.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [VIRTUAL_SCROLL_STRATEGY,] }] },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: ScrollDispatcher },\n { type: ViewportRuler, decorators: [{ type: Optional }] }\n ]; };\n CdkVirtualScrollViewport.propDecorators = {\n orientation: [{ type: Input }],\n scrolledIndexChange: [{ type: Output }],\n _contentWrapper: [{ type: ViewChild, args: ['contentWrapper', { static: true },] }]\n };\nCdkVirtualScrollViewport.ɵfac = function CdkVirtualScrollViewport_Factory(t) { return new (t || CdkVirtualScrollViewport)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(VIRTUAL_SCROLL_STRATEGY, 8), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.Directionality, 8), ɵngcc0.ɵɵdirectiveInject(ScrollDispatcher), ɵngcc0.ɵɵdirectiveInject(ViewportRuler, 8)); };\nCdkVirtualScrollViewport.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CdkVirtualScrollViewport, selectors: [[\"cdk-virtual-scroll-viewport\"]], viewQuery: function CdkVirtualScrollViewport_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵstaticViewQuery(_c0, true);\n } if (rf & 2) {\n var _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._contentWrapper = _t.first);\n } }, hostAttrs: [1, \"cdk-virtual-scroll-viewport\"], hostVars: 4, hostBindings: function CdkVirtualScrollViewport_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"cdk-virtual-scroll-orientation-horizontal\", ctx.orientation === \"horizontal\")(\"cdk-virtual-scroll-orientation-vertical\", ctx.orientation !== \"horizontal\");\n } }, inputs: { orientation: \"orientation\" }, outputs: { scrolledIndexChange: \"scrolledIndexChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{\n provide: CdkScrollable,\n useExisting: CdkVirtualScrollViewport\n }]), ɵngcc0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 4, vars: 4, consts: [[1, \"cdk-virtual-scroll-content-wrapper\"], [\"contentWrapper\", \"\"], [1, \"cdk-virtual-scroll-spacer\"]], template: function CdkVirtualScrollViewport_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelement(3, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx._totalContentWidth)(\"height\", ctx._totalContentHeight);\n } }, styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\\n\"], encapsulation: 2, changeDetection: 0 });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkVirtualScrollViewport, [{\n type: Component,\n args: [{\n selector: 'cdk-virtual-scroll-viewport',\n template: \"\\n
\\n \\n
\\n\\n
\\n\",\n host: {\n 'class': 'cdk-virtual-scroll-viewport',\n '[class.cdk-virtual-scroll-orientation-horizontal]': 'orientation === \"horizontal\"',\n '[class.cdk-virtual-scroll-orientation-vertical]': 'orientation !== \"horizontal\"'\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{\n provide: CdkScrollable,\n useExisting: CdkVirtualScrollViewport\n }],\n styles: [\"cdk-virtual-scroll-viewport{display:block;position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;-webkit-overflow-scrolling:touch}.cdk-virtual-scroll-content-wrapper{position:absolute;top:0;left:0;contain:content}[dir=rtl] .cdk-virtual-scroll-content-wrapper{right:0;left:auto}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper{min-height:100%}.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-horizontal .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-left:0;padding-right:0;margin-left:0;margin-right:0;border-left-width:0;border-right-width:0;outline:none}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper{min-width:100%}.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>dl:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ol:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>table:not([cdkVirtualFor]),.cdk-virtual-scroll-orientation-vertical .cdk-virtual-scroll-content-wrapper>ul:not([cdkVirtualFor]){padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0;border-top-width:0;border-bottom-width:0;outline:none}.cdk-virtual-scroll-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0}[dir=rtl] .cdk-virtual-scroll-spacer{right:0;left:auto;transform-origin:100% 0}\\n\"]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [VIRTUAL_SCROLL_STRATEGY]\n }] }, { type: ɵngcc2.Directionality, decorators: [{\n type: Optional\n }] }, { type: ScrollDispatcher }, { type: ViewportRuler, decorators: [{\n type: Optional\n }] }]; }, { orientation: [{\n type: Input\n }], scrolledIndexChange: [{\n type: Output\n }], _contentWrapper: [{\n type: ViewChild,\n args: ['contentWrapper', { static: true }]\n }] }); })();\n return CdkVirtualScrollViewport;\n}(CdkScrollable));\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/** Helper to extract size from a DOM Node. */\nfunction getSize(orientation, node) {\n var el = node;\n if (!el.getBoundingClientRect) {\n return 0;\n }\n var rect = el.getBoundingClientRect();\n return orientation == 'horizontal' ? rect.width : rect.height;\n}\n/**\n * A directive similar to `ngForOf` to be used for rendering data inside a virtual scrolling\n * container.\n */\nvar CdkVirtualForOf = /** @class */ (function () {\n function CdkVirtualForOf(\n /** The view container to add items to. */\n _viewContainerRef, \n /** The template to use when stamping out new items. */\n _template, \n /** The set of available differs. */\n _differs, \n /** The virtual scrolling viewport that these items are being rendered in. */\n _viewport, ngZone) {\n var _this = this;\n this._viewContainerRef = _viewContainerRef;\n this._template = _template;\n this._differs = _differs;\n this._viewport = _viewport;\n /** Emits when the rendered view of the data changes. */\n this.viewChange = new Subject();\n /** Subject that emits when a new DataSource instance is given. */\n this._dataSourceChanges = new Subject();\n /**\n * The size of the cache used to store templates that are not being used for re-use later.\n * Setting the cache size to `0` will disable caching. Defaults to 20 templates.\n */\n this.cdkVirtualForTemplateCacheSize = 20;\n /** Emits whenever the data in the current DataSource changes. */\n this.dataStream = this._dataSourceChanges\n .pipe(\n // Start off with null `DataSource`.\n startWith(null), \n // Bundle up the previous and current data sources so we can work with both.\n pairwise(), \n // Use `_changeDataSource` to disconnect from the previous data source and connect to the\n // new one, passing back a stream of data changes which we run through `switchMap` to give\n // us a data stream that emits the latest data from whatever the current `DataSource` is.\n switchMap(function (_a) {\n var _b = __read(_a, 2), prev = _b[0], cur = _b[1];\n return _this._changeDataSource(prev, cur);\n }), \n // Replay the last emitted data when someone subscribes.\n shareReplay(1));\n /** The differ used to calculate changes to the data. */\n this._differ = null;\n /**\n * The template cache used to hold on ot template instancess that have been stamped out, but don't\n * currently need to be rendered. These instances will be reused in the future rather than\n * stamping out brand new ones.\n */\n this._templateCache = [];\n /** Whether the rendered data should be updated during the next ngDoCheck cycle. */\n this._needsUpdate = false;\n this._destroyed = new Subject();\n this.dataStream.subscribe(function (data) {\n _this._data = data;\n _this._onRenderedDataChange();\n });\n this._viewport.renderedRangeStream.pipe(takeUntil(this._destroyed)).subscribe(function (range) {\n _this._renderedRange = range;\n ngZone.run(function () { return _this.viewChange.next(_this._renderedRange); });\n _this._onRenderedDataChange();\n });\n this._viewport.attach(this);\n }\n Object.defineProperty(CdkVirtualForOf.prototype, \"cdkVirtualForOf\", {\n /** The DataSource to display. */\n get: function () {\n return this._cdkVirtualForOf;\n },\n set: function (value) {\n this._cdkVirtualForOf = value;\n if (isDataSource(value)) {\n this._dataSourceChanges.next(value);\n }\n else {\n // Slice the value if its an NgIterable to ensure we're working with an array.\n this._dataSourceChanges.next(new ArrayDataSource(isObservable(value) ? value : Array.prototype.slice.call(value || [])));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkVirtualForOf.prototype, \"cdkVirtualForTrackBy\", {\n /**\n * The `TrackByFunction` to use for tracking changes. The `TrackByFunction` takes the index and\n * the item and produces a value to be used as the item's identity when tracking changes.\n */\n get: function () {\n return this._cdkVirtualForTrackBy;\n },\n set: function (fn) {\n var _this = this;\n this._needsUpdate = true;\n this._cdkVirtualForTrackBy = fn ?\n function (index, item) { return fn(index + (_this._renderedRange ? _this._renderedRange.start : 0), item); } :\n undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkVirtualForOf.prototype, \"cdkVirtualForTemplate\", {\n /** The template used to stamp out new elements. */\n set: function (value) {\n if (value) {\n this._needsUpdate = true;\n this._template = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Measures the combined size (width for horizontal orientation, height for vertical) of all items\n * in the specified range. Throws an error if the range includes items that are not currently\n * rendered.\n */\n CdkVirtualForOf.prototype.measureRangeSize = function (range, orientation) {\n if (range.start >= range.end) {\n return 0;\n }\n if (range.start < this._renderedRange.start || range.end > this._renderedRange.end) {\n throw Error(\"Error: attempted to measure an item that isn't rendered.\");\n }\n // The index into the list of rendered views for the first item in the range.\n var renderedStartIndex = range.start - this._renderedRange.start;\n // The length of the range we're measuring.\n var rangeLen = range.end - range.start;\n // Loop over all root nodes for all items in the range and sum up their size.\n var totalSize = 0;\n var i = rangeLen;\n while (i--) {\n var view = this._viewContainerRef.get(i + renderedStartIndex);\n var j = view ? view.rootNodes.length : 0;\n while (j--) {\n totalSize += getSize(orientation, view.rootNodes[j]);\n }\n }\n return totalSize;\n };\n CdkVirtualForOf.prototype.ngDoCheck = function () {\n if (this._differ && this._needsUpdate) {\n // TODO(mmalerba): We should differentiate needs update due to scrolling and a new portion of\n // this list being rendered (can use simpler algorithm) vs needs update due to data actually\n // changing (need to do this diff).\n var changes = this._differ.diff(this._renderedItems);\n if (!changes) {\n this._updateContext();\n }\n else {\n this._applyChanges(changes);\n }\n this._needsUpdate = false;\n }\n };\n CdkVirtualForOf.prototype.ngOnDestroy = function () {\n var e_1, _a;\n this._viewport.detach();\n this._dataSourceChanges.next();\n this._dataSourceChanges.complete();\n this.viewChange.complete();\n this._destroyed.next();\n this._destroyed.complete();\n try {\n for (var _b = __values(this._templateCache), _c = _b.next(); !_c.done; _c = _b.next()) {\n var view = _c.value;\n view.destroy();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /** React to scroll state changes in the viewport. */\n CdkVirtualForOf.prototype._onRenderedDataChange = function () {\n if (!this._renderedRange) {\n return;\n }\n this._renderedItems = this._data.slice(this._renderedRange.start, this._renderedRange.end);\n if (!this._differ) {\n this._differ = this._differs.find(this._renderedItems).create(this.cdkVirtualForTrackBy);\n }\n this._needsUpdate = true;\n };\n /** Swap out one `DataSource` for another. */\n CdkVirtualForOf.prototype._changeDataSource = function (oldDs, newDs) {\n if (oldDs) {\n oldDs.disconnect(this);\n }\n this._needsUpdate = true;\n return newDs ? newDs.connect(this) : of();\n };\n /** Update the `CdkVirtualForOfContext` for all views. */\n CdkVirtualForOf.prototype._updateContext = function () {\n var count = this._data.length;\n var i = this._viewContainerRef.length;\n while (i--) {\n var view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n view.detectChanges();\n }\n };\n /** Apply changes to the DOM. */\n CdkVirtualForOf.prototype._applyChanges = function (changes) {\n var _this = this;\n // Rearrange the views to put them in the right location.\n changes.forEachOperation(function (record, adjustedPreviousIndex, currentIndex) {\n if (record.previousIndex == null) { // Item added.\n var view = _this._insertViewForNewItem(currentIndex);\n view.context.$implicit = record.item;\n }\n else if (currentIndex == null) { // Item removed.\n _this._cacheView(_this._detachView(adjustedPreviousIndex));\n }\n else { // Item moved.\n var view = _this._viewContainerRef.get(adjustedPreviousIndex);\n _this._viewContainerRef.move(view, currentIndex);\n view.context.$implicit = record.item;\n }\n });\n // Update $implicit for any items that had an identity change.\n changes.forEachIdentityChange(function (record) {\n var view = _this._viewContainerRef.get(record.currentIndex);\n view.context.$implicit = record.item;\n });\n // Update the context variables on all items.\n var count = this._data.length;\n var i = this._viewContainerRef.length;\n while (i--) {\n var view = this._viewContainerRef.get(i);\n view.context.index = this._renderedRange.start + i;\n view.context.count = count;\n this._updateComputedContextProperties(view.context);\n }\n };\n /** Cache the given detached view. */\n CdkVirtualForOf.prototype._cacheView = function (view) {\n if (this._templateCache.length < this.cdkVirtualForTemplateCacheSize) {\n this._templateCache.push(view);\n }\n else {\n var index = this._viewContainerRef.indexOf(view);\n // It's very unlikely that the index will ever be -1, but just in case,\n // destroy the view on its own, otherwise destroy it through the\n // container to ensure that all the references are removed.\n if (index === -1) {\n view.destroy();\n }\n else {\n this._viewContainerRef.remove(index);\n }\n }\n };\n /** Inserts a view for a new item, either from the cache or by creating a new one. */\n CdkVirtualForOf.prototype._insertViewForNewItem = function (index) {\n return this._insertViewFromCache(index) || this._createEmbeddedViewAt(index);\n };\n /** Update the computed properties on the `CdkVirtualForOfContext`. */\n CdkVirtualForOf.prototype._updateComputedContextProperties = function (context) {\n context.first = context.index === 0;\n context.last = context.index === context.count - 1;\n context.even = context.index % 2 === 0;\n context.odd = !context.even;\n };\n /** Creates a new embedded view and moves it to the given index */\n CdkVirtualForOf.prototype._createEmbeddedViewAt = function (index) {\n // Note that it's important that we insert the item directly at the proper index,\n // rather than inserting it and the moving it in place, because if there's a directive\n // on the same node that injects the `ViewContainerRef`, Angular will insert another\n // comment node which can throw off the move when it's being repeated for all items.\n return this._viewContainerRef.createEmbeddedView(this._template, {\n $implicit: null,\n // It's guaranteed that the iterable is not \"undefined\" or \"null\" because we only\n // generate views for elements if the \"cdkVirtualForOf\" iterable has elements.\n cdkVirtualForOf: this._cdkVirtualForOf,\n index: -1,\n count: -1,\n first: false,\n last: false,\n odd: false,\n even: false\n }, index);\n };\n /** Inserts a recycled view from the cache at the given index. */\n CdkVirtualForOf.prototype._insertViewFromCache = function (index) {\n var cachedView = this._templateCache.pop();\n if (cachedView) {\n this._viewContainerRef.insert(cachedView, index);\n }\n return cachedView || null;\n };\n /** Detaches the embedded view at the given index. */\n CdkVirtualForOf.prototype._detachView = function (index) {\n return this._viewContainerRef.detach(index);\n };\n /** @nocollapse */\n CdkVirtualForOf.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: TemplateRef },\n { type: IterableDiffers },\n { type: CdkVirtualScrollViewport, decorators: [{ type: SkipSelf }] },\n { type: NgZone }\n ]; };\n CdkVirtualForOf.propDecorators = {\n cdkVirtualForOf: [{ type: Input }],\n cdkVirtualForTrackBy: [{ type: Input }],\n cdkVirtualForTemplate: [{ type: Input }],\n cdkVirtualForTemplateCacheSize: [{ type: Input }]\n };\nCdkVirtualForOf.ɵfac = function CdkVirtualForOf_Factory(t) { return new (t || CdkVirtualForOf)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.IterableDiffers), ɵngcc0.ɵɵdirectiveInject(CdkVirtualScrollViewport, 4), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nCdkVirtualForOf.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CdkVirtualForOf, selectors: [[\"\", \"cdkVirtualFor\", \"\", \"cdkVirtualForOf\", \"\"]], inputs: { cdkVirtualForTemplateCacheSize: \"cdkVirtualForTemplateCacheSize\", cdkVirtualForOf: \"cdkVirtualForOf\", cdkVirtualForTrackBy: \"cdkVirtualForTrackBy\", cdkVirtualForTemplate: \"cdkVirtualForTemplate\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CdkVirtualForOf, [{\n type: Directive,\n args: [{\n selector: '[cdkVirtualFor][cdkVirtualForOf]'\n }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }, { type: ɵngcc0.IterableDiffers }, { type: CdkVirtualScrollViewport, decorators: [{\n type: SkipSelf\n }] }, { type: ɵngcc0.NgZone }]; }, { cdkVirtualForTemplateCacheSize: [{\n type: Input\n }], cdkVirtualForOf: [{\n type: Input\n }], cdkVirtualForTrackBy: [{\n type: Input\n }], cdkVirtualForTemplate: [{\n type: Input\n }] }); })();\n return CdkVirtualForOf;\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 */\nvar ScrollingModule = /** @class */ (function () {\n function ScrollingModule() {\n }\nScrollingModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: ScrollingModule });\nScrollingModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function ScrollingModule_Factory(t) { return new (t || ScrollingModule)(); }, imports: [[BidiModule, PlatformModule],\n BidiModule] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ScrollingModule, { declarations: function () { return [CdkFixedSizeVirtualScroll,\n CdkScrollable,\n CdkVirtualForOf,\n CdkVirtualScrollViewport]; }, imports: function () { return [BidiModule, PlatformModule]; }, exports: function () { return [BidiModule,\n CdkFixedSizeVirtualScroll,\n CdkScrollable,\n CdkVirtualForOf,\n CdkVirtualScrollViewport]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ScrollingModule, [{\n type: NgModule,\n args: [{\n imports: [BidiModule, PlatformModule],\n exports: [\n BidiModule,\n CdkFixedSizeVirtualScroll,\n CdkScrollable,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n ],\n declarations: [\n CdkFixedSizeVirtualScroll,\n CdkScrollable,\n CdkVirtualForOf,\n CdkVirtualScrollViewport,\n ]\n }]\n }], function () { return []; }, null); })();\n return ScrollingModule;\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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CdkFixedSizeVirtualScroll, CdkScrollable, CdkVirtualForOf, CdkVirtualScrollViewport, DEFAULT_RESIZE_TIME, DEFAULT_SCROLL_TIME, FixedSizeVirtualScrollStrategy, ScrollDispatcher, ScrollingModule, VIRTUAL_SCROLL_STRATEGY, ViewportRuler, _fixedSizeVirtualScrollStrategyFactory };\n\n//# sourceMappingURL=scrolling.js.map","import { ElementRef } from '@angular/core';\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/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && \"\" + value !== 'false';\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 */\nfunction coerceNumberProperty(value, fallbackValue) {\n if (fallbackValue === void 0) { fallbackValue = 0; }\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n/**\n * Whether the provided value is considered a number.\n * @docs-private\n */\nfunction _isNumberValue(value) {\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\n return !isNaN(parseFloat(value)) && !isNaN(Number(value));\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 */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\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/** Coerces a value to a CSS pixel value. */\nfunction coerceCssPixelValue(value) {\n if (value == null) {\n return '';\n }\n return typeof value === 'string' ? value : value + \"px\";\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/**\n * Coerces an ElementRef or an Element into an element.\n * Useful for APIs that can accept either a ref or the native element itself.\n */\nfunction coerceElement(elementOrRef) {\n return elementOrRef instanceof ElementRef ? elementOrRef.nativeElement : elementOrRef;\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\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\nexport { _isNumberValue, coerceArray, coerceBooleanProperty, coerceCssPixelValue, coerceElement, coerceNumberProperty };\n//# sourceMappingURL=coercion.js.map\n","/**\n * @license Angular v9.1.0\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { __decorate, __extends, __param, __metadata, __read, __values } from 'tslib';\nimport { InjectionToken, ɵɵdefineInjectable, Injectable, ɵɵinject, Inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Input, Directive, IterableDiffers, KeyValueDiffers, ElementRef, Renderer2, NgModuleRef, ComponentFactoryResolver, Type, Injector, NgModuleFactory, ViewContainerRef, isDevMode, TemplateRef, Host, Attribute, ɵlooseIdentical, WrappedValue, ɵisPromise, ɵisObservable, Pipe, ChangeDetectorRef, DEFAULT_CURRENCY_CODE, NgModule, Version, ErrorHandler } from '@angular/core';\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nimport * as ɵngcc0 from '@angular/core';\nvar _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nvar DomAdapter = /** @class */ (function () {\n function DomAdapter() {\n }\n return DomAdapter;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nvar DOCUMENT = new InjectionToken('DocumentToken');\n\n/**\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM apis, which allows the Router to be platform\n * agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-webworker` provides\n * one suitable for use with web workers.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM apis like pushState, popState, etc...\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM apis flow through the `PlatformLocation`\n * class they are all platform independent.\n *\n * @publicApi\n */\nvar PlatformLocation = /** @class */ (function () {\n function PlatformLocation() {\n }\n PlatformLocation.ɵprov = ɵɵdefineInjectable({ factory: useBrowserPlatformLocation, token: PlatformLocation, providedIn: \"platform\" });\nPlatformLocation.ɵfac = function PlatformLocation_Factory(t) { return new (t || PlatformLocation)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PlatformLocation, [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }], function () { return []; }, null); })();\n return PlatformLocation;\n}());\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nvar LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nvar BrowserPlatformLocation = /** @class */ (function (_super) {\n __extends(BrowserPlatformLocation, _super);\n function BrowserPlatformLocation(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._init();\n return _this;\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n BrowserPlatformLocation.prototype._init = function () {\n this.location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n };\n BrowserPlatformLocation.prototype.getBaseHrefFromDOM = function () { return getDOM().getBaseHref(this._doc); };\n BrowserPlatformLocation.prototype.onPopState = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n };\n BrowserPlatformLocation.prototype.onHashChange = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n };\n Object.defineProperty(BrowserPlatformLocation.prototype, \"href\", {\n get: function () { return this.location.href; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"protocol\", {\n get: function () { return this.location.protocol; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hostname\", {\n get: function () { return this.location.hostname; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"port\", {\n get: function () { return this.location.port; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"pathname\", {\n get: function () { return this.location.pathname; },\n set: function (newPath) { this.location.pathname = newPath; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"search\", {\n get: function () { return this.location.search; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hash\", {\n get: function () { return this.location.hash; },\n enumerable: true,\n configurable: true\n });\n BrowserPlatformLocation.prototype.pushState = function (state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.replaceState = function (state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.forward = function () { this._history.forward(); };\n BrowserPlatformLocation.prototype.back = function () { this._history.back(); };\n BrowserPlatformLocation.prototype.getState = function () { return this._history.state; };\n BrowserPlatformLocation.ɵprov = ɵɵdefineInjectable({ factory: createBrowserPlatformLocation, token: BrowserPlatformLocation, providedIn: \"platform\" });\n BrowserPlatformLocation = __decorate([ __param(0, Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], BrowserPlatformLocation);\nBrowserPlatformLocation.ɵfac = function BrowserPlatformLocation_Factory(t) { return new (t || BrowserPlatformLocation)(ɵngcc0.ɵɵinject(DOCUMENT)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(BrowserPlatformLocation, [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation\n }]\n }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n return BrowserPlatformLocation;\n}(PlatformLocation));\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\n}\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n var slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n var match = url.match(/#|\\?|$/);\n var pathEndIdx = match && match.index || url.length;\n var droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\n}\n\n/**\n * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nvar LocationStrategy = /** @class */ (function () {\n function LocationStrategy() {\n }\n LocationStrategy.ɵprov = ɵɵdefineInjectable({ factory: provideLocationStrategy, token: LocationStrategy, providedIn: \"root\" });\nLocationStrategy.ɵfac = function LocationStrategy_Factory(t) { return new (t || LocationStrategy)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(LocationStrategy, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: provideLocationStrategy }]\n }], function () { return []; }, null); })();\n return LocationStrategy;\n}());\nfunction provideLocationStrategy(platformLocation) {\n // See #23917\n var location = ɵɵinject(DOCUMENT).location;\n return new PathLocationStrategy(ɵɵinject(PlatformLocation), location && location.origin || '');\n}\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nvar APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you must provide a {@link APP_BASE_HREF}\n * or add a base element to the document. This URL prefix that will be preserved\n * when generating and recognizing URLs.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nvar PathLocationStrategy = /** @class */ (function (_super) {\n __extends(PathLocationStrategy, _super);\n function PathLocationStrategy(_platformLocation, href) {\n var _this = _super.call(this) || this;\n _this._platformLocation = _platformLocation;\n if (href == null) {\n href = _this._platformLocation.getBaseHrefFromDOM();\n }\n if (href == null) {\n throw new Error(\"No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.\");\n }\n _this._baseHref = href;\n return _this;\n }\n PathLocationStrategy.prototype.onPopState = function (fn) {\n this._platformLocation.onPopState(fn);\n this._platformLocation.onHashChange(fn);\n };\n PathLocationStrategy.prototype.getBaseHref = function () { return this._baseHref; };\n PathLocationStrategy.prototype.prepareExternalUrl = function (internal) { return joinWithSlash(this._baseHref, internal); };\n PathLocationStrategy.prototype.path = function (includeHash) {\n if (includeHash === void 0) { includeHash = false; }\n var pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n var hash = this._platformLocation.hash;\n return hash && includeHash ? \"\" + pathname + hash : pathname;\n };\n PathLocationStrategy.prototype.pushState = function (state, title, url, queryParams) {\n var externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n };\n PathLocationStrategy.prototype.replaceState = function (state, title, url, queryParams) {\n var externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n };\n PathLocationStrategy.prototype.forward = function () { this._platformLocation.forward(); };\n PathLocationStrategy.prototype.back = function () { this._platformLocation.back(); };\n PathLocationStrategy = __decorate([ __param(1, Optional()), __param(1, Inject(APP_BASE_HREF)),\n __metadata(\"design:paramtypes\", [PlatformLocation, String])\n ], PathLocationStrategy);\nPathLocationStrategy.ɵfac = function PathLocationStrategy_Factory(t) { return new (t || PathLocationStrategy)(ɵngcc0.ɵɵinject(PlatformLocation), ɵngcc0.ɵɵinject(APP_BASE_HREF, 8)); };\nPathLocationStrategy.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: PathLocationStrategy, factory: function (t) { return PathLocationStrategy.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PathLocationStrategy, [{\n type: Injectable\n }], function () { return [{ type: PlatformLocation }, { type: String, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }]; }, null); })();\n return PathLocationStrategy;\n}(LocationStrategy));\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nvar HashLocationStrategy = /** @class */ (function (_super) {\n __extends(HashLocationStrategy, _super);\n function HashLocationStrategy(_platformLocation, _baseHref) {\n var _this = _super.call(this) || this;\n _this._platformLocation = _platformLocation;\n _this._baseHref = '';\n if (_baseHref != null) {\n _this._baseHref = _baseHref;\n }\n return _this;\n }\n HashLocationStrategy.prototype.onPopState = function (fn) {\n this._platformLocation.onPopState(fn);\n this._platformLocation.onHashChange(fn);\n };\n HashLocationStrategy.prototype.getBaseHref = function () { return this._baseHref; };\n HashLocationStrategy.prototype.path = function (includeHash) {\n if (includeHash === void 0) { includeHash = false; }\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n var path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n };\n HashLocationStrategy.prototype.prepareExternalUrl = function (internal) {\n var url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n };\n HashLocationStrategy.prototype.pushState = function (state, title, path, queryParams) {\n var url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n };\n HashLocationStrategy.prototype.replaceState = function (state, title, path, queryParams) {\n var url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n };\n HashLocationStrategy.prototype.forward = function () { this._platformLocation.forward(); };\n HashLocationStrategy.prototype.back = function () { this._platformLocation.back(); };\n HashLocationStrategy = __decorate([ __param(1, Optional()), __param(1, Inject(APP_BASE_HREF)),\n __metadata(\"design:paramtypes\", [PlatformLocation, String])\n ], HashLocationStrategy);\nHashLocationStrategy.ɵfac = function HashLocationStrategy_Factory(t) { return new (t || HashLocationStrategy)(ɵngcc0.ɵɵinject(PlatformLocation), ɵngcc0.ɵɵinject(APP_BASE_HREF, 8)); };\nHashLocationStrategy.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: HashLocationStrategy, factory: function (t) { return HashLocationStrategy.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(HashLocationStrategy, [{\n type: Injectable\n }], function () { return [{ type: PlatformLocation }, { type: String, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\n }] }]; }, null); })();\n return HashLocationStrategy;\n}(LocationStrategy));\n\n/**\n * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router#navigate` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nvar Location = /** @class */ (function () {\n function Location(platformStrategy, platformLocation) {\n var _this = this;\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n this._platformStrategy = platformStrategy;\n var browserBaseHref = this._platformStrategy.getBaseHref();\n this._platformLocation = platformLocation;\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._platformStrategy.onPopState(function (ev) {\n _this._subject.emit({\n 'url': _this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n Location_1 = Location;\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n Location.prototype.path = function (includeHash) {\n if (includeHash === void 0) { includeHash = false; }\n return this.normalize(this._platformStrategy.path(includeHash));\n };\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n Location.prototype.getState = function () { return this._platformLocation.getState(); };\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n Location.prototype.isCurrentPathEqualTo = function (path, query) {\n if (query === void 0) { query = ''; }\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n };\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n Location.prototype.normalize = function (url) {\n return Location_1.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n };\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n Location.prototype.prepareExternalUrl = function (url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._platformStrategy.prepareExternalUrl(url);\n };\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n Location.prototype.go = function (path, query, state) {\n if (query === void 0) { query = ''; }\n if (state === void 0) { state = null; }\n this._platformStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n };\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n Location.prototype.replaceState = function (path, query, state) {\n if (query === void 0) { query = ''; }\n if (state === void 0) { state = null; }\n this._platformStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n };\n /**\n * Navigates forward in the platform's history.\n */\n Location.prototype.forward = function () { this._platformStrategy.forward(); };\n /**\n * Navigates back in the platform's history.\n */\n Location.prototype.back = function () { this._platformStrategy.back(); };\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n */\n Location.prototype.onUrlChange = function (fn) {\n var _this = this;\n this._urlChangeListeners.push(fn);\n this.subscribe(function (v) { _this._notifyUrlChangeListeners(v.url, v.state); });\n };\n /** @internal */\n Location.prototype._notifyUrlChangeListeners = function (url, state) {\n if (url === void 0) { url = ''; }\n this._urlChangeListeners.forEach(function (fn) { return fn(url, state); });\n };\n /**\n * Subscribes to the platform's `popState` events.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @returns Subscribed events.\n */\n Location.prototype.subscribe = function (onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n };\n var Location_1;\n /**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\n Location.normalizeQueryParams = normalizeQueryParams;\n /**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\n Location.joinWithSlash = joinWithSlash;\n /**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\n Location.stripTrailingSlash = stripTrailingSlash;\n Location.ɵprov = ɵɵdefineInjectable({ factory: createLocation, token: Location, providedIn: \"root\" });\n Location = Location_1 = __decorate([ __metadata(\"design:paramtypes\", [LocationStrategy, PlatformLocation])\n ], Location);\nLocation.ɵfac = function Location_Factory(t) { return new (t || Location)(ɵngcc0.ɵɵinject(LocationStrategy), ɵngcc0.ɵɵinject(PlatformLocation)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Location, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation\n }]\n }], function () { return [{ type: LocationStrategy }, { type: PlatformLocation }]; }, null); })();\n return Location;\n}());\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy), ɵɵinject(PlatformLocation));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\n}\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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/** @internal */\nvar CURRENCIES_EN = {\n 'ADP': [undefined, undefined, 0],\n 'AFN': [undefined, undefined, 0],\n 'ALL': [undefined, undefined, 0],\n 'AMD': [undefined, undefined, 2],\n 'AOA': [undefined, 'Kz'],\n 'ARS': [undefined, '$'],\n 'AUD': ['A$', '$'],\n 'BAM': [undefined, 'KM'],\n 'BBD': [undefined, '$'],\n 'BDT': [undefined, '৳'],\n 'BHD': [undefined, undefined, 3],\n 'BIF': [undefined, undefined, 0],\n 'BMD': [undefined, '$'],\n 'BND': [undefined, '$'],\n 'BOB': [undefined, 'Bs'],\n 'BRL': ['R$'],\n 'BSD': [undefined, '$'],\n 'BWP': [undefined, 'P'],\n 'BYN': [undefined, 'р.', 2],\n 'BYR': [undefined, undefined, 0],\n 'BZD': [undefined, '$'],\n 'CAD': ['CA$', '$', 2],\n 'CHF': [undefined, undefined, 2],\n 'CLF': [undefined, undefined, 4],\n 'CLP': [undefined, '$', 0],\n 'CNY': ['CN¥', '¥'],\n 'COP': [undefined, '$', 2],\n 'CRC': [undefined, '₡', 2],\n 'CUC': [undefined, '$'],\n 'CUP': [undefined, '$'],\n 'CZK': [undefined, 'Kč', 2],\n 'DJF': [undefined, undefined, 0],\n 'DKK': [undefined, 'kr', 2],\n 'DOP': [undefined, '$'],\n 'EGP': [undefined, 'E£'],\n 'ESP': [undefined, '₧', 0],\n 'EUR': ['€'],\n 'FJD': [undefined, '$'],\n 'FKP': [undefined, '£'],\n 'GBP': ['£'],\n 'GEL': [undefined, '₾'],\n 'GIP': [undefined, '£'],\n 'GNF': [undefined, 'FG', 0],\n 'GTQ': [undefined, 'Q'],\n 'GYD': [undefined, '$', 2],\n 'HKD': ['HK$', '$'],\n 'HNL': [undefined, 'L'],\n 'HRK': [undefined, 'kn'],\n 'HUF': [undefined, 'Ft', 2],\n 'IDR': [undefined, 'Rp', 2],\n 'ILS': ['₪'],\n 'INR': ['₹'],\n 'IQD': [undefined, undefined, 0],\n 'IRR': [undefined, undefined, 0],\n 'ISK': [undefined, 'kr', 0],\n 'ITL': [undefined, undefined, 0],\n 'JMD': [undefined, '$'],\n 'JOD': [undefined, undefined, 3],\n 'JPY': ['¥', undefined, 0],\n 'KHR': [undefined, '៛'],\n 'KMF': [undefined, 'CF', 0],\n 'KPW': [undefined, '₩', 0],\n 'KRW': ['₩', undefined, 0],\n 'KWD': [undefined, undefined, 3],\n 'KYD': [undefined, '$'],\n 'KZT': [undefined, '₸'],\n 'LAK': [undefined, '₭', 0],\n 'LBP': [undefined, 'L£', 0],\n 'LKR': [undefined, 'Rs'],\n 'LRD': [undefined, '$'],\n 'LTL': [undefined, 'Lt'],\n 'LUF': [undefined, undefined, 0],\n 'LVL': [undefined, 'Ls'],\n 'LYD': [undefined, undefined, 3],\n 'MGA': [undefined, 'Ar', 0],\n 'MGF': [undefined, undefined, 0],\n 'MMK': [undefined, 'K', 0],\n 'MNT': [undefined, '₮', 2],\n 'MRO': [undefined, undefined, 0],\n 'MUR': [undefined, 'Rs', 2],\n 'MXN': ['MX$', '$'],\n 'MYR': [undefined, 'RM'],\n 'NAD': [undefined, '$'],\n 'NGN': [undefined, '₦'],\n 'NIO': [undefined, 'C$'],\n 'NOK': [undefined, 'kr', 2],\n 'NPR': [undefined, 'Rs'],\n 'NZD': ['NZ$', '$'],\n 'OMR': [undefined, undefined, 3],\n 'PHP': [undefined, '₱'],\n 'PKR': [undefined, 'Rs', 2],\n 'PLN': [undefined, 'zł'],\n 'PYG': [undefined, '₲', 0],\n 'RON': [undefined, 'lei'],\n 'RSD': [undefined, undefined, 0],\n 'RUB': [undefined, '₽'],\n 'RUR': [undefined, 'р.'],\n 'RWF': [undefined, 'RF', 0],\n 'SBD': [undefined, '$'],\n 'SEK': [undefined, 'kr', 2],\n 'SGD': [undefined, '$'],\n 'SHP': [undefined, '£'],\n 'SLL': [undefined, undefined, 0],\n 'SOS': [undefined, undefined, 0],\n 'SRD': [undefined, '$'],\n 'SSP': [undefined, '£'],\n 'STD': [undefined, undefined, 0],\n 'STN': [undefined, 'Db'],\n 'SYP': [undefined, '£', 0],\n 'THB': [undefined, '฿'],\n 'TMM': [undefined, undefined, 0],\n 'TND': [undefined, undefined, 3],\n 'TOP': [undefined, 'T$'],\n 'TRL': [undefined, undefined, 0],\n 'TRY': [undefined, '₺'],\n 'TTD': [undefined, '$'],\n 'TWD': ['NT$', '$', 2],\n 'TZS': [undefined, undefined, 2],\n 'UAH': [undefined, '₴'],\n 'UGX': [undefined, undefined, 0],\n 'USD': ['$'],\n 'UYI': [undefined, undefined, 0],\n 'UYU': [undefined, '$'],\n 'UYW': [undefined, undefined, 4],\n 'UZS': [undefined, undefined, 2],\n 'VEF': [undefined, 'Bs', 2],\n 'VND': ['₫', undefined, 0],\n 'VUV': [undefined, undefined, 0],\n 'XAF': ['FCFA', undefined, 0],\n 'XCD': ['EC$', '$'],\n 'XOF': ['CFA', undefined, 0],\n 'XPF': ['CFPF', undefined, 0],\n 'XXX': ['¤'],\n 'YER': [undefined, undefined, 0],\n 'ZAR': [undefined, 'R'],\n 'ZMK': [undefined, undefined, 0],\n 'ZMW': [undefined, 'ZK'],\n 'ZWD': [undefined, undefined, 0]\n};\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()``\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example : 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n var data = ɵfindLocaleData(locale);\n var amPmData = [data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]];\n var amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n var data = ɵfindLocaleData(locale);\n var daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n var days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n var data = ɵfindLocaleData(locale);\n var monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n var months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n var data = ɵfindLocaleData(locale);\n var erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formating string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formating string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n var data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n var data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n var data = ɵfindLocaleData(locale);\n var dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n var data = ɵfindLocaleData(locale);\n var res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n */\nfunction getLocaleCurrencies(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nvar getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(\"Missing extra locale data for the locale \\\"\" + data[ɵLocaleDataIndex.LocaleId] + \"\\\". Use \\\"registerLocaleData\\\" to load new data. See the \\\"I18n guide\\\" on angular.io to know more.\");\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n#i18n-pipes).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n var data = ɵfindLocaleData(locale);\n checkFullData(data);\n var rules = data[ɵLocaleDataIndex.ExtraData][2 /* ExtraDayPeriodsRules */] || [];\n return rules.map(function (rule) {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n#i18n-pipes).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n var data = ɵfindLocaleData(locale);\n checkFullData(data);\n var dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ExtraDayPeriodStandalone */]\n ];\n var dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n */\nfunction getLocaleDirection(locale) {\n var data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (var i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n var _a = __read(time.split(':'), 2), h = _a[0], m = _a[1];\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale) {\n if (locale === void 0) { locale = 'en'; }\n var currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n var symbolNarrow = currency[1 /* SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nvar DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n var digits;\n var currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ISO8601_DATE_REGEX = /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nvar NAMED_FORMATS = {};\nvar DATE_FORMATS_SPLIT = /((?:[^GyMLwWdEabBhHmsSzZO']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n var date = toDate(value);\n var namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n var parts = [];\n var match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n var part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n var dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n var text = '';\n parts.forEach(function (value) {\n var dateFormatter = getDateFormatter(value);\n text += dateFormatter ?\n dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' : value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\nfunction getNamedFormat(locale, format) {\n var localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n var formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n var shortTime = getNamedFormat(locale, 'shortTime');\n var shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n var mediumTime = getNamedFormat(locale, 'mediumTime');\n var mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n var longTime = getNamedFormat(locale, 'longTime');\n var longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n var fullTime = getNamedFormat(locale, 'fullTime');\n var fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign, trim, negWrap) {\n if (minusSign === void 0) { minusSign = '-'; }\n var neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n var strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.substr(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n var strMs = padNumber(milliseconds, 3);\n return strMs.substr(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset, trim, negWrap) {\n if (offset === void 0) { offset = 0; }\n if (trim === void 0) { trim = false; }\n if (negWrap === void 0) { negWrap = false; }\n return function (date, locale) {\n var part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n var localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(\"Unknown DateType value \\\"\" + part + \"\\\".\");\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form, extended) {\n if (form === void 0) { form = FormStyle.Format; }\n if (extended === void 0) { extended = false; }\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n var currentHours_1 = date.getHours();\n var currentMinutes_1 = date.getMinutes();\n if (extended) {\n var rules = getLocaleExtraDayPeriodRules(locale);\n var dayPeriods_1 = getLocaleExtraDayPeriods(locale, form, width);\n var result_1;\n rules.forEach(function (rule, index) {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n var _a = rule[0], hoursFrom = _a.hours, minutesFrom = _a.minutes;\n var _b = rule[1], hoursTo = _b.hours, minutesTo = _b.minutes;\n if (currentHours_1 >= hoursFrom && currentMinutes_1 >= minutesFrom &&\n (currentHours_1 < hoursTo ||\n (currentHours_1 === hoursTo && currentMinutes_1 < minutesTo))) {\n result_1 = dayPeriods_1[index];\n }\n }\n else { // noon or midnight\n var hours = rule.hours, minutes = rule.minutes;\n if (hours === currentHours_1 && minutes === currentMinutes_1) {\n result_1 = dayPeriods_1[index];\n }\n }\n });\n if (result_1) {\n return result_1;\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours_1 < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n var unexpected = name;\n throw new Error(\"unexpected translation type \" + unexpected);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n var zone = -1 * offset;\n var minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n var hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(\"Unknown zone width \\\"\" + width + \"\\\"\");\n }\n };\n}\nvar JANUARY = 0;\nvar THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n var firstDayOfYear = (new Date(year, JANUARY, 1)).getDay();\n return new Date(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased) {\n if (monthBased === void 0) { monthBased = false; }\n return function (date, locale) {\n var result;\n if (monthBased) {\n var nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n var today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n var firstThurs = getFirstThursdayOfYear(date.getFullYear());\n var thisThurs = getThursdayThisWeek(date);\n var diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\nvar DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: Y, U, Q, D, F, e, c, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n var formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 9-11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n var requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n var reverseValue = reverse ? -1 : 1;\n var dateTimezoneOffset = date.getTimezoneOffset();\n var timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n var parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n var _a = __read(value.split('-').map(function (val) { return +val; }), 3), y = _a[0], m = _a[1], d = _a[2];\n return new Date(y, m - 1, d);\n }\n var match = void 0;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n var date = new Date(value);\n if (!isDate(date)) {\n throw new Error(\"Unable to convert \\\"\" + value + \"\\\" into a date\");\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n var date = new Date(0);\n var tzHour = 0;\n var tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n var dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n var timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n var h = Number(match[4] || 0) - tzHour;\n var m = Number(match[5] || 0) - tzMin;\n var s = Number(match[6] || 0);\n var ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nvar MAX_DIGITS = 22;\nvar DECIMAL_SEP = '.';\nvar ZERO_CHAR = '0';\nvar PATTERN_SEP = ';';\nvar GROUP_SEP = ',';\nvar DIGIT_CHAR = '#';\nvar CURRENCY_CHAR = '¤';\nvar PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent) {\n if (isPercent === void 0) { isPercent = false; }\n var formattedText = '';\n var isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n var parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n var minInt = pattern.minInt;\n var minFraction = pattern.minFrac;\n var maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n var parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(digitsInfo + \" is not a valid digit info\");\n }\n var minIntPart = parts[1];\n var minFractionPart = parts[3];\n var maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n var digits = parsedNumber.digits;\n var integerLen = parsedNumber.integerLen;\n var exponent = parsedNumber.exponent;\n var decimals = [];\n isZero = digits.every(function (d) { return !d; });\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n var groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n var format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n var pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n var res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is supressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n var format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n var pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n var res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n var format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n var pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign) {\n if (minusSign === void 0) { minusSign = '-'; }\n var p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n var patternParts = format.split(PATTERN_SEP);\n var positive = patternParts[0];\n var negative = patternParts[1];\n var positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substr(0, integer.indexOf(DIGIT_CHAR));\n for (var i = 0; i < fraction.length; i++) {\n var ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n var groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n var trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substr(0, pos).replace(/'/g, '');\n p.negSuf = negative.substr(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n var fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n var numStr = Math.abs(num) + '';\n var exponent = 0, digits, integerLen;\n var i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits: digits, exponent: exponent, integerLen: integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(\"The minimum number of digits after fraction (\" + minFrac + \") is higher than the maximum (\" + maxFrac + \").\");\n }\n var digits = parsedNumber.digits;\n var fractionLen = digits.length - parsedNumber.integerLen;\n var fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n var roundAt = fractionSize + parsedNumber.integerLen;\n var digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (var j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (var i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (var k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n var dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n var minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n var carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n var result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @publicApi\n */\nvar NgLocalization = /** @class */ (function () {\n function NgLocalization() {\n }\n return NgLocalization;\n}());\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n var key = \"=\" + value;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(\"No plural message found for value \\\"\" + value + \"\\\"\");\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nvar NgLocaleLocalization = /** @class */ (function (_super) {\n __extends(NgLocaleLocalization, _super);\n function NgLocaleLocalization(locale) {\n var _this = _super.call(this) || this;\n _this.locale = locale;\n return _this;\n }\n NgLocaleLocalization.prototype.getPluralCategory = function (value, locale) {\n var plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n };\n NgLocaleLocalization = __decorate([ __param(0, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [String])\n ], NgLocaleLocalization);\nNgLocaleLocalization.ɵfac = function NgLocaleLocalization_Factory(t) { return new (t || NgLocaleLocalization)(ɵngcc0.ɵɵinject(LOCALE_ID)); };\nNgLocaleLocalization.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NgLocaleLocalization, factory: function (t) { return NgLocaleLocalization.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgLocaleLocalization, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n return NgLocaleLocalization;\n}(NgLocalization));\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n#i18n-pipes) to know how to import additional locale data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nfunction parseCookieValue(cookieStr, name) {\n var e_1, _a;\n name = encodeURIComponent(name);\n try {\n for (var _b = __values(cookieStr.split(';')), _c = _b.next(); !_c.done; _c = _b.next()) {\n var cookie = _c.value;\n var eqIndex = cookie.indexOf('=');\n var _d = __read(eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)], 2), cookieName = _d[0], cookieValue = _d[1];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n}\n\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nvar NgClass = /** @class */ (function () {\n function NgClass(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n Object.defineProperty(NgClass.prototype, \"klass\", {\n set: function (value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgClass.prototype, \"ngClass\", {\n set: function (value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n NgClass.prototype.ngDoCheck = function () {\n if (this._iterableDiffer) {\n var iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n var keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n };\n NgClass.prototype._applyKeyValueChanges = function (changes) {\n var _this = this;\n changes.forEachAddedItem(function (record) { return _this._toggleClass(record.key, record.currentValue); });\n changes.forEachChangedItem(function (record) { return _this._toggleClass(record.key, record.currentValue); });\n changes.forEachRemovedItem(function (record) {\n if (record.previousValue) {\n _this._toggleClass(record.key, false);\n }\n });\n };\n NgClass.prototype._applyIterableChanges = function (changes) {\n var _this = this;\n changes.forEachAddedItem(function (record) {\n if (typeof record.item === 'string') {\n _this._toggleClass(record.item, true);\n }\n else {\n throw new Error(\"NgClass can only toggle CSS classes expressed as strings, got \" + ɵstringify(record.item));\n }\n });\n changes.forEachRemovedItem(function (record) { return _this._toggleClass(record.item, false); });\n };\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n NgClass.prototype._applyClasses = function (rawClassVal) {\n var _this = this;\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach(function (klass) { return _this._toggleClass(klass, true); });\n }\n else {\n Object.keys(rawClassVal).forEach(function (klass) { return _this._toggleClass(klass, !!rawClassVal[klass]); });\n }\n }\n };\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n NgClass.prototype._removeClasses = function (rawClassVal) {\n var _this = this;\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach(function (klass) { return _this._toggleClass(klass, false); });\n }\n else {\n Object.keys(rawClassVal).forEach(function (klass) { return _this._toggleClass(klass, false); });\n }\n }\n };\n NgClass.prototype._toggleClass = function (klass, enabled) {\n var _this = this;\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(function (klass) {\n if (enabled) {\n _this._renderer.addClass(_this._ngEl.nativeElement, klass);\n }\n else {\n _this._renderer.removeClass(_this._ngEl.nativeElement, klass);\n }\n });\n }\n };\n __decorate([\n Input('class'),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], NgClass.prototype, \"klass\", null);\n __decorate([\n Input('ngClass'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgClass.prototype, \"ngClass\", null);\n NgClass = __decorate([ __metadata(\"design:paramtypes\", [IterableDiffers, KeyValueDiffers,\n ElementRef, Renderer2])\n ], NgClass);\nNgClass.ɵfac = function NgClass_Factory(t) { return new (t || NgClass)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.IterableDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nNgClass.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgClass, selectors: [[\"\", \"ngClass\", \"\"]], inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgClass, [{\n type: Directive,\n args: [{ selector: '[ngClass]' }]\n }], function () { return [{ type: ɵngcc0.IterableDiffers }, { type: ɵngcc0.KeyValueDiffers }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\n }] }); })();\n return NgClass;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Instantiates a single {@link Component} type and inserts its Host View into current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will get destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if exists.\n *\n * * `ngComponentOutletNgModuleFactory`: Optional module factory to allow dynamically loading other\n * module, then load a component from that module.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized ngModuleFactory\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nvar NgComponentOutlet = /** @class */ (function () {\n function NgComponentOutlet(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._componentRef = null;\n this._moduleRef = null;\n }\n NgComponentOutlet.prototype.ngOnChanges = function (changes) {\n this._viewContainerRef.clear();\n this._componentRef = null;\n if (this.ngComponentOutlet) {\n var elInjector = this.ngComponentOutletInjector || this._viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (this.ngComponentOutletNgModuleFactory) {\n var parentModule = elInjector.get(NgModuleRef);\n this._moduleRef = this.ngComponentOutletNgModuleFactory.create(parentModule.injector);\n }\n else {\n this._moduleRef = null;\n }\n }\n var componentFactoryResolver = this._moduleRef ? this._moduleRef.componentFactoryResolver :\n elInjector.get(ComponentFactoryResolver);\n var componentFactory = componentFactoryResolver.resolveComponentFactory(this.ngComponentOutlet);\n this._componentRef = this._viewContainerRef.createComponent(componentFactory, this._viewContainerRef.length, elInjector, this.ngComponentOutletContent);\n }\n };\n NgComponentOutlet.prototype.ngOnDestroy = function () {\n if (this._moduleRef)\n this._moduleRef.destroy();\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Type)\n ], NgComponentOutlet.prototype, \"ngComponentOutlet\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", Injector)\n ], NgComponentOutlet.prototype, \"ngComponentOutletInjector\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", Array)\n ], NgComponentOutlet.prototype, \"ngComponentOutletContent\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", NgModuleFactory)\n ], NgComponentOutlet.prototype, \"ngComponentOutletNgModuleFactory\", void 0);\n NgComponentOutlet = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n ], NgComponentOutlet);\nNgComponentOutlet.ɵfac = function NgComponentOutlet_Factory(t) { return new (t || NgComponentOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nNgComponentOutlet.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgComponentOutlet, selectors: [[\"\", \"ngComponentOutlet\", \"\"]], inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgComponentOutlet, [{\n type: Directive,\n args: [{ selector: '[ngComponentOutlet]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] }); })();\n return NgComponentOutlet;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @publicApi\n */\nvar NgForOfContext = /** @class */ (function () {\n function NgForOfContext($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n Object.defineProperty(NgForOfContext.prototype, \"first\", {\n get: function () { return this.index === 0; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgForOfContext.prototype, \"last\", {\n get: function () { return this.index === this.count - 1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgForOfContext.prototype, \"even\", {\n get: function () { return this.index % 2 === 0; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgForOfContext.prototype, \"odd\", {\n get: function () { return !this.even; },\n enumerable: true,\n configurable: true\n });\n return NgForOfContext;\n}());\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#the-asterisk--prefix) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-structural-directive-per-host-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For futher discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nvar NgForOf = /** @class */ (function () {\n function NgForOf(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n Object.defineProperty(NgForOf.prototype, \"ngForOf\", {\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#template-input-variable).\n */\n set: function (ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgForOf.prototype, \"ngForTrackBy\", {\n get: function () { return this._trackByFn; },\n /**\n * A function that defines how to track changes for items in the iterable.\n *\n * When items are added, moved, or removed in the iterable,\n * the directive must re-render the appropriate DOM nodes.\n * To minimize churn in the DOM, only nodes that have changed\n * are re-rendered.\n *\n * By default, the change detector assumes that\n * the object instance identifies the node in the iterable.\n * When this function is supplied, the directive uses\n * the result of calling this function to identify the item node,\n * rather than the identity of the object itself.\n *\n * The function receives two inputs,\n * the iteration index and the node object ID.\n */\n set: function (fn) {\n if (isDevMode() && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(\"trackBy must be a function, but received \" + JSON.stringify(fn) + \". \" +\n \"See https://angular.io/api/common/NgForOf#change-propagation for more information.\");\n }\n }\n this._trackByFn = fn;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgForOf.prototype, \"ngForTemplate\", {\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-syntax#template-reference-variables--var-)\n */\n set: function (value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Applies the changes when needed.\n */\n NgForOf.prototype.ngDoCheck = function () {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n var value = this._ngForOf;\n if (!this._differ && value) {\n try {\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch (_a) {\n throw new Error(\"Cannot find a differ supporting object '\" + value + \"' of type '\" + getTypeName(value) + \"'. NgFor only supports binding to Iterables such as Arrays.\");\n }\n }\n }\n if (this._differ) {\n var changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n };\n NgForOf.prototype._applyChanges = function (changes) {\n var _this = this;\n var insertTuples = [];\n changes.forEachOperation(function (item, adjustedPreviousIndex, currentIndex) {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n var view = _this._viewContainer.createEmbeddedView(_this._template, new NgForOfContext(null, _this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n var tuple = new RecordViewTuple(item, view);\n insertTuples.push(tuple);\n }\n else if (currentIndex == null) {\n _this._viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n var view = _this._viewContainer.get(adjustedPreviousIndex);\n _this._viewContainer.move(view, currentIndex);\n var tuple = new RecordViewTuple(item, view);\n insertTuples.push(tuple);\n }\n });\n for (var i = 0; i < insertTuples.length; i++) {\n this._perViewChange(insertTuples[i].view, insertTuples[i].record);\n }\n for (var i = 0, ilen = this._viewContainer.length; i < ilen; i++) {\n var viewRef = this._viewContainer.get(i);\n viewRef.context.index = i;\n viewRef.context.count = ilen;\n viewRef.context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange(function (record) {\n var viewRef = _this._viewContainer.get(record.currentIndex);\n viewRef.context.$implicit = record.item;\n });\n };\n NgForOf.prototype._perViewChange = function (view, record) {\n view.context.$implicit = record.item;\n };\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n NgForOf.ngTemplateContextGuard = function (dir, ctx) {\n return true;\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgForOf.prototype, \"ngForOf\", null);\n __decorate([\n Input(),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Function])\n ], NgForOf.prototype, \"ngForTrackBy\", null);\n __decorate([\n Input(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n ], NgForOf.prototype, \"ngForTemplate\", null);\n NgForOf = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef,\n TemplateRef, IterableDiffers])\n ], NgForOf);\nNgForOf.ɵfac = function NgForOf_Factory(t) { return new (t || NgForOf)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.IterableDiffers)); };\nNgForOf.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgForOf, selectors: [[\"\", \"ngFor\", \"\", \"ngForOf\", \"\"]], inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgForOf, [{\n type: Directive,\n args: [{ selector: '[ngFor][ngForOf]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }, { type: ɵngcc0.IterableDiffers }]; }, { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] }); })();\n return NgForOf;\n}());\nvar RecordViewTuple = /** @class */ (function () {\n function RecordViewTuple(record, view) {\n this.record = record;\n this.view = view;\n }\n return RecordViewTuple;\n}());\nfunction getTypeName(type) {\n return type['name'] || typeof type;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#the-asterisk--prefix) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * [safe-navigation-operator](guide/template-syntax#safe-navigation-operator) (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](https://angular.io/guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nvar NgIf = /** @class */ (function () {\n function NgIf(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n Object.defineProperty(NgIf.prototype, \"ngIf\", {\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set: function (condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgIf.prototype, \"ngIfThen\", {\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set: function (templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(NgIf.prototype, \"ngIfElse\", {\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set: function (templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n },\n enumerable: true,\n configurable: true\n });\n NgIf.prototype._updateView = function () {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n };\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n NgIf.ngTemplateContextGuard = function (dir, ctx) {\n return true;\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgIf.prototype, \"ngIf\", null);\n __decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgIf.prototype, \"ngIfThen\", null);\n __decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgIf.prototype, \"ngIfElse\", null);\n NgIf = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef, TemplateRef])\n ], NgIf);\nNgIf.ɵfac = function NgIf_Factory(t) { return new (t || NgIf)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgIf.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgIf, selectors: [[\"\", \"ngIf\", \"\"]], inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgIf, [{\n type: Directive,\n args: [{ selector: '[ngIf]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }]; }, { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] }); })();\n return NgIf;\n}());\n/**\n * @publicApi\n */\nvar NgIfContext = /** @class */ (function () {\n function NgIfContext() {\n this.$implicit = null;\n this.ngIf = null;\n }\n return NgIfContext;\n}());\nfunction assertTemplate(property, templateRef) {\n var isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(property + \" must be a TemplateRef, but received '\" + ɵstringify(templateRef) + \"'.\");\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar SwitchView = /** @class */ (function () {\n function SwitchView(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n SwitchView.prototype.create = function () {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n };\n SwitchView.prototype.destroy = function () {\n this._created = false;\n this._viewContainerRef.clear();\n };\n SwitchView.prototype.enforceState = function (created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n };\n return SwitchView;\n}());\n/**\n * @ngModule CommonModule\n *\n * @description A structural directive that adds or removes templates (displaying or hiding views)\n * when the next match expression matches the switch expression.\n *\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nvar NgSwitch = /** @class */ (function () {\n function NgSwitch() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n Object.defineProperty(NgSwitch.prototype, \"ngSwitch\", {\n set: function (newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n /** @internal */\n NgSwitch.prototype._addCase = function () { return this._caseCount++; };\n /** @internal */\n NgSwitch.prototype._addDefault = function (view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n };\n /** @internal */\n NgSwitch.prototype._matchCase = function (value) {\n var matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n };\n NgSwitch.prototype._updateDefaultCases = function (useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (var i = 0; i < this._defaultViews.length; i++) {\n var defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgSwitch.prototype, \"ngSwitch\", null);\nNgSwitch.ɵfac = function NgSwitch_Factory(t) { return new (t || NgSwitch)(); };\nNgSwitch.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgSwitch, selectors: [[\"\", \"ngSwitch\", \"\"]], inputs: { ngSwitch: \"ngSwitch\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgSwitch, [{\n type: Directive,\n args: [{ selector: '[ngSwitch]' }]\n }], function () { return []; }, { ngSwitch: [{\n type: Input\n }] }); })();\n return NgSwitch;\n}());\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nvar NgSwitchCase = /** @class */ (function () {\n function NgSwitchCase(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n */\n NgSwitchCase.prototype.ngDoCheck = function () { this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase)); };\n __decorate([\n Input(),\n __metadata(\"design:type\", Object)\n ], NgSwitchCase.prototype, \"ngSwitchCase\", void 0);\n NgSwitchCase = __decorate([ __param(2, Host()),\n __metadata(\"design:paramtypes\", [ViewContainerRef, TemplateRef,\n NgSwitch])\n ], NgSwitchCase);\nNgSwitchCase.ɵfac = function NgSwitchCase_Factory(t) { return new (t || NgSwitchCase)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(NgSwitch, 1)); };\nNgSwitchCase.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgSwitchCase, selectors: [[\"\", \"ngSwitchCase\", \"\"]], inputs: { ngSwitchCase: \"ngSwitchCase\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgSwitchCase, [{\n type: Directive,\n args: [{ selector: '[ngSwitchCase]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Host\n }] }]; }, { ngSwitchCase: [{\n type: Input\n }] }); })();\n return NgSwitchCase;\n}());\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nvar NgSwitchDefault = /** @class */ (function () {\n function NgSwitchDefault(viewContainer, templateRef, ngSwitch) {\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n NgSwitchDefault = __decorate([ __param(2, Host()),\n __metadata(\"design:paramtypes\", [ViewContainerRef, TemplateRef,\n NgSwitch])\n ], NgSwitchDefault);\nNgSwitchDefault.ɵfac = function NgSwitchDefault_Factory(t) { return new (t || NgSwitchDefault)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(NgSwitch, 1)); };\nNgSwitchDefault.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgSwitchDefault, selectors: [[\"\", \"ngSwitchDefault\", \"\"]] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgSwitchDefault, [{\n type: Directive,\n args: [{ selector: '[ngSwitchDefault]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Host\n }] }]; }, null); })();\n return NgSwitchDefault;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nvar NgPlural = /** @class */ (function () {\n function NgPlural(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n Object.defineProperty(NgPlural.prototype, \"ngPlural\", {\n set: function (value) {\n this._switchValue = value;\n this._updateView();\n },\n enumerable: true,\n configurable: true\n });\n NgPlural.prototype.addCase = function (value, switchView) { this._caseViews[value] = switchView; };\n NgPlural.prototype._updateView = function () {\n this._clearViews();\n var cases = Object.keys(this._caseViews);\n var key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n };\n NgPlural.prototype._clearViews = function () {\n if (this._activeView)\n this._activeView.destroy();\n };\n NgPlural.prototype._activateView = function (view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n ], NgPlural.prototype, \"ngPlural\", null);\n NgPlural = __decorate([ __metadata(\"design:paramtypes\", [NgLocalization])\n ], NgPlural);\nNgPlural.ɵfac = function NgPlural_Factory(t) { return new (t || NgPlural)(ɵngcc0.ɵɵdirectiveInject(NgLocalization)); };\nNgPlural.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgPlural, selectors: [[\"\", \"ngPlural\", \"\"]], inputs: { ngPlural: \"ngPlural\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgPlural, [{\n type: Directive,\n args: [{ selector: '[ngPlural]' }]\n }], function () { return [{ type: NgLocalization }]; }, { ngPlural: [{\n type: Input\n }] }); })();\n return NgPlural;\n}());\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nvar NgPluralCase = /** @class */ (function () {\n function NgPluralCase(value, template, viewContainer, ngPlural) {\n this.value = value;\n var isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? \"=\" + value : value, new SwitchView(viewContainer, template));\n }\n NgPluralCase = __decorate([ __param(0, Attribute('ngPluralCase')),\n __param(3, Host()),\n __metadata(\"design:paramtypes\", [String, TemplateRef,\n ViewContainerRef, NgPlural])\n ], NgPluralCase);\nNgPluralCase.ɵfac = function NgPluralCase_Factory(t) { return new (t || NgPluralCase)(ɵngcc0.ɵɵinjectAttribute('ngPluralCase'), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgPlural, 1)); };\nNgPluralCase.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgPluralCase, selectors: [[\"\", \"ngPluralCase\", \"\"]] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgPluralCase, [{\n type: Directive,\n args: [{ selector: '[ngPluralCase]' }]\n }], function () { return [{ type: String, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: ɵngcc0.TemplateRef }, { type: ɵngcc0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\n }] }]; }, null); })();\n return NgPluralCase;\n}());\n\n/**\n * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nvar NgStyle = /** @class */ (function () {\n function NgStyle(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n Object.defineProperty(NgStyle.prototype, \"ngStyle\", {\n set: function (values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n },\n enumerable: true,\n configurable: true\n });\n NgStyle.prototype.ngDoCheck = function () {\n if (this._differ) {\n var changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n };\n NgStyle.prototype._setStyle = function (nameAndUnit, value) {\n var _a = __read(nameAndUnit.split('.'), 2), name = _a[0], unit = _a[1];\n value = value != null && unit ? \"\" + value + unit : value;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, value);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name);\n }\n };\n NgStyle.prototype._applyChanges = function (changes) {\n var _this = this;\n changes.forEachRemovedItem(function (record) { return _this._setStyle(record.key, null); });\n changes.forEachAddedItem(function (record) { return _this._setStyle(record.key, record.currentValue); });\n changes.forEachChangedItem(function (record) { return _this._setStyle(record.key, record.currentValue); });\n };\n __decorate([\n Input('ngStyle'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], NgStyle.prototype, \"ngStyle\", null);\n NgStyle = __decorate([ __metadata(\"design:paramtypes\", [ElementRef, KeyValueDiffers, Renderer2])\n ], NgStyle);\nNgStyle.ɵfac = function NgStyle_Factory(t) { return new (t || NgStyle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nNgStyle.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgStyle, selectors: [[\"\", \"ngStyle\", \"\"]], inputs: { ngStyle: \"ngStyle\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgStyle, [{\n type: Directive,\n args: [{ selector: '[ngStyle]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.KeyValueDiffers }, { type: ɵngcc0.Renderer2 }]; }, { ngStyle: [{\n type: Input,\n args: ['ngStyle']\n }] }); })();\n return NgStyle;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nvar NgTemplateOutlet = /** @class */ (function () {\n function NgTemplateOutlet(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n }\n NgTemplateOutlet.prototype.ngOnChanges = function (changes) {\n var recreateView = this._shouldRecreateView(changes);\n if (recreateView) {\n var viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n this._viewRef = this.ngTemplateOutlet ?\n viewContainerRef.createEmbeddedView(this.ngTemplateOutlet, this.ngTemplateOutletContext) :\n null;\n }\n else if (this._viewRef && this.ngTemplateOutletContext) {\n this._updateExistingContext(this.ngTemplateOutletContext);\n }\n };\n /**\n * We need to re-create existing embedded view if:\n * - templateRef has changed\n * - context has changes\n *\n * We mark context object as changed when the corresponding object\n * shape changes (new properties are added or existing properties are removed).\n * In other words we consider context with the same properties as \"the same\" even\n * if object reference changes (see https://github.com/angular/angular/issues/13407).\n */\n NgTemplateOutlet.prototype._shouldRecreateView = function (changes) {\n var ctxChange = changes['ngTemplateOutletContext'];\n return !!changes['ngTemplateOutlet'] || (ctxChange && this._hasContextShapeChanged(ctxChange));\n };\n NgTemplateOutlet.prototype._hasContextShapeChanged = function (ctxChange) {\n var e_1, _a;\n var prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n var currCtxKeys = Object.keys(ctxChange.currentValue || {});\n if (prevCtxKeys.length === currCtxKeys.length) {\n try {\n for (var currCtxKeys_1 = __values(currCtxKeys), currCtxKeys_1_1 = currCtxKeys_1.next(); !currCtxKeys_1_1.done; currCtxKeys_1_1 = currCtxKeys_1.next()) {\n var propName = currCtxKeys_1_1.value;\n if (prevCtxKeys.indexOf(propName) === -1) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (currCtxKeys_1_1 && !currCtxKeys_1_1.done && (_a = currCtxKeys_1.return)) _a.call(currCtxKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n }\n return true;\n };\n NgTemplateOutlet.prototype._updateExistingContext = function (ctx) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(ctx)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var propName = _c.value;\n this._viewRef.context[propName] = this.ngTemplateOutletContext[propName];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n __decorate([\n Input(),\n __metadata(\"design:type\", Object)\n ], NgTemplateOutlet.prototype, \"ngTemplateOutletContext\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", Object)\n ], NgTemplateOutlet.prototype, \"ngTemplateOutlet\", void 0);\n NgTemplateOutlet = __decorate([ __metadata(\"design:paramtypes\", [ViewContainerRef])\n ], NgTemplateOutlet);\nNgTemplateOutlet.ɵfac = function NgTemplateOutlet_Factory(t) { return new (t || NgTemplateOutlet)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };\nNgTemplateOutlet.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: NgTemplateOutlet, selectors: [[\"\", \"ngTemplateOutlet\", \"\"]], inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NgTemplateOutlet, [{\n type: Directive,\n args: [{ selector: '[ngTemplateOutlet]' }]\n }], function () { return [{ type: ɵngcc0.ViewContainerRef }]; }, { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }] }); })();\n return NgTemplateOutlet;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * A collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nvar COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n];\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nfunction invalidPipeArgumentError(type, value) {\n return Error(\"InvalidPipeArgument: '\" + value + \"' for pipe '\" + ɵstringify(type) + \"'\");\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar ObservableStrategy = /** @class */ (function () {\n function ObservableStrategy() {\n }\n ObservableStrategy.prototype.createSubscription = function (async, updateLatestValue) {\n return async.subscribe({ next: updateLatestValue, error: function (e) { throw e; } });\n };\n ObservableStrategy.prototype.dispose = function (subscription) { subscription.unsubscribe(); };\n ObservableStrategy.prototype.onDestroy = function (subscription) { subscription.unsubscribe(); };\n return ObservableStrategy;\n}());\nvar PromiseStrategy = /** @class */ (function () {\n function PromiseStrategy() {\n }\n PromiseStrategy.prototype.createSubscription = function (async, updateLatestValue) {\n return async.then(updateLatestValue, function (e) { throw e; });\n };\n PromiseStrategy.prototype.dispose = function (subscription) { };\n PromiseStrategy.prototype.onDestroy = function (subscription) { };\n return PromiseStrategy;\n}());\nvar _promiseStrategy = new PromiseStrategy();\nvar _observableStrategy = new ObservableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nvar AsyncPipe = /** @class */ (function () {\n function AsyncPipe(_ref) {\n this._ref = _ref;\n this._latestValue = null;\n this._latestReturnedValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n }\n AsyncPipe_1 = AsyncPipe;\n AsyncPipe.prototype.ngOnDestroy = function () {\n if (this._subscription) {\n this._dispose();\n }\n };\n AsyncPipe.prototype.transform = function (obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n this._latestReturnedValue = this._latestValue;\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n if (ɵlooseIdentical(this._latestValue, this._latestReturnedValue)) {\n return this._latestReturnedValue;\n }\n this._latestReturnedValue = this._latestValue;\n return WrappedValue.wrap(this._latestValue);\n };\n AsyncPipe.prototype._subscribe = function (obj) {\n var _this = this;\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, function (value) { return _this._updateLatestValue(obj, value); });\n };\n AsyncPipe.prototype._selectStrategy = function (obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisObservable(obj)) {\n return _observableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe_1, obj);\n };\n AsyncPipe.prototype._dispose = function () {\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._latestReturnedValue = null;\n this._subscription = null;\n this._obj = null;\n };\n AsyncPipe.prototype._updateLatestValue = function (async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n this._ref.markForCheck();\n }\n };\n var AsyncPipe_1;\n AsyncPipe = AsyncPipe_1 = __decorate([ __metadata(\"design:paramtypes\", [ChangeDetectorRef])\n ], AsyncPipe);\nAsyncPipe.ɵfac = function AsyncPipe_Factory(t) { return new (t || AsyncPipe)(ɵngcc0.ɵɵinjectPipeChangeDetectorRef()); };\nAsyncPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"async\", type: AsyncPipe, pure: false });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AsyncPipe, [{\n type: Pipe,\n args: [{ name: 'async', pure: false }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, null); })();\n return AsyncPipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nvar LowerCasePipe = /** @class */ (function () {\n function LowerCasePipe() {\n }\n LowerCasePipe_1 = LowerCasePipe;\n /**\n * @param value The string to transform to lower case.\n */\n LowerCasePipe.prototype.transform = function (value) {\n if (!value)\n return value;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe_1, value);\n }\n return value.toLowerCase();\n };\n var LowerCasePipe_1;\nLowerCasePipe.ɵfac = function LowerCasePipe_Factory(t) { return new (t || LowerCasePipe)(); };\nLowerCasePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"lowercase\", type: LowerCasePipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(LowerCasePipe, [{\n type: Pipe,\n args: [{ name: 'lowercase' }]\n }], function () { return []; }, null); })();\n return LowerCasePipe;\n}());\n//\n// Regex below matches any Unicode word and compatible with ES5. In ES2018 the same result\n// can be achieved by using /\\p{L}\\S*/gu and also known as Unicode Property Escapes\n// (http://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+/%5Cp%7BL%7D/u%3B&unicodePropertyEscape=1\n//\nvar unicodeWordMatch = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312E\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEA\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFEC]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word, and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nvar TitleCasePipe = /** @class */ (function () {\n function TitleCasePipe() {\n }\n TitleCasePipe_1 = TitleCasePipe;\n /**\n * @param value The string to transform to title case.\n */\n TitleCasePipe.prototype.transform = function (value) {\n if (!value)\n return value;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe_1, value);\n }\n return value.replace(unicodeWordMatch, (function (txt) { return txt[0].toUpperCase() + txt.substr(1).toLowerCase(); }));\n };\n var TitleCasePipe_1;\nTitleCasePipe.ɵfac = function TitleCasePipe_Factory(t) { return new (t || TitleCasePipe)(); };\nTitleCasePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"titlecase\", type: TitleCasePipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(TitleCasePipe, [{\n type: Pipe,\n args: [{ name: 'titlecase' }]\n }], function () { return []; }, null); })();\n return TitleCasePipe;\n}());\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nvar UpperCasePipe = /** @class */ (function () {\n function UpperCasePipe() {\n }\n UpperCasePipe_1 = UpperCasePipe;\n /**\n * @param value The string to transform to upper case.\n */\n UpperCasePipe.prototype.transform = function (value) {\n if (!value)\n return value;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe_1, value);\n }\n return value.toUpperCase();\n };\n var UpperCasePipe_1;\nUpperCasePipe.ɵfac = function UpperCasePipe_Factory(t) { return new (t || UpperCasePipe)(); };\nUpperCasePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"uppercase\", type: UpperCasePipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(UpperCasePipe, [{\n type: Pipe,\n args: [{ name: 'uppercase' }]\n }], function () { return []; }, null); })();\n return UpperCasePipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n#i18n-pipes) for more information.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * Examples are given in `en-US` locale.\n *\n * - `'short'`: equivalent to `'M/d/yy, h:mm a'` (`6/15/15, 9:03 AM`).\n * - `'medium'`: equivalent to `'MMM d, y, h:mm:ss a'` (`Jun 15, 2015, 9:03:01 AM`).\n * - `'long'`: equivalent to `'MMMM d, y, h:mm:ss a z'` (`June 15, 2015 at 9:03:01 AM\n * GMT+1`).\n * - `'full'`: equivalent to `'EEEE, MMMM d, y, h:mm:ss a zzzz'` (`Monday, June 15, 2015 at\n * 9:03:01 AM GMT+01:00`).\n * - `'shortDate'`: equivalent to `'M/d/yy'` (`6/15/15`).\n * - `'mediumDate'`: equivalent to `'MMM d, y'` (`Jun 15, 2015`).\n * - `'longDate'`: equivalent to `'MMMM d, y'` (`June 15, 2015`).\n * - `'fullDate'`: equivalent to `'EEEE, MMMM d, y'` (`Monday, June 15, 2015`).\n * - `'shortTime'`: equivalent to `'h:mm a'` (`9:03 AM`).\n * - `'mediumTime'`: equivalent to `'h:mm:ss a'` (`9:03:01 AM`).\n * - `'longTime'`: equivalent to `'h:mm:ss a z'` (`9:03:01 AM GMT+1`).\n * - `'fullTime'`: equivalent to `'h:mm:ss a zzzz'` (`9:03:01 AM GMT+01:00`).\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |--------------------|-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n * Note that timezone correction is not applied to an ISO string that has no time component, such as \"2016-09-19\"\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nvar DatePipe = /** @class */ (function () {\n function DatePipe(locale) {\n this.locale = locale;\n }\n DatePipe_1 = DatePipe;\n /**\n * @param value The date expression: a `Date` object, a number\n * (milliseconds since UTC epoch), or an ISO string (https://www.w3.org/TR/NOTE-datetime).\n * @param format The date/time components to include, using predefined options or a\n * custom format string.\n * @param timezone A timezone offset (such as `'+0430'`), or a standard\n * UTC/GMT or continental US timezone abbreviation.\n * When not supplied, uses the end-user's local system timezone.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n#setting-up-the-locale-of-your-app).\n * @returns A date string in the desired format.\n */\n DatePipe.prototype.transform = function (value, format, timezone, locale) {\n if (format === void 0) { format = 'mediumDate'; }\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, timezone);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe_1, error.message);\n }\n };\n var DatePipe_1;\n DatePipe = DatePipe_1 = __decorate([ __param(0, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [String])\n ], DatePipe);\nDatePipe.ɵfac = function DatePipe_Factory(t) { return new (t || DatePipe)(ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nDatePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"date\", type: DatePipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DatePipe, [{\n type: Pipe,\n args: [{ name: 'date', pure: true }]\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n return DatePipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nvar I18nPluralPipe = /** @class */ (function () {\n function I18nPluralPipe(_localization) {\n this._localization = _localization;\n }\n I18nPluralPipe_1 = I18nPluralPipe;\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * http://userguide.icu-project.org/formatparse/messages.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n I18nPluralPipe.prototype.transform = function (value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe_1, pluralMap);\n }\n var key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n };\n var I18nPluralPipe_1;\n I18nPluralPipe = I18nPluralPipe_1 = __decorate([ __metadata(\"design:paramtypes\", [NgLocalization])\n ], I18nPluralPipe);\nI18nPluralPipe.ɵfac = function I18nPluralPipe_Factory(t) { return new (t || I18nPluralPipe)(ɵngcc0.ɵɵdirectiveInject(NgLocalization)); };\nI18nPluralPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"i18nPlural\", type: I18nPluralPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(I18nPluralPipe, [{\n type: Pipe,\n args: [{ name: 'i18nPlural', pure: true }]\n }], function () { return [{ type: NgLocalization }]; }, null); })();\n return I18nPluralPipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nvar I18nSelectPipe = /** @class */ (function () {\n function I18nSelectPipe() {\n }\n I18nSelectPipe_1 = I18nSelectPipe;\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n I18nSelectPipe.prototype.transform = function (value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe_1, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n };\n var I18nSelectPipe_1;\nI18nSelectPipe.ɵfac = function I18nSelectPipe_Factory(t) { return new (t || I18nSelectPipe)(); };\nI18nSelectPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"i18nSelect\", type: I18nSelectPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(I18nSelectPipe, [{\n type: Pipe,\n args: [{ name: 'i18nSelect', pure: true }]\n }], function () { return []; }, null); })();\n return I18nSelectPipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nvar JsonPipe = /** @class */ (function () {\n function JsonPipe() {\n }\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n JsonPipe.prototype.transform = function (value) { return JSON.stringify(value, null, 2); };\nJsonPipe.ɵfac = function JsonPipe_Factory(t) { return new (t || JsonPipe)(); };\nJsonPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"json\", type: JsonPipe, pure: false });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(JsonPipe, [{\n type: Pipe,\n args: [{ name: 'json', pure: false }]\n }], function () { return []; }, null); })();\n return JsonPipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nfunction makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this keyvalue\n * pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nvar KeyValuePipe = /** @class */ (function () {\n function KeyValuePipe(differs) {\n this.differs = differs;\n this.keyValues = [];\n }\n KeyValuePipe.prototype.transform = function (input, compareFn) {\n var _this = this;\n if (compareFn === void 0) { compareFn = defaultComparator; }\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n var differChanges = this.differ.diff(input);\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem(function (r) {\n _this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n this.keyValues.sort(compareFn);\n }\n return this.keyValues;\n };\n KeyValuePipe = __decorate([ __metadata(\"design:paramtypes\", [KeyValueDiffers])\n ], KeyValuePipe);\nKeyValuePipe.ɵfac = function KeyValuePipe_Factory(t) { return new (t || KeyValuePipe)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers)); };\nKeyValuePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"keyvalue\", type: KeyValuePipe, pure: false });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(KeyValuePipe, [{\n type: Pipe,\n args: [{ name: 'keyvalue', pure: false }]\n }], function () { return [{ type: ɵngcc0.KeyValueDiffers }]; }, null); })();\n return KeyValuePipe;\n}());\nfunction defaultComparator(keyValueA, keyValueB) {\n var a = keyValueA.key;\n var b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n var aString = String(a);\n var bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number into a string,\n * formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * If no parameters are specified, the function rounds off to the nearest value using this\n * [rounding method](https://en.wikibooks.org/wiki/Arithmetic/Rounding).\n * The behavior differs from that of the JavaScript ```Math.round()``` function.\n * In the following case for example, the pipe rounds down where\n * ```Math.round()``` rounds up:\n *\n * ```html\n * -2.5 | number:'1.0-0'\n * > -3\n * Math.round(-2.5)\n * > -2\n * ```\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nvar DecimalPipe = /** @class */ (function () {\n function DecimalPipe(_locale) {\n this._locale = _locale;\n }\n DecimalPipe_1 = DecimalPipe;\n /**\n * @param value The number to be formatted.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `3`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n#setting-up-the-locale-of-your-app).\n */\n DecimalPipe.prototype.transform = function (value, digitsInfo, locale) {\n if (isEmpty(value))\n return null;\n locale = locale || this._locale;\n try {\n var num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe_1, error.message);\n }\n };\n var DecimalPipe_1;\n DecimalPipe = DecimalPipe_1 = __decorate([ __param(0, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [String])\n ], DecimalPipe);\nDecimalPipe.ɵfac = function DecimalPipe_Factory(t) { return new (t || DecimalPipe)(ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nDecimalPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"number\", type: DecimalPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DecimalPipe, [{\n type: Pipe,\n args: [{ name: 'number' }]\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n return DecimalPipe;\n}());\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nvar PercentPipe = /** @class */ (function () {\n function PercentPipe(_locale) {\n this._locale = _locale;\n }\n PercentPipe_1 = PercentPipe;\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n#setting-up-the-locale-of-your-app).\n */\n PercentPipe.prototype.transform = function (value, digitsInfo, locale) {\n if (isEmpty(value))\n return null;\n locale = locale || this._locale;\n try {\n var num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe_1, error.message);\n }\n };\n var PercentPipe_1;\n PercentPipe = PercentPipe_1 = __decorate([ __param(0, Inject(LOCALE_ID)),\n __metadata(\"design:paramtypes\", [String])\n ], PercentPipe);\nPercentPipe.ɵfac = function PercentPipe_Factory(t) { return new (t || PercentPipe)(ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\nPercentPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"percent\", type: PercentPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PercentPipe, [{\n type: Pipe,\n args: [{ name: 'percent' }]\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n return PercentPipe;\n}());\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCAL_ID` token. See the [i18n guide](guide/i18n#setting-up-the-locale-of-your-app) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nvar CurrencyPipe = /** @class */ (function () {\n function CurrencyPipe(_locale, _defaultCurrencyCode) {\n if (_defaultCurrencyCode === void 0) { _defaultCurrencyCode = 'USD'; }\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n CurrencyPipe_1 = CurrencyPipe;\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n#setting-up-the-locale-of-your-app).\n */\n CurrencyPipe.prototype.transform = function (value, currencyCode, display, digitsInfo, locale) {\n if (display === void 0) { display = 'symbol'; }\n if (isEmpty(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if (console && console.warn) {\n console.warn(\"Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \\\"code\\\", \\\"symbol\\\" or \\\"symbol-narrow\\\".\");\n }\n display = display ? 'symbol' : 'code';\n }\n var currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n var num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe_1, error.message);\n }\n };\n var CurrencyPipe_1;\n CurrencyPipe = CurrencyPipe_1 = __decorate([ __param(0, Inject(LOCALE_ID)),\n __param(1, Inject(DEFAULT_CURRENCY_CODE)),\n __metadata(\"design:paramtypes\", [String, String])\n ], CurrencyPipe);\nCurrencyPipe.ɵfac = function CurrencyPipe_Factory(t) { return new (t || CurrencyPipe)(ɵngcc0.ɵɵdirectiveInject(LOCALE_ID), ɵngcc0.ɵɵdirectiveInject(DEFAULT_CURRENCY_CODE)); };\nCurrencyPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"currency\", type: CurrencyPipe, pure: true });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CurrencyPipe, [{\n type: Pipe,\n args: [{ name: 'currency' }]\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: String, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }]; }, null); })();\n return CurrencyPipe;\n}());\nfunction isEmpty(value) {\n return value == null || value === '' || value !== value;\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(value + \" is not a number\");\n }\n return value;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nvar SlicePipe = /** @class */ (function () {\n function SlicePipe() {\n }\n SlicePipe_1 = SlicePipe;\n SlicePipe.prototype.transform = function (value, start, end) {\n if (value == null)\n return value;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe_1, value);\n }\n return value.slice(start, end);\n };\n SlicePipe.prototype.supports = function (obj) { return typeof obj === 'string' || Array.isArray(obj); };\n var SlicePipe_1;\nSlicePipe.ɵfac = function SlicePipe_Factory(t) { return new (t || SlicePipe)(); };\nSlicePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"slice\", type: SlicePipe, pure: false });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(SlicePipe, [{\n type: Pipe,\n args: [{ name: 'slice', pure: false }]\n }], function () { return []; }, null); })();\n return SlicePipe;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * A collection of Angular pipes that are likely to be used in each and every application.\n */\nvar COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\n];\n\n/**\n * @license\n * Copyright Google Inc. 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// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * * The `providers` options configure the NgModule's injector to provide\n * localization dependencies to members.\n * * The `exports` options make the declared directives and pipes available for import\n * by other NgModules.\n *\n * @publicApi\n */\nvar CommonModule = /** @class */ (function () {\n function CommonModule() {\n }\nCommonModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CommonModule });\nCommonModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CommonModule_Factory(t) { return new (t || CommonModule)(); }, providers: [\n { provide: NgLocalization, useClass: NgLocaleLocalization },\n ] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CommonModule, { declarations: [NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe], exports: [NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CommonModule, [{\n type: NgModule,\n args: [{\n declarations: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\n providers: [\n { provide: NgLocalization, useClass: NgLocaleLocalization },\n ]\n }]\n }], function () { return []; }, null); })();\n return CommonModule;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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 */\nvar PLATFORM_BROWSER_ID = 'browser';\nvar PLATFORM_SERVER_ID = 'server';\nvar PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nvar PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\n}\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * @publicApi\n */\nvar VERSION = new Version('9.1.0');\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nvar ViewportScroller = /** @class */ (function () {\n function ViewportScroller() {\n }\n // De-sugared tree-shakable injection\n // See #23917\n /** @nocollapse */\n ViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: function () { return new BrowserViewportScroller(ɵɵinject(DOCUMENT), window, ɵɵinject(ErrorHandler)); }\n });\n return ViewportScroller;\n}());\n/**\n * Manages the scroll position for a browser window.\n */\nvar BrowserViewportScroller = /** @class */ (function () {\n function BrowserViewportScroller(document, window, errorHandler) {\n this.document = document;\n this.window = window;\n this.errorHandler = errorHandler;\n this.offset = function () { return [0, 0]; };\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n BrowserViewportScroller.prototype.setOffset = function (offset) {\n if (Array.isArray(offset)) {\n this.offset = function () { return offset; };\n }\n else {\n this.offset = offset;\n }\n };\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n BrowserViewportScroller.prototype.getScrollPosition = function () {\n if (this.supportScrollRestoration()) {\n return [this.window.scrollX, this.window.scrollY];\n }\n else {\n return [0, 0];\n }\n };\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n BrowserViewportScroller.prototype.scrollToPosition = function (position) {\n if (this.supportScrollRestoration()) {\n this.window.scrollTo(position[0], position[1]);\n }\n };\n /**\n * Scrolls to an anchor element.\n * @param anchor The ID of the anchor element.\n */\n BrowserViewportScroller.prototype.scrollToAnchor = function (anchor) {\n if (this.supportScrollRestoration()) {\n // Escape anything passed to `querySelector` as it can throw errors and stop the application\n // from working if invalid values are passed.\n if (this.window.CSS && this.window.CSS.escape) {\n anchor = this.window.CSS.escape(anchor);\n }\n else {\n anchor = anchor.replace(/(\\\"|\\'\\ |:|\\.|\\[|\\]|,|=)/g, '\\\\$1');\n }\n try {\n var elSelectedById = this.document.querySelector(\"#\" + anchor);\n if (elSelectedById) {\n this.scrollToElement(elSelectedById);\n return;\n }\n var elSelectedByName = this.document.querySelector(\"[name='\" + anchor + \"']\");\n if (elSelectedByName) {\n this.scrollToElement(elSelectedByName);\n return;\n }\n }\n catch (e) {\n this.errorHandler.handleError(e);\n }\n }\n };\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n BrowserViewportScroller.prototype.setHistoryScrollRestoration = function (scrollRestoration) {\n if (this.supportScrollRestoration()) {\n var history_1 = this.window.history;\n if (history_1 && history_1.scrollRestoration) {\n history_1.scrollRestoration = scrollRestoration;\n }\n }\n };\n BrowserViewportScroller.prototype.scrollToElement = function (el) {\n var rect = el.getBoundingClientRect();\n var left = rect.left + this.window.pageXOffset;\n var top = rect.top + this.window.pageYOffset;\n var offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n };\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n BrowserViewportScroller.prototype.supportScrollRestoration = function () {\n try {\n return !!this.window && !!this.window.scrollTo;\n }\n catch (_a) {\n return false;\n }\n };\n return BrowserViewportScroller;\n}());\n/**\n * Provides an empty implementation of the viewport scroller. This will\n * live in @angular/common as it will be used by both platform-server and platform-webworker.\n */\nvar NullViewportScroller = /** @class */ (function () {\n function NullViewportScroller() {\n }\n /**\n * Empty implementation\n */\n NullViewportScroller.prototype.setOffset = function (offset) { };\n /**\n * Empty implementation\n */\n NullViewportScroller.prototype.getScrollPosition = function () { return [0, 0]; };\n /**\n * Empty implementation\n */\n NullViewportScroller.prototype.scrollToPosition = function (position) { };\n /**\n * Empty implementation\n */\n NullViewportScroller.prototype.scrollToAnchor = function (anchor) { };\n /**\n * Empty implementation\n */\n NullViewportScroller.prototype.setHistoryScrollRestoration = function (scrollRestoration) { };\n return NullViewportScroller;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @license\n * Copyright Google Inc. 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// This file only reexports content of the `src` folder. Keep it that way.\n\n/**\n * @license\n * Copyright Google Inc. 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\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, useBrowserPlatformLocation as ɵangular_packages_common_common_a, createBrowserPlatformLocation as ɵangular_packages_common_common_b, createLocation as ɵangular_packages_common_common_c, provideLocationStrategy as ɵangular_packages_common_common_d, COMMON_DIRECTIVES as ɵangular_packages_common_common_e, COMMON_PIPES as ɵangular_packages_common_common_f, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n\n//# sourceMappingURL=common.js.map","/**\n * @license Angular v9.1.0\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { __spread, __read, __extends, __decorate, __metadata, __param } from 'tslib';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, Injector, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\nimport { DOCUMENT, ɵparseCookieValue } from '@angular/common';\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nimport * as ɵngcc0 from '@angular/core';\nvar HttpHandler = /** @class */ (function () {\n function HttpHandler() {\n }\n return HttpHandler;\n}());\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nvar HttpBackend = /** @class */ (function () {\n function HttpBackend() {\n }\n return HttpBackend;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nvar HttpHeaders = /** @class */ (function () {\n /** Constructs a new HTTP header object with the given values.*/\n function HttpHeaders(headers) {\n var _this = this;\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = function () {\n _this.headers = new Map();\n headers.split('\\n').forEach(function (line) {\n var index = line.indexOf(':');\n if (index > 0) {\n var name_1 = line.slice(0, index);\n var key = name_1.toLowerCase();\n var value = line.slice(index + 1).trim();\n _this.maybeSetNormalizedName(name_1, key);\n if (_this.headers.has(key)) {\n _this.headers.get(key).push(value);\n }\n else {\n _this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = function () {\n _this.headers = new Map();\n Object.keys(headers).forEach(function (name) {\n var values = headers[name];\n var key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n _this.headers.set(key, values);\n _this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n HttpHeaders.prototype.has = function (name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n };\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n HttpHeaders.prototype.get = function (name) {\n this.init();\n var values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n };\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n HttpHeaders.prototype.keys = function () {\n this.init();\n return Array.from(this.normalizedNames.values());\n };\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n HttpHeaders.prototype.getAll = function (name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n };\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n HttpHeaders.prototype.append = function (name, value) {\n return this.clone({ name: name, value: value, op: 'a' });\n };\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or overide for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n HttpHeaders.prototype.set = function (name, value) {\n return this.clone({ name: name, value: value, op: 's' });\n };\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n HttpHeaders.prototype.delete = function (name, value) {\n return this.clone({ name: name, value: value, op: 'd' });\n };\n HttpHeaders.prototype.maybeSetNormalizedName = function (name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n };\n HttpHeaders.prototype.init = function () {\n var _this = this;\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(function (update) { return _this.applyUpdate(update); });\n this.lazyUpdate = null;\n }\n }\n };\n HttpHeaders.prototype.copyFrom = function (other) {\n var _this = this;\n other.init();\n Array.from(other.headers.keys()).forEach(function (key) {\n _this.headers.set(key, other.headers.get(key));\n _this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n };\n HttpHeaders.prototype.clone = function (update) {\n var clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n };\n HttpHeaders.prototype.applyUpdate = function (update) {\n var key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n var value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n var base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push.apply(base, __spread(value));\n this.headers.set(key, base);\n break;\n case 'd':\n var toDelete_1 = update.value;\n if (!toDelete_1) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n var existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(function (value) { return toDelete_1.indexOf(value) === -1; });\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n };\n /**\n * @internal\n */\n HttpHeaders.prototype.forEach = function (fn) {\n var _this = this;\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(function (key) { return fn(_this.normalizedNames.get(key), _this.headers.get(key)); });\n };\n return HttpHeaders;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nvar HttpUrlEncodingCodec = /** @class */ (function () {\n function HttpUrlEncodingCodec() {\n }\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n HttpUrlEncodingCodec.prototype.encodeKey = function (key) { return standardEncoding(key); };\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n HttpUrlEncodingCodec.prototype.encodeValue = function (value) { return standardEncoding(value); };\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n HttpUrlEncodingCodec.prototype.decodeKey = function (key) { return decodeURIComponent(key); };\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n HttpUrlEncodingCodec.prototype.decodeValue = function (value) { return decodeURIComponent(value); };\n return HttpUrlEncodingCodec;\n}());\nfunction paramParser(rawParams, codec) {\n var map = new Map();\n if (rawParams.length > 0) {\n var params = rawParams.split('&');\n params.forEach(function (param) {\n var eqIdx = param.indexOf('=');\n var _a = __read(eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))], 2), key = _a[0], val = _a[1];\n var list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\nfunction standardEncoding(v) {\n return encodeURIComponent(v)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/gi, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%2B/gi, '+')\n .replace(/%3D/gi, '=')\n .replace(/%3F/gi, '?')\n .replace(/%2F/gi, '/');\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nvar HttpParams = /** @class */ (function () {\n function HttpParams(options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(\"Cannot specify both fromString and fromObject.\");\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(function (key) {\n var value = options.fromObject[key];\n _this.map.set(key, Array.isArray(value) ? value : [value]);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n HttpParams.prototype.has = function (param) {\n this.init();\n return this.map.has(param);\n };\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n HttpParams.prototype.get = function (param) {\n this.init();\n var res = this.map.get(param);\n return !!res ? res[0] : null;\n };\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n HttpParams.prototype.getAll = function (param) {\n this.init();\n return this.map.get(param) || null;\n };\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n HttpParams.prototype.keys = function () {\n this.init();\n return Array.from(this.map.keys());\n };\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n HttpParams.prototype.append = function (param, value) { return this.clone({ param: param, value: value, op: 'a' }); };\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n HttpParams.prototype.set = function (param, value) { return this.clone({ param: param, value: value, op: 's' }); };\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n HttpParams.prototype.delete = function (param, value) { return this.clone({ param: param, value: value, op: 'd' }); };\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n HttpParams.prototype.toString = function () {\n var _this = this;\n this.init();\n return this.keys()\n .map(function (key) {\n var eKey = _this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return _this.map.get(key).map(function (value) { return eKey + '=' + _this.encoder.encodeValue(value); })\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(function (param) { return param !== ''; })\n .join('&');\n };\n HttpParams.prototype.clone = function (update) {\n var clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat([update]);\n return clone;\n };\n HttpParams.prototype.init = function () {\n var _this = this;\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(function (key) { return _this.map.set(key, _this.cloneFrom.map.get(key)); });\n this.updates.forEach(function (update) {\n switch (update.op) {\n case 'a':\n case 's':\n var base = (update.op === 'a' ? _this.map.get(update.param) : undefined) || [];\n base.push(update.value);\n _this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n var base_1 = _this.map.get(update.param) || [];\n var idx = base_1.indexOf(update.value);\n if (idx !== -1) {\n base_1.splice(idx, 1);\n }\n if (base_1.length > 0) {\n _this.map.set(update.param, base_1);\n }\n else {\n _this.map.delete(update.param);\n }\n }\n else {\n _this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n };\n return HttpParams;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nvar HttpRequest = /** @class */ (function () {\n function HttpRequest(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n var options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n var params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n var qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n var sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n HttpRequest.prototype.serializeBody = function () {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n };\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n HttpRequest.prototype.detectContentTypeHeader = function () {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n Array.isArray(this.body)) {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n };\n HttpRequest.prototype.clone = function (update) {\n if (update === void 0) { update = {}; }\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n var method = update.method || this.method;\n var url = update.url || this.url;\n var responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n var body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n var withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n var reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n var headers = update.headers || this.headers;\n var params = update.params || this.params;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce(function (headers, name) { return headers.set(name, update.setHeaders[name]); }, headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce(function (params, param) { return params.set(param, update.setParams[param]); }, params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params: params, headers: headers, reportProgress: reportProgress, responseType: responseType, withCredentials: withCredentials,\n });\n };\n return HttpRequest;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nvar HttpResponseBase = /** @class */ (function () {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n function HttpResponseBase(init, defaultStatus, defaultStatusText) {\n if (defaultStatus === void 0) { defaultStatus = 200; }\n if (defaultStatusText === void 0) { defaultStatusText = 'OK'; }\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n return HttpResponseBase;\n}());\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nvar HttpHeaderResponse = /** @class */ (function (_super) {\n __extends(HttpHeaderResponse, _super);\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n function HttpHeaderResponse(init) {\n if (init === void 0) { init = {}; }\n var _this = _super.call(this, init) || this;\n _this.type = HttpEventType.ResponseHeader;\n return _this;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n HttpHeaderResponse.prototype.clone = function (update) {\n if (update === void 0) { update = {}; }\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n };\n return HttpHeaderResponse;\n}(HttpResponseBase));\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nvar HttpResponse = /** @class */ (function (_super) {\n __extends(HttpResponse, _super);\n /**\n * Construct a new `HttpResponse`.\n */\n function HttpResponse(init) {\n if (init === void 0) { init = {}; }\n var _this = _super.call(this, init) || this;\n _this.type = HttpEventType.Response;\n _this.body = init.body !== undefined ? init.body : null;\n return _this;\n }\n HttpResponse.prototype.clone = function (update) {\n if (update === void 0) { update = {}; }\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n };\n return HttpResponse;\n}(HttpResponseBase));\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nvar HttpErrorResponse = /** @class */ (function (_super) {\n __extends(HttpErrorResponse, _super);\n function HttpErrorResponse(init) {\n var _this = \n // Initialize with a default status of 0 / Unknown Error.\n _super.call(this, init, 0, 'Unknown Error') || this;\n _this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n _this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (_this.status >= 200 && _this.status < 300) {\n _this.message = \"Http failure during parsing for \" + (init.url || '(unknown url)');\n }\n else {\n _this.message =\n \"Http failure response for \" + (init.url || '(unknown url)') + \": \" + init.status + \" \" + init.statusText;\n }\n _this.error = init.error || null;\n return _this;\n }\n return HttpErrorResponse;\n}(HttpResponseBase));\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body: body,\n headers: options.headers,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n *\n * @publicApi\n */\nvar HttpClient = /** @class */ (function () {\n function HttpClient(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n HttpClient.prototype.request = function (first, url, options) {\n var _this = this;\n if (options === void 0) { options = {}; }\n var req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n var headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n var params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers: headers,\n params: params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n var events$ = of(req).pipe(concatMap(function (req) { return _this.handler.handle(req); }));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n var res$ = events$.pipe(filter(function (event) { return event instanceof HttpResponse; }));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map(function (res) {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map(function (res) {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map(function (res) {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map(function (res) { return res.body; }));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(\"Unreachable: unhandled observe type \" + options.observe + \"}\");\n }\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n HttpClient.prototype.delete = function (url, options) {\n if (options === void 0) { options = {}; }\n return this.request('DELETE', url, options);\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n HttpClient.prototype.get = function (url, options) {\n if (options === void 0) { options = {}; }\n return this.request('GET', url, options);\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n HttpClient.prototype.head = function (url, options) {\n if (options === void 0) { options = {}; }\n return this.request('HEAD', url, options);\n };\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n HttpClient.prototype.jsonp = function (url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n };\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilites of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n HttpClient.prototype.options = function (url, options) {\n if (options === void 0) { options = {}; }\n return this.request('OPTIONS', url, options);\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n HttpClient.prototype.patch = function (url, body, options) {\n if (options === void 0) { options = {}; }\n return this.request('PATCH', url, addBody(options, body));\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n HttpClient.prototype.post = function (url, body, options) {\n if (options === void 0) { options = {}; }\n return this.request('POST', url, addBody(options, body));\n };\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n HttpClient.prototype.put = function (url, body, options) {\n if (options === void 0) { options = {}; }\n return this.request('PUT', url, addBody(options, body));\n };\n HttpClient = __decorate([ __metadata(\"design:paramtypes\", [HttpHandler])\n ], HttpClient);\nHttpClient.ɵfac = function HttpClient_Factory(t) { return new (t || HttpClient)(ɵngcc0.ɵɵinject(HttpHandler)); };\nHttpClient.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: HttpClient, factory: function (t) { return HttpClient.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(HttpClient, [{\n type: Injectable\n }], function () { return [{ type: HttpHandler }]; }, null); })();\n return HttpClient;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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/**\n * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nvar HttpInterceptorHandler = /** @class */ (function () {\n function HttpInterceptorHandler(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n HttpInterceptorHandler.prototype.handle = function (req) {\n return this.interceptor.intercept(req, this.next);\n };\n return HttpInterceptorHandler;\n}());\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nvar HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nvar NoopInterceptor = /** @class */ (function () {\n function NoopInterceptor() {\n }\n NoopInterceptor.prototype.intercept = function (req, next) {\n return next.handle(req);\n };\nNoopInterceptor.ɵfac = function NoopInterceptor_Factory(t) { return new (t || NoopInterceptor)(); };\nNoopInterceptor.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: NoopInterceptor, factory: function (t) { return NoopInterceptor.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NoopInterceptor, [{\n type: Injectable\n }], function () { return []; }, null); })();\n return NoopInterceptor;\n}());\n\n/**\n * @license\n * Copyright Google Inc. 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// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nvar nextRequestId = 0;\n// Error text given when a JSONP script is injected, but doesn't invoke the callback\n// passed in its URL.\nvar JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\n// Error text given when a request is passed to the JsonpClientBackend that doesn't\n// have a request method JSONP.\nvar JSONP_ERR_WRONG_METHOD = 'JSONP requests must use JSONP request method.';\nvar JSONP_ERR_WRONG_RESPONSE_TYPE = 'JSONP requests must use Json response type.';\n/**\n * DI token/abstract type representing a map of JSONP callbacks.\n *\n * In the browser, this should always be the `window` object.\n *\n *\n */\nvar JsonpCallbackContext = /** @class */ (function () {\n function JsonpCallbackContext() {\n }\n return JsonpCallbackContext;\n}());\n/**\n * Processes an `HttpRequest` with the JSONP method,\n * by performing JSONP style requests.\n * @see `HttpHandler`\n * @see `HttpXhrBackend`\n *\n * @publicApi\n */\nvar JsonpClientBackend = /** @class */ (function () {\n function JsonpClientBackend(callbackMap, document) {\n this.callbackMap = callbackMap;\n this.document = document;\n }\n /**\n * Get the name of the next callback method, by incrementing the global `nextRequestId`.\n */\n JsonpClientBackend.prototype.nextCallback = function () { return \"ng_jsonp_callback_\" + nextRequestId++; };\n /**\n * Processes a JSONP request and returns an event stream of the results.\n * @param req The request object.\n * @returns An observable of the response events.\n *\n */\n JsonpClientBackend.prototype.handle = function (req) {\n var _this = this;\n // Firstly, check both the method and response type. If either doesn't match\n // then the request was improperly routed here and cannot be handled.\n if (req.method !== 'JSONP') {\n throw new Error(JSONP_ERR_WRONG_METHOD);\n }\n else if (req.responseType !== 'json') {\n throw new Error(JSONP_ERR_WRONG_RESPONSE_TYPE);\n }\n // Everything else happens inside the Observable boundary.\n return new Observable(function (observer) {\n // The first step to make a request is to generate the callback name, and replace the\n // callback placeholder in the URL with the name. Care has to be taken here to ensure\n // a trailing &, if matched, gets inserted back into the URL in the correct place.\n var callback = _this.nextCallback();\n var url = req.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/, \"=\" + callback + \"$1\");\n // Construct the \r\n * ```\r\n *\r\n * @private\r\n * @param {HTMLElement} element - Target element\r\n * @param {RippleOptions} rippleOptions - Ripple options .\r\n * @param {Function} done .\r\n * @returns {void} .\r\n */\r\nexport function rippleEffect(element, rippleOptions, done) {\r\n var rippleModel = getRippleModel(rippleOptions);\r\n if (rippleModel.rippleFlag === false || (rippleModel.rippleFlag === undefined && !isRippleEnabled)) {\r\n return Function;\r\n }\r\n element.setAttribute('data-ripple', 'true');\r\n EventHandler.add(element, 'mousedown', rippleHandler, { parent: element, rippleOptions: rippleModel });\r\n EventHandler.add(element, 'mouseup', rippleUpHandler, { parent: element, rippleOptions: rippleModel, done: done });\r\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\r\n if (Browser.isPointer) {\r\n EventHandler.add(element, 'transitionend', rippleLeaveHandler, { parent: element, rippleOptions: rippleModel });\r\n }\r\n return (function () {\r\n element.removeAttribute('data-ripple');\r\n EventHandler.remove(element, 'mousedown', rippleHandler);\r\n EventHandler.remove(element, 'mouseup', rippleUpHandler);\r\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\r\n EventHandler.remove(element, 'transitionend', rippleLeaveHandler);\r\n });\r\n}\r\n/**\r\n * Handler for ripple model\r\n *\r\n * @param {RippleOptions} rippleOptions ?\r\n * @returns {RippleOptions} ?\r\n */\r\nfunction getRippleModel(rippleOptions) {\r\n var rippleModel = {\r\n selector: rippleOptions && rippleOptions.selector ? rippleOptions.selector : null,\r\n ignore: rippleOptions && rippleOptions.ignore ? rippleOptions.ignore : null,\r\n rippleFlag: rippleOptions && rippleOptions.rippleFlag,\r\n isCenterRipple: rippleOptions && rippleOptions.isCenterRipple,\r\n duration: rippleOptions && rippleOptions.duration ? rippleOptions.duration : 350\r\n };\r\n return rippleModel;\r\n}\r\n/**\r\n * Handler for ripple event\r\n *\r\n * @param {MouseEvent} e ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nfunction rippleHandler(e) {\r\n var target = (e.target);\r\n var selector = this.rippleOptions.selector;\r\n var element = selector ? closest(target, selector) : target;\r\n if (!element || (this.rippleOptions && closest(target, this.rippleOptions.ignore))) {\r\n return;\r\n }\r\n var offset = element.getBoundingClientRect();\r\n var offsetX = e.pageX - document.body.scrollLeft;\r\n var offsetY = e.pageY - ((!document.body.scrollTop && document.documentElement) ?\r\n document.documentElement.scrollTop : document.body.scrollTop);\r\n var pageX = Math.max(Math.abs(offsetX - offset.left), Math.abs(offsetX - offset.right));\r\n var pageY = Math.max(Math.abs(offsetY - offset.top), Math.abs(offsetY - offset.bottom));\r\n var radius = Math.sqrt(pageX * pageX + pageY * pageY);\r\n var diameter = radius * 2 + 'px';\r\n var x = offsetX - offset.left - radius;\r\n var y = offsetY - offset.top - radius;\r\n if (this.rippleOptions && this.rippleOptions.isCenterRipple) {\r\n x = 0;\r\n y = 0;\r\n diameter = '100%';\r\n }\r\n element.classList.add('e-ripple');\r\n var duration = this.rippleOptions.duration.toString();\r\n var styles = 'width: ' + diameter + ';height: ' + diameter + ';left: ' + x + 'px;top: ' + y + 'px;' +\r\n 'transition-duration: ' + duration + 'ms;';\r\n var rippleElement = createElement('div', { className: 'e-ripple-element', styles: styles });\r\n element.appendChild(rippleElement);\r\n window.getComputedStyle(rippleElement).getPropertyValue('opacity');\r\n rippleElement.style.transform = 'scale(1)';\r\n if (element !== this.parent) {\r\n EventHandler.add(element, 'mouseleave', rippleLeaveHandler, { parent: this.parent, rippleOptions: this.rippleOptions });\r\n }\r\n}\r\n/**\r\n * Handler for ripple element mouse up event\r\n *\r\n * @param {MouseEvent} e ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nfunction rippleUpHandler(e) {\r\n removeRipple(e, this);\r\n}\r\n/**\r\n * Handler for ripple element mouse move event\r\n *\r\n * @param {MouseEvent} e ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nfunction rippleLeaveHandler(e) {\r\n removeRipple(e, this);\r\n}\r\n/**\r\n * Handler for removing ripple element\r\n *\r\n * @param {MouseEvent} e ?\r\n * @param {RippleArgs} eventArgs ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nfunction removeRipple(e, eventArgs) {\r\n var duration = eventArgs.rippleOptions.duration;\r\n var target = (e.target);\r\n var selector = eventArgs.rippleOptions.selector;\r\n var element = selector ? closest(target, selector) : target;\r\n if (!element || (element && element.className.indexOf('e-ripple') === -1)) {\r\n return;\r\n }\r\n var rippleElements = selectAll('.e-ripple-element', element);\r\n var rippleElement = rippleElements[rippleElements.length - 1];\r\n if (rippleElement) {\r\n rippleElement.style.opacity = '0.5';\r\n }\r\n if (eventArgs.parent !== element) {\r\n EventHandler.remove(element, 'mouseleave', rippleLeaveHandler);\r\n }\r\n /* tslint:disable:align */\r\n setTimeout(function () {\r\n if (rippleElement && rippleElement.parentNode) {\r\n rippleElement.parentNode.removeChild(rippleElement);\r\n }\r\n if (!element.getElementsByClassName('e-ripple-element').length) {\r\n element.classList.remove('e-ripple');\r\n }\r\n if (eventArgs.done) {\r\n eventArgs.done(e);\r\n }\r\n }, duration);\r\n}\r\nexport var isRippleEnabled = false;\r\n/**\r\n * Animation Module provides support to enable ripple effect functionality to Essential JS 2 components.\r\n *\r\n * @param {boolean} isRipple Specifies the boolean value to enable or disable ripple effect.\r\n * @returns {boolean} ?\r\n */\r\nexport function enableRipple(isRipple) {\r\n isRippleEnabled = isRipple;\r\n return isRippleEnabled;\r\n}\r\n","import { isUndefined, isNullOrUndefined, merge, setImmediate, setValue, isBlazor, getValue, extend } from './util';\r\nimport { addClass, removeClass } from './dom';\r\nimport { Observer } from './observer';\r\nvar isColEName = new RegExp(']');\r\n/* tslint:enable:no-any */\r\n/**\r\n * Base library module is common module for Framework modules like touch,keyboard and etc.,\r\n *\r\n * @private\r\n */\r\nvar Base = /** @class */ (function () {\r\n /**\r\n * Base constructor accept options and element\r\n *\r\n * @param {Object} options ?\r\n * @param {string} element ?\r\n */\r\n function Base(options, element) {\r\n this.isRendered = false;\r\n this.isComplexArraySetter = false;\r\n this.isServerRendered = false;\r\n this.allowServerDataBinding = true;\r\n this.isProtectedOnChange = true;\r\n this.properties = {};\r\n this.changedProperties = {};\r\n this.oldProperties = {};\r\n this.bulkChanges = {};\r\n this.refreshing = false;\r\n this.ignoreCollectionWatch = false;\r\n // eslint-disable-next-line\r\n this.finalUpdate = function () { };\r\n this.childChangedProperties = {};\r\n this.modelObserver = new Observer(this);\r\n if (!isUndefined(element)) {\r\n if ('string' === typeof (element)) {\r\n this.element = document.querySelector(element);\r\n }\r\n else {\r\n this.element = element;\r\n }\r\n if (!isNullOrUndefined(this.element)) {\r\n this.isProtectedOnChange = false;\r\n this.addInstance();\r\n }\r\n }\r\n if (!isUndefined(options)) {\r\n this.setProperties(options, true);\r\n }\r\n this.isDestroyed = false;\r\n }\r\n /** Property base section */\r\n /**\r\n * Function used to set bunch of property at a time.\r\n *\r\n * @private\r\n * @param {Object} prop - JSON object which holds components properties.\r\n * @param {boolean} muteOnChange ? - Specifies to true when we set properties.\r\n * @returns {void} ?\r\n */\r\n Base.prototype.setProperties = function (prop, muteOnChange) {\r\n var prevDetection = this.isProtectedOnChange;\r\n this.isProtectedOnChange = !!muteOnChange;\r\n merge(this, prop);\r\n if (muteOnChange !== true) {\r\n merge(this.changedProperties, prop);\r\n this.dataBind();\r\n }\r\n else if (isBlazor() && this.isRendered) {\r\n this.serverDataBind(prop);\r\n }\r\n this.finalUpdate();\r\n this.changedProperties = {};\r\n this.oldProperties = {};\r\n this.isProtectedOnChange = prevDetection;\r\n };\r\n /**\r\n * Calls for child element data bind\r\n *\r\n * @param {Object} obj ?\r\n * @param {Object} parent ?\r\n * @returns {void} ?\r\n */\r\n // tslint:disable-next-line:no-any\r\n Base.callChildDataBind = function (obj, parent) {\r\n var keys = Object.keys(obj);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n if (parent[key] instanceof Array) {\r\n for (var _a = 0, _b = parent[key]; _a < _b.length; _a++) {\r\n var obj_1 = _b[_a];\r\n if (obj_1.dataBind !== undefined) {\r\n obj_1.dataBind();\r\n }\r\n }\r\n }\r\n else {\r\n parent[key].dataBind();\r\n }\r\n }\r\n };\r\n Base.prototype.clearChanges = function () {\r\n this.finalUpdate();\r\n this.changedProperties = {};\r\n this.oldProperties = {};\r\n this.childChangedProperties = {};\r\n };\r\n /**\r\n * Bind property changes immediately to components\r\n *\r\n * @returns {void} ?\r\n */\r\n Base.prototype.dataBind = function () {\r\n Base.callChildDataBind(this.childChangedProperties, this);\r\n if (Object.getOwnPropertyNames(this.changedProperties).length) {\r\n var prevDetection = this.isProtectedOnChange;\r\n var newChanges = this.changedProperties;\r\n var oldChanges = this.oldProperties;\r\n this.clearChanges();\r\n this.isProtectedOnChange = true;\r\n this.onPropertyChanged(newChanges, oldChanges);\r\n this.isProtectedOnChange = prevDetection;\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Base.prototype.serverDataBind = function (newChanges) {\r\n if (!isBlazor()) {\r\n return;\r\n }\r\n newChanges = newChanges ? newChanges : {};\r\n extend(this.bulkChanges, {}, newChanges, true);\r\n var sfBlazor = 'sfBlazor';\r\n if (this.allowServerDataBinding && window[sfBlazor].updateModel) {\r\n window[sfBlazor].updateModel(this);\r\n this.bulkChanges = {};\r\n }\r\n };\r\n /* tslint:enable:no-any */\r\n Base.prototype.saveChanges = function (key, newValue, oldValue) {\r\n if (isBlazor()) {\r\n // tslint:disable-next-line:no-any\r\n var newChanges = {};\r\n newChanges[key] = newValue;\r\n this.serverDataBind(newChanges);\r\n }\r\n if (this.isProtectedOnChange) {\r\n return;\r\n }\r\n this.oldProperties[key] = oldValue;\r\n this.changedProperties[key] = newValue;\r\n this.finalUpdate();\r\n this.finalUpdate = setImmediate(this.dataBind.bind(this));\r\n };\r\n /** Event Base Section */\r\n /**\r\n * Adds the handler to the given event listener.\r\n *\r\n * @param {string} eventName - A String that specifies the name of the event\r\n * @param {Function} handler - Specifies the call to run when the event occurs.\r\n * @returns {void} ?\r\n */\r\n Base.prototype.addEventListener = function (eventName, handler) {\r\n this.modelObserver.on(eventName, handler);\r\n };\r\n /**\r\n * Removes the handler from the given event listener.\r\n *\r\n * @param {string} eventName - A String that specifies the name of the event to remove\r\n * @param {Function} handler - Specifies the function to remove\r\n * @returns {void} ?\r\n */\r\n Base.prototype.removeEventListener = function (eventName, handler) {\r\n this.modelObserver.off(eventName, handler);\r\n };\r\n /**\r\n * Triggers the handlers in the specified event.\r\n *\r\n * @private\r\n * @param {string} eventName - Specifies the event to trigger for the specified component properties.\r\n * Can be a custom event, or any of the standard events.\r\n * @param {Event} eventProp - Additional parameters to pass on to the event properties\r\n * @param {Function} successHandler - this function will invoke after event successfully triggered\r\n * @param {Function} errorHandler - this function will invoke after event if it failured to call.\r\n * @returns {void} ?\r\n */\r\n Base.prototype.trigger = function (eventName, eventProp, successHandler, errorHandler) {\r\n var _this = this;\r\n if (this.isDestroyed !== true) {\r\n var prevDetection = this.isProtectedOnChange;\r\n this.isProtectedOnChange = false;\r\n var data = this.modelObserver.notify(eventName, eventProp, successHandler, errorHandler);\r\n if (isColEName.test(eventName)) {\r\n var handler = getValue(eventName, this);\r\n if (handler) {\r\n var blazor = 'Blazor';\r\n if (window[blazor]) {\r\n var promise = handler.call(this, eventProp);\r\n if (promise && typeof promise.then === 'function') {\r\n if (!successHandler) {\r\n data = promise;\r\n }\r\n else {\r\n promise.then(function (data) {\r\n if (successHandler) {\r\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ?\r\n JSON.parse(data) : data;\r\n successHandler.call(_this, data);\r\n }\r\n }).catch(function (data) {\r\n if (errorHandler) {\r\n data = typeof data === 'string' && _this.modelObserver.isJson(data) ? JSON.parse(data) : data;\r\n errorHandler.call(_this, data);\r\n }\r\n });\r\n }\r\n }\r\n else if (successHandler) {\r\n successHandler.call(this, eventProp);\r\n }\r\n }\r\n else {\r\n handler.call(this, eventProp);\r\n if (successHandler) {\r\n successHandler.call(this, eventProp);\r\n }\r\n }\r\n }\r\n else if (successHandler) {\r\n successHandler.call(this, eventProp);\r\n }\r\n }\r\n this.isProtectedOnChange = prevDetection;\r\n return data;\r\n }\r\n };\r\n /**\r\n * To maintain instance in base class\r\n *\r\n * @returns {void} ?\r\n */\r\n Base.prototype.addInstance = function () {\r\n // Add module class to the root element\r\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\r\n addClass([this.element], ['e-lib', moduleClass]);\r\n if (!isNullOrUndefined(this.element.ej2_instances)) {\r\n this.element.ej2_instances.push(this);\r\n }\r\n else {\r\n setValue('ej2_instances', [this], this.element);\r\n }\r\n };\r\n /**\r\n * To remove the instance from the element\r\n *\r\n * @returns {void} ?\r\n */\r\n Base.prototype.destroy = function () {\r\n var _this = this;\r\n // eslint-disable-next-line\r\n this.element.ej2_instances =\r\n this.element.ej2_instances.filter(function (i) { return i !== _this; });\r\n removeClass([this.element], ['e-' + this.getModuleName()]);\r\n if (this.element.ej2_instances.length === 0) {\r\n // Remove module class from the root element\r\n removeClass([this.element], ['e-lib']);\r\n }\r\n this.clearChanges();\r\n this.modelObserver.destroy();\r\n this.isDestroyed = true;\r\n };\r\n return Base;\r\n}());\r\nexport { Base };\r\n/**\r\n * Global function to get the component instance from the rendered element.\r\n *\r\n * @param {HTMLElement} elem Specifies the HTMLElement or element id string.\r\n * @param {string} comp Specifies the component module name or Component.\r\n * @returns {any} ?\r\n */\r\n// tslint:disable-next-line:no-any\r\nexport function getComponent(elem, comp) {\r\n var instance;\r\n var i;\r\n var ele = typeof elem === 'string' ? document.getElementById(elem) : elem;\r\n for (i = 0; i < ele.ej2_instances.length; i++) {\r\n instance = ele.ej2_instances[i];\r\n if (typeof comp === 'string') {\r\n var compName = instance.getModuleName();\r\n if (comp === compName) {\r\n return instance;\r\n }\r\n }\r\n else {\r\n // tslint:disable-next-line:no-any\r\n if (instance instanceof comp) {\r\n return instance;\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\n/**\r\n * Function to remove the child instances.\r\n *\r\n * @param {HTMLElement} element ?\r\n * @return {void}\r\n * @private\r\n */\r\n// tslint:disable-next-line:no-any\r\nexport function removeChildInstance(element) {\r\n // tslint:disable-next-line:no-any\r\n var childEle = [].slice.call(element.getElementsByClassName('e-control'));\r\n for (var i = 0; i < childEle.length; i++) {\r\n var compName = childEle[i].classList[1].split('e-')[1];\r\n // tslint:disable-next-line:no-any\r\n var compInstance = getComponent(childEle[i], compName);\r\n if (!isUndefined(compInstance)) {\r\n compInstance.destroy();\r\n }\r\n }\r\n}\r\n","import { isUndefined } from './util';\r\nvar REGX_MOBILE = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|mobile/i;\r\nvar REGX_IE = /msie|trident/i;\r\nvar REGX_IE11 = /Trident\\/7\\./;\r\nvar REGX_IOS = /(ipad|iphone|ipod touch)/i;\r\nvar REGX_IOS7 = /(ipad|iphone|ipod touch);.*os 7_\\d|(ipad|iphone|ipod touch);.*os 8_\\d/i;\r\nvar REGX_ANDROID = /android/i;\r\nvar REGX_WINDOWS = /trident|windows phone|edge/i;\r\nvar REGX_VERSION = /(version)[ /]([\\w.]+)/i;\r\nvar REGX_BROWSER = {\r\n OPERA: /(opera|opr)(?:.*version|)[ /]([\\w.]+)/i,\r\n EDGE: /(edge)(?:.*version|)[ /]([\\w.]+)/i,\r\n CHROME: /(chrome|crios)[ /]([\\w.]+)/i,\r\n PANTHOMEJS: /(phantomjs)[ /]([\\w.]+)/i,\r\n SAFARI: /(safari)[ /]([\\w.]+)/i,\r\n WEBKIT: /(webkit)[ /]([\\w.]+)/i,\r\n MSIE: /(msie|trident) ([\\w.]+)/i,\r\n MOZILLA: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\r\n};\r\n/* istanbul ignore else */\r\nif (typeof window !== 'undefined') {\r\n window.browserDetails = window.browserDetails || {};\r\n}\r\n/**\r\n * Get configuration details for Browser\r\n *\r\n * @private\r\n */\r\nvar Browser = /** @class */ (function () {\r\n function Browser() {\r\n }\r\n Browser.extractBrowserDetail = function () {\r\n var browserInfo = { culture: {} };\r\n var keys = Object.keys(REGX_BROWSER);\r\n var clientInfo = [];\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n clientInfo = Browser.userAgent.match(REGX_BROWSER[key]);\r\n if (clientInfo) {\r\n browserInfo.name = (clientInfo[1].toLowerCase() === 'opr' ? 'opera' : clientInfo[1].toLowerCase());\r\n browserInfo.name = (clientInfo[1].toLowerCase() === 'crios' ? 'chrome' : browserInfo.name);\r\n browserInfo.version = clientInfo[2];\r\n browserInfo.culture.name = browserInfo.culture.language = navigator.language;\r\n // eslint-disable-next-line\r\n if (!!Browser.userAgent.match(REGX_IE11)) {\r\n browserInfo.name = 'msie';\r\n break;\r\n }\r\n var version = Browser.userAgent.match(REGX_VERSION);\r\n if (browserInfo.name === 'safari' && version) {\r\n browserInfo.version = version[2];\r\n }\r\n break;\r\n }\r\n }\r\n return browserInfo;\r\n };\r\n /**\r\n * To get events from the browser\r\n *\r\n * @param {string} event - type of event triggered.\r\n * @returns {boolean}\r\n */\r\n Browser.getEvent = function (event) {\r\n // eslint-disable-next-line\r\n var events = {\r\n start: {\r\n isPointer: 'pointerdown', isTouch: 'touchstart', isDevice: 'mousedown'\r\n },\r\n move: {\r\n isPointer: 'pointermove', isTouch: 'touchmove', isDevice: 'mousemove'\r\n },\r\n end: {\r\n isPointer: 'pointerup', isTouch: 'touchend', isDevice: 'mouseup'\r\n },\r\n cancel: {\r\n isPointer: 'pointercancel', isTouch: 'touchcancel', isDevice: 'mouseleave'\r\n }\r\n };\r\n return (Browser.isPointer ? events[event].isPointer :\r\n (Browser.isTouch ? events[event].isTouch + (!Browser.isDevice ? ' ' + events[event].isDevice : '')\r\n : events[event].isDevice));\r\n };\r\n /**\r\n * To get the Touch start event from browser\r\n *\r\n * @returns {string}\r\n */\r\n Browser.getTouchStartEvent = function () {\r\n return Browser.getEvent('start');\r\n };\r\n /**\r\n * To get the Touch end event from browser\r\n *\r\n * @returns {string}\r\n */\r\n Browser.getTouchEndEvent = function () {\r\n return Browser.getEvent('end');\r\n };\r\n /**\r\n * To get the Touch move event from browser\r\n *\r\n * @returns {string}\r\n */\r\n Browser.getTouchMoveEvent = function () {\r\n return Browser.getEvent('move');\r\n };\r\n /**\r\n * To cancel the touch event from browser\r\n *\r\n * @returns {string}\r\n */\r\n Browser.getTouchCancelEvent = function () {\r\n return Browser.getEvent('cancel');\r\n };\r\n /**\r\n * To get the value based on provided key and regX\r\n *\r\n * @param {string} key ?\r\n * @param {RegExp} regX ?\r\n * @returns {Object} ?\r\n */\r\n Browser.getValue = function (key, regX) {\r\n var browserDetails = window.browserDetails;\r\n if ('undefined' === typeof browserDetails[key]) {\r\n return browserDetails[key] = regX.test(Browser.userAgent);\r\n }\r\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 && Browser.isTouch === true) {\r\n browserDetails['isIos'] = true;\r\n browserDetails['isDevice'] = true;\r\n browserDetails['isTouch'] = true;\r\n browserDetails['isPointer'] = true;\r\n }\r\n return browserDetails[key];\r\n };\r\n Object.defineProperty(Browser, \"userAgent\", {\r\n get: function () {\r\n return Browser.uA;\r\n },\r\n //Properties\r\n /**\r\n * Property specifies the userAgent of the browser. Default userAgent value is based on the browser.\r\n * Also we can set our own userAgent.\r\n *\r\n * @param {string} uA ?\r\n */\r\n set: function (uA) {\r\n Browser.uA = uA;\r\n window.browserDetails = {};\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"info\", {\r\n //Read Only Properties\r\n /**\r\n * Property is to get the browser information like Name, Version and Language\r\n *\r\n * @returns {BrowserInfo} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.info)) {\r\n return window.browserDetails.info = Browser.extractBrowserDetail();\r\n }\r\n return window.browserDetails.info;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isIE\", {\r\n /**\r\n * Property is to get whether the userAgent is based IE.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isIE', REGX_IE);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isTouch\", {\r\n /**\r\n * Property is to get whether the browser has touch support.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.isTouch)) {\r\n return (window.browserDetails.isTouch =\r\n ('ontouchstart' in window.navigator) ||\r\n (window &&\r\n window.navigator &&\r\n (window.navigator.maxTouchPoints > 0)) || ('ontouchstart' in window));\r\n }\r\n return window.browserDetails.isTouch;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isPointer\", {\r\n /**\r\n * Property is to get whether the browser has Pointer support.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.isPointer)) {\r\n return window.browserDetails.isPointer = ('pointerEnabled' in window.navigator);\r\n }\r\n return window.browserDetails.isPointer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isMSPointer\", {\r\n /**\r\n * Property is to get whether the browser has MSPointer support.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.isMSPointer)) {\r\n return window.browserDetails.isMSPointer = ('msPointerEnabled' in window.navigator);\r\n }\r\n return window.browserDetails.isMSPointer;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isDevice\", {\r\n /**\r\n * Property is to get whether the userAgent is device based.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isDevice', REGX_MOBILE);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isIos\", {\r\n /**\r\n * Property is to get whether the userAgent is IOS.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isIos', REGX_IOS);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isIos7\", {\r\n /**\r\n * Property is to get whether the userAgent is Ios7.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isIos7', REGX_IOS7);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isAndroid\", {\r\n /**\r\n * Property is to get whether the userAgent is Android.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isAndroid', REGX_ANDROID);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isWebView\", {\r\n /**\r\n * Property is to identify whether application ran in web view.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.isWebView)) {\r\n window.browserDetails.isWebView = !(isUndefined(window.cordova) && isUndefined(window.PhoneGap)\r\n && isUndefined(window.phonegap) && window.forge !== 'object');\r\n return window.browserDetails.isWebView;\r\n }\r\n return window.browserDetails.isWebView;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"isWindows\", {\r\n /**\r\n * Property is to get whether the userAgent is Windows.\r\n *\r\n * @returns {boolean} ?\r\n */\r\n get: function () {\r\n return Browser.getValue('isWindows', REGX_WINDOWS);\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"touchStartEvent\", {\r\n /**\r\n * Property is to get the touch start event. It returns event name based on browser.\r\n *\r\n * @returns {string} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.touchStartEvent)) {\r\n return window.browserDetails.touchStartEvent = Browser.getTouchStartEvent();\r\n }\r\n return window.browserDetails.touchStartEvent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"touchMoveEvent\", {\r\n /**\r\n * Property is to get the touch move event. It returns event name based on browser.\r\n *\r\n * @returns {string} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.touchMoveEvent)) {\r\n return window.browserDetails.touchMoveEvent = Browser.getTouchMoveEvent();\r\n }\r\n return window.browserDetails.touchMoveEvent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"touchEndEvent\", {\r\n /**\r\n * Property is to get the touch end event. It returns event name based on browser.\r\n *\r\n * @returns {string} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.touchEndEvent)) {\r\n return window.browserDetails.touchEndEvent = Browser.getTouchEndEvent();\r\n }\r\n return window.browserDetails.touchEndEvent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(Browser, \"touchCancelEvent\", {\r\n /**\r\n * Property is to cancel the touch end event.\r\n *\r\n * @returns {string} ?\r\n */\r\n get: function () {\r\n if (isUndefined(window.browserDetails.touchCancelEvent)) {\r\n return window.browserDetails.touchCancelEvent = Browser.getTouchCancelEvent();\r\n }\r\n return window.browserDetails.touchCancelEvent;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /* istanbul ignore next */\r\n Browser.uA = typeof navigator !== 'undefined' ? navigator.userAgent : '';\r\n return Browser;\r\n}());\r\nexport { Browser };\r\n","import { getValue, setValue, merge, isBlazor } from './util';\r\nimport { Base } from './base';\r\n/**\r\n * To detect the changes for inner properties.\r\n *\r\n * @private\r\n */\r\nvar ChildProperty = /** @class */ (function () {\r\n function ChildProperty(parent, propName, defaultValue, isArray) {\r\n this.isComplexArraySetter = false;\r\n this.properties = {};\r\n this.changedProperties = {};\r\n this.childChangedProperties = {};\r\n this.oldProperties = {};\r\n // eslint-disable-next-line\r\n this.finalUpdate = function () { };\r\n this.callChildDataBind = getValue('callChildDataBind', Base);\r\n this.parentObj = parent;\r\n this.controlParent = this.parentObj.controlParent || this.parentObj;\r\n this.propName = propName;\r\n this.isParentArray = isArray;\r\n this.setProperties(defaultValue, true);\r\n }\r\n /**\r\n * Updates the property changes\r\n *\r\n * @param {boolean} val ?\r\n * @param {string} propName ?\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.updateChange = function (val, propName) {\r\n if (val === true) {\r\n this.parentObj.childChangedProperties[propName] = val;\r\n }\r\n else {\r\n delete this.parentObj.childChangedProperties[propName];\r\n }\r\n if (this.parentObj.updateChange) {\r\n this.parentObj.updateChange(val, this.parentObj.propName);\r\n }\r\n };\r\n /**\r\n * Updates time out duration\r\n *\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.updateTimeOut = function () {\r\n if (this.parentObj.updateTimeOut) {\r\n this.parentObj.finalUpdate();\r\n this.parentObj.updateTimeOut();\r\n }\r\n else {\r\n var changeTime_1 = setTimeout(this.parentObj.dataBind.bind(this.parentObj));\r\n var clearUpdate = function () {\r\n clearTimeout(changeTime_1);\r\n };\r\n this.finalUpdate = clearUpdate;\r\n }\r\n };\r\n /**\r\n * Clears changed properties\r\n *\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.clearChanges = function () {\r\n this.finalUpdate();\r\n this.updateChange(false, this.propName);\r\n this.oldProperties = {};\r\n this.changedProperties = {};\r\n };\r\n /**\r\n * Set property changes\r\n *\r\n * @param {Object} prop ?\r\n * @param {boolean} muteOnChange ?\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.setProperties = function (prop, muteOnChange) {\r\n if (muteOnChange === true) {\r\n merge(this, prop);\r\n this.updateChange(false, this.propName);\r\n this.clearChanges();\r\n }\r\n else {\r\n merge(this, prop);\r\n }\r\n };\r\n /**\r\n * Binds data\r\n *\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.dataBind = function () {\r\n this.callChildDataBind(this.childChangedProperties, this);\r\n if (this.isParentArray) {\r\n var curIndex = this.parentObj[this.propName].indexOf(this);\r\n if (Object.keys(this.changedProperties).length) {\r\n setValue(this.propName + '.' + curIndex, this.changedProperties, this.parentObj.changedProperties);\r\n setValue(this.propName + '.' + curIndex, this.oldProperties, this.parentObj.oldProperties);\r\n }\r\n }\r\n else {\r\n this.parentObj.changedProperties[this.propName] = this.changedProperties;\r\n this.parentObj.oldProperties[this.propName] = this.oldProperties;\r\n }\r\n this.clearChanges();\r\n };\r\n /**\r\n * Saves changes to newer values\r\n *\r\n * @param {string} key ?\r\n * @param {Object} newValue ?\r\n * @param {Object} oldValue ?\r\n * @param {boolean} restrictServerDataBind ?\r\n * @returns {void} ?\r\n */\r\n ChildProperty.prototype.saveChanges = function (key, newValue, oldValue, restrictServerDataBind) {\r\n if (this.controlParent.isProtectedOnChange) {\r\n return;\r\n }\r\n if (!restrictServerDataBind) {\r\n this.serverDataBind(key, newValue, true);\r\n }\r\n this.oldProperties[key] = oldValue;\r\n this.changedProperties[key] = newValue;\r\n this.updateChange(true, this.propName);\r\n this.finalUpdate();\r\n this.updateTimeOut();\r\n };\r\n ChildProperty.prototype.serverDataBind = function (key, value, isSaveChanges, action) {\r\n if (isBlazor() && !this.parentObj.isComplexArraySetter) {\r\n var parent_1;\r\n var newChanges = {};\r\n var parentKey = isSaveChanges ? this.getParentKey(true) + '.' + key : key;\r\n /* istanbul ignore else */\r\n if (parentKey.indexOf('.') !== -1) {\r\n var complexKeys = parentKey.split('.');\r\n parent_1 = newChanges;\r\n for (var i = 0; i < complexKeys.length; i++) {\r\n var isFinal = i === complexKeys.length - 1;\r\n parent_1[complexKeys[i]] = isFinal ? value : {};\r\n parent_1 = isFinal ? parent_1 : parent_1[complexKeys[i]];\r\n }\r\n }\r\n else {\r\n newChanges[parentKey] = {};\r\n parent_1 = newChanges[parentKey];\r\n newChanges[parentKey][key] = value;\r\n }\r\n /* istanbul ignore next */\r\n if (this.isParentArray) {\r\n var actionProperty = 'ejsAction';\r\n parent_1[actionProperty] = action ? action : 'none';\r\n }\r\n this.controlParent.serverDataBind(newChanges);\r\n }\r\n };\r\n ChildProperty.prototype.getParentKey = function (isSaveChanges) {\r\n // eslint-disable-next-line\r\n var index = '';\r\n var propName = this.propName;\r\n /* istanbul ignore next */\r\n if (this.isParentArray) {\r\n index = this.parentObj[this.propName].indexOf(this);\r\n var valueLength = this.parentObj[this.propName].length;\r\n valueLength = isSaveChanges ? valueLength : (valueLength > 0 ? valueLength - 1 : 0);\r\n index = index !== -1 ? '-' + index : '-' + valueLength;\r\n propName = propName + index;\r\n }\r\n if (this.controlParent !== this.parentObj) {\r\n propName = this.parentObj.getParentKey() + '.' + this.propName + index;\r\n }\r\n return propName;\r\n };\r\n return ChildProperty;\r\n}());\r\nexport { ChildProperty };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { isUndefined, getValue, isNullOrUndefined, setValue, uniqueID, isBlazor } from './util';\r\nimport { ModuleLoader } from './module-loader';\r\nimport { Base } from './base';\r\nimport { Observer } from './observer';\r\nimport { ChildProperty } from './child-property';\r\nimport { Property, NotifyPropertyChanges } from './notify-property-change';\r\nimport { onIntlChange, rightToLeft, defaultCulture } from './internationalization';\r\nimport { createElement, addClass, removeClass, select } from './dom';\r\nvar componentCount = 0;\r\nvar lastPageID;\r\nvar lastHistoryLen = 0;\r\nexport var versionBasedStatePersistence = false;\r\n/**\r\n * To enable or disable version based statePersistence functionality for all components globally.\r\n *\r\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable versionBasedStatePersistence option.\r\n * @returns {void}\r\n */\r\nexport function enableVersionBasedPersistence(status) {\r\n versionBasedStatePersistence = status;\r\n}\r\n/**\r\n * Base class for all Essential JavaScript components\r\n */\r\nvar Component = /** @class */ (function (_super) {\r\n __extends(Component, _super);\r\n /**\r\n * Initialize the constructor for component base\r\n *\r\n * @param {Object} options ?\r\n * @param {string} selector ?\r\n */\r\n function Component(options, selector) {\r\n var _this = _super.call(this, options, selector) || this;\r\n _this.randomId = uniqueID();\r\n /**\r\n * string template option for Blazor template rendering\r\n *\r\n * @private\r\n */\r\n _this.isStringTemplate = false;\r\n _this.needsID = false;\r\n _this.isReactHybrid = false;\r\n if (isNullOrUndefined(_this.enableRtl)) {\r\n _this.setProperties({ 'enableRtl': rightToLeft }, true);\r\n }\r\n if (isNullOrUndefined(_this.locale)) {\r\n _this.setProperties({ 'locale': defaultCulture }, true);\r\n }\r\n _this.moduleLoader = new ModuleLoader(_this);\r\n _this.localObserver = new Observer(_this);\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n onIntlChange.on('notifyExternalChange', _this.detectFunction, _this, _this.randomId);\r\n if (!isUndefined(selector)) {\r\n _this.appendTo();\r\n }\r\n return _this;\r\n }\r\n Component.prototype.requiredModules = function () {\r\n return [];\r\n };\r\n /**\r\n * Destroys the sub modules while destroying the widget\r\n *\r\n * @returns {void} ?\r\n */\r\n Component.prototype.destroy = function () {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n if (this.enablePersistence) {\r\n this.setPersistData();\r\n }\r\n this.localObserver.destroy();\r\n if (this.refreshing) {\r\n return;\r\n }\r\n removeClass([this.element], ['e-control']);\r\n this.trigger('destroyed', { cancel: false });\r\n _super.prototype.destroy.call(this);\r\n this.moduleLoader.clean();\r\n onIntlChange.off('notifyExternalChange', this.detectFunction, this.randomId);\r\n };\r\n /**\r\n * Applies all the pending property changes and render the component again.\r\n *\r\n * @returns {void} ?\r\n */\r\n Component.prototype.refresh = function () {\r\n this.refreshing = true;\r\n this.moduleLoader.clean();\r\n this.destroy();\r\n this.clearChanges();\r\n this.localObserver = new Observer(this);\r\n this.preRender();\r\n this.injectModules();\r\n this.render();\r\n this.refreshing = false;\r\n };\r\n Component.prototype.accessMount = function () {\r\n if (this.mount && !this.isReactHybrid) {\r\n this.mount();\r\n }\r\n };\r\n /**\r\n * Returns the route element of the component\r\n *\r\n * @returns {HTMLElement} ?\r\n */\r\n Component.prototype.getRootElement = function () {\r\n if (this.isReactHybrid) {\r\n // eslint-disable-next-line\r\n return this.actualElement;\r\n }\r\n else {\r\n return this.element;\r\n }\r\n };\r\n /**\r\n * Returns the persistence data for component\r\n *\r\n * @returns {any} ?\r\n */\r\n // eslint-disable-next-line\r\n Component.prototype.getLocalData = function () {\r\n var eleId = this.getModuleName() + this.element.id;\r\n if (versionBasedStatePersistence) {\r\n return window.localStorage.getItem(eleId + this.ej2StatePersistenceVersion);\r\n }\r\n else {\r\n return window.localStorage.getItem(eleId);\r\n }\r\n };\r\n /**\r\n * Appends the control within the given HTML element\r\n *\r\n * @param {string | HTMLElement} selector - Target element where control needs to be appended\r\n * @returns {void} ?\r\n */\r\n Component.prototype.appendTo = function (selector) {\r\n if (!isNullOrUndefined(selector) && typeof (selector) === 'string') {\r\n this.element = select(selector, document);\r\n }\r\n else if (!isNullOrUndefined(selector)) {\r\n this.element = selector;\r\n }\r\n if (!isNullOrUndefined(this.element)) {\r\n var moduleClass = 'e-' + this.getModuleName().toLowerCase();\r\n addClass([this.element], ['e-control', moduleClass]);\r\n this.isProtectedOnChange = false;\r\n if (this.needsID && !this.element.id) {\r\n this.element.id = this.getUniqueID(this.getModuleName());\r\n }\r\n if (this.enablePersistence) {\r\n this.mergePersistData();\r\n window.addEventListener('unload', this.setPersistData.bind(this));\r\n }\r\n var inst = getValue('ej2_instances', this.element);\r\n if (!inst || inst.indexOf(this) === -1) {\r\n _super.prototype.addInstance.call(this);\r\n }\r\n this.preRender();\r\n this.injectModules();\r\n this.render();\r\n if (!this.mount) {\r\n this.trigger('created');\r\n }\r\n else {\r\n this.accessMount();\r\n }\r\n }\r\n };\r\n /**\r\n * It is used to process the post rendering functionalities to a component.\r\n *\r\n * @param {Node} wrapperElement ?\r\n * @returns {void} ?\r\n */\r\n Component.prototype.renderComplete = function (wrapperElement) {\r\n if (isBlazor()) {\r\n var sfBlazor = 'sfBlazor';\r\n // eslint-disable-next-line\r\n window[sfBlazor].renderComplete(this.element, wrapperElement);\r\n }\r\n this.isRendered = true;\r\n };\r\n /**\r\n * When invoked, applies the pending property changes immediately to the component.\r\n *\r\n * @returns {void} ?\r\n */\r\n Component.prototype.dataBind = function () {\r\n this.injectModules();\r\n _super.prototype.dataBind.call(this);\r\n };\r\n /**\r\n * Attach one or more event handler to the current component context.\r\n * It is used for internal handling event internally within the component only.\r\n *\r\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\r\n * @param {Function} handler - optional parameter Specifies the handler to run when the event occurs\r\n * @param {Object} context - optional parameter Specifies the context to be bind in the handler.\r\n * @returns {void} ?\r\n * @private\r\n */\r\n Component.prototype.on = function (event, handler, context) {\r\n if (typeof event === 'string') {\r\n this.localObserver.on(event, handler, context);\r\n }\r\n else {\r\n for (var _i = 0, event_1 = event; _i < event_1.length; _i++) {\r\n var arg = event_1[_i];\r\n this.localObserver.on(arg.event, arg.handler, arg.context);\r\n }\r\n }\r\n };\r\n /**\r\n * To remove one or more event handler that has been attached with the on() method.\r\n *\r\n * @param {BoundOptions[]| string} event - It is optional type either to Set the collection of event list or the eventName.\r\n * @param {Function} handler - optional parameter Specifies the function to run when the event occurs\r\n * @returns {void} ?\r\n * @private\r\n */\r\n Component.prototype.off = function (event, handler) {\r\n if (typeof event === 'string') {\r\n this.localObserver.off(event, handler);\r\n }\r\n else {\r\n for (var _i = 0, event_2 = event; _i < event_2.length; _i++) {\r\n var arg = event_2[_i];\r\n this.localObserver.off(arg.event, arg.handler);\r\n }\r\n }\r\n };\r\n /**\r\n * To notify the handlers in the specified event.\r\n *\r\n * @param {string} property - Specifies the event to be notify.\r\n * @param {Object} argument - Additional parameters to pass while calling the handler.\r\n * @returns {void} ?\r\n * @private\r\n */\r\n Component.prototype.notify = function (property, argument) {\r\n if (this.isDestroyed !== true) {\r\n this.localObserver.notify(property, argument);\r\n }\r\n };\r\n /**\r\n * Get injected modules\r\n *\r\n * @returns {Function} ?\r\n * @private\r\n */\r\n Component.prototype.getInjectedModules = function () {\r\n return this.injectedModules;\r\n };\r\n /**\r\n * Dynamically injects the required modules to the component.\r\n *\r\n * @param {Function} moduleList ?\r\n * @returns {void} ?\r\n */\r\n Component.Inject = function () {\r\n var moduleList = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n moduleList[_i] = arguments[_i];\r\n }\r\n if (!this.prototype.injectedModules) {\r\n this.prototype.injectedModules = [];\r\n }\r\n for (var i = 0; i < moduleList.length; i++) {\r\n if (this.prototype.injectedModules.indexOf(moduleList[i]) === -1) {\r\n this.prototype.injectedModules.push(moduleList[i]);\r\n }\r\n }\r\n };\r\n /**\r\n * This is a instance method to create an element.\r\n *\r\n * @param {string} tagName ?\r\n * @param {ElementProperties} prop ?\r\n * @param {boolean} isVDOM ?\r\n * @returns {any} ?\r\n * @private\r\n */\r\n // eslint-disable-next-line\r\n Component.prototype.createElement = function (tagName, prop, isVDOM) {\r\n return createElement(tagName, prop);\r\n };\r\n /**\r\n *\r\n * @param {Function} handler - handler to be triggered after state Updated.\r\n * @param {any} argument - Arguments to be passed to caller.\r\n * @returns {void} .\r\n * @private\r\n */\r\n // eslint-disable-next-line\r\n Component.prototype.triggerStateChange = function (handler, argument) {\r\n if (this.isReactHybrid) {\r\n // eslint-disable-next-line\r\n this.setState();\r\n this.currentContext = { calls: handler, args: argument };\r\n }\r\n };\r\n // tslint: enable: no-any\r\n Component.prototype.injectModules = function () {\r\n if (this.injectedModules && this.injectedModules.length) {\r\n this.moduleLoader.inject(this.requiredModules(), this.injectedModules);\r\n }\r\n };\r\n Component.prototype.detectFunction = function (args) {\r\n var prop = Object.keys(args);\r\n if (prop.length) {\r\n this[prop[0]] = args[prop[0]];\r\n }\r\n };\r\n Component.prototype.mergePersistData = function () {\r\n var data;\r\n if (versionBasedStatePersistence) {\r\n data = window.localStorage.getItem(this.getModuleName() + this.element.id + this.ej2StatePersistenceVersion);\r\n }\r\n else {\r\n data = window.localStorage.getItem(this.getModuleName() + this.element.id);\r\n }\r\n if (!(isNullOrUndefined(data) || (data === ''))) {\r\n this.setProperties(JSON.parse(data), true);\r\n }\r\n };\r\n Component.prototype.setPersistData = function () {\r\n if (!this.isDestroyed) {\r\n if (versionBasedStatePersistence) {\r\n window.localStorage.setItem(this.getModuleName() +\r\n this.element.id + this.ej2StatePersistenceVersion, this.getPersistData());\r\n }\r\n else {\r\n window.localStorage.setItem(this.getModuleName() + this.element.id, this.getPersistData());\r\n }\r\n }\r\n };\r\n //tslint:disable-next-line\r\n Component.prototype.renderReactTemplates = function () {\r\n //No Code\r\n };\r\n // eslint-disable-next-line\r\n Component.prototype.clearTemplate = function (templateName, index) {\r\n //No Code\r\n };\r\n Component.prototype.getUniqueID = function (definedName) {\r\n if (this.isHistoryChanged()) {\r\n componentCount = 0;\r\n }\r\n lastPageID = this.pageID(location.href);\r\n lastHistoryLen = history.length;\r\n return definedName + '_' + lastPageID + '_' + componentCount++;\r\n };\r\n Component.prototype.pageID = function (url) {\r\n var hash = 0;\r\n if (url.length === 0) {\r\n return hash;\r\n }\r\n for (var i = 0; i < url.length; i++) {\r\n var char = url.charCodeAt(i);\r\n hash = ((hash << 5) - hash) + char;\r\n hash = hash & hash; // Convert to 32bit integer\r\n }\r\n return Math.abs(hash);\r\n };\r\n Component.prototype.isHistoryChanged = function () {\r\n return lastPageID !== this.pageID(location.href) || lastHistoryLen !== history.length;\r\n };\r\n Component.prototype.addOnPersist = function (options) {\r\n var _this = this;\r\n var persistObj = {};\r\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\r\n var key = options_1[_i];\r\n var objValue = void 0;\r\n // eslint-disable-next-line\r\n objValue = getValue(key, this);\r\n if (!isUndefined(objValue)) {\r\n setValue(key, this.getActualProperties(objValue), persistObj);\r\n }\r\n }\r\n return JSON.stringify(persistObj, function (key, value) {\r\n return _this.getActualProperties(value);\r\n });\r\n };\r\n Component.prototype.getActualProperties = function (obj) {\r\n if (obj instanceof ChildProperty) {\r\n return getValue('properties', obj);\r\n }\r\n else {\r\n return obj;\r\n }\r\n };\r\n Component.prototype.ignoreOnPersist = function (options) {\r\n return JSON.stringify(this.iterateJsonProperties(this.properties, options));\r\n };\r\n Component.prototype.iterateJsonProperties = function (obj, ignoreList) {\r\n var newObj = {};\r\n var _loop_1 = function (key) {\r\n if (ignoreList.indexOf(key) === -1) {\r\n // eslint-disable-next-line\r\n var value = obj[key];\r\n if (typeof value === 'object' && !(value instanceof Array)) {\r\n var newList = ignoreList.filter(function (str) {\r\n return new RegExp(key + '.').test(str);\r\n }).map(function (str) {\r\n return str.replace(key + '.', '');\r\n });\r\n newObj[key] = this_1.iterateJsonProperties(this_1.getActualProperties(value), newList);\r\n }\r\n else {\r\n newObj[key] = value;\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n _loop_1(key);\r\n }\r\n return newObj;\r\n };\r\n __decorate([\r\n Property(false)\r\n ], Component.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property()\r\n ], Component.prototype, \"enableRtl\", void 0);\r\n __decorate([\r\n Property()\r\n ], Component.prototype, \"locale\", void 0);\r\n Component = __decorate([\r\n NotifyPropertyChanges\r\n ], Component);\r\n return Component;\r\n}(Base));\r\nexport { Component };\r\n//Function handling for page navigation detection\r\n/* istanbul ignore next */\r\n(function () {\r\n if (typeof window !== 'undefined') {\r\n window.addEventListener('popstate', \r\n /* istanbul ignore next */\r\n function () {\r\n componentCount = 0;\r\n });\r\n }\r\n})();\r\n","/**\r\n * Functions related to dom operations.\r\n */\r\nimport { EventHandler } from './event-handler';\r\nimport { isNullOrUndefined, getValue, setValue, isObject, extend } from './util';\r\nvar SVG_REG = /^svg|^path|^g/;\r\n/**\r\n * Function to create Html element.\r\n *\r\n * @param {string} tagName - Name of the tag, id and class names.\r\n * @param {ElementProperties} properties - Object to set properties in the element.\r\n * @param {ElementProperties} properties.id - To set the id to the created element.\r\n * @param {ElementProperties} properties.className - To add classes to the element.\r\n * @param {ElementProperties} properties.innerHTML - To set the innerHTML to element.\r\n * @param {ElementProperties} properties.styles - To set the some custom styles to element.\r\n * @param {ElementProperties} properties.attrs - To set the attributes to element.\r\n * @returns {any} ?\r\n * @private\r\n */\r\nexport function createElement(tagName, properties) {\r\n var element = (SVG_REG.test(tagName) ? document.createElementNS('http://www.w3.org/2000/svg', tagName) : document.createElement(tagName));\r\n if (typeof (properties) === 'undefined') {\r\n return element;\r\n }\r\n element.innerHTML = (properties.innerHTML ? properties.innerHTML : '');\r\n if (properties.className !== undefined) {\r\n element.className = properties.className;\r\n }\r\n if (properties.id !== undefined) {\r\n element.id = properties.id;\r\n }\r\n if (properties.styles !== undefined) {\r\n element.setAttribute('style', properties.styles);\r\n }\r\n if (properties.attrs !== undefined) {\r\n attributes(element, properties.attrs);\r\n }\r\n return element;\r\n}\r\n/**\r\n * The function used to add the classes to array of elements\r\n *\r\n * @param {Element[]|NodeList} elements - An array of elements that need to add a list of classes\r\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\r\n * @returns {any} .\r\n * @private\r\n */\r\nexport function addClass(elements, classes) {\r\n var classList = getClassList(classes);\r\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\r\n var ele = _a[_i];\r\n for (var _b = 0, classList_1 = classList; _b < classList_1.length; _b++) {\r\n var className = classList_1[_b];\r\n if (isObject(ele)) {\r\n var curClass = getValue('attributes.className', ele);\r\n if (isNullOrUndefined(curClass)) {\r\n setValue('attributes.className', className, ele);\r\n }\r\n else if (!new RegExp('\\\\b' + className + '\\\\b', 'i').test(curClass)) {\r\n setValue('attributes.className', curClass + ' ' + className, ele);\r\n }\r\n }\r\n else {\r\n if (!ele.classList.contains(className)) {\r\n ele.classList.add(className);\r\n }\r\n }\r\n }\r\n }\r\n return elements;\r\n}\r\n/**\r\n * The function used to add the classes to array of elements\r\n *\r\n * @param {Element[]|NodeList} elements - An array of elements that need to remove a list of classes\r\n * @param {string|string[]} classes - String or array of string that need to add an individual element as a class\r\n * @returns {any} .\r\n * @private\r\n */\r\nexport function removeClass(elements, classes) {\r\n var classList = getClassList(classes);\r\n for (var _i = 0, _a = elements; _i < _a.length; _i++) {\r\n var ele = _a[_i];\r\n var flag = isObject(ele);\r\n var canRemove = flag ? getValue('attributes.className', ele) : ele.className !== '';\r\n if (canRemove) {\r\n for (var _b = 0, classList_2 = classList; _b < classList_2.length; _b++) {\r\n var className = classList_2[_b];\r\n if (flag) {\r\n var classes_1 = getValue('attributes.className', ele);\r\n var classArr = classes_1.split(' ');\r\n var index = classArr.indexOf(className);\r\n if (index !== -1) {\r\n classArr.splice(index, 1);\r\n }\r\n setValue('attributes.className', classArr.join(' '), ele);\r\n }\r\n else {\r\n ele.classList.remove(className);\r\n }\r\n }\r\n }\r\n }\r\n return elements;\r\n}\r\n/**\r\n * The function used to get classlist.\r\n *\r\n * @param {string | string[]} classes - An element the need to check visibility\r\n * @returns {string[]} ?\r\n * @private\r\n */\r\nfunction getClassList(classes) {\r\n var classList = [];\r\n if (typeof classes === 'string') {\r\n classList.push(classes);\r\n }\r\n else {\r\n classList = classes;\r\n }\r\n return classList;\r\n}\r\n/**\r\n * The function used to check element is visible or not.\r\n *\r\n * @param {Element|Node} element - An element the need to check visibility\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\nexport function isVisible(element) {\r\n var ele = element;\r\n return (ele.style.visibility === '' && ele.offsetWidth > 0);\r\n}\r\n/**\r\n * The function used to insert an array of elements into a first of the element.\r\n *\r\n * @param {Element[]|NodeList} fromElements - An array of elements that need to prepend.\r\n * @param {Element} toElement - An element that is going to prepend.\r\n * @param {boolean} isEval - ?\r\n * @returns {Element[] | NodeList} ?\r\n * @private\r\n */\r\nexport function prepend(fromElements, toElement, isEval) {\r\n var docFrag = document.createDocumentFragment();\r\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\r\n var ele = _a[_i];\r\n docFrag.appendChild(ele);\r\n }\r\n toElement.insertBefore(docFrag, toElement.firstElementChild);\r\n if (isEval) {\r\n executeScript(toElement);\r\n }\r\n return fromElements;\r\n}\r\n/**\r\n * The function used to insert an array of elements into last of the element.\r\n *\r\n * @param {Element[]|NodeList} fromElements - An array of elements that need to append.\r\n * @param {Element} toElement - An element that is going to prepend.\r\n * @param {boolean} isEval - ?\r\n * @returns {Element[] | NodeList} ?\r\n * @private\r\n */\r\nexport function append(fromElements, toElement, isEval) {\r\n var docFrag = document.createDocumentFragment();\r\n for (var _i = 0, _a = fromElements; _i < _a.length; _i++) {\r\n var ele = _a[_i];\r\n docFrag.appendChild(ele);\r\n }\r\n toElement.appendChild(docFrag);\r\n if (isEval) {\r\n executeScript(toElement);\r\n }\r\n return fromElements;\r\n}\r\n/**\r\n * The function is used to evaluate script from Ajax request\r\n *\r\n * @param {Element} ele - An element is going to evaluate the script\r\n * @returns {void} ?\r\n */\r\nfunction executeScript(ele) {\r\n var eleArray = ele.querySelectorAll('script');\r\n eleArray.forEach(function (element) {\r\n var script = document.createElement('script');\r\n script.text = element.innerHTML;\r\n document.head.appendChild(script);\r\n detach(script);\r\n });\r\n}\r\n/**\r\n * The function used to remove the element from parentnode\r\n *\r\n * @param {Element|Node|HTMLElement} element - An element that is going to detach from the Dom\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function detach(element) {\r\n var parentNode = element.parentNode;\r\n if (parentNode) {\r\n return parentNode.removeChild(element);\r\n }\r\n}\r\n/**\r\n * The function used to remove the element from Dom also clear the bounded events\r\n *\r\n * @param {Element|Node|HTMLElement} element - An element remove from the Dom\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function remove(element) {\r\n var parentNode = element.parentNode;\r\n EventHandler.clearEvents(element);\r\n parentNode.removeChild(element);\r\n}\r\n/**\r\n * The function helps to set multiple attributes to an element\r\n *\r\n * @param {Element|Node} element - An element that need to set attributes.\r\n * @param {string} attributes - JSON Object that is going to as attributes.\r\n * @returns {Element} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function attributes(element, attributes) {\r\n var keys = Object.keys(attributes);\r\n var ele = element;\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n if (isObject(ele)) {\r\n var iKey = key;\r\n if (key === 'tabindex') {\r\n iKey = 'tabIndex';\r\n }\r\n ele.attributes[iKey] = attributes[key];\r\n }\r\n else {\r\n ele.setAttribute(key, attributes[key]);\r\n }\r\n }\r\n return ele;\r\n}\r\n/**\r\n * The function selects the element from giving context.\r\n *\r\n * @param {string} selector - Selector string need fetch element\r\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\r\n * @param {boolean} needsVDOM ?\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function select(selector, context, needsVDOM) {\r\n if (context === void 0) { context = document; }\r\n selector = querySelectId(selector);\r\n return context.querySelector(selector);\r\n}\r\n/**\r\n * The function selects an array of element from the given context.\r\n *\r\n * @param {string} selector - Selector string need fetch element\r\n * @param {Document|Element} context - It is an optional type, That specifies a Dom context.\r\n * @param {boolean} needsVDOM ?\r\n * @returns {HTMLElement[]} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function selectAll(selector, context, needsVDOM) {\r\n if (context === void 0) { context = document; }\r\n selector = querySelectId(selector);\r\n var nodeList = context.querySelectorAll(selector);\r\n return nodeList;\r\n}\r\n/**\r\n * The function selects an id of element from the given context.\r\n *\r\n * @param {string} selector - Selector string need fetch element\r\n * @returns {string} ?\r\n * @private\r\n */\r\nfunction querySelectId(selector) {\r\n var charRegex = /(!|\"|\\$|%|&|'|\\(|\\)|\\*|\\/|:|;|<|=|\\?|@|\\]|\\^|`|{|}|\\||\\+|~)/g;\r\n if (selector.match(/#[0-9]/g) || selector.match(charRegex)) {\r\n var idList = selector.split(',');\r\n for (var i = 0; i < idList.length; i++) {\r\n var list = idList[i].split(' ');\r\n for (var j = 0; j < list.length; j++) {\r\n if (list[j].indexOf('#') > -1) {\r\n if (!list[j].match(/\\[.*\\]/)) {\r\n var splitId = list[j].split('#');\r\n if (splitId[1].match(/^\\d/) || splitId[1].match(charRegex)) {\r\n var setId = list[j].split('.');\r\n setId[0] = setId[0].replace(/#/, '[id=\\'') + '\\']';\r\n list[j] = setId.join('.');\r\n }\r\n }\r\n }\r\n }\r\n idList[i] = list.join(' ');\r\n }\r\n return idList.join(',');\r\n }\r\n return selector;\r\n}\r\n/**\r\n * Returns single closest parent element based on class selector.\r\n *\r\n * @param {Element} element - An element that need to find the closest element.\r\n * @param {string} selector - A classSelector of closest element.\r\n * @returns {Element} ?\r\n * @private\r\n */\r\nexport function closest(element, selector) {\r\n var el = element;\r\n if (typeof el.closest === 'function') {\r\n return el.closest(selector);\r\n }\r\n while (el && el.nodeType === 1) {\r\n if (matches(el, selector)) {\r\n return el;\r\n }\r\n el = el.parentNode;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns all sibling elements of the given element.\r\n *\r\n * @param {Element|Node} element - An element that need to get siblings.\r\n * @returns {Element[]} ?\r\n * @private\r\n */\r\nexport function siblings(element) {\r\n var siblings = [];\r\n var childNodes = Array.prototype.slice.call(element.parentNode.childNodes);\r\n for (var _i = 0, childNodes_1 = childNodes; _i < childNodes_1.length; _i++) {\r\n var curNode = childNodes_1[_i];\r\n if (curNode.nodeType === Node.ELEMENT_NODE && element !== curNode) {\r\n siblings.push(curNode);\r\n }\r\n }\r\n return siblings;\r\n}\r\n/**\r\n * set the value if not exist. Otherwise set the existing value\r\n *\r\n * @param {HTMLElement} element - An element to which we need to set value.\r\n * @param {string} property - Property need to get or set.\r\n * @param {string} value - value need to set.\r\n * @returns {string} ?\r\n * @private\r\n */\r\nexport function getAttributeOrDefault(element, property, value) {\r\n var attrVal;\r\n var isObj = isObject(element);\r\n if (isObj) {\r\n attrVal = getValue('attributes.' + property, element);\r\n }\r\n else {\r\n attrVal = element.getAttribute(property);\r\n }\r\n if (isNullOrUndefined(attrVal) && value) {\r\n if (!isObj) {\r\n element.setAttribute(property, value.toString());\r\n }\r\n else {\r\n element.attributes[property] = value;\r\n }\r\n attrVal = value;\r\n }\r\n return attrVal;\r\n}\r\n/**\r\n * Set the style attributes to Html element.\r\n *\r\n * @param {HTMLElement} element - Element which we want to set attributes\r\n * @param {any} attrs - Set the given attributes to element\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function setStyleAttribute(element, attrs) {\r\n if (attrs !== undefined) {\r\n Object.keys(attrs).forEach(function (key) {\r\n // eslint-disable-next-line\r\n element.style[key] = attrs[key];\r\n });\r\n }\r\n}\r\n/**\r\n * Method for add and remove classes to a dom element.\r\n *\r\n * @param {Element} element - Element for add and remove classes\r\n * @param {string[]} addClasses - List of classes need to be add to the element\r\n * @param {string[]} removeClasses - List of classes need to be remove from the element\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function classList(element, addClasses, removeClasses) {\r\n addClass([element], addClasses);\r\n removeClass([element], removeClasses);\r\n}\r\n/**\r\n * Method to check whether the element matches the given selector.\r\n *\r\n * @param {Element} element - Element to compare with the selector.\r\n * @param {string} selector - String selector which element will satisfy.\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function matches(element, selector) {\r\n // eslint-disable-next-line\r\n var matches = element.matches || element.msMatchesSelector || element.webkitMatchesSelector;\r\n if (matches) {\r\n return matches.call(element, selector);\r\n }\r\n else {\r\n return [].indexOf.call(document.querySelectorAll(selector), element) !== -1;\r\n }\r\n}\r\n/**\r\n * Method to get the html text from DOM.\r\n *\r\n * @param {HTMLElement} ele - Element to compare with the selector.\r\n * @param {string} innerHTML - String selector which element will satisfy.\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function includeInnerHTML(ele, innerHTML) {\r\n ele.innerHTML = innerHTML;\r\n}\r\n/**\r\n * Method to get the containsclass.\r\n *\r\n * @param {HTMLElement} ele - Element to compare with the selector.\r\n * @param {string} className - String selector which element will satisfy.\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function containsClass(ele, className) {\r\n if (isObject(ele)) {\r\n // eslint-disable-next-line\r\n return new RegExp('\\\\b' + className + '\\\\b', 'i').test(ele.attributes.className);\r\n }\r\n else {\r\n return ele.classList.contains(className);\r\n }\r\n}\r\n/**\r\n * Method to check whether the element matches the given selector.\r\n *\r\n * @param {Object} element - Element to compare with the selector.\r\n * @param {boolean} deep ?\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function cloneNode(element, deep) {\r\n if (isObject(element)) {\r\n if (deep) {\r\n return extend({}, {}, element, true);\r\n }\r\n }\r\n else {\r\n return element.cloneNode(deep);\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Base } from './base';\r\nimport { Browser } from './browser';\r\nimport { isVisible } from './dom';\r\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\r\nimport { EventHandler } from './event-handler';\r\nimport { ChildProperty } from './child-property';\r\nimport { select, closest, setStyleAttribute, addClass, createElement } from './dom';\r\nimport { extend, isUndefined, isNullOrUndefined, compareElementParent, isBlazor } from './util';\r\nvar defaultPosition = { left: 0, top: 0, bottom: 0, right: 0 };\r\nvar positionProp = ['offsetLeft', 'offsetTop'];\r\nvar axisMapper = ['x', 'y'];\r\nvar axisValueMapper = ['left', 'top'];\r\nvar isDraggedObject = { isDragged: false };\r\n/**\r\n * Specifies the position coordinates\r\n */\r\nvar Position = /** @class */ (function (_super) {\r\n __extends(Position, _super);\r\n function Position() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(0)\r\n ], Position.prototype, \"left\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Position.prototype, \"top\", void 0);\r\n return Position;\r\n}(ChildProperty));\r\nexport { Position };\r\n/**\r\n * Draggable Module provides support to enable draggable functionality in Dom Elements.\r\n * ```html\r\n *
    Draggable
    \r\n * \r\n * ```\r\n */\r\nvar Draggable = /** @class */ (function (_super) {\r\n __extends(Draggable, _super);\r\n function Draggable(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.dragLimit = Draggable_1.getDefaultPosition();\r\n _this.borderWidth = Draggable_1.getDefaultPosition();\r\n _this.padding = Draggable_1.getDefaultPosition();\r\n _this.diffX = 0;\r\n _this.prevLeft = 0;\r\n _this.prevTop = 0;\r\n _this.dragProcessStarted = false;\r\n /* tslint:disable no-any */\r\n _this.tapHoldTimer = 0;\r\n _this.externalInitialize = false;\r\n _this.diffY = 0;\r\n _this.parentScrollX = 0;\r\n _this.parentScrollY = 0;\r\n _this.droppables = {};\r\n _this.bind();\r\n return _this;\r\n }\r\n Draggable_1 = Draggable;\r\n Draggable.prototype.bind = function () {\r\n this.toggleEvents();\r\n if (Browser.isIE) {\r\n addClass([this.element], 'e-block-touch');\r\n }\r\n this.droppables[this.scope] = {};\r\n };\r\n Draggable.getDefaultPosition = function () {\r\n return extend({}, defaultPosition);\r\n };\r\n Draggable.prototype.toggleEvents = function (isUnWire) {\r\n var ele;\r\n if (!isUndefined(this.handle)) {\r\n ele = select(this.handle, this.element);\r\n }\r\n var handler = (this.enableTapHold && Browser.isDevice && Browser.isTouch) ? this.mobileInitialize : this.initialize;\r\n if (isUnWire) {\r\n EventHandler.remove(ele || this.element, Browser.touchStartEvent, handler);\r\n }\r\n else {\r\n EventHandler.add(ele || this.element, Browser.touchStartEvent, handler, this);\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Draggable.prototype.mobileInitialize = function (evt) {\r\n var _this = this;\r\n var target = evt.currentTarget;\r\n this.tapHoldTimer = setTimeout(function () {\r\n _this.externalInitialize = true;\r\n _this.removeTapholdTimer();\r\n _this.initialize(evt, target);\r\n }, this.tapHoldThreshold);\r\n EventHandler.add(document, Browser.touchMoveEvent, this.removeTapholdTimer, this);\r\n EventHandler.add(document, Browser.touchEndEvent, this.removeTapholdTimer, this);\r\n };\r\n /* istanbul ignore next */\r\n Draggable.prototype.removeTapholdTimer = function () {\r\n clearTimeout(this.tapHoldTimer);\r\n EventHandler.remove(document, Browser.touchMoveEvent, this.removeTapholdTimer);\r\n EventHandler.remove(document, Browser.touchEndEvent, this.removeTapholdTimer);\r\n };\r\n /* istanbul ignore next */\r\n Draggable.prototype.getScrollableParent = function (element, axis) {\r\n var scroll = { 'vertical': 'scrollHeight', 'horizontal': 'scrollWidth' };\r\n var client = { 'vertical': 'clientHeight', 'horizontal': 'clientWidth' };\r\n if (isNullOrUndefined(element)) {\r\n return null;\r\n }\r\n if (element[scroll[axis]] > element[client[axis]]) {\r\n if (axis === 'vertical' ? element.scrollTop > 0 : element.scrollLeft > 0) {\r\n if (axis === 'vertical') {\r\n this.parentScrollY = this.parentScrollY +\r\n (this.parentScrollY === 0 ? element.scrollTop : element.scrollTop - this.parentScrollY);\r\n this.tempScrollHeight = element.scrollHeight;\r\n }\r\n else {\r\n this.parentScrollX = this.parentScrollX +\r\n (this.parentScrollX === 0 ? element.scrollLeft : element.scrollLeft - this.parentScrollX);\r\n this.tempScrollWidth = element.scrollWidth;\r\n }\r\n if (!isNullOrUndefined(element)) {\r\n return this.getScrollableParent(element.parentNode, axis);\r\n }\r\n else {\r\n return element;\r\n }\r\n }\r\n else {\r\n return this.getScrollableParent(element.parentNode, axis);\r\n }\r\n }\r\n else {\r\n return this.getScrollableParent(element.parentNode, axis);\r\n }\r\n };\r\n Draggable.prototype.getScrollableValues = function () {\r\n this.parentScrollX = 0;\r\n this.parentScrollY = 0;\r\n var isModalDialog = this.element.classList.contains('e-dialog') && this.element.classList.contains('e-dlg-modal');\r\n var verticalScrollParent = this.getScrollableParent(this.element.parentNode, 'vertical');\r\n var horizontalScrollParent = this.getScrollableParent(this.element.parentNode, 'horizontal');\r\n };\r\n Draggable.prototype.initialize = function (evt, curTarget) {\r\n this.currentStateTarget = evt.target;\r\n if (this.isDragStarted()) {\r\n return;\r\n }\r\n else {\r\n this.isDragStarted(true);\r\n this.externalInitialize = false;\r\n }\r\n this.target = (evt.currentTarget || curTarget);\r\n this.dragProcessStarted = false;\r\n if (this.abort) {\r\n /* tslint:disable no-any */\r\n var abortSelectors = this.abort;\r\n if (typeof abortSelectors === 'string') {\r\n abortSelectors = [abortSelectors];\r\n }\r\n for (var i = 0; i < abortSelectors.length; i++) {\r\n if (!isNullOrUndefined(closest(evt.target, abortSelectors[i]))) {\r\n /* istanbul ignore next */\r\n if (this.isDragStarted()) {\r\n this.isDragStarted(true);\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n if (this.preventDefault && !isUndefined(evt.changedTouches) && evt.type !== 'touchstart') {\r\n evt.preventDefault();\r\n }\r\n this.element.setAttribute('aria-grabbed', 'true');\r\n var intCoord = this.getCoordinates(evt);\r\n this.initialPosition = { x: intCoord.pageX, y: intCoord.pageY };\r\n if (!this.clone) {\r\n var pos = this.element.getBoundingClientRect();\r\n this.getScrollableValues();\r\n if (evt.clientX === evt.pageX) {\r\n this.parentScrollX = 0;\r\n }\r\n if (evt.clientY === evt.pageY) {\r\n this.parentScrollY = 0;\r\n }\r\n this.relativeXPosition = intCoord.pageX - (pos.left + this.parentScrollX);\r\n this.relativeYPosition = intCoord.pageY - (pos.top + this.parentScrollY);\r\n }\r\n if (this.externalInitialize) {\r\n this.intDragStart(evt);\r\n }\r\n else {\r\n EventHandler.add(document, Browser.touchMoveEvent, this.intDragStart, this);\r\n EventHandler.add(document, Browser.touchEndEvent, this.intDestroy, this);\r\n }\r\n this.toggleEvents(true);\r\n if (evt.type !== 'touchstart' && this.isPreventSelect) {\r\n document.body.classList.add('e-prevent-select');\r\n }\r\n this.externalInitialize = false;\r\n EventHandler.trigger(document.documentElement, Browser.touchStartEvent, evt);\r\n };\r\n Draggable.prototype.intDragStart = function (evt) {\r\n this.removeTapholdTimer();\r\n var isChangeTouch = !isUndefined(evt.changedTouches);\r\n if (isChangeTouch && (evt.changedTouches.length !== 1)) {\r\n return;\r\n }\r\n if (isChangeTouch) {\r\n evt.preventDefault();\r\n }\r\n var intCordinate = this.getCoordinates(evt);\r\n var pos;\r\n var styleProp = getComputedStyle(this.element);\r\n this.margin = {\r\n left: parseInt(styleProp.marginLeft, 10),\r\n top: parseInt(styleProp.marginTop, 10),\r\n right: parseInt(styleProp.marginRight, 10),\r\n bottom: parseInt(styleProp.marginBottom, 10),\r\n };\r\n var element = this.element;\r\n if (this.clone && this.dragTarget) {\r\n var intClosest = closest(evt.target, this.dragTarget);\r\n if (!isNullOrUndefined(intClosest)) {\r\n element = intClosest;\r\n }\r\n }\r\n /* istanbul ignore next */\r\n if (this.isReplaceDragEle) {\r\n element = this.currentStateCheck(evt.target, element);\r\n }\r\n this.offset = this.calculateParentPosition(element);\r\n this.position = this.getMousePosition(evt, this.isDragScroll);\r\n var x = this.initialPosition.x - intCordinate.pageX;\r\n var y = this.initialPosition.y - intCordinate.pageY;\r\n var distance = Math.sqrt((x * x) + (y * y));\r\n if ((distance >= this.distance || this.externalInitialize)) {\r\n var ele = this.getHelperElement(evt);\r\n if (!ele || isNullOrUndefined(ele)) {\r\n return;\r\n }\r\n var dragTargetElement = this.helperElement = ele;\r\n this.parentClientRect = this.calculateParentPosition(dragTargetElement.offsetParent);\r\n if (this.dragStart) {\r\n var curTarget = this.getProperTargetElement(evt);\r\n var args = {\r\n event: evt,\r\n element: element,\r\n target: curTarget,\r\n bindEvents: isBlazor() ? this.bindDragEvents.bind(this) : null,\r\n dragElement: dragTargetElement\r\n };\r\n this.trigger('dragStart', args);\r\n }\r\n if (this.dragArea) {\r\n this.setDragArea();\r\n }\r\n else {\r\n this.dragLimit = { left: 0, right: 0, bottom: 0, top: 0 };\r\n this.borderWidth = { top: 0, left: 0 };\r\n }\r\n pos = { left: this.position.left - this.parentClientRect.left, top: this.position.top - this.parentClientRect.top };\r\n if (this.clone && !this.enableTailMode) {\r\n this.diffX = this.position.left - this.offset.left;\r\n this.diffY = this.position.top - this.offset.top;\r\n }\r\n this.getScrollableValues();\r\n // when drag element has margin-top\r\n var styles = getComputedStyle(element);\r\n var marginTop = parseFloat(styles.marginTop);\r\n /* istanbul ignore next */\r\n if (this.clone && marginTop !== 0) {\r\n pos.top += marginTop;\r\n }\r\n if (this.enableScrollHandler && !this.clone) {\r\n pos.top -= this.parentScrollY;\r\n pos.left -= this.parentScrollX;\r\n }\r\n var posValue = this.getProcessedPositionValue({\r\n top: (pos.top - this.diffY) + 'px',\r\n left: (pos.left - this.diffX) + 'px'\r\n });\r\n this.dragElePosition = { top: pos.top, left: pos.left };\r\n setStyleAttribute(dragTargetElement, this.getDragPosition({ position: 'absolute', left: posValue.left, top: posValue.top }));\r\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\r\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\r\n if (!isBlazor()) {\r\n this.bindDragEvents(dragTargetElement);\r\n }\r\n }\r\n };\r\n Draggable.prototype.bindDragEvents = function (dragTargetElement) {\r\n if (isVisible(dragTargetElement)) {\r\n EventHandler.add(document, Browser.touchMoveEvent, this.intDrag, this);\r\n EventHandler.add(document, Browser.touchEndEvent, this.intDragStop, this);\r\n this.setGlobalDroppables(false, this.element, dragTargetElement);\r\n }\r\n else {\r\n this.toggleEvents();\r\n document.body.classList.remove('e-prevent-select');\r\n }\r\n };\r\n Draggable.prototype.elementInViewport = function (el) {\r\n this.top = el.offsetTop;\r\n this.left = el.offsetLeft;\r\n this.width = el.offsetWidth;\r\n this.height = el.offsetHeight;\r\n while (el.offsetParent) {\r\n el = el.offsetParent;\r\n this.top += el.offsetTop;\r\n this.left += el.offsetLeft;\r\n }\r\n return (this.top >= window.pageYOffset &&\r\n this.left >= window.pageXOffset &&\r\n (this.top + this.height) <= (window.pageYOffset + window.innerHeight) &&\r\n (this.left + this.width) <= (window.pageXOffset + window.innerWidth));\r\n };\r\n Draggable.prototype.getProcessedPositionValue = function (value) {\r\n if (this.queryPositionInfo) {\r\n return this.queryPositionInfo(value);\r\n }\r\n return value;\r\n };\r\n Draggable.prototype.calculateParentPosition = function (ele) {\r\n if (isNullOrUndefined(ele)) {\r\n return { left: 0, top: 0 };\r\n }\r\n var rect = ele.getBoundingClientRect();\r\n var style = getComputedStyle(ele);\r\n return {\r\n left: (rect.left + window.pageXOffset) - parseInt(style.marginLeft, 10),\r\n top: (rect.top + window.pageYOffset) - parseInt(style.marginTop, 10)\r\n };\r\n };\r\n // tslint:disable-next-line:max-func-body-length\r\n Draggable.prototype.intDrag = function (evt) {\r\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\r\n return;\r\n }\r\n var left;\r\n var top;\r\n this.position = this.getMousePosition(evt, this.isDragScroll);\r\n var docHeight = this.getDocumentWidthHeight('Height');\r\n if (docHeight < this.position.top) {\r\n this.position.top = docHeight;\r\n }\r\n var docWidth = this.getDocumentWidthHeight('Width');\r\n if (docWidth < this.position.left) {\r\n this.position.left = docWidth;\r\n }\r\n if (this.drag) {\r\n var curTarget = this.getProperTargetElement(evt);\r\n this.trigger('drag', { event: evt, element: this.element, target: curTarget });\r\n }\r\n var eleObj = this.checkTargetElement(evt);\r\n if (eleObj.target && eleObj.instance) {\r\n /* tslint:disable no-any */\r\n var flag = true;\r\n if (this.hoverObject) {\r\n if (this.hoverObject.instance !== eleObj.instance) {\r\n this.triggerOutFunction(evt, eleObj);\r\n }\r\n else {\r\n flag = false;\r\n }\r\n }\r\n if (flag) {\r\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\r\n eleObj.instance.intOver(evt, eleObj.target);\r\n this.hoverObject = eleObj;\r\n }\r\n }\r\n else if (this.hoverObject) {\r\n this.triggerOutFunction(evt, eleObj);\r\n }\r\n var helperElement = this.droppables[this.scope].helper;\r\n this.parentClientRect = this.calculateParentPosition(this.helperElement.offsetParent);\r\n var tLeft = this.parentClientRect.left;\r\n var tTop = this.parentClientRect.top;\r\n var intCoord = this.getCoordinates(evt);\r\n var pagex = intCoord.pageX;\r\n var pagey = intCoord.pageY;\r\n var dLeft = this.position.left - this.diffX;\r\n var dTop = this.position.top - this.diffY;\r\n var styles = getComputedStyle(helperElement);\r\n var marginTop = parseFloat(styles.marginTop);\r\n if (this.dragArea) {\r\n if (this.pageX !== pagex || this.skipDistanceCheck) {\r\n var helperWidth = helperElement.offsetWidth + (parseFloat(styles.marginLeft)\r\n + parseFloat(styles.marginRight));\r\n if (this.dragLimit.left > dLeft && dLeft > 0) {\r\n left = this.dragLimit.left;\r\n }\r\n else if (this.dragLimit.right + window.pageXOffset < dLeft + helperWidth && dLeft > 0) {\r\n left = dLeft - (dLeft - this.dragLimit.right) + window.pageXOffset - helperWidth;\r\n }\r\n else {\r\n left = dLeft < 0 ? this.dragLimit.left : dLeft;\r\n }\r\n }\r\n if (this.pageY !== pagey || this.skipDistanceCheck) {\r\n var helperHeight = helperElement.offsetHeight + (parseFloat(styles.marginTop)\r\n + parseFloat(styles.marginBottom));\r\n if (this.dragLimit.top > dTop && dTop > 0) {\r\n top = this.dragLimit.top;\r\n }\r\n else if (this.dragLimit.bottom + window.pageYOffset < dTop + helperHeight && dTop > 0) {\r\n top = dTop - (dTop - this.dragLimit.bottom) + window.pageYOffset - helperHeight;\r\n }\r\n else {\r\n top = dTop < 0 ? this.dragLimit.top : dTop;\r\n }\r\n }\r\n }\r\n else {\r\n left = dLeft;\r\n top = dTop;\r\n }\r\n var iTop = tTop + this.borderWidth.top;\r\n var iLeft = tLeft + this.borderWidth.left;\r\n if (this.dragProcessStarted) {\r\n if (isNullOrUndefined(top)) {\r\n top = this.prevTop;\r\n }\r\n if (isNullOrUndefined(left)) {\r\n left = this.prevLeft;\r\n }\r\n }\r\n var draEleTop;\r\n var draEleLeft;\r\n if (this.dragArea) {\r\n this.dragLimit.top = this.clone ? this.dragLimit.top : 0;\r\n draEleTop = (top - iTop) < 0 ? this.dragLimit.top : (top - iTop);\r\n draEleLeft = (left - iLeft) < 0 ? this.dragElePosition.left : (left - iLeft);\r\n // when drag-element has margin-top\r\n /* istanbul ignore next */\r\n if (marginTop > 0) {\r\n if (this.clone) {\r\n draEleTop += this.element.offsetTop;\r\n if (dTop < 0) {\r\n if ((this.element.offsetTop + dTop) >= 0) {\r\n draEleTop = this.element.offsetTop + dTop;\r\n }\r\n else {\r\n draEleTop -= this.element.offsetTop;\r\n }\r\n }\r\n draEleTop = (this.dragLimit.bottom < draEleTop) ? this.dragLimit.bottom : draEleTop;\r\n }\r\n if ((top - iTop) < 0) {\r\n if (dTop + marginTop + (helperElement.offsetHeight - iTop) >= 0) {\r\n var tempDraEleTop = this.dragLimit.top + dTop - iTop;\r\n if ((tempDraEleTop + marginTop + iTop) < 0) {\r\n draEleTop -= marginTop + iTop;\r\n }\r\n else {\r\n draEleTop = tempDraEleTop;\r\n }\r\n }\r\n else {\r\n draEleTop -= marginTop + iTop;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n draEleTop = top - iTop;\r\n draEleLeft = left - iLeft;\r\n }\r\n if (this.enableScrollHandler && !this.clone) {\r\n draEleTop -= this.parentScrollY;\r\n draEleLeft -= this.parentScrollX;\r\n }\r\n var dragValue = this.getProcessedPositionValue({ top: draEleTop + 'px', left: draEleLeft + 'px' });\r\n setStyleAttribute(helperElement, this.getDragPosition(dragValue));\r\n if (!this.elementInViewport(helperElement) && this.enableAutoScroll) {\r\n this.helperElement.scrollIntoView();\r\n }\r\n this.dragProcessStarted = true;\r\n this.prevLeft = left;\r\n this.prevTop = top;\r\n this.position.left = left;\r\n this.position.top = top;\r\n this.pageX = pagex;\r\n this.pageY = pagey;\r\n };\r\n Draggable.prototype.triggerOutFunction = function (evt, eleObj) {\r\n this.hoverObject.instance.intOut(evt, eleObj.target);\r\n this.hoverObject.instance.dragData[this.scope] = null;\r\n this.hoverObject = null;\r\n };\r\n Draggable.prototype.getDragPosition = function (dragValue) {\r\n var temp = extend({}, dragValue);\r\n if (this.axis) {\r\n if (this.axis === 'x') {\r\n delete temp.top;\r\n }\r\n else if (this.axis === 'y') {\r\n delete temp.left;\r\n }\r\n }\r\n return temp;\r\n };\r\n Draggable.prototype.getDocumentWidthHeight = function (str) {\r\n var docBody = document.body;\r\n var docEle = document.documentElement;\r\n var returnValue = Math.max(docBody['scroll' + str], docEle['scroll' + str], docBody['offset' + str], docEle['offset' + str], docEle['client' + str]);\r\n return returnValue;\r\n };\r\n Draggable.prototype.intDragStop = function (evt) {\r\n this.dragProcessStarted = false;\r\n if (!isUndefined(evt.changedTouches) && (evt.changedTouches.length !== 1)) {\r\n return;\r\n }\r\n var type = ['touchend', 'pointerup', 'mouseup'];\r\n if (type.indexOf(evt.type) !== -1) {\r\n if (this.dragStop) {\r\n var curTarget = this.getProperTargetElement(evt);\r\n this.trigger('dragStop', { event: evt, element: this.element, target: curTarget, helper: this.helperElement });\r\n }\r\n this.intDestroy(evt);\r\n }\r\n else {\r\n this.element.setAttribute('aria-grabbed', 'false');\r\n }\r\n var eleObj = this.checkTargetElement(evt);\r\n if (eleObj.target && eleObj.instance) {\r\n eleObj.instance.dragStopCalled = true;\r\n eleObj.instance.dragData[this.scope] = this.droppables[this.scope];\r\n eleObj.instance.intDrop(evt, eleObj.target);\r\n }\r\n this.setGlobalDroppables(true);\r\n document.body.classList.remove('e-prevent-select');\r\n };\r\n /**\r\n * @private\r\n */\r\n Draggable.prototype.intDestroy = function (evt) {\r\n this.dragProcessStarted = false;\r\n this.toggleEvents();\r\n document.body.classList.remove('e-prevent-select');\r\n this.element.setAttribute('aria-grabbed', 'false');\r\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDragStart);\r\n EventHandler.remove(document, Browser.touchEndEvent, this.intDragStop);\r\n EventHandler.remove(document, Browser.touchEndEvent, this.intDestroy);\r\n EventHandler.remove(document, Browser.touchMoveEvent, this.intDrag);\r\n if (this.isDragStarted()) {\r\n this.isDragStarted(true);\r\n }\r\n };\r\n // triggers when property changed\r\n Draggable.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n //No Code to handle\r\n };\r\n Draggable.prototype.getModuleName = function () {\r\n return 'draggable';\r\n };\r\n Draggable.prototype.isDragStarted = function (change) {\r\n if (change) {\r\n isDraggedObject.isDragged = !isDraggedObject.isDragged;\r\n }\r\n return isDraggedObject.isDragged;\r\n };\r\n Draggable.prototype.setDragArea = function () {\r\n var eleWidthBound;\r\n var eleHeightBound;\r\n var top = 0;\r\n var left = 0;\r\n var ele;\r\n var type = typeof this.dragArea;\r\n if (type === 'string') {\r\n ele = select(this.dragArea);\r\n }\r\n else {\r\n ele = this.dragArea;\r\n }\r\n if (ele) {\r\n var elementArea = ele.getBoundingClientRect();\r\n eleWidthBound = ele.scrollWidth ? ele.scrollWidth : elementArea.right - elementArea.left;\r\n eleHeightBound = ele.scrollHeight ? ele.scrollHeight : elementArea.bottom - elementArea.top;\r\n var keys = ['Top', 'Left', 'Bottom', 'Right'];\r\n var styles = getComputedStyle(ele);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n var tborder = styles['border' + key + 'Width'];\r\n var tpadding = styles['padding' + key];\r\n var lowerKey = key.toLowerCase();\r\n this.borderWidth[lowerKey] = isNaN(parseFloat(tborder)) ? 0 : parseFloat(tborder);\r\n this.padding[lowerKey] = isNaN(parseFloat(tpadding)) ? 0 : parseFloat(tpadding);\r\n }\r\n top = elementArea.top;\r\n left = elementArea.left;\r\n this.dragLimit.left = left + this.borderWidth.left + this.padding.left;\r\n this.dragLimit.top = ele.offsetTop + this.borderWidth.top + this.padding.top;\r\n this.dragLimit.right = left + eleWidthBound - (this.borderWidth.right + this.padding.right);\r\n this.dragLimit.bottom = top + eleHeightBound - (this.borderWidth.bottom + this.padding.bottom);\r\n }\r\n };\r\n Draggable.prototype.getProperTargetElement = function (evt) {\r\n var intCoord = this.getCoordinates(evt);\r\n var ele;\r\n var prevStyle = this.helperElement.style.pointerEvents || '';\r\n if (compareElementParent(evt.target, this.helperElement) || evt.type.indexOf('touch') !== -1) {\r\n this.helperElement.style.pointerEvents = 'none';\r\n ele = document.elementFromPoint(intCoord.clientX, intCoord.clientY);\r\n this.helperElement.style.pointerEvents = prevStyle;\r\n }\r\n else {\r\n ele = evt.target;\r\n }\r\n return ele;\r\n };\r\n /* istanbul ignore next */\r\n Draggable.prototype.currentStateCheck = function (ele, oldEle) {\r\n var elem;\r\n if (!isNullOrUndefined(this.currentStateTarget) && this.currentStateTarget !== ele) {\r\n elem = this.currentStateTarget;\r\n }\r\n else {\r\n elem = !isNullOrUndefined(oldEle) ? oldEle : ele;\r\n }\r\n return elem;\r\n };\r\n Draggable.prototype.getMousePosition = function (evt, isdragscroll) {\r\n /* tslint:disable no-any */\r\n var dragEle = evt.srcElement !== undefined ? evt.srcElement : evt.target;\r\n var intCoord = this.getCoordinates(evt);\r\n var pageX;\r\n var pageY;\r\n var isOffsetParent = isNullOrUndefined(dragEle.offsetParent);\r\n /* istanbul ignore next */\r\n if (isdragscroll) {\r\n pageX = this.clone ? intCoord.pageX :\r\n (intCoord.pageX + (isOffsetParent ? 0 : dragEle.offsetParent.scrollLeft)) - this.relativeXPosition;\r\n pageY = this.clone ? intCoord.pageY :\r\n (intCoord.pageY + (isOffsetParent ? 0 : dragEle.offsetParent.scrollTop)) - this.relativeYPosition;\r\n }\r\n else {\r\n pageX = this.clone ? intCoord.pageX : (intCoord.pageX + window.pageXOffset) - this.relativeXPosition;\r\n pageY = this.clone ? intCoord.pageY : (intCoord.pageY + window.pageYOffset) - this.relativeYPosition;\r\n }\r\n if (!this.clone && this.dragArea && !isdragscroll) {\r\n this.getScrollableValues();\r\n pageY -= this.tempScrollHeight ? this.parentScrollY : 0;\r\n pageX -= this.tempScrollWidth ? this.parentScrollX : 0;\r\n }\r\n return {\r\n left: pageX - (this.margin.left + this.cursorAt.left),\r\n top: pageY - (this.margin.top + this.cursorAt.top)\r\n };\r\n };\r\n Draggable.prototype.getCoordinates = function (evt) {\r\n if (evt.type.indexOf('touch') > -1) {\r\n return evt.changedTouches[0];\r\n }\r\n return evt;\r\n };\r\n Draggable.prototype.getHelperElement = function (evt) {\r\n var element;\r\n if (this.clone) {\r\n if (this.helper) {\r\n element = this.helper({ sender: evt, element: this.target });\r\n }\r\n else {\r\n element = createElement('div', { className: 'e-drag-helper e-block-touch', innerHTML: 'Draggable' });\r\n document.body.appendChild(element);\r\n }\r\n }\r\n else {\r\n element = this.element;\r\n }\r\n return element;\r\n };\r\n Draggable.prototype.setGlobalDroppables = function (reset, drag, helper) {\r\n this.droppables[this.scope] = reset ? null : {\r\n draggable: drag,\r\n helper: helper,\r\n draggedElement: this.element\r\n };\r\n };\r\n Draggable.prototype.checkTargetElement = function (evt) {\r\n var target = this.getProperTargetElement(evt);\r\n var dropIns = this.getDropInstance(target);\r\n if (!dropIns && target && !isNullOrUndefined(target.parentNode)) {\r\n var parent_1 = closest(target.parentNode, '.e-droppable') || target.parentElement;\r\n if (parent_1) {\r\n dropIns = this.getDropInstance(parent_1);\r\n }\r\n }\r\n return { target: target, instance: dropIns };\r\n };\r\n Draggable.prototype.getDropInstance = function (ele) {\r\n var name = 'getModuleName';\r\n var drop;\r\n var eleInst = ele && ele.ej2_instances;\r\n if (eleInst) {\r\n for (var _i = 0, eleInst_1 = eleInst; _i < eleInst_1.length; _i++) {\r\n var inst = eleInst_1[_i];\r\n if (inst[name]() === 'droppable') {\r\n drop = inst;\r\n break;\r\n }\r\n }\r\n }\r\n return drop;\r\n };\r\n Draggable.prototype.destroy = function () {\r\n this.toggleEvents(true);\r\n _super.prototype.destroy.call(this);\r\n };\r\n var Draggable_1;\r\n __decorate([\r\n Complex({}, Position)\r\n ], Draggable.prototype, \"cursorAt\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Draggable.prototype, \"clone\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"dragArea\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"isDragScroll\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"isReplaceDragEle\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Draggable.prototype, \"isPreventSelect\", void 0);\r\n __decorate([\r\n Event()\r\n ], Draggable.prototype, \"drag\", void 0);\r\n __decorate([\r\n Event()\r\n ], Draggable.prototype, \"dragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Draggable.prototype, \"dragStop\", void 0);\r\n __decorate([\r\n Property(1)\r\n ], Draggable.prototype, \"distance\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"handle\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"abort\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"helper\", void 0);\r\n __decorate([\r\n Property('default')\r\n ], Draggable.prototype, \"scope\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Draggable.prototype, \"dragTarget\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"axis\", void 0);\r\n __decorate([\r\n Property()\r\n ], Draggable.prototype, \"queryPositionInfo\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Draggable.prototype, \"enableTailMode\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Draggable.prototype, \"skipDistanceCheck\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Draggable.prototype, \"preventDefault\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Draggable.prototype, \"enableAutoScroll\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Draggable.prototype, \"enableTapHold\", void 0);\r\n __decorate([\r\n Property(750)\r\n ], Draggable.prototype, \"tapHoldThreshold\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Draggable.prototype, \"enableScrollHandler\", void 0);\r\n Draggable = Draggable_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], Draggable);\r\n return Draggable;\r\n}(Base));\r\nexport { Draggable };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Base } from './base';\r\nimport { Browser } from './browser';\r\nimport { isVisible, matches } from './dom';\r\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\r\nimport { EventHandler } from './event-handler';\r\nimport { compareElementParent } from './util';\r\n/**\r\n * Droppable Module provides support to enable droppable functionality in Dom Elements.\r\n * ```html\r\n *
    Droppable
    \r\n * \r\n * ```\r\n */\r\nvar Droppable = /** @class */ (function (_super) {\r\n __extends(Droppable, _super);\r\n function Droppable(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.mouseOver = false;\r\n _this.dragData = {};\r\n _this.dragStopCalled = false;\r\n _this.bind();\r\n return _this;\r\n }\r\n Droppable.prototype.bind = function () {\r\n this.wireEvents();\r\n };\r\n Droppable.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, Browser.touchEndEvent, this.intDrop, this);\r\n };\r\n // triggers when property changed\r\n // eslint-disable-next-line\r\n Droppable.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n //No Code to handle\r\n };\r\n Droppable.prototype.getModuleName = function () {\r\n return 'droppable';\r\n };\r\n Droppable.prototype.intOver = function (event, element) {\r\n if (!this.mouseOver) {\r\n var drag = this.dragData[this.scope];\r\n this.trigger('over', { event: event, target: element, dragData: drag });\r\n this.mouseOver = true;\r\n }\r\n };\r\n Droppable.prototype.intOut = function (event, element) {\r\n if (this.mouseOver) {\r\n this.trigger('out', { evt: event, target: element });\r\n this.mouseOver = false;\r\n }\r\n };\r\n Droppable.prototype.intDrop = function (evt, element) {\r\n if (!this.dragStopCalled) {\r\n return;\r\n }\r\n else {\r\n this.dragStopCalled = false;\r\n }\r\n var accept = true;\r\n var drag = this.dragData[this.scope];\r\n var isDrag = drag ? (drag.helper && isVisible(drag.helper)) : false;\r\n var area;\r\n if (isDrag) {\r\n area = this.isDropArea(evt, drag.helper, element);\r\n if (this.accept) {\r\n accept = matches(drag.helper, this.accept);\r\n }\r\n }\r\n if (isDrag && this.drop && area.canDrop && accept) {\r\n this.trigger('drop', { event: evt, target: area.target, droppedElement: drag.helper, dragData: drag });\r\n }\r\n this.mouseOver = false;\r\n };\r\n Droppable.prototype.isDropArea = function (evt, helper, element) {\r\n var area = { canDrop: true, target: element || evt.target };\r\n var isTouch = evt.type === 'touchend';\r\n if (isTouch || area.target === helper) {\r\n helper.style.display = 'none';\r\n var coord = isTouch ? (evt.changedTouches[0]) : evt;\r\n var ele = document.elementFromPoint(coord.clientX, coord.clientY);\r\n area.canDrop = false;\r\n area.canDrop = compareElementParent(ele, this.element);\r\n if (area.canDrop) {\r\n area.target = ele;\r\n }\r\n helper.style.display = '';\r\n }\r\n return area;\r\n };\r\n Droppable.prototype.destroy = function () {\r\n EventHandler.remove(this.element, Browser.touchEndEvent, this.intDrop);\r\n _super.prototype.destroy.call(this);\r\n };\r\n __decorate([\r\n Property()\r\n ], Droppable.prototype, \"accept\", void 0);\r\n __decorate([\r\n Property('default')\r\n ], Droppable.prototype, \"scope\", void 0);\r\n __decorate([\r\n Event()\r\n ], Droppable.prototype, \"drop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Droppable.prototype, \"over\", void 0);\r\n __decorate([\r\n Event()\r\n ], Droppable.prototype, \"out\", void 0);\r\n Droppable = __decorate([\r\n NotifyPropertyChanges\r\n ], Droppable);\r\n return Droppable;\r\n}(Base));\r\nexport { Droppable };\r\n","import { debounce, extend } from './util';\r\nimport { Browser } from './browser';\r\n/**\r\n * EventHandler class provides option to add, remove, clear and trigger events to a HTML DOM element\r\n * ```html\r\n *
    \r\n * \r\n * ```\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler() {\r\n }\r\n // to get the event data based on element\r\n EventHandler.addOrGetEventData = function (element) {\r\n if ('__eventList' in element) {\r\n return element.__eventList.events;\r\n }\r\n else {\r\n element.__eventList = {};\r\n return element.__eventList.events = [];\r\n }\r\n };\r\n /**\r\n * Add an event to the specified DOM element.\r\n *\r\n * @param {any} element - Target HTML DOM element\r\n * @param {string} eventName - A string that specifies the name of the event\r\n * @param {Function} listener - Specifies the function to run when the event occurs\r\n * @param {Object} bindTo - A object that binds 'this' variable in the event handler\r\n * @param {number} intDebounce - Specifies at what interval given event listener should be triggered.\r\n * @returns {Function} ?\r\n */\r\n EventHandler.add = function (element, eventName, listener, bindTo, intDebounce) {\r\n var eventData = EventHandler.addOrGetEventData(element);\r\n var debounceListener;\r\n if (intDebounce) {\r\n debounceListener = debounce(listener, intDebounce);\r\n }\r\n else {\r\n debounceListener = listener;\r\n }\r\n if (bindTo) {\r\n debounceListener = debounceListener.bind(bindTo);\r\n }\r\n var event = eventName.split(' ');\r\n for (var i = 0; i < event.length; i++) {\r\n eventData.push({\r\n name: event[i],\r\n listener: listener,\r\n debounce: debounceListener\r\n });\r\n if (Browser.isIE) {\r\n element.addEventListener(event[i], debounceListener);\r\n }\r\n else {\r\n element.addEventListener(event[i], debounceListener, { passive: false });\r\n }\r\n }\r\n return debounceListener;\r\n };\r\n /**\r\n * Remove an event listener that has been attached before.\r\n *\r\n * @param {any} element - Specifies the target html element to remove the event\r\n * @param {string} eventName - A string that specifies the name of the event to remove\r\n * @param {Function} listener - Specifies the function to remove\r\n * @returns {void} ?\r\n */\r\n EventHandler.remove = function (element, eventName, listener) {\r\n var eventData = EventHandler.addOrGetEventData(element);\r\n var event = eventName.split(' ');\r\n var _loop_1 = function (j) {\r\n var index = -1;\r\n var debounceListener;\r\n if (eventData && eventData.length !== 0) {\r\n eventData.some(function (x, i) {\r\n return x.name === event[j] && x.listener === listener ?\r\n (index = i, debounceListener = x.debounce, true) : false;\r\n });\r\n }\r\n if (index !== -1) {\r\n eventData.splice(index, 1);\r\n }\r\n if (debounceListener) {\r\n element.removeEventListener(event[j], debounceListener);\r\n }\r\n };\r\n for (var j = 0; j < event.length; j++) {\r\n _loop_1(j);\r\n }\r\n };\r\n /**\r\n * Clear all the event listeners that has been previously attached to the element.\r\n *\r\n * @param {any} element - Specifies the target html element to clear the events\r\n * @returns {void} ?\r\n */\r\n EventHandler.clearEvents = function (element) {\r\n var eventData;\r\n var copyData;\r\n // eslint-disable-next-line\r\n eventData = EventHandler.addOrGetEventData(element);\r\n // eslint-disable-next-line\r\n copyData = extend([], copyData, eventData);\r\n for (var i = 0; i < copyData.length; i++) {\r\n element.removeEventListener(copyData[i].name, copyData[i].debounce);\r\n eventData.shift();\r\n }\r\n };\r\n /**\r\n * Trigger particular event of the element.\r\n *\r\n * @param {any} element - Specifies the target html element to trigger the events\r\n * @param {string} eventName - Specifies the event to trigger for the specified element.\r\n * Can be a custom event, or any of the standard events.\r\n * @param {any} eventProp - Additional parameters to pass on to the event properties\r\n * @returns {void} ?\r\n */\r\n EventHandler.trigger = function (element, eventName, eventProp) {\r\n var eventData = EventHandler.addOrGetEventData(element);\r\n for (var _i = 0, eventData_1 = eventData; _i < eventData_1.length; _i++) {\r\n var event_1 = eventData_1[_i];\r\n if (event_1.name === eventName) {\r\n event_1.debounce.call(this, eventProp);\r\n }\r\n }\r\n };\r\n return EventHandler;\r\n}());\r\nexport { EventHandler };\r\n","/***\r\n * Hijri parser\r\n */\r\n// eslint-disable-next-line\r\nexport var HijriParser;\r\n(function (HijriParser) {\r\n var dateCorrection = [28607, 28636, 28665, 28695, 28724, 28754, 28783, 28813, 28843, 28872, 28901, 28931, 28960, 28990,\r\n 29019, 29049, 29078, 29108, 29137, 29167, 29196, 29226, 29255, 29285, 29315, 29345, 29375, 29404, 29434, 29463, 29492, 29522,\r\n 29551, 29580, 29610, 29640, 29669, 29699, 29729, 29759, 29788, 29818, 29847, 29876, 29906, 29935, 29964, 29994, 30023, 30053,\r\n 30082, 30112, 30141, 30171, 30200, 30230, 30259, 30289, 30318, 30348, 30378, 30408, 30437, 30467, 30496, 30526, 30555, 30585,\r\n 30614, 30644, 30673, 30703, 30732, 30762, 30791, 30821, 30850, 30880, 30909, 30939, 30968, 30998, 31027, 31057, 31086, 31116,\r\n 31145, 31175, 31204, 31234, 31263, 31293, 31322, 31352, 31381, 31411, 31441, 31471, 31500, 31530, 31559, 31589, 31618, 31648,\r\n 31676, 31706, 31736, 31766, 31795, 31825, 31854, 31884, 31913, 31943, 31972, 32002, 32031, 32061, 32090, 32120, 32150, 32180,\r\n 32209, 32239, 32268, 32298, 32327, 32357, 32386, 32416, 32445, 32475, 32504, 32534, 32563, 32593, 32622, 32652, 32681, 32711,\r\n 32740, 32770, 32799, 32829, 32858, 32888, 32917, 32947, 32976, 33006, 33035, 33065, 33094, 33124, 33153, 33183, 33213, 33243,\r\n 33272, 33302, 33331, 33361, 33390, 33420, 33450, 33479, 33509, 33539, 33568, 33598, 33627, 33657, 33686, 33716, 33745, 33775,\r\n 33804, 33834, 33863, 33893, 33922, 33952, 33981, 34011, 34040, 34069, 34099, 34128, 34158, 34187, 34217, 34247, 34277, 34306,\r\n 34336, 34365, 34395, 34424, 34454, 34483, 34512, 34542, 34571, 34601, 34631, 34660, 34690, 34719, 34749, 34778, 34808, 34837,\r\n 34867, 34896, 34926, 34955, 34985, 35015, 35044, 35074, 35103, 35133, 35162, 35192, 35222, 35251, 35280, 35310, 35340, 35370,\r\n 35399, 35429, 35458, 35488, 35517, 35547, 35576, 35605, 35635, 35665, 35694, 35723, 35753, 35782, 35811, 35841, 35871, 35901,\r\n 35930, 35960, 35989, 36019, 36048, 36078, 36107, 36136, 36166, 36195, 36225, 36254, 36284, 36314, 36343, 36373, 36403, 36433,\r\n 36462, 36492, 36521, 36551, 36580, 36610, 36639, 36669, 36698, 36728, 36757, 36786, 36816, 36845, 36875, 36904, 36934, 36963,\r\n 36993, 37022, 37052, 37081, 37111, 37141, 37170, 37200, 37229, 37259, 37288, 37318, 37347, 37377, 37406, 37436, 37465, 37495,\r\n 37524, 37554, 37584, 37613, 37643, 37672, 37701, 37731, 37760, 37790, 37819, 37849, 37878, 37908, 37938, 37967, 37997, 38027,\r\n 38056, 38085, 38115, 38144, 38174, 38203, 38233, 38262, 38292, 38322, 38351, 38381, 38410, 38440, 38469, 38499, 38528, 38558,\r\n 38587, 38617, 38646, 38676, 38705, 38735, 38764, 38794, 38823, 38853, 38882, 38912, 38941, 38971, 39001, 39030, 39059, 39089,\r\n 39118, 39148, 39178, 39208, 39237, 39267, 39297, 39326, 39355, 39385, 39414, 39444, 39473, 39503, 39532, 39562, 39592, 39621,\r\n 39650, 39680, 39709, 39739, 39768, 39798, 39827, 39857, 39886, 39916, 39946, 39975, 40005, 40035, 40064, 40094, 40123, 40153,\r\n 40182, 40212, 40241, 40271, 40300, 40330, 40359, 40389, 40418, 40448, 40477, 40507, 40536, 40566, 40595, 40625, 40655, 40685,\r\n 40714, 40744, 40773, 40803, 40832, 40862, 40892, 40921, 40951, 40980, 41009, 41039, 41068, 41098, 41127, 41157, 41186, 41216,\r\n 41245, 41275, 41304, 41334, 41364, 41393, 41422, 41452, 41481, 41511, 41540, 41570, 41599, 41629, 41658, 41688, 41718, 41748,\r\n 41777, 41807, 41836, 41865, 41894, 41924, 41953, 41983, 42012, 42042, 42072, 42102, 42131, 42161, 42190, 42220, 42249, 42279,\r\n 42308, 42337, 42367, 42397, 42426, 42456, 42485, 42515, 42545, 42574, 42604, 42633, 42662, 42692, 42721, 42751, 42780, 42810,\r\n 42839, 42869, 42899, 42929, 42958, 42988, 43017, 43046, 43076, 43105, 43135, 43164, 43194, 43223, 43253, 43283, 43312, 43342,\r\n 43371, 43401, 43430, 43460, 43489, 43519, 43548, 43578, 43607, 43637, 43666, 43696, 43726, 43755, 43785, 43814, 43844, 43873,\r\n 43903, 43932, 43962, 43991, 44021, 44050, 44080, 44109, 44139, 44169, 44198, 44228, 44258, 44287, 44317, 44346, 44375, 44405,\r\n 44434, 44464, 44493, 44523, 44553, 44582, 44612, 44641, 44671, 44700, 44730, 44759, 44788, 44818, 44847, 44877, 44906, 44936,\r\n 44966, 44996, 45025, 45055, 45084, 45114, 45143, 45172, 45202, 45231, 45261, 45290, 45320, 45350, 45380, 45409, 45439, 45468,\r\n 45498, 45527, 45556, 45586, 45615, 45644, 45674, 45704, 45733, 45763, 45793, 45823, 45852, 45882, 45911, 45940, 45970, 45999,\r\n 46028, 46058, 46088, 46117, 46147, 46177, 46206, 46236, 46265, 46295, 46324, 46354, 46383, 46413, 46442, 46472, 46501, 46531,\r\n 46560, 46590, 46620, 46649, 46679, 46708, 46738, 46767, 46797, 46826, 46856, 46885, 46915, 46944, 46974, 47003, 47033, 47063,\r\n 47092, 47122, 47151, 47181, 47210, 47240, 47269, 47298, 47328, 47357, 47387, 47417, 47446, 47476, 47506, 47535, 47565, 47594,\r\n 47624, 47653, 47682, 47712, 47741, 47771, 47800, 47830, 47860, 47890, 47919, 47949, 47978, 48008, 48037, 48066, 48096, 48125,\r\n 48155, 48184, 48214, 48244, 48273, 48303, 48333, 48362, 48392, 48421, 48450, 48480, 48509, 48538, 48568, 48598, 48627, 48657,\r\n 48687, 48717, 48746, 48776, 48805, 48834, 48864, 48893, 48922, 48952, 48982, 49011, 49041, 49071, 49100, 49130, 49160, 49189,\r\n 49218, 49248, 49277, 49306, 49336, 49365, 49395, 49425, 49455, 49484, 49514, 49543, 49573, 49602, 49632, 49661, 49690, 49720,\r\n 49749, 49779, 49809, 49838, 49868, 49898, 49927, 49957, 49986, 50016, 50045, 50075, 50104, 50133, 50163, 50192, 50222, 50252,\r\n 50281, 50311, 50340, 50370, 50400, 50429, 50459, 50488, 50518, 50547, 50576, 50606, 50635, 50665, 50694, 50724, 50754, 50784,\r\n 50813, 50843, 50872, 50902, 50931, 50960, 50990, 51019, 51049, 51078, 51108, 51138, 51167, 51197, 51227, 51256, 51286, 51315,\r\n 51345, 51374, 51403, 51433, 51462, 51492, 51522, 51552, 51582, 51611, 51641, 51670, 51699, 51729, 51758, 51787, 51816, 51846,\r\n 51876, 51906, 51936, 51965, 51995, 52025, 52054, 52083, 52113, 52142, 52171, 52200, 52230, 52260, 52290, 52319, 52349, 52379,\r\n 52408, 52438, 52467, 52497, 52526, 52555, 52585, 52614, 52644, 52673, 52703, 52733, 52762, 52792, 52822, 52851, 52881, 52910,\r\n 52939, 52969, 52998, 53028, 53057, 53087, 53116, 53146, 53176, 53205, 53235, 53264, 53294, 53324, 53353, 53383, 53412, 53441,\r\n 53471, 53500, 53530, 53559, 53589, 53619, 53648, 53678, 53708, 53737, 53767, 53796, 53825, 53855, 53884, 53913, 53943, 53973,\r\n 54003, 54032, 54062, 54092, 54121, 54151, 54180, 54209, 54239, 54268, 54297, 54327, 54357, 54387, 54416, 54446, 54476, 54505,\r\n 54535, 54564, 54593, 54623, 54652, 54681, 54711, 54741, 54770, 54800, 54830, 54859, 54889, 54919, 54948, 54977, 55007, 55036,\r\n 55066, 55095, 55125, 55154, 55184, 55213, 55243, 55273, 55302, 55332, 55361, 55391, 55420, 55450, 55479, 55508, 55538, 55567,\r\n 55597, 55627, 55657, 55686, 55716, 55745, 55775, 55804, 55834, 55863, 55892, 55922, 55951, 55981, 56011, 56040, 56070, 56100,\r\n 56129, 56159, 56188, 56218, 56247, 56276, 56306, 56335, 56365, 56394, 56424, 56454, 56483, 56513, 56543, 56572, 56601, 56631,\r\n 56660, 56690, 56719, 56749, 56778, 56808, 56837, 56867, 56897, 56926, 56956, 56985, 57015, 57044, 57074, 57103, 57133, 57162,\r\n 57192, 57221, 57251, 57280, 57310, 57340, 57369, 57399, 57429, 57458, 57487, 57517, 57546, 57576, 57605, 57634, 57664, 57694,\r\n 57723, 57753, 57783, 57813, 57842, 57871, 57901, 57930, 57959, 57989, 58018, 58048, 58077, 58107, 58137, 58167, 58196, 58226,\r\n 58255, 58285, 58314, 58343, 58373, 58402, 58432, 58461, 58491, 58521, 58551, 58580, 58610, 58639, 58669, 58698, 58727, 58757,\r\n 58786, 58816, 58845, 58875, 58905, 58934, 58964, 58994, 59023, 59053, 59082, 59111, 59141, 59170, 59200, 59229, 59259, 59288,\r\n 59318, 59348, 59377, 59407, 59436, 59466, 59495, 59525, 59554, 59584, 59613, 59643, 59672, 59702, 59731, 59761, 59791, 59820,\r\n 59850, 59879, 59909, 59939, 59968, 59997, 60027, 60056, 60086, 60115, 60145, 60174, 60204, 60234, 60264, 60293, 60323, 60352,\r\n 60381, 60411, 60440, 60469, 60499, 60528, 60558, 60588, 60618, 60648, 60677, 60707, 60736, 60765, 60795, 60824, 60853, 60883,\r\n 60912, 60942, 60972, 61002, 61031, 61061, 61090, 61120, 61149, 61179, 61208, 61237, 61267, 61296, 61326, 61356, 61385, 61415,\r\n 61445, 61474, 61504, 61533, 61563, 61592, 61621, 61651, 61680, 61710, 61739, 61769, 61799, 61828, 61858, 61888, 61917, 61947,\r\n 61976, 62006, 62035, 62064, 62094, 62123, 62153, 62182, 62212, 62242, 62271, 62301, 62331, 62360, 62390, 62419, 62448, 62478,\r\n 62507, 62537, 62566, 62596, 62625, 62655, 62685, 62715, 62744, 62774, 62803, 62832, 62862, 62891, 62921, 62950, 62980, 63009,\r\n 63039, 63069, 63099, 63128, 63157, 63187, 63216, 63246, 63275, 63305, 63334, 63363, 63393, 63423, 63453, 63482, 63512, 63541,\r\n 63571, 63600, 63630, 63659, 63689, 63718, 63747, 63777, 63807, 63836, 63866, 63895, 63925, 63955, 63984, 64014, 64043, 64073,\r\n 64102, 64131, 64161, 64190, 64220, 64249, 64279, 64309, 64339, 64368, 64398, 64427, 64457, 64486, 64515, 64545, 64574, 64603,\r\n 64633, 64663, 64692, 64722, 64752, 64782, 64811, 64841, 64870, 64899, 64929, 64958, 64987, 65017, 65047, 65076, 65106, 65136,\r\n 65166, 65195, 65225, 65254, 65283, 65313, 65342, 65371, 65401, 65431, 65460, 65490, 65520, 65549, 65579, 65608, 65638, 65667,\r\n 65697, 65726, 65755, 65785, 65815, 65844, 65874, 65903, 65933, 65963, 65992, 66022, 66051, 66081, 66110, 66140, 66169, 66199,\r\n 66228, 66258, 66287, 66317, 66346, 66376, 66405, 66435, 66465, 66494, 66524, 66553, 66583, 66612, 66641, 66671, 66700, 66730,\r\n 66760, 66789, 66819, 66849, 66878, 66908, 66937, 66967, 66996, 67025, 67055, 67084, 67114, 67143, 67173, 67203, 67233, 67262,\r\n 67292, 67321, 67351, 67380, 67409, 67439, 67468, 67497, 67527, 67557, 67587, 67617, 67646, 67676, 67705, 67735, 67764, 67793,\r\n 67823, 67852, 67882, 67911, 67941, 67971, 68000, 68030, 68060, 68089, 68119, 68148, 68177, 68207, 68236, 68266, 68295, 68325,\r\n 68354, 68384, 68414, 68443, 68473, 68502, 68532, 68561, 68591, 68620, 68650, 68679, 68708, 68738, 68768, 68797, 68827, 68857,\r\n 68886, 68916, 68946, 68975, 69004, 69034, 69063, 69092, 69122, 69152, 69181, 69211, 69240, 69270, 69300, 69330, 69359, 69388,\r\n 69418, 69447, 69476, 69506, 69535, 69565, 69595, 69624, 69654, 69684, 69713, 69743, 69772, 69802, 69831, 69861, 69890, 69919,\r\n 69949, 69978, 70008, 70038, 70067, 70097, 70126, 70156, 70186, 70215, 70245, 70274, 70303, 70333, 70362, 70392, 70421, 70451,\r\n 70481, 70510, 70540, 70570, 70599, 70629, 70658, 70687, 70717, 70746, 70776, 70805, 70835, 70864, 70894, 70924, 70954, 70983,\r\n 71013, 71042, 71071, 71101, 71130, 71159, 71189, 71218, 71248, 71278, 71308, 71337, 71367, 71397, 71426, 71455, 71485, 71514,\r\n 71543, 71573, 71602, 71632, 71662, 71691, 71721, 71751, 71781, 71810, 71839, 71869, 71898, 71927, 71957, 71986, 72016, 72046,\r\n 72075, 72105, 72135, 72164, 72194, 72223, 72253, 72282, 72311, 72341, 72370, 72400, 72429, 72459, 72489, 72518, 72548, 72577,\r\n 72607, 72637, 72666, 72695, 72725, 72754, 72784, 72813, 72843, 72872, 72902, 72931, 72961, 72991, 73020, 73050, 73080, 73109,\r\n 73139, 73168, 73197, 73227, 73256, 73286, 73315, 73345, 73375, 73404, 73434, 73464, 73493, 73523, 73552, 73581, 73611, 73640,\r\n 73669, 73699, 73729, 73758, 73788, 73818, 73848, 73877, 73907, 73936, 73965, 73995, 74024, 74053, 74083, 74113, 74142, 74172,\r\n 74202, 74231, 74261, 74291, 74320, 74349, 74379, 74408, 74437, 74467, 74497, 74526, 74556, 74586, 74615, 74645, 74675, 74704,\r\n 74733, 74763, 74792, 74822, 74851, 74881, 74910, 74940, 74969, 74999, 75029, 75058, 75088, 75117, 75147, 75176, 75206, 75235,\r\n 75264, 75294, 75323, 75353, 75383, 75412, 75442, 75472, 75501, 75531, 75560, 75590, 75619, 75648, 75678, 75707, 75737, 75766,\r\n 75796, 75826, 75856, 75885, 75915, 75944, 75974, 76003, 76032, 76062, 76091, 76121, 76150, 76180, 76210, 76239, 76269, 76299,\r\n 76328, 76358, 76387, 76416, 76446, 76475, 76505, 76534, 76564, 76593, 76623, 76653, 76682, 76712, 76741, 76771, 76801, 76830,\r\n 76859, 76889, 76918, 76948, 76977, 77007, 77036, 77066, 77096, 77125, 77155, 77185, 77214, 77243, 77273, 77302, 77332, 77361,\r\n 77390, 77420, 77450, 77479, 77509, 77539, 77569, 77598, 77627, 77657, 77686, 77715, 77745, 77774, 77804, 77833, 77863, 77893,\r\n 77923, 77952, 77982, 78011, 78041, 78070, 78099, 78129, 78158, 78188, 78217, 78247, 78277, 78307, 78336, 78366, 78395, 78425,\r\n 78454, 78483, 78513, 78542, 78572, 78601, 78631, 78661, 78690, 78720, 78750, 78779, 78808, 78838, 78867, 78897, 78926, 78956,\r\n 78985, 79015, 79044, 79074, 79104, 79133, 79163, 79192, 79222, 79251, 79281, 79310, 79340, 79369, 79399, 79428, 79458, 79487,\r\n 79517, 79546, 79576, 79606, 79635, 79665, 79695, 79724, 79753, 79783, 79812, 79841, 79871, 79900, 79930, 79960, 79990\r\n ];\r\n /**\r\n *\r\n * @param {Date} gDate ?\r\n * @returns {Object} ?\r\n */\r\n function getHijriDate(gDate) {\r\n var day = gDate.getDate();\r\n var month = gDate.getMonth();\r\n var year = gDate.getFullYear();\r\n var tMonth = month + 1;\r\n var tYear = year;\r\n if (tMonth < 3) {\r\n tYear -= 1;\r\n tMonth += 12;\r\n }\r\n var yPrefix = Math.floor(tYear / 100.);\r\n var julilanOffset = yPrefix - Math.floor(yPrefix / 4.) - 2;\r\n var julianNumber = Math.floor(365.25 * (tYear + 4716)) + Math.floor(30.6001 * (tMonth + 1)) + day - julilanOffset - 1524;\r\n yPrefix = Math.floor((julianNumber - 1867216.25) / 36524.25);\r\n julilanOffset = yPrefix - Math.floor(yPrefix / 4.) + 1;\r\n var b = julianNumber + julilanOffset + 1524;\r\n var c = Math.floor((b - 122.1) / 365.25);\r\n var d = Math.floor(365.25 * c);\r\n var tempMonth = Math.floor((b - d) / 30.6001);\r\n day = (b - d) - Math.floor(30.6001 * tempMonth);\r\n month = Math.floor((b - d) / 20.6001);\r\n if (month > 13) {\r\n c += 1;\r\n month -= 12;\r\n }\r\n month -= 1;\r\n year = c - 4716;\r\n var modifiedJulianDate = julianNumber - 2400000;\r\n // date calculation for year after 2077\r\n var iyear = 10631. / 30.;\r\n var z = julianNumber - 1948084;\r\n var cyc = Math.floor(z / 10631.);\r\n z = z - 10631 * cyc;\r\n var j = Math.floor((z - 0.1335) / iyear);\r\n var iy = 30 * cyc + j;\r\n z = z - Math.floor(j * iyear + 0.1335);\r\n var im = Math.floor((z + 28.5001) / 29.5);\r\n /* istanbul ignore next */\r\n if (im === 13) {\r\n im = 12;\r\n }\r\n var tempDay = z - Math.floor(29.5001 * im - 29);\r\n var i = 0;\r\n for (; i < dateCorrection.length; i++) {\r\n if (dateCorrection[i] > modifiedJulianDate) {\r\n break;\r\n }\r\n }\r\n var iln = i + 16260;\r\n var ii = Math.floor((iln - 1) / 12);\r\n var hYear = ii + 1;\r\n var hmonth = iln - 12 * ii;\r\n var hDate = modifiedJulianDate - dateCorrection[i - 1] + 1;\r\n if ((hDate + '').length > 2) {\r\n hDate = tempDay;\r\n hmonth = im;\r\n hYear = iy;\r\n }\r\n return { year: hYear, month: hmonth, date: hDate };\r\n }\r\n HijriParser.getHijriDate = getHijriDate;\r\n /**\r\n *\r\n * @param {number} year ?\r\n * @param {number} month ?\r\n * @param {number} day ?\r\n * @returns {Date} ?\r\n */\r\n function toGregorian(year, month, day) {\r\n var iy = year;\r\n var im = month;\r\n var id = day;\r\n var ii = iy - 1;\r\n var iln = (ii * 12) + 1 + (im - 1);\r\n var i = iln - 16260;\r\n var mcjdn = id + dateCorrection[i - 1] - 1;\r\n var julianDate = mcjdn + 2400000;\r\n var z = Math.floor(julianDate + 0.5);\r\n var a = Math.floor((z - 1867216.25) / 36524.25);\r\n a = z + 1 + a - Math.floor(a / 4);\r\n var b = a + 1524;\r\n var c = Math.floor((b - 122.1) / 365.25);\r\n var d = Math.floor(365.25 * c);\r\n var e = Math.floor((b - d) / 30.6001);\r\n var gDay = b - d - Math.floor(e * 30.6001);\r\n var gMonth = e - (e > 13.5 ? 13 : 1);\r\n var gYear = c - (gMonth > 2.5 ? 4716 : 4715);\r\n /* istanbul ignore next */\r\n if (gYear <= 0) {\r\n gMonth--;\r\n } // No year zero\r\n return new Date(gYear + '/' + (gMonth) + '/' + gDay);\r\n }\r\n HijriParser.toGregorian = toGregorian;\r\n})(HijriParser || (HijriParser = {}));\r\n","/**\n * Base modules\n */\nexport * from './intl/intl-base';\nexport * from './ajax';\nexport * from './animation';\nexport * from './base';\nexport * from './browser';\nexport * from './component';\nexport * from './child-property';\nexport * from './draggable';\nexport * from './droppable';\nexport * from './event-handler';\nexport * from './internationalization';\nexport * from './keyboard';\nexport * from './l10n';\nexport * from './module-loader';\nexport * from './notify-property-change';\nexport * from './touch';\nexport * from './hijri-parser';\nexport * from './template-engine';\nexport * from './util';\nexport * from './dom';\nexport * from './observer';\nexport * from './sanitize-helper';\n","import { DateFormat } from './intl/date-formatter';\r\nimport { NumberFormat } from './intl/number-formatter';\r\nimport { DateParser } from './intl/date-parser';\r\nimport { NumberParser } from './intl/number-parser';\r\nimport { IntlBase } from './intl/intl-base';\r\nimport { extend, getValue, isBlazor } from './util';\r\nimport { Observer } from './observer';\r\n/**\r\n * Specifies the observer used for external change detection.\r\n */\r\nexport var onIntlChange = new Observer();\r\n/**\r\n * Specifies the default rtl status for EJ2 components.\r\n */\r\nexport var rightToLeft = false;\r\n/**\r\n * Specifies the CLDR data loaded for internationalization functionalities.\r\n *\r\n * @private\r\n */\r\nexport var cldrData = {};\r\n/**\r\n * Specifies the default culture value to be considered.\r\n *\r\n * @private\r\n */\r\nexport var defaultCulture = 'en-US';\r\n/**\r\n * Specifies default currency code to be considered\r\n *\r\n * @private\r\n */\r\nexport var defaultCurrencyCode = 'USD';\r\nvar mapper = ['numericObject', 'dateObject'];\r\n/**\r\n * Internationalization class provides support to parse and format the number and date object to the desired format.\r\n * ```typescript\r\n * // To set the culture globally\r\n * setCulture('en-GB');\r\n *\r\n * // To set currency code globally\r\n * setCurrencyCode('EUR');\r\n *\r\n * //Load cldr data\r\n * loadCldr(gregorainData);\r\n * loadCldr(timeZoneData);\r\n * loadCldr(numbersData);\r\n * loadCldr(numberSystemData);\r\n *\r\n * // To use formatter in component side\r\n * let Intl:Internationalization = new Internationalization();\r\n *\r\n * // Date formatting\r\n * let dateFormatter: Function = Intl.getDateFormat({skeleton:'long',type:'dateTime'});\r\n * dateFormatter(new Date('11/2/2016'));\r\n * dateFormatter(new Date('25/2/2030'));\r\n * Intl.formatDate(new Date(),{skeleton:'E'});\r\n *\r\n * //Number formatting\r\n * let numberFormatter: Function = Intl.getNumberFormat({skeleton:'C5'})\r\n * numberFormatter(24563334);\r\n * Intl.formatNumber(123123,{skeleton:'p2'});\r\n *\r\n * // Date parser\r\n * let dateParser: Function = Intl.getDateParser({skeleton:'short',type:'time'});\r\n * dateParser('10:30 PM');\r\n * Intl.parseDate('10',{skeleton:'H'});\r\n * ```\r\n */\r\nvar Internationalization = /** @class */ (function () {\r\n function Internationalization(cultureName) {\r\n if (cultureName) {\r\n this.culture = cultureName;\r\n }\r\n }\r\n /**\r\n * Returns the format function for given options.\r\n *\r\n * @param {DateFormatOptions} options - Specifies the format options in which the format function will return.\r\n * @returns {Function} ?\r\n */\r\n Internationalization.prototype.getDateFormat = function (options) {\r\n return DateFormat.dateFormat(this.getCulture(), options || { type: 'date', skeleton: 'short' }, cldrData);\r\n };\r\n /**\r\n * Returns the format function for given options.\r\n *\r\n * @param {NumberFormatOptions} options - Specifies the format options in which the format function will return.\r\n * @returns {Function} ?\r\n */\r\n Internationalization.prototype.getNumberFormat = function (options) {\r\n if (options && !options.currency) {\r\n options.currency = defaultCurrencyCode;\r\n }\r\n if (isBlazor() && options && !options.format) {\r\n options.minimumFractionDigits = 0;\r\n }\r\n return NumberFormat.numberFormatter(this.getCulture(), options || {}, cldrData);\r\n };\r\n /**\r\n * Returns the parser function for given options.\r\n *\r\n * @param {DateFormatOptions} options - Specifies the format options in which the parser function will return.\r\n * @returns {Function} ?\r\n */\r\n Internationalization.prototype.getDateParser = function (options) {\r\n return DateParser.dateParser(this.getCulture(), options || { skeleton: 'short', type: 'date' }, cldrData);\r\n };\r\n /**\r\n * Returns the parser function for given options.\r\n *\r\n * @param {NumberFormatOptions} options - Specifies the format options in which the parser function will return.\r\n * @returns {Function} ?\r\n */\r\n Internationalization.prototype.getNumberParser = function (options) {\r\n if (isBlazor() && options && !options.format) {\r\n options.minimumFractionDigits = 0;\r\n }\r\n return NumberParser.numberParser(this.getCulture(), options || { format: 'N' }, cldrData);\r\n };\r\n /**\r\n * Returns the formatted string based on format options.\r\n *\r\n * @param {number} value - Specifies the number to format.\r\n * @param {NumberFormatOptions} option - Specifies the format options in which the number will be formatted.\r\n * @returns {string} ?\r\n */\r\n Internationalization.prototype.formatNumber = function (value, option) {\r\n return this.getNumberFormat(option)(value);\r\n };\r\n /**\r\n * Returns the formatted date string based on format options.\r\n *\r\n * @param {Date} value - Specifies the number to format.\r\n * @param {DateFormatOptions} option - Specifies the format options in which the number will be formatted.\r\n * @returns {string} ?\r\n */\r\n Internationalization.prototype.formatDate = function (value, option) {\r\n return this.getDateFormat(option)(value);\r\n };\r\n /**\r\n * Returns the date object for given date string and options.\r\n *\r\n * @param {string} value - Specifies the string to parse.\r\n * @param {DateFormatOptions} option - Specifies the parse options in which the date string will be parsed.\r\n * @returns {Date} ?\r\n */\r\n Internationalization.prototype.parseDate = function (value, option) {\r\n return this.getDateParser(option)(value);\r\n };\r\n /**\r\n * Returns the number object from the given string value and options.\r\n *\r\n * @param {string} value - Specifies the string to parse.\r\n * @param {NumberFormatOptions} option - Specifies the parse options in which the string number will be parsed.\r\n * @returns {number} ?\r\n */\r\n Internationalization.prototype.parseNumber = function (value, option) {\r\n return this.getNumberParser(option)(value);\r\n };\r\n /**\r\n * Returns Native Date Time Pattern\r\n *\r\n * @param {DateFormatOptions} option - Specifies the parse options for resultant date time pattern.\r\n * @param {boolean} isExcelFormat - Specifies format value to be converted to excel pattern.\r\n * @returns {string} ?\r\n * @private\r\n */\r\n Internationalization.prototype.getDatePattern = function (option, isExcelFormat) {\r\n return IntlBase.getActualDateTimeFormat(this.getCulture(), option, cldrData, isExcelFormat);\r\n };\r\n /**\r\n * Returns Native Number Pattern\r\n *\r\n * @param {NumberFormatOptions} option - Specifies the parse options for resultant number pattern.\r\n * @param {boolean} isExcel ?\r\n * @returns {string} ?\r\n * @private\r\n */\r\n Internationalization.prototype.getNumberPattern = function (option, isExcel) {\r\n return IntlBase.getActualNumberFormat(this.getCulture(), option, cldrData, isExcel);\r\n };\r\n /**\r\n * Returns the First Day of the Week\r\n *\r\n * @returns {number} ?\r\n */\r\n Internationalization.prototype.getFirstDayOfWeek = function () {\r\n return IntlBase.getWeekData(this.getCulture(), cldrData);\r\n };\r\n /**\r\n * Returns the culture\r\n *\r\n * @returns {string} ?\r\n */\r\n Internationalization.prototype.getCulture = function () {\r\n return this.culture || defaultCulture;\r\n };\r\n return Internationalization;\r\n}());\r\nexport { Internationalization };\r\n/**\r\n * Set the default culture to all EJ2 components\r\n *\r\n * @param {string} cultureName - Specifies the culture name to be set as default culture.\r\n * @returns {void} ?\r\n */\r\nexport function setCulture(cultureName) {\r\n defaultCulture = cultureName;\r\n onIntlChange.notify('notifyExternalChange', { 'locale': defaultCulture });\r\n}\r\n/**\r\n * Set the default currency code to all EJ2 components\r\n *\r\n * @param {string} currencyCode Specifies the culture name to be set as default culture.\r\n * @returns {void} ?\r\n */\r\nexport function setCurrencyCode(currencyCode) {\r\n defaultCurrencyCode = currencyCode;\r\n onIntlChange.notify('notifyExternalChange', { 'currencyCode': defaultCurrencyCode });\r\n}\r\n/**\r\n * Load the CLDR data into context\r\n *\r\n * @param {Object[]} data Specifies the CLDR data's to be used for formatting and parser.\r\n * @returns {void} ?\r\n */\r\nexport function loadCldr() {\r\n var data = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n data[_i] = arguments[_i];\r\n }\r\n for (var _a = 0, data_1 = data; _a < data_1.length; _a++) {\r\n var obj = data_1[_a];\r\n extend(cldrData, obj, {}, true);\r\n }\r\n}\r\n/**\r\n * To enable or disable RTL functionality for all components globally.\r\n *\r\n * @param {boolean} status - Optional argument Specifies the status value to enable or disable rtl option.\r\n * @returns {void} ?\r\n */\r\nexport function enableRtl(status) {\r\n if (status === void 0) { status = true; }\r\n rightToLeft = status;\r\n onIntlChange.notify('notifyExternalChange', { enableRtl: rightToLeft });\r\n}\r\n/**\r\n * To get the numeric CLDR object for given culture\r\n *\r\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\r\n * @param {string} type ?\r\n * @returns {Object} ?\r\n * @ignore\r\n * @private\r\n */\r\nexport function getNumericObject(locale, type) {\r\n // eslint-disable-next-line\r\n var numObject = IntlBase.getDependables(cldrData, locale, '', true)[mapper[0]];\r\n // eslint-disable-next-line\r\n var dateObject = IntlBase.getDependables(cldrData, locale, '')[mapper[1]];\r\n var numSystem = getValue('defaultNumberingSystem', numObject);\r\n var symbPattern = isBlazor() ? getValue('numberSymbols', numObject) : getValue('symbols-numberSystem-' + numSystem, numObject);\r\n var pattern = IntlBase.getSymbolPattern(type || 'decimal', numSystem, numObject, false);\r\n return extend(symbPattern, IntlBase.getFormatData(pattern, true, '', true), { 'dateSeparator': IntlBase.getDateSeparator(dateObject) });\r\n}\r\n/**\r\n * To get the numeric CLDR number base object for given culture\r\n *\r\n * @param {string} locale - Specifies the locale for which numericObject to be returned.\r\n * @param {string} currency - Specifies the currency for which numericObject to be returned.\r\n * @returns {string} ?\r\n * @ignore\r\n * @private\r\n */\r\nexport function getNumberDependable(locale, currency) {\r\n // eslint-disable-next-line\r\n var numObject = IntlBase.getDependables(cldrData, locale, '', true);\r\n // eslint-disable-next-line\r\n return IntlBase.getCurrencySymbol(numObject.numericObject, currency);\r\n}\r\n/**\r\n * To get the default date CLDR object.\r\n *\r\n * @param {string} mode ?\r\n * @returns {Object} ?\r\n * @ignore\r\n * @private\r\n */\r\nexport function getDefaultDateObject(mode) {\r\n // eslint-disable-next-line\r\n return IntlBase.getDependables(cldrData, '', mode, false)[mapper[1]];\r\n}\r\n","import { ParserBase as parser } from './parser-base';\r\nimport { IntlBase as base } from './intl-base';\r\nimport { isUndefined, throwError, getValue, isBlazor } from '../util';\r\nimport { HijriParser } from '../hijri-parser';\r\nimport { isNullOrUndefined, extend } from '../util';\r\nvar abbreviateRegexGlobal = /\\/MMMMM|MMMM|MMM|a|LLLL|LLL|EEEEE|EEEE|E|K|cccc|ccc|WW|W|G+|z+/gi;\r\nvar standalone = 'stand-alone';\r\nvar weekdayKey = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\r\nexport var basicPatterns = ['short', 'medium', 'long', 'full'];\r\nvar timeSetter = {\r\n m: 'getMinutes',\r\n h: 'getHours',\r\n H: 'getHours',\r\n s: 'getSeconds',\r\n d: 'getDate',\r\n f: 'getMilliseconds'\r\n};\r\nexport var datePartMatcher = {\r\n 'M': 'month',\r\n 'd': 'day',\r\n 'E': 'weekday',\r\n 'c': 'weekday',\r\n 'y': 'year',\r\n 'm': 'minute',\r\n 'h': 'hour',\r\n 'H': 'hour',\r\n 's': 'second',\r\n 'L': 'month',\r\n 'a': 'designator',\r\n 'z': 'timeZone',\r\n 'Z': 'timeZone',\r\n 'G': 'era',\r\n 'f': 'milliseconds'\r\n};\r\nvar timeSeparator = 'timeSeparator';\r\n/* tslint:disable no-any */\r\n/**\r\n * Date Format is a framework provides support for date formatting.\r\n *\r\n * @private\r\n */\r\nvar DateFormat = /** @class */ (function () {\r\n function DateFormat() {\r\n }\r\n /**\r\n * Returns the formatter function for given skeleton.\r\n *\r\n * @param {string} culture - Specifies the culture name to be which formatting.\r\n * @param {DateFormatOptions} option - Specific the format in which date will format.\r\n * @param {Object} cldr - Specifies the global cldr data collection.\r\n * @returns {Function} ?\r\n */\r\n DateFormat.dateFormat = function (culture, option, cldr) {\r\n var _this = this;\r\n var dependable = base.getDependables(cldr, culture, option.calendar);\r\n var numObject = getValue('parserObject.numbers', dependable);\r\n var dateObject = dependable.dateObject;\r\n var formatOptions = { isIslamic: base.islamicRegex.test(option.calendar) };\r\n if (isBlazor() && option.isServerRendered) {\r\n option = base.compareBlazorDateFormats(option, culture);\r\n }\r\n var resPattern = option.format ||\r\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\r\n formatOptions.dateSeperator = isBlazor() ? getValue('dateSeperator', dateObject) : base.getDateSeparator(dependable.dateObject);\r\n if (isUndefined(resPattern)) {\r\n throwError('Format options or type given must be invalid');\r\n }\r\n else {\r\n resPattern = base.ConvertDateToWeekFormat(resPattern);\r\n if (isBlazor()) {\r\n resPattern = resPattern.replace(/tt/, 'a');\r\n }\r\n formatOptions.pattern = resPattern;\r\n formatOptions.numMapper = isBlazor() ?\r\n extend({}, numObject) : parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\r\n var patternMatch = resPattern.match(abbreviateRegexGlobal) || [];\r\n for (var _i = 0, patternMatch_1 = patternMatch; _i < patternMatch_1.length; _i++) {\r\n var str = patternMatch_1[_i];\r\n var len = str.length;\r\n var char = str[0];\r\n if (char === 'K') {\r\n char = 'h';\r\n }\r\n switch (char) {\r\n case 'E':\r\n case 'c':\r\n if (isBlazor()) {\r\n // eslint-disable-next-line\r\n formatOptions.weekday = getValue('days.' + base.monthIndex[len], dateObject);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n formatOptions.weekday = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\r\n }\r\n break;\r\n case 'M':\r\n case 'L':\r\n if (isBlazor()) {\r\n // eslint-disable-next-line\r\n formatOptions.month = getValue('months.' + base.monthIndex[len], dateObject);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n formatOptions.month = dependable.dateObject[base.month][standalone][base.monthIndex[len]];\r\n }\r\n break;\r\n case 'a':\r\n formatOptions.designator = isBlazor() ?\r\n getValue('dayPeriods', dateObject) : getValue('dayPeriods.format.wide', dateObject);\r\n break;\r\n case 'G':\r\n // eslint-disable-next-line\r\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\r\n formatOptions.era = isBlazor() ? getValue('eras', dateObject) : getValue('eras.' + eText, dependable.dateObject);\r\n break;\r\n case 'z':\r\n formatOptions.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\r\n break;\r\n }\r\n }\r\n }\r\n return function (value) {\r\n if (isNaN(value.getDate())) {\r\n return null;\r\n }\r\n return _this.intDateFormatter(value, formatOptions);\r\n };\r\n };\r\n /**\r\n * Returns formatted date string based on options passed.\r\n *\r\n * @param {Date} value ?\r\n * @param {FormatOptions} options ?\r\n * @returns {string} ?\r\n */\r\n DateFormat.intDateFormatter = function (value, options) {\r\n var pattern = options.pattern;\r\n var ret = '';\r\n var matches = pattern.match(base.dateParseRegex);\r\n var dObject = this.getCurrentDateValue(value, options.isIslamic);\r\n for (var _i = 0, matches_1 = matches; _i < matches_1.length; _i++) {\r\n var match = matches_1[_i];\r\n var length_1 = match.length;\r\n var char = match[0];\r\n if (char === 'K') {\r\n char = 'h';\r\n }\r\n var curval = void 0;\r\n var curvalstr = '';\r\n var isNumber = void 0;\r\n var processNumber = void 0;\r\n var curstr = '';\r\n switch (char) {\r\n case 'M':\r\n case 'L':\r\n curval = dObject.month;\r\n if (length_1 > 2) {\r\n // eslint-disable-next-line\r\n ret += options.month[curval];\r\n }\r\n else {\r\n isNumber = true;\r\n }\r\n break;\r\n case 'E':\r\n case 'c':\r\n // eslint-disable-next-line\r\n ret += options.weekday[weekdayKey[value.getDay()]];\r\n break;\r\n case 'H':\r\n case 'h':\r\n case 'm':\r\n case 's':\r\n case 'd':\r\n case 'f':\r\n isNumber = true;\r\n if (char === 'd') {\r\n curval = dObject.date;\r\n }\r\n else if (char === 'f') {\r\n isNumber = false;\r\n processNumber = true;\r\n // eslint-disable-next-line\r\n curvalstr = value[timeSetter[char]]().toString();\r\n curvalstr = curvalstr.substring(0, length_1);\r\n var curlength = curvalstr.length;\r\n if (length_1 !== curlength) {\r\n if (length_1 > 3) {\r\n continue;\r\n }\r\n for (var i = 0; i < length_1 - curlength; i++) {\r\n curvalstr = '0' + curvalstr.toString();\r\n }\r\n }\r\n curstr += curvalstr;\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n curval = value[timeSetter[char]]();\r\n }\r\n if (char === 'h') {\r\n curval = curval % 12 || 12;\r\n }\r\n break;\r\n case 'y':\r\n processNumber = true;\r\n curstr += dObject.year;\r\n if (length_1 === 2) {\r\n curstr = curstr.substr(curstr.length - 2);\r\n }\r\n break;\r\n case 'a':\r\n // eslint-disable-next-line\r\n var desig = value.getHours() < 12 ? 'am' : 'pm';\r\n // eslint-disable-next-line\r\n ret += options.designator[desig];\r\n break;\r\n case 'G':\r\n // eslint-disable-next-line\r\n var dec = value.getFullYear() < 0 ? 0 : 1;\r\n // eslint-disable-next-line\r\n var retu = options.era[dec];\r\n if (isNullOrUndefined(retu)) {\r\n // eslint-disable-next-line\r\n retu = options.era[dec ? 0 : 1];\r\n }\r\n ret += retu || '';\r\n break;\r\n case '\\'':\r\n ret += (match === '\\'\\'') ? '\\'' : match.replace(/'/g, '');\r\n break;\r\n case 'z':\r\n // eslint-disable-next-line\r\n var timezone = value.getTimezoneOffset();\r\n // eslint-disable-next-line\r\n var pattern_1 = (length_1 < 4) ? '+H;-H' : options.timeZone.hourFormat;\r\n pattern_1 = pattern_1.replace(/:/g, options.numMapper.timeSeparator);\r\n if (timezone === 0) {\r\n ret += options.timeZone.gmtZeroFormat;\r\n }\r\n else {\r\n processNumber = true;\r\n curstr = this.getTimeZoneValue(timezone, pattern_1);\r\n }\r\n curstr = options.timeZone.gmtFormat.replace(/\\{0\\}/, curstr);\r\n break;\r\n case ':':\r\n // eslint-disable-next-line\r\n ret += options.numMapper.numberSymbols[timeSeparator];\r\n break;\r\n case '/':\r\n ret += options.dateSeperator;\r\n break;\r\n case 'W':\r\n isNumber = true;\r\n curval = base.getWeekOfYear(value);\r\n break;\r\n default:\r\n ret += match;\r\n }\r\n if (isNumber) {\r\n processNumber = true;\r\n curstr = this.checkTwodigitNumber(curval, length_1);\r\n }\r\n if (processNumber) {\r\n ret += parser.convertValueParts(curstr, base.latnParseRegex, options.numMapper.mapper);\r\n }\r\n }\r\n return ret;\r\n };\r\n DateFormat.getCurrentDateValue = function (value, isIslamic) {\r\n if (isIslamic) {\r\n return HijriParser.getHijriDate(value);\r\n }\r\n return { year: value.getFullYear(), month: value.getMonth() + 1, date: value.getDate() };\r\n };\r\n /**\r\n * Returns two digit numbers for given value and length\r\n *\r\n * @param {number} val ?\r\n * @param {number} len ?\r\n * @returns {string} ?\r\n */\r\n DateFormat.checkTwodigitNumber = function (val, len) {\r\n var ret = val + '';\r\n if (len === 2 && ret.length !== 2) {\r\n return '0' + ret;\r\n }\r\n return ret;\r\n };\r\n /**\r\n * Returns the value of the Time Zone.\r\n *\r\n * @param {number} tVal ?\r\n * @param {string} pattern ?\r\n * @returns {string} ?\r\n * @private\r\n */\r\n DateFormat.getTimeZoneValue = function (tVal, pattern) {\r\n var _this = this;\r\n var splt = pattern.split(';');\r\n var curPattern = splt[tVal > 0 ? 1 : 0];\r\n var no = Math.abs(tVal);\r\n return curPattern = curPattern.replace(/HH?|mm/g, function (str) {\r\n var len = str.length;\r\n var ishour = str.indexOf('H') !== -1;\r\n return _this.checkTwodigitNumber(Math.floor(ishour ? (no / 60) : (no % 60)), len);\r\n });\r\n };\r\n return DateFormat;\r\n}());\r\nexport { DateFormat };\r\n","import { IntlBase as base } from './intl-base';\r\nimport { ParserBase as parser } from './parser-base';\r\nimport { isUndefined, throwError, getValue, isNullOrUndefined, isBlazor } from '../util';\r\nimport { datePartMatcher } from './date-formatter';\r\nimport { HijriParser } from '../hijri-parser';\r\nvar standalone = 'stand-alone';\r\nvar latnRegex = /^[0-9]*$/;\r\nvar timeSetter = {\r\n minute: 'setMinutes',\r\n hour: 'setHours',\r\n second: 'setSeconds',\r\n day: 'setDate',\r\n month: 'setMonth',\r\n milliseconds: 'setMilliseconds'\r\n};\r\nvar month = 'months';\r\n/* tslint:disable no-any */\r\n/**\r\n * Date Parser.\r\n *\r\n * @private\r\n */\r\nvar DateParser = /** @class */ (function () {\r\n function DateParser() {\r\n }\r\n /**\r\n * Returns the parser function for given skeleton.\r\n *\r\n * @param {string} culture - Specifies the culture name to be which formatting.\r\n * @param {DateFormatOptions} option - Specific the format in which string date will be parsed.\r\n * @param {Object} cldr - Specifies the global cldr data collection.\r\n * @returns {Function} ?\r\n */\r\n DateParser.dateParser = function (culture, option, cldr) {\r\n var _this = this;\r\n var dependable = base.getDependables(cldr, culture, option.calendar);\r\n var numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), false, isBlazor());\r\n var parseOptions = {};\r\n if (isBlazor() && option.isServerRendered) {\r\n option = base.compareBlazorDateFormats(option, culture);\r\n }\r\n var resPattern = option.format ||\r\n base.getResultantPattern(option.skeleton, dependable.dateObject, option.type, false, isBlazor() ? culture : '');\r\n var regexString = '';\r\n var hourOnly;\r\n if (isUndefined(resPattern)) {\r\n throwError('Format options or type given must be invalid');\r\n }\r\n else {\r\n resPattern = base.ConvertDateToWeekFormat(resPattern);\r\n parseOptions = { isIslamic: base.islamicRegex.test(option.calendar), pattern: resPattern, evalposition: {}, culture: culture };\r\n var patternMatch = resPattern.match(base.dateParseRegex) || [];\r\n var length_1 = patternMatch.length;\r\n var gmtCorrection = 0;\r\n var zCorrectTemp = 0;\r\n var isgmtTraversed = false;\r\n var nRegx = numOptions.numericRegex;\r\n // eslint-disable-next-line\r\n var numMapper = isBlazor() ? dependable.parserObject.numbers :\r\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\r\n for (var i = 0; i < length_1; i++) {\r\n var str = patternMatch[i];\r\n var len = str.length;\r\n var char = (str[0] === 'K') ? 'h' : str[0];\r\n var isNumber = void 0;\r\n var canUpdate = void 0;\r\n // eslint-disable-next-line\r\n var charKey = datePartMatcher[char];\r\n var optional = (len === 2) ? '' : '?';\r\n if (isgmtTraversed) {\r\n gmtCorrection = zCorrectTemp;\r\n isgmtTraversed = false;\r\n }\r\n switch (char) {\r\n case 'E':\r\n case 'c':\r\n // eslint-disable-next-line\r\n var weekData = void 0;\r\n if (isBlazor()) {\r\n // eslint-disable-next-line\r\n weekData = getValue('days.' + base.monthIndex[len], dependable.dateObject);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n weekData = dependable.dateObject[base.days][standalone][base.monthIndex[len]];\r\n }\r\n // eslint-disable-next-line\r\n var weekObject = parser.reverseObject(weekData);\r\n // tslint:enable\r\n regexString += '(' + Object.keys(weekObject).join('|') + ')';\r\n break;\r\n case 'M':\r\n case 'L':\r\n case 'd':\r\n case 'm':\r\n case 's':\r\n case 'h':\r\n case 'H':\r\n case 'f':\r\n canUpdate = true;\r\n if ((char === 'M' || char === 'L') && len > 2) {\r\n var monthData = void 0;\r\n if (isBlazor()) {\r\n // eslint-disable-next-line\r\n monthData = getValue('months.' + base.monthIndex[len], dependable.dateObject);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n monthData = dependable.dateObject[month][standalone][base.monthIndex[len]];\r\n }\r\n // eslint-disable-next-line\r\n parseOptions[charKey] = parser.reverseObject(monthData);\r\n // eslint-disable-next-line\r\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\r\n }\r\n else if (char === 'f') {\r\n if (len > 3) {\r\n continue;\r\n }\r\n isNumber = true;\r\n regexString += '(' + nRegx + nRegx + '?' + nRegx + '?' + ')';\r\n }\r\n else {\r\n isNumber = true;\r\n regexString += '(' + nRegx + nRegx + optional + ')';\r\n }\r\n if (char === 'h') {\r\n parseOptions.hour12 = true;\r\n }\r\n break;\r\n case 'W':\r\n // eslint-disable-next-line\r\n var opt = len === 1 ? '?' : '';\r\n regexString += '(' + nRegx + opt + nRegx + ')';\r\n break;\r\n case 'y':\r\n canUpdate = isNumber = true;\r\n if (len === 2) {\r\n regexString += '(' + nRegx + nRegx + ')';\r\n }\r\n else {\r\n regexString += '(' + nRegx + '{' + len + ',})';\r\n }\r\n break;\r\n case 'a':\r\n canUpdate = true;\r\n // eslint-disable-next-line\r\n var periodValur = isBlazor() ?\r\n getValue('dayPeriods', dependable.dateObject) :\r\n getValue('dayPeriods.format.wide', dependable.dateObject);\r\n // eslint-disable-next-line\r\n parseOptions[charKey] = parser.reverseObject(periodValur);\r\n // eslint-disable-next-line\r\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + ')';\r\n break;\r\n case 'G':\r\n canUpdate = true;\r\n // eslint-disable-next-line\r\n var eText = (len <= 3) ? 'eraAbbr' : (len === 4) ? 'eraNames' : 'eraNarrow';\r\n // eslint-disable-next-line\r\n parseOptions[charKey] = parser.reverseObject(isBlazor() ?\r\n getValue('eras', dependable.dateObject) : getValue('eras.' + eText, dependable.dateObject));\r\n // eslint-disable-next-line\r\n regexString += '(' + Object.keys(parseOptions[charKey]).join('|') + '?)';\r\n break;\r\n case 'z':\r\n // eslint-disable-next-line\r\n var tval = new Date().getTimezoneOffset();\r\n canUpdate = (tval !== 0);\r\n // eslint-disable-next-line\r\n parseOptions[charKey] = getValue('dates.timeZoneNames', dependable.parserObject);\r\n // eslint-disable-next-line\r\n var tzone = parseOptions[charKey];\r\n hourOnly = (len < 4);\r\n // eslint-disable-next-line\r\n var hpattern = hourOnly ? '+H;-H' : tzone.hourFormat;\r\n hpattern = hpattern.replace(/:/g, numMapper.timeSeparator);\r\n regexString += '(' + this.parseTimeZoneRegx(hpattern, tzone, nRegx) + ')?';\r\n isgmtTraversed = true;\r\n zCorrectTemp = hourOnly ? 6 : 12;\r\n break;\r\n case '\\'':\r\n // eslint-disable-next-line\r\n var iString = str.replace(/'/g, '');\r\n regexString += '(' + iString + ')?';\r\n break;\r\n default:\r\n regexString += '([\\\\D])';\r\n break;\r\n }\r\n if (canUpdate) {\r\n parseOptions.evalposition[charKey] = { isNumber: isNumber, pos: i + 1 + gmtCorrection, hourOnly: hourOnly };\r\n }\r\n if (i === length_1 - 1 && !isNullOrUndefined(regexString)) {\r\n parseOptions.parserRegex = new RegExp('^' + regexString + '$', 'i');\r\n }\r\n }\r\n }\r\n return function (value) {\r\n var parsedDateParts = _this.internalDateParse(value, parseOptions, numOptions);\r\n if (isNullOrUndefined(parsedDateParts) || !Object.keys(parsedDateParts).length) {\r\n return null;\r\n }\r\n if (parseOptions.isIslamic) {\r\n var dobj = {};\r\n var tYear = parsedDateParts.year;\r\n var tDate = parsedDateParts.day;\r\n var tMonth = parsedDateParts.month;\r\n var ystrig = tYear ? (tYear + '') : '';\r\n var is2DigitYear = (ystrig.length === 2);\r\n if (!tYear || !tMonth || !tDate || is2DigitYear) {\r\n dobj = HijriParser.getHijriDate(new Date());\r\n }\r\n if (is2DigitYear) {\r\n tYear = parseInt((dobj.year + '').slice(0, 2) + ystrig, 10);\r\n }\r\n // tslint:disable-next-line\r\n var dateObject = HijriParser.toGregorian(tYear || dobj.year, tMonth || dobj.month, tDate || dobj.date);\r\n parsedDateParts.year = dateObject.getFullYear();\r\n parsedDateParts.month = dateObject.getMonth() + 1;\r\n parsedDateParts.day = dateObject.getDate();\r\n }\r\n return _this.getDateObject(parsedDateParts);\r\n };\r\n };\r\n /* tslint:disable */\r\n /**\r\n * Returns date object for provided date options\r\n *\r\n * @param {DateParts} options ?\r\n * @param {Date} value ?\r\n * @returns {Date} ?\r\n */\r\n DateParser.getDateObject = function (options, value) {\r\n var res = value || new Date();\r\n res.setMilliseconds(0);\r\n var tKeys = ['hour', 'minute', 'second', 'milliseconds', 'month', 'day'];\r\n var y = options.year;\r\n var desig = options.designator;\r\n var tzone = options.timeZone;\r\n if (!isUndefined(y)) {\r\n var len = (y + '').length;\r\n if (len <= 2) {\r\n var century = Math.floor(res.getFullYear() / 100) * 100;\r\n y += century;\r\n }\r\n res.setFullYear(y);\r\n }\r\n for (var _i = 0, tKeys_1 = tKeys; _i < tKeys_1.length; _i++) {\r\n var key = tKeys_1[_i];\r\n // eslint-disable-next-line\r\n var tValue = options[key];\r\n if (isUndefined(tValue) && key === 'day') {\r\n res.setDate(1);\r\n }\r\n if (!isUndefined(tValue)) {\r\n if (key === 'month') {\r\n tValue -= 1;\r\n if (tValue < 0 || tValue > 11) {\r\n return new Date('invalid');\r\n }\r\n var pDate = res.getDate();\r\n res.setDate(1);\r\n // eslint-disable-next-line\r\n res[timeSetter[key]](tValue);\r\n var lDate = new Date(res.getFullYear(), tValue + 1, 0).getDate();\r\n res.setDate(pDate < lDate ? pDate : lDate);\r\n }\r\n else {\r\n if (key === 'day') {\r\n var lastDay = new Date(res.getFullYear(), res.getMonth() + 1, 0).getDate();\r\n if ((tValue < 1 || tValue > lastDay)) {\r\n return null;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n res[timeSetter[key]](tValue);\r\n }\r\n }\r\n }\r\n if (!isUndefined(desig)) {\r\n var hour = res.getHours();\r\n if (desig === 'pm') {\r\n res.setHours(hour + (hour === 12 ? 0 : 12));\r\n }\r\n else if (hour === 12) {\r\n res.setHours(0);\r\n }\r\n }\r\n if (!isUndefined(tzone)) {\r\n var tzValue = tzone - res.getTimezoneOffset();\r\n if (tzValue !== 0) {\r\n res.setMinutes(res.getMinutes() + tzValue);\r\n }\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns date parsing options for provided value along with parse and numeric options\r\n *\r\n * @param {string} value ?\r\n * @param {ParseOptions} parseOptions ?\r\n * @param {NumericOptions} num ?\r\n * @returns {DateParts} ?\r\n */\r\n DateParser.internalDateParse = function (value, parseOptions, num) {\r\n var matches = value.match(parseOptions.parserRegex);\r\n var retOptions = { 'hour': 0, 'minute': 0, 'second': 0 };\r\n if (isNullOrUndefined(matches)) {\r\n return null;\r\n }\r\n else {\r\n var props = Object.keys(parseOptions.evalposition);\r\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\r\n var prop = props_1[_i];\r\n var curObject = parseOptions.evalposition[prop];\r\n var matchString = matches[curObject.pos];\r\n if (curObject.isNumber) {\r\n // eslint-disable-next-line\r\n retOptions[prop] = this.internalNumberParser(matchString, num);\r\n }\r\n else {\r\n if (prop === 'timeZone' && !isUndefined(matchString)) {\r\n var pos = curObject.pos;\r\n var val = void 0;\r\n var tmatch = matches[pos + 1];\r\n var flag = !isUndefined(tmatch);\r\n if (curObject.hourOnly) {\r\n val = this.getZoneValue(flag, tmatch, matches[pos + 4], num) * 60;\r\n }\r\n else {\r\n val = this.getZoneValue(flag, tmatch, matches[pos + 7], num) * 60;\r\n val += this.getZoneValue(flag, matches[pos + 4], matches[pos + 10], num);\r\n }\r\n if (!isNullOrUndefined(val)) {\r\n retOptions[prop] = val;\r\n }\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n matchString = ((prop === 'month') && (!parseOptions.isIslamic) && (parseOptions.culture === 'en' || parseOptions.culture === 'en-GB' || parseOptions.culture === 'en-US'))\r\n ? matchString[0].toUpperCase() + matchString.substring(1).toLowerCase() : matchString;\r\n // eslint-disable-next-line\r\n retOptions[prop] = parseOptions[prop][matchString];\r\n }\r\n }\r\n }\r\n if (parseOptions.hour12) {\r\n retOptions.hour12 = true;\r\n }\r\n }\r\n return retOptions;\r\n };\r\n /**\r\n * Returns parsed number for provided Numeric string and Numeric Options\r\n *\r\n * @param {string} value ?\r\n * @param {NumericOptions} option ?\r\n * @returns {number} ?\r\n */\r\n DateParser.internalNumberParser = function (value, option) {\r\n value = parser.convertValueParts(value, option.numberParseRegex, option.numericPair);\r\n if (latnRegex.test(value)) {\r\n return +value;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns parsed time zone RegExp for provided hour format and time zone\r\n *\r\n * @param {string} hourFormat ?\r\n * @param {base.TimeZoneOptions} tZone ?\r\n * @param {string} nRegex ?\r\n * @returns {string} ?\r\n */\r\n DateParser.parseTimeZoneRegx = function (hourFormat, tZone, nRegex) {\r\n var pattern = tZone.gmtFormat;\r\n var ret;\r\n var cRegex = '(' + nRegex + ')' + '(' + nRegex + ')';\r\n var splitStr;\r\n ret = hourFormat.replace('+', '\\\\+');\r\n if (hourFormat.indexOf('HH') !== -1) {\r\n ret = ret.replace(/HH|mm/g, '(' + cRegex + ')');\r\n }\r\n else {\r\n ret = ret.replace(/H|m/g, '(' + cRegex + '?)');\r\n }\r\n // eslint-disable-next-line\r\n splitStr = (ret.split(';').map(function (str) {\r\n return pattern.replace('{0}', str);\r\n }));\r\n ret = splitStr.join('|') + '|' + tZone.gmtZeroFormat;\r\n return ret;\r\n };\r\n /**\r\n * Returns zone based value.\r\n *\r\n * @param {boolean} flag ?\r\n * @param {string} val1 ?\r\n * @param {string} val2 ?\r\n * @param {NumericOptions} num ?\r\n * @returns {number} ?\r\n */\r\n DateParser.getZoneValue = function (flag, val1, val2, num) {\r\n var ival = flag ? val1 : val2;\r\n if (!ival) {\r\n return 0;\r\n }\r\n var value = this.internalNumberParser(ival, num);\r\n if (flag) {\r\n return -value;\r\n }\r\n return value;\r\n };\r\n return DateParser;\r\n}());\r\nexport { DateParser };\r\n","import { defaultCurrencyCode } from '../internationalization';\r\nimport { getValue, isNullOrUndefined, extend, isBlazor } from '../util';\r\nimport { ParserBase as parser, getBlazorCurrencySymbol } from './parser-base';\r\nimport { DateFormat } from './date-formatter';\r\nimport { NumberFormat } from './number-formatter';\r\nimport { isUndefined } from '../util';\r\nexport var blazorCultureFormats = {\r\n 'en-US': {\r\n 'd': 'M/d/y',\r\n 'D': 'EEEE, MMMM d, y',\r\n 'f': 'EEEE, MMMM d, y h:mm a',\r\n 'F': 'EEEE, MMMM d, y h:mm:s a',\r\n 'g': 'M/d/y h:mm a',\r\n 'G': 'M/d/yyyy h:mm:ss tt',\r\n 'm': 'MMMM d',\r\n 'M': 'MMMM d',\r\n 'r': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\r\n 'R': 'ddd, dd MMM yyyy HH\\':\\'mm\\':\\'ss \\'GMT\\'',\r\n 's': 'yyyy\\'-\\'MM\\'-\\'dd\\'T\\'HH\\':\\'mm\\':\\'ss',\r\n 't': 'h:mm tt',\r\n 'T': 'h:m:s tt',\r\n 'u': 'yyyy\\'-\\'MM\\'-\\'dd HH\\':\\'mm\\':\\'ss\\'Z\\'',\r\n 'U': 'dddd, MMMM d, yyyy h:mm:ss tt',\r\n 'y': 'MMMM yyyy',\r\n 'Y': 'MMMM yyyy'\r\n }\r\n};\r\n/**\r\n * Date base common constants and function for date parser and formatter.\r\n */\r\n// eslint-disable-next-line\r\nexport var IntlBase;\r\n(function (IntlBase) {\r\n // tslint:disable-next-line:max-line-length\r\n IntlBase.negativeDataRegex = /^(('[^']+'|''|[^*#@0,.E])*)(\\*.)?((([#,]*[0,]*0+)(\\.0*[0-9]*#*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\r\n IntlBase.customRegex = /^(('[^']+'|''|[^*#@0,.])*)(\\*.)?((([0#,]*[0,]*[0#]*)(\\.[0#]*)?)|([#,]*@+#*))(E\\+?0+)?(('[^']+'|''|[^*#@0,.E])*)$/;\r\n IntlBase.latnParseRegex = /0|1|2|3|4|5|6|7|8|9/g;\r\n var fractionRegex = /[0-9]/g;\r\n IntlBase.defaultCurrency = '$';\r\n var mapper = ['infinity', 'nan', 'group', 'decimal'];\r\n var patternRegex = /G|M|L|H|c|'| a|yy|y|EEEE|E/g;\r\n var patternMatch = {\r\n 'G': '',\r\n 'M': 'm',\r\n 'L': 'm',\r\n 'H': 'h',\r\n 'c': 'd',\r\n '\\'': '\"',\r\n ' a': ' AM/PM',\r\n 'yy': 'yy',\r\n 'y': 'yyyy',\r\n 'EEEE': 'dddd',\r\n 'E': 'ddd'\r\n };\r\n IntlBase.dateConverterMapper = /dddd|ddd/ig;\r\n var defaultFirstDay = 'sun';\r\n IntlBase.islamicRegex = /^islamic/;\r\n var firstDayMapper = {\r\n 'sun': 0,\r\n 'mon': 1,\r\n 'tue': 2,\r\n 'wed': 3,\r\n 'thu': 4,\r\n 'fri': 5,\r\n 'sat': 6\r\n };\r\n IntlBase.formatRegex = /(^[ncpae]{1})([0-1]?[0-9]|20)?$/i;\r\n IntlBase.currencyFormatRegex = /(^[ca]{1})([0-1]?[0-9]|20)?$/i;\r\n IntlBase.curWithoutNumberRegex = /(c|a)$/ig;\r\n var typeMapper = {\r\n '$': 'isCurrency',\r\n '%': 'isPercent',\r\n '-': 'isNegative',\r\n 0: 'nlead',\r\n 1: 'nend'\r\n };\r\n IntlBase.dateParseRegex = /([a-z])\\1*|'([^']|'')+'|''|./gi;\r\n IntlBase.basicPatterns = ['short', 'medium', 'long', 'full'];\r\n /* tslint:disable:quotemark */\r\n IntlBase.defaultObject = {\r\n 'dates': {\r\n 'calendars': {\r\n 'gregorian': {\r\n 'months': {\r\n 'stand-alone': {\r\n 'abbreviated': {\r\n '1': 'Jan',\r\n '2': 'Feb',\r\n '3': 'Mar',\r\n '4': 'Apr',\r\n '5': 'May',\r\n '6': 'Jun',\r\n '7': 'Jul',\r\n '8': 'Aug',\r\n '9': 'Sep',\r\n '10': 'Oct',\r\n '11': 'Nov',\r\n '12': 'Dec'\r\n },\r\n 'narrow': {\r\n '1': 'J',\r\n '2': 'F',\r\n '3': 'M',\r\n '4': 'A',\r\n '5': 'M',\r\n '6': 'J',\r\n '7': 'J',\r\n '8': 'A',\r\n '9': 'S',\r\n '10': 'O',\r\n '11': 'N',\r\n '12': 'D'\r\n },\r\n 'wide': {\r\n '1': 'January',\r\n '2': 'February',\r\n '3': 'March',\r\n '4': 'April',\r\n '5': 'May',\r\n '6': 'June',\r\n '7': 'July',\r\n '8': 'August',\r\n '9': 'September',\r\n '10': 'October',\r\n '11': 'November',\r\n '12': 'December'\r\n }\r\n }\r\n },\r\n 'days': {\r\n 'stand-alone': {\r\n 'abbreviated': {\r\n 'sun': 'Sun',\r\n 'mon': 'Mon',\r\n 'tue': 'Tue',\r\n 'wed': 'Wed',\r\n 'thu': 'Thu',\r\n 'fri': 'Fri',\r\n 'sat': 'Sat'\r\n },\r\n 'narrow': {\r\n 'sun': 'S',\r\n 'mon': 'M',\r\n 'tue': 'T',\r\n 'wed': 'W',\r\n 'thu': 'T',\r\n 'fri': 'F',\r\n 'sat': 'S'\r\n },\r\n 'short': {\r\n 'sun': 'Su',\r\n 'mon': 'Mo',\r\n 'tue': 'Tu',\r\n 'wed': 'We',\r\n 'thu': 'Th',\r\n 'fri': 'Fr',\r\n 'sat': 'Sa'\r\n },\r\n 'wide': {\r\n 'sun': 'Sunday',\r\n 'mon': 'Monday',\r\n 'tue': 'Tuesday',\r\n 'wed': 'Wednesday',\r\n 'thu': 'Thursday',\r\n 'fri': 'Friday',\r\n 'sat': 'Saturday'\r\n }\r\n }\r\n },\r\n 'dayPeriods': {\r\n 'format': {\r\n 'wide': {\r\n 'am': 'AM',\r\n 'pm': 'PM'\r\n }\r\n }\r\n },\r\n 'eras': {\r\n 'eraNames': {\r\n '0': 'Before Christ',\r\n '0-alt-variant': 'Before Common Era',\r\n '1': 'Anno Domini',\r\n '1-alt-variant': 'Common Era'\r\n },\r\n 'eraAbbr': {\r\n '0': 'BC',\r\n '0-alt-variant': 'BCE',\r\n '1': 'AD',\r\n '1-alt-variant': 'CE'\r\n },\r\n 'eraNarrow': {\r\n '0': 'B',\r\n '0-alt-variant': 'BCE',\r\n '1': 'A',\r\n '1-alt-variant': 'CE'\r\n }\r\n },\r\n 'dateFormats': {\r\n 'full': 'EEEE, MMMM d, y',\r\n 'long': 'MMMM d, y',\r\n 'medium': 'MMM d, y',\r\n 'short': 'M/d/yy'\r\n },\r\n 'timeFormats': {\r\n 'full': 'h:mm:ss a zzzz',\r\n 'long': 'h:mm:ss a z',\r\n 'medium': 'h:mm:ss a',\r\n 'short': 'h:mm a'\r\n },\r\n 'dateTimeFormats': {\r\n 'full': '{1} \\'at\\' {0}',\r\n 'long': '{1} \\'at\\' {0}',\r\n 'medium': '{1}, {0}',\r\n 'short': '{1}, {0}',\r\n 'availableFormats': {\r\n 'd': 'd',\r\n 'E': 'ccc',\r\n 'Ed': 'd E',\r\n 'Ehm': 'E h:mm a',\r\n 'EHm': 'E HH:mm',\r\n 'Ehms': 'E h:mm:ss a',\r\n 'EHms': 'E HH:mm:ss',\r\n 'Gy': 'y G',\r\n 'GyMMM': 'MMM y G',\r\n 'GyMMMd': 'MMM d, y G',\r\n 'GyMMMEd': 'E, MMM d, y G',\r\n 'h': 'h a',\r\n 'H': 'HH',\r\n 'hm': 'h:mm a',\r\n 'Hm': 'HH:mm',\r\n 'hms': 'h:mm:ss a',\r\n 'Hms': 'HH:mm:ss',\r\n 'hmsv': 'h:mm:ss a v',\r\n 'Hmsv': 'HH:mm:ss v',\r\n 'hmv': 'h:mm a v',\r\n 'Hmv': 'HH:mm v',\r\n 'M': 'L',\r\n 'Md': 'M/d',\r\n 'MEd': 'E, M/d',\r\n 'MMM': 'LLL',\r\n 'MMMd': 'MMM d',\r\n 'MMMEd': 'E, MMM d',\r\n 'MMMMd': 'MMMM d',\r\n 'ms': 'mm:ss',\r\n 'y': 'y',\r\n 'yM': 'M/y',\r\n 'yMd': 'M/d/y',\r\n 'yMEd': 'E, M/d/y',\r\n 'yMMM': 'MMM y',\r\n 'yMMMd': 'MMM d, y',\r\n 'yMMMEd': 'E, MMM d, y',\r\n 'yMMMM': 'MMMM y'\r\n }\r\n }\r\n },\r\n 'islamic': {\r\n 'months': {\r\n 'stand-alone': {\r\n 'abbreviated': {\r\n '1': 'Muh.',\r\n '2': 'Saf.',\r\n '3': 'Rab. I',\r\n '4': 'Rab. II',\r\n '5': 'Jum. I',\r\n '6': 'Jum. II',\r\n '7': 'Raj.',\r\n '8': 'Sha.',\r\n '9': 'Ram.',\r\n '10': 'Shaw.',\r\n '11': 'Dhuʻl-Q.',\r\n '12': 'Dhuʻl-H.'\r\n },\r\n 'narrow': {\r\n '1': '1',\r\n '2': '2',\r\n '3': '3',\r\n '4': '4',\r\n '5': '5',\r\n '6': '6',\r\n '7': '7',\r\n '8': '8',\r\n '9': '9',\r\n '10': '10',\r\n '11': '11',\r\n '12': '12'\r\n },\r\n 'wide': {\r\n '1': 'Muharram',\r\n '2': 'Safar',\r\n '3': 'Rabiʻ I',\r\n '4': 'Rabiʻ II',\r\n '5': 'Jumada I',\r\n '6': 'Jumada II',\r\n '7': 'Rajab',\r\n '8': 'Shaʻban',\r\n '9': 'Ramadan',\r\n '10': 'Shawwal',\r\n '11': 'Dhuʻl-Qiʻdah',\r\n '12': 'Dhuʻl-Hijjah'\r\n }\r\n }\r\n },\r\n 'days': {\r\n 'stand-alone': {\r\n 'abbreviated': {\r\n 'sun': 'Sun',\r\n 'mon': 'Mon',\r\n 'tue': 'Tue',\r\n 'wed': 'Wed',\r\n 'thu': 'Thu',\r\n 'fri': 'Fri',\r\n 'sat': 'Sat'\r\n },\r\n 'narrow': {\r\n 'sun': 'S',\r\n 'mon': 'M',\r\n 'tue': 'T',\r\n 'wed': 'W',\r\n 'thu': 'T',\r\n 'fri': 'F',\r\n 'sat': 'S'\r\n },\r\n 'short': {\r\n 'sun': 'Su',\r\n 'mon': 'Mo',\r\n 'tue': 'Tu',\r\n 'wed': 'We',\r\n 'thu': 'Th',\r\n 'fri': 'Fr',\r\n 'sat': 'Sa'\r\n },\r\n 'wide': {\r\n 'sun': 'Sunday',\r\n 'mon': 'Monday',\r\n 'tue': 'Tuesday',\r\n 'wed': 'Wednesday',\r\n 'thu': 'Thursday',\r\n 'fri': 'Friday',\r\n 'sat': 'Saturday'\r\n }\r\n }\r\n },\r\n 'dayPeriods': {\r\n 'format': {\r\n 'wide': {\r\n 'am': 'AM',\r\n 'pm': 'PM'\r\n }\r\n }\r\n },\r\n 'eras': {\r\n 'eraNames': {\r\n '0': 'AH'\r\n },\r\n 'eraAbbr': {\r\n '0': 'AH'\r\n },\r\n 'eraNarrow': {\r\n '0': 'AH'\r\n }\r\n },\r\n 'dateFormats': {\r\n 'full': 'EEEE, MMMM d, y G',\r\n 'long': 'MMMM d, y G',\r\n 'medium': 'MMM d, y G',\r\n 'short': 'M/d/y GGGGG'\r\n },\r\n 'timeFormats': {\r\n 'full': 'h:mm:ss a zzzz',\r\n 'long': 'h:mm:ss a z',\r\n 'medium': 'h:mm:ss a',\r\n 'short': 'h:mm a'\r\n },\r\n 'dateTimeFormats': {\r\n 'full': '{1} \\'at\\' {0}',\r\n 'long': '{1} \\'at\\' {0}',\r\n 'medium': '{1}, {0}',\r\n 'short': '{1}, {0}',\r\n 'availableFormats': {\r\n 'd': 'd',\r\n 'E': 'ccc',\r\n 'Ed': 'd E',\r\n 'Ehm': 'E h:mm a',\r\n 'EHm': 'E HH:mm',\r\n 'Ehms': 'E h:mm:ss a',\r\n 'EHms': 'E HH:mm:ss',\r\n 'Gy': 'y G',\r\n 'GyMMM': 'MMM y G',\r\n 'GyMMMd': 'MMM d, y G',\r\n 'GyMMMEd': 'E, MMM d, y G',\r\n 'h': 'h a',\r\n 'H': 'HH',\r\n 'hm': 'h:mm a',\r\n 'Hm': 'HH:mm',\r\n 'hms': 'h:mm:ss a',\r\n 'Hms': 'HH:mm:ss',\r\n 'M': 'L',\r\n 'Md': 'M/d',\r\n 'MEd': 'E, M/d',\r\n 'MMM': 'LLL',\r\n 'MMMd': 'MMM d',\r\n 'MMMEd': 'E, MMM d',\r\n 'MMMMd': 'MMMM d',\r\n 'ms': 'mm:ss',\r\n 'y': 'y G',\r\n 'yyyy': 'y G',\r\n 'yyyyM': 'M/y GGGGG',\r\n 'yyyyMd': 'M/d/y GGGGG',\r\n 'yyyyMEd': 'E, M/d/y GGGGG',\r\n 'yyyyMMM': 'MMM y G',\r\n 'yyyyMMMd': 'MMM d, y G',\r\n 'yyyyMMMEd': 'E, MMM d, y G',\r\n 'yyyyMMMM': 'MMMM y G',\r\n 'yyyyQQQ': 'QQQ y G',\r\n 'yyyyQQQQ': 'QQQQ y G'\r\n }\r\n }\r\n }\r\n },\r\n 'timeZoneNames': {\r\n 'hourFormat': '+HH:mm;-HH:mm',\r\n 'gmtFormat': 'GMT{0}',\r\n 'gmtZeroFormat': 'GMT'\r\n }\r\n },\r\n 'numbers': {\r\n 'currencies': {\r\n 'USD': {\r\n 'displayName': 'US Dollar',\r\n 'symbol': '$',\r\n 'symbol-alt-narrow': '$'\r\n },\r\n 'EUR': {\r\n 'displayName': 'Euro',\r\n 'symbol': '€',\r\n 'symbol-alt-narrow': '€'\r\n },\r\n 'GBP': {\r\n 'displayName': 'British Pound',\r\n 'symbol-alt-narrow': '£'\r\n }\r\n },\r\n 'defaultNumberingSystem': 'latn',\r\n 'minimumGroupingDigits': '1',\r\n 'symbols-numberSystem-latn': {\r\n 'decimal': '.',\r\n 'group': ',',\r\n 'list': ';',\r\n 'percentSign': '%',\r\n 'plusSign': '+',\r\n 'minusSign': '-',\r\n 'exponential': 'E',\r\n 'superscriptingExponent': '×',\r\n 'perMille': '‰',\r\n 'infinity': '∞',\r\n 'nan': 'NaN',\r\n 'timeSeparator': ':'\r\n },\r\n 'decimalFormats-numberSystem-latn': {\r\n 'standard': '#,##0.###'\r\n },\r\n 'percentFormats-numberSystem-latn': {\r\n 'standard': '#,##0%'\r\n },\r\n 'currencyFormats-numberSystem-latn': {\r\n 'standard': '¤#,##0.00',\r\n 'accounting': '¤#,##0.00;(¤#,##0.00)'\r\n },\r\n 'scientificFormats-numberSystem-latn': {\r\n 'standard': '#E0'\r\n }\r\n }\r\n };\r\n IntlBase.blazorDefaultObject = {\r\n 'numbers': {\r\n 'mapper': {\r\n '0': '0',\r\n '1': '1',\r\n '2': '2',\r\n '3': '3',\r\n '4': '4',\r\n '5': '5',\r\n '6': '6',\r\n '7': '7',\r\n '8': '8',\r\n '9': '9'\r\n },\r\n 'mapperDigits': '0123456789',\r\n 'numberSymbols': {\r\n 'decimal': '.',\r\n 'group': ',',\r\n 'plusSign': '+',\r\n 'minusSign': '-',\r\n 'percentSign': '%',\r\n 'nan': 'NaN',\r\n 'timeSeparator': ':',\r\n 'infinity': '∞'\r\n },\r\n 'timeSeparator': ':',\r\n 'currencySymbol': '$',\r\n 'currencypData': {\r\n 'nlead': '$',\r\n 'nend': '',\r\n 'groupSeparator': ',',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n },\r\n 'percentpData': {\r\n 'nlead': '',\r\n 'nend': '%',\r\n 'groupSeparator': ',',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n },\r\n 'percentnData': {\r\n 'nlead': '-',\r\n 'nend': '%',\r\n 'groupSeparator': ',',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n },\r\n 'currencynData': {\r\n 'nlead': '($',\r\n 'nend': ')',\r\n 'groupSeparator': ',',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n },\r\n 'decimalnData': {\r\n 'nlead': '-',\r\n 'nend': '',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n },\r\n 'decimalpData': {\r\n 'nlead': '',\r\n 'nend': '',\r\n 'groupData': {\r\n 'primary': 3\r\n },\r\n 'maximumFraction': 2,\r\n 'minimumFraction': 2\r\n }\r\n },\r\n 'dates': {\r\n 'dayPeriods': {\r\n 'am': 'AM',\r\n 'pm': 'PM'\r\n },\r\n 'dateSeperator': '/',\r\n 'days': {\r\n 'abbreviated': {\r\n 'sun': 'Sun',\r\n 'mon': 'Mon',\r\n 'tue': 'Tue',\r\n 'wed': 'Wed',\r\n 'thu': 'Thu',\r\n 'fri': 'Fri',\r\n 'sat': 'Sat'\r\n },\r\n 'short': {\r\n 'sun': 'Su',\r\n 'mon': 'Mo',\r\n 'tue': 'Tu',\r\n 'wed': 'We',\r\n 'thu': 'Th',\r\n 'fri': 'Fr',\r\n 'sat': 'Sa'\r\n },\r\n 'wide': {\r\n 'sun': 'Sunday',\r\n 'mon': 'Monday',\r\n 'tue': 'Tuesday',\r\n 'wed': 'Wednesday',\r\n 'thu': 'Thursday',\r\n 'fri': 'Friday',\r\n 'sat': 'Saturday'\r\n }\r\n },\r\n 'months': {\r\n 'abbreviated': {\r\n '1': 'Jan',\r\n '2': 'Feb',\r\n '3': 'Mar',\r\n '4': 'Apr',\r\n '5': 'May',\r\n '6': 'Jun',\r\n '7': 'Jul',\r\n '8': 'Aug',\r\n '9': 'Sep',\r\n '10': 'Oct',\r\n '11': 'Nov',\r\n '12': 'Dec'\r\n },\r\n 'wide': {\r\n '1': 'January',\r\n '2': 'February',\r\n '3': 'March',\r\n '4': 'April',\r\n '5': 'May',\r\n '6': 'June',\r\n '7': 'July',\r\n '8': 'August',\r\n '9': 'September',\r\n '10': 'October',\r\n '11': 'November',\r\n '12': 'December'\r\n }\r\n },\r\n 'eras': {\r\n '1': 'AD'\r\n }\r\n }\r\n };\r\n /* tslint:enable:quotemark */\r\n IntlBase.monthIndex = {\r\n 3: 'abbreviated',\r\n 4: 'wide',\r\n 5: 'narrow',\r\n 1: 'abbreviated'\r\n };\r\n /**\r\n *\r\n */\r\n IntlBase.month = 'months';\r\n IntlBase.days = 'days';\r\n /**\r\n * Default numerber Object\r\n */\r\n IntlBase.patternMatcher = {\r\n C: 'currency',\r\n P: 'percent',\r\n N: 'decimal',\r\n A: 'currency',\r\n E: 'scientific'\r\n };\r\n /**\r\n * Returns the resultant pattern based on the skeleton, dateObject and the type provided\r\n *\r\n * @private\r\n * @param {string} skeleton ?\r\n * @param {Object} dateObject ?\r\n * @param {string} type ?\r\n * @param {boolean} isIslamic ?\r\n * @param {string} blazorCulture ?\r\n * @returns {string} ?\r\n */\r\n function getResultantPattern(skeleton, dateObject, type, isIslamic, blazorCulture) {\r\n var resPattern;\r\n var iType = type || 'date';\r\n if (blazorCulture) {\r\n resPattern = compareBlazorDateFormats({ skeleton: skeleton }, blazorCulture).format ||\r\n compareBlazorDateFormats({ skeleton: 'd' }, 'en-US').format;\r\n }\r\n else {\r\n if (IntlBase.basicPatterns.indexOf(skeleton) !== -1) {\r\n resPattern = getValue(iType + 'Formats.' + skeleton, dateObject);\r\n if (iType === 'dateTime') {\r\n var dPattern = getValue('dateFormats.' + skeleton, dateObject);\r\n var tPattern = getValue('timeFormats.' + skeleton, dateObject);\r\n resPattern = resPattern.replace('{1}', dPattern).replace('{0}', tPattern);\r\n }\r\n }\r\n else {\r\n resPattern = getValue('dateTimeFormats.availableFormats.' + skeleton, dateObject);\r\n }\r\n if (isUndefined(resPattern) && skeleton === 'yMd') {\r\n resPattern = 'M/d/y';\r\n }\r\n }\r\n return resPattern;\r\n }\r\n IntlBase.getResultantPattern = getResultantPattern;\r\n /**\r\n * Returns the dependable object for provided cldr data and culture\r\n *\r\n * @private\r\n * @param {Object} cldr ?\r\n * @param {string} culture ?\r\n * @param {string} mode ?\r\n * @param {boolean} isNumber ?\r\n * @returns {any} ?\r\n */\r\n function getDependables(cldr, culture, mode, isNumber) {\r\n var ret = {};\r\n var calendartype = mode || 'gregorian';\r\n ret.parserObject = parser.getMainObject(cldr, culture) || (isBlazor() ? IntlBase.blazorDefaultObject : IntlBase.defaultObject);\r\n if (isNumber) {\r\n ret.numericObject = getValue('numbers', ret.parserObject);\r\n }\r\n else {\r\n var dateString = isBlazor() ? 'dates' : ('dates.calendars.' + calendartype);\r\n ret.dateObject = getValue(dateString, ret.parserObject);\r\n }\r\n return ret;\r\n }\r\n IntlBase.getDependables = getDependables;\r\n /**\r\n * Returns the symbol pattern for provided parameters\r\n *\r\n * @private\r\n * @param {string} type ?\r\n * @param {string} numSystem ?\r\n * @param {Object} obj ?\r\n * @param {boolean} isAccount ?\r\n * @returns {string} ?\r\n */\r\n function getSymbolPattern(type, numSystem, obj, isAccount) {\r\n return getValue(type + 'Formats-numberSystem-' +\r\n numSystem + (isAccount ? '.accounting' : '.standard'), obj) || (isAccount ? getValue(type + 'Formats-numberSystem-' +\r\n numSystem + '.standard', obj) : '');\r\n }\r\n IntlBase.getSymbolPattern = getSymbolPattern;\r\n /**\r\n *\r\n * @param {string} format ?\r\n * @returns {string} ?\r\n */\r\n function ConvertDateToWeekFormat(format) {\r\n var convertMapper = format.match(IntlBase.dateConverterMapper);\r\n if (convertMapper && isBlazor()) {\r\n var tempString = convertMapper[0].length === 3 ? 'EEE' : 'EEEE';\r\n return format.replace(IntlBase.dateConverterMapper, tempString);\r\n }\r\n return format;\r\n }\r\n IntlBase.ConvertDateToWeekFormat = ConvertDateToWeekFormat;\r\n /**\r\n *\r\n * @param {DateFormatOptions} formatOptions ?\r\n * @param {string} culture ?\r\n * @returns {DateFormatOptions} ?\r\n */\r\n function compareBlazorDateFormats(formatOptions, culture) {\r\n var format = formatOptions.format || formatOptions.skeleton;\r\n var curFormatMapper = getValue((culture || 'en-US') + '.' + format, blazorCultureFormats);\r\n if (!curFormatMapper) {\r\n curFormatMapper = getValue('en-US.' + format, blazorCultureFormats);\r\n }\r\n if (curFormatMapper) {\r\n curFormatMapper = ConvertDateToWeekFormat(curFormatMapper);\r\n formatOptions.format = curFormatMapper.replace(/tt/, 'a');\r\n }\r\n return formatOptions;\r\n }\r\n IntlBase.compareBlazorDateFormats = compareBlazorDateFormats;\r\n /**\r\n * Returns proper numeric skeleton\r\n *\r\n * @private\r\n * @param {string} skeleton ?\r\n * @returns {any} ?\r\n */\r\n function getProperNumericSkeleton(skeleton) {\r\n var matches = skeleton.match(IntlBase.formatRegex);\r\n var ret = {};\r\n var pattern = matches[1].toUpperCase();\r\n ret.isAccount = (pattern === 'A');\r\n // eslint-disable-next-line\r\n ret.type = IntlBase.patternMatcher[pattern];\r\n if (skeleton.length > 1) {\r\n ret.fractionDigits = parseInt(matches[2], 10);\r\n }\r\n return ret;\r\n }\r\n IntlBase.getProperNumericSkeleton = getProperNumericSkeleton;\r\n /**\r\n * Returns format data for number formatting like minimum fraction, maximum fraction, etc..,\r\n *\r\n * @private\r\n * @param {string} pattern ?\r\n * @param {boolean} needFraction ?\r\n * @param {string} cSymbol ?\r\n * @param {boolean} fractionOnly ?\r\n * @returns {any} ?\r\n */\r\n function getFormatData(pattern, needFraction, cSymbol, fractionOnly) {\r\n var nData = fractionOnly ? {} : { nlead: '', nend: '' };\r\n var match = pattern.match(IntlBase.customRegex);\r\n if (match) {\r\n if (!fractionOnly) {\r\n nData.nlead = changeCurrencySymbol(match[1], cSymbol);\r\n nData.nend = changeCurrencySymbol(match[10], cSymbol);\r\n nData.groupPattern = match[4];\r\n }\r\n var fraction = match[7];\r\n if (fraction && needFraction) {\r\n var fmatch = fraction.match(fractionRegex);\r\n if (!isNullOrUndefined(fmatch)) {\r\n nData.minimumFraction = fmatch.length;\r\n }\r\n else {\r\n nData.minimumFraction = 0;\r\n }\r\n nData.maximumFraction = fraction.length - 1;\r\n }\r\n }\r\n return nData;\r\n }\r\n IntlBase.getFormatData = getFormatData;\r\n /**\r\n * Changes currency symbol\r\n *\r\n * @private\r\n * @param {string} val ?\r\n * @param {string} sym ?\r\n * @returns {string} ?\r\n */\r\n function changeCurrencySymbol(val, sym) {\r\n if (val) {\r\n return val.replace(IntlBase.defaultCurrency, sym);\r\n }\r\n return '';\r\n }\r\n IntlBase.changeCurrencySymbol = changeCurrencySymbol;\r\n /**\r\n * Returns currency symbol based on currency code ?\r\n *\r\n * @private\r\n * @param {Object} numericObject ?\r\n * @param {string} currencyCode ?\r\n * @param {string} altSymbol ?\r\n * @returns {string} ?\r\n */\r\n function getCurrencySymbol(numericObject, currencyCode, altSymbol) {\r\n var symbol = altSymbol ? ('.' + altSymbol) : '.symbol';\r\n var getCurrency = getValue('currencies.' + currencyCode + symbol, numericObject) ||\r\n getValue('currencies.' + currencyCode + '.symbol-alt-narrow', numericObject) || '$';\r\n return getCurrency;\r\n }\r\n IntlBase.getCurrencySymbol = getCurrencySymbol;\r\n /**\r\n * Returns formatting options for custom number format\r\n *\r\n * @private\r\n * @param {string} format ?\r\n * @param {CommonOptions} dOptions ?\r\n * @param {any} obj ?\r\n * @returns {any} ?\r\n */\r\n function customFormat(format, dOptions, obj) {\r\n var options = {};\r\n var formatSplit = format.split(';');\r\n var data = ['pData', 'nData', 'zeroData'];\r\n for (var i = 0; i < formatSplit.length; i++) {\r\n // eslint-disable-next-line\r\n options[data[i]] = customNumberFormat(formatSplit[i], dOptions, obj);\r\n }\r\n if (isNullOrUndefined(options.nData)) {\r\n options.nData = extend({}, options.pData);\r\n options.nData.nlead = isNullOrUndefined(dOptions) ? '-' + options.nData.nlead : dOptions.minusSymbol + options.nData.nlead;\r\n }\r\n return options;\r\n }\r\n IntlBase.customFormat = customFormat;\r\n /**\r\n * Returns custom formatting options\r\n *\r\n * @private\r\n * @param {string} format ?\r\n * @param {CommonOptions} dOptions ?\r\n * @param {Object} numObject ?\r\n * @returns {any} ?\r\n */\r\n function customNumberFormat(format, dOptions, numObject) {\r\n var cOptions = { type: 'decimal', minimumFractionDigits: 0, maximumFractionDigits: 0 };\r\n var pattern = format.match(IntlBase.customRegex);\r\n if (isNullOrUndefined(pattern) || (pattern[5] === '' && format !== 'N/A')) {\r\n cOptions.type = undefined;\r\n return cOptions;\r\n }\r\n cOptions.nlead = pattern[1];\r\n cOptions.nend = pattern[10];\r\n var integerPart = pattern[6];\r\n cOptions.useGrouping = integerPart.indexOf(',') !== -1;\r\n integerPart = integerPart.replace(/,/g, '');\r\n var fractionPart = pattern[7];\r\n if (integerPart.indexOf('0') !== -1) {\r\n cOptions.minimumIntegerDigits = integerPart.length - integerPart.indexOf('0');\r\n }\r\n if (!isNullOrUndefined(fractionPart)) {\r\n cOptions.minimumFractionDigits = fractionPart.lastIndexOf('0');\r\n cOptions.maximumFractionDigits = fractionPart.lastIndexOf('#');\r\n if (cOptions.minimumFractionDigits === -1) {\r\n cOptions.minimumFractionDigits = 0;\r\n }\r\n if (cOptions.maximumFractionDigits === -1 || cOptions.maximumFractionDigits < cOptions.minimumFractionDigits) {\r\n cOptions.maximumFractionDigits = cOptions.minimumFractionDigits;\r\n }\r\n }\r\n if (!isNullOrUndefined(dOptions)) {\r\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '$', dOptions.currencySymbol));\r\n if (!cOptions.isCurrency) {\r\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', dOptions.percentSymbol));\r\n }\r\n }\r\n else {\r\n extend(cOptions, isCurrencyPercent([cOptions.nlead, cOptions.nend], '%', '%'));\r\n }\r\n if (!isNullOrUndefined(numObject)) {\r\n var symbolPattern = getSymbolPattern(cOptions.type, dOptions.numberMapper.numberSystem, numObject, false);\r\n if (cOptions.useGrouping) {\r\n // eslint-disable-next-line\r\n cOptions.groupSeparator = dOptions.numberMapper.numberSymbols[mapper[2]];\r\n cOptions.groupData = NumberFormat.getGroupingDetails(symbolPattern.split(';')[0]);\r\n }\r\n cOptions.nlead = cOptions.nlead.replace(/'/g, '');\r\n cOptions.nend = cOptions.nend.replace(/'/g, '');\r\n }\r\n return cOptions;\r\n }\r\n IntlBase.customNumberFormat = customNumberFormat;\r\n /**\r\n * Returns formatting options for currency or percent type\r\n *\r\n * @private\r\n * @param {string[]} parts ?\r\n * @param {string} actual ?\r\n * @param {string} symbol ?\r\n * @returns {any} ?\r\n */\r\n function isCurrencyPercent(parts, actual, symbol) {\r\n var options = { nlead: parts[0], nend: parts[1] };\r\n for (var i = 0; i < 2; i++) {\r\n var part = parts[i];\r\n var loc = part.indexOf(actual);\r\n if ((loc !== -1) && ((loc < part.indexOf('\\'')) || (loc > part.lastIndexOf('\\'')))) {\r\n // eslint-disable-next-line\r\n options[typeMapper[i]] = part.substr(0, loc) + symbol + part.substr(loc + 1);\r\n // eslint-disable-next-line\r\n options[typeMapper[actual]] = true;\r\n options.type = options.isCurrency ? 'currency' : 'percent';\r\n break;\r\n }\r\n }\r\n return options;\r\n }\r\n IntlBase.isCurrencyPercent = isCurrencyPercent;\r\n /**\r\n * Returns culture based date separator\r\n *\r\n * @private\r\n * @param {Object} dateObj ?\r\n * @returns {string} ?\r\n */\r\n function getDateSeparator(dateObj) {\r\n var value = (getValue('dateFormats.short', dateObj) || '').match(/[d‏M‏]([^d‏M])[d‏M‏]/i);\r\n return value ? value[1] : '/';\r\n }\r\n IntlBase.getDateSeparator = getDateSeparator;\r\n /**\r\n * Returns Native Date Time pattern\r\n *\r\n * @private\r\n * @param {string} culture ?\r\n * @param {DateFormatOptions} options ?\r\n * @param {Object} cldr ?\r\n * @param {boolean} isExcelFormat ?\r\n * @returns {string} ?\r\n */\r\n function getActualDateTimeFormat(culture, options, cldr, isExcelFormat) {\r\n var dependable = getDependables(cldr, culture, options.calendar);\r\n if (isBlazor()) {\r\n options = compareBlazorDateFormats(options, culture);\r\n }\r\n var actualPattern = options.format || getResultantPattern(options.skeleton, dependable.dateObject, options.type);\r\n if (isExcelFormat) {\r\n actualPattern = actualPattern.replace(patternRegex, function (pattern) {\r\n // eslint-disable-next-line\r\n return patternMatch[pattern];\r\n });\r\n if (actualPattern.indexOf('z') !== -1) {\r\n var tLength = actualPattern.match(/z/g).length;\r\n var timeZonePattern = void 0;\r\n var options_1 = { 'timeZone': {} };\r\n options_1.numMapper = parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr));\r\n options_1.timeZone = getValue('dates.timeZoneNames', dependable.parserObject);\r\n var value = new Date();\r\n var timezone = value.getTimezoneOffset();\r\n var pattern = (tLength < 4) ? '+H;-H' : options_1.timeZone.hourFormat;\r\n pattern = pattern.replace(/:/g, options_1.numMapper.timeSeparator);\r\n if (timezone === 0) {\r\n timeZonePattern = options_1.timeZone.gmtZeroFormat;\r\n }\r\n else {\r\n timeZonePattern = DateFormat.getTimeZoneValue(timezone, pattern);\r\n timeZonePattern = options_1.timeZone.gmtFormat.replace(/\\{0\\}/, timeZonePattern);\r\n }\r\n actualPattern = actualPattern.replace(/[z]+/, '\"' + timeZonePattern + '\"');\r\n }\r\n actualPattern = actualPattern.replace(/ $/, '');\r\n }\r\n return actualPattern;\r\n }\r\n IntlBase.getActualDateTimeFormat = getActualDateTimeFormat;\r\n /**\r\n *\r\n * @param {string} actual ?\r\n * @param {any} option ?\r\n * @returns {any} ?\r\n */\r\n // eslint-disable-next-line\r\n function processSymbol(actual, option) {\r\n if (actual.indexOf(',') !== -1) {\r\n // eslint-disable-next-line\r\n var split = actual.split(',');\r\n actual = (split[0] + getValue('numberMapper.numberSymbols.group', option) +\r\n split[1].replace('.', getValue('numberMapper.numberSymbols.decimal', option)));\r\n }\r\n else {\r\n actual = actual.replace('.', getValue('numberMapper.numberSymbols.decimal', option));\r\n }\r\n return actual;\r\n }\r\n /**\r\n * Returns Native Number pattern\r\n *\r\n * @private\r\n * @param {string} culture ?\r\n * @param {NumberFormatOptions} options ?\r\n * @param {Object} cldr ?\r\n * @param {boolean} isExcel ?\r\n * @returns {string} ?\r\n */\r\n function getActualNumberFormat(culture, options, cldr, isExcel) {\r\n var dependable = getDependables(cldr, culture, '', true);\r\n var parseOptions = { custom: true };\r\n var numrericObject = dependable.numericObject;\r\n var minFrac;\r\n var curObj = {};\r\n var curMatch = (options.format || '').match(IntlBase.currencyFormatRegex);\r\n var type = IntlBase.formatRegex.test(options.format) ? getProperNumericSkeleton(options.format || 'N') : {};\r\n var dOptions = {};\r\n if (curMatch) {\r\n dOptions.numberMapper = isBlazor() ?\r\n extend({}, dependable.numericObject) :\r\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\r\n var curCode = isBlazor() ? getValue('currencySymbol', dependable.numericObject) :\r\n getCurrencySymbol(dependable.numericObject, options.currency || defaultCurrencyCode, options.altSymbol);\r\n var symbolPattern = getSymbolPattern('currency', dOptions.numberMapper.numberSystem, dependable.numericObject, (/a/i).test(options.format));\r\n symbolPattern = symbolPattern.replace(/\\u00A4/g, curCode);\r\n var split = symbolPattern.split(';');\r\n curObj.hasNegativePattern = isBlazor() ? true : (split.length > 1);\r\n curObj.nData = isBlazor() ? getValue(type.type + 'nData', numrericObject) :\r\n getFormatData(split[1] || '-' + split[0], true, curCode);\r\n curObj.pData = isBlazor() ? getValue(type.type + 'pData', numrericObject) :\r\n getFormatData(split[0], false, curCode);\r\n if (!curMatch[2] && !options.minimumFractionDigits && !options.maximumFractionDigits) {\r\n minFrac = getFormatData(symbolPattern.split(';')[0], true, '', true).minimumFraction;\r\n }\r\n }\r\n var actualPattern;\r\n if ((IntlBase.formatRegex.test(options.format)) || !(options.format)) {\r\n extend(parseOptions, getProperNumericSkeleton(options.format || 'N'));\r\n parseOptions.custom = false;\r\n actualPattern = '###0';\r\n if (parseOptions.fractionDigits || options.minimumFractionDigits || options.maximumFractionDigits || minFrac) {\r\n var defaultMinimum = 0;\r\n if (parseOptions.fractionDigits) {\r\n options.minimumFractionDigits = options.maximumFractionDigits = parseOptions.fractionDigits;\r\n }\r\n actualPattern = fractionDigitsPattern(actualPattern, minFrac || parseOptions.fractionDigits ||\r\n options.minimumFractionDigits || defaultMinimum, options.maximumFractionDigits || defaultMinimum);\r\n }\r\n if (options.minimumIntegerDigits) {\r\n actualPattern = minimumIntegerPattern(actualPattern, options.minimumIntegerDigits);\r\n }\r\n if (options.useGrouping) {\r\n actualPattern = groupingPattern(actualPattern);\r\n }\r\n if (parseOptions.type === 'currency' || (parseOptions.type && isBlazor())) {\r\n if (isBlazor() && parseOptions.type !== 'currency') {\r\n curObj.pData = getValue(parseOptions.type + 'pData', numrericObject);\r\n curObj.nData = getValue(parseOptions.type + 'nData', numrericObject);\r\n }\r\n var cPattern = actualPattern;\r\n actualPattern = curObj.pData.nlead + cPattern + curObj.pData.nend;\r\n if (curObj.hasNegativePattern || isBlazor()) {\r\n actualPattern += ';' + curObj.nData.nlead + cPattern + curObj.nData.nend;\r\n }\r\n }\r\n if (parseOptions.type === 'percent' && !isBlazor()) {\r\n actualPattern += ' %';\r\n }\r\n }\r\n else {\r\n actualPattern = options.format.replace(/'/g, '\"');\r\n }\r\n if (Object.keys(dOptions).length > 0) {\r\n actualPattern = !isExcel ? processSymbol(actualPattern, dOptions) : actualPattern;\r\n }\r\n return actualPattern;\r\n }\r\n IntlBase.getActualNumberFormat = getActualNumberFormat;\r\n /**\r\n *\r\n * @param {string} pattern ?\r\n * @param {number} minDigits ?\r\n * @param {number} maxDigits ?\r\n * @returns {string} ?\r\n */\r\n function fractionDigitsPattern(pattern, minDigits, maxDigits) {\r\n pattern += '.';\r\n for (var a = 0; a < minDigits; a++) {\r\n pattern += '0';\r\n }\r\n if (minDigits < maxDigits) {\r\n var diff = maxDigits - minDigits;\r\n for (var b = 0; b < diff; b++) {\r\n pattern += '#';\r\n }\r\n }\r\n return pattern;\r\n }\r\n IntlBase.fractionDigitsPattern = fractionDigitsPattern;\r\n /**\r\n *\r\n * @param {string} pattern ?\r\n * @param {number} digits ?\r\n * @returns {string} ?\r\n */\r\n function minimumIntegerPattern(pattern, digits) {\r\n var temp = pattern.split('.');\r\n var integer = '';\r\n for (var x = 0; x < digits; x++) {\r\n integer += '0';\r\n }\r\n return temp[1] ? (integer + '.' + temp[1]) : integer;\r\n }\r\n IntlBase.minimumIntegerPattern = minimumIntegerPattern;\r\n /**\r\n *\r\n * @param {string} pattern ?\r\n * @returns {string} ?\r\n */\r\n function groupingPattern(pattern) {\r\n var temp = pattern.split('.');\r\n var integer = temp[0];\r\n var no = 3 - integer.length % 3;\r\n var hash = (no && no === 1) ? '#' : (no === 2 ? '##' : '');\r\n integer = hash + integer;\r\n pattern = '';\r\n for (var x = integer.length - 1; x > 0; x = x - 3) {\r\n pattern = ',' + integer[x - 2] + integer[x - 1] + integer[x] + pattern;\r\n }\r\n pattern = pattern.slice(1);\r\n return temp[1] ? (pattern + '.' + temp[1]) : pattern;\r\n }\r\n IntlBase.groupingPattern = groupingPattern;\r\n /**\r\n *\r\n * @param {string} culture ?\r\n * @param {Object} cldr ?\r\n * @returns {number} ?\r\n */\r\n function getWeekData(culture, cldr) {\r\n var firstDay = defaultFirstDay;\r\n var mapper = getValue('supplemental.weekData.firstDay', cldr);\r\n var iCulture = culture;\r\n if ((/en-/).test(iCulture)) {\r\n iCulture = iCulture.slice(3);\r\n }\r\n iCulture = iCulture.slice(0, 2).toUpperCase() + iCulture.substr(2);\r\n if (mapper) {\r\n firstDay = mapper[iCulture] || defaultFirstDay;\r\n }\r\n return firstDayMapper[firstDay];\r\n }\r\n IntlBase.getWeekData = getWeekData;\r\n /**\r\n * @private\r\n * @param {any} pData ?\r\n * @param {string} aCurrency ?\r\n * @param {string} rCurrency ?\r\n * @returns {void} ?\r\n */\r\n function replaceBlazorCurrency(pData, aCurrency, rCurrency) {\r\n var iCurrency = getBlazorCurrencySymbol(rCurrency);\r\n if (aCurrency !== iCurrency) {\r\n for (var _i = 0, pData_1 = pData; _i < pData_1.length; _i++) {\r\n var data = pData_1[_i];\r\n data.nend = data.nend.replace(aCurrency, iCurrency);\r\n data.nlead = data.nlead.replace(aCurrency, iCurrency);\r\n }\r\n }\r\n }\r\n IntlBase.replaceBlazorCurrency = replaceBlazorCurrency;\r\n /**\r\n * @private\r\n * @param {Date} date ?\r\n * @returns {number} ?\r\n */\r\n function getWeekOfYear(date) {\r\n var newYear = new Date(date.getFullYear(), 0, 1);\r\n var day = newYear.getDay();\r\n var weeknum;\r\n day = (day >= 0 ? day : day + 7);\r\n var daynum = Math.floor((date.getTime() - newYear.getTime() -\r\n (date.getTimezoneOffset() - newYear.getTimezoneOffset()) * 60000) / 86400000) + 1;\r\n if (day < 4) {\r\n weeknum = Math.floor((daynum + day - 1) / 7) + 1;\r\n if (weeknum > 52) {\r\n var nYear = new Date(date.getFullYear() + 1, 0, 1);\r\n var nday = nYear.getDay();\r\n nday = nday >= 0 ? nday : nday + 7;\r\n weeknum = nday < 4 ? 1 : 53;\r\n }\r\n }\r\n else {\r\n weeknum = Math.floor((daynum + day - 1) / 7);\r\n }\r\n return weeknum;\r\n }\r\n IntlBase.getWeekOfYear = getWeekOfYear;\r\n})(IntlBase || (IntlBase = {}));\r\n","import { isUndefined, throwError, isNullOrUndefined, extend, isBlazor, getValue } from '../util';\r\nimport { defaultCurrencyCode } from '../internationalization';\r\nimport { IntlBase as base } from './intl-base';\r\nimport { ParserBase as parser } from './parser-base';\r\nvar errorText = {\r\n 'ms': 'minimumSignificantDigits',\r\n 'ls': 'maximumSignificantDigits',\r\n 'mf': 'minimumFractionDigits',\r\n 'lf': 'maximumFractionDigits',\r\n};\r\nvar integerError = 'minimumIntegerDigits';\r\nvar percentSign = 'percentSign';\r\nvar minusSign = 'minusSign';\r\nvar spaceRegex = /\\s/;\r\nvar mapper = ['infinity', 'nan', 'group', 'decimal', 'exponential'];\r\nvar infinity = 'infinity';\r\nvar nan = 'nan';\r\n/**\r\n * Module for number formatting.\r\n *\r\n * @private\r\n */\r\nvar NumberFormat = /** @class */ (function () {\r\n function NumberFormat() {\r\n }\r\n /**\r\n * Returns the formatter function for given skeleton.\r\n *\r\n * @param {string} culture - Specifies the culture name to be which formatting.\r\n * @param {NumberFormatOptions} option - Specific the format in which number will format.\r\n * @param {Object} cldr - Specifies the global cldr data collection.\r\n * @returns {Function} ?\r\n */\r\n NumberFormat.numberFormatter = function (culture, option, cldr) {\r\n var _this = this;\r\n var fOptions = extend({}, option);\r\n var cOptions = {};\r\n var dOptions = {};\r\n var symbolPattern;\r\n var dependable = base.getDependables(cldr, culture, '', true);\r\n var numObject = dependable.numericObject;\r\n dOptions.numberMapper = isBlazor() ? extend({}, numObject) :\r\n parser.getNumberMapper(dependable.parserObject, parser.getNumberingSystem(cldr), true);\r\n dOptions.currencySymbol = isBlazor() ? getValue('currencySymbol', numObject) : base.getCurrencySymbol(dependable.numericObject, fOptions.currency || defaultCurrencyCode, option.altSymbol);\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n dOptions.percentSymbol = isBlazor() ? getValue('numberSymbols.percentSign', numObject) :\r\n dOptions.numberMapper.numberSymbols[percentSign];\r\n dOptions.minusSymbol = isBlazor() ? getValue('numberSymbols.minusSign', numObject) :\r\n dOptions.numberMapper.numberSymbols[minusSign];\r\n var symbols = dOptions.numberMapper.numberSymbols;\r\n if ((option.format) && !(base.formatRegex.test(option.format))) {\r\n cOptions = base.customFormat(option.format, dOptions, dependable.numericObject);\r\n }\r\n else {\r\n extend(fOptions, base.getProperNumericSkeleton(option.format || 'N'));\r\n fOptions.isCurrency = fOptions.type === 'currency';\r\n fOptions.isPercent = fOptions.type === 'percent';\r\n if (!isBlazor()) {\r\n symbolPattern = base.getSymbolPattern(fOptions.type, dOptions.numberMapper.numberSystem, dependable.numericObject, fOptions.isAccount);\r\n }\r\n fOptions.groupOne = this.checkValueRange(fOptions.maximumSignificantDigits, fOptions.minimumSignificantDigits, true);\r\n this.checkValueRange(fOptions.maximumFractionDigits, fOptions.minimumFractionDigits, false, true);\r\n if (!isUndefined(fOptions.fractionDigits)) {\r\n fOptions.minimumFractionDigits = fOptions.maximumFractionDigits = fOptions.fractionDigits;\r\n }\r\n if (isUndefined(fOptions.useGrouping)) {\r\n fOptions.useGrouping = true;\r\n }\r\n if (fOptions.isCurrency && !isBlazor()) {\r\n symbolPattern = symbolPattern.replace(/\\u00A4/g, base.defaultCurrency);\r\n }\r\n if (!isBlazor()) {\r\n var split = symbolPattern.split(';');\r\n cOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, dOptions.currencySymbol);\r\n cOptions.pData = base.getFormatData(split[0], false, dOptions.currencySymbol);\r\n if (fOptions.useGrouping) {\r\n fOptions.groupSeparator = symbols[mapper[2]];\r\n fOptions.groupData = this.getGroupingDetails(split[0]);\r\n }\r\n }\r\n else {\r\n cOptions.nData = extend({}, {}, getValue(fOptions.type + 'nData', numObject));\r\n cOptions.pData = extend({}, {}, getValue(fOptions.type + 'pData', numObject));\r\n if (fOptions.type === 'currency' && option.currency) {\r\n base.replaceBlazorCurrency([cOptions.pData, cOptions.nData], dOptions.currencySymbol, option.currency);\r\n }\r\n }\r\n var minFrac = isUndefined(fOptions.minimumFractionDigits);\r\n if (minFrac) {\r\n fOptions.minimumFractionDigits = cOptions.nData.minimumFraction;\r\n }\r\n if (isUndefined(fOptions.maximumFractionDigits)) {\r\n var mval = cOptions.nData.maximumFraction;\r\n fOptions.maximumFractionDigits = isUndefined(mval) && fOptions.isPercent ? 0 : mval;\r\n }\r\n var mfrac = fOptions.minimumFractionDigits;\r\n var lfrac = fOptions.maximumFractionDigits;\r\n if (!isUndefined(mfrac) && !isUndefined(lfrac)) {\r\n if (mfrac > lfrac) {\r\n fOptions.maximumFractionDigits = mfrac;\r\n }\r\n }\r\n }\r\n extend(cOptions.nData, fOptions);\r\n extend(cOptions.pData, fOptions);\r\n return function (value) {\r\n if (isNaN(value)) {\r\n return symbols[mapper[1]];\r\n }\r\n else if (!isFinite(value)) {\r\n return symbols[mapper[0]];\r\n }\r\n return _this.intNumberFormatter(value, cOptions, dOptions);\r\n };\r\n };\r\n /**\r\n * Returns grouping details for the pattern provided\r\n *\r\n * @param {string} pattern ?\r\n * @returns {GroupDetails} ?\r\n */\r\n NumberFormat.getGroupingDetails = function (pattern) {\r\n var ret = {};\r\n var match = pattern.match(base.negativeDataRegex);\r\n if (match && match[4]) {\r\n var pattern_1 = match[4];\r\n var p = pattern_1.lastIndexOf(',');\r\n if (p !== -1) {\r\n var temp = pattern_1.split('.')[0];\r\n ret.primary = (temp.length - p) - 1;\r\n var s = pattern_1.lastIndexOf(',', p - 1);\r\n if (s !== -1) {\r\n ret.secondary = p - 1 - s;\r\n }\r\n }\r\n }\r\n return ret;\r\n };\r\n /**\r\n * Returns if the provided integer range is valid.\r\n *\r\n * @param {number} val1 ?\r\n * @param {number} val2 ?\r\n * @param {boolean} checkbothExist ?\r\n * @param {boolean} isFraction ?\r\n * @returns {boolean} ?\r\n */\r\n NumberFormat.checkValueRange = function (val1, val2, checkbothExist, isFraction) {\r\n var decide = isFraction ? 'f' : 's';\r\n var dint = 0;\r\n var str1 = errorText['l' + decide];\r\n // eslint-disable-next-line\r\n var str2 = errorText['m' + decide];\r\n if (!isUndefined(val1)) {\r\n this.checkRange(val1, str1, isFraction);\r\n dint++;\r\n }\r\n if (!isUndefined(val2)) {\r\n this.checkRange(val2, str2, isFraction);\r\n dint++;\r\n }\r\n if (dint === 2) {\r\n if (val1 < val2) {\r\n throwError(str2 + 'specified must be less than the' + str1);\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else if (checkbothExist && dint === 1) {\r\n throwError('Both' + str2 + 'and' + str2 + 'must be present');\r\n }\r\n return false;\r\n };\r\n /**\r\n * Check if the provided fraction range is valid\r\n *\r\n * @param {number} val ?\r\n * @param {string} text ?\r\n * @param {boolean} isFraction ?\r\n * @returns {void} ?\r\n */\r\n NumberFormat.checkRange = function (val, text, isFraction) {\r\n var range = isFraction ? [0, 20] : [1, 21];\r\n if (val < range[0] || val > range[1]) {\r\n throwError(text + 'value must be within the range' + range[0] + 'to' + range[1]);\r\n }\r\n };\r\n /**\r\n * Returns formatted numeric string for provided formatting options\r\n *\r\n * @param {number} value ?\r\n * @param {base.GenericFormatOptions} fOptions ?\r\n * @param {CommonOptions} dOptions ?\r\n * @returns {string} ?\r\n */\r\n NumberFormat.intNumberFormatter = function (value, fOptions, dOptions) {\r\n var curData;\r\n if (isUndefined(fOptions.nData.type)) {\r\n return undefined;\r\n }\r\n else {\r\n if (value < 0) {\r\n value = value * -1;\r\n curData = fOptions.nData;\r\n }\r\n else if (value === 0) {\r\n curData = fOptions.zeroData || fOptions.pData;\r\n }\r\n else {\r\n curData = fOptions.pData;\r\n }\r\n var fValue = '';\r\n if (curData.isPercent) {\r\n value = value * 100;\r\n }\r\n if (curData.groupOne) {\r\n fValue = this.processSignificantDigits(value, curData.minimumSignificantDigits, curData.maximumSignificantDigits);\r\n }\r\n else {\r\n fValue = this.processFraction(value, curData.minimumFractionDigits, curData.maximumFractionDigits);\r\n if (curData.minimumIntegerDigits) {\r\n fValue = this.processMinimumIntegers(fValue, curData.minimumIntegerDigits);\r\n }\r\n }\r\n if (curData.type === 'scientific') {\r\n fValue = value.toExponential(curData.maximumFractionDigits);\r\n fValue = fValue.replace('e', dOptions.numberMapper.numberSymbols[mapper[4]]);\r\n }\r\n fValue = fValue.replace('.', dOptions.numberMapper.numberSymbols[mapper[3]]);\r\n if (curData.useGrouping) {\r\n /* eslint-disable @typescript-eslint/no-explicit-any */\r\n fValue = this.groupNumbers(fValue, curData.groupData.primary, curData.groupSeparator || ',', dOptions.numberMapper.numberSymbols[mapper[3]] || '.', curData.groupData.secondary);\r\n }\r\n fValue = parser.convertValueParts(fValue, base.latnParseRegex, dOptions.numberMapper.mapper);\r\n if (curData.nlead === 'N/A') {\r\n return curData.nlead;\r\n }\r\n else {\r\n return curData.nlead + fValue + curData.nend;\r\n }\r\n }\r\n };\r\n /**\r\n * Returns significant digits processed numeric string\r\n *\r\n * @param {number} value ?\r\n * @param {number} min ?\r\n * @param {number} max ?\r\n * @returns {string} ?\r\n */\r\n NumberFormat.processSignificantDigits = function (value, min, max) {\r\n var temp = value + '';\r\n var tn;\r\n var length = temp.length;\r\n if (length < min) {\r\n return value.toPrecision(min);\r\n }\r\n else {\r\n temp = value.toPrecision(max);\r\n tn = +temp;\r\n return tn + '';\r\n }\r\n };\r\n /**\r\n * Returns grouped numeric string\r\n *\r\n * @param {string} val ?\r\n * @param {number} level1 ?\r\n * @param {string} sep ?\r\n * @param {string} decimalSymbol ?\r\n * @param {number} level2 ?\r\n * @returns {string} ?\r\n */\r\n NumberFormat.groupNumbers = function (val, level1, sep, decimalSymbol, level2) {\r\n var flag = !isNullOrUndefined(level2) && level2 !== 0;\r\n var split = val.split(decimalSymbol);\r\n var prefix = split[0];\r\n var length = prefix.length;\r\n var str = '';\r\n while (length > level1) {\r\n str = prefix.slice(length - level1, length) + (str.length ?\r\n (sep + str) : '');\r\n length -= level1;\r\n if (flag) {\r\n level1 = level2;\r\n flag = false;\r\n }\r\n }\r\n split[0] = prefix.slice(0, length) + (str.length ? sep : '') + str;\r\n return split.join(decimalSymbol);\r\n };\r\n /**\r\n * Returns fraction processed numeric string\r\n *\r\n * @param {number} value ?\r\n * @param {number} min ?\r\n * @param {number} max ?\r\n * @returns {string} ?\r\n */\r\n NumberFormat.processFraction = function (value, min, max) {\r\n var temp = (value + '').split('.')[1];\r\n var length = temp ? temp.length : 0;\r\n if (min && length < min) {\r\n var ret = '';\r\n if (length === 0) {\r\n ret = value.toFixed(min);\r\n }\r\n else {\r\n ret += value;\r\n for (var j = 0; j < min - length; j++) {\r\n ret += '0';\r\n }\r\n return ret;\r\n }\r\n return value.toFixed(min);\r\n }\r\n else if (!isNullOrUndefined(max) && (length > max || max === 0)) {\r\n return value.toFixed(max);\r\n }\r\n return value + '';\r\n };\r\n /**\r\n * Returns integer processed numeric string\r\n *\r\n * @param {string} value ?\r\n * @param {number} min ?\r\n * @returns {string} ?\r\n */\r\n NumberFormat.processMinimumIntegers = function (value, min) {\r\n var temp = value.split('.');\r\n var lead = temp[0];\r\n var len = lead.length;\r\n if (len < min) {\r\n for (var i = 0; i < min - len; i++) {\r\n lead = '0' + lead;\r\n }\r\n temp[0] = lead;\r\n }\r\n return temp.join('.');\r\n };\r\n return NumberFormat;\r\n}());\r\nexport { NumberFormat };\r\n","import { extend, isNullOrUndefined, isBlazor, getValue } from '../util';\r\nimport { ParserBase as parser } from './parser-base';\r\nimport { IntlBase as base } from './intl-base';\r\nvar parseRegex = /^([^0-9]*)(([0-9,]*[0-9]+)(\\.[0-9]+)?)([Ee][+-]?[0-9]+)?([^0-9]*)$/;\r\nvar groupRegex = /,/g;\r\nvar keys = ['minusSign', 'infinity'];\r\n/**\r\n * Module for Number Parser.\r\n *\r\n * @private\r\n */\r\nvar NumberParser = /** @class */ (function () {\r\n function NumberParser() {\r\n }\r\n /**\r\n * Returns the parser function for given skeleton.\r\n *\r\n * @param {string} culture - Specifies the culture name to be which formatting.\r\n * @param {NumberFormatOptions} option - Specific the format in which number will parsed.\r\n * @param {Object} cldr - Specifies the global cldr data collection.\r\n * @returns {Function} ?\r\n */\r\n NumberParser.numberParser = function (culture, option, cldr) {\r\n var _this = this;\r\n var dependable = base.getDependables(cldr, culture, '', true);\r\n var parseOptions = { custom: true };\r\n var numOptions;\r\n if ((base.formatRegex.test(option.format)) || !(option.format)) {\r\n extend(parseOptions, base.getProperNumericSkeleton(option.format || 'N'));\r\n parseOptions.custom = false;\r\n if (!parseOptions.fractionDigits) {\r\n if (option.maximumFractionDigits) {\r\n parseOptions.maximumFractionDigits = option.maximumFractionDigits;\r\n }\r\n }\r\n }\r\n else {\r\n extend(parseOptions, base.customFormat(option.format, null, null));\r\n }\r\n var numbers = getValue('numbers', dependable.parserObject);\r\n // eslint-disable-next-line\r\n numOptions = parser.getCurrentNumericOptions(dependable.parserObject, parser.getNumberingSystem(cldr), true, isBlazor());\r\n parseOptions.symbolRegex = parser.getSymbolRegex(Object.keys(numOptions.symbolMatch));\r\n // eslint-disable-next-line\r\n parseOptions.infinity = numOptions.symbolNumberSystem[keys[1]];\r\n var symbolpattern;\r\n if (!isBlazor()) {\r\n symbolpattern = base.getSymbolPattern(parseOptions.type, numOptions.numberSystem, dependable.numericObject, parseOptions.isAccount);\r\n if (symbolpattern) {\r\n symbolpattern = symbolpattern.replace(/\\u00A4/g, base.defaultCurrency);\r\n var split = symbolpattern.split(';');\r\n parseOptions.nData = base.getFormatData(split[1] || '-' + split[0], true, '');\r\n parseOptions.pData = base.getFormatData(split[0], true, '');\r\n }\r\n }\r\n else {\r\n parseOptions.nData = extend({}, {}, getValue(parseOptions.type + 'nData', numbers));\r\n parseOptions.pData = extend({}, {}, getValue(parseOptions.type + 'pData', numbers));\r\n if (parseOptions.type === 'currency' && option.currency) {\r\n base.replaceBlazorCurrency([parseOptions.pData, parseOptions.nData], getValue('currencySymbol', numbers), option.currency);\r\n }\r\n }\r\n return function (value) {\r\n return _this.getParsedNumber(value, parseOptions, numOptions);\r\n };\r\n };\r\n /**\r\n * Returns parsed number for the provided formatting options\r\n *\r\n * @param {string} value ?\r\n * @param {NumericParts} options ?\r\n * @param {NumericOptions} numOptions ?\r\n * @returns {number} ?\r\n */\r\n NumberParser.getParsedNumber = function (value, options, numOptions) {\r\n var isNegative;\r\n var isPercent;\r\n var tempValue;\r\n var lead;\r\n var end;\r\n var ret;\r\n if (value.indexOf(options.infinity) !== -1) {\r\n return Infinity;\r\n }\r\n else {\r\n value = parser.convertValueParts(value, options.symbolRegex, numOptions.symbolMatch);\r\n value = parser.convertValueParts(value, numOptions.numberParseRegex, numOptions.numericPair);\r\n value = value.indexOf('-') !== -1 ? value.replace('-.', '-0.') : value;\r\n if (value.indexOf('.') === 0) {\r\n value = '0' + value;\r\n }\r\n var matches = value.match(parseRegex);\r\n if (isNullOrUndefined(matches)) {\r\n return NaN;\r\n }\r\n lead = matches[1];\r\n tempValue = matches[2];\r\n var exponent = matches[5];\r\n end = matches[6];\r\n isNegative = options.custom ? ((lead === options.nData.nlead) && (end === options.nData.nend)) :\r\n ((lead.indexOf(options.nData.nlead) !== -1) && (end.indexOf(options.nData.nend) !== -1));\r\n isPercent = isNegative ?\r\n options.nData.isPercent :\r\n options.pData.isPercent;\r\n tempValue = tempValue.replace(groupRegex, '');\r\n if (exponent) {\r\n tempValue += exponent;\r\n }\r\n ret = +tempValue;\r\n if (options.type === 'percent' || isPercent) {\r\n ret = ret / 100;\r\n }\r\n if (options.custom || options.fractionDigits) {\r\n ret = parseFloat(ret.toFixed(options.custom ?\r\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.fractionDigits));\r\n }\r\n if (options.maximumFractionDigits) {\r\n ret = this.convertMaxFracDigits(tempValue, options, ret, isNegative);\r\n }\r\n if (isNegative) {\r\n ret *= -1;\r\n }\r\n return ret;\r\n }\r\n };\r\n NumberParser.convertMaxFracDigits = function (value, options, ret, isNegative) {\r\n var decimalSplitValue = value.split('.');\r\n if (decimalSplitValue[1] && decimalSplitValue[1].length > options.maximumFractionDigits) {\r\n ret = +(ret.toFixed(options.custom ?\r\n (isNegative ? options.nData.maximumFractionDigits : options.pData.maximumFractionDigits) : options.maximumFractionDigits));\r\n }\r\n return ret;\r\n };\r\n return NumberParser;\r\n}());\r\nexport { NumberParser };\r\n","/**\r\n * Parser\r\n */\r\nvar defaultNumberingSystem = {\r\n 'latn': {\r\n '_digits': '0123456789',\r\n '_type': 'numeric'\r\n }\r\n};\r\nimport { isUndefined, getValue, isBlazor } from '../util';\r\nvar defaultNumberSymbols = {\r\n 'decimal': '.',\r\n 'group': ',',\r\n 'percentSign': '%',\r\n 'plusSign': '+',\r\n 'minusSign': '-',\r\n 'infinity': '∞',\r\n 'nan': 'NaN',\r\n 'exponential': 'E'\r\n};\r\nvar latnNumberSystem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];\r\n/**\r\n * Interface for parser base\r\n *\r\n * @private\r\n */\r\nvar ParserBase = /** @class */ (function () {\r\n function ParserBase() {\r\n }\r\n /**\r\n * Returns the cldr object for the culture specifies\r\n *\r\n * @param {Object} obj - Specifies the object from which culture object to be acquired.\r\n * @param {string} cName - Specifies the culture name.\r\n * @returns {Object} ?\r\n */\r\n ParserBase.getMainObject = function (obj, cName) {\r\n var value = isBlazor() ? cName : 'main.' + cName;\r\n return getValue(value, obj);\r\n };\r\n /**\r\n * Returns the numbering system object from given cldr data.\r\n *\r\n * @param {Object} obj - Specifies the object from which number system is acquired.\r\n * @returns {Object} ?\r\n */\r\n ParserBase.getNumberingSystem = function (obj) {\r\n return getValue('supplemental.numberingSystems', obj) || this.numberingSystems;\r\n };\r\n /**\r\n * Returns the reverse of given object keys or keys specified.\r\n *\r\n * @param {Object} prop - Specifies the object to be reversed.\r\n * @param {number[]} keys - Optional parameter specifies the custom keyList for reversal.\r\n * @returns {Object} ?\r\n */\r\n ParserBase.reverseObject = function (prop, keys) {\r\n var propKeys = keys || Object.keys(prop);\r\n var res = {};\r\n for (var _i = 0, propKeys_1 = propKeys; _i < propKeys_1.length; _i++) {\r\n var key = propKeys_1[_i];\r\n // eslint-disable-next-line\r\n if (!res.hasOwnProperty(prop[key])) {\r\n // eslint-disable-next-line\r\n res[prop[key]] = key;\r\n }\r\n }\r\n return res;\r\n };\r\n /**\r\n * Returns the symbol regex by skipping the escape sequence.\r\n *\r\n * @param {string[]} props - Specifies the array values to be skipped.\r\n * @returns {RegExp} ?\r\n */\r\n ParserBase.getSymbolRegex = function (props) {\r\n var regexStr = props.map(function (str) {\r\n return str.replace(/([.*+?^=!:${}()|[\\]/\\\\])/g, '\\\\$1');\r\n }).join('|');\r\n return new RegExp(regexStr, 'g');\r\n };\r\n /**\r\n *\r\n * @param {Object} prop ?\r\n * @returns {Object} ?\r\n */\r\n ParserBase.getSymbolMatch = function (prop) {\r\n var matchKeys = Object.keys(defaultNumberSymbols);\r\n var ret = {};\r\n for (var _i = 0, matchKeys_1 = matchKeys; _i < matchKeys_1.length; _i++) {\r\n var key = matchKeys_1[_i];\r\n // eslint-disable-next-line\r\n ret[prop[key]] = defaultNumberSymbols[key];\r\n }\r\n return ret;\r\n };\r\n /**\r\n * Returns regex string for provided value\r\n *\r\n * @param {string} val ?\r\n * @returns {string} ?\r\n */\r\n ParserBase.constructRegex = function (val) {\r\n var len = val.length;\r\n var ret = '';\r\n for (var i = 0; i < len; i++) {\r\n if (i !== len - 1) {\r\n ret += val[i] + '|';\r\n }\r\n else {\r\n ret += val[i];\r\n }\r\n }\r\n return ret;\r\n };\r\n /**\r\n * Returns the replaced value of matching regex and obj mapper.\r\n *\r\n * @param {string} value - Specifies the values to be replaced.\r\n * @param {RegExp} regex - Specifies the regex to search.\r\n * @param {Object} obj - Specifies the object matcher to be replace value parts.\r\n * @returns {string} ?\r\n */\r\n ParserBase.convertValueParts = function (value, regex, obj) {\r\n return value.replace(regex, function (str) {\r\n // eslint-disable-next-line\r\n return obj[str];\r\n });\r\n };\r\n /**\r\n * Returns default numbering system object for formatting from cldr data\r\n *\r\n * @param {Object} obj ?\r\n * @returns {NumericObject} ?\r\n */\r\n ParserBase.getDefaultNumberingSystem = function (obj) {\r\n var ret = {};\r\n ret.obj = getValue('numbers', obj);\r\n ret.nSystem = getValue('defaultNumberingSystem', ret.obj);\r\n return ret;\r\n };\r\n /**\r\n * Returns the replaced value of matching regex and obj mapper.\r\n *\r\n * @param {Object} curObj ?\r\n * @param {Object} numberSystem ?\r\n * @param {boolean} needSymbols ?\r\n * @param {boolean} blazorMode ?\r\n * @returns {Object} ?\r\n */\r\n ParserBase.getCurrentNumericOptions = function (curObj, numberSystem, needSymbols, blazorMode) {\r\n var ret = {};\r\n var cur = this.getDefaultNumberingSystem(curObj);\r\n if (!isUndefined(cur.nSystem) || blazorMode) {\r\n var digits = blazorMode ? getValue('obj.mapperDigits', cur) : getValue(cur.nSystem + '._digits', numberSystem);\r\n if (!isUndefined(digits)) {\r\n ret.numericPair = this.reverseObject(digits, latnNumberSystem);\r\n ret.numberParseRegex = new RegExp(this.constructRegex(digits), 'g');\r\n ret.numericRegex = '[' + digits[0] + '-' + digits[9] + ']';\r\n if (needSymbols) {\r\n ret.numericRegex = digits[0] + '-' + digits[9];\r\n ret.symbolNumberSystem = getValue(blazorMode ? 'numberSymbols' : 'symbols-numberSystem-' + cur.nSystem, cur.obj);\r\n ret.symbolMatch = this.getSymbolMatch(ret.symbolNumberSystem);\r\n ret.numberSystem = cur.nSystem;\r\n }\r\n }\r\n }\r\n return ret;\r\n };\r\n /**\r\n * Returns number mapper object for the provided cldr data\r\n *\r\n * @param {Object} curObj ?\r\n * @param {Object} numberSystem ?\r\n * @param {boolean} isNumber ?\r\n * @returns {NumberMapper} ?\r\n */\r\n // eslint-disable-next-line\r\n ParserBase.getNumberMapper = function (curObj, numberSystem, isNumber) {\r\n var ret = { mapper: {} };\r\n var cur = this.getDefaultNumberingSystem(curObj);\r\n if (!isUndefined(cur.nSystem)) {\r\n ret.numberSystem = cur.nSystem;\r\n ret.numberSymbols = getValue('symbols-numberSystem-' + cur.nSystem, cur.obj);\r\n ret.timeSeparator = getValue('timeSeparator', ret.numberSymbols);\r\n var digits = getValue(cur.nSystem + '._digits', numberSystem);\r\n if (!isUndefined(digits)) {\r\n for (var _i = 0, latnNumberSystem_1 = latnNumberSystem; _i < latnNumberSystem_1.length; _i++) {\r\n var i = latnNumberSystem_1[_i];\r\n // eslint-disable-next-line\r\n ret.mapper[i] = digits[i];\r\n }\r\n }\r\n }\r\n return ret;\r\n };\r\n ParserBase.nPair = 'numericPair';\r\n ParserBase.nRegex = 'numericRegex';\r\n ParserBase.numberingSystems = defaultNumberingSystem;\r\n return ParserBase;\r\n}());\r\nexport { ParserBase };\r\n/**\r\n * @private\r\n */\r\nvar blazorCurrencyData = {\r\n 'DJF': 'Fdj',\r\n 'ERN': 'Nfk',\r\n 'ETB': 'Br',\r\n 'NAD': '$',\r\n 'ZAR': 'R',\r\n 'XAF': 'FCFA',\r\n 'GHS': 'GH₵',\r\n 'XDR': 'XDR',\r\n 'AED': 'د.إ.‏',\r\n 'BHD': 'د.ب.‏',\r\n 'DZD': 'د.ج.‏',\r\n 'EGP': 'ج.م.‏',\r\n 'ILS': '₪',\r\n 'IQD': 'د.ع.‏',\r\n 'JOD': 'د.ا.‏',\r\n 'KMF': 'CF',\r\n 'KWD': 'د.ك.‏',\r\n 'LBP': 'ل.ل.‏',\r\n 'LYD': 'د.ل.‏',\r\n 'MAD': 'د.م.‏',\r\n 'MRU': 'أ.م.',\r\n 'OMR': 'ر.ع.‏',\r\n 'QAR': 'ر.ق.‏',\r\n 'SAR': 'ر.س.‏',\r\n 'SDG': 'ج.س.',\r\n 'SOS': 'S',\r\n 'SSP': '£',\r\n 'SYP': 'ل.س.‏',\r\n 'TND': 'د.ت.‏',\r\n 'YER': 'ر.ي.‏',\r\n 'CLP': '$',\r\n 'INR': '₹',\r\n 'TZS': 'TSh',\r\n 'EUR': '€',\r\n 'AZN': '₼',\r\n 'RUB': '₽',\r\n 'BYN': 'Br',\r\n 'ZMW': 'K',\r\n 'BGN': 'лв.',\r\n 'NGN': '₦',\r\n 'XOF': 'CFA',\r\n 'BDT': '৳',\r\n 'CNY': '¥',\r\n 'BAM': 'КМ',\r\n 'UGX': 'USh',\r\n 'USD': '$',\r\n 'CZK': 'Kč',\r\n 'GBP': '£',\r\n 'DKK': 'kr.',\r\n 'KES': 'Ksh',\r\n 'CHF': 'CHF',\r\n 'MVR': 'ރ.',\r\n 'BTN': 'Nu.',\r\n 'XCD': 'EC$',\r\n 'AUD': '$',\r\n 'BBD': '$',\r\n 'BIF': 'FBu',\r\n 'BMD': '$',\r\n 'BSD': '$',\r\n 'BWP': 'P',\r\n 'BZD': '$',\r\n 'CAD': '$',\r\n 'NZD': '$',\r\n 'FJD': '$',\r\n 'FKP': '£',\r\n 'GIP': '£',\r\n 'GMD': 'D',\r\n 'GYD': '$',\r\n 'HKD': '$',\r\n 'IDR': 'Rp',\r\n 'JMD': '$',\r\n 'KYD': '$',\r\n 'LRD': '$',\r\n 'MGA': 'Ar',\r\n 'MOP': 'MOP$',\r\n 'MUR': 'Rs',\r\n 'MWK': 'MK',\r\n 'MYR': 'RM',\r\n 'PGK': 'K',\r\n 'PHP': '₱',\r\n 'PKR': 'Rs',\r\n 'RWF': 'RF',\r\n 'SBD': '$',\r\n 'SCR': 'SR',\r\n 'SEK': 'kr',\r\n 'SGD': '$',\r\n 'SHP': '£',\r\n 'SLL': 'Le',\r\n 'ANG': 'NAf.',\r\n 'SZL': 'E',\r\n 'TOP': 'T$',\r\n 'TTD': '$',\r\n 'VUV': 'VT',\r\n 'WST': 'WS$',\r\n 'ARS': '$',\r\n 'BOB': 'Bs',\r\n 'BRL': 'R$',\r\n 'COP': '$',\r\n 'CRC': '₡',\r\n 'CUP': '$',\r\n 'DOP': '$',\r\n 'GTQ': 'Q',\r\n 'HNL': 'L',\r\n 'MXN': '$',\r\n 'NIO': 'C$',\r\n 'PAB': 'B/.',\r\n 'PEN': 'S/',\r\n 'PYG': '₲',\r\n 'UYU': '$',\r\n 'VES': 'Bs.S',\r\n 'IRR': 'ريال',\r\n 'GNF': 'FG',\r\n 'CDF': 'FC',\r\n 'HTG': 'G',\r\n 'XPF': 'FCFP',\r\n 'HRK': 'kn',\r\n 'HUF': 'Ft',\r\n 'AMD': '֏',\r\n 'ISK': 'kr',\r\n 'JPY': '¥',\r\n 'GEL': '₾',\r\n 'CVE': '​',\r\n 'KZT': '₸',\r\n 'KHR': '៛',\r\n 'KPW': '₩',\r\n 'KRW': '₩',\r\n 'KGS': 'сом',\r\n 'AOA': 'Kz',\r\n 'LAK': '₭',\r\n 'MZN': 'MTn',\r\n 'MKD': 'ден',\r\n 'MNT': '₮',\r\n 'BND': '$',\r\n 'MMK': 'K',\r\n 'NOK': 'kr',\r\n 'NPR': 'रु',\r\n 'AWG': 'Afl.',\r\n 'SRD': '$',\r\n 'PLN': 'zł',\r\n 'AFN': '؋',\r\n 'STN': 'Db',\r\n 'MDL': 'L',\r\n 'RON': 'lei',\r\n 'UAH': '₴',\r\n 'LKR': 'රු.',\r\n 'ALL': 'Lekë',\r\n 'RSD': 'дин.',\r\n 'TJS': 'смн',\r\n 'THB': '฿',\r\n 'TMT': 'm.',\r\n 'TRY': '₺',\r\n 'UZS': 'сўм',\r\n 'VND': '₫',\r\n 'TWD': 'NT$'\r\n};\r\n/**\r\n *\r\n * @param {string} currencyCode ?\r\n * @returns {string} ?\r\n */\r\nexport function getBlazorCurrencySymbol(currencyCode) {\r\n return getValue(currencyCode || '', blazorCurrencyData);\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, NotifyPropertyChanges, Event } from './notify-property-change';\r\nimport { Base } from './base';\r\nvar keyCode = {\r\n 'backspace': 8,\r\n 'tab': 9,\r\n 'enter': 13,\r\n 'shift': 16,\r\n 'control': 17,\r\n 'alt': 18,\r\n 'pause': 19,\r\n 'capslock': 20,\r\n 'space': 32,\r\n 'escape': 27,\r\n 'pageup': 33,\r\n 'pagedown': 34,\r\n 'end': 35,\r\n 'home': 36,\r\n 'leftarrow': 37,\r\n 'uparrow': 38,\r\n 'rightarrow': 39,\r\n 'downarrow': 40,\r\n 'insert': 45,\r\n 'delete': 46,\r\n 'f1': 112,\r\n 'f2': 113,\r\n 'f3': 114,\r\n 'f4': 115,\r\n 'f5': 116,\r\n 'f6': 117,\r\n 'f7': 118,\r\n 'f8': 119,\r\n 'f9': 120,\r\n 'f10': 121,\r\n 'f11': 122,\r\n 'f12': 123,\r\n 'semicolon': 186,\r\n 'plus': 187,\r\n 'comma': 188,\r\n 'minus': 189,\r\n 'dot': 190,\r\n 'forwardslash': 191,\r\n 'graveaccent': 192,\r\n 'openbracket': 219,\r\n 'backslash': 220,\r\n 'closebracket': 221,\r\n 'singlequote': 222\r\n};\r\n/**\r\n * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.\r\n * ```html\r\n *
    ;\r\n * \r\n * ```\r\n */\r\nvar KeyboardEvents = /** @class */ (function (_super) {\r\n __extends(KeyboardEvents, _super);\r\n /**\r\n * Initializes the KeyboardEvents\r\n *\r\n * @param {HTMLElement} element ?\r\n * @param {KeyboardEventsModel} options ?\r\n */\r\n function KeyboardEvents(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n /**\r\n * To handle a key press event returns null\r\n *\r\n * @param {KeyboardEventArgs} e ?\r\n * @returns {void} ?\r\n */\r\n _this.keyPressHandler = function (e) {\r\n var isAltKey = e.altKey;\r\n var isCtrlKey = e.ctrlKey;\r\n var isShiftKey = e.shiftKey;\r\n var curkeyCode = e.which;\r\n var keys = Object.keys(_this.keyConfigs);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n var configCollection = _this.keyConfigs[key].split(',');\r\n for (var _a = 0, configCollection_1 = configCollection; _a < configCollection_1.length; _a++) {\r\n var rconfig = configCollection_1[_a];\r\n var rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());\r\n if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&\r\n isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {\r\n e.action = key;\r\n if (_this.keyAction) {\r\n _this.keyAction(e);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n _this.bind();\r\n return _this;\r\n }\r\n KeyboardEvents_1 = KeyboardEvents;\r\n /**\r\n * Unwire bound events and destroy the instance.\r\n *\r\n * @returns {void} ?\r\n */\r\n KeyboardEvents.prototype.destroy = function () {\r\n this.unwireEvents();\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Function can be used to specify certain action if a property is changed\r\n *\r\n * @param {KeyboardEventsModel} newProp ?\r\n * @param {KeyboardEventsModel} oldProp ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\n // eslint-disable-next-line\r\n KeyboardEvents.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n // No code are needed\r\n };\r\n KeyboardEvents.prototype.bind = function () {\r\n this.wireEvents();\r\n };\r\n /**\r\n * To get the module name, returns 'keyboard'.\r\n *\r\n * @returns {string} ?\r\n * @private\r\n */\r\n KeyboardEvents.prototype.getModuleName = function () {\r\n return 'keyboard';\r\n };\r\n /**\r\n * Wiring event handlers to events\r\n *\r\n * @returns {void} ?\r\n * @private\r\n */\r\n KeyboardEvents.prototype.wireEvents = function () {\r\n this.element.addEventListener(this.eventName, this.keyPressHandler);\r\n };\r\n /**\r\n * Unwiring event handlers to events\r\n *\r\n * @returns {void} ?\r\n * @private\r\n */\r\n KeyboardEvents.prototype.unwireEvents = function () {\r\n this.element.removeEventListener(this.eventName, this.keyPressHandler);\r\n };\r\n /**\r\n * To get the key configuration data\r\n *\r\n * @param {string} config - configuration data\r\n * @returns {KeyData} ?\r\n */\r\n KeyboardEvents.getKeyConfigData = function (config) {\r\n if (config in this.configCache) {\r\n return this.configCache[config];\r\n }\r\n var keys = config.toLowerCase().split('+');\r\n var keyData = {\r\n altKey: (keys.indexOf('alt') !== -1 ? true : false),\r\n ctrlKey: (keys.indexOf('ctrl') !== -1 ? true : false),\r\n shiftKey: (keys.indexOf('shift') !== -1 ? true : false),\r\n keyCode: null\r\n };\r\n if (keys[keys.length - 1].length > 1 && !!Number(keys[keys.length - 1])) {\r\n keyData.keyCode = Number(keys[keys.length - 1]);\r\n }\r\n else {\r\n keyData.keyCode = KeyboardEvents_1.getKeyCode(keys[keys.length - 1]);\r\n }\r\n KeyboardEvents_1.configCache[config] = keyData;\r\n return keyData;\r\n };\r\n // Return the keycode value as string\r\n KeyboardEvents.getKeyCode = function (keyVal) {\r\n return keyCode[keyVal] || keyVal.toUpperCase().charCodeAt(0);\r\n };\r\n var KeyboardEvents_1;\r\n KeyboardEvents.configCache = {};\r\n __decorate([\r\n Property({})\r\n ], KeyboardEvents.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property('keyup')\r\n ], KeyboardEvents.prototype, \"eventName\", void 0);\r\n __decorate([\r\n Event()\r\n ], KeyboardEvents.prototype, \"keyAction\", void 0);\r\n KeyboardEvents = KeyboardEvents_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], KeyboardEvents);\r\n return KeyboardEvents;\r\n}(Base));\r\nexport { KeyboardEvents };\r\n","import { extend, isNullOrUndefined } from './util';\r\nimport { defaultCulture } from './internationalization';\r\n/**\r\n * L10n modules provides localized text for different culture.\r\n * ```typescript\r\n * import {setCulture} from '@syncfusion/ts-base-library';\r\n * //load global locale object common for all components.\r\n * L10n.load({\r\n * 'fr-BE': {\r\n * 'button': {\r\n * 'check': 'vérifié'\r\n * }\r\n * }\r\n * });\r\n * //set globale default locale culture.\r\n * setCulture('fr-BE');\r\n * let instance: L10n = new L10n('button', {\r\n * check: 'checked'\r\n * });\r\n * //Get locale text for current property.\r\n * instance.getConstant('check');\r\n * //Change locale culture in a component.\r\n * instance.setLocale('en-US');\r\n * ```\r\n */\r\nvar L10n = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param {string} controlName ?\r\n * @param {Object} localeStrings ?\r\n * @param {string} locale ?\r\n */\r\n function L10n(controlName, localeStrings, locale) {\r\n this.controlName = controlName;\r\n this.localeStrings = localeStrings;\r\n this.setLocale(locale || defaultCulture);\r\n }\r\n /**\r\n * Sets the locale text\r\n *\r\n * @param {string} locale ?\r\n * @returns {void} ?\r\n */\r\n L10n.prototype.setLocale = function (locale) {\r\n var intLocale = this.intGetControlConstant(L10n.locale, locale);\r\n this.currentLocale = intLocale || this.localeStrings;\r\n };\r\n /**\r\n * Sets the global locale for all components.\r\n *\r\n * @param {Object} localeObject - specifies the localeObject to be set as global locale.\r\n * @returns {void} ?\r\n */\r\n L10n.load = function (localeObject) {\r\n this.locale = extend(this.locale, localeObject, {}, true);\r\n };\r\n /**\r\n * Returns current locale text for the property based on the culture name and control name.\r\n *\r\n * @param {string} prop - specifies the property for which localize text to be returned.\r\n * @returns {string} ?\r\n */\r\n L10n.prototype.getConstant = function (prop) {\r\n // Removed conditional operator because this method does not return correct value when passing 0 as value in localization\r\n if (!isNullOrUndefined(this.currentLocale[prop])) {\r\n return this.currentLocale[prop];\r\n }\r\n else {\r\n return this.localeStrings[prop] || '';\r\n }\r\n };\r\n /**\r\n * Returns the control constant object for current object and the locale specified.\r\n *\r\n * @param {Object} curObject ?\r\n * @param {string} locale ?\r\n * @returns {Object} ?\r\n */\r\n L10n.prototype.intGetControlConstant = function (curObject, locale) {\r\n if ((curObject)[locale]) {\r\n return (curObject)[locale][this.controlName];\r\n }\r\n return null;\r\n };\r\n L10n.locale = {};\r\n return L10n;\r\n}());\r\nexport { L10n };\r\n","/**\r\n * Module loading operations\r\n */\r\nimport { createInstance, setValue, getValue, deleteObject } from './util';\r\nvar MODULE_SUFFIX = 'Module';\r\nvar ModuleLoader = /** @class */ (function () {\r\n function ModuleLoader(parent) {\r\n this.loadedModules = [];\r\n this.parent = parent;\r\n }\r\n /**\r\n * Inject required modules in component library\r\n *\r\n * @returns {void} ?\r\n * @param {ModuleDeclaration[]} requiredModules - Array of modules to be required\r\n * @param {Function[]} moduleList - Array of modules to be injected from sample side\r\n */\r\n ModuleLoader.prototype.inject = function (requiredModules, moduleList) {\r\n var reqLength = requiredModules.length;\r\n if (reqLength === 0) {\r\n this.clean();\r\n return;\r\n }\r\n if (this.loadedModules.length) {\r\n this.clearUnusedModule(requiredModules);\r\n }\r\n for (var i = 0; i < reqLength; i++) {\r\n var modl = requiredModules[i];\r\n for (var _i = 0, moduleList_1 = moduleList; _i < moduleList_1.length; _i++) {\r\n var module = moduleList_1[_i];\r\n var modName = modl.member;\r\n if (module.prototype.getModuleName() === modl.member && !this.isModuleLoaded(modName)) {\r\n var moduleObject = createInstance(module, modl.args);\r\n var memberName = this.getMemberName(modName);\r\n if (modl.isProperty) {\r\n setValue(memberName, module, this.parent);\r\n }\r\n else {\r\n setValue(memberName, moduleObject, this.parent);\r\n }\r\n var loadedModule = modl;\r\n loadedModule.member = memberName;\r\n this.loadedModules.push(loadedModule);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To remove the created object while destroying the control\r\n *\r\n * @returns {void}\r\n */\r\n ModuleLoader.prototype.clean = function () {\r\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\r\n var modules = _a[_i];\r\n if (!modules.isProperty) {\r\n getValue(modules.member, this.parent).destroy();\r\n }\r\n }\r\n this.loadedModules = [];\r\n };\r\n /**\r\n * Removes all unused modules\r\n *\r\n * @param {ModuleDeclaration[]} moduleList ?\r\n * @returns {void} ?\r\n */\r\n ModuleLoader.prototype.clearUnusedModule = function (moduleList) {\r\n var _this = this;\r\n var usedModules = moduleList.map(function (arg) { return _this.getMemberName(arg.member); });\r\n var removableModule = this.loadedModules.filter(function (module) {\r\n return usedModules.indexOf(module.member) === -1;\r\n });\r\n for (var _i = 0, removableModule_1 = removableModule; _i < removableModule_1.length; _i++) {\r\n var mod = removableModule_1[_i];\r\n if (!mod.isProperty) {\r\n getValue(mod.member, this.parent).destroy();\r\n }\r\n this.loadedModules.splice(this.loadedModules.indexOf(mod), 1);\r\n deleteObject(this.parent, mod.member);\r\n }\r\n };\r\n /**\r\n * To get the name of the member.\r\n *\r\n * @param {string} name ?\r\n * @returns {string} ?\r\n */\r\n ModuleLoader.prototype.getMemberName = function (name) {\r\n return name[0].toLowerCase() + name.substring(1) + MODULE_SUFFIX;\r\n };\r\n /**\r\n * Returns boolean based on whether the module specified is loaded or not\r\n *\r\n * @param {string} modName ?\r\n * @returns {boolean} ?\r\n */\r\n ModuleLoader.prototype.isModuleLoaded = function (modName) {\r\n for (var _i = 0, _a = this.loadedModules; _i < _a.length; _i++) {\r\n var mod = _a[_i];\r\n if (mod.member === this.getMemberName(modName)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return ModuleLoader;\r\n}());\r\nexport { ModuleLoader };\r\n","import { createInstance, isUndefined, merge, extend, getValue } from './util';\r\n/**\r\n * Returns the Class Object\r\n *\r\n * @param {ClassObject} instance - instance of ClassObject\r\n * @param {string} curKey - key of the current instance\r\n * @param {Object} defaultValue - default Value\r\n * @param {Object[]} type ?\r\n * @returns {ClassObject} ?\r\n */\r\n// eslint-disable-next-line\r\nfunction getObject(instance, curKey, defaultValue, type) {\r\n // eslint-disable-next-line\r\n if (!instance.properties.hasOwnProperty(curKey) || !(instance.properties[curKey] instanceof type)) {\r\n instance.properties[curKey] = createInstance(type, [instance, curKey, defaultValue]);\r\n }\r\n return instance.properties[curKey];\r\n}\r\n/**\r\n * Returns object array\r\n *\r\n * @param {ClassObject} instance ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} defaultValue ?\r\n * @param {Object} type ?\r\n * @param {boolean} isSetter ?\r\n * @param {boolean} isFactory ?\r\n * @returns {Object[]} ?\r\n */\r\n// eslint-disable-next-line\r\nfunction getObjectArray(instance, curKey, defaultValue, type, isSetter, isFactory) {\r\n var result = [];\r\n var len = defaultValue ? defaultValue.length : 0;\r\n for (var i = 0; i < len; i++) {\r\n var curType = type;\r\n if (isFactory) {\r\n curType = type(defaultValue[i], instance);\r\n }\r\n if (isSetter) {\r\n var inst = createInstance(curType, [instance, curKey, {}, true]);\r\n inst.setProperties(defaultValue[i], true);\r\n result.push(inst);\r\n }\r\n else {\r\n result.push(createInstance(curType, [instance, curKey, defaultValue[i], false]));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Returns the properties of the object\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @returns {void} ?\r\n */\r\nfunction propertyGetter(defaultValue, curKey) {\r\n return function () {\r\n // eslint-disable-next-line\r\n if (!this.properties.hasOwnProperty(curKey)) {\r\n this.properties[curKey] = defaultValue;\r\n }\r\n return this.properties[curKey];\r\n };\r\n}\r\n/**\r\n * Set the properties for the object\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @returns {void} ?\r\n */\r\nfunction propertySetter(defaultValue, curKey) {\r\n return function (newValue) {\r\n if (this.properties[curKey] !== newValue) {\r\n // eslint-disable-next-line\r\n var oldVal = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\r\n this.saveChanges(curKey, newValue, oldVal);\r\n this.properties[curKey] = newValue;\r\n }\r\n };\r\n}\r\n/**\r\n * Returns complex objects\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\n// eslint-disable-next-line\r\nfunction complexGetter(defaultValue, curKey, type) {\r\n return function () {\r\n return getObject(this, curKey, defaultValue, type);\r\n };\r\n}\r\n/**\r\n * Sets complex objects\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexSetter(defaultValue, curKey, type) {\r\n return function (newValue) {\r\n getObject(this, curKey, defaultValue, type).setProperties(newValue);\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {FunctionConstructor} type ?\r\n * @returns {void} ?\r\n */\r\n// eslint-disable-next-line\r\nfunction complexFactoryGetter(defaultValue, curKey, type) {\r\n return function () {\r\n var curType = type({});\r\n // eslint-disable-next-line\r\n if (this.properties.hasOwnProperty(curKey)) {\r\n return this.properties[curKey];\r\n }\r\n else {\r\n return getObject(this, curKey, defaultValue, curType);\r\n }\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexFactorySetter(defaultValue, curKey, type) {\r\n return function (newValue) {\r\n var curType = type(newValue, this);\r\n getObject(this, curKey, defaultValue, curType).setProperties(newValue);\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object[]} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexArrayGetter(defaultValue, curKey, type) {\r\n return function () {\r\n var _this = this;\r\n // eslint-disable-next-line\r\n if (!this.properties.hasOwnProperty(curKey)) {\r\n var defCollection = getObjectArray(this, curKey, defaultValue, type, false);\r\n this.properties[curKey] = defCollection;\r\n }\r\n var ignore = ((this.controlParent !== undefined && this.controlParent.ignoreCollectionWatch)\r\n || this.ignoreCollectionWatch);\r\n // eslint-disable-next-line\r\n if (!this.properties[curKey].hasOwnProperty('push') && !ignore) {\r\n ['push', 'pop'].forEach(function (extendFunc) {\r\n var descriptor = {\r\n value: complexArrayDefinedCallback(extendFunc, curKey, type, _this.properties[curKey]).bind(_this),\r\n configurable: true\r\n };\r\n Object.defineProperty(_this.properties[curKey], extendFunc, descriptor);\r\n });\r\n }\r\n // eslint-disable-next-line\r\n if (!this.properties[curKey].hasOwnProperty('isComplexArray')) {\r\n Object.defineProperty(this.properties[curKey], 'isComplexArray', { value: true });\r\n }\r\n return this.properties[curKey];\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object[]} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexArraySetter(defaultValue, curKey, type) {\r\n return function (newValue) {\r\n this.isComplexArraySetter = true;\r\n var oldValueCollection = getObjectArray(this, curKey, defaultValue, type, false);\r\n var newValCollection = getObjectArray(this, curKey, newValue, type, true);\r\n this.isComplexArraySetter = false;\r\n this.saveChanges(curKey, newValCollection, oldValueCollection);\r\n this.properties[curKey] = newValCollection;\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object[]} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {Object[]} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexArrayFactorySetter(defaultValue, curKey, type) {\r\n return function (newValue) {\r\n // eslint-disable-next-line\r\n var oldValueCollection = this.properties.hasOwnProperty(curKey) ? this.properties[curKey] : defaultValue;\r\n var newValCollection = getObjectArray(this, curKey, newValue, type, true, true);\r\n this.saveChanges(curKey, newValCollection, oldValueCollection);\r\n this.properties[curKey] = newValCollection;\r\n };\r\n}\r\n/**\r\n *\r\n * @param {Object[]} defaultValue ?\r\n * @param {string} curKey ?\r\n * @param {FunctionConstructor} type ?\r\n * @returns {void} ?\r\n */\r\nfunction complexArrayFactoryGetter(defaultValue, curKey, type) {\r\n return function () {\r\n var curType = type({});\r\n // eslint-disable-next-line\r\n if (!this.properties.hasOwnProperty(curKey)) {\r\n var defCollection = getObjectArray(this, curKey, defaultValue, curType, false);\r\n this.properties[curKey] = defCollection;\r\n }\r\n return this.properties[curKey];\r\n };\r\n}\r\n/**\r\n *\r\n * @param {string} dFunc ?\r\n * @param {string} curKey ?\r\n * @param {Object} type ?\r\n * @param {Object} prop ?\r\n * @returns {Object} ?\r\n */\r\nfunction complexArrayDefinedCallback(dFunc, curKey, type, prop) {\r\n /* tslint:disable no-function-expression */\r\n return function () {\r\n var newValue = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n newValue[_i] = arguments[_i];\r\n }\r\n var keyString = this.propName ? this.getParentKey() + '.' + curKey + '-' : curKey + '-';\r\n switch (dFunc) {\r\n case 'push':\r\n for (var i = 0; i < newValue.length; i++) {\r\n Array.prototype[dFunc].apply(prop, [newValue[i]]);\r\n var model_1 = getArrayModel(keyString + (prop.length - 1), newValue[i], !this.controlParent, dFunc);\r\n this.serverDataBind(model_1, newValue[i], false, dFunc);\r\n }\r\n break;\r\n case 'pop':\r\n Array.prototype[dFunc].apply(prop);\r\n // eslint-disable-next-line\r\n var model = getArrayModel(keyString + prop.length, null, !this.controlParent, dFunc);\r\n this.serverDataBind(model, { ejsAction: 'pop' }, false, dFunc);\r\n break;\r\n }\r\n return prop;\r\n };\r\n}\r\n/**\r\n *\r\n * @param {string} keyString ?\r\n * @param {Object} value ?\r\n * @param {boolean} isControlParent ?\r\n * @param {string} arrayFunction ?\r\n * @returns {Object} ?\r\n */\r\nfunction getArrayModel(keyString, value, isControlParent, arrayFunction) {\r\n var modelObject = keyString;\r\n if (isControlParent) {\r\n modelObject = {};\r\n modelObject[keyString] = value;\r\n if (value && typeof value === 'object') {\r\n var action = 'ejsAction';\r\n modelObject[keyString][action] = arrayFunction;\r\n }\r\n }\r\n return modelObject;\r\n}\r\n// eslint-disable-next-line\r\n/**\r\n * Method used to create property. General syntax below.\r\n *\r\n * @param {Object} defaultValue - Specifies the default value of property.\r\n * @returns {PropertyDecorator} ?\r\n * ```\r\n * @Property('TypeScript')\r\n * propertyName: Type;\r\n * ```\r\n * @private\r\n */\r\nexport function Property(defaultValue) {\r\n return function (target, key) {\r\n var propertyDescriptor = {\r\n set: propertySetter(defaultValue, key),\r\n get: propertyGetter(defaultValue, key),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n //new property creation\r\n Object.defineProperty(target, key, propertyDescriptor);\r\n addPropertyCollection(target, key, 'prop', defaultValue);\r\n };\r\n}\r\n/**\r\n * Method used to create complex property. General syntax below.\r\n *\r\n * @param {any} defaultValue - Specifies the default value of property.\r\n * @param {Function} type - Specifies the class type of complex object.\r\n * @returns {PropertyDecorator} ?\r\n * ```\r\n * @Complex({},Type)\r\n * propertyName: Type;\r\n * ```\r\n * @private\r\n */\r\nexport function Complex(defaultValue, type) {\r\n return function (target, key) {\r\n var propertyDescriptor = {\r\n set: complexSetter(defaultValue, key, type),\r\n get: complexGetter(defaultValue, key, type),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n //new property creation\r\n Object.defineProperty(target, key, propertyDescriptor);\r\n addPropertyCollection(target, key, 'complexProp', defaultValue, type);\r\n };\r\n}\r\n/**\r\n * Method used to create complex Factory property. General syntax below.\r\n *\r\n * @param {Function} type - Specifies the class factory type of complex object.\r\n * @returns {PropertyDecorator} ?\r\n * ```\r\n * @ComplexFactory(defaultType, factoryFunction)\r\n * propertyName: Type1 | Type2;\r\n * ```\r\n * @private\r\n */\r\nexport function ComplexFactory(type) {\r\n return function (target, key) {\r\n var propertyDescriptor = {\r\n set: complexFactorySetter({}, key, type),\r\n get: complexFactoryGetter({}, key, type),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n //new property creation\r\n Object.defineProperty(target, key, propertyDescriptor);\r\n addPropertyCollection(target, key, 'complexProp', {}, type);\r\n };\r\n}\r\n/**\r\n * Method used to create complex array property. General syntax below.\r\n *\r\n * @param {any} defaultValue - Specifies the default value of property.\r\n * @param {Function} type - Specifies the class type of complex object.\r\n * @returns {PropertyDecorator} ?\r\n * ```\r\n * @Collection([], Type);\r\n * propertyName: Type;\r\n * ```\r\n * @private\r\n */\r\nexport function Collection(defaultValue, type) {\r\n return function (target, key) {\r\n var propertyDescriptor = {\r\n set: complexArraySetter(defaultValue, key, type),\r\n get: complexArrayGetter(defaultValue, key, type),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n //new property creation\r\n Object.defineProperty(target, key, propertyDescriptor);\r\n addPropertyCollection(target, key, 'colProp', defaultValue, type);\r\n };\r\n}\r\n/**\r\n * Method used to create complex factory array property. General syntax below.\r\n *\r\n * @param {Function} type - Specifies the class type of complex object.\r\n * @returns {PropertyCollectionInfo} ?\r\n * ```\r\n * @Collection([], Type);\r\n * propertyName: Type;\r\n * ```\r\n * @private\r\n */\r\nexport function CollectionFactory(type) {\r\n return function (target, key) {\r\n var propertyDescriptor = {\r\n set: complexArrayFactorySetter([], key, type),\r\n get: complexArrayFactoryGetter([], key, type),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n //new property creation\r\n Object.defineProperty(target, key, propertyDescriptor);\r\n addPropertyCollection(target, key, 'colProp', {}, type);\r\n };\r\n}\r\n/**\r\n * Method used to create event property. General syntax below.\r\n *\r\n * @returns {PropertyDecorator} ?\r\n * ```\r\n * @Event(()=>{return true;})\r\n * ```\r\n * @private\r\n */\r\nexport function Event() {\r\n return function (target, key) {\r\n var eventDescriptor = {\r\n set: function (newValue) {\r\n var oldValue = this.properties[key];\r\n if (oldValue !== newValue) {\r\n var finalContext = getParentContext(this, key);\r\n if (isUndefined(oldValue) === false) {\r\n finalContext.context.removeEventListener(finalContext.prefix, oldValue);\r\n }\r\n finalContext.context.addEventListener(finalContext.prefix, newValue);\r\n this.properties[key] = newValue;\r\n }\r\n },\r\n get: propertyGetter(undefined, key),\r\n enumerable: true,\r\n configurable: true\r\n };\r\n Object.defineProperty(target, key, eventDescriptor);\r\n addPropertyCollection(target, key, 'event');\r\n };\r\n}\r\n/**\r\n * NotifyPropertyChanges is triggers the call back when the property has been changed.\r\n *\r\n * @param {Function} classConstructor ?\r\n * @returns {void} ?\r\n * ```\r\n * @NotifyPropertyChanges\r\n * class DemoClass implements INotifyPropertyChanged {\r\n *\r\n * @Property()\r\n * property1: string;\r\n *\r\n * dataBind: () => void;\r\n *\r\n * constructor() { }\r\n *\r\n * onPropertyChanged(newProp: any, oldProp: any) {\r\n * // Called when property changed\r\n * }\r\n * }\r\n * ```\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function NotifyPropertyChanges(classConstructor) {\r\n /** Need to code */\r\n}\r\n/**\r\n * Method used to create the builderObject for the target component.\r\n *\r\n * @param {BuildInfo} target ?\r\n * @param {string} key ?\r\n * @param {string} propertyType ?\r\n * @param {Object} defaultValue ?\r\n * @param {Function} type ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nfunction addPropertyCollection(target, key, propertyType, defaultValue, type) {\r\n if (isUndefined(target.propList)) {\r\n target.propList = {\r\n props: [],\r\n complexProps: [],\r\n colProps: [],\r\n events: [],\r\n propNames: [],\r\n complexPropNames: [],\r\n colPropNames: [],\r\n eventNames: []\r\n };\r\n }\r\n // eslint-disable-next-line\r\n target.propList[propertyType + 's'].push({\r\n propertyName: key,\r\n defaultValue: defaultValue,\r\n type: type\r\n });\r\n // eslint-disable-next-line\r\n target.propList[propertyType + 'Names'].push(key);\r\n}\r\n/**\r\n * Returns an object containing the builder properties\r\n *\r\n * @param {Function} component ?\r\n * @returns {Object} ?\r\n * @private\r\n */\r\nfunction getBuilderProperties(component) {\r\n if (isUndefined(component.prototype.builderObject)) {\r\n component.prototype.builderObject = {\r\n properties: {}, propCollections: [], add: function () {\r\n this.isPropertyArray = true;\r\n this.propCollections.push(extend({}, this.properties, {}));\r\n }\r\n };\r\n var rex = /complex/;\r\n for (var _i = 0, _a = Object.keys(component.prototype.propList); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var _loop_1 = function (prop) {\r\n if (rex.test(key)) {\r\n component.prototype.builderObject[prop.propertyName] = function (value) {\r\n var childType = {};\r\n merge(childType, getBuilderProperties(prop.type));\r\n value(childType);\r\n var tempValue;\r\n if (!childType.isPropertyArray) {\r\n tempValue = extend({}, childType.properties, {});\r\n }\r\n else {\r\n tempValue = childType.propCollections;\r\n }\r\n this.properties[prop.propertyName] = tempValue;\r\n childType.properties = {};\r\n childType.propCollections = [];\r\n childType.isPropertyArray = false;\r\n return this;\r\n };\r\n }\r\n else {\r\n component.prototype.builderObject[prop.propertyName] = function (value) {\r\n this.properties[prop.propertyName] = value;\r\n return this;\r\n };\r\n }\r\n };\r\n for (var _b = 0, _c = component.prototype.propList[key]; _b < _c.length; _b++) {\r\n var prop = _c[_b];\r\n _loop_1(prop);\r\n }\r\n }\r\n }\r\n return component.prototype.builderObject;\r\n}\r\n/**\r\n * Method used to create builder for the components\r\n *\r\n * @param {any} component -specifies the target component for which builder to be created.\r\n * @returns {Object} ?\r\n * @private\r\n */\r\nexport function CreateBuilder(component) {\r\n var builderFunction = function (element) {\r\n this.element = element;\r\n return this;\r\n };\r\n var instanceFunction = function (element) {\r\n // eslint-disable-next-line\r\n if (!builderFunction.prototype.hasOwnProperty('create')) {\r\n builderFunction.prototype = getBuilderProperties(component);\r\n builderFunction.prototype.create = function () {\r\n var temp = extend({}, {}, this.properties);\r\n this.properties = {};\r\n return new component(temp, this.element);\r\n };\r\n }\r\n return new builderFunction(element);\r\n };\r\n return instanceFunction;\r\n}\r\n/**\r\n * Returns parent options for the object\r\n *\r\n * @param {Object} context ?\r\n * @param {string} prefix ?\r\n * @returns {ParentOption} ?\r\n * @private\r\n */\r\nfunction getParentContext(context, prefix) {\r\n // eslint-disable-next-line\r\n if (context.hasOwnProperty('parentObj') === false) {\r\n return { context: context, prefix: prefix };\r\n }\r\n else {\r\n var curText = getValue('propName', context);\r\n if (curText) {\r\n prefix = curText + '-' + prefix;\r\n }\r\n return getParentContext(getValue('parentObj', context), prefix);\r\n }\r\n}\r\n","import { isNullOrUndefined, getValue, extend, isBlazor } from './util';\r\nvar Observer = /** @class */ (function () {\r\n function Observer(context) {\r\n this.ranArray = [];\r\n this.boundedEvents = {};\r\n if (isNullOrUndefined(context)) {\r\n return;\r\n }\r\n this.context = context;\r\n }\r\n /**\r\n * To attach handler for given property in current context.\r\n *\r\n * @param {string} property - specifies the name of the event.\r\n * @param {Function} handler - Specifies the handler function to be called while event notified.\r\n * @param {Object} context - Specifies the context binded to the handler.\r\n * @param {string} id - specifies the random generated id.\r\n * @returns {void}\r\n */\r\n Observer.prototype.on = function (property, handler, context, id) {\r\n if (isNullOrUndefined(handler)) {\r\n return;\r\n }\r\n var cntxt = context || this.context;\r\n if (this.notExist(property)) {\r\n this.boundedEvents[property] = [{ handler: handler, context: cntxt }];\r\n return;\r\n }\r\n if (!isNullOrUndefined(id)) {\r\n if (this.ranArray.indexOf(id) === -1) {\r\n this.ranArray.push(id);\r\n this.boundedEvents[property].push({ handler: handler, context: cntxt, id: id });\r\n }\r\n }\r\n else if (!this.isHandlerPresent(this.boundedEvents[property], handler)) {\r\n this.boundedEvents[property].push({ handler: handler, context: cntxt });\r\n }\r\n };\r\n /**\r\n * To remove handlers from a event attached using on() function.\r\n *\r\n * @param {string} property - specifies the name of the event.\r\n * @param {Function} handler - Optional argument specifies the handler function to be called while event notified.\r\n * @param {string} id - specifies the random generated id.\r\n * @returns {void} ?\r\n */\r\n Observer.prototype.off = function (property, handler, id) {\r\n if (this.notExist(property)) {\r\n return;\r\n }\r\n var curObject = getValue(property, this.boundedEvents);\r\n if (handler) {\r\n for (var i = 0; i < curObject.length; i++) {\r\n if (id) {\r\n if (curObject[i].id === id) {\r\n curObject.splice(i, 1);\r\n var indexLocation = this.ranArray.indexOf(id);\r\n if (indexLocation !== -1) {\r\n this.ranArray.splice(indexLocation, 1);\r\n }\r\n break;\r\n }\r\n }\r\n else if (handler === curObject[i].handler) {\r\n curObject.splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n delete this.boundedEvents[property];\r\n }\r\n };\r\n /**\r\n * To notify the handlers in the specified event.\r\n *\r\n * @param {string} property - Specifies the event to be notify.\r\n * @param {Object} argument - Additional parameters to pass while calling the handler.\r\n * @param {Function} successHandler - this function will invoke after event successfully triggered\r\n * @param {Function} errorHandler - this function will invoke after event if it was failure to call.\r\n * @returns {void} ?\r\n */\r\n Observer.prototype.notify = function (property, argument, successHandler, errorHandler) {\r\n if (this.notExist(property)) {\r\n if (successHandler) {\r\n successHandler.call(this, argument);\r\n }\r\n return;\r\n }\r\n if (argument) {\r\n argument.name = property;\r\n }\r\n var blazor = 'Blazor';\r\n var curObject = getValue(property, this.boundedEvents).slice(0);\r\n if (window[blazor]) {\r\n return this.blazorCallback(curObject, argument, successHandler, errorHandler, 0);\r\n }\r\n else {\r\n for (var _i = 0, curObject_1 = curObject; _i < curObject_1.length; _i++) {\r\n var cur = curObject_1[_i];\r\n cur.handler.call(cur.context, argument);\r\n }\r\n if (successHandler) {\r\n successHandler.call(this, argument);\r\n }\r\n }\r\n };\r\n Observer.prototype.blazorCallback = function (objs, argument, successHandler, errorHandler, index) {\r\n var _this = this;\r\n var isTrigger = index === objs.length - 1;\r\n if (index < objs.length) {\r\n var obj_1 = objs[index];\r\n var promise = obj_1.handler.call(obj_1.context, argument);\r\n if (promise && typeof promise.then === 'function') {\r\n if (!successHandler) {\r\n return promise;\r\n }\r\n promise.then(function (data) {\r\n data = typeof data === 'string' && _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data;\r\n extend(argument, argument, data, true);\r\n if (successHandler && isTrigger) {\r\n successHandler.call(obj_1.context, argument);\r\n }\r\n else {\r\n return _this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\r\n }\r\n }).catch(function (data) {\r\n if (errorHandler) {\r\n errorHandler.call(obj_1.context, typeof data === 'string' &&\r\n _this.isJson(data) ? JSON.parse(data, _this.dateReviver) : data);\r\n }\r\n });\r\n }\r\n else if (successHandler && isTrigger) {\r\n successHandler.call(obj_1.context, argument);\r\n }\r\n else {\r\n return this.blazorCallback(objs, argument, successHandler, errorHandler, index + 1);\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Observer.prototype.dateReviver = function (key, value) {\r\n var dPattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}/;\r\n if (isBlazor && typeof value === 'string' && value.match(dPattern) !== null) {\r\n return (new Date(value));\r\n }\r\n return (value);\r\n };\r\n Observer.prototype.isJson = function (value) {\r\n try {\r\n JSON.parse(value);\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * To destroy handlers in the event\r\n *\r\n * @returns {void} ?\r\n */\r\n Observer.prototype.destroy = function () {\r\n this.boundedEvents = this.context = undefined;\r\n };\r\n /**\r\n * Returns if the property exists.\r\n *\r\n * @param {string} prop ?\r\n * @returns {boolean} ?\r\n */\r\n Observer.prototype.notExist = function (prop) {\r\n // eslint-disable-next-line\r\n return this.boundedEvents.hasOwnProperty(prop) === false || this.boundedEvents[prop].length <= 0;\r\n };\r\n /**\r\n * Returns if the handler is present.\r\n *\r\n * @param {BoundOptions[]} boundedEvents ?\r\n * @param {Function} handler ?\r\n * @returns {boolean} ?\r\n */\r\n Observer.prototype.isHandlerPresent = function (boundedEvents, handler) {\r\n for (var _i = 0, boundedEvents_1 = boundedEvents; _i < boundedEvents_1.length; _i++) {\r\n var cur = boundedEvents_1[_i];\r\n if (cur.handler === handler) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Observer;\r\n}());\r\nexport { Observer };\r\n","/**\r\n * SanitizeHtmlHelper for sanitize the value.\r\n */\r\nimport { detach } from './dom';\r\nvar removeTags = [\r\n 'script',\r\n 'style',\r\n 'iframe[src]',\r\n 'link[href*=\"javascript:\"]',\r\n 'object[type=\"text/x-scriptlet\"]',\r\n 'object[data^=\"data:text/html;base64\"]',\r\n 'img[src^=\"data:text/html;base64\"]',\r\n '[src^=\"javascript:\"]',\r\n '[dynsrc^=\"javascript:\"]',\r\n '[lowsrc^=\"javascript:\"]',\r\n '[type^=\"application/x-shockwave-flash\"]'\r\n];\r\nvar removeAttrs = [\r\n { attribute: 'href', selector: '[href*=\"javascript:\"]' },\r\n { attribute: 'background', selector: '[background^=\"javascript:\"]' },\r\n { attribute: 'style', selector: '[style*=\"javascript:\"]' },\r\n { attribute: 'style', selector: '[style*=\"expression(\"]' },\r\n { attribute: 'href', selector: 'a[href^=\"data:text/html;base64\"]' }\r\n];\r\nvar jsEvents = ['onchange',\r\n 'onclick',\r\n 'onmouseover',\r\n 'onmouseout',\r\n 'onkeydown',\r\n 'onload',\r\n 'onerror',\r\n 'onblur',\r\n 'onfocus',\r\n 'onbeforeload',\r\n 'onbeforeunload',\r\n 'onkeyup',\r\n 'onsubmit',\r\n 'onafterprint',\r\n 'onbeforeonload',\r\n 'onbeforeprint',\r\n 'onblur',\r\n 'oncanplay',\r\n 'oncanplaythrough',\r\n 'onchange',\r\n 'onclick',\r\n 'oncontextmenu',\r\n 'ondblclick',\r\n 'ondrag',\r\n 'ondragend',\r\n 'ondragenter',\r\n 'ondragleave',\r\n 'ondragover',\r\n 'ondragstart',\r\n 'ondrop',\r\n 'ondurationchange',\r\n 'onemptied',\r\n 'onended',\r\n 'onerror',\r\n 'onerror',\r\n 'onfocus',\r\n 'onformchange',\r\n 'onforminput',\r\n 'onhaschange',\r\n 'oninput',\r\n 'oninvalid',\r\n 'onkeydown',\r\n 'onkeypress',\r\n 'onkeyup',\r\n 'onload',\r\n 'onloadeddata',\r\n 'onloadedmetadata',\r\n 'onloadstart',\r\n 'onmessage',\r\n 'onmousedown',\r\n 'onmousemove',\r\n 'onmouseout',\r\n 'onmouseover',\r\n 'onmouseup',\r\n 'onmousewheel',\r\n 'onoffline',\r\n 'onoine',\r\n 'ononline',\r\n 'onpagehide',\r\n 'onpageshow',\r\n 'onpause',\r\n 'onplay',\r\n 'onplaying',\r\n 'onpopstate',\r\n 'onprogress',\r\n 'onratechange',\r\n 'onreadystatechange',\r\n 'onredo',\r\n 'onresize',\r\n 'onscroll',\r\n 'onseeked',\r\n 'onseeking',\r\n 'onselect',\r\n 'onstalled',\r\n 'onstorage',\r\n 'onsubmit',\r\n 'onsuspend',\r\n 'ontimeupdate',\r\n 'onundo',\r\n 'onunload',\r\n 'onvolumechange',\r\n 'onwaiting',\r\n 'onmouseenter',\r\n 'onmouseleave',\r\n 'onmousewheel',\r\n 'onstart',\r\n 'onpropertychange'\r\n];\r\nvar SanitizeHtmlHelper = /** @class */ (function () {\r\n function SanitizeHtmlHelper() {\r\n }\r\n SanitizeHtmlHelper.beforeSanitize = function () {\r\n return {\r\n selectors: {\r\n tags: removeTags,\r\n attributes: removeAttrs\r\n }\r\n };\r\n };\r\n SanitizeHtmlHelper.sanitize = function (value) {\r\n var item = this.beforeSanitize();\r\n var output = this.serializeValue(item, value);\r\n return output;\r\n };\r\n SanitizeHtmlHelper.serializeValue = function (item, value) {\r\n this.removeAttrs = item.selectors.attributes;\r\n this.removeTags = item.selectors.tags;\r\n this.wrapElement = document.createElement('div');\r\n this.wrapElement.innerHTML = value;\r\n this.removeXssTags();\r\n this.removeJsEvents();\r\n this.removeXssAttrs();\r\n var tempEleValue = this.wrapElement.innerHTML;\r\n this.removeElement();\r\n return tempEleValue;\r\n };\r\n SanitizeHtmlHelper.removeElement = function () {\r\n // Removes an element's attibute to avoid html tag validation\r\n var nodes = this.wrapElement.children;\r\n for (var j = 0; j < nodes.length; j++) {\r\n var attribute = nodes[j].attributes;\r\n for (var i = 0; i < attribute.length; i++) {\r\n this.wrapElement.children[j].removeAttribute(attribute[i].localName);\r\n }\r\n }\r\n };\r\n SanitizeHtmlHelper.removeXssTags = function () {\r\n var elements = this.wrapElement.querySelectorAll(this.removeTags.join(','));\r\n if (elements.length > 0) {\r\n elements.forEach(function (element) {\r\n detach(element);\r\n });\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n SanitizeHtmlHelper.removeJsEvents = function () {\r\n var elements = this.wrapElement.querySelectorAll('[' + jsEvents.join('],[') + ']');\r\n if (elements.length > 0) {\r\n elements.forEach(function (element) {\r\n jsEvents.forEach(function (attr) {\r\n if (element.hasAttribute(attr)) {\r\n element.removeAttribute(attr);\r\n }\r\n });\r\n });\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n SanitizeHtmlHelper.removeXssAttrs = function () {\r\n var _this = this;\r\n // eslint-disable-next-line\r\n this.removeAttrs.forEach(function (item, index) {\r\n var elements = _this.wrapElement.querySelectorAll(item.selector);\r\n if (elements.length > 0) {\r\n elements.forEach(function (element) {\r\n element.removeAttribute(item.attribute);\r\n });\r\n }\r\n });\r\n };\r\n return SanitizeHtmlHelper;\r\n}());\r\nexport { SanitizeHtmlHelper };\r\n","/**\r\n * Template Engine Bridge\r\n */\r\nimport { compile as render } from './template';\r\nimport { createElement } from './dom';\r\nimport { isNullOrUndefined, isBlazor } from './util';\r\nvar HAS_ROW = /^[\\n\\r.]+ { a = ((a << 5) - a) + b.charCodeAt(0); return a & a; }, 0).toString();\r\n// }\r\n/**\r\n *\r\n * @param {string} str ?\r\n * @param {boolean} addNS ?\r\n * @param {string} nameSpace ?\r\n * @param {string[]} ignoreList ?\r\n * @returns {string} ?\r\n */\r\nfunction NameSpaceForspecialChar(str, addNS, nameSpace, ignoreList) {\r\n return ((addNS && !(NOT_NUMBER.test(str)) && ignoreList.indexOf(str.split('.')[0]) === -1) ? nameSpace + '[\"' + str : str);\r\n}\r\n// eslint-disable-next-line\r\nfunction SlashReplace(tempStr) {\r\n var double = '\\\\\\\\';\r\n if (tempStr.match(DOUBLE_SLASH)) {\r\n // eslint-disable-next-line\r\n tempStr = tempStr;\r\n }\r\n else {\r\n tempStr = tempStr.replace(SINGLE_SLASH, double);\r\n }\r\n return tempStr;\r\n}\r\n/**\r\n *\r\n * @param {string} str ?\r\n * @param {string} nameSpaceNew ?\r\n * @param {string[]} keys ?\r\n * @param {boolean} ignorePrefix ?\r\n * @returns {string} ?\r\n */\r\nfunction HandleSpecialCharArrObj(str, nameSpaceNew, keys, ignorePrefix) {\r\n str = str.trim();\r\n var windowFunc = /\\window\\./gm;\r\n if (!windowFunc.test(str)) {\r\n var quotes = /'|\"/gm;\r\n var splRegexp = /@|\\$|#/gm;\r\n if (splRegexp.test(str)) {\r\n str = NameSpaceForspecialChar(str, (keys.indexOf(str) === -1), nameSpaceNew, keys) + '\"]';\r\n }\r\n if (ARR_OBJ.test(str)) {\r\n return NameSpaceArrObj(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys);\r\n }\r\n else {\r\n return addNameSpace(str, !(quotes.test(str)) && (keys.indexOf(str) === -1), nameSpaceNew, keys, ignorePrefix);\r\n }\r\n }\r\n else {\r\n return str;\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { extend } from './util';\r\nimport { Property, Complex, NotifyPropertyChanges, Event } from './notify-property-change';\r\nimport { Browser } from './browser';\r\nimport { Base } from './base';\r\nimport { ChildProperty } from './child-property';\r\nimport { EventHandler } from './event-handler';\r\n/**\r\n * SwipeSettings is a framework module that provides support to handle swipe event like swipe up, swipe right, etc..,\r\n */\r\nvar SwipeSettings = /** @class */ (function (_super) {\r\n __extends(SwipeSettings, _super);\r\n function SwipeSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(50)\r\n ], SwipeSettings.prototype, \"swipeThresholdDistance\", void 0);\r\n return SwipeSettings;\r\n}(ChildProperty));\r\nexport { SwipeSettings };\r\nvar swipeRegex = /(Up|Down)/;\r\n/**\r\n * Touch class provides support to handle the touch event like tap, double tap, tap hold, etc..,\r\n * ```typescript\r\n * let node: HTMLElement;\r\n * let touchObj: Touch = new Touch({\r\n * element: node,\r\n * tap: function (e) {\r\n * // tap handler function code\r\n * }\r\n * tapHold: function (e) {\r\n * // tap hold handler function code\r\n * }\r\n * scroll: function (e) {\r\n * // scroll handler function code\r\n * }\r\n * swipe: function (e) {\r\n * // swipe handler function code\r\n * }\r\n * });\r\n * ```\r\n */\r\nvar Touch = /** @class */ (function (_super) {\r\n __extends(Touch, _super);\r\n /* End-Properties */\r\n function Touch(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.touchAction = true;\r\n _this.tapCount = 0;\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n _this.startEvent = function (evt) {\r\n if (_this.touchAction === true) {\r\n var point = _this.updateChangeTouches(evt);\r\n if (evt.changedTouches !== undefined) {\r\n _this.touchAction = false;\r\n }\r\n _this.isTouchMoved = false;\r\n _this.movedDirection = '';\r\n _this.startPoint = _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\r\n _this.startEventData = point;\r\n _this.hScrollLocked = _this.vScrollLocked = false;\r\n _this.tStampStart = Date.now();\r\n _this.timeOutTapHold = setTimeout(function () { _this.tapHoldEvent(evt); }, _this.tapHoldThreshold);\r\n EventHandler.add(_this.element, Browser.touchMoveEvent, _this.moveEvent, _this);\r\n EventHandler.add(_this.element, Browser.touchEndEvent, _this.endEvent, _this);\r\n EventHandler.add(_this.element, Browser.touchCancelEvent, _this.cancelEvent, _this);\r\n }\r\n };\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n _this.moveEvent = function (evt) {\r\n var point = _this.updateChangeTouches(evt);\r\n _this.movedPoint = point;\r\n _this.isTouchMoved = !(point.clientX === _this.startPoint.clientX && point.clientY === _this.startPoint.clientY);\r\n var eScrollArgs = {};\r\n if (_this.isTouchMoved) {\r\n clearTimeout(_this.timeOutTapHold);\r\n _this.calcScrollPoints(evt);\r\n var scrollArg = {\r\n startEvents: _this.startEventData,\r\n originalEvent: evt, startX: _this.startPoint.clientX,\r\n startY: _this.startPoint.clientY, distanceX: _this.distanceX,\r\n distanceY: _this.distanceY, scrollDirection: _this.scrollDirection,\r\n velocity: _this.getVelocity(point)\r\n };\r\n eScrollArgs = extend(eScrollArgs, {}, scrollArg);\r\n _this.trigger('scroll', eScrollArgs);\r\n _this.lastMovedPoint = { clientX: point.clientX, clientY: point.clientY };\r\n }\r\n };\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n _this.cancelEvent = function (evt) {\r\n clearTimeout(_this.timeOutTapHold);\r\n clearTimeout(_this.timeOutTap);\r\n _this.tapCount = 0;\r\n _this.swipeFn(evt);\r\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\r\n };\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n _this.endEvent = function (evt) {\r\n _this.swipeFn(evt);\r\n if (!_this.isTouchMoved) {\r\n if (typeof _this.tap === 'function') {\r\n _this.trigger('tap', { originalEvent: evt, tapCount: ++_this.tapCount });\r\n _this.timeOutTap = setTimeout(function () {\r\n _this.tapCount = 0;\r\n }, _this.tapThreshold);\r\n }\r\n }\r\n _this.modeclear();\r\n };\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n _this.swipeFn = function (evt) {\r\n clearTimeout(_this.timeOutTapHold);\r\n clearTimeout(_this.timeOutTap);\r\n var point = _this.updateChangeTouches(evt);\r\n var diffX = point.clientX - _this.startPoint.clientX;\r\n var diffY = point.clientY - _this.startPoint.clientY;\r\n diffX = Math.floor(diffX < 0 ? -1 * diffX : diffX);\r\n diffY = Math.floor(diffY < 0 ? -1 * diffY : diffX);\r\n _this.isTouchMoved = diffX > 1 || diffY > 1;\r\n _this.endPoint = point;\r\n _this.calcPoints(evt);\r\n var swipeArgs = {\r\n originalEvent: evt,\r\n startEvents: _this.startEventData,\r\n startX: _this.startPoint.clientX,\r\n startY: _this.startPoint.clientY,\r\n distanceX: _this.distanceX, distanceY: _this.distanceY, swipeDirection: _this.movedDirection,\r\n velocity: _this.getVelocity(point)\r\n };\r\n if (_this.isTouchMoved) {\r\n var eSwipeArgs = void 0;\r\n var tDistance = _this.swipeSettings.swipeThresholdDistance;\r\n // eslint-disable-next-line\r\n eSwipeArgs = extend(eSwipeArgs, _this.defaultArgs, swipeArgs);\r\n var canTrigger = false;\r\n var ele = _this.element;\r\n var scrollBool = _this.isScrollable(ele);\r\n var moved = swipeRegex.test(_this.movedDirection);\r\n if ((tDistance < _this.distanceX && !moved) || (tDistance < _this.distanceY && moved)) {\r\n if (!scrollBool) {\r\n canTrigger = true;\r\n }\r\n else {\r\n canTrigger = _this.checkSwipe(ele, moved);\r\n }\r\n }\r\n if (canTrigger) {\r\n _this.trigger('swipe', eSwipeArgs);\r\n }\r\n }\r\n _this.modeclear();\r\n };\r\n _this.modeclear = function () {\r\n _this.modeClear = setTimeout(function () {\r\n _this.touchAction = true;\r\n }, (typeof _this.tap !== 'function' ? 0 : 20));\r\n _this.lastTapTime = new Date().getTime();\r\n EventHandler.remove(_this.element, Browser.touchMoveEvent, _this.moveEvent);\r\n EventHandler.remove(_this.element, Browser.touchEndEvent, _this.endEvent);\r\n EventHandler.remove(_this.element, Browser.touchCancelEvent, _this.cancelEvent);\r\n };\r\n _this.bind();\r\n return _this;\r\n }\r\n // triggers when property changed\r\n /**\r\n *\r\n * @private\r\n * @param {TouchModel} newProp ?\r\n * @param {TouchModel} oldProp ?\r\n * @returns {void} ?\r\n */\r\n // eslint-disable-next-line\r\n Touch.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n //No Code to handle\r\n };\r\n Touch.prototype.bind = function () {\r\n this.wireEvents();\r\n if (Browser.isIE) {\r\n this.element.classList.add('e-block-touch');\r\n }\r\n };\r\n /**\r\n * To destroy the touch instance.\r\n *\r\n * @returns {void}\r\n */\r\n Touch.prototype.destroy = function () {\r\n this.unwireEvents();\r\n _super.prototype.destroy.call(this);\r\n };\r\n // Need to changes the event binding once we updated the event handler.\r\n Touch.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, Browser.touchStartEvent, this.startEvent, this);\r\n };\r\n Touch.prototype.unwireEvents = function () {\r\n EventHandler.remove(this.element, Browser.touchStartEvent, this.startEvent);\r\n };\r\n /**\r\n * Returns module name as touch\r\n *\r\n * @returns {string} ?\r\n * @private\r\n */\r\n Touch.prototype.getModuleName = function () {\r\n return 'touch';\r\n };\r\n /**\r\n * Returns if the HTML element is Scrollable.\r\n *\r\n * @param {HTMLElement} element - HTML Element to check if Scrollable.\r\n * @returns {boolean} ?\r\n */\r\n Touch.prototype.isScrollable = function (element) {\r\n var eleStyle = getComputedStyle(element);\r\n var style = eleStyle.overflow + eleStyle.overflowX + eleStyle.overflowY;\r\n if ((/(auto|scroll)/).test(style)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n *\r\n * @param {MouseEventArgs | TouchEventArgs} evt ?\r\n * @returns {void} ?\r\n */\r\n Touch.prototype.tapHoldEvent = function (evt) {\r\n this.tapCount = 0;\r\n this.touchAction = true;\r\n var eTapArgs;\r\n EventHandler.remove(this.element, Browser.touchMoveEvent, this.moveEvent);\r\n EventHandler.remove(this.element, Browser.touchEndEvent, this.endEvent);\r\n // eslint-disable-next-line\r\n eTapArgs = { originalEvent: evt };\r\n this.trigger('tapHold', eTapArgs);\r\n EventHandler.remove(this.element, Browser.touchCancelEvent, this.cancelEvent);\r\n };\r\n Touch.prototype.calcPoints = function (evt) {\r\n var point = this.updateChangeTouches(evt);\r\n this.defaultArgs = { originalEvent: evt };\r\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.startPoint.clientX)));\r\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.startPoint.clientY)));\r\n if (this.distanceX > this.distanceY) {\r\n this.movedDirection = (point.clientX > this.startPoint.clientX) ? 'Right' : 'Left';\r\n }\r\n else {\r\n this.movedDirection = (point.clientY < this.startPoint.clientY) ? 'Up' : 'Down';\r\n }\r\n };\r\n Touch.prototype.calcScrollPoints = function (evt) {\r\n var point = this.updateChangeTouches(evt);\r\n this.defaultArgs = { originalEvent: evt };\r\n this.distanceX = Math.abs((Math.abs(point.clientX) - Math.abs(this.lastMovedPoint.clientX)));\r\n this.distanceY = Math.abs((Math.abs(point.clientY) - Math.abs(this.lastMovedPoint.clientY)));\r\n if ((this.distanceX > this.distanceY || this.hScrollLocked === true) && this.vScrollLocked === false) {\r\n this.scrollDirection = (point.clientX > this.lastMovedPoint.clientX) ? 'Right' : 'Left';\r\n this.hScrollLocked = true;\r\n }\r\n else {\r\n this.scrollDirection = (point.clientY < this.lastMovedPoint.clientY) ? 'Up' : 'Down';\r\n this.vScrollLocked = true;\r\n }\r\n };\r\n Touch.prototype.getVelocity = function (pnt) {\r\n var newX = pnt.clientX;\r\n var newY = pnt.clientY;\r\n var newT = Date.now();\r\n var xDist = newX - this.startPoint.clientX;\r\n var yDist = newY - this.startPoint.clientX;\r\n var interval = newT - this.tStampStart;\r\n return Math.sqrt(xDist * xDist + yDist * yDist) / interval;\r\n };\r\n // eslint-disable-next-line\r\n Touch.prototype.checkSwipe = function (ele, flag) {\r\n var keys = ['scroll', 'offset'];\r\n var temp = flag ? ['Height', 'Top'] : ['Width', 'Left'];\r\n if ((ele[keys[0] + temp[0]] <= ele[keys[1] + temp[0]])) {\r\n return true;\r\n }\r\n return (ele[keys[0] + temp[1]] === 0) ||\r\n (ele[keys[1] + temp[0]] + ele[keys[0] + temp[1]] >= ele[keys[0] + temp[0]]);\r\n };\r\n Touch.prototype.updateChangeTouches = function (evt) {\r\n var point = evt.changedTouches && evt.changedTouches.length !== 0 ? evt.changedTouches[0] : evt;\r\n return point;\r\n };\r\n __decorate([\r\n Event()\r\n ], Touch.prototype, \"tap\", void 0);\r\n __decorate([\r\n Event()\r\n ], Touch.prototype, \"tapHold\", void 0);\r\n __decorate([\r\n Event()\r\n ], Touch.prototype, \"swipe\", void 0);\r\n __decorate([\r\n Event()\r\n ], Touch.prototype, \"scroll\", void 0);\r\n __decorate([\r\n Property(350)\r\n ], Touch.prototype, \"tapThreshold\", void 0);\r\n __decorate([\r\n Property(750)\r\n ], Touch.prototype, \"tapHoldThreshold\", void 0);\r\n __decorate([\r\n Complex({}, SwipeSettings)\r\n ], Touch.prototype, \"swipeSettings\", void 0);\r\n Touch = __decorate([\r\n NotifyPropertyChanges\r\n ], Touch);\r\n return Touch;\r\n}(Base));\r\nexport { Touch };\r\n","var instances = 'ej2_instances';\r\nvar uid = 0;\r\nvar isBlazorPlatform = false;\r\n/**\r\n * Function to check whether the platform is blazor or not.\r\n *\r\n * @returns {void} result\r\n * @private\r\n */\r\nexport function disableBlazorMode() {\r\n isBlazorPlatform = false;\r\n}\r\n/**\r\n * Create Instance from constructor function with desired parameters.\r\n *\r\n * @param {Function} classFunction - Class function to which need to create instance\r\n * @param {any[]} params - Parameters need to passed while creating instance\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function createInstance(classFunction, params) {\r\n var arrayParam = params;\r\n arrayParam.unshift(undefined);\r\n return new (Function.prototype.bind.apply(classFunction, arrayParam));\r\n}\r\n/**\r\n * To run a callback function immediately after the browser has completed other operations.\r\n *\r\n * @param {Function} handler - callback function to be triggered.\r\n * @returns {Function} ?\r\n * @private\r\n */\r\nexport function setImmediate(handler) {\r\n var unbind;\r\n // eslint-disable-next-line\r\n var num = new Uint16Array(5);\r\n var intCrypto = window.msCrypto || window.crypto;\r\n intCrypto.getRandomValues(num);\r\n var secret = 'ej2' + combineArray(num);\r\n // eslint-disable-next-line\r\n var messageHandler = function (event) {\r\n if (event.source === window && typeof event.data === 'string' && event.data.length <= 32 && event.data === secret) {\r\n handler();\r\n unbind();\r\n }\r\n };\r\n window.addEventListener('message', messageHandler, false);\r\n window.postMessage(secret, '*');\r\n return unbind = function () {\r\n window.removeEventListener('message', messageHandler);\r\n handler = messageHandler = secret = undefined;\r\n };\r\n}\r\n/**\r\n * To get nameSpace value from the desired object.\r\n *\r\n * @param {string} nameSpace - String value to the get the inner object\r\n * @param {any} obj - Object to get the inner object value.\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function getValue(nameSpace, obj) {\r\n // eslint-disable-next-line\r\n var value = obj;\r\n var splits = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\r\n for (var i = 0; i < splits.length && !isUndefined(value); i++) {\r\n value = value[splits[i]];\r\n }\r\n return value;\r\n}\r\n/**\r\n * To set value for the nameSpace in desired object.\r\n *\r\n * @param {string} nameSpace - String value to the get the inner object\r\n * @param {any} value - Value that you need to set.\r\n * @param {any} obj - Object to get the inner object value.\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function setValue(nameSpace, value, obj) {\r\n var keys = nameSpace.replace(/\\[/g, '.').replace(/\\]/g, '').split('.');\r\n // eslint-disable-next-line\r\n var start = obj || {};\r\n // eslint-disable-next-line\r\n var fromObj = start;\r\n var i;\r\n var length = keys.length;\r\n var key;\r\n for (i = 0; i < length; i++) {\r\n key = keys[i];\r\n if (i + 1 === length) {\r\n fromObj[key] = value === undefined ? {} : value;\r\n }\r\n else if (isNullOrUndefined(fromObj[key])) {\r\n fromObj[key] = {};\r\n }\r\n fromObj = fromObj[key];\r\n }\r\n return start;\r\n}\r\n/**\r\n * Delete an item from Object\r\n *\r\n * @param {any} obj - Object in which we need to delete an item.\r\n * @param {string} key - String value to the get the inner object\r\n * @returns {void} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function deleteObject(obj, key) {\r\n delete obj[key];\r\n}\r\n/**\r\n * Check weather the given argument is only object.\r\n *\r\n * @param {any} obj - Object which is need to check.\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function isObject(obj) {\r\n var objCon = {};\r\n return (!isNullOrUndefined(obj) && obj.constructor === objCon.constructor);\r\n}\r\n/**\r\n * To get enum value by giving the string.\r\n *\r\n * @param {any} enumObject - Enum object.\r\n * @param {string} enumValue - Enum value to be searched\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function getEnumValue(enumObject, enumValue) {\r\n // eslint-disable-next-line\r\n return enumObject[enumValue];\r\n}\r\n/**\r\n * Merge the source object into destination object.\r\n *\r\n * @param {any} source - source object which is going to merge with destination object\r\n * @param {any} destination - object need to be merged\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function merge(source, destination) {\r\n if (!isNullOrUndefined(destination)) {\r\n var temrObj = source;\r\n var tempProp = destination;\r\n var keys = Object.keys(destination);\r\n var deepmerge = 'deepMerge';\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var key = keys_1[_i];\r\n if (!isNullOrUndefined(temrObj[deepmerge]) && (temrObj[deepmerge].indexOf(key) !== -1) &&\r\n (isObject(tempProp[key]) || Array.isArray(tempProp[key]))) {\r\n extend(temrObj[key], temrObj[key], tempProp[key], true);\r\n }\r\n else {\r\n temrObj[key] = tempProp[key];\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Extend the two object with newer one.\r\n *\r\n * @param {any} copied - Resultant object after merged\r\n * @param {Object} first - First object need to merge\r\n * @param {Object} second - Second object need to merge\r\n * @param {boolean} deep ?\r\n * @returns {Object} ?\r\n * @private\r\n */\r\nexport function extend(copied, first, second, deep) {\r\n var result = copied && typeof copied === 'object' ? copied : {};\r\n var length = arguments.length;\r\n if (deep) {\r\n length = length - 1;\r\n }\r\n var _loop_1 = function (i) {\r\n // eslint-disable-next-line\r\n if (!arguments_1[i]) {\r\n return \"continue\";\r\n }\r\n // eslint-disable-next-line\r\n var obj1 = arguments_1[i];\r\n Object.keys(obj1).forEach(function (key) {\r\n var src = result[key];\r\n var copy = obj1[key];\r\n var clone;\r\n var isArrayChanged = Array.isArray(copy) && Array.isArray(src) && (copy.length !== src.length);\r\n // eslint-disable-next-line\r\n var blazorEventExtend = isBlazor() ? (!(src instanceof Event) && !isArrayChanged) : true;\r\n if (deep && blazorEventExtend && (isObject(copy) || Array.isArray(copy))) {\r\n if (isObject(copy)) {\r\n clone = src ? src : {};\r\n // eslint-disable-next-line\r\n if (Array.isArray(clone) && clone.hasOwnProperty('isComplexArray')) {\r\n extend(clone, {}, copy, deep);\r\n }\r\n else {\r\n result[key] = extend(clone, {}, copy, deep);\r\n }\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n clone = isBlazor() ? src && Object.keys(copy).length : src ? src : [];\r\n result[key] = extend([], clone, copy, deep);\r\n }\r\n }\r\n else {\r\n result[key] = copy;\r\n }\r\n });\r\n };\r\n var arguments_1 = arguments;\r\n for (var i = 1; i < length; i++) {\r\n _loop_1(i);\r\n }\r\n return result;\r\n}\r\n/**\r\n * To check whether the object is null or undefined.\r\n *\r\n * @param {Object} value - To check the object is null or undefined\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\nexport function isNullOrUndefined(value) {\r\n return value === undefined || value === null;\r\n}\r\n/**\r\n * To check whether the object is undefined.\r\n *\r\n * @param {Object} value - To check the object is undefined\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\nexport function isUndefined(value) {\r\n return ('undefined' === typeof value);\r\n}\r\n/**\r\n * To return the generated unique name\r\n *\r\n * @param {string} definedName - To concatenate the unique id to provided name\r\n * @returns {string} ?\r\n * @private\r\n */\r\nexport function getUniqueID(definedName) {\r\n return definedName + '_' + uid++;\r\n}\r\n/**\r\n * It limits the rate at which a function can fire. The function will fire only once every provided second instead of as quickly.\r\n *\r\n * @param {Function} eventFunction - Specifies the function to run when the event occurs\r\n * @param {number} delay - A number that specifies the milliseconds for function delay call option\r\n * @returns {Function} ?\r\n * @private\r\n */\r\nexport function debounce(eventFunction, delay) {\r\n // eslint-disable-next-line\r\n var out;\r\n return function () {\r\n var _this = this;\r\n // eslint-disable-next-line\r\n var args = arguments;\r\n var later = function () {\r\n out = null;\r\n return eventFunction.apply(_this, args);\r\n };\r\n clearTimeout(out);\r\n out = setTimeout(later, delay);\r\n };\r\n}\r\n/**\r\n * To convert the object to string for query url\r\n *\r\n * @param {Object} data ?\r\n * @returns {string} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function queryParams(data) {\r\n var array = [];\r\n var keys = Object.keys(data);\r\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\r\n var key = keys_2[_i];\r\n array.push(encodeURIComponent(key) + '=' + encodeURIComponent('' + data[key]));\r\n }\r\n return array.join('&');\r\n}\r\n/**\r\n * To check whether the given array contains object.\r\n *\r\n * @param {any} value - Specifies the T type array to be checked.\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\nexport function isObjectArray(value) {\r\n var parser = Object.prototype.toString;\r\n if (parser.call(value) === '[object Array]') {\r\n if (parser.call(value[0]) === '[object Object]') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * To check whether the child element is descendant to parent element or parent and child are same element.\r\n *\r\n * @param {Element} child - Specifies the child element to compare with parent.\r\n * @param {Element} parent - Specifies the parent element.\r\n * @returns {boolean} ?\r\n * @private\r\n */\r\nexport function compareElementParent(child, parent) {\r\n var node = child;\r\n if (node === parent) {\r\n return true;\r\n }\r\n else if (node === document || !node) {\r\n return false;\r\n }\r\n else {\r\n return compareElementParent(node.parentNode, parent);\r\n }\r\n}\r\n/**\r\n * To throw custom error message.\r\n *\r\n * @param {string} message - Specifies the error message to be thrown.\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function throwError(message) {\r\n try {\r\n throw new Error(message);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line\r\n throw e.message + '\\n' + e.stack;\r\n }\r\n}\r\n/**\r\n * This function is used to print given element\r\n *\r\n * @param {Element} element - Specifies the print content element.\r\n * @param {Window} printWindow - Specifies the print window.\r\n * @returns {Window} ?\r\n * @private\r\n */\r\nexport function print(element, printWindow) {\r\n var div = document.createElement('div');\r\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('base, link, style'));\r\n var blinks = [].slice.call(document.getElementsByTagName('body')[0].querySelectorAll('link, style'));\r\n if (blinks.length) {\r\n for (var l = 0, len = blinks.length; l < len; l++) {\r\n links.push(blinks[l]);\r\n }\r\n }\r\n var reference = '';\r\n if (isNullOrUndefined(printWindow)) {\r\n printWindow = window.open('', 'print', 'height=452,width=1024,tabbar=no');\r\n }\r\n div.appendChild(element.cloneNode(true));\r\n for (var i = 0, len = links.length; i < len; i++) {\r\n reference += links[i].outerHTML;\r\n }\r\n printWindow.document.write(' ' + reference + '' + div.innerHTML +\r\n '' + '');\r\n printWindow.document.close();\r\n printWindow.focus();\r\n // eslint-disable-next-line\r\n var interval = setInterval(function () {\r\n if (printWindow.ready) {\r\n printWindow.print();\r\n printWindow.close();\r\n clearInterval(interval);\r\n }\r\n }, 500);\r\n return printWindow;\r\n}\r\n/**\r\n * Function to normalize the units applied to the element.\r\n *\r\n * @param {number|string} value ?\r\n * @returns {string} result\r\n * @private\r\n */\r\nexport function formatUnit(value) {\r\n var result = value + '';\r\n if (result.match(/auto|cm|mm|in|px|pt|pc|%|em|ex|ch|rem|vw|vh|vmin|vmax/)) {\r\n return result;\r\n }\r\n return result + 'px';\r\n}\r\n/**\r\n * Function to check whether the platform is blazor or not.\r\n *\r\n * @returns {void} result\r\n * @private\r\n */\r\nexport function enableBlazorMode() {\r\n isBlazorPlatform = true;\r\n}\r\n/**\r\n * Function to check whether the platform is blazor or not.\r\n *\r\n * @returns {boolean} result\r\n * @private\r\n */\r\nexport function isBlazor() {\r\n return isBlazorPlatform;\r\n}\r\n/**\r\n * Function to convert xPath to DOM element in blazor platform\r\n *\r\n * @returns {HTMLElement} result\r\n * @param {HTMLElement | object} element ?\r\n * @private\r\n */\r\nexport function getElement(element) {\r\n var xPath = 'xPath';\r\n if (!(element instanceof Node) && isBlazor() && !isNullOrUndefined(element[xPath])) {\r\n return document.evaluate(element[xPath], document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;\r\n }\r\n return element;\r\n}\r\n/**\r\n * Function to fetch the Instances of a HTML element for the given component.\r\n *\r\n * @param {string | HTMLElement} element ?\r\n * @param {any} component ?\r\n * @returns {Object} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function getInstance(element, component) {\r\n // eslint-disable-next-line\r\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\r\n if (elem[instances]) {\r\n for (var _i = 0, _a = elem[instances]; _i < _a.length; _i++) {\r\n var inst = _a[_i];\r\n if (inst instanceof component) {\r\n return inst;\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Function to add instances for the given element.\r\n *\r\n * @param {string | HTMLElement} element ?\r\n * @param {Object} instance ?\r\n * @returns {void} ?\r\n * @private\r\n */\r\nexport function addInstance(element, instance) {\r\n // eslint-disable-next-line\r\n var elem = (typeof (element) === 'string') ? document.querySelector(element) : element;\r\n if (elem[instances]) {\r\n elem[instances].push(instance);\r\n }\r\n else {\r\n elem[instances] = [instance];\r\n }\r\n}\r\n/**\r\n * Function to generate the unique id.\r\n *\r\n * @returns {any} ?\r\n * @private\r\n */\r\n// eslint-disable-next-line\r\nexport function uniqueID() {\r\n if ((typeof window) === 'undefined') {\r\n return;\r\n }\r\n // eslint-disable-next-line\r\n var num = new Uint16Array(5);\r\n var intCrypto = window.msCrypto || window.crypto;\r\n return intCrypto.getRandomValues(num);\r\n}\r\n/**\r\n *\r\n * @param {Int16Array} num ?\r\n * @returns {string} ?\r\n */\r\nfunction combineArray(num) {\r\n var ret = '';\r\n for (var i = 0; i < 5; i++) {\r\n ret += (i ? ',' : '') + num[i];\r\n }\r\n return ret;\r\n}\r\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\r\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\r\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { getTextNode } from '../common/common';\r\nexport var buttonObserver = new Observer();\r\nvar cssClassName = {\r\n RTL: 'e-rtl',\r\n BUTTON: 'e-btn',\r\n PRIMARY: 'e-primary',\r\n ICONBTN: 'e-icon-btn'\r\n};\r\n/**\r\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Button = /** @class */ (function (_super) {\r\n __extends(Button, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {ButtonModel} options - Specifies the button model\r\n * @param {string|HTMLButtonElement} element - Specifies the target element\r\n */\r\n function Button(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n Button.prototype.preRender = function () {\r\n // pre render code snippets\r\n };\r\n /**\r\n * Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Button.prototype.render = function () {\r\n this.initialize();\r\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\r\n this.renderComplete();\r\n };\r\n Button.prototype.initialize = function () {\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' '));\r\n }\r\n if (this.isPrimary) {\r\n this.element.classList.add(cssClassName.PRIMARY);\r\n }\r\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\r\n if (this.content) {\r\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\r\n this.element.innerHTML = tempContent;\r\n }\r\n this.setIconCss();\r\n }\r\n if (this.enableRtl) {\r\n this.element.classList.add(cssClassName.RTL);\r\n }\r\n if (this.disabled) {\r\n this.controlStatus(this.disabled);\r\n }\r\n else {\r\n this.wireEvents();\r\n }\r\n };\r\n Button.prototype.controlStatus = function (disabled) {\r\n this.element.disabled = disabled;\r\n };\r\n Button.prototype.setIconCss = function () {\r\n if (this.iconCss) {\r\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\r\n if (!this.element.textContent.trim()) {\r\n this.element.classList.add(cssClassName.ICONBTN);\r\n }\r\n else {\r\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\r\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\r\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\r\n }\r\n }\r\n var node = this.element.childNodes[0];\r\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\r\n this.element.insertBefore(span, node);\r\n }\r\n else {\r\n this.element.appendChild(span);\r\n }\r\n }\r\n };\r\n Button.prototype.wireEvents = function () {\r\n if (this.isToggle) {\r\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\r\n }\r\n };\r\n Button.prototype.unWireEvents = function () {\r\n if (this.isToggle) {\r\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\r\n }\r\n };\r\n Button.prototype.btnClickHandler = function () {\r\n if (this.element.classList.contains('e-active')) {\r\n this.element.classList.remove('e-active');\r\n }\r\n else {\r\n this.element.classList.add('e-active');\r\n }\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n Button.prototype.destroy = function () {\r\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\r\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\r\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\r\n if (this.cssClass) {\r\n classList = classList.concat(this.cssClass.split(' '));\r\n }\r\n _super.prototype.destroy.call(this);\r\n removeClass([this.element], classList);\r\n if (!this.element.getAttribute('class')) {\r\n this.element.removeAttribute('class');\r\n }\r\n if (this.disabled) {\r\n this.element.removeAttribute('disabled');\r\n }\r\n if (this.content) {\r\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\r\n }\r\n var span = this.element.querySelector('span.e-btn-icon');\r\n if (span) {\r\n detach(span);\r\n }\r\n this.unWireEvents();\r\n if (isRippleEnabled) {\r\n this.removeRippleEffect();\r\n }\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - Module name\r\n * @private\r\n */\r\n Button.prototype.getModuleName = function () {\r\n return 'btn';\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist Data\r\n * @private\r\n */\r\n Button.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * Dynamically injects the required modules to the component.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Button.Inject = function () {\r\n // Inject code snippets\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {ButtonModel} newProp - Specifies new properties\r\n * @param {ButtonModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n * @private\r\n */\r\n Button.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var span = this.element.querySelector('span.e-btn-icon');\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'isPrimary':\r\n if (newProp.isPrimary) {\r\n this.element.classList.add(cssClassName.PRIMARY);\r\n }\r\n else {\r\n this.element.classList.remove(cssClassName.PRIMARY);\r\n }\r\n break;\r\n case 'disabled':\r\n this.controlStatus(newProp.disabled);\r\n break;\r\n case 'iconCss': {\r\n if (span) {\r\n if (newProp.iconCss) {\r\n span.className = 'e-btn-icon ' + newProp.iconCss;\r\n if (this.element.textContent.trim()) {\r\n if (this.iconPosition === 'Left') {\r\n span.classList.add('e-icon-left');\r\n }\r\n else {\r\n span.classList.add('e-icon-right');\r\n }\r\n }\r\n }\r\n else {\r\n detach(span);\r\n }\r\n }\r\n else {\r\n this.setIconCss();\r\n }\r\n break;\r\n }\r\n case 'iconPosition':\r\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\r\n span = this.element.querySelector('span.e-btn-icon');\r\n if (span) {\r\n detach(span);\r\n }\r\n this.setIconCss();\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.element], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.element], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n this.element.classList.add(cssClassName.RTL);\r\n }\r\n else {\r\n this.element.classList.remove(cssClassName.RTL);\r\n }\r\n break;\r\n case 'content': {\r\n var node = getTextNode(this.element);\r\n if (!node) {\r\n this.element.classList.remove(cssClassName.ICONBTN);\r\n }\r\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\r\n if (this.enableHtmlSanitizer) {\r\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\r\n }\r\n this.element.innerHTML = newProp.content;\r\n this.setIconCss();\r\n }\r\n break;\r\n }\r\n case 'isToggle':\r\n if (newProp.isToggle) {\r\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\r\n }\r\n else {\r\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\r\n removeClass([this.element], ['e-active']);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Click the button element\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n Button.prototype.click = function () {\r\n this.element.click();\r\n };\r\n /**\r\n * Sets the focus to Button\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n Button.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Property('Left')\r\n ], Button.prototype, \"iconPosition\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Button.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Button.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Button.prototype, \"isPrimary\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Button.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Button.prototype, \"content\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Button.prototype, \"isToggle\", void 0);\r\n __decorate([\r\n Property()\r\n ], Button.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Event()\r\n ], Button.prototype, \"created\", void 0);\r\n Button = __decorate([\r\n NotifyPropertyChanges\r\n ], Button);\r\n return Button;\r\n}(Component));\r\nexport { Button };\r\n","/**\n * Button modules\n */\nexport * from './button';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { Event, EventHandler, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { addClass, detach, getUniqueID, isRippleEnabled, removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\r\nimport { wrapperInitialize, rippleMouseHandler, setHiddenInput } from './../common/common';\r\nvar CHECK = 'e-check';\r\nvar DISABLED = 'e-checkbox-disabled';\r\nvar FRAME = 'e-frame';\r\nvar INDETERMINATE = 'e-stop';\r\nvar LABEL = 'e-label';\r\nvar RIPPLE = 'e-ripple-container';\r\nvar RIPPLECHECK = 'e-ripple-check';\r\nvar RIPPLEINDETERMINATE = 'e-ripple-stop';\r\nvar RTL = 'e-rtl';\r\nvar WRAPPER = 'e-checkbox-wrapper';\r\nvar containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\r\n/**\r\n * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices.\r\n * It contains checked, unchecked, and indeterminate states.\r\n * ```html\r\n * \r\n * \r\n * ```\r\n */\r\nvar CheckBox = /** @class */ (function (_super) {\r\n __extends(CheckBox, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @private\r\n * @param {CheckBoxModel} options - Specifies checkbox model\r\n * @param {string | HTMLInputElement} element - Specifies target element\r\n */\r\n function CheckBox(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isFocused = false;\r\n _this.isMouseClick = false;\r\n return _this;\r\n }\r\n CheckBox.prototype.changeState = function (state) {\r\n var ariaState;\r\n var rippleSpan;\r\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\r\n if (isRippleEnabled) {\r\n rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\r\n }\r\n if (state === 'check') {\r\n frameSpan.classList.remove(INDETERMINATE);\r\n frameSpan.classList.add(CHECK);\r\n if (rippleSpan) {\r\n rippleSpan.classList.remove(RIPPLEINDETERMINATE);\r\n rippleSpan.classList.add(RIPPLECHECK);\r\n }\r\n ariaState = 'true';\r\n this.element.checked = true;\r\n }\r\n else if (state === 'uncheck') {\r\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\r\n if (rippleSpan) {\r\n removeClass([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]);\r\n }\r\n ariaState = 'false';\r\n this.element.checked = false;\r\n }\r\n else {\r\n frameSpan.classList.remove(CHECK);\r\n frameSpan.classList.add(INDETERMINATE);\r\n if (rippleSpan) {\r\n rippleSpan.classList.remove(RIPPLECHECK);\r\n rippleSpan.classList.add(RIPPLEINDETERMINATE);\r\n }\r\n ariaState = 'mixed';\r\n this.element.indeterminate = true;\r\n }\r\n this.getWrapper().setAttribute('aria-checked', ariaState);\r\n };\r\n CheckBox.prototype.clickHandler = function (event) {\r\n if (this.isMouseClick) {\r\n this.focusOutHandler();\r\n this.isMouseClick = false;\r\n }\r\n if (this.indeterminate) {\r\n this.changeState(this.checked ? 'check' : 'uncheck');\r\n this.indeterminate = false;\r\n this.element.indeterminate = false;\r\n }\r\n else if (this.checked) {\r\n this.changeState('uncheck');\r\n this.checked = false;\r\n }\r\n else {\r\n this.changeState('check');\r\n this.checked = true;\r\n }\r\n var changeEventArgs = { checked: this.updateVueArrayModel(false), event: event };\r\n this.trigger('change', changeEventArgs);\r\n event.stopPropagation();\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.destroy = function () {\r\n var _this = this;\r\n var wrapper = this.getWrapper();\r\n _super.prototype.destroy.call(this);\r\n if (this.wrapper) {\r\n wrapper = this.wrapper;\r\n if (!this.disabled) {\r\n this.unWireEvents();\r\n }\r\n if (this.tagName === 'INPUT') {\r\n if (this.getWrapper() && wrapper.parentNode) {\r\n wrapper.parentNode.insertBefore(this.element, wrapper);\r\n }\r\n detach(wrapper);\r\n this.element.checked = false;\r\n if (this.indeterminate) {\r\n this.element.indeterminate = false;\r\n }\r\n ['name', 'value', 'disabled'].forEach(function (key) {\r\n _this.element.removeAttribute(key);\r\n });\r\n }\r\n else {\r\n ['role', 'aria-checked', 'class'].forEach(function (key) {\r\n wrapper.removeAttribute(key);\r\n });\r\n wrapper.innerHTML = '';\r\n }\r\n }\r\n };\r\n CheckBox.prototype.focusHandler = function () {\r\n this.isFocused = true;\r\n };\r\n CheckBox.prototype.focusOutHandler = function () {\r\n var wrapper = this.getWrapper();\r\n if (wrapper) {\r\n wrapper.classList.remove('e-focus');\r\n }\r\n this.isFocused = false;\r\n };\r\n /**\r\n * Gets the module name.\r\n *\r\n * @private\r\n * @returns {string} - Module Name\r\n */\r\n CheckBox.prototype.getModuleName = function () {\r\n return 'checkbox';\r\n };\r\n /**\r\n * Gets the properties to be maintained in the persistence state.\r\n *\r\n * @private\r\n * @returns {string} - Persist Data\r\n */\r\n CheckBox.prototype.getPersistData = function () {\r\n return this.addOnPersist(['checked', 'indeterminate']);\r\n };\r\n CheckBox.prototype.getWrapper = function () {\r\n if (this.element && this.element.parentElement) {\r\n return this.element.parentElement.parentElement;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n CheckBox.prototype.initialize = function () {\r\n if (isNullOrUndefined(this.initialCheckedValue)) {\r\n this.initialCheckedValue = this.checked;\r\n }\r\n if (this.name) {\r\n this.element.setAttribute('name', this.name);\r\n }\r\n if (this.value) {\r\n this.element.setAttribute('value', this.value);\r\n if (this.isVue && typeof this.value === 'boolean' && this.value === true) {\r\n this.setProperties({ 'checked': true }, true);\r\n }\r\n }\r\n if (this.checked) {\r\n this.changeState('check');\r\n }\r\n if (this.indeterminate) {\r\n this.changeState();\r\n }\r\n if (this.disabled) {\r\n this.setDisabled();\r\n }\r\n };\r\n CheckBox.prototype.initWrapper = function () {\r\n var wrapper = this.element.parentElement;\r\n if (!wrapper.classList.contains(WRAPPER)) {\r\n wrapper = this.createElement('div', {\r\n className: WRAPPER, attrs: { 'role': 'checkbox', 'aria-checked': 'false' }\r\n });\r\n this.element.parentNode.insertBefore(wrapper, this.element);\r\n }\r\n var label = this.createElement('label', { attrs: { for: this.element.id } });\r\n var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME });\r\n wrapper.classList.add('e-wrapper');\r\n if (this.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n if (this.cssClass) {\r\n addClass([wrapper], this.cssClass.split(' '));\r\n }\r\n wrapper.appendChild(label);\r\n label.appendChild(this.element);\r\n setHiddenInput(this, label);\r\n label.appendChild(frameSpan);\r\n if (isRippleEnabled) {\r\n var rippleSpan = this.createElement('span', { className: RIPPLE });\r\n if (this.labelPosition === 'Before') {\r\n label.appendChild(rippleSpan);\r\n }\r\n else {\r\n label.insertBefore(rippleSpan, frameSpan);\r\n }\r\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\r\n }\r\n if (this.label) {\r\n this.setText(this.label);\r\n }\r\n };\r\n CheckBox.prototype.keyUpHandler = function () {\r\n if (this.isFocused) {\r\n this.getWrapper().classList.add('e-focus');\r\n }\r\n };\r\n CheckBox.prototype.labelMouseDownHandler = function (e) {\r\n this.isMouseClick = true;\r\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\r\n rippleMouseHandler(e, rippleSpan);\r\n };\r\n CheckBox.prototype.labelMouseUpHandler = function (e) {\r\n this.isMouseClick = true;\r\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\r\n if (rippleSpan) {\r\n var rippleElem = rippleSpan.querySelectorAll('.e-ripple-element');\r\n for (var i = 0; i < rippleElem.length - 1; i++) {\r\n rippleSpan.removeChild(rippleSpan.childNodes[i]);\r\n }\r\n rippleMouseHandler(e, rippleSpan);\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changes.\r\n *\r\n * @private\r\n * @param {CheckBoxModel} newProp - Specifies new Properties\r\n * @param {CheckBoxModel} oldProp - Specifies old Properties\r\n *\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var wrapper = this.getWrapper();\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'checked':\r\n this.indeterminate = false;\r\n this.element.indeterminate = false;\r\n this.changeState(newProp.checked ? 'check' : 'uncheck');\r\n break;\r\n case 'indeterminate':\r\n if (newProp.indeterminate) {\r\n this.changeState();\r\n }\r\n else {\r\n this.element.indeterminate = false;\r\n this.changeState(this.checked ? 'check' : 'uncheck');\r\n }\r\n break;\r\n case 'disabled':\r\n if (newProp.disabled) {\r\n this.setDisabled();\r\n this.wrapper = this.getWrapper();\r\n this.unWireEvents();\r\n }\r\n else {\r\n this.element.disabled = false;\r\n wrapper.classList.remove(DISABLED);\r\n wrapper.setAttribute('aria-disabled', 'false');\r\n this.wireEvents();\r\n }\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([wrapper], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([wrapper], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n else {\r\n wrapper.classList.remove(RTL);\r\n }\r\n break;\r\n case 'label':\r\n this.setText(newProp.label);\r\n break;\r\n case 'labelPosition': {\r\n var label = wrapper.getElementsByClassName(LABEL)[0];\r\n var labelWrap = wrapper.getElementsByTagName('label')[0];\r\n detach(label);\r\n if (newProp.labelPosition === 'After') {\r\n labelWrap.appendChild(label);\r\n }\r\n else {\r\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\r\n }\r\n break;\r\n }\r\n case 'name':\r\n this.element.setAttribute('name', newProp.name);\r\n break;\r\n case 'value':\r\n if (this.isVue && typeof newProp.value === 'object') {\r\n break;\r\n }\r\n this.element.setAttribute('value', newProp.value);\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttributeToWrapper();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize Angular, React and Unique ID support.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.preRender = function () {\r\n var element = this.element;\r\n this.formElement = closest(this.element, 'form');\r\n this.tagName = this.element.tagName;\r\n element = wrapperInitialize(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox');\r\n this.element = element;\r\n if (this.element.getAttribute('type') !== 'checkbox') {\r\n this.element.setAttribute('type', 'checkbox');\r\n }\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('e-' + this.getModuleName());\r\n }\r\n };\r\n /**\r\n * Initialize the control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.render = function () {\r\n this.initWrapper();\r\n this.initialize();\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n this.updateHtmlAttributeToWrapper();\r\n this.updateVueArrayModel(true);\r\n this.renderComplete();\r\n this.wrapper = this.getWrapper();\r\n };\r\n CheckBox.prototype.setDisabled = function () {\r\n var wrapper = this.getWrapper();\r\n this.element.disabled = true;\r\n wrapper.classList.add(DISABLED);\r\n wrapper.setAttribute('aria-disabled', 'true');\r\n };\r\n CheckBox.prototype.setText = function (text) {\r\n var wrapper = this.getWrapper();\r\n if (!wrapper) {\r\n return;\r\n }\r\n var label = wrapper.getElementsByClassName(LABEL)[0];\r\n if (label) {\r\n label.textContent = text;\r\n }\r\n else {\r\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\r\n label = this.createElement('span', { className: LABEL, innerHTML: text });\r\n var labelWrap = wrapper.getElementsByTagName('label')[0];\r\n if (this.labelPosition === 'Before') {\r\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\r\n }\r\n else {\r\n labelWrap.appendChild(label);\r\n }\r\n }\r\n };\r\n CheckBox.prototype.changeHandler = function (e) {\r\n e.stopPropagation();\r\n };\r\n CheckBox.prototype.formResetHandler = function () {\r\n this.checked = this.initialCheckedValue;\r\n this.element.checked = this.initialCheckedValue;\r\n };\r\n CheckBox.prototype.unWireEvents = function () {\r\n var wrapper = this.wrapper;\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\r\n EventHandler.remove(this.element, 'focus', this.focusHandler);\r\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\r\n var label = wrapper.getElementsByTagName('label')[0];\r\n EventHandler.remove(label, 'mousedown', this.labelMouseDownHandler);\r\n EventHandler.remove(label, 'mouseup', this.labelMouseUpHandler);\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n if (this.tagName === 'EJS-CHECKBOX') {\r\n EventHandler.remove(this.element, 'change', this.changeHandler);\r\n }\r\n };\r\n CheckBox.prototype.wireEvents = function () {\r\n var wrapper = this.getWrapper();\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\r\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\r\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\r\n var label = wrapper.getElementsByTagName('label')[0];\r\n EventHandler.add(label, 'mousedown', this.labelMouseDownHandler, this);\r\n EventHandler.add(label, 'mouseup', this.labelMouseUpHandler, this);\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n if (this.tagName === 'EJS-CHECKBOX') {\r\n EventHandler.add(this.element, 'change', this.changeHandler, this);\r\n }\r\n };\r\n CheckBox.prototype.updateVueArrayModel = function (init) {\r\n if (this.isVue && typeof this.value === 'object') {\r\n var value = this.element.value;\r\n if (value && this.value) {\r\n if (init) {\r\n for (var i = 0; i < this.value.length; i++) {\r\n if (value === this.value[i]) {\r\n this.changeState('check');\r\n this.setProperties({ 'checked': true }, true);\r\n }\r\n }\r\n }\r\n else {\r\n var index = this.value.indexOf(value);\r\n if (this.checked) {\r\n if (index < 0) {\r\n this.value.push(value);\r\n }\r\n }\r\n else {\r\n if (index > -1) {\r\n this.value.splice(index, 1);\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return this.value;\r\n }\r\n }\r\n }\r\n return this.element.checked;\r\n };\r\n CheckBox.prototype.updateHtmlAttributeToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (containerAttr.indexOf(key) > -1) {\r\n var wrapper = this.getWrapper();\r\n if (key === 'class') {\r\n addClass([wrapper], this.htmlAttributes[key].split(' '));\r\n }\r\n else if (key === 'title') {\r\n wrapper.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n else if (key === 'style') {\r\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\r\n frameSpan.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n else {\r\n this.element.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Click the CheckBox element\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.click = function () {\r\n this.element.click();\r\n };\r\n /**\r\n * Sets the focus to CheckBox\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n CheckBox.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Event()\r\n ], CheckBox.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], CheckBox.prototype, \"created\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CheckBox.prototype, \"checked\", void 0);\r\n __decorate([\r\n Property('')\r\n ], CheckBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CheckBox.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CheckBox.prototype, \"indeterminate\", void 0);\r\n __decorate([\r\n Property('')\r\n ], CheckBox.prototype, \"label\", void 0);\r\n __decorate([\r\n Property('After')\r\n ], CheckBox.prototype, \"labelPosition\", void 0);\r\n __decorate([\r\n Property('')\r\n ], CheckBox.prototype, \"name\", void 0);\r\n __decorate([\r\n Property('')\r\n ], CheckBox.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CheckBox.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property({})\r\n ], CheckBox.prototype, \"htmlAttributes\", void 0);\r\n CheckBox = __decorate([\r\n NotifyPropertyChanges\r\n ], CheckBox);\r\n return CheckBox;\r\n}(Component));\r\nexport { CheckBox };\r\n","/**\n * CheckBox modules\n */\nexport * from './check-box';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, NotifyPropertyChanges, Property, append, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\r\nimport { EventHandler, detach, Event, addClass } from '@syncfusion/ej2-base';\r\nexport var classNames = {\r\n chipSet: 'e-chip-set',\r\n chip: 'e-chip',\r\n avatar: 'e-chip-avatar',\r\n text: 'e-chip-text',\r\n icon: 'e-chip-icon',\r\n delete: 'e-chip-delete',\r\n deleteIcon: 'e-dlt-btn',\r\n multiSelection: 'e-multi-selection',\r\n singleSelection: 'e-selection',\r\n active: 'e-active',\r\n chipWrapper: 'e-chip-avatar-wrap',\r\n iconWrapper: 'e-chip-icon-wrap',\r\n focused: 'e-focused',\r\n disabled: 'e-disabled',\r\n rtl: 'e-rtl'\r\n};\r\n/**\r\n * A chip component is a small block of essential information, mostly used on contacts or filter tags.\r\n * ```html\r\n *
    \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar ChipList = /** @class */ (function (_super) {\r\n __extends(ChipList, _super);\r\n function ChipList(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.multiSelectedChip = [];\r\n return _this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n */\r\n ChipList.prototype.preRender = function () {\r\n //prerender\r\n };\r\n /**\r\n * To find the chips length.\r\n *\r\n * @returns boolean\r\n * @private\r\n */\r\n ChipList.prototype.chipType = function () {\r\n return (this.chips && this.chips.length && this.chips.length > 0);\r\n };\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns void\r\n * @private\r\n */\r\n ChipList.prototype.render = function () {\r\n var property;\r\n this.type = this.chips.length ? 'chipset' : (this.text || this.element.innerText ? 'chip' : 'chipset');\r\n this.setAttributes();\r\n this.createChip();\r\n this.setRtl();\r\n this.select(this.selectedChips, property);\r\n this.wireEvent(false);\r\n this.rippleFunction = rippleEffect(this.element, {\r\n selector: '.e-chip'\r\n });\r\n this.renderComplete();\r\n };\r\n ChipList.prototype.createChip = function () {\r\n // eslint-disable-next-line\r\n this.innerText = (this.element.innerText && this.element.innerText.length !== 0) ? this.element.innerText.trim() : this.element.innerText;\r\n this.element.innerHTML = '';\r\n this.chipCreation(this.type === 'chip' ? [this.innerText ? this.innerText : this.text] : this.chips);\r\n };\r\n ChipList.prototype.setAttributes = function () {\r\n if (this.type === 'chip') {\r\n this.element.tabIndex = 0;\r\n this.element.setAttribute('role', 'option');\r\n }\r\n else {\r\n this.element.classList.add(classNames.chipSet);\r\n this.element.setAttribute('role', 'listbox');\r\n if (this.selection === 'Multiple') {\r\n this.element.classList.add(classNames.multiSelection);\r\n this.element.setAttribute('aria-multiselectable', 'true');\r\n }\r\n else if (this.selection === 'Single') {\r\n this.element.classList.add(classNames.singleSelection);\r\n this.element.setAttribute('aria-multiselectable', 'false');\r\n }\r\n else {\r\n this.element.setAttribute('aria-multiselectable', 'false');\r\n }\r\n }\r\n };\r\n ChipList.prototype.setRtl = function () {\r\n this.element.classList[this.enableRtl ? 'add' : 'remove'](classNames.rtl);\r\n };\r\n ChipList.prototype.chipCreation = function (data) {\r\n var chipListArray = [];\r\n for (var i = 0; i < data.length; i++) {\r\n var fieldsData = this.getFieldValues(data[i]);\r\n var chipArray = this.elementCreation(fieldsData);\r\n var className = (classNames.chip + ' ' + (fieldsData.enabled ? ' ' : classNames.disabled) + ' ' +\r\n (fieldsData.avatarIconCss || fieldsData.avatarText ? classNames.chipWrapper : (fieldsData.leadingIconCss ?\r\n classNames.iconWrapper : ' ')) + ' ' + fieldsData.cssClass).split(' ').filter(function (css) { return css; });\r\n if (!this.chipType()) {\r\n chipListArray = chipArray;\r\n addClass([this.element], className);\r\n this.element.setAttribute('aria-label', fieldsData.text);\r\n if (fieldsData.value) {\r\n this.element.setAttribute('data-value', fieldsData.value.toString());\r\n }\r\n }\r\n else {\r\n var wrapper = this.createElement('DIV', {\r\n className: className.join(' '), attrs: {\r\n tabIndex: '0', role: 'option',\r\n 'aria-label': fieldsData.text, 'aria-selected': 'false'\r\n }\r\n });\r\n if (fieldsData.value) {\r\n wrapper.setAttribute('data-value', fieldsData.value.toString());\r\n }\r\n append(chipArray, wrapper);\r\n chipListArray.push(wrapper);\r\n }\r\n }\r\n append(chipListArray, this.element);\r\n };\r\n ChipList.prototype.getFieldValues = function (data) {\r\n var chipEnabled = !(this.enabled.toString() === 'false');\r\n var fields = {\r\n text: typeof data === 'object' ? (data.text ? data.text.toString() : this.text.toString()) :\r\n (!this.chipType() ? (this.innerText ? this.innerText : this.text.toString()) : data.toString()),\r\n cssClass: typeof data === 'object' ? (data.cssClass ? data.cssClass.toString() : this.cssClass.toString()) :\r\n (this.cssClass.toString()),\r\n leadingIconCss: typeof data === 'object' ? (data.leadingIconCss ? data.leadingIconCss.toString() :\r\n this.leadingIconCss.toString()) : (this.leadingIconCss.toString()),\r\n avatarIconCss: typeof data === 'object' ? (data.avatarIconCss ? data.avatarIconCss.toString() :\r\n this.avatarIconCss.toString()) : (this.avatarIconCss.toString()),\r\n avatarText: typeof data === 'object' ? (data.avatarText ? data.avatarText.toString() : this.avatarText.toString()) :\r\n (this.avatarText.toString()),\r\n trailingIconCss: typeof data === 'object' ? (data.trailingIconCss ? data.trailingIconCss.toString() :\r\n this.trailingIconCss.toString()) : (this.trailingIconCss.toString()),\r\n enabled: typeof data === 'object' ? (!isNullOrUndefined(data.enabled) ? (data.enabled.toString() === 'false' ? false : true) :\r\n chipEnabled) : (chipEnabled),\r\n value: typeof data === 'object' ? ((data.value ? data.value.toString() : null)) : null,\r\n leadingIconUrl: typeof data === 'object' ? (data.leadingIconUrl ? data.leadingIconUrl.toString() : this.leadingIconUrl) :\r\n this.leadingIconUrl,\r\n trailingIconUrl: typeof data === 'object' ? (data.trailingIconUrl ? data.trailingIconUrl.toString() : this.trailingIconUrl) :\r\n this.trailingIconUrl\r\n };\r\n return fields;\r\n };\r\n ChipList.prototype.elementCreation = function (fields) {\r\n var chipArray = [];\r\n if (fields.avatarText || fields.avatarIconCss) {\r\n var className = (classNames.avatar + ' ' + fields.avatarIconCss).trim();\r\n var chipAvatarElement = this.createElement('span', { className: className });\r\n chipAvatarElement.innerText = fields.avatarText;\r\n chipArray.push(chipAvatarElement);\r\n }\r\n else if (fields.leadingIconCss) {\r\n var className = (classNames.icon + ' ' + fields.leadingIconCss).trim();\r\n var chipIconElement = this.createElement('span', { className: className });\r\n chipArray.push(chipIconElement);\r\n }\r\n else if (fields.leadingIconUrl) {\r\n var className = (classNames.avatar + ' ' + 'image-url').trim();\r\n var chipIconElement = this.createElement('span', { className: className });\r\n chipIconElement.style.backgroundImage = 'url(' + fields.leadingIconUrl + ')';\r\n chipArray.push(chipIconElement);\r\n }\r\n var chipTextElement = this.createElement('span', { className: classNames.text });\r\n chipTextElement.innerText = fields.text;\r\n chipArray.push(chipTextElement);\r\n if (fields.trailingIconCss || (this.chipType() && this.enableDelete)) {\r\n var className = (classNames.delete + ' ' +\r\n (fields.trailingIconCss ? fields.trailingIconCss : classNames.deleteIcon)).trim();\r\n var chipdeleteElement = this.createElement('span', { className: className });\r\n chipArray.push(chipdeleteElement);\r\n }\r\n else if (fields.trailingIconUrl) {\r\n var className = ('trailing-icon-url').trim();\r\n var chipIconsElement = this.createElement('span', { className: className });\r\n chipIconsElement.style.backgroundImage = 'url(' + fields.trailingIconUrl + ')';\r\n chipArray.push(chipIconsElement);\r\n }\r\n return chipArray;\r\n };\r\n /**\r\n * A function that finds chip based on given input.\r\n *\r\n * @param {number | HTMLElement } fields - We can pass index number or element of chip.\r\n * {% codeBlock src='chips/find/index.md' %}{% endcodeBlock %}.\r\n */\r\n ChipList.prototype.find = function (fields) {\r\n var chipData;\r\n var chipElement = fields instanceof HTMLElement ?\r\n fields : this.element.querySelectorAll('.' + classNames.chip)[fields];\r\n if (chipElement && this.chipType()) {\r\n chipData = { text: undefined, index: undefined, element: undefined, data: undefined };\r\n chipData.index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipElement);\r\n chipData.text = typeof this.chips[chipData.index] === 'object' ?\r\n (this.chips[chipData.index].text ?\r\n this.chips[chipData.index].text.toString() : '') :\r\n this.chips[chipData.index].toString();\r\n chipData.data = this.chips[chipData.index];\r\n chipData.element = chipElement;\r\n }\r\n return chipData;\r\n };\r\n /**\r\n * Allows adding the chip item(s) by passing a single or array of string, number, or ChipModel values.\r\n *\r\n * @param {string[] | number[] | ChipModel[] | string | number | ChipModel} chipsData - We can pass array of string or\r\n * array of number or array of chip model or string data or number data or chip model.\r\n * {% codeBlock src='chips/add/index.md' %}{% endcodeBlock %}\r\n\r\n */\r\n ChipList.prototype.add = function (chipsData) {\r\n var _a;\r\n if (this.type !== 'chip') {\r\n var fieldData = chipsData instanceof Array ?\r\n chipsData : [chipsData];\r\n (_a = this.chips).push.apply(_a, fieldData);\r\n this.chipCreation(fieldData);\r\n }\r\n };\r\n /**\r\n * Allows selecting the chip item(s) by passing a single or array of string, number, or ChipModel values.\r\n *\r\n * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number\r\n * or chip element or array of chip element.\r\n * {% codeBlock src='chips/select/index.md' %}{% endcodeBlock %}\r\n */\r\n ChipList.prototype.select = function (fields, selectionType) {\r\n this.onSelect(fields, false, selectionType);\r\n };\r\n ChipList.prototype.multiSelection = function (newProp) {\r\n var items = this.element.querySelectorAll('.' + 'e-chip');\r\n for (var j = 0; j < newProp.length; j++) {\r\n if (typeof newProp[j] === 'string') {\r\n for (var k = 0; k < items.length; k++) {\r\n if (newProp[j] !== k) {\r\n if (newProp[j] === items[k].attributes[5].value) {\r\n this.multiSelectedChip.push(k);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.multiSelectedChip.push(newProp[j]);\r\n }\r\n }\r\n };\r\n ChipList.prototype.onSelect = function (fields, callFromProperty, selectionType) {\r\n var index;\r\n var chipNodes;\r\n var chipValue;\r\n if (this.chipType() && this.selection !== 'None') {\r\n if (callFromProperty) {\r\n var chipElements = this.element.querySelectorAll('.' + classNames.chip);\r\n for (var i = 0; i < chipElements.length; i++) {\r\n chipElements[i].setAttribute('aria-selected', 'false');\r\n chipElements[i].classList.remove(classNames.active);\r\n }\r\n }\r\n var fieldData = fields instanceof Array ? fields : [fields];\r\n for (var i = 0; i < fieldData.length; i++) {\r\n var chipElement = fieldData[i] instanceof HTMLElement ? fieldData[i]\r\n : this.element.querySelectorAll('.' + classNames.chip)[fieldData[i]];\r\n if (selectionType !== 'index') {\r\n for (var j = 0; j < this.chips.length; j++) {\r\n chipNodes = this.element.querySelectorAll('.' + classNames.chip)[j];\r\n var fieldsData = this.getFieldValues(this.chips[j]);\r\n if (selectionType === 'value') {\r\n if (fieldsData.value !== null) {\r\n chipValue = chipNodes.dataset.value;\r\n }\r\n }\r\n else if (selectionType === 'text') {\r\n chipValue = chipNodes.innerText;\r\n }\r\n if (chipValue === fieldData[i].toString()) {\r\n index = j;\r\n chipElement = this.element.querySelectorAll('.' + classNames.chip)[index];\r\n }\r\n }\r\n }\r\n if (chipElement instanceof HTMLElement) {\r\n this.selectionHandler(chipElement);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Allows removing the chip item(s) by passing a single or array of string, number, or ChipModel values.\r\n *\r\n * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number\r\n * or chip element or array of chip element.\r\n * {% codeBlock src='chips/remove/index.md' %}{% endcodeBlock %}\r\n */\r\n ChipList.prototype.remove = function (fields) {\r\n var _this = this;\r\n if (this.chipType()) {\r\n var fieldData = fields instanceof Array ? fields : [fields];\r\n var chipElements_1 = [];\r\n var chipCollection_1 = this.element.querySelectorAll('.' + classNames.chip);\r\n fieldData.forEach(function (data) {\r\n var chipElement = data instanceof HTMLElement ? data\r\n : chipCollection_1[data];\r\n if (chipElement instanceof HTMLElement) {\r\n chipElements_1.push(chipElement);\r\n }\r\n });\r\n chipElements_1.forEach(function (element) {\r\n var chips = _this.element.querySelectorAll('.' + classNames.chip);\r\n var index = Array.prototype.slice.call(chips).indexOf(element);\r\n _this.deleteHandler(element, index);\r\n });\r\n }\r\n };\r\n /**\r\n * Returns the selected chip(s) data.\r\n * {% codeBlock src='chips/getSelectedChips/index.md' %}{% endcodeBlock %}\r\n */\r\n ChipList.prototype.getSelectedChips = function () {\r\n var selectedChips;\r\n if (this.chipType() && this.selection !== 'None') {\r\n var selectedItems = { texts: [], Indexes: [], data: [], elements: [] };\r\n var items = this.element.querySelectorAll('.' + classNames.active);\r\n for (var i = 0; i < items.length; i++) {\r\n var chip = items[i];\r\n selectedItems.elements.push(chip);\r\n var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chip);\r\n selectedItems.Indexes.push(index);\r\n selectedItems.data.push(this.chips[index]);\r\n var text = typeof this.chips[index] === 'object' ?\r\n this.chips[index].text ? this.chips[index].text.toString()\r\n : null : this.chips[index].toString();\r\n selectedItems.texts.push(text);\r\n }\r\n var selectedItem = {\r\n text: selectedItems.texts[0], index: selectedItems.Indexes[0],\r\n data: selectedItems.data[0], element: selectedItems.elements[0]\r\n };\r\n selectedChips = !isNullOrUndefined(selectedItem.index) ?\r\n (this.selection === 'Multiple' ? selectedItems : selectedItem) : undefined;\r\n }\r\n return selectedChips;\r\n };\r\n ChipList.prototype.wireEvent = function (unWireEvent) {\r\n if (!unWireEvent) {\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\r\n EventHandler.add(this.element, 'keydown', this.keyHandler, this);\r\n EventHandler.add(this.element, 'keyup', this.keyHandler, this);\r\n }\r\n else {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\r\n EventHandler.remove(this.element, 'keydown', this.keyHandler);\r\n EventHandler.remove(this.element, 'keyup', this.keyHandler);\r\n }\r\n };\r\n ChipList.prototype.keyHandler = function (e) {\r\n if (e.target.classList.contains(classNames.chip)) {\r\n if (e.type === 'keydown') {\r\n if (e.keyCode === 13) {\r\n this.clickHandler(e);\r\n }\r\n else if (e.keyCode === 46 && this.enableDelete) {\r\n this.clickHandler(e, true);\r\n }\r\n }\r\n else if (e.keyCode === 9) {\r\n this.focusInHandler(e.target);\r\n }\r\n }\r\n };\r\n ChipList.prototype.focusInHandler = function (chipWrapper) {\r\n if (!chipWrapper.classList.contains(classNames.focused)) {\r\n chipWrapper.classList.add(classNames.focused);\r\n }\r\n };\r\n ChipList.prototype.focusOutHandler = function (e) {\r\n var chipWrapper = closest(e.target, '.' + classNames.chip);\r\n var focusedElement = !this.chipType() ? (this.element.classList.contains(classNames.focused) ?\r\n this.element : null) : this.element.querySelector('.' + classNames.focused);\r\n if (chipWrapper && focusedElement) {\r\n focusedElement.classList.remove(classNames.focused);\r\n }\r\n };\r\n ChipList.prototype.clickHandler = function (e, del) {\r\n var _this = this;\r\n if (del === void 0) { del = false; }\r\n var chipWrapper = closest(e.target, '.' + classNames.chip);\r\n if (chipWrapper) {\r\n // eslint-disable-next-line\r\n var chipDataArgs = void 0;\r\n if (this.chipType()) {\r\n chipDataArgs = this.find(chipWrapper);\r\n }\r\n else {\r\n var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipWrapper);\r\n chipDataArgs = {\r\n text: this.innerText ? this.innerText : this.text,\r\n element: chipWrapper, data: this.text, index: index\r\n };\r\n }\r\n chipDataArgs.event = e;\r\n chipDataArgs.cancel = false;\r\n this.trigger('beforeClick', chipDataArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.clickEventHandler(observedArgs.element, e, del);\r\n }\r\n });\r\n }\r\n };\r\n ChipList.prototype.clickEventHandler = function (chipWrapper, e, del) {\r\n var _this = this;\r\n if (this.chipType()) {\r\n var chipData_1 = this.find(chipWrapper);\r\n chipData_1.event = e;\r\n var deleteElement = e.target.classList.contains(classNames.deleteIcon) ?\r\n e.target : (del ? chipWrapper.querySelector('.' + classNames.deleteIcon) : undefined);\r\n if (deleteElement && this.enableDelete) {\r\n chipData_1.cancel = false;\r\n var deletedItemArgs = chipData_1;\r\n this.trigger('delete', deletedItemArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.deleteHandler(observedArgs.element, observedArgs.index);\r\n _this.selectionHandler(chipWrapper);\r\n chipData_1.selected = observedArgs.element.classList.contains(classNames.active);\r\n var selectedItemArgs = chipData_1;\r\n _this.trigger('click', selectedItemArgs);\r\n }\r\n });\r\n }\r\n else if (this.selection !== 'None') {\r\n this.selectionHandler(chipWrapper);\r\n chipData_1.selected = chipWrapper.classList.contains(classNames.active);\r\n var selectedItemArgs = chipData_1;\r\n this.trigger('click', selectedItemArgs);\r\n }\r\n else {\r\n this.focusInHandler(chipWrapper);\r\n var clickedItemArgs = chipData_1;\r\n this.trigger('click', clickedItemArgs);\r\n }\r\n }\r\n else {\r\n this.focusInHandler(chipWrapper);\r\n var clickedItemArgs = {\r\n text: this.innerText ? this.innerText : this.text,\r\n element: chipWrapper, data: this.text, event: e\r\n };\r\n this.trigger('click', clickedItemArgs);\r\n }\r\n };\r\n ChipList.prototype.selectionHandler = function (chipWrapper) {\r\n if (this.selection === 'Single') {\r\n var activeElement = this.element.querySelector('.' + classNames.active);\r\n if (activeElement && activeElement !== chipWrapper) {\r\n activeElement.classList.remove(classNames.active);\r\n activeElement.setAttribute('aria-selected', 'false');\r\n }\r\n this.setProperties({ selectedChips: null }, true);\r\n }\r\n else {\r\n this.setProperties({ selectedChips: [] }, true);\r\n }\r\n if (chipWrapper.classList.contains(classNames.active)) {\r\n chipWrapper.classList.remove(classNames.active);\r\n chipWrapper.setAttribute('aria-selected', 'false');\r\n }\r\n else {\r\n chipWrapper.classList.add(classNames.active);\r\n chipWrapper.setAttribute('aria-selected', 'true');\r\n }\r\n this.updateSelectedChips();\r\n };\r\n ChipList.prototype.updateSelectedChips = function () {\r\n var chipListEle = this.element.querySelectorAll('.e-chip');\r\n var chipCollIndex = [];\r\n var chipCollValue = [];\r\n var chip = null;\r\n var value;\r\n for (var i = 0; i < chipListEle.length; i++) {\r\n var selectedEle = this.element.querySelectorAll('.e-chip')[i];\r\n if (selectedEle.getAttribute('aria-selected') === 'true') {\r\n value = selectedEle.getAttribute('data-value');\r\n if (this.selection === 'Single' && selectedEle.classList.contains('e-active')) {\r\n chip = value ? value : i;\r\n break;\r\n }\r\n else {\r\n chip = value ? chipCollValue.push(value) : chipCollIndex.push(i);\r\n }\r\n }\r\n }\r\n this.setProperties({ selectedChips: this.selection === 'Single' ? chip : value ? chipCollValue : chipCollIndex }, true);\r\n };\r\n ChipList.prototype.deleteHandler = function (chipWrapper, index) {\r\n this.chips.splice(index, 1);\r\n this.setProperties({ chips: this.chips }, true);\r\n detach(chipWrapper);\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. Also, it removes the attributes and classes.\r\n * {% codeBlock src='chips/destroy/index.md' %}{% endcodeBlock %}\r\n */\r\n ChipList.prototype.destroy = function () {\r\n removeClass([this.element], [classNames.chipSet, classNames.chip, classNames.rtl,\r\n classNames.multiSelection, classNames.singleSelection, classNames.disabled, classNames.chipWrapper, classNames.iconWrapper,\r\n classNames.active, classNames.focused].concat(this.cssClass.toString().split(' ').filter(function (css) { return css; })));\r\n this.removeMultipleAttributes(['tabindex', 'role', 'aria-label', 'aria-multiselectable'], this.element);\r\n this.wireEvent(true);\r\n this.rippleFunction();\r\n _super.prototype.destroy.call(this);\r\n this.element.innerHTML = '';\r\n this.element.innerText = this.innerText;\r\n };\r\n ChipList.prototype.removeMultipleAttributes = function (attributes, element) {\r\n attributes.forEach(function (attr) {\r\n element.removeAttribute(attr);\r\n });\r\n };\r\n ChipList.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n ChipList.prototype.getModuleName = function () {\r\n return 'chip-list';\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @returns void\r\n * @private\r\n */\r\n ChipList.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var property;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'chips':\r\n case 'text':\r\n case 'avatarText':\r\n case 'avatarIconCss':\r\n case 'leadingIconCss':\r\n case 'trailingIconCss':\r\n case 'selection':\r\n case 'enableDelete':\r\n case 'enabled':\r\n this.refresh();\r\n break;\r\n case 'cssClass':\r\n if (!this.chipType()) {\r\n removeClass([this.element], oldProp.cssClass.toString().split(' ').filter(function (css) { return css; }));\r\n addClass([this.element], newProp.cssClass.toString().split(' ').filter(function (css) { return css; }));\r\n }\r\n else {\r\n this.refresh();\r\n }\r\n break;\r\n case 'selectedChips':\r\n removeClass(this.element.querySelectorAll('.e-active'), 'e-active');\r\n if (this.selection === 'Multiple') {\r\n this.multiSelectedChip = [];\r\n this.multiSelection(newProp.selectedChips);\r\n this.onSelect(this.multiSelectedChip, true, property);\r\n this.updateSelectedChips();\r\n }\r\n else {\r\n this.onSelect(newProp.selectedChips, true, property);\r\n }\r\n break;\r\n case 'enableRtl':\r\n this.setRtl();\r\n break;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property([])\r\n ], ChipList.prototype, \"chips\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"avatarText\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"avatarIconCss\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"leadingIconCss\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"trailingIconCss\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"leadingIconUrl\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"trailingIconUrl\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ChipList.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ChipList.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property([])\r\n ], ChipList.prototype, \"selectedChips\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], ChipList.prototype, \"selection\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ChipList.prototype, \"enableDelete\", void 0);\r\n __decorate([\r\n Event()\r\n ], ChipList.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], ChipList.prototype, \"click\", void 0);\r\n __decorate([\r\n Event()\r\n ], ChipList.prototype, \"beforeClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], ChipList.prototype, \"delete\", void 0);\r\n ChipList = __decorate([\r\n NotifyPropertyChanges\r\n ], ChipList);\r\n return ChipList;\r\n}(Component));\r\nexport { ChipList };\r\n","/**\n * Represents ChipList `Chip` model class.\n */\nvar Chip = /** @class */ (function () {\n function Chip() {\n }\n return Chip;\n}());\nexport { Chip };\n","/**\n * Chip modules\n */\nexport * from './chip-list';\nexport * from './chip';\n","import { detach, getUniqueID, rippleEffect, setValue, attributes } from '@syncfusion/ej2-base';\r\nimport { getValue, addClass, deleteObject } from '@syncfusion/ej2-base';\r\n/**\r\n * Initialize wrapper element for angular.\r\n *\r\n * @private\r\n *\r\n * @param {CreateElementArgs} createElement - Specifies created element args\r\n * @param {string} tag - Specifies tag name\r\n * @param {string} type - Specifies type name\r\n * @param {HTMLInputElement} element - Specifies input element\r\n * @param {string} WRAPPER - Specifies wrapper element\r\n * @param {string} role - Specifies role\r\n * @returns {HTMLInputElement} - Input Element\r\n */\r\nexport function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) {\r\n var input = element;\r\n if (element.tagName === tag) {\r\n var ejInstance = getValue('ej2_instances', element);\r\n input = createElement('input', { attrs: { 'type': type } });\r\n var props = ['change', 'cssClass', 'label', 'labelPosition', 'id'];\r\n for (var index = 0, len = element.attributes.length; index < len; index++) {\r\n if (props.indexOf(element.attributes[index].nodeName) === -1) {\r\n input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue);\r\n }\r\n }\r\n attributes(element, { 'class': WRAPPER, 'role': role, 'aria-checked': 'false' });\r\n element.appendChild(input);\r\n setValue('ej2_instances', ejInstance, input);\r\n deleteObject(element, 'ej2_instances');\r\n }\r\n return input;\r\n}\r\n/**\r\n * Get the text node.\r\n *\r\n * @param {HTMLElement} element - Specifies html element\r\n * @private\r\n * @returns {Node} - Text node.\r\n */\r\nexport function getTextNode(element) {\r\n var node;\r\n var childnode = element.childNodes;\r\n for (var i = 0; i < childnode.length; i++) {\r\n node = childnode[i];\r\n if (node.nodeType === 3) {\r\n return node;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Destroy the button components.\r\n *\r\n * @private\r\n * @param {Switch | CheckBox} ejInst - Specifies eJ2 Instance\r\n * @param {Element} wrapper - Specifies wrapper element\r\n * @param {string} tagName - Specifies tag name\r\n * @returns {void}\r\n */\r\nexport function destroy(ejInst, wrapper, tagName) {\r\n if (tagName === 'INPUT') {\r\n wrapper.parentNode.insertBefore(ejInst.element, wrapper);\r\n detach(wrapper);\r\n ejInst.element.checked = false;\r\n ['name', 'value', 'disabled'].forEach(function (key) {\r\n ejInst.element.removeAttribute(key);\r\n });\r\n }\r\n else {\r\n ['role', 'aria-checked', 'class'].forEach(function (key) {\r\n wrapper.removeAttribute(key);\r\n });\r\n wrapper.innerHTML = '';\r\n }\r\n}\r\n/**\r\n * Initialize control pre rendering.\r\n *\r\n * @private\r\n * @param {Switch | CheckBox} proxy - Specifies proxy\r\n * @param {string} control - Specifies control\r\n * @param {string} wrapper - Specifies wrapper element\r\n * @param {HTMLInputElement} element - Specifies input element\r\n * @param {string} moduleName - Specifies module name\r\n * @returns {void}\r\n */\r\nexport function preRender(proxy, control, wrapper, element, moduleName) {\r\n element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName);\r\n proxy.element = element;\r\n if (proxy.element.getAttribute('type') !== 'checkbox') {\r\n proxy.element.setAttribute('type', 'checkbox');\r\n }\r\n if (!proxy.element.id) {\r\n proxy.element.id = getUniqueID('e-' + moduleName);\r\n }\r\n}\r\n/**\r\n * Creates CheckBox component UI with theming and ripple support.\r\n *\r\n * @private\r\n * @param {CreateElementArgs} createElement - Specifies Created Element args\r\n * @param {boolean} enableRipple - Specifies ripple effect\r\n * @param {CheckBoxUtilModel} options - Specifies Checkbox util Model\r\n * @returns {Element} - Checkbox Element\r\n */\r\nexport function createCheckBox(createElement, enableRipple, options) {\r\n if (enableRipple === void 0) { enableRipple = false; }\r\n if (options === void 0) { options = {}; }\r\n var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' });\r\n if (options.cssClass) {\r\n addClass([wrapper], options.cssClass.split(' '));\r\n }\r\n if (options.enableRtl) {\r\n wrapper.classList.add('e-rtl');\r\n }\r\n if (enableRipple) {\r\n var rippleSpan = createElement('span', { className: 'e-ripple-container' });\r\n rippleEffect(rippleSpan, { isCenterRipple: true, duration: 400 });\r\n wrapper.appendChild(rippleSpan);\r\n }\r\n var frameSpan = createElement('span', { className: 'e-frame e-icons' });\r\n if (options.checked) {\r\n frameSpan.classList.add('e-check');\r\n }\r\n wrapper.appendChild(frameSpan);\r\n if (options.label) {\r\n var labelSpan = createElement('span', { className: 'e-label' });\r\n if (options.disableHtmlEncode) {\r\n labelSpan.textContent = options.label;\r\n }\r\n else {\r\n labelSpan.innerHTML = options.label;\r\n }\r\n wrapper.appendChild(labelSpan);\r\n }\r\n return wrapper;\r\n}\r\n/**\r\n * Handles ripple mouse.\r\n *\r\n * @private\r\n * @param {MouseEvent} e - Specifies mouse event\r\n * @param {Element} rippleSpan - Specifies Ripple span element\r\n * @returns {void}\r\n */\r\nexport function rippleMouseHandler(e, rippleSpan) {\r\n if (rippleSpan) {\r\n var event_1 = document.createEvent('MouseEvents');\r\n event_1.initEvent(e.type, false, true);\r\n rippleSpan.dispatchEvent(event_1);\r\n }\r\n}\r\n/**\r\n * Append hidden input to given element\r\n *\r\n * @private\r\n * @param {Switch | CheckBox} proxy - Specifies Proxy\r\n * @param {Element} wrap - Specifies Wrapper ELement\r\n * @returns {void}\r\n */\r\nexport function setHiddenInput(proxy, wrap) {\r\n if (proxy.element.getAttribute('ejs-for')) {\r\n wrap.appendChild(proxy.createElement('input', {\r\n attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' }\r\n }));\r\n }\r\n}\r\n","/**\n * Common modules\n */\nexport * from './common';\n","/**\n * Button all modules\n */\nexport * from './common/index';\nexport * from './button/index';\nexport * from './check-box/index';\nexport * from './radio-button/index';\nexport * from './switch/index';\nexport * from './chips/index';\n","/**\n * RadioButton modules\n */\nexport * from './radio-button';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, rippleEffect, NotifyPropertyChanges, Property, closest } from '@syncfusion/ej2-base';\r\nimport { addClass, getInstance, getUniqueID, isRippleEnabled, removeClass, attributes, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { detach, Event, EventHandler, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { wrapperInitialize, rippleMouseHandler } from './../common/common';\r\nvar LABEL = 'e-label';\r\nvar RIPPLE = 'e-ripple-container';\r\nvar RTL = 'e-rtl';\r\nvar WRAPPER = 'e-radio-wrapper';\r\nvar ATTRIBUTES = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\r\n/**\r\n * The RadioButton is a graphical user interface element that allows you to select one option from the choices.\r\n * It contains checked and unchecked states.\r\n * ```html\r\n * \r\n * \r\n * ```\r\n */\r\nvar RadioButton = /** @class */ (function (_super) {\r\n __extends(RadioButton, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @private\r\n * @param {RadioButtonModel} options - Specifies Radio button model\r\n * @param {string | HTMLInputElement} element - Specifies target element\r\n */\r\n function RadioButton(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isFocused = false;\r\n return _this;\r\n }\r\n RadioButton_1 = RadioButton;\r\n RadioButton.prototype.changeHandler = function (event) {\r\n this.checked = true;\r\n this.dataBind();\r\n var value = this.element.getAttribute('value');\r\n value = this.isVue && value ? this.element.value : this.value;\r\n this.trigger('change', { value: value, event: event });\r\n if (this.tagName === 'EJS-RADIOBUTTON') {\r\n event.stopPropagation();\r\n }\r\n };\r\n RadioButton.prototype.updateChange = function () {\r\n var input;\r\n var instance;\r\n var radioGrp = this.getRadioGroup();\r\n for (var i = 0; i < radioGrp.length; i++) {\r\n input = radioGrp[i];\r\n if (input !== this.element) {\r\n instance = getInstance(input, RadioButton_1);\r\n instance.checked = false;\r\n if (this.tagName === 'EJS-RADIOBUTTON') {\r\n instance.angularValue = this.value;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.destroy = function () {\r\n var _this = this;\r\n var radioWrap = this.element.parentElement;\r\n _super.prototype.destroy.call(this);\r\n if (!this.disabled) {\r\n this.unWireEvents();\r\n }\r\n if (this.tagName === 'INPUT') {\r\n if (radioWrap.parentNode) {\r\n radioWrap.parentNode.insertBefore(this.element, radioWrap);\r\n }\r\n detach(radioWrap);\r\n this.element.checked = false;\r\n ['name', 'value', 'disabled'].forEach(function (key) {\r\n _this.element.removeAttribute(key);\r\n });\r\n }\r\n else {\r\n ['role', 'aria-checked', 'class'].forEach(function (key) {\r\n radioWrap.removeAttribute(key);\r\n });\r\n radioWrap.innerHTML = '';\r\n }\r\n };\r\n RadioButton.prototype.focusHandler = function () {\r\n this.isFocused = true;\r\n };\r\n RadioButton.prototype.focusOutHandler = function () {\r\n var label = this.getLabel();\r\n if (label) {\r\n label.classList.remove('e-focus');\r\n }\r\n };\r\n RadioButton.prototype.getModuleName = function () {\r\n return 'radio';\r\n };\r\n /**\r\n * To get the value of selected radio button in a group.\r\n *\r\n * @method getSelectedValue\r\n * @returns {string} - Selected Value\r\n */\r\n RadioButton.prototype.getSelectedValue = function () {\r\n var input;\r\n var radioGrp = this.getRadioGroup();\r\n for (var i = 0, len = radioGrp.length; i < len; i++) {\r\n input = radioGrp[i];\r\n if (input.checked) {\r\n return input.value;\r\n }\r\n }\r\n return '';\r\n };\r\n RadioButton.prototype.getRadioGroup = function () {\r\n return document.querySelectorAll('input.e-radio[name=\"' + this.element.getAttribute('name') + '\"]');\r\n };\r\n /**\r\n * Gets the properties to be maintained in the persistence state.\r\n *\r\n * @private\r\n * @returns {string} - Persist Data\r\n */\r\n RadioButton.prototype.getPersistData = function () {\r\n return this.addOnPersist(['checked']);\r\n };\r\n RadioButton.prototype.getWrapper = function () {\r\n if (this.element) {\r\n return this.element.parentElement;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n RadioButton.prototype.getLabel = function () {\r\n if (this.element) {\r\n return this.element.nextElementSibling;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n RadioButton.prototype.initialize = function () {\r\n if (isNullOrUndefined(this.initialCheckedValue)) {\r\n this.initialCheckedValue = this.checked;\r\n }\r\n this.initWrapper();\r\n this.updateHtmlAttribute();\r\n if (this.name) {\r\n this.element.setAttribute('name', this.name);\r\n }\r\n var value = this.element.getAttribute('value');\r\n if (this.isVue && value && value === this.value) {\r\n this.checked = true;\r\n }\r\n if (this.isVue ? this.value && !value : this.value) {\r\n this.element.setAttribute('value', this.value);\r\n }\r\n if (this.checked) {\r\n this.element.checked = true;\r\n }\r\n if (this.disabled) {\r\n this.setDisabled();\r\n }\r\n };\r\n RadioButton.prototype.initWrapper = function () {\r\n var rippleSpan;\r\n var wrapper = this.element.parentElement;\r\n if (!wrapper.classList.contains(WRAPPER)) {\r\n wrapper = this.createElement('div', { className: WRAPPER });\r\n this.element.parentNode.insertBefore(wrapper, this.element);\r\n }\r\n var label = this.createElement('label', { attrs: { for: this.element.id } });\r\n wrapper.appendChild(this.element);\r\n wrapper.appendChild(label);\r\n if (isRippleEnabled) {\r\n rippleSpan = this.createElement('span', { className: (RIPPLE) });\r\n label.appendChild(rippleSpan);\r\n rippleEffect(rippleSpan, {\r\n duration: 400,\r\n isCenterRipple: true\r\n });\r\n }\r\n wrapper.classList.add('e-wrapper');\r\n if (this.enableRtl) {\r\n label.classList.add(RTL);\r\n }\r\n if (this.cssClass) {\r\n addClass([wrapper], this.cssClass.split(' '));\r\n }\r\n if (this.label) {\r\n this.setText(this.label);\r\n }\r\n };\r\n RadioButton.prototype.keyUpHandler = function () {\r\n if (this.isFocused) {\r\n this.getLabel().classList.add('e-focus');\r\n }\r\n };\r\n RadioButton.prototype.labelRippleHandler = function (e) {\r\n var ripple = this.getLabel().getElementsByClassName(RIPPLE)[0];\r\n rippleMouseHandler(e, ripple);\r\n };\r\n RadioButton.prototype.formResetHandler = function () {\r\n this.checked = this.initialCheckedValue;\r\n if (this.initialCheckedValue) {\r\n attributes(this.element, { 'checked': 'true' });\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changes.\r\n *\r\n * @private\r\n * @param {RadioButtonModel} newProp - Specifies New Properties\r\n * @param {RadioButtonModel} oldProp - Specifies Old Properties\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var wrap = this.getWrapper();\r\n var label = this.getLabel();\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'checked':\r\n if (newProp.checked) {\r\n this.updateChange();\r\n }\r\n this.element.checked = newProp.checked;\r\n break;\r\n case 'disabled':\r\n if (newProp.disabled) {\r\n this.setDisabled();\r\n this.unWireEvents();\r\n }\r\n else {\r\n this.element.disabled = false;\r\n this.wireEvents();\r\n }\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([wrap], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([wrap], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n label.classList.add(RTL);\r\n }\r\n else {\r\n label.classList.remove(RTL);\r\n }\r\n break;\r\n case 'label':\r\n this.setText(newProp.label);\r\n break;\r\n case 'labelPosition':\r\n if (newProp.labelPosition === 'Before') {\r\n label.classList.add('e-right');\r\n }\r\n else {\r\n label.classList.remove('e-right');\r\n }\r\n break;\r\n case 'name':\r\n this.element.setAttribute('name', newProp.name);\r\n break;\r\n case 'value':\r\n if (!isNullOrUndefined(this.htmlAttributes) && this.htmlAttributes.value) {\r\n break;\r\n }\r\n this.element.setAttribute('value', newProp.value);\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttribute();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize checked Property, Angular and React and Unique ID support.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.preRender = function () {\r\n var element = this.element;\r\n this.formElement = closest(this.element, 'form');\r\n this.tagName = this.element.tagName;\r\n element = wrapperInitialize(this.createElement, 'EJS-RADIOBUTTON', 'radio', element, WRAPPER, 'radio');\r\n this.element = element;\r\n if (this.element.getAttribute('type') !== 'radio') {\r\n this.element.setAttribute('type', 'radio');\r\n }\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('e-' + this.getModuleName());\r\n }\r\n if (this.tagName === 'EJS-RADIOBUTTON') {\r\n var formControlName = this.element.getAttribute('formcontrolname');\r\n if (formControlName) {\r\n this.setProperties({ 'name': formControlName }, true);\r\n this.element.setAttribute('name', formControlName);\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.render = function () {\r\n this.initialize();\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n this.renderComplete();\r\n };\r\n RadioButton.prototype.setDisabled = function () {\r\n this.element.disabled = true;\r\n };\r\n RadioButton.prototype.setText = function (text) {\r\n var label = this.getLabel();\r\n var textLabel = label.getElementsByClassName(LABEL)[0];\r\n if (textLabel) {\r\n textLabel.textContent = text;\r\n }\r\n else {\r\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\r\n textLabel = this.createElement('span', { className: LABEL, innerHTML: text });\r\n label.appendChild(textLabel);\r\n }\r\n if (this.labelPosition === 'Before') {\r\n this.getLabel().classList.add('e-right');\r\n }\r\n else {\r\n this.getLabel().classList.remove('e-right');\r\n }\r\n };\r\n RadioButton.prototype.updateHtmlAttribute = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (ATTRIBUTES.indexOf(key) > -1) {\r\n var wrapper = this.element.parentElement;\r\n if (key === 'class') {\r\n addClass([wrapper], this.htmlAttributes[key].split(' '));\r\n }\r\n else if (key === 'title' || key === 'style') {\r\n wrapper.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n else {\r\n this.element.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n RadioButton.prototype.unWireEvents = function () {\r\n var label = this.getLabel();\r\n EventHandler.remove(this.element, 'change', this.changeHandler);\r\n EventHandler.remove(this.element, 'focus', this.focusHandler);\r\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\r\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\r\n var rippleLabel = label.getElementsByClassName(LABEL)[0];\r\n if (rippleLabel) {\r\n EventHandler.remove(rippleLabel, 'mousedown', this.labelRippleHandler);\r\n EventHandler.remove(rippleLabel, 'mouseup', this.labelRippleHandler);\r\n }\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n };\r\n RadioButton.prototype.wireEvents = function () {\r\n var label = this.getLabel();\r\n EventHandler.add(this.element, 'change', this.changeHandler, this);\r\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\r\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\r\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\r\n var rippleLabel = label.getElementsByClassName(LABEL)[0];\r\n if (rippleLabel) {\r\n EventHandler.add(rippleLabel, 'mousedown', this.labelRippleHandler, this);\r\n EventHandler.add(rippleLabel, 'mouseup', this.labelRippleHandler, this);\r\n }\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n };\r\n /**\r\n * Click the RadioButton element\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.click = function () {\r\n this.element.click();\r\n };\r\n /**\r\n * Sets the focus to RadioButton\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n RadioButton.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n var RadioButton_1;\r\n __decorate([\r\n Event()\r\n ], RadioButton.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], RadioButton.prototype, \"created\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], RadioButton.prototype, \"checked\", void 0);\r\n __decorate([\r\n Property('')\r\n ], RadioButton.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], RadioButton.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('')\r\n ], RadioButton.prototype, \"label\", void 0);\r\n __decorate([\r\n Property('After')\r\n ], RadioButton.prototype, \"labelPosition\", void 0);\r\n __decorate([\r\n Property('')\r\n ], RadioButton.prototype, \"name\", void 0);\r\n __decorate([\r\n Property('')\r\n ], RadioButton.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], RadioButton.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property({})\r\n ], RadioButton.prototype, \"htmlAttributes\", void 0);\r\n RadioButton = RadioButton_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], RadioButton);\r\n return RadioButton;\r\n}(Component));\r\nexport { RadioButton };\r\n","/**\n * Switch modules\n */\nexport * from './switch';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, NotifyPropertyChanges, Property, closest } from '@syncfusion/ej2-base';\r\nimport { Event, EventHandler } from '@syncfusion/ej2-base';\r\nimport { addClass, isRippleEnabled, removeClass, rippleEffect, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { rippleMouseHandler, destroy, preRender, setHiddenInput } from './../common/common';\r\nvar DISABLED = 'e-switch-disabled';\r\nvar RIPPLE = 'e-ripple-container';\r\nvar RIPPLE_CHECK = 'e-ripple-check';\r\nvar RTL = 'e-rtl';\r\nvar WRAPPER = 'e-switch-wrapper';\r\nvar ACTIVE = 'e-switch-active';\r\n/**\r\n * The Switch is a graphical user interface element that allows you to toggle between checked and unchecked states.\r\n * ```html\r\n * \r\n * \r\n * ```\r\n */\r\nvar Switch = /** @class */ (function (_super) {\r\n __extends(Switch, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @private\r\n *\r\n * @param {SwitchModel} options switch model\r\n * @param {string | HTMLInputElement} element target element\r\n *\r\n */\r\n function Switch(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isFocused = false;\r\n _this.isDrag = false;\r\n return _this;\r\n }\r\n Switch.prototype.changeState = function (state) {\r\n var ariaState;\r\n var rippleSpan;\r\n var wrapper = this.getWrapper();\r\n var bar = wrapper.querySelector('.e-switch-inner');\r\n var handle = wrapper.querySelector('.e-switch-handle');\r\n if (isRippleEnabled) {\r\n rippleSpan = wrapper.getElementsByClassName(RIPPLE)[0];\r\n }\r\n if (state) {\r\n addClass([bar, handle], ACTIVE);\r\n ariaState = 'true';\r\n this.element.checked = true;\r\n this.checked = true;\r\n if (rippleSpan) {\r\n addClass([rippleSpan], [RIPPLE_CHECK]);\r\n }\r\n }\r\n else {\r\n removeClass([bar, handle], ACTIVE);\r\n ariaState = 'false';\r\n this.element.checked = false;\r\n this.checked = false;\r\n if (rippleSpan) {\r\n removeClass([rippleSpan], [RIPPLE_CHECK]);\r\n }\r\n }\r\n wrapper.setAttribute('aria-checked', ariaState);\r\n };\r\n Switch.prototype.clickHandler = function (evt) {\r\n this.isDrag = false;\r\n this.focusOutHandler();\r\n this.changeState(!this.checked);\r\n this.element.focus();\r\n var changeEventArgs = { checked: this.element.checked, event: evt };\r\n this.trigger('change', changeEventArgs);\r\n };\r\n /**\r\n * Destroys the Switch widget.\r\n *\r\n * @returns {void}\r\n */\r\n Switch.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n if (!this.disabled) {\r\n this.unWireEvents();\r\n }\r\n destroy(this, this.getWrapper(), this.tagName);\r\n };\r\n Switch.prototype.focusHandler = function () {\r\n this.isFocused = true;\r\n };\r\n Switch.prototype.focusOutHandler = function () {\r\n this.getWrapper().classList.remove('e-focus');\r\n };\r\n /**\r\n * Gets the module name.\r\n *\r\n * @private\r\n * @returns {string} - Module Name\r\n */\r\n Switch.prototype.getModuleName = function () {\r\n return 'switch';\r\n };\r\n /**\r\n * Gets the properties to be maintained in the persistence state.\r\n *\r\n * @private\r\n * @returns {string} - Persist data\r\n */\r\n Switch.prototype.getPersistData = function () {\r\n return this.addOnPersist(['checked']);\r\n };\r\n Switch.prototype.getWrapper = function () {\r\n return this.element.parentElement;\r\n };\r\n Switch.prototype.initialize = function () {\r\n if (isNullOrUndefined(this.initialSwitchCheckedValue)) {\r\n this.initialSwitchCheckedValue = this.checked;\r\n }\r\n if (this.name) {\r\n this.element.setAttribute('name', this.name);\r\n }\r\n if (this.value) {\r\n this.element.setAttribute('value', this.value);\r\n }\r\n if (this.checked) {\r\n this.changeState(true);\r\n }\r\n if (this.disabled) {\r\n this.setDisabled();\r\n }\r\n if (this.onLabel || this.offLabel) {\r\n this.setLabel(this.onLabel, this.offLabel);\r\n }\r\n };\r\n Switch.prototype.initWrapper = function () {\r\n var wrapper = this.element.parentElement;\r\n if (!wrapper.classList.contains(WRAPPER)) {\r\n wrapper = this.createElement('div', {\r\n className: WRAPPER, attrs: { 'role': 'switch', 'aria-checked': 'false' }\r\n });\r\n this.element.parentNode.insertBefore(wrapper, this.element);\r\n }\r\n var switchInner = this.createElement('span', { className: 'e-switch-inner' });\r\n var onLabel = this.createElement('span', { className: 'e-switch-on' });\r\n var offLabel = this.createElement('span', { className: 'e-switch-off' });\r\n var handle = this.createElement('span', { className: 'e-switch-handle' });\r\n wrapper.appendChild(this.element);\r\n setHiddenInput(this, wrapper);\r\n switchInner.appendChild(onLabel);\r\n switchInner.appendChild(offLabel);\r\n wrapper.appendChild(switchInner);\r\n wrapper.appendChild(handle);\r\n if (isRippleEnabled) {\r\n var rippleSpan = this.createElement('span', { className: RIPPLE });\r\n handle.appendChild(rippleSpan);\r\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\r\n }\r\n wrapper.classList.add('e-wrapper');\r\n if (this.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n if (this.cssClass) {\r\n addClass([wrapper], this.cssClass.split(' '));\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changes.\r\n *\r\n * @private\r\n * @param {SwitchModel} newProp - Specifies New Properties\r\n * @param {SwitchModel} oldProp - Specifies Old Properties\r\n * @returns {void}\r\n */\r\n Switch.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var wrapper = this.getWrapper();\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'checked':\r\n this.changeState(newProp.checked);\r\n break;\r\n case 'disabled':\r\n if (newProp.disabled) {\r\n this.setDisabled();\r\n this.unWireEvents();\r\n }\r\n else {\r\n this.element.disabled = false;\r\n wrapper.classList.remove(DISABLED);\r\n wrapper.setAttribute('aria-disabled', 'false');\r\n this.wireEvents();\r\n }\r\n break;\r\n case 'value':\r\n this.element.setAttribute('value', newProp.value);\r\n break;\r\n case 'name':\r\n this.element.setAttribute('name', newProp.name);\r\n break;\r\n case 'onLabel':\r\n case 'offLabel':\r\n this.setLabel(newProp.onLabel, newProp.offLabel);\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n else {\r\n wrapper.classList.remove(RTL);\r\n }\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([wrapper], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([wrapper], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize Angular, React and Unique ID support.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Switch.prototype.preRender = function () {\r\n var element = this.element;\r\n this.formElement = closest(this.element, 'form');\r\n this.tagName = this.element.tagName;\r\n preRender(this, 'EJS-SWITCH', WRAPPER, element, this.getModuleName());\r\n };\r\n /**\r\n * Initialize control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Switch.prototype.render = function () {\r\n this.initWrapper();\r\n this.initialize();\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n this.renderComplete();\r\n };\r\n Switch.prototype.rippleHandler = function (e) {\r\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\r\n rippleMouseHandler(e, rippleSpan);\r\n if (e.type === 'mousedown' && e.currentTarget.classList.contains('e-switch-wrapper') && e.which === 1) {\r\n this.isDrag = true;\r\n this.isFocused = false;\r\n }\r\n };\r\n Switch.prototype.rippleTouchHandler = function (eventType) {\r\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\r\n if (rippleSpan) {\r\n var event_1 = document.createEvent('MouseEvents');\r\n event_1.initEvent(eventType, false, true);\r\n rippleSpan.dispatchEvent(event_1);\r\n }\r\n };\r\n Switch.prototype.setDisabled = function () {\r\n var wrapper = this.getWrapper();\r\n this.element.disabled = true;\r\n wrapper.classList.add(DISABLED);\r\n wrapper.setAttribute('aria-disabled', 'true');\r\n };\r\n Switch.prototype.setLabel = function (onText, offText) {\r\n var wrapper = this.getWrapper();\r\n if (onText) {\r\n wrapper.querySelector('.e-switch-on').textContent = onText;\r\n }\r\n if (offText) {\r\n wrapper.querySelector('.e-switch-off').textContent = offText;\r\n }\r\n };\r\n Switch.prototype.switchFocusHandler = function () {\r\n if (this.isFocused) {\r\n this.getWrapper().classList.add('e-focus');\r\n }\r\n };\r\n Switch.prototype.switchMouseUp = function (e) {\r\n var target = e.target;\r\n if (e.type === 'touchmove') {\r\n e.preventDefault();\r\n }\r\n if (e.type === 'touchstart') {\r\n this.isDrag = true;\r\n this.rippleTouchHandler('mousedown');\r\n }\r\n if (this.isDrag) {\r\n if ((e.type === 'mouseup' && target.className.indexOf('e-switch') < 0) || e.type === 'touchend') {\r\n this.clickHandler(e);\r\n this.rippleTouchHandler('mouseup');\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n Switch.prototype.formResetHandler = function () {\r\n this.checked = this.initialSwitchCheckedValue;\r\n this.element.checked = this.initialSwitchCheckedValue;\r\n };\r\n /**\r\n * Toggle the Switch component state into checked/unchecked.\r\n *\r\n * @returns {void}\r\n */\r\n Switch.prototype.toggle = function () {\r\n this.clickHandler();\r\n };\r\n Switch.prototype.wireEvents = function () {\r\n var wrapper = this.getWrapper();\r\n this.delegateMouseUpHandler = this.switchMouseUp.bind(this);\r\n this.delegateKeyUpHandler = this.switchFocusHandler.bind(this);\r\n EventHandler.add(wrapper, 'click', this.clickHandler, this);\r\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\r\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\r\n EventHandler.add(this.element, 'mouseup', this.delegateMouseUpHandler, this);\r\n EventHandler.add(this.element, 'keyup', this.delegateKeyUpHandler, this);\r\n EventHandler.add(wrapper, 'mousedown mouseup', this.rippleHandler, this);\r\n EventHandler.add(wrapper, 'touchstart touchmove touchend', this.switchMouseUp, this);\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n };\r\n Switch.prototype.unWireEvents = function () {\r\n var wrapper = this.getWrapper();\r\n EventHandler.remove(wrapper, 'click', this.clickHandler);\r\n EventHandler.remove(this.element, 'focus', this.focusHandler);\r\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\r\n EventHandler.remove(this.element, 'mouseup', this.delegateMouseUpHandler);\r\n EventHandler.remove(this.element, 'keyup', this.delegateKeyUpHandler);\r\n EventHandler.remove(wrapper, 'mousedown mouseup', this.rippleHandler);\r\n EventHandler.remove(wrapper, 'touchstart touchmove touchend', this.switchMouseUp);\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n };\r\n /**\r\n * Click the switch element\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n Switch.prototype.click = function () {\r\n this.element.click();\r\n };\r\n /**\r\n * Sets the focus to Switch\r\n * its native method\r\n *\r\n * @public\r\n */\r\n Switch.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Event()\r\n ], Switch.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], Switch.prototype, \"created\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Switch.prototype, \"checked\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Switch.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Switch.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Switch.prototype, \"name\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Switch.prototype, \"onLabel\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Switch.prototype, \"offLabel\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Switch.prototype, \"value\", void 0);\r\n Switch = __decorate([\r\n NotifyPropertyChanges\r\n ], Switch);\r\n return Switch;\r\n}(Component));\r\nexport { Switch };\r\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, Internationalization } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, L10n } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { cldrData, getDefaultDateObject, rippleEffect } from '@syncfusion/ej2-base';\r\nimport { removeClass, detach, closest, addClass, attributes } from '@syncfusion/ej2-base';\r\nimport { getValue, getUniqueID, extend, Browser, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { Property, Event, isNullOrUndefined, throwError } from '@syncfusion/ej2-base';\r\n//class constant defination.\r\nvar OTHERMONTH = 'e-other-month';\r\nvar OTHERDECADE = 'e-other-year';\r\nvar ROOT = 'e-calendar';\r\nvar DEVICE = 'e-device';\r\nvar HEADER = 'e-header';\r\nvar RTL = 'e-rtl';\r\nvar CONTENT = 'e-content';\r\nvar YEAR = 'e-year';\r\nvar MONTH = 'e-month';\r\nvar DECADE = 'e-decade';\r\nvar ICON = 'e-icons';\r\nvar PREVICON = 'e-prev';\r\nvar NEXTICON = 'e-next';\r\nvar PREVSPAN = 'e-date-icon-prev';\r\nvar NEXTSPAN = 'e-date-icon-next ';\r\nvar ICONCONTAINER = 'e-icon-container';\r\nvar DISABLED = 'e-disabled';\r\nvar OVERLAY = 'e-overlay';\r\nvar WEEKEND = 'e-weekend';\r\nvar WEEKNUMBER = 'e-week-number';\r\nvar SELECTED = 'e-selected';\r\nvar FOCUSEDDATE = 'e-focused-date';\r\nvar OTHERMONTHROW = 'e-month-hide';\r\nvar TODAY = 'e-today';\r\nvar TITLE = 'e-title';\r\nvar LINK = 'e-day';\r\nvar CELL = 'e-cell';\r\nvar WEEKHEADER = 'e-week-header';\r\nvar ZOOMIN = 'e-zoomin';\r\nvar FOOTER = 'e-footer-container';\r\nvar BTN = 'e-btn';\r\nvar FLAT = 'e-flat';\r\nvar CSS = 'e-css';\r\nvar PRIMARY = 'e-primary';\r\nvar DAYHEADERLONG = 'e-calendar-day-header-lg';\r\nvar dayMilliSeconds = 86400000;\r\nvar minutesMilliSeconds = 60000;\r\nvar MaskPlaceholder = /** @class */ (function (_super) {\r\n __extends(MaskPlaceholder, _super);\r\n function MaskPlaceholder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('day')\r\n ], MaskPlaceholder.prototype, \"day\", void 0);\r\n __decorate([\r\n Property('month')\r\n ], MaskPlaceholder.prototype, \"month\", void 0);\r\n __decorate([\r\n Property('year')\r\n ], MaskPlaceholder.prototype, \"year\", void 0);\r\n __decorate([\r\n Property('hour')\r\n ], MaskPlaceholder.prototype, \"hour\", void 0);\r\n __decorate([\r\n Property('minute')\r\n ], MaskPlaceholder.prototype, \"minute\", void 0);\r\n __decorate([\r\n Property('second')\r\n ], MaskPlaceholder.prototype, \"second\", void 0);\r\n __decorate([\r\n Property('day of the week')\r\n ], MaskPlaceholder.prototype, \"dayOfTheWeek\", void 0);\r\n return MaskPlaceholder;\r\n}(ChildProperty));\r\nexport { MaskPlaceholder };\r\n/**\r\n *\r\n * @private\r\n */\r\nvar CalendarBase = /** @class */ (function (_super) {\r\n __extends(CalendarBase, _super);\r\n /**\r\n * Initialized new instance of Calendar Class.\r\n * Constructor for creating the widget\r\n *\r\n * @param {CalendarBaseModel} options - Specifies the CalendarBase model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function CalendarBase(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.effect = '';\r\n _this.isPopupClicked = false;\r\n _this.isDateSelected = true;\r\n _this.isTodayClicked = false;\r\n _this.preventChange = false;\r\n _this.isAngular = false;\r\n return _this;\r\n }\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n CalendarBase.prototype.render = function () {\r\n this.rangeValidation(this.min, this.max);\r\n this.calendarEleCopy = this.element.cloneNode(true);\r\n if (this.calendarMode === 'Islamic') {\r\n if (+(this.min.setSeconds(0)) === +new Date(1900, 0, 1, 0, 0, 0)) {\r\n this.min = new Date(1944, 2, 18);\r\n }\r\n if (+this.max === +new Date(2099, 11, 31)) {\r\n this.max = new Date(2069, 10, 16);\r\n }\r\n }\r\n this.globalize = new Internationalization(this.locale);\r\n if (isNullOrUndefined(this.firstDayOfWeek) || this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\r\n this.setProperties({ firstDayOfWeek: this.globalize.getFirstDayOfWeek() }, true);\r\n }\r\n this.todayDisabled = false;\r\n this.todayDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.classList.add(ROOT);\r\n if (this.enableRtl) {\r\n this.element.classList.add(RTL);\r\n }\r\n if (Browser.isDevice) {\r\n this.element.classList.add(DEVICE);\r\n }\r\n attributes(this.element, {\r\n 'data-role': 'calendar'\r\n });\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.calendarElement = this.createElement('div');\r\n this.calendarElement.classList.add(ROOT);\r\n if (this.enableRtl) {\r\n this.calendarElement.classList.add(RTL);\r\n }\r\n if (Browser.isDevice) {\r\n this.calendarElement.classList.add(DEVICE);\r\n }\r\n attributes(this.calendarElement, {\r\n 'role': 'calendar'\r\n });\r\n }\r\n this.createHeader();\r\n this.createContent();\r\n this.wireEvents();\r\n };\r\n CalendarBase.prototype.rangeValidation = function (min, max) {\r\n if (isNullOrUndefined(min)) {\r\n this.setProperties({ min: new Date(1900, 0, 1) }, true);\r\n }\r\n if (isNullOrUndefined(max)) {\r\n this.setProperties({ max: new Date(2099, 11, 31) }, true);\r\n }\r\n };\r\n CalendarBase.prototype.getDefaultKeyConfig = function () {\r\n this.defaultKeyConfigs = {\r\n controlUp: 'ctrl+38',\r\n controlDown: 'ctrl+40',\r\n moveDown: 'downarrow',\r\n moveUp: 'uparrow',\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n select: 'enter',\r\n home: 'home',\r\n end: 'end',\r\n pageUp: 'pageup',\r\n pageDown: 'pagedown',\r\n shiftPageUp: 'shift+pageup',\r\n shiftPageDown: 'shift+pagedown',\r\n controlHome: 'ctrl+home',\r\n controlEnd: 'ctrl+end',\r\n altUpArrow: 'alt+uparrow',\r\n spacebar: 'space',\r\n altRightArrow: 'alt+rightarrow',\r\n altLeftArrow: 'alt+leftarrow'\r\n };\r\n return this.defaultKeyConfigs;\r\n };\r\n CalendarBase.prototype.validateDate = function (value) {\r\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(this.min))) }, true);\r\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(this.max))) }, true);\r\n this.currentDate = this.currentDate ? this.currentDate : new Date(new Date().setHours(0, 0, 0, 0));\r\n if (!isNullOrUndefined(value) && this.min <= this.max && value >= this.min && value <= this.max) {\r\n this.currentDate = new Date(this.checkValue(value));\r\n }\r\n };\r\n CalendarBase.prototype.setOverlayIndex = function (popupWrapper, popupElement, modal, isDevice) {\r\n if (isDevice && !isNullOrUndefined(popupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\r\n var index = parseInt(popupElement.style.zIndex, 10) ? parseInt(popupElement.style.zIndex, 10) : 1000;\r\n modal.style.zIndex = (index - 1).toString();\r\n popupWrapper.style.zIndex = index.toString();\r\n }\r\n };\r\n CalendarBase.prototype.minMaxUpdate = function (value) {\r\n if (!(+this.min <= +this.max)) {\r\n this.setProperties({ min: this.min }, true);\r\n addClass([this.element], OVERLAY);\r\n }\r\n else {\r\n removeClass([this.element], OVERLAY);\r\n }\r\n this.min = isNullOrUndefined(this.min) || !(+this.min) ? this.min = new Date(1900, 0, 1) : this.min;\r\n this.max = isNullOrUndefined(this.max) || !(+this.max) ? this.max = new Date(2099, 11, 31) : this.max;\r\n if (+this.min <= +this.max && value && +value <= +this.max && +value >= +this.min) {\r\n this.currentDate = new Date(this.checkValue(value));\r\n }\r\n else {\r\n if (+this.min <= +this.max && !value && +this.currentDate > +this.max) {\r\n this.currentDate = new Date(this.checkValue(this.max));\r\n }\r\n else {\r\n if (+this.currentDate < +this.min) {\r\n this.currentDate = new Date(this.checkValue(this.min));\r\n }\r\n }\r\n }\r\n };\r\n CalendarBase.prototype.createHeader = function () {\r\n var ariaPrevAttrs = {\r\n 'aria-disabled': 'false',\r\n 'aria-label': 'previous month'\r\n };\r\n var ariaNextAttrs = {\r\n 'aria-disabled': 'false',\r\n 'aria-label': 'next month'\r\n };\r\n var ariaTitleAttrs = {\r\n 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title'\r\n };\r\n this.headerElement = this.createElement('div', { className: HEADER });\r\n var iconContainer = this.createElement('div', { className: ICONCONTAINER });\r\n this.previousIcon = this.createElement('button', { className: '' + PREVICON, attrs: { type: 'button' } });\r\n rippleEffect(this.previousIcon, {\r\n duration: 400,\r\n selector: '.e-prev',\r\n isCenterRipple: true\r\n });\r\n attributes(this.previousIcon, ariaPrevAttrs);\r\n this.nextIcon = this.createElement('button', { className: '' + NEXTICON, attrs: { type: 'button' } });\r\n rippleEffect(this.nextIcon, {\r\n selector: '.e-next',\r\n duration: 400,\r\n isCenterRipple: true\r\n });\r\n attributes(this.nextIcon, ariaNextAttrs);\r\n this.headerTitleElement = this.createElement('div', { className: '' + LINK + ' ' + TITLE });\r\n attributes(this.headerTitleElement, ariaTitleAttrs);\r\n this.headerElement.appendChild(this.headerTitleElement);\r\n this.previousIcon.appendChild(this.createElement('span', { className: '' + PREVSPAN + ' ' + ICON }));\r\n this.nextIcon.appendChild(this.createElement('span', { className: '' + NEXTSPAN + ' ' + ICON }));\r\n iconContainer.appendChild(this.previousIcon);\r\n iconContainer.appendChild(this.nextIcon);\r\n this.headerElement.appendChild(iconContainer);\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.appendChild(this.headerElement);\r\n }\r\n else {\r\n this.calendarElement.appendChild(this.headerElement);\r\n }\r\n this.adjustLongHeaderSize();\r\n };\r\n CalendarBase.prototype.createContent = function () {\r\n this.contentElement = this.createElement('div', { className: CONTENT });\r\n this.table = this.createElement('table', { attrs: { tabIndex: '0', 'role': 'grid', 'aria-activedescendant': '' } });\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.appendChild(this.contentElement);\r\n }\r\n else {\r\n this.calendarElement.appendChild(this.contentElement);\r\n }\r\n this.contentElement.appendChild(this.table);\r\n this.createContentHeader();\r\n this.createContentBody();\r\n if (this.showTodayButton) {\r\n this.createContentFooter();\r\n }\r\n };\r\n CalendarBase.prototype.getCultureValues = function () {\r\n var culShortNames = [];\r\n var cldrObj;\r\n var dayFormat = 'days.stand-alone.' + this.dayHeaderFormat.toLowerCase();\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrObj = (getValue(dayFormat, getDefaultDateObject()));\r\n }\r\n else {\r\n cldrObj = (this.getCultureObjects(cldrData, '' + this.locale));\r\n }\r\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\r\n var obj = _a[_i];\r\n culShortNames.push(getValue(obj, cldrObj));\r\n }\r\n return culShortNames;\r\n };\r\n CalendarBase.prototype.toCapitalize = function (text) {\r\n return !isNullOrUndefined(text) && text.length ? text[0].toUpperCase() + text.slice(1) : text;\r\n };\r\n CalendarBase.prototype.createContentHeader = function () {\r\n if (this.getModuleName() === 'calendar') {\r\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content .e-week-header')[0])) {\r\n detach(this.element.querySelectorAll('.e-content .e-week-header')[0]);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0])) {\r\n detach(this.calendarElement.querySelectorAll('.e-content .e-week-header')[0]);\r\n }\r\n }\r\n var daysCount = 6;\r\n var html = '';\r\n if (this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\r\n this.setProperties({ firstDayOfWeek: 0 }, true);\r\n }\r\n this.tableHeadElement = this.createElement('thead', { className: WEEKHEADER });\r\n if (this.weekNumber) {\r\n html += '';\r\n if (this.getModuleName() === 'calendar') {\r\n addClass([this.element], '' + WEEKNUMBER);\r\n }\r\n else {\r\n addClass([this.calendarElement], '' + WEEKNUMBER);\r\n }\r\n }\r\n // eslint-disable-next-line max-len\r\n var shortNames = this.shiftArray(((this.getCultureValues().length > 0 && this.getCultureValues())), this.firstDayOfWeek);\r\n for (var days = 0; days <= daysCount; days++) {\r\n html += '' + this.toCapitalize(shortNames[days]) + '';\r\n }\r\n html = '' + html + '';\r\n this.tableHeadElement.innerHTML = html;\r\n this.table.appendChild(this.tableHeadElement);\r\n };\r\n CalendarBase.prototype.createContentBody = function () {\r\n if (this.getModuleName() === 'calendar') {\r\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content tbody')[0])) {\r\n detach(this.element.querySelectorAll('.e-content tbody')[0]);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content tbody')[0])) {\r\n detach(this.calendarElement.querySelectorAll('.e-content tbody')[0]);\r\n }\r\n }\r\n switch (this.start) {\r\n case 'Year':\r\n this.renderYears();\r\n break;\r\n case 'Decade':\r\n this.renderDecades();\r\n break;\r\n default:\r\n this.renderMonths();\r\n }\r\n };\r\n CalendarBase.prototype.updateFooter = function () {\r\n this.todayElement.textContent = this.l10.getConstant('today');\r\n this.todayElement.setAttribute('aria-label', this.l10.getConstant('today'));\r\n };\r\n CalendarBase.prototype.createContentFooter = function () {\r\n if (this.showTodayButton) {\r\n var minimum = new Date(+this.min);\r\n var maximum = new Date(+this.max);\r\n var l10nLocale = { today: 'Today' };\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10 = new L10n(this.getModuleName(), l10nLocale, this.locale);\r\n this.todayElement = this.createElement('button', { attrs: { role: 'button' } });\r\n rippleEffect(this.todayElement);\r\n this.updateFooter();\r\n addClass([this.todayElement], [BTN, TODAY, FLAT, PRIMARY, CSS]);\r\n if ((!(+new Date(minimum.setHours(0, 0, 0, 0)) <= +this.todayDate &&\r\n +this.todayDate <= +new Date(maximum.setHours(0, 0, 0, 0)))) || (this.todayDisabled)) {\r\n addClass([this.todayElement], DISABLED);\r\n }\r\n this.footer = this.createElement('div', { className: FOOTER });\r\n this.footer.appendChild(this.todayElement);\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.appendChild(this.footer);\r\n }\r\n if (this.getModuleName() === 'datepicker') {\r\n this.calendarElement.appendChild(this.footer);\r\n }\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.calendarElement.appendChild(this.footer);\r\n }\r\n if (!this.todayElement.classList.contains(DISABLED)) {\r\n EventHandler.add(this.todayElement, 'click', this.todayButtonClick, this);\r\n }\r\n }\r\n };\r\n CalendarBase.prototype.wireEvents = function (id, ref, keyConfig, moduleName) {\r\n EventHandler.add(this.headerTitleElement, 'click', this.navigateTitle, this);\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\r\n if (this.getModuleName() === 'calendar') {\r\n this.keyboardModule = new KeyboardEvents(this.element, {\r\n eventName: 'keydown',\r\n keyAction: this.keyActionHandle.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n }\r\n else {\r\n this.keyboardModule = new KeyboardEvents(this.calendarElement, {\r\n eventName: 'keydown',\r\n keyAction: this.keyActionHandle.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n }\r\n };\r\n CalendarBase.prototype.dateWireEvents = function (id, ref, keyConfig, moduleName) {\r\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, keyConfig);\r\n this.serverModuleName = moduleName;\r\n };\r\n CalendarBase.prototype.todayButtonClick = function (e, value, isCustomDate) {\r\n if (this.showTodayButton) {\r\n if (this.currentView() === this.depth) {\r\n this.effect = '';\r\n }\r\n else {\r\n this.effect = 'e-zoomin';\r\n }\r\n if (this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\r\n this.navigateTo(this.depth, new Date(this.checkValue(value)), isCustomDate);\r\n }\r\n else {\r\n this.navigateTo('Month', new Date(this.checkValue(value)), isCustomDate);\r\n }\r\n }\r\n };\r\n CalendarBase.prototype.resetCalendar = function () {\r\n this.calendarElement && detach(this.calendarElement);\r\n this.tableBodyElement && detach(this.tableBodyElement);\r\n this.table && detach(this.table);\r\n this.tableHeadElement && detach(this.tableHeadElement);\r\n this.nextIcon && detach(this.nextIcon);\r\n this.previousIcon && detach(this.previousIcon);\r\n this.footer && detach(this.footer);\r\n this.todayElement = null;\r\n this.renderDayCellArgs = null;\r\n this.calendarElement = this.tableBodyElement = this.footer = this.tableHeadElement = this.nextIcon = this.previousIcon = this.table = null;\r\n };\r\n CalendarBase.prototype.keyActionHandle = function (e, value, multiSelection) {\r\n var focusedDate = this.tableBodyElement.querySelector('tr td.e-focused-date');\r\n var selectedDate;\r\n if (multiSelection) {\r\n if (!isNullOrUndefined(focusedDate) && +value === parseInt(focusedDate.getAttribute('id').split('_')[0], 10)) {\r\n selectedDate = focusedDate;\r\n }\r\n else {\r\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\r\n }\r\n }\r\n else {\r\n selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\r\n }\r\n var view = this.getViewNumber(this.currentView());\r\n var depthValue = this.getViewNumber(this.depth);\r\n var levelRestrict = (view === depthValue && this.getViewNumber(this.start) >= depthValue);\r\n this.effect = '';\r\n switch (e.action) {\r\n case 'moveLeft':\r\n this.keyboardNavigate(-1, view, e, this.max, this.min);\r\n e.preventDefault();\r\n break;\r\n case 'moveRight':\r\n this.keyboardNavigate(1, view, e, this.max, this.min);\r\n e.preventDefault();\r\n break;\r\n case 'moveUp':\r\n if (view === 0) {\r\n this.keyboardNavigate(-7, view, e, this.max, this.min); // move the current date to the previous seven days.\r\n }\r\n else {\r\n this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'moveDown':\r\n if (view === 0) {\r\n this.keyboardNavigate(7, view, e, this.max, this.min);\r\n }\r\n else {\r\n this.keyboardNavigate(4, view, e, this.max, this.min);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'select':\r\n if (e.target === this.todayElement) {\r\n this.todayButtonClick(e, value);\r\n }\r\n else {\r\n var element = !isNullOrUndefined(focusedDate) ? focusedDate : selectedDate;\r\n if (!isNullOrUndefined(element) && !element.classList.contains(DISABLED)) {\r\n if (levelRestrict) {\r\n // eslint-disable-next-line radix\r\n var d = new Date(parseInt('' + (element).id, 0));\r\n this.selectDate(e, d, (element));\r\n }\r\n else {\r\n this.contentClick(null, --view, (element), value);\r\n }\r\n }\r\n }\r\n break;\r\n case 'controlUp':\r\n this.title();\r\n e.preventDefault();\r\n break;\r\n case 'controlDown':\r\n if (!isNullOrUndefined(focusedDate) || !isNullOrUndefined(selectedDate) && !levelRestrict) {\r\n this.contentClick(null, --view, (focusedDate || selectedDate), value);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'home':\r\n this.currentDate = this.firstDay(this.currentDate);\r\n detach(this.tableBodyElement);\r\n if (view === 0) {\r\n this.renderMonths(e);\r\n }\r\n else if (view === 1) {\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.renderDecades(e);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'end':\r\n this.currentDate = this.lastDay(this.currentDate, view);\r\n detach(this.tableBodyElement);\r\n if (view === 0) {\r\n this.renderMonths(e);\r\n }\r\n else if (view === 1) {\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.renderDecades(e);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'pageUp':\r\n this.addMonths(this.currentDate, -1);\r\n this.navigateTo('Month', this.currentDate);\r\n e.preventDefault();\r\n break;\r\n case 'pageDown':\r\n this.addMonths(this.currentDate, 1);\r\n this.navigateTo('Month', this.currentDate);\r\n e.preventDefault();\r\n break;\r\n case 'shiftPageUp':\r\n this.addYears(this.currentDate, -1);\r\n this.navigateTo('Month', this.currentDate);\r\n e.preventDefault();\r\n break;\r\n case 'shiftPageDown':\r\n this.addYears(this.currentDate, 1);\r\n this.navigateTo('Month', this.currentDate);\r\n e.preventDefault();\r\n break;\r\n case 'controlHome':\r\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 0, 1));\r\n e.preventDefault();\r\n break;\r\n case 'controlEnd':\r\n this.navigateTo('Month', new Date(this.currentDate.getFullYear(), 11, 31));\r\n e.preventDefault();\r\n break;\r\n }\r\n if (this.getModuleName() === 'calendar') {\r\n this.table.focus();\r\n }\r\n };\r\n CalendarBase.prototype.keyboardNavigate = function (number, currentView, e, max, min) {\r\n var date = new Date(this.checkValue(this.currentDate));\r\n switch (currentView) {\r\n case 2:\r\n this.addYears(this.currentDate, number);\r\n if (this.isMonthYearRange(this.currentDate)) {\r\n detach(this.tableBodyElement);\r\n this.renderDecades(e);\r\n }\r\n else {\r\n this.currentDate = date;\r\n }\r\n break;\r\n case 1:\r\n this.addMonths(this.currentDate, number);\r\n if (this.calendarMode === 'Gregorian') {\r\n if (this.isMonthYearRange(this.currentDate)) {\r\n detach(this.tableBodyElement);\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.currentDate = date;\r\n }\r\n }\r\n else {\r\n if (this.isMonthYearRange(this.currentDate)) {\r\n detach(this.tableBodyElement);\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.currentDate = date;\r\n }\r\n }\r\n break;\r\n case 0:\r\n this.addDay(this.currentDate, number, e, max, min);\r\n if (this.isMinMaxRange(this.currentDate)) {\r\n detach(this.tableBodyElement);\r\n this.renderMonths(e);\r\n }\r\n else {\r\n this.currentDate = date;\r\n }\r\n break;\r\n }\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @param {Date} value - Specifies value of date.\r\n * @returns {void}\r\n * @private\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CalendarBase.prototype.preRender = function (value) {\r\n var _this = this;\r\n this.navigatePreviousHandler = this.navigatePrevious.bind(this);\r\n this.navigateNextHandler = this.navigateNext.bind(this);\r\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\r\n this.navigateHandler = function (e) {\r\n _this.triggerNavigate(e);\r\n };\r\n };\r\n CalendarBase.prototype.minMaxDate = function (localDate) {\r\n var currentDate = new Date(new Date(+localDate).setHours(0, 0, 0, 0));\r\n var minDate = new Date(new Date(+this.min).setHours(0, 0, 0, 0));\r\n var maxDate = new Date(new Date(+this.max).setHours(0, 0, 0, 0));\r\n if (+currentDate === +minDate || +currentDate === +maxDate) {\r\n if (+localDate < +this.min) {\r\n localDate = new Date(+this.min);\r\n }\r\n if (+localDate > +this.max) {\r\n localDate = new Date(+this.max);\r\n }\r\n }\r\n return localDate;\r\n };\r\n CalendarBase.prototype.renderMonths = function (e, value, isCustomDate) {\r\n var numCells = this.weekNumber ? 8 : 7;\r\n var tdEles;\r\n if (this.calendarMode === 'Gregorian') {\r\n tdEles = this.renderDays(this.currentDate, value, null, null, isCustomDate);\r\n }\r\n else {\r\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\r\n }\r\n this.createContentHeader();\r\n if (this.calendarMode === 'Gregorian') {\r\n this.renderTemplate(tdEles, numCells, MONTH, e, value);\r\n }\r\n else {\r\n this.islamicModule.islamicRenderTemplate(tdEles, numCells, MONTH, e, value);\r\n }\r\n };\r\n CalendarBase.prototype.renderDays = function (currentDate, value, multiSelection, values, isTodayDate) {\r\n var tdEles = [];\r\n var cellsCount = 42;\r\n var todayDate = isTodayDate ? new Date(+currentDate) : this.getDate(new Date(), this.timezone);\r\n var localDate = new Date(this.checkValue(currentDate));\r\n var minMaxDate;\r\n var currentMonth = localDate.getMonth();\r\n this.titleUpdate(currentDate, 'days');\r\n var d = localDate;\r\n localDate = new Date(d.getFullYear(), d.getMonth(), 0, d.getHours(), d.getMinutes(), d.getSeconds(), d.getMilliseconds());\r\n while (localDate.getDay() !== this.firstDayOfWeek) {\r\n this.setStartDate(localDate, -1 * dayMilliSeconds);\r\n }\r\n for (var day = 0; day < cellsCount; ++day) {\r\n var weekEle = this.createElement('td', { className: CELL });\r\n var weekAnchor = this.createElement('span');\r\n if (day % 7 === 0 && this.weekNumber) {\r\n // 6 days are added to get Last day of the week and 3 days are added to get middle day of the week.\r\n var numberOfDays = this.weekRule === 'FirstDay' ? 6 : (this.weekRule === 'FirstFourDayWeek' ? 3 : 0);\r\n var finalDate = new Date(localDate.getFullYear(), localDate.getMonth(), (localDate.getDate() + numberOfDays));\r\n weekAnchor.textContent = '' + this.getWeek(finalDate);\r\n weekEle.appendChild(weekAnchor);\r\n addClass([weekEle], '' + WEEKNUMBER);\r\n tdEles.push(weekEle);\r\n }\r\n minMaxDate = new Date(+localDate);\r\n localDate = this.minMaxDate(localDate);\r\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full' };\r\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\r\n var tdEle = this.dayCell(localDate);\r\n var title = this.globalize.formatDate(localDate, { type: 'date', skeleton: 'full' });\r\n var dayLink = this.createElement('span');\r\n dayLink.textContent = this.globalize.formatDate(localDate, { format: 'd', type: 'date', skeleton: 'yMd' });\r\n var disabled = (this.min > localDate) || (this.max < localDate);\r\n if (disabled) {\r\n addClass([tdEle], DISABLED);\r\n addClass([tdEle], OVERLAY);\r\n }\r\n else {\r\n dayLink.setAttribute('title', '' + title);\r\n }\r\n if (currentMonth !== localDate.getMonth()) {\r\n addClass([tdEle], OTHERMONTH);\r\n }\r\n if (localDate.getDay() === 0 || localDate.getDay() === 6) {\r\n addClass([tdEle], WEEKEND);\r\n }\r\n tdEle.appendChild(dayLink);\r\n this.renderDayCellArgs = {\r\n date: localDate,\r\n isDisabled: false,\r\n element: tdEle,\r\n isOutOfRange: disabled\r\n };\r\n var argument = this.renderDayCellArgs;\r\n this.renderDayCellEvent(argument);\r\n if (argument.isDisabled) {\r\n var selectDate = new Date(this.checkValue(value));\r\n var argsDate = new Date(this.checkValue(argument.date));\r\n if (multiSelection) {\r\n if (!isNullOrUndefined(values) && values.length > 0) {\r\n for (var index = 0; index < values.length; index++) {\r\n var localDateString = +new Date(this.globalize.formatDate(argument.date, { type: 'date', skeleton: 'yMd' }));\r\n var tempDateString = +new Date(this.globalize.formatDate(values[index], { type: 'date', skeleton: 'yMd' }));\r\n if (localDateString === tempDateString) {\r\n values.splice(index, 1);\r\n index = -1;\r\n }\r\n }\r\n }\r\n }\r\n else if (selectDate && +selectDate === +argsDate) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n }\r\n if (this.renderDayCellArgs.isDisabled && !tdEle.classList.contains(SELECTED)) {\r\n addClass([tdEle], DISABLED);\r\n addClass([tdEle], OVERLAY);\r\n if (+this.renderDayCellArgs.date === +this.todayDate) {\r\n this.todayDisabled = true;\r\n }\r\n }\r\n var otherMnthBool = tdEle.classList.contains(OTHERMONTH);\r\n var disabledCls = tdEle.classList.contains(DISABLED);\r\n if (!disabledCls) {\r\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\r\n }\r\n // to set the value as null while setting the disabled date onProperty change.\r\n // if (args.isDisabled && +this.value === +args.date) {\r\n // this.setProperties({ value: null }, true);\r\n // }\r\n if (multiSelection && !isNullOrUndefined(values) && !disabledCls) {\r\n for (var tempValue = 0; tempValue < values.length; tempValue++) {\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\r\n var localDateString = this.globalize.formatDate(localDate, formatOptions);\r\n var tempDateString = this.globalize.formatDate(values[tempValue], formatOptions);\r\n if ((localDateString === tempDateString && this.getDateVal(localDate, values[tempValue]))\r\n || (this.getDateVal(localDate, value))) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n }\r\n }\r\n if (values.length <= 0) {\r\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n }\r\n }\r\n else if (!disabledCls && this.getDateVal(localDate, value)) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n this.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n if (date.getFullYear() === todayDate.getFullYear() && date.getMonth() === todayDate.getMonth()\r\n && date.getDate() === todayDate.getDate()) {\r\n addClass([tdEle], TODAY);\r\n }\r\n tdEles.push(this.renderDayCellArgs.element);\r\n localDate = new Date(+minMaxDate);\r\n this.addDay(localDate, 1, null, this.max, this.min);\r\n }\r\n return tdEles;\r\n };\r\n CalendarBase.prototype.updateFocus = function (otherMonth, disabled, localDate, tableElement, currentDate) {\r\n if (currentDate.getDate() === localDate.getDate() && !otherMonth && !disabled) {\r\n addClass([tableElement], FOCUSEDDATE);\r\n }\r\n else {\r\n // eslint-disable-next-line radix\r\n if (currentDate >= this.max && parseInt(tableElement.id, 0) === +this.max && !otherMonth && !disabled) {\r\n addClass([tableElement], FOCUSEDDATE);\r\n }\r\n // eslint-disable-next-line radix\r\n if (currentDate <= this.min && parseInt(tableElement.id, 0) === +this.min && !otherMonth && !disabled) {\r\n addClass([tableElement], FOCUSEDDATE);\r\n }\r\n }\r\n };\r\n CalendarBase.prototype.renderYears = function (e, value) {\r\n this.removeTableHeadElement();\r\n var numCells = 4;\r\n var tdEles = [];\r\n var valueUtil = isNullOrUndefined(value);\r\n var curDate = new Date(this.checkValue(this.currentDate));\r\n var mon = curDate.getMonth();\r\n var yr = curDate.getFullYear();\r\n var localDate = curDate;\r\n var curYrs = localDate.getFullYear();\r\n var minYr = new Date(this.checkValue(this.min)).getFullYear();\r\n var minMonth = new Date(this.checkValue(this.min)).getMonth();\r\n var maxYr = new Date(this.checkValue(this.max)).getFullYear();\r\n var maxMonth = new Date(this.checkValue(this.max)).getMonth();\r\n localDate.setMonth(0);\r\n this.titleUpdate(this.currentDate, 'months');\r\n localDate.setDate(1);\r\n for (var month = 0; month < 12; ++month) {\r\n var tdEle = this.dayCell(localDate);\r\n var dayLink = this.createElement('span');\r\n var localMonth = (value && (value).getMonth() === localDate.getMonth());\r\n var select = (value && (value).getFullYear() === yr && localMonth);\r\n dayLink.textContent = this.toCapitalize(this.globalize.formatDate(localDate, {\r\n format: null, type: 'dateTime', skeleton: 'MMM'\r\n }));\r\n if ((this.min && (curYrs < minYr || (month < minMonth && curYrs === minYr))) || (this.max && (curYrs > maxYr || (month > maxMonth && curYrs >= maxYr)))) {\r\n addClass([tdEle], DISABLED);\r\n }\r\n else if (!valueUtil && select) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n if (localDate.getMonth() === mon && this.currentDate.getMonth() === mon) {\r\n addClass([tdEle], FOCUSEDDATE);\r\n }\r\n }\r\n localDate.setDate(1);\r\n localDate.setMonth(localDate.getMonth() + 1);\r\n if (!tdEle.classList.contains(DISABLED)) {\r\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\r\n }\r\n tdEle.appendChild(dayLink);\r\n tdEles.push(tdEle);\r\n }\r\n this.renderTemplate(tdEles, numCells, YEAR, e, value);\r\n };\r\n CalendarBase.prototype.renderDecades = function (e, value) {\r\n this.removeTableHeadElement();\r\n var numCells = 4;\r\n var yearCell = 12;\r\n var tdEles = [];\r\n var localDate = new Date(this.checkValue(this.currentDate));\r\n localDate.setMonth(0);\r\n localDate.setDate(1);\r\n var localYr = localDate.getFullYear();\r\n var startYr = new Date(localDate.setFullYear((localYr - localYr % 10)));\r\n var endYr = new Date(localDate.setFullYear((localYr - localYr % 10 + (10 - 1))));\r\n var startFullYr = startYr.getFullYear();\r\n var endFullYr = endYr.getFullYear();\r\n var startHdrYr = this.globalize.formatDate(startYr, {\r\n format: null, type: 'dateTime', skeleton: 'y'\r\n });\r\n var endHdrYr = this.globalize.formatDate(endYr, { format: null, type: 'dateTime', skeleton: 'y' });\r\n this.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);\r\n var start = new Date(localYr - (localYr % 10) - 1, 0, 1);\r\n var startYear = start.getFullYear();\r\n for (var rowIterator = 0; rowIterator < yearCell; ++rowIterator) {\r\n var year = startYear + rowIterator;\r\n localDate.setFullYear(year);\r\n var tdEle = this.dayCell(localDate);\r\n attributes(tdEle, { 'role': 'gridcell' });\r\n var dayLink = this.createElement('span');\r\n dayLink.textContent = this.globalize.formatDate(localDate, {\r\n format: null, type: 'dateTime', skeleton: 'y'\r\n });\r\n if ((year < startFullYr) || (year > endFullYr)) {\r\n addClass([tdEle], OTHERDECADE);\r\n if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n if (year < new Date(this.checkValue(this.min)).getFullYear() ||\r\n year > new Date(this.checkValue(this.max)).getFullYear()) {\r\n addClass([tdEle], DISABLED);\r\n }\r\n }\r\n else if (year < new Date(this.checkValue(this.min)).getFullYear() ||\r\n year > new Date(this.checkValue(this.max)).getFullYear()) {\r\n addClass([tdEle], DISABLED);\r\n }\r\n else if (!isNullOrUndefined(value) && localDate.getFullYear() === (value).getFullYear()) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n if (localDate.getFullYear() === this.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {\r\n addClass([tdEle], FOCUSEDDATE);\r\n }\r\n }\r\n if (!tdEle.classList.contains(DISABLED)) {\r\n EventHandler.add(tdEle, 'click', this.clickHandler, this);\r\n }\r\n tdEle.appendChild(dayLink);\r\n tdEles.push(tdEle);\r\n }\r\n this.renderTemplate(tdEles, numCells, 'e-decade', e, value);\r\n };\r\n CalendarBase.prototype.dayCell = function (localDate) {\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var dateFormatOptions = { skeleton: 'full', type: 'dateTime', calendar: type };\r\n var date = this.globalize.parseDate(this.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\r\n var value = date.valueOf();\r\n var attrs = {\r\n className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false', 'role': 'gridcell' }\r\n };\r\n return this.createElement('td', attrs);\r\n };\r\n CalendarBase.prototype.firstDay = function (date) {\r\n var collection = this.currentView() !== 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '') :\r\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '');\r\n if (collection.length) {\r\n for (var i = 0; i < collection.length; i++) {\r\n if (!collection[i].classList.contains(DISABLED)) {\r\n // eslint-disable-next-line radix\r\n date = new Date(parseInt(collection[i].id, 0));\r\n break;\r\n }\r\n }\r\n }\r\n return date;\r\n };\r\n CalendarBase.prototype.lastDay = function (date, view) {\r\n var lastDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n if (view !== 2) {\r\n var timeOffset = Math.abs(lastDate.getTimezoneOffset() - this.firstDay(date).getTimezoneOffset());\r\n if (timeOffset) {\r\n lastDate.setHours(this.firstDay(date).getHours() + (timeOffset / 60));\r\n }\r\n return this.findLastDay(lastDate);\r\n }\r\n else {\r\n return this.findLastDay(this.firstDay(lastDate));\r\n }\r\n };\r\n CalendarBase.prototype.checkDateValue = function (value) {\r\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\r\n };\r\n CalendarBase.prototype.findLastDay = function (date) {\r\n var collection = this.currentView() === 'Decade' ? this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERDECADE + '') :\r\n this.tableBodyElement.querySelectorAll('td' + ':not(.' + OTHERMONTH + '');\r\n if (collection.length) {\r\n for (var i = collection.length - 1; i >= 0; i--) {\r\n if (!collection[i].classList.contains(DISABLED)) {\r\n // eslint-disable-next-line radix\r\n date = new Date(parseInt(collection[i].id, 0));\r\n break;\r\n }\r\n }\r\n }\r\n return date;\r\n };\r\n CalendarBase.prototype.removeTableHeadElement = function () {\r\n if (this.getModuleName() === 'calendar') {\r\n if (!isNullOrUndefined(this.element.querySelectorAll('.e-content table thead')[0])) {\r\n detach(this.tableHeadElement);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll('.e-content table thead')[0])) {\r\n detach(this.tableHeadElement);\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CalendarBase.prototype.renderTemplate = function (elements, count, classNm, e, value) {\r\n var view = this.getViewNumber(this.currentView());\r\n var trEle;\r\n this.tableBodyElement = this.createElement('tbody');\r\n this.table.appendChild(this.tableBodyElement);\r\n removeClass([this.contentElement, this.headerElement], [MONTH, DECADE, YEAR]);\r\n addClass([this.contentElement, this.headerElement], [classNm]);\r\n var weekNumCell = 41;\r\n var numberCell = 35;\r\n var otherMonthCell = 6;\r\n var row = count;\r\n var rowIterator = 0;\r\n for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {\r\n trEle = this.createElement('tr', { attrs: { 'role': 'row' } });\r\n for (rowIterator = 0 + rowIterator; rowIterator < row; rowIterator++) {\r\n if (!elements[rowIterator].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowIterator].children[0])) {\r\n addClass([elements[rowIterator].children[0]], [LINK]);\r\n rippleEffect(elements[rowIterator].children[0], {\r\n duration: 600,\r\n isCenterRipple: true\r\n });\r\n }\r\n trEle.appendChild(elements[rowIterator]);\r\n if (this.weekNumber && rowIterator === otherMonthCell + 1 && elements[otherMonthCell + 1].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n if (!this.weekNumber && rowIterator === otherMonthCell && elements[otherMonthCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n if (this.weekNumber) {\r\n if (rowIterator === weekNumCell && elements[weekNumCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n }\r\n else {\r\n if (rowIterator === numberCell && elements[numberCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n }\r\n }\r\n row = row + count;\r\n rowIterator = rowIterator + 0;\r\n this.tableBodyElement.appendChild(trEle);\r\n }\r\n this.table.querySelector('tbody').className = this.effect;\r\n if (this.calendarMode === 'Gregorian') {\r\n this.iconHandler();\r\n }\r\n else {\r\n this.islamicModule.islamicIconHandler();\r\n }\r\n if (view !== this.getViewNumber(this.currentView()) || (view === 0 && view !== this.getViewNumber(this.currentView()))) {\r\n this.navigateHandler(e);\r\n }\r\n this.setAriaActiveDescendant();\r\n };\r\n CalendarBase.prototype.clickHandler = function (e, value) {\r\n this.clickEventEmitter(e);\r\n var eve = e.currentTarget;\r\n var view = this.getViewNumber(this.currentView());\r\n if (eve.classList.contains(OTHERMONTH)) {\r\n this.contentClick(e, 0, null, value);\r\n }\r\n else if (view === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\r\n this.contentClick(e, 1, null, value);\r\n }\r\n else if (2 === view) {\r\n this.contentClick(e, 1, null, value);\r\n }\r\n else if (!eve.classList.contains(OTHERMONTH) && view === 0) {\r\n this.selectDate(e, this.getIdValue(e, null), null);\r\n }\r\n else {\r\n this.contentClick(e, 0, eve, value);\r\n }\r\n if (this.getModuleName() === 'calendar') {\r\n this.table.focus();\r\n }\r\n };\r\n // Content click event handler required for extended components\r\n CalendarBase.prototype.clickEventEmitter = function (e) {\r\n e.preventDefault();\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CalendarBase.prototype.contentClick = function (e, view, element, value) {\r\n var currentView = this.getViewNumber(this.currentView());\r\n var d = this.getIdValue(e, element);\r\n switch (view) {\r\n case 0:\r\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\r\n detach(this.tableBodyElement);\r\n this.currentDate = d;\r\n this.effect = ZOOMIN;\r\n this.renderMonths(e);\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n this.currentDate.setMonth(d.getMonth());\r\n if (d.getMonth() > 0 && this.currentDate.getMonth() !== d.getMonth()) {\r\n this.currentDate.setDate(0);\r\n }\r\n this.currentDate.setFullYear(d.getFullYear());\r\n }\r\n else {\r\n this.currentDate = d;\r\n }\r\n this.effect = ZOOMIN;\r\n detach(this.tableBodyElement);\r\n this.renderMonths(e);\r\n }\r\n break;\r\n case 1:\r\n if (currentView === this.getViewNumber(this.depth) && this.getViewNumber(this.start) >= this.getViewNumber(this.depth)) {\r\n this.selectDate(e, d, null);\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n this.currentDate.setFullYear(d.getFullYear());\r\n }\r\n else {\r\n var islamicDate = this.islamicModule.getIslamicDate(d);\r\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, islamicDate.month, 1);\r\n }\r\n this.effect = ZOOMIN;\r\n detach(this.tableBodyElement);\r\n this.renderYears(e);\r\n }\r\n }\r\n };\r\n CalendarBase.prototype.switchView = function (view, e, multiSelection, isCustomDate) {\r\n switch (view) {\r\n case 0:\r\n detach(this.tableBodyElement);\r\n this.renderMonths(e, null, isCustomDate);\r\n if (multiSelection && !isNullOrUndefined(this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0])) {\r\n this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0].classList.remove(FOCUSEDDATE);\r\n }\r\n break;\r\n case 1:\r\n detach(this.tableBodyElement);\r\n this.renderYears(e);\r\n break;\r\n case 2:\r\n detach(this.tableBodyElement);\r\n this.renderDecades(e);\r\n }\r\n };\r\n /**\r\n * To get component name\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n CalendarBase.prototype.getModuleName = function () {\r\n return 'calendar';\r\n };\r\n /**\r\n *\r\n * @returns {void}\r\n\r\n */\r\n CalendarBase.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this) {\r\n modules.push({ args: [this], member: 'islamic' });\r\n }\r\n return modules;\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the properties to be maintained upon browser refresh.\r\n *\r\n * @returns {string}\r\n */\r\n CalendarBase.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {CalendarBaseModel} newProp - Returns the dynamic property value of the component.\r\n * @param {CalendarBaseModel} oldProp - Returns the previous property value of the component.\r\n * @param {boolean} multiSelection - - Specifies whether multiple date selection is enabled or not.\r\n * @param {Date[]} values - Specifies the dates.\r\n * @returns {void}\r\n * @private\r\n */\r\n CalendarBase.prototype.onPropertyChanged = function (newProp, oldProp, multiSelection, values) {\r\n this.effect = '';\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.classList.add('e-rtl');\r\n }\r\n else {\r\n this.calendarElement.classList.add('e-rtl');\r\n }\r\n }\r\n else {\r\n if (this.getModuleName() === 'calendar') {\r\n this.element.classList.remove('e-rtl');\r\n }\r\n else {\r\n this.calendarElement.classList.remove('e-rtl');\r\n }\r\n }\r\n break;\r\n case 'dayHeaderFormat':\r\n this.getCultureValues();\r\n if (this.getModuleName() !== 'datepicker') {\r\n this.createContentHeader();\r\n }\r\n else if (this.calendarElement) {\r\n this.createContentHeader();\r\n }\r\n this.adjustLongHeaderSize();\r\n break;\r\n case 'min':\r\n case 'max':\r\n this.rangeValidation(this.min, this.max);\r\n if (prop === 'min') {\r\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(newProp.min))) }, true);\r\n }\r\n else {\r\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(newProp.max))) }, true);\r\n }\r\n this.setProperties({ start: this.currentView() }, true);\r\n if (this.tableBodyElement) {\r\n detach(this.tableBodyElement);\r\n }\r\n this.minMaxUpdate();\r\n if (multiSelection) {\r\n this.validateValues(multiSelection, values);\r\n }\r\n if (this.getModuleName() !== 'datepicker') {\r\n this.createContentBody();\r\n }\r\n else if (this.calendarElement) {\r\n this.createContentBody();\r\n }\r\n if ((this.todayDate < this.min || this.max < this.todayDate) && (this.footer) && (this.todayElement)) {\r\n detach(this.todayElement);\r\n detach(this.footer);\r\n this.todayElement = this.footer = null;\r\n this.createContentFooter();\r\n }\r\n else {\r\n if ((this.footer) && (this.todayElement) && this.todayElement.classList.contains('e-disabled')) {\r\n removeClass([this.todayElement], DISABLED);\r\n detach(this.todayElement);\r\n detach(this.footer);\r\n this.todayElement = this.footer = null;\r\n this.createContentFooter();\r\n }\r\n }\r\n break;\r\n case 'start':\r\n case 'depth':\r\n case 'weekNumber':\r\n case 'firstDayOfWeek':\r\n case 'weekRule':\r\n this.checkView();\r\n if (this.getModuleName() !== 'datepicker') {\r\n this.createContentHeader();\r\n this.createContentBody();\r\n }\r\n else if (this.calendarElement) {\r\n this.createContentHeader();\r\n this.createContentBody();\r\n }\r\n break;\r\n case 'locale':\r\n this.globalize = new Internationalization(this.locale);\r\n if (this.getModuleName() !== 'datepicker') {\r\n this.createContentHeader();\r\n this.createContentBody();\r\n }\r\n else if (this.calendarElement) {\r\n this.createContentHeader();\r\n this.createContentBody();\r\n }\r\n this.l10.setLocale(this.locale);\r\n this.updateFooter();\r\n break;\r\n case 'showTodayButton':\r\n if (newProp.showTodayButton) {\r\n this.createContentFooter();\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.todayElement) && !isNullOrUndefined(this.footer)) {\r\n detach(this.todayElement);\r\n detach(this.footer);\r\n this.todayElement = this.footer = undefined;\r\n }\r\n }\r\n this.setProperties({ showTodayButton: newProp.showTodayButton }, true);\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * values property updated with considered disabled dates of the calendar.\r\n *\r\n * @param {boolean} multiSelection - Specifies whether multiple date selection is enabled.\r\n * @param {Date[]} values - Specifies the dates to validate.\r\n * @returns {void}\r\n */\r\n CalendarBase.prototype.validateValues = function (multiSelection, values) {\r\n if (multiSelection && !isNullOrUndefined(values) && values.length > 0) {\r\n var copyValues = this.copyValues(values);\r\n for (var skipIndex = 0; skipIndex < copyValues.length; skipIndex++) {\r\n var tempValue = copyValues[skipIndex];\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var tempValueString = void 0;\r\n if (this.calendarMode === 'Gregorian') {\r\n tempValueString = this.globalize.formatDate(tempValue, { type: 'date', skeleton: 'yMd' });\r\n }\r\n else {\r\n tempValueString = this.globalize.formatDate(tempValue, { type: 'dateTime', skeleton: 'full', calendar: 'islamic' });\r\n }\r\n var minFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\r\n var minStringValue = this.globalize.formatDate(this.min, minFormatOption);\r\n var minString = minStringValue;\r\n var maxFormatOption = { type: 'date', skeleton: 'yMd', calendar: type };\r\n var maxStringValue = this.globalize.formatDate(this.max, maxFormatOption);\r\n var maxString = maxStringValue;\r\n if (+new Date(tempValueString) < +new Date(minString) ||\r\n +new Date(tempValueString) > +new Date(maxString)) {\r\n copyValues.splice(skipIndex, 1);\r\n skipIndex = -1;\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, true);\r\n }\r\n };\r\n CalendarBase.prototype.setValueUpdate = function () {\r\n if (!isNullOrUndefined(this.tableBodyElement)) {\r\n detach(this.tableBodyElement);\r\n this.setProperties({ start: this.currentView() }, true);\r\n this.createContentBody();\r\n }\r\n };\r\n CalendarBase.prototype.copyValues = function (values) {\r\n var copyValues = [];\r\n if (!isNullOrUndefined(values) && values.length > 0) {\r\n for (var index = 0; index < values.length; index++) {\r\n copyValues.push(new Date(+values[index]));\r\n }\r\n }\r\n return copyValues;\r\n };\r\n CalendarBase.prototype.titleUpdate = function (date, view) {\r\n var globalize = new Internationalization(this.locale);\r\n var dayFormatOptions;\r\n var monthFormatOptions;\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n if (this.calendarMode === 'Gregorian') {\r\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', skeleton: 'yMMMM', calendar: type });\r\n monthFormatOptions = globalize.formatDate(date, {\r\n format: null, type: 'dateTime', skeleton: 'y', calendar: type\r\n });\r\n }\r\n else {\r\n dayFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'MMMM y', calendar: type });\r\n monthFormatOptions = globalize.formatDate(date, { type: 'dateTime', format: 'y', calendar: type });\r\n }\r\n switch (view) {\r\n case 'days':\r\n this.headerTitleElement.textContent = this.toCapitalize(dayFormatOptions);\r\n break;\r\n case 'months':\r\n this.headerTitleElement.textContent = monthFormatOptions;\r\n }\r\n };\r\n CalendarBase.prototype.setActiveDescendant = function () {\r\n var id;\r\n var focusedEle = this.tableBodyElement.querySelector('tr td.e-focused-date');\r\n var selectedEle = this.tableBodyElement.querySelector('tr td.e-selected');\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var title;\r\n var view = this.currentView();\r\n if (view === 'Month') {\r\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'full', calendar: type });\r\n }\r\n else if (view === 'Year') {\r\n if (type !== 'islamic') {\r\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'yMMMM', calendar: type });\r\n }\r\n else {\r\n title = this.globalize.formatDate(this.currentDate, { type: 'date', skeleton: 'GyMMM', calendar: type });\r\n }\r\n }\r\n else {\r\n title = this.globalize.formatDate(this.currentDate, {\r\n format: null, type: 'date', skeleton: 'y', calendar: type\r\n });\r\n }\r\n if (selectedEle || focusedEle) {\r\n if (!isNullOrUndefined(selectedEle)) {\r\n selectedEle.setAttribute('aria-selected', 'true');\r\n }\r\n (focusedEle || selectedEle).setAttribute('aria-label', title);\r\n id = (focusedEle || selectedEle).getAttribute('id');\r\n }\r\n return id;\r\n };\r\n CalendarBase.prototype.iconHandler = function () {\r\n new Date(this.checkValue(this.currentDate)).setDate(1);\r\n switch (this.currentView()) {\r\n case 'Month':\r\n this.previousIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.min) < 1);\r\n this.nextIconHandler(this.compareMonth(new Date(this.checkValue(this.currentDate)), this.max) > -1);\r\n break;\r\n case 'Year':\r\n this.previousIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.min) < 1);\r\n this.nextIconHandler(this.compareYear(new Date(this.checkValue(this.currentDate)), this.max) > -1);\r\n break;\r\n case 'Decade':\r\n this.previousIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.min) < 1);\r\n this.nextIconHandler(this.compareDecade(new Date(this.checkValue(this.currentDate)), this.max) > -1);\r\n }\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n CalendarBase.prototype.destroy = function () {\r\n if (this.getModuleName() === 'calendar' && this.element) {\r\n removeClass([this.element], [ROOT]);\r\n }\r\n else {\r\n if (this.calendarElement && this.element) {\r\n removeClass([this.element], [ROOT]);\r\n }\r\n }\r\n if (this.getModuleName() === 'calendar' && this.element) {\r\n EventHandler.remove(this.headerTitleElement, 'click', this.navigateTitle);\r\n if (this.todayElement) {\r\n EventHandler.remove(this.todayElement, 'click', this.todayButtonClick);\r\n }\r\n this.previousIconHandler(true);\r\n this.nextIconHandler(true);\r\n this.keyboardModule.destroy();\r\n this.element.removeAttribute('data-role');\r\n if (!isNullOrUndefined(this.calendarEleCopy.getAttribute('tabindex'))) {\r\n this.element.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.element.removeAttribute('tabindex');\r\n }\r\n }\r\n if (this.element) {\r\n this.element.innerHTML = '';\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n CalendarBase.prototype.title = function (e) {\r\n var currentView = this.getViewNumber(this.currentView());\r\n this.effect = ZOOMIN;\r\n this.switchView(++currentView, e);\r\n };\r\n CalendarBase.prototype.getViewNumber = function (stringVal) {\r\n if (stringVal === 'Month') {\r\n return 0;\r\n }\r\n else if (stringVal === 'Year') {\r\n return 1;\r\n }\r\n else {\r\n return 2;\r\n }\r\n };\r\n CalendarBase.prototype.navigateTitle = function (e) {\r\n e.preventDefault();\r\n this.title(e);\r\n if (this.getModuleName() === 'calendar') {\r\n this.table.focus();\r\n }\r\n };\r\n CalendarBase.prototype.previous = function () {\r\n this.effect = '';\r\n var currentView = this.getViewNumber(this.currentView());\r\n switch (this.currentView()) {\r\n case 'Month':\r\n this.addMonths(this.currentDate, -1);\r\n this.switchView(currentView);\r\n break;\r\n case 'Year':\r\n this.addYears(this.currentDate, -1);\r\n this.switchView(currentView);\r\n break;\r\n case 'Decade':\r\n this.addYears(this.currentDate, -10);\r\n this.switchView(currentView);\r\n break;\r\n }\r\n };\r\n CalendarBase.prototype.navigatePrevious = function (e) {\r\n e.preventDefault();\r\n if (this.calendarMode === 'Gregorian') {\r\n this.previous();\r\n }\r\n else {\r\n this.islamicModule.islamicPrevious();\r\n }\r\n this.triggerNavigate(e);\r\n if (this.getModuleName() === 'calendar') {\r\n this.table.focus();\r\n }\r\n };\r\n CalendarBase.prototype.next = function () {\r\n this.effect = '';\r\n var currentView = this.getViewNumber(this.currentView());\r\n switch (this.currentView()) {\r\n case 'Month':\r\n this.addMonths(this.currentDate, 1);\r\n this.switchView(currentView);\r\n break;\r\n case 'Year':\r\n this.addYears(this.currentDate, 1);\r\n this.switchView(currentView);\r\n break;\r\n case 'Decade':\r\n this.addYears(this.currentDate, 10);\r\n this.switchView(currentView);\r\n break;\r\n }\r\n };\r\n CalendarBase.prototype.navigateNext = function (eve) {\r\n eve.preventDefault();\r\n if (this.calendarMode === 'Gregorian') {\r\n this.next();\r\n }\r\n else {\r\n this.islamicModule.islamicNext();\r\n }\r\n this.triggerNavigate(eve);\r\n if (this.getModuleName() === 'calendar') {\r\n this.table.focus();\r\n }\r\n };\r\n /**\r\n * This method is used to navigate to the month/year/decade view of the Calendar.\r\n *\r\n * @param {string} view - Specifies the view of the Calendar.\r\n * @param {Date} date - Specifies the focused date in a view.\r\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\r\n * @returns {void}\r\n */\r\n CalendarBase.prototype.navigateTo = function (view, date, isCustomDate) {\r\n if (+date >= +this.min && +date <= +this.max) {\r\n this.currentDate = date;\r\n }\r\n if (+date <= +this.min) {\r\n this.currentDate = new Date(this.checkValue(this.min));\r\n }\r\n if (+date >= +this.max) {\r\n this.currentDate = new Date(this.checkValue(this.max));\r\n }\r\n if ((this.getViewNumber(this.depth) >= this.getViewNumber(view))) {\r\n if ((this.getViewNumber(this.depth) <= this.getViewNumber(this.start))\r\n || this.getViewNumber(this.depth) === this.getViewNumber(view)) {\r\n view = this.depth;\r\n }\r\n }\r\n this.switchView(this.getViewNumber(view), null, null, isCustomDate);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the current view of the Calendar.\r\n *\r\n * @returns {string}\r\n */\r\n CalendarBase.prototype.currentView = function () {\r\n if (this.contentElement.classList.contains(YEAR)) {\r\n return 'Year';\r\n }\r\n else if (this.contentElement.classList.contains(DECADE)) {\r\n return 'Decade';\r\n }\r\n else {\r\n return 'Month';\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n CalendarBase.prototype.getDateVal = function (date, value) {\r\n return (!isNullOrUndefined(value) && date.getDate() === (value).getDate()\r\n && date.getMonth() === (value).getMonth() && date.getFullYear() === (value).getFullYear());\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CalendarBase.prototype.getCultureObjects = function (ld, c) {\r\n var gregorianFormat = '.dates.calendars.gregorian.days.format.' + this.dayHeaderFormat.toLowerCase();\r\n var islamicFormat = '.dates.calendars.islamic.days.format.' + this.dayHeaderFormat.toLowerCase();\r\n var mainVal = 'main.';\r\n if (this.calendarMode === 'Gregorian') {\r\n return getValue(mainVal + '' + this.locale + gregorianFormat, ld);\r\n }\r\n else {\r\n return getValue('main.' + '' + this.locale + islamicFormat, ld);\r\n }\r\n };\r\n CalendarBase.prototype.getWeek = function (d) {\r\n var currentDate = new Date(this.checkValue(d)).valueOf();\r\n var date = new Date(d.getFullYear(), 0, 1).valueOf();\r\n return Math.ceil((((currentDate - date) + dayMilliSeconds) / dayMilliSeconds) / 7);\r\n };\r\n CalendarBase.prototype.setStartDate = function (date, time) {\r\n var tzOffset = date.getTimezoneOffset();\r\n var d = new Date(date.getTime() + time);\r\n var tzOffsetDiff = d.getTimezoneOffset() - tzOffset;\r\n date.setTime(d.getTime() + tzOffsetDiff * minutesMilliSeconds);\r\n };\r\n CalendarBase.prototype.addMonths = function (date, i) {\r\n if (this.calendarMode === 'Gregorian') {\r\n var day = date.getDate();\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + i);\r\n date.setDate(Math.min(day, this.getMaxDays(date)));\r\n }\r\n else {\r\n var islamicDate = this.islamicModule.getIslamicDate(date);\r\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year, (islamicDate.month) + i, 1);\r\n }\r\n };\r\n CalendarBase.prototype.addYears = function (date, i) {\r\n if (this.calendarMode === 'Gregorian') {\r\n var day = date.getDate();\r\n date.setDate(1);\r\n date.setFullYear(date.getFullYear() + i);\r\n date.setDate(Math.min(day, this.getMaxDays(date)));\r\n }\r\n else {\r\n var islamicDate = this.islamicModule.getIslamicDate(date);\r\n this.currentDate = this.islamicModule.toGregorian(islamicDate.year + i, (islamicDate.month), 1);\r\n }\r\n };\r\n CalendarBase.prototype.getIdValue = function (e, element) {\r\n var eve;\r\n if (e) {\r\n eve = e.currentTarget;\r\n }\r\n else {\r\n eve = element;\r\n }\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full', calendar: type };\r\n // eslint-disable-next-line radix\r\n var dateString = this.globalize.formatDate(new Date(parseInt('' + eve.getAttribute('id'), 0)), dateFormatOptions);\r\n var date = this.globalize.parseDate(dateString, dateFormatOptions);\r\n var value = date.valueOf() - date.valueOf() % 1000;\r\n return new Date(value);\r\n //return this.globalize.parseDate(dateString, dateFormatOptions);\r\n };\r\n CalendarBase.prototype.adjustLongHeaderSize = function () {\r\n removeClass([this.element], DAYHEADERLONG);\r\n if (this.dayHeaderFormat === 'Wide') {\r\n addClass([this.getModuleName() === 'calendar' ? this.element : this.calendarElement], DAYHEADERLONG);\r\n }\r\n };\r\n CalendarBase.prototype.selectDate = function (e, date, node, multiSelection, values) {\r\n var element = node || e.currentTarget;\r\n this.isDateSelected = false;\r\n if (this.currentView() === 'Decade') {\r\n this.setDateDecade(this.currentDate, date.getFullYear());\r\n }\r\n else if (this.currentView() === 'Year') {\r\n this.setDateYear(this.currentDate, date);\r\n }\r\n else {\r\n if (multiSelection && !this.checkPresentDate(date, values)) {\r\n var copyValues = this.copyValues(values);\r\n if (!isNullOrUndefined(values) && copyValues.length > 0) {\r\n copyValues.push(new Date(this.checkValue(date)));\r\n this.setProperties({ values: copyValues }, true);\r\n this.setProperties({ value: values[values.length - 1] }, true);\r\n }\r\n else {\r\n this.setProperties({ values: [new Date(this.checkValue(date))] }, true);\r\n }\r\n }\r\n else {\r\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\r\n }\r\n this.currentDate = new Date(this.checkValue(date));\r\n }\r\n var tableBodyElement = closest(element, '.' + ROOT);\r\n if (isNullOrUndefined(tableBodyElement)) {\r\n tableBodyElement = this.tableBodyElement;\r\n }\r\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + SELECTED))) {\r\n removeClass([tableBodyElement.querySelector('.' + SELECTED)], SELECTED);\r\n }\r\n if (!multiSelection && !isNullOrUndefined(tableBodyElement.querySelector('.' + FOCUSEDDATE))) {\r\n removeClass([tableBodyElement.querySelector('.' + FOCUSEDDATE)], FOCUSEDDATE);\r\n }\r\n if (multiSelection) {\r\n var copyValues = this.copyValues(values);\r\n var collection = Array.prototype.slice.call(this.tableBodyElement.querySelectorAll('td'));\r\n for (var index = 0; index < collection.length; index++) {\r\n var tempElement = tableBodyElement.querySelectorAll('td' + '.' + FOCUSEDDATE)[0];\r\n var selectedElement = tableBodyElement.querySelectorAll('td' + '.' + SELECTED)[0];\r\n if (collection[index] === tempElement) {\r\n removeClass([collection[index]], FOCUSEDDATE);\r\n }\r\n if (collection[index] === selectedElement &&\r\n !this.checkPresentDate(new Date(parseInt(selectedElement.getAttribute('id').split('_')[0], 10)), values)) {\r\n removeClass([collection[index]], SELECTED);\r\n }\r\n }\r\n if (element.classList.contains(SELECTED)) {\r\n removeClass([element], SELECTED);\r\n for (var i = 0; i < copyValues.length; i++) {\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var formatOptions = { format: null, type: 'date', skeleton: 'short', calendar: type };\r\n var localDateString = this.globalize.formatDate(date, formatOptions);\r\n var tempDateString = this.globalize.formatDate(copyValues[i], formatOptions);\r\n if (localDateString === tempDateString) {\r\n var index = copyValues.indexOf(copyValues[i]);\r\n copyValues.splice(index, 1);\r\n addClass([element], FOCUSEDDATE);\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, true);\r\n }\r\n else {\r\n addClass([element], SELECTED);\r\n }\r\n }\r\n else {\r\n addClass([element], SELECTED);\r\n }\r\n this.isDateSelected = true;\r\n };\r\n CalendarBase.prototype.checkPresentDate = function (dates, values) {\r\n var previousValue = false;\r\n if (!isNullOrUndefined(values)) {\r\n for (var checkPrevious = 0; checkPrevious < values.length; checkPrevious++) {\r\n var type = (this.calendarMode === 'Gregorian') ? 'gregorian' : 'islamic';\r\n var localDateString = this.globalize.formatDate(dates, {\r\n format: null, type: 'date', skeleton: 'short', calendar: type\r\n });\r\n var tempDateString = this.globalize.formatDate(values[checkPrevious], {\r\n format: null, type: 'date', skeleton: 'short', calendar: type\r\n });\r\n if (localDateString === tempDateString) {\r\n previousValue = true;\r\n }\r\n }\r\n }\r\n return previousValue;\r\n };\r\n CalendarBase.prototype.setAriaActiveDescendant = function () {\r\n attributes(this.table, {\r\n 'aria-activedescendant': '' + this.setActiveDescendant()\r\n });\r\n };\r\n CalendarBase.prototype.previousIconHandler = function (disabled) {\r\n if (disabled) {\r\n EventHandler.remove(this.previousIcon, 'click', this.navigatePreviousHandler);\r\n addClass([this.previousIcon], '' + DISABLED);\r\n addClass([this.previousIcon], '' + OVERLAY);\r\n this.previousIcon.setAttribute('aria-disabled', 'true');\r\n }\r\n else {\r\n EventHandler.add(this.previousIcon, 'click', this.navigatePreviousHandler);\r\n removeClass([this.previousIcon], '' + DISABLED);\r\n removeClass([this.previousIcon], '' + OVERLAY);\r\n this.previousIcon.setAttribute('aria-disabled', 'false');\r\n }\r\n };\r\n CalendarBase.prototype.renderDayCellEvent = function (args) {\r\n extend(this.renderDayCellArgs, { name: 'renderDayCell' });\r\n this.trigger('renderDayCell', args);\r\n };\r\n CalendarBase.prototype.navigatedEvent = function (eve) {\r\n extend(this.navigatedArgs, { name: 'navigated', event: eve });\r\n this.trigger('navigated', this.navigatedArgs);\r\n };\r\n CalendarBase.prototype.triggerNavigate = function (event) {\r\n this.navigatedArgs = { view: this.currentView(), date: this.currentDate };\r\n this.navigatedEvent(event);\r\n };\r\n CalendarBase.prototype.nextIconHandler = function (disabled) {\r\n if (disabled) {\r\n EventHandler.remove(this.nextIcon, 'click', this.navigateNextHandler);\r\n addClass([this.nextIcon], DISABLED);\r\n addClass([this.nextIcon], OVERLAY);\r\n this.nextIcon.setAttribute('aria-disabled', 'true');\r\n }\r\n else {\r\n EventHandler.add(this.nextIcon, 'click', this.navigateNextHandler);\r\n removeClass([this.nextIcon], DISABLED);\r\n removeClass([this.nextIcon], OVERLAY);\r\n this.nextIcon.setAttribute('aria-disabled', 'false');\r\n }\r\n };\r\n CalendarBase.prototype.compare = function (startDate, endDate, modifier) {\r\n var start = endDate.getFullYear();\r\n var end;\r\n var result;\r\n end = start;\r\n result = 0;\r\n if (modifier) {\r\n start = start - start % modifier;\r\n end = start - start % modifier + modifier - 1;\r\n }\r\n if (startDate.getFullYear() > end) {\r\n result = 1;\r\n }\r\n else if (startDate.getFullYear() < start) {\r\n result = -1;\r\n }\r\n return result;\r\n };\r\n CalendarBase.prototype.isMinMaxRange = function (date) {\r\n return +date >= +this.min && +date <= +this.max;\r\n };\r\n CalendarBase.prototype.isMonthYearRange = function (date) {\r\n if (this.calendarMode === 'Gregorian') {\r\n return date.getMonth() >= this.min.getMonth()\r\n && date.getFullYear() >= this.min.getFullYear()\r\n && date.getMonth() <= this.max.getMonth()\r\n && date.getFullYear() <= this.max.getFullYear();\r\n }\r\n else {\r\n var islamicDate = this.islamicModule.getIslamicDate(date);\r\n return islamicDate.month >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).month\r\n && islamicDate.year >= (this.islamicModule.getIslamicDate(new Date(1944, 1, 18))).year\r\n && islamicDate.month <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).month\r\n && islamicDate.year <= (this.islamicModule.getIslamicDate(new Date(2069, 1, 16))).year;\r\n }\r\n };\r\n CalendarBase.prototype.compareYear = function (start, end) {\r\n return this.compare(start, end, 0);\r\n };\r\n CalendarBase.prototype.compareDecade = function (start, end) {\r\n return this.compare(start, end, 10);\r\n };\r\n CalendarBase.prototype.shiftArray = function (array, i) {\r\n return array.slice(i).concat(array.slice(0, i));\r\n };\r\n CalendarBase.prototype.addDay = function (date, i, e, max, min) {\r\n var column = i;\r\n var value = new Date(+date);\r\n if (!isNullOrUndefined(this.tableBodyElement) && !isNullOrUndefined(e)) {\r\n while (this.findNextTD(new Date(+date), column, max, min)) {\r\n column += i;\r\n }\r\n var rangeValue = new Date(value.setDate(value.getDate() + column));\r\n column = (+rangeValue > +max || +rangeValue < +min) ? column === i ? i - i : i : column;\r\n }\r\n date.setDate(date.getDate() + column);\r\n };\r\n CalendarBase.prototype.findNextTD = function (date, column, max, min) {\r\n var value = new Date(date.setDate(date.getDate() + column));\r\n var collection = [];\r\n var isDisabled = false;\r\n if ((!isNullOrUndefined(value) && value.getMonth()) === (!isNullOrUndefined(this.currentDate) && this.currentDate.getMonth())) {\r\n var tdEles = void 0;\r\n if (this.calendarMode === 'Gregorian') {\r\n tdEles = this.renderDays(value);\r\n }\r\n else {\r\n tdEles = this.islamicModule.islamicRenderDays(this.currentDate, value);\r\n }\r\n collection = tdEles.filter(function (element) {\r\n return element.classList.contains(DISABLED);\r\n });\r\n }\r\n else {\r\n collection = this.tableBodyElement.querySelectorAll('td.' + DISABLED);\r\n }\r\n if (+value <= (+(max)) && +value >= (+(min))) {\r\n if (collection.length) {\r\n for (var i = 0; i < collection.length; i++) {\r\n // eslint-disable-next-line radix\r\n isDisabled = (+value === +new Date(parseInt(collection[i].id, 0))) ? true : false;\r\n if (isDisabled) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return isDisabled;\r\n };\r\n CalendarBase.prototype.getMaxDays = function (d) {\r\n var date;\r\n var tmpDate = new Date(this.checkValue(d));\r\n date = 28;\r\n var month = tmpDate.getMonth();\r\n while (tmpDate.getMonth() === month) {\r\n ++date;\r\n tmpDate.setDate(date);\r\n }\r\n return date - 1;\r\n };\r\n CalendarBase.prototype.setDateDecade = function (date, year) {\r\n date.setFullYear(year);\r\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\r\n };\r\n CalendarBase.prototype.setDateYear = function (date, value) {\r\n date.setFullYear(value.getFullYear(), value.getMonth(), date.getDate());\r\n if (value.getMonth() !== date.getMonth()) {\r\n date.setDate(0);\r\n this.currentDate = new Date(this.checkValue(value));\r\n }\r\n this.setProperties({ value: new Date(this.checkValue(date)) }, true);\r\n };\r\n CalendarBase.prototype.compareMonth = function (start, end) {\r\n var result;\r\n if (start.getFullYear() > end.getFullYear()) {\r\n result = 1;\r\n }\r\n else if (start.getFullYear() < end.getFullYear()) {\r\n result = -1;\r\n }\r\n else {\r\n result = start.getMonth() === end.getMonth() ? 0 : start.getMonth() > end.getMonth() ? 1 : -1;\r\n }\r\n return result;\r\n };\r\n CalendarBase.prototype.checkValue = function (inValue) {\r\n if (inValue instanceof Date) {\r\n return (inValue.toUTCString());\r\n }\r\n else {\r\n return ('' + inValue);\r\n }\r\n };\r\n CalendarBase.prototype.checkView = function () {\r\n if (this.start !== 'Decade' && this.start !== 'Year') {\r\n this.setProperties({ start: 'Month' }, true);\r\n }\r\n if (this.depth !== 'Decade' && this.depth !== 'Year') {\r\n this.setProperties({ depth: 'Month' }, true);\r\n }\r\n if (this.getViewNumber(this.depth) > this.getViewNumber(this.start)) {\r\n this.setProperties({ depth: 'Month' }, true);\r\n }\r\n };\r\n CalendarBase.prototype.getDate = function (date, timezone) {\r\n if (timezone) {\r\n date = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\r\n }\r\n return date;\r\n };\r\n __decorate([\r\n Property(new Date(1900, 0, 1))\r\n ], CalendarBase.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], CalendarBase.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], CalendarBase.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(new Date(2099, 11, 31))\r\n ], CalendarBase.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], CalendarBase.prototype, \"firstDayOfWeek\", void 0);\r\n __decorate([\r\n Property('Gregorian')\r\n ], CalendarBase.prototype, \"calendarMode\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], CalendarBase.prototype, \"start\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], CalendarBase.prototype, \"depth\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CalendarBase.prototype, \"weekNumber\", void 0);\r\n __decorate([\r\n Property('FirstDay')\r\n ], CalendarBase.prototype, \"weekRule\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], CalendarBase.prototype, \"showTodayButton\", void 0);\r\n __decorate([\r\n Property('Short')\r\n ], CalendarBase.prototype, \"dayHeaderFormat\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], CalendarBase.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], CalendarBase.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], CalendarBase.prototype, \"serverTimezoneOffset\", void 0);\r\n __decorate([\r\n Event()\r\n ], CalendarBase.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], CalendarBase.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], CalendarBase.prototype, \"navigated\", void 0);\r\n __decorate([\r\n Event()\r\n ], CalendarBase.prototype, \"renderDayCell\", void 0);\r\n CalendarBase = __decorate([\r\n NotifyPropertyChanges\r\n ], CalendarBase);\r\n return CalendarBase;\r\n}(Component));\r\nexport { CalendarBase };\r\n/**\r\n * Represents the Calendar component that allows the user to select a date.\r\n * ```html\r\n *
    \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Calendar = /** @class */ (function (_super) {\r\n __extends(Calendar, _super);\r\n /**\r\n * Initialized new instance of Calendar Class.\r\n * Constructor for creating the widget\r\n *\r\n * @param {CalendarModel} options - Specifies the Calendar model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function Calendar(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Calendar.prototype.render = function () {\r\n if (this.calendarMode === 'Islamic' && this.islamicModule === undefined) {\r\n throwError('Requires the injectable Islamic modules to render Calendar in Islamic mode');\r\n }\r\n if (this.isMultiSelection && typeof this.values === 'object' && !isNullOrUndefined(this.values) && this.values.length > 0) {\r\n var tempValues = [];\r\n var copyValues = [];\r\n for (var limit = 0; limit < this.values.length; limit++) {\r\n if (tempValues.indexOf(+this.values[limit]) === -1) {\r\n tempValues.push(+this.values[limit]);\r\n copyValues.push(this.values[limit]);\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, true);\r\n for (var index = 0; index < this.values.length; index++) {\r\n if (!this.checkDateValue(this.values[index])) {\r\n if (typeof (this.values[index]) === 'string' && this.checkDateValue(new Date(this.checkValue(this.values[index])))) {\r\n var copyDate = new Date(this.checkValue(this.values[index]));\r\n this.values.splice(index, 1);\r\n this.values.splice(index, 0, copyDate);\r\n }\r\n else {\r\n this.values.splice(index, 1);\r\n }\r\n }\r\n }\r\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\r\n this.previousValues = this.values.length;\r\n }\r\n this.validateDate();\r\n this.minMaxUpdate();\r\n if (this.getModuleName() === 'calendar') {\r\n this.setEnable(this.enabled);\r\n this.setClass(this.cssClass);\r\n }\r\n _super.prototype.render.call(this);\r\n if (this.getModuleName() === 'calendar') {\r\n var form = closest(this.element, 'form');\r\n if (form) {\r\n EventHandler.add(form, 'reset', this.formResetHandler.bind(this));\r\n }\r\n this.setTimeZone(this.serverTimezoneOffset);\r\n }\r\n this.renderComplete();\r\n };\r\n Calendar.prototype.setEnable = function (enable) {\r\n if (!enable) {\r\n addClass([this.element], DISABLED);\r\n }\r\n else {\r\n removeClass([this.element], DISABLED);\r\n }\r\n };\r\n Calendar.prototype.setClass = function (newCssClass, oldCssClass) {\r\n if (!isNullOrUndefined(oldCssClass)) {\r\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(newCssClass)) {\r\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(oldCssClass) && oldCssClass !== '') {\r\n removeClass([this.element], oldCssClass.split(' '));\r\n }\r\n if (!isNullOrUndefined(newCssClass)) {\r\n addClass([this.element], newCssClass.split(' '));\r\n }\r\n };\r\n Calendar.prototype.isDayLightSaving = function () {\r\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\r\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\r\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\r\n };\r\n Calendar.prototype.setTimeZone = function (offsetValue) {\r\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\r\n var serverTimezoneDiff = offsetValue;\r\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\r\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\r\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\r\n this.value = new Date(this.value.getTime() + (timeZoneDiff * 60 * 60 * 1000));\r\n }\r\n };\r\n Calendar.prototype.formResetHandler = function () {\r\n this.setProperties({ value: null }, true);\r\n };\r\n Calendar.prototype.validateDate = function () {\r\n if (typeof this.value === 'string') {\r\n this.setProperties({ value: this.checkDateValue(new Date(this.checkValue(this.value))) }, true); // persist the value property.\r\n }\r\n _super.prototype.validateDate.call(this, this.value);\r\n if (!isNullOrUndefined(this.value) && this.min <= this.max && this.value >= this.min && this.value <= this.max) {\r\n this.currentDate = new Date(this.checkValue(this.value));\r\n }\r\n if (isNaN(+this.value)) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n };\r\n Calendar.prototype.minMaxUpdate = function () {\r\n if (this.getModuleName() === 'calendar') {\r\n if (!isNullOrUndefined(this.value) && this.value <= this.min && this.min <= this.max) {\r\n this.setProperties({ value: this.min }, true);\r\n this.changedArgs = { value: this.value };\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.value) && this.value >= this.max && this.min <= this.max) {\r\n this.setProperties({ value: this.max }, true);\r\n this.changedArgs = { value: this.value };\r\n }\r\n }\r\n }\r\n if (this.getModuleName() !== 'calendar' && !isNullOrUndefined(this.value)) {\r\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max) {\r\n _super.prototype.minMaxUpdate.call(this, this.min);\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max) {\r\n _super.prototype.minMaxUpdate.call(this, this.max);\r\n }\r\n }\r\n }\r\n else {\r\n _super.prototype.minMaxUpdate.call(this, this.value);\r\n }\r\n };\r\n Calendar.prototype.generateTodayVal = function (value) {\r\n var tempValue = new Date();\r\n if (!isNullOrUndefined(this.timezone)) {\r\n tempValue = _super.prototype.getDate.call(this, tempValue, this.timezone);\r\n }\r\n if (value && isNullOrUndefined(this.timezone)) {\r\n tempValue.setHours(value.getHours());\r\n tempValue.setMinutes(value.getMinutes());\r\n tempValue.setSeconds(value.getSeconds());\r\n tempValue.setMilliseconds(value.getMilliseconds());\r\n }\r\n else {\r\n tempValue = new Date(tempValue.getFullYear(), tempValue.getMonth(), tempValue.getDate(), 0, 0, 0, 0);\r\n }\r\n return tempValue;\r\n };\r\n Calendar.prototype.todayButtonClick = function (e) {\r\n if (this.showTodayButton) {\r\n var tempValue = this.generateTodayVal(this.value);\r\n this.setProperties({ value: tempValue }, true);\r\n this.isTodayClicked = true;\r\n this.todayButtonEvent = e;\r\n if (this.isMultiSelection) {\r\n var copyValues = this.copyValues(this.values);\r\n if (!_super.prototype.checkPresentDate.call(this, tempValue, this.values)) {\r\n copyValues.push(tempValue);\r\n this.setProperties({ values: copyValues });\r\n }\r\n }\r\n _super.prototype.todayButtonClick.call(this, e, new Date(+this.value));\r\n }\r\n };\r\n Calendar.prototype.keyActionHandle = function (e) {\r\n _super.prototype.keyActionHandle.call(this, e, this.value, this.isMultiSelection);\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Calendar.prototype.preRender = function () {\r\n var _this = this;\r\n this.changeHandler = function (e) {\r\n _this.triggerChange(e);\r\n };\r\n this.checkView();\r\n _super.prototype.preRender.call(this, this.value);\r\n };\r\n /**\r\n * @returns {void}\r\n\r\n */\r\n Calendar.prototype.createContent = function () {\r\n this.previousDate = this.value;\r\n this.previousDateTime = this.value;\r\n _super.prototype.createContent.call(this);\r\n };\r\n Calendar.prototype.minMaxDate = function (localDate) {\r\n return _super.prototype.minMaxDate.call(this, localDate);\r\n };\r\n Calendar.prototype.renderMonths = function (e, value, isCustomDate) {\r\n _super.prototype.renderMonths.call(this, e, this.value, isCustomDate);\r\n };\r\n Calendar.prototype.renderDays = function (currentDate, value, isMultiSelect, values, isCustomDate) {\r\n var tempDays = _super.prototype.renderDays.call(this, currentDate, this.value, this.isMultiSelection, this.values, isCustomDate);\r\n if (this.isMultiSelection) {\r\n _super.prototype.validateValues.call(this, this.isMultiSelection, this.values);\r\n }\r\n return tempDays;\r\n };\r\n Calendar.prototype.renderYears = function (e) {\r\n if (this.calendarMode === 'Gregorian') {\r\n _super.prototype.renderYears.call(this, e, this.value);\r\n }\r\n else {\r\n this.islamicModule.islamicRenderYears(e, this.value);\r\n }\r\n };\r\n Calendar.prototype.renderDecades = function (e) {\r\n if (this.calendarMode === 'Gregorian') {\r\n _super.prototype.renderDecades.call(this, e, this.value);\r\n }\r\n else {\r\n this.islamicModule.islamicRenderDecade(e, this.value);\r\n }\r\n };\r\n Calendar.prototype.renderTemplate = function (elements, count, classNm, e) {\r\n if (this.calendarMode === 'Gregorian') {\r\n _super.prototype.renderTemplate.call(this, elements, count, classNm, e, this.value);\r\n }\r\n else {\r\n this.islamicModule.islamicRenderTemplate(elements, count, classNm, e, this.value);\r\n }\r\n this.changedArgs = { value: this.value, values: this.values };\r\n this.changeHandler();\r\n };\r\n Calendar.prototype.clickHandler = function (e) {\r\n var eve = e.currentTarget;\r\n this.isPopupClicked = true;\r\n if (eve.classList.contains(OTHERMONTH)) {\r\n if (this.isMultiSelection) {\r\n var copyValues = this.copyValues(this.values);\r\n copyValues.push(this.getIdValue(e, null));\r\n this.setProperties({ values: copyValues }, true);\r\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\r\n }\r\n else {\r\n this.setProperties({ value: this.getIdValue(e, null) }, true);\r\n }\r\n }\r\n var storeView = this.currentView();\r\n _super.prototype.clickHandler.call(this, e, this.value);\r\n if (this.isMultiSelection && this.currentDate !== this.value &&\r\n !isNullOrUndefined(this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0]) && storeView === 'Year') {\r\n this.tableBodyElement.querySelectorAll('.' + FOCUSEDDATE)[0].classList.remove(FOCUSEDDATE);\r\n }\r\n };\r\n Calendar.prototype.switchView = function (view, e, isMultiSelection, isCustomDate) {\r\n _super.prototype.switchView.call(this, view, e, this.isMultiSelection, isCustomDate);\r\n };\r\n /**\r\n * To get component name\r\n *\r\n * @returns {string} Return the component name.\r\n * @private\r\n */\r\n Calendar.prototype.getModuleName = function () {\r\n _super.prototype.getModuleName.call(this);\r\n return 'calendar';\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the properties to be maintained upon browser refresh.\r\n *\r\n * @returns {string}\r\n */\r\n Calendar.prototype.getPersistData = function () {\r\n _super.prototype.getPersistData.call(this);\r\n var keyEntity = ['value', 'values'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {CalendarModel} newProp - Returns the dynamic property value of the component.\r\n * @param {CalendarModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n Calendar.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n this.effect = '';\r\n this.rangeValidation(this.min, this.max);\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'value':\r\n if (this.isDateSelected) {\r\n if (typeof newProp.value === 'string') {\r\n this.setProperties({ value: new Date(this.checkValue(newProp.value)) }, true);\r\n }\r\n else {\r\n newProp.value = new Date(this.checkValue(newProp.value));\r\n }\r\n if (isNaN(+this.value)) {\r\n this.setProperties({ value: oldProp.value }, true);\r\n }\r\n this.update();\r\n }\r\n break;\r\n case 'values':\r\n if (this.isDateSelected) {\r\n if (typeof newProp.values === 'string' || typeof newProp.values === 'number') {\r\n this.setProperties({ values: null }, true);\r\n }\r\n else {\r\n var copyValues = this.copyValues(this.values);\r\n for (var index = 0; index < copyValues.length; index++) {\r\n var tempDate = copyValues[index];\r\n if (this.checkDateValue(tempDate) && !_super.prototype.checkPresentDate.call(this, tempDate, copyValues)) {\r\n copyValues.push(tempDate);\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, true);\r\n if (this.values.length > 0) {\r\n this.setProperties({ value: newProp.values[newProp.values.length - 1] }, true);\r\n }\r\n }\r\n this.validateValues(this.isMultiSelection, this.values);\r\n this.update();\r\n }\r\n break;\r\n case 'isMultiSelection':\r\n if (this.isDateSelected) {\r\n this.setProperties({ isMultiSelection: newProp.isMultiSelection }, true);\r\n this.update();\r\n }\r\n break;\r\n case 'enabled':\r\n this.setEnable(this.enabled);\r\n break;\r\n case 'cssClass':\r\n if (this.getModuleName() === 'calendar') {\r\n this.setClass(newProp.cssClass, oldProp.cssClass);\r\n }\r\n break;\r\n default:\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp, this.isMultiSelection, this.values);\r\n }\r\n }\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n Calendar.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n if (this.getModuleName() === 'calendar') {\r\n var form = closest(this.element, 'form');\r\n if (form) {\r\n EventHandler.remove(form, 'reset', this.formResetHandler.bind(this));\r\n }\r\n }\r\n };\r\n /**\r\n * This method is used to navigate to the month/year/decade view of the Calendar.\r\n *\r\n * @param {string} view - Specifies the view of the Calendar.\r\n * @param {Date} date - Specifies the focused date in a view.\r\n * @param {boolean} isCustomDate - Specifies whether the calendar is rendered with custom today date or not.\r\n * @returns {void}\r\n\r\n */\r\n Calendar.prototype.navigateTo = function (view, date, isCustomDate) {\r\n this.minMaxUpdate();\r\n _super.prototype.navigateTo.call(this, view, date, isCustomDate);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the current view of the Calendar.\r\n *\r\n * @returns {string}\r\n\r\n */\r\n Calendar.prototype.currentView = function () {\r\n return _super.prototype.currentView.call(this);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * This method is used to add the single or multiple dates to the values property of the Calendar.\r\n *\r\n * @param {Date | Date[]} dates - Specifies the date or dates to be added to the values property of the Calendar.\r\n * @returns {void}\r\n\r\n */\r\n Calendar.prototype.addDate = function (dates) {\r\n if (typeof dates !== 'string' && typeof dates !== 'number') {\r\n var copyValues = this.copyValues(this.values);\r\n if (typeof dates === 'object' && (dates).length > 0) {\r\n var tempDates = dates;\r\n for (var i = 0; i < tempDates.length; i++) {\r\n if (this.checkDateValue(tempDates[i]) && !_super.prototype.checkPresentDate.call(this, tempDates[i], copyValues)) {\r\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\r\n copyValues.push(tempDates[i]);\r\n }\r\n else {\r\n copyValues = [new Date(+tempDates[i])];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (this.checkDateValue(dates) && !_super.prototype.checkPresentDate.call(this, dates, copyValues)) {\r\n if (!isNullOrUndefined(copyValues) && copyValues.length > 0) {\r\n copyValues.push((dates));\r\n }\r\n else {\r\n copyValues = [new Date(+dates)];\r\n }\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, true);\r\n if (this.isMultiSelection) {\r\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\r\n }\r\n this.validateValues(this.isMultiSelection, copyValues);\r\n this.update();\r\n this.changedArgs = { value: this.value, values: this.values };\r\n this.changeHandler();\r\n }\r\n };\r\n /**\r\n * This method is used to remove the single or multiple dates from the values property of the Calendar.\r\n *\r\n * @param {Date | Date[]} dates - Specifies the date or dates which need to be removed from the values property of the Calendar.\r\n * @returns {void}\r\n\r\n */\r\n Calendar.prototype.removeDate = function (dates) {\r\n if (typeof dates !== 'string' && typeof dates !== 'number' && !isNullOrUndefined(this.values) && this.values.length > 0) {\r\n var copyValues = this.copyValues(this.values);\r\n if (typeof dates === 'object' && ((dates).length > 0)) {\r\n var tempDates = dates;\r\n for (var index = 0; index < tempDates.length; index++) {\r\n for (var i = 0; i < copyValues.length; i++) {\r\n if (+copyValues[i] === +tempDates[index]) {\r\n copyValues.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < copyValues.length; i++) {\r\n if (+copyValues[i] === +dates) {\r\n copyValues.splice(i, 1);\r\n }\r\n }\r\n }\r\n this.setProperties({ values: copyValues }, false);\r\n this.update();\r\n if (this.isMultiSelection) {\r\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\r\n }\r\n this.changedArgs = { value: this.value, values: this.values };\r\n this.changeHandler();\r\n }\r\n };\r\n /**\r\n * To set custom today date in calendar\r\n *\r\n * @param {Date} date - Specifies date value to be set.\r\n * @private\r\n * @returns {void}\r\n */\r\n Calendar.prototype.setTodayDate = function (date) {\r\n var todayDate = new Date(+date);\r\n this.setProperties({ value: todayDate }, true);\r\n _super.prototype.todayButtonClick.call(this, null, todayDate, true);\r\n };\r\n Calendar.prototype.update = function () {\r\n this.validateDate();\r\n this.minMaxUpdate();\r\n _super.prototype.setValueUpdate.call(this);\r\n };\r\n Calendar.prototype.selectDate = function (e, date, element) {\r\n _super.prototype.selectDate.call(this, e, date, element, this.isMultiSelection, this.values);\r\n if (this.isMultiSelection && !isNullOrUndefined(this.values) && this.values.length > 0) {\r\n this.setProperties({ value: this.values[this.values.length - 1] }, true);\r\n }\r\n this.changedArgs = { value: this.value, values: this.values };\r\n this.changeHandler(e);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Calendar.prototype.changeEvent = function (e) {\r\n if ((this.value && this.value.valueOf()) !== (this.previousDate && +this.previousDate.valueOf())\r\n || this.isMultiSelection) {\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', this.changedArgs);\r\n }\r\n this.previousDate = new Date(+this.value);\r\n }\r\n };\r\n Calendar.prototype.triggerChange = function (e) {\r\n if (!isNullOrUndefined(this.todayButtonEvent) && this.isTodayClicked) {\r\n e = this.todayButtonEvent;\r\n this.isTodayClicked = false;\r\n }\r\n this.changedArgs.event = e || null;\r\n this.changedArgs.isInteracted = !isNullOrUndefined(e);\r\n if (!isNullOrUndefined(this.value)) {\r\n this.setProperties({ value: this.value }, true);\r\n }\r\n if (!this.isMultiSelection && +this.value !== Number.NaN && (+this.value !== +this.previousDate || this.previousDate == null\r\n && !isNaN(+this.value))) {\r\n this.changeEvent(e);\r\n }\r\n else if (!isNullOrUndefined(this.values) && this.previousValues !== this.values.length) {\r\n this.changeEvent(e);\r\n this.previousValues = this.values.length;\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], Calendar.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Calendar.prototype, \"values\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Calendar.prototype, \"isMultiSelection\", void 0);\r\n __decorate([\r\n Event()\r\n ], Calendar.prototype, \"change\", void 0);\r\n Calendar = __decorate([\r\n NotifyPropertyChanges\r\n ], Calendar);\r\n return Calendar;\r\n}(CalendarBase));\r\nexport { Calendar };\r\n","/**\n * Calendar modules\n */\nexport * from './calendar';\nexport * from './islamic';\n","/**\r\n *\r\n */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { EventHandler, Internationalization } from '@syncfusion/ej2-base';\r\nimport { rippleEffect } from '@syncfusion/ej2-base';\r\nimport { removeClass, addClass, attributes, HijriParser } from '@syncfusion/ej2-base';\r\nimport { getUniqueID } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\r\n//class constant defination.\r\nvar OTHERMONTH = 'e-other-month';\r\nvar YEAR = 'e-year';\r\nvar MONTH = 'e-month';\r\nvar DECADE = 'e-decade';\r\nvar DISABLED = 'e-disabled';\r\nvar OVERLAY = 'e-overlay';\r\nvar WEEKEND = 'e-weekend';\r\nvar WEEKNUMBER = 'e-week-number';\r\nvar SELECTED = 'e-selected';\r\nvar FOCUSEDDATE = 'e-focused-date';\r\nvar OTHERMONTHROW = 'e-month-hide';\r\nvar TODAY = 'e-today';\r\nvar LINK = 'e-day';\r\nvar CELL = 'e-cell';\r\nvar dayMilliSeconds = 86400000;\r\nvar minDecade = 2060;\r\nvar maxDecade = 2069;\r\nvar Islamic = /** @class */ (function () {\r\n function Islamic(instance) {\r\n this.calendarInstance = instance;\r\n }\r\n Islamic.prototype.getModuleName = function () {\r\n return 'islamic';\r\n };\r\n Islamic.prototype.islamicTitleUpdate = function (date, view) {\r\n var globalize = new Internationalization(this.calendarInstance.locale);\r\n switch (view) {\r\n case 'days':\r\n this.calendarInstance.headerTitleElement.textContent = globalize.formatDate(date, { type: 'dateTime', format: 'MMMMyyyy', calendar: 'islamic' });\r\n break;\r\n case 'months':\r\n this.calendarInstance.headerTitleElement.textContent = globalize.formatDate(date, { type: 'dateTime', format: 'yyyy', calendar: 'islamic' });\r\n }\r\n };\r\n Islamic.prototype.islamicRenderDays = function (currentDate, value, multiSelection, values) {\r\n var tdEles = [];\r\n var cellsCount = 42;\r\n var localDate = new Date(this.islamicInValue(currentDate));\r\n var minMaxDate;\r\n this.islamicTitleUpdate(currentDate, 'days');\r\n var islamicDate = this.getIslamicDate(localDate);\r\n var gregorianObject = this.toGregorian(islamicDate.year, islamicDate.month, 1);\r\n var currentMonth = islamicDate.month;\r\n localDate = gregorianObject;\r\n while (localDate.getDay() !== this.calendarInstance.firstDayOfWeek) {\r\n this.calendarInstance.setStartDate(localDate, -1 * dayMilliSeconds);\r\n }\r\n for (var day = 0; day < cellsCount; ++day) {\r\n var weekEle = this.calendarInstance.createElement('td', { className: CELL });\r\n var weekAnchor = this.calendarInstance.createElement('span');\r\n if (day % 7 === 0 && this.calendarInstance.weekNumber) {\r\n weekAnchor.textContent = '' + this.calendarInstance.getWeek(localDate);\r\n weekEle.appendChild(weekAnchor);\r\n addClass([weekEle], '' + WEEKNUMBER);\r\n tdEles.push(weekEle);\r\n }\r\n minMaxDate = new Date(+localDate);\r\n localDate = this.calendarInstance.minMaxDate(localDate);\r\n var dateFormatOptions = { type: 'dateTime', skeleton: 'full', calendar: 'islamic' };\r\n var date = this.calendarInstance.globalize.parseDate(this.calendarInstance.globalize.formatDate(localDate, dateFormatOptions), dateFormatOptions);\r\n var tdEle = this.islamicDayCell(localDate);\r\n var title = this.calendarInstance.globalize.formatDate(localDate, { type: 'date', skeleton: 'full', calendar: 'islamic' });\r\n var dayLink = this.calendarInstance.createElement('span');\r\n dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'date', skeleton: 'd', calendar: 'islamic' });\r\n var disabled = (this.calendarInstance.min > localDate) || (this.calendarInstance.max < localDate);\r\n if (disabled) {\r\n addClass([tdEle], DISABLED);\r\n addClass([tdEle], OVERLAY);\r\n }\r\n else {\r\n dayLink.setAttribute('title', '' + title);\r\n }\r\n var hijriMonthObject = this.getIslamicDate(localDate);\r\n if (currentMonth !== hijriMonthObject.month) {\r\n addClass([tdEle], OTHERMONTH);\r\n }\r\n if (localDate.getDay() === 0 || localDate.getDay() === 6) {\r\n addClass([tdEle], WEEKEND);\r\n }\r\n tdEle.appendChild(dayLink);\r\n this.calendarInstance.renderDayCellArgs = {\r\n date: localDate,\r\n isDisabled: false,\r\n element: tdEle,\r\n isOutOfRange: disabled\r\n };\r\n var argument = this.calendarInstance.renderDayCellArgs;\r\n this.calendarInstance.renderDayCellEvent(argument);\r\n if (argument.isDisabled) {\r\n if (this.calendarInstance.isMultiSelection) {\r\n if (!isNullOrUndefined(this.calendarInstance.values) && this.calendarInstance.values.length > 0) {\r\n for (var index = 0; index < values.length; index++) {\r\n var localDateString = +new Date(this.calendarInstance.globalize.formatDate(argument.date, { type: 'date', skeleton: 'yMd', calendar: 'islamic' }));\r\n var tempDateString = +new Date(this.calendarInstance.globalize.formatDate(this.calendarInstance.values[index], { type: 'date', skeleton: 'yMd', calendar: 'islamic' }));\r\n if (localDateString === tempDateString) {\r\n this.calendarInstance.values.splice(index, 1);\r\n index = -1;\r\n }\r\n }\r\n }\r\n }\r\n else if (value && +value === +argument.date) {\r\n this.calendarInstance.setProperties({ value: null }, true);\r\n }\r\n }\r\n if (this.calendarInstance.renderDayCellArgs.isDisabled && !tdEle.classList.contains(SELECTED)) {\r\n addClass([tdEle], DISABLED);\r\n addClass([tdEle], OVERLAY);\r\n if (+this.calendarInstance.renderDayCellArgs.date === +this.calendarInstance.todayDate) {\r\n this.calendarInstance.todayDisabled = true;\r\n }\r\n }\r\n var otherMnthBool = tdEle.classList.contains(OTHERMONTH);\r\n var disabledCls = tdEle.classList.contains(DISABLED);\r\n if (!disabledCls) {\r\n EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);\r\n }\r\n if (this.calendarInstance.isMultiSelection && !isNullOrUndefined(this.calendarInstance.values) &&\r\n !otherMnthBool && !disabledCls) {\r\n for (var tempValue = 0; tempValue < this.calendarInstance.values.length; tempValue++) {\r\n var localDateString = this.calendarInstance.globalize.formatDate(localDate, { type: 'date', skeleton: 'short', calendar: 'islamic' });\r\n var tempDateString = this.calendarInstance.globalize.formatDate(this.calendarInstance.values[tempValue], { type: 'date', skeleton: 'short', calendar: 'islamic' });\r\n if (localDateString === tempDateString &&\r\n this.calendarInstance.getDateVal(localDate, this.calendarInstance.values[tempValue])) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n this.calendarInstance.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n }\r\n }\r\n if (this.calendarInstance.values.length <= 0) {\r\n this.calendarInstance.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n }\r\n }\r\n else if (!otherMnthBool && !disabledCls && this.calendarInstance.getDateVal(localDate, value)) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n this.calendarInstance.updateFocus(otherMnthBool, disabledCls, localDate, tdEle, currentDate);\r\n }\r\n if (date.getDate() === new Date().getDate() && date.getMonth() === new Date().getMonth()) {\r\n if (date.getFullYear() === new Date().getFullYear()) {\r\n addClass([tdEle], TODAY);\r\n }\r\n }\r\n localDate = new Date(+minMaxDate);\r\n tdEles.push(this.calendarInstance.renderDayCellArgs.element);\r\n this.calendarInstance.addDay(localDate, 1, null, this.calendarInstance.max, this.calendarInstance.min);\r\n }\r\n return tdEles;\r\n };\r\n Islamic.prototype.islamicIconHandler = function () {\r\n new Date(this.islamicInValue(this.calendarInstance.currentDate)).setDate(1);\r\n var date = new Date(this.islamicInValue(this.calendarInstance.currentDate));\r\n switch (this.calendarInstance.currentView()) {\r\n case 'Month':\r\n {\r\n var prevMonthCompare = this.islamicCompareMonth(date, this.calendarInstance.min) < 1;\r\n var nextMonthCompare = this.islamicCompareMonth(date, this.calendarInstance.max) > -1;\r\n this.calendarInstance.previousIconHandler(prevMonthCompare);\r\n this.calendarInstance.nextIconHandler(nextMonthCompare);\r\n }\r\n break;\r\n case 'Year':\r\n {\r\n var prevYearCompare = this.hijriCompareYear(date, this.calendarInstance.min) < 1;\r\n var nextYearCompare = this.hijriCompareYear(date, this.calendarInstance.max) > -1;\r\n this.calendarInstance.previousIconHandler(prevYearCompare);\r\n this.calendarInstance.nextIconHandler(nextYearCompare);\r\n }\r\n break;\r\n case 'Decade': {\r\n var prevDecadeCompare = this.hijriCompareDecade(date, this.calendarInstance.min) < 1;\r\n var nextDecadeCompare = this.hijriCompareDecade(date, this.calendarInstance.max) > -1;\r\n this.calendarInstance.previousIconHandler(prevDecadeCompare);\r\n this.calendarInstance.nextIconHandler(nextDecadeCompare);\r\n }\r\n }\r\n };\r\n Islamic.prototype.islamicNext = function () {\r\n this.calendarInstance.effect = '';\r\n var view = this.calendarInstance.getViewNumber(this.calendarInstance.currentView());\r\n var islamicDate = this.getIslamicDate(this.calendarInstance.currentDate);\r\n switch (this.calendarInstance.currentView()) {\r\n case 'Year':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year + 1, islamicDate.month, 1);\r\n this.calendarInstance.switchView(view);\r\n break;\r\n case 'Month':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year, islamicDate.month + 1, 1);\r\n this.calendarInstance.switchView(view);\r\n break;\r\n case 'Decade':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year + 10, islamicDate.month, 1);\r\n this.calendarInstance.switchView(view);\r\n break;\r\n }\r\n };\r\n Islamic.prototype.islamicPrevious = function () {\r\n var currentView = this.calendarInstance.getViewNumber(this.calendarInstance.currentView());\r\n this.calendarInstance.effect = '';\r\n var islamicDate = this.getIslamicDate(this.calendarInstance.currentDate);\r\n switch (this.calendarInstance.currentView()) {\r\n case 'Month':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year, islamicDate.month - 1, 1);\r\n this.calendarInstance.switchView(currentView);\r\n break;\r\n case 'Year':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year - 1, islamicDate.month, 1);\r\n this.calendarInstance.switchView(currentView);\r\n break;\r\n case 'Decade':\r\n this.calendarInstance.currentDate = this.toGregorian(islamicDate.year - 10, islamicDate.month - 1, 1);\r\n this.calendarInstance.switchView(currentView);\r\n break;\r\n }\r\n };\r\n Islamic.prototype.islamicRenderYears = function (e, value) {\r\n this.calendarInstance.removeTableHeadElement();\r\n var numCells = 4;\r\n var tdEles = [];\r\n var valueUtil = isNullOrUndefined(value);\r\n var curDate = new Date(this.islamicInValue(this.calendarInstance.currentDate));\r\n var localDate = curDate;\r\n var islamicDate = this.getIslamicDate(localDate);\r\n var gregorianObject = HijriParser.toGregorian(islamicDate.year, 1, 1);\r\n localDate = gregorianObject;\r\n var mon = islamicDate.month;\r\n var yr = islamicDate.year;\r\n var curYrs = islamicDate.year;\r\n var minYr = (this.getIslamicDate(this.calendarInstance.min)).year;\r\n var minMonth = (this.getIslamicDate(this.calendarInstance.min)).month;\r\n var maxYr = (this.getIslamicDate(this.calendarInstance.max)).year;\r\n var maxMonth = (this.getIslamicDate(this.calendarInstance.max)).month;\r\n this.islamicTitleUpdate(this.calendarInstance.currentDate, 'months');\r\n for (var month = 1; month <= 12; ++month) {\r\n var islamicDate_1 = this.getIslamicDate(localDate);\r\n var gregorianObject_1 = HijriParser.toGregorian(islamicDate_1.year, month, 1);\r\n localDate = gregorianObject_1;\r\n var tdEle = this.islamicDayCell(localDate);\r\n var dayLink = this.calendarInstance.createElement('span');\r\n var localMonth = (value &&\r\n (this.getIslamicDate(value)).month === (this.getIslamicDate(localDate)).month);\r\n var select = (value && (this.getIslamicDate(value)).year === yr && localMonth);\r\n dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'MMM', calendar: 'islamic' });\r\n if ((this.calendarInstance.min && (curYrs < minYr || (month < minMonth && curYrs === minYr))) || (this.calendarInstance.max && (curYrs > maxYr || (month > maxMonth && curYrs >= maxYr)))) {\r\n addClass([tdEle], DISABLED);\r\n }\r\n else if (!valueUtil && select) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n if ((this.getIslamicDate(localDate)).month === mon &&\r\n (this.getIslamicDate(this.calendarInstance.currentDate)).month === mon) {\r\n addClass([tdEle], FOCUSEDDATE);\r\n }\r\n }\r\n if (!tdEle.classList.contains(DISABLED)) {\r\n EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);\r\n }\r\n tdEle.appendChild(dayLink);\r\n tdEles.push(tdEle);\r\n }\r\n this.islamicRenderTemplate(tdEles, numCells, YEAR, e, value);\r\n };\r\n Islamic.prototype.islamicRenderDecade = function (e, value) {\r\n this.calendarInstance.removeTableHeadElement();\r\n var numCells = 4;\r\n var yearCell = 12;\r\n var tdEles = [];\r\n var localDate = new Date(this.islamicInValue(this.calendarInstance.currentDate));\r\n var islamicDate = this.getIslamicDate(localDate);\r\n var gregorianObject = HijriParser.toGregorian(islamicDate.year, 1, 1);\r\n localDate = gregorianObject;\r\n var localYr = localDate.getFullYear();\r\n var startYr = new Date(this.islamicInValue((localYr - localYr % 10)));\r\n var endYr = new Date(this.islamicInValue((localYr - localYr % 10 + (10 - 1))));\r\n var startFullYr = startYr.getFullYear();\r\n var endFullYr = endYr.getFullYear();\r\n var startHdrYr = this.calendarInstance.globalize.formatDate(startYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });\r\n var endHdrYr = this.calendarInstance.globalize.formatDate(endYr, { type: 'dateTime', format: 'y', calendar: 'islamic' });\r\n this.calendarInstance.headerTitleElement.textContent = startHdrYr + ' - ' + (endHdrYr);\r\n var start = new Date(localYr - (localYr % 10) - 2, 0, 1);\r\n var startYear = start.getFullYear();\r\n for (var rowCount = 1; rowCount <= yearCell; ++rowCount) {\r\n var year = startYear + rowCount;\r\n localDate.setFullYear(year);\r\n localDate.setDate(1);\r\n localDate.setMonth(0);\r\n var islamicDate_2 = this.getIslamicDate(localDate);\r\n var gregorianObject_2 = HijriParser.toGregorian(islamicDate_2.year, 1, 1);\r\n localDate = gregorianObject_2;\r\n var tdEle = this.islamicDayCell(localDate);\r\n attributes(tdEle, { 'role': 'gridcell' });\r\n var dayLink = this.calendarInstance.createElement('span');\r\n dayLink.textContent = this.calendarInstance.globalize.formatDate(localDate, { type: 'dateTime', format: 'y', calendar: 'islamic' });\r\n if ((year < startFullYr) || (year > endFullYr)) {\r\n addClass([tdEle], OTHERMONTH);\r\n }\r\n else if (year < new Date(this.islamicInValue(this.calendarInstance.min)).getFullYear()\r\n || year > new Date(this.islamicInValue(this.calendarInstance.max)).getFullYear()) {\r\n addClass([tdEle], DISABLED);\r\n }\r\n else if (!isNullOrUndefined(value) &&\r\n (this.getIslamicDate(localDate)).year ===\r\n (this.getIslamicDate(value)).year) {\r\n addClass([tdEle], SELECTED);\r\n }\r\n else {\r\n if (localDate.getFullYear() === this.calendarInstance.currentDate.getFullYear() && !tdEle.classList.contains(DISABLED)) {\r\n addClass([tdEle], FOCUSEDDATE);\r\n }\r\n }\r\n if (!tdEle.classList.contains(DISABLED)) {\r\n EventHandler.add(tdEle, 'click', this.calendarInstance.clickHandler, this.calendarInstance);\r\n }\r\n tdEle.appendChild(dayLink);\r\n tdEles.push(tdEle);\r\n }\r\n this.islamicRenderTemplate(tdEles, numCells, 'e-decade', e, value);\r\n };\r\n Islamic.prototype.islamicDayCell = function (localDate) {\r\n var dateFormatOptions = { skeleton: 'full', type: 'dateTime', calendar: 'islamic' };\r\n var formatDate = this.calendarInstance.globalize.formatDate(localDate, dateFormatOptions);\r\n var date = this.calendarInstance.globalize.parseDate(formatDate, dateFormatOptions);\r\n var value = date.valueOf();\r\n var attrs = {\r\n className: CELL, attrs: { 'id': '' + getUniqueID('' + value), 'aria-selected': 'false', 'role': 'gridcell' }\r\n };\r\n return this.calendarInstance.createElement('td', attrs);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Islamic.prototype.islamicRenderTemplate = function (elements, count, classNm, e, value) {\r\n var view = this.calendarInstance.getViewNumber(this.calendarInstance.currentView());\r\n var trEle;\r\n this.calendarInstance.tableBodyElement = this.calendarInstance.createElement('tbody');\r\n this.calendarInstance.table.appendChild(this.calendarInstance.tableBodyElement);\r\n removeClass([this.calendarInstance.contentElement, this.calendarInstance.headerElement], [MONTH, DECADE, YEAR]);\r\n addClass([this.calendarInstance.contentElement, this.calendarInstance.headerElement], [classNm]);\r\n var weekNumCell = 41;\r\n var numberCell = 35;\r\n var otherMonthCell = 6;\r\n var row = count;\r\n var rowCount = 0;\r\n for (var dayCell = 0; dayCell < elements.length / count; ++dayCell) {\r\n trEle = this.calendarInstance.createElement('tr', { attrs: { 'role': 'row' } });\r\n for (rowCount = 0 + rowCount; rowCount < row; rowCount++) {\r\n if (!elements[rowCount].classList.contains('e-week-number') && !isNullOrUndefined(elements[rowCount].children[0])) {\r\n addClass([elements[rowCount].children[0]], [LINK]);\r\n rippleEffect(elements[rowCount].children[0], {\r\n duration: 600,\r\n isCenterRipple: true\r\n });\r\n }\r\n trEle.appendChild(elements[rowCount]);\r\n if (this.calendarInstance.weekNumber &&\r\n rowCount === otherMonthCell + 1 && elements[otherMonthCell + 1].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n if (!this.calendarInstance.weekNumber\r\n && rowCount === otherMonthCell && elements[otherMonthCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n if (this.calendarInstance.weekNumber) {\r\n if (rowCount === weekNumCell && elements[weekNumCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n }\r\n else {\r\n if (rowCount === numberCell && elements[numberCell].classList.contains(OTHERMONTH)) {\r\n addClass([trEle], OTHERMONTHROW);\r\n }\r\n }\r\n }\r\n row = row + count;\r\n rowCount = rowCount + 0;\r\n this.calendarInstance.tableBodyElement.appendChild(trEle);\r\n }\r\n this.calendarInstance.table.querySelector('tbody').className = this.calendarInstance.effect;\r\n this.islamicIconHandler();\r\n if (view !== this.calendarInstance.getViewNumber(this.calendarInstance.currentView())\r\n || (view === 0 && view !== this.calendarInstance.getViewNumber(this.calendarInstance.currentView()))) {\r\n this.calendarInstance.navigateHandler(e);\r\n }\r\n this.calendarInstance.setAriaActiveDescendant();\r\n this.calendarInstance.changedArgs = { value: this.calendarInstance.value, values: this.calendarInstance.values };\r\n this.calendarInstance.changeHandler();\r\n };\r\n Islamic.prototype.islamicCompareMonth = function (start, end) {\r\n var hijriStart = (this.getIslamicDate(start));\r\n var hijriEnd = (this.getIslamicDate(end));\r\n var result;\r\n if (hijriStart.year > hijriEnd.year) {\r\n result = 1;\r\n }\r\n else if (hijriStart.year < hijriEnd.year) {\r\n result = -1;\r\n }\r\n else {\r\n result = hijriStart.month === hijriEnd.month ? 0 : hijriStart.month > hijriEnd.month ? 1 : -1;\r\n }\r\n return result;\r\n };\r\n Islamic.prototype.islamicCompare = function (startDate, endDate, modifier) {\r\n var hijriStart = this.getIslamicDate(startDate);\r\n var hijriEnd = this.getIslamicDate(endDate);\r\n var start = hijriEnd.year;\r\n var end;\r\n var result;\r\n end = start;\r\n result = 0;\r\n if (modifier) {\r\n start = start - start % modifier;\r\n end = start - start % modifier + modifier - 1;\r\n }\r\n if (hijriStart.year > end) {\r\n result = 1;\r\n }\r\n else if ((this.calendarInstance.currentView() === 'Decade') && hijriStart.year < start &&\r\n !((startDate.getFullYear() >= minDecade && startDate.getFullYear() <= maxDecade))) {\r\n result = -1;\r\n }\r\n else if (hijriStart.year < start && (this.calendarInstance.currentView() === 'Year')) {\r\n result = -1;\r\n }\r\n return result;\r\n };\r\n Islamic.prototype.getIslamicDate = function (date) {\r\n return (HijriParser.getHijriDate(date));\r\n };\r\n Islamic.prototype.toGregorian = function (year, month, date) {\r\n return HijriParser.toGregorian(year, month, date);\r\n };\r\n Islamic.prototype.hijriCompareYear = function (start, end) {\r\n return this.islamicCompare(start, end, 0);\r\n };\r\n Islamic.prototype.hijriCompareDecade = function (start, end) {\r\n return this.islamicCompare(start, end, 10);\r\n };\r\n Islamic.prototype.destroy = function () {\r\n this.calendarInstance = null;\r\n };\r\n Islamic.prototype.islamicInValue = function (inValue) {\r\n if (inValue instanceof Date) {\r\n return (inValue.toUTCString());\r\n }\r\n else {\r\n return ('' + inValue);\r\n }\r\n };\r\n return Islamic;\r\n}());\r\nexport { Islamic };\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, Animation, Event, extend, L10n, Browser, formatUnit } from '@syncfusion/ej2-base';\r\nimport { detach, addClass, removeClass, closest, attributes } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, setValue, getUniqueID } from '@syncfusion/ej2-base';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { Calendar } from '../calendar/calendar';\r\n//class constant defination\r\nvar DATEWRAPPER = 'e-date-wrapper';\r\nvar ROOT = 'e-datepicker';\r\nvar LIBRARY = 'e-lib';\r\nvar CONTROL = 'e-control';\r\nvar POPUPWRAPPER = 'e-popup-wrapper';\r\nvar INPUTWRAPPER = 'e-input-group-icon';\r\nvar POPUP = 'e-popup';\r\nvar INPUTCONTAINER = 'e-input-group';\r\nvar INPUTFOCUS = 'e-input-focus';\r\nvar INPUTROOT = 'e-input';\r\nvar ERROR = 'e-error';\r\nvar ACTIVE = 'e-active';\r\nvar OVERFLOW = 'e-date-overflow';\r\nvar DATEICON = 'e-date-icon';\r\nvar CLEARICON = 'e-clear-icon';\r\nvar ICONS = 'e-icons';\r\nvar OPENDURATION = 300;\r\nvar OFFSETVALUE = 4;\r\nvar SELECTED = 'e-selected';\r\nvar FOCUSEDDATE = 'e-focused-date';\r\nvar NONEDIT = 'e-non-edit';\r\nvar containerAttr = ['title', 'class', 'style'];\r\n/**\r\n * Represents the DatePicker component that allows user to select\r\n * or enter a date value.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar DatePicker = /** @class */ (function (_super) {\r\n __extends(DatePicker, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @param {DatePickerModel} options - Specifies the DatePicker model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function DatePicker(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.previousElementValue = '';\r\n _this.isDateIconClicked = false;\r\n _this.isAltKeyPressed = false;\r\n _this.isInteracted = true;\r\n _this.invalidValueString = null;\r\n _this.checkPreviousValue = null;\r\n _this.maskedDateValue = '';\r\n _this.isAngular = false;\r\n _this.preventChange = false;\r\n _this.isIconClicked = false;\r\n _this.isDynamicValueChanged = false;\r\n _this.moduleName = _this.getModuleName();\r\n _this.datepickerOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DatePicker.prototype.render = function () {\r\n this.initialize();\r\n this.bindEvents();\r\n this.renderComplete();\r\n this.setTimeZone(this.serverTimezoneOffset);\r\n };\r\n DatePicker.prototype.setTimeZone = function (offsetValue) {\r\n if (!isNullOrUndefined(this.serverTimezoneOffset) && this.value) {\r\n var clientTimeZoneDiff = new Date().getTimezoneOffset() / 60;\r\n var serverTimezoneDiff = offsetValue;\r\n var timeZoneDiff = serverTimezoneDiff + clientTimeZoneDiff;\r\n timeZoneDiff = this.isDayLightSaving() ? timeZoneDiff-- : timeZoneDiff;\r\n this.value = new Date((this.value).getTime() + (timeZoneDiff * 60 * 60 * 1000));\r\n this.updateInput();\r\n }\r\n };\r\n DatePicker.prototype.isDayLightSaving = function () {\r\n var firstOffset = new Date(this.value.getFullYear(), 0, 1).getTimezoneOffset();\r\n var secondOffset = new Date(this.value.getFullYear(), 6, 1).getTimezoneOffset();\r\n return (this.value.getTimezoneOffset() < Math.max(firstOffset, secondOffset));\r\n };\r\n DatePicker.prototype.setAllowEdit = function () {\r\n if (this.allowEdit) {\r\n if (!this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n }\r\n else {\r\n attributes(this.inputElement, { 'readonly': '' });\r\n }\r\n this.updateIconState();\r\n };\r\n DatePicker.prototype.updateIconState = function () {\r\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\r\n if (this.inputElement.value === '') {\r\n removeClass([this.inputWrapper.container], [NONEDIT]);\r\n }\r\n else {\r\n addClass([this.inputWrapper.container], [NONEDIT]);\r\n }\r\n }\r\n else if (this.inputWrapper) {\r\n removeClass([this.inputWrapper.container], [NONEDIT]);\r\n }\r\n };\r\n DatePicker.prototype.initialize = function () {\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n this.checkInvalidValue(this.value);\r\n this.createInput();\r\n this.updateHtmlAttributeToWrapper();\r\n this.setAllowEdit();\r\n this.updateInput();\r\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType == 'Always' || !this.floatLabelType || !this.placeholder)) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n this.previousElementValue = this.inputElement.value;\r\n this.previousDate = !isNullOrUndefined(this.value) ? new Date(+this.value) : null;\r\n this.inputElement.setAttribute('value', this.inputElement.value);\r\n this.inputValueCopy = this.value;\r\n };\r\n DatePicker.prototype.createInput = function () {\r\n var ariaAttrs = {\r\n 'aria-live': 'assertive', 'aria-atomic': 'true',\r\n 'aria-haspopup': 'true', 'aria-activedescendant': 'null',\r\n 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-invalid': 'false'\r\n };\r\n if (this.getModuleName() === 'datepicker') {\r\n var l10nLocale = { placeholder: this.placeholder };\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n = new L10n('datepicker', l10nLocale, this.locale);\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n }\r\n var updatedCssClassValues = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n var isBindClearAction = this.enableMask ? false : true;\r\n this.inputWrapper = Input.createInput({\r\n element: this.inputElement,\r\n floatLabelType: this.floatLabelType,\r\n bindClearAction: isBindClearAction,\r\n properties: {\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n cssClass: updatedCssClassValues,\r\n enabled: this.enabled,\r\n enableRtl: this.enableRtl,\r\n showClearButton: this.showClearButton\r\n },\r\n buttons: [INPUTWRAPPER + ' ' + DATEICON + ' ' + ICONS]\r\n }, this.createElement);\r\n this.setWidth(this.width);\r\n if (this.inputElement.name !== '') {\r\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute('name'));\r\n }\r\n else {\r\n this.inputElement.setAttribute('name', '' + this.element.id);\r\n }\r\n attributes(this.inputElement, ariaAttrs);\r\n if (!this.enabled) {\r\n this.inputElement.setAttribute('aria-disabled', 'true');\r\n this.inputElement.tabIndex = -1;\r\n }\r\n else {\r\n this.inputElement.setAttribute('aria-disabled', 'false');\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);\r\n addClass([this.inputWrapper.container], DATEWRAPPER);\r\n };\r\n DatePicker.prototype.updateInput = function (isDynamic) {\r\n if (isDynamic === void 0) { isDynamic = false; }\r\n var formatOptions;\r\n if (this.value && !this.isCalendar() && !isDynamic) {\r\n this.disabledDates();\r\n }\r\n if (isNaN(+new Date(this.checkValue(this.value)))) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n if (this.strictMode) {\r\n //calls the Calendar processDate protected method to update the date value according to the strictMode true behaviour.\r\n _super.prototype.validateDate.call(this);\r\n this.minMaxUpdates();\r\n _super.prototype.minMaxUpdate.call(this);\r\n }\r\n if (!isNullOrUndefined(this.value)) {\r\n var dateValue = this.value;\r\n var dateString = void 0;\r\n var tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n if (this.calendarMode === 'Gregorian') {\r\n dateString = this.globalize.formatDate(this.value, {\r\n format: tempFormat, type: 'dateTime', skeleton: 'yMd'\r\n });\r\n }\r\n else {\r\n dateString = this.globalize.formatDate(this.value, {\r\n format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\r\n });\r\n }\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n dateString = this.globalize.formatDate(this.value, formatOptions);\r\n }\r\n if ((+dateValue <= +this.max) && (+dateValue >= +this.min)) {\r\n this.updateInputValue(dateString);\r\n }\r\n else {\r\n var value = (+dateValue >= +this.max || !+this.value) || (!+this.value || +dateValue <= +this.min);\r\n if (!this.strictMode && value) {\r\n this.updateInputValue(dateString);\r\n }\r\n }\r\n }\r\n if (isNullOrUndefined(this.value) && this.strictMode) {\r\n if (!this.enableMask) {\r\n this.updateInputValue('');\r\n }\r\n else {\r\n this.updateInputValue(this.maskedDateValue);\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n }\r\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\r\n this.updateInputValue(this.invalidValueString);\r\n }\r\n this.changedArgs = { value: this.value };\r\n this.errorClass();\r\n this.updateIconState();\r\n };\r\n DatePicker.prototype.minMaxUpdates = function () {\r\n if (!isNullOrUndefined(this.value) && this.value < this.min && this.min <= this.max && this.strictMode) {\r\n this.setProperties({ value: this.min }, true);\r\n this.changedArgs = { value: this.value };\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.value) && this.value > this.max && this.min <= this.max && this.strictMode) {\r\n this.setProperties({ value: this.max }, true);\r\n this.changedArgs = { value: this.value };\r\n }\r\n }\r\n };\r\n DatePicker.prototype.checkStringValue = function (val) {\r\n var returnDate = null;\r\n var formatOptions = null;\r\n var formatDateTime = null;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n var culture = new Internationalization(this.locale);\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\r\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\r\n }\r\n else {\r\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\r\n }\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n }\r\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatOptions));\r\n if (isNullOrUndefined(returnDate) && (this.getModuleName() === 'datetimepicker')) {\r\n returnDate = this.checkDateValue(this.globalize.parseDate(val, formatDateTime));\r\n }\r\n return returnDate;\r\n };\r\n DatePicker.prototype.checkInvalidValue = function (value) {\r\n if (!(value instanceof Date) && !isNullOrUndefined(value)) {\r\n var valueDate = null;\r\n var valueString = value;\r\n if (typeof value === 'number') {\r\n valueString = value.toString();\r\n }\r\n var formatOptions = null;\r\n var formatDateTime = null;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n var culture = new Internationalization(this.locale);\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd' };\r\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime' };\r\n }\r\n else {\r\n formatOptions = { format: this.dateTimeFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n formatDateTime = { format: culture.getDatePattern({ skeleton: 'yMd' }), type: 'dateTime', calendar: 'islamic' };\r\n }\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n }\r\n var invalid = false;\r\n if (typeof valueString !== 'string') {\r\n valueString = null;\r\n invalid = true;\r\n }\r\n else {\r\n if (typeof valueString === 'string') {\r\n valueString = valueString.trim();\r\n }\r\n valueDate = this.checkStringValue(valueString);\r\n if (!valueDate) {\r\n var extISOString = null;\r\n var basicISOString = null;\r\n // eslint-disable-next-line\r\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n // eslint-disable-next-line\r\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\r\n || (/^[a-zA-Z0-9- ]*$/).test(valueString) || isNaN(+new Date(this.checkValue(valueString)))) {\r\n invalid = true;\r\n }\r\n else {\r\n valueDate = new Date(valueString);\r\n }\r\n }\r\n }\r\n if (invalid) {\r\n if (!this.strictMode) {\r\n this.invalidValueString = valueString;\r\n }\r\n this.setProperties({ value: null }, true);\r\n }\r\n else {\r\n this.setProperties({ value: valueDate }, true);\r\n }\r\n }\r\n };\r\n DatePicker.prototype.bindInputEvent = function () {\r\n if (!isNullOrUndefined(this.formatString) || this.enableMask) {\r\n if (this.enableMask || this.formatString.indexOf('y') === -1) {\r\n EventHandler.add(this.inputElement, 'input', this.inputHandler, this);\r\n }\r\n else {\r\n EventHandler.remove(this.inputElement, 'input', this.inputHandler);\r\n }\r\n }\r\n };\r\n DatePicker.prototype.bindEvents = function () {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler, this);\r\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\r\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\r\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\r\n if (this.enableMask) {\r\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\r\n }\r\n this.bindInputEvent();\r\n // To prevent the twice triggering.\r\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\r\n }\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.resetFormHandler, this);\r\n }\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\r\n this.keyboardModules = new KeyboardEvents(this.inputElement, {\r\n eventName: 'keydown',\r\n keyAction: this.inputKeyActionHandle.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n };\r\n DatePicker.prototype.keydownHandler = function (e) {\r\n switch (e.code) {\r\n case 'ArrowLeft':\r\n case 'ArrowRight':\r\n case 'ArrowUp':\r\n case 'ArrowDown':\r\n case 'Home':\r\n case 'End':\r\n case 'Delete':\r\n if (this.enableMask && !this.popupObj && !this.readonly) {\r\n if (e.code !== 'Delete') {\r\n e.preventDefault();\r\n }\r\n this.notify(\"keyDownHandler\", {\r\n module: \"MaskedDateTime\",\r\n e: e\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n DatePicker.prototype.unBindEvents = function () {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateIconHandler);\r\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\r\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\r\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\r\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\r\n if (this.enableMask) {\r\n EventHandler.remove(this.inputElement, 'keydown', this.keydownHandler);\r\n }\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler);\r\n }\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\r\n }\r\n };\r\n DatePicker.prototype.resetFormHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (!this.inputElement.disabled) {\r\n var value = this.inputElement.getAttribute('value');\r\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\r\n value = '';\r\n this.inputValueCopy = null;\r\n this.inputElement.setAttribute('value', '');\r\n }\r\n this.setProperties({ value: this.inputValueCopy }, true);\r\n this.restoreValue();\r\n if (this.inputElement) {\r\n this.updateInputValue(value);\r\n this.errorClass();\r\n }\r\n }\r\n };\r\n DatePicker.prototype.restoreValue = function () {\r\n this.currentDate = this.value ? this.value : new Date();\r\n this.previousDate = this.value;\r\n this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\r\n this.globalize.formatDate(this.inputValueCopy, {\r\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\r\n });\r\n };\r\n DatePicker.prototype.inputChangeHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n e.stopPropagation();\r\n };\r\n DatePicker.prototype.bindClearEvent = function () {\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\r\n }\r\n };\r\n DatePicker.prototype.resetHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n e.preventDefault();\r\n this.clear(e);\r\n };\r\n DatePicker.prototype.mouseUpHandler = function (e) {\r\n if (this.enableMask) {\r\n e.preventDefault();\r\n this.notify(\"setMaskSelection\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n };\r\n DatePicker.prototype.clear = function (event) {\r\n this.setProperties({ value: null }, true);\r\n if (!this.enableMask) {\r\n this.updateInputValue('');\r\n }\r\n var clearedArgs = {\r\n event: event\r\n };\r\n this.trigger('cleared', clearedArgs);\r\n this.invalidValueString = '';\r\n this.updateInput();\r\n this.popupUpdate();\r\n this.changeEvent(event);\r\n if (this.enableMask) {\r\n this.notify(\"clearHandler\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n };\r\n DatePicker.prototype.preventEventBubbling = function (e) {\r\n e.preventDefault();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.interopAdaptor.invokeMethodAsync('OnDateIconClick');\r\n };\r\n DatePicker.prototype.updateInputValue = function (value) {\r\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\r\n };\r\n DatePicker.prototype.dateIconHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.isIconClicked = true;\r\n if (Browser.isDevice) {\r\n this.inputElement.setAttribute('readonly', '');\r\n this.inputElement.blur();\r\n }\r\n e.preventDefault();\r\n if (!this.readonly) {\r\n if (this.isCalendar()) {\r\n this.hide(e);\r\n }\r\n else {\r\n this.isDateIconClicked = true;\r\n this.show(null, e);\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.inputElement.focus();\r\n }\r\n this.inputElement.focus();\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n addClass(this.inputWrapper.buttons, ACTIVE);\r\n }\r\n }\r\n this.isIconClicked = false;\r\n };\r\n DatePicker.prototype.updateHtmlAttributeToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (!isNullOrUndefined(this.htmlAttributes[key])) {\r\n if (containerAttr.indexOf(key) > -1) {\r\n if (key === 'class') {\r\n var updatedClassValues = (this.htmlAttributes[key].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValues !== '') {\r\n addClass([this.inputWrapper.container], updatedClassValues.split(' '));\r\n }\r\n }\r\n else if (key === 'style') {\r\n var setStyle = this.inputWrapper.container.getAttribute(key);\r\n if (!isNullOrUndefined(setStyle)) {\r\n if (setStyle.charAt(setStyle.length - 1) === ';') {\r\n setStyle = setStyle + this.htmlAttributes[key];\r\n }\r\n else {\r\n setStyle = setStyle + ';' + this.htmlAttributes[key];\r\n }\r\n }\r\n else {\r\n setStyle = this.htmlAttributes[key];\r\n }\r\n this.inputWrapper.container.setAttribute(key, setStyle);\r\n }\r\n else {\r\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DatePicker.prototype.updateHtmlAttributeToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (containerAttr.indexOf(key) < 0) {\r\n this.inputElement.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n };\r\n DatePicker.prototype.updateCssClass = function (newCssClass, oldCssClass) {\r\n if (!isNullOrUndefined(oldCssClass)) {\r\n oldCssClass = (oldCssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(newCssClass)) {\r\n newCssClass = (newCssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n Input.setCssClass(newCssClass, [this.inputWrapper.container], oldCssClass);\r\n if (this.popupWrapper) {\r\n Input.setCssClass(newCssClass, [this.popupWrapper], oldCssClass);\r\n }\r\n };\r\n DatePicker.prototype.calendarKeyActionHandle = function (e) {\r\n switch (e.action) {\r\n case 'escape':\r\n if (this.isCalendar()) {\r\n this.hide(e);\r\n }\r\n else {\r\n this.inputWrapper.container.children[this.index].blur();\r\n }\r\n break;\r\n case 'enter':\r\n if (!this.isCalendar()) {\r\n this.show(null, e);\r\n }\r\n else {\r\n if (+this.value !== +this.currentDate && !this.isCalendar()) {\r\n this.inputWrapper.container.children[this.index].focus();\r\n }\r\n }\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.inputElement.focus();\r\n }\r\n break;\r\n case 'tab':\r\n this.hide(e);\r\n }\r\n };\r\n DatePicker.prototype.inputFocusHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\r\n if (this.maskedDateValue && !this.value && (this.floatLabelType == 'Auto' || this.floatLabelType == 'Never' || this.placeholder)) {\r\n this.updateInputValue(this.maskedDateValue);\r\n this.inputElement.selectionStart = 0;\r\n this.inputElement.selectionEnd = this.inputElement.value.length;\r\n }\r\n }\r\n var focusArguments = {\r\n model: this\r\n };\r\n this.isDateIconClicked = false;\r\n this.trigger('focus', focusArguments);\r\n this.updateIconState();\r\n if (this.openOnFocus && !this.isIconClicked) {\r\n this.show();\r\n }\r\n };\r\n DatePicker.prototype.inputHandler = function () {\r\n this.isPopupClicked = false;\r\n if (this.enableMask) {\r\n this.notify(\"inputHandler\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n };\r\n DatePicker.prototype.inputBlurHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.strictModeUpdate();\r\n if (this.inputElement.value === '' && isNullOrUndefined(this.value)) {\r\n this.invalidValueString = null;\r\n this.updateInputValue('');\r\n }\r\n this.updateInput();\r\n this.popupUpdate();\r\n this.changeTrigger(e);\r\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\r\n if (this.inputElement.value == this.maskedDateValue && !this.value && (this.floatLabelType == 'Auto' || this.floatLabelType == 'Never' || this.placeholder)) {\r\n this.updateInputValue('');\r\n }\r\n }\r\n this.errorClass();\r\n if (this.isCalendar() && document.activeElement === this.inputElement) {\r\n this.hide(e);\r\n }\r\n if (this.getModuleName() === 'datepicker') {\r\n var blurArguments = {\r\n model: this\r\n };\r\n this.trigger('blur', blurArguments);\r\n }\r\n if (this.isCalendar()) {\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\r\n this.calendarKeyboardModules = new KeyboardEvents(this.calendarElement.children[1].firstElementChild, {\r\n eventName: 'keydown',\r\n keyAction: this.calendarKeyActionHandle.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n }\r\n this.isPopupClicked = false;\r\n };\r\n DatePicker.prototype.documentHandler = function (e) {\r\n if ((!isNullOrUndefined(this.popupObj) && (this.inputWrapper.container.contains(e.target) ||\r\n (this.popupObj.element && this.popupObj.element.contains(e.target)))) && e.type !== 'touchstart') {\r\n e.preventDefault();\r\n }\r\n var target = e.target;\r\n if (!(closest(target, '.e-datepicker.e-popup-wrapper'))\r\n && !(closest(target, '.' + INPUTCONTAINER) === this.inputWrapper.container)\r\n && (!target.classList.contains('e-day'))) {\r\n this.hide(e);\r\n this.focusOut();\r\n }\r\n else if (closest(target, '.e-datepicker.e-popup-wrapper')) {\r\n // Fix for close the popup when select the previously selected value.\r\n if (target.classList.contains('e-day')\r\n && !isNullOrUndefined(e.target.parentElement)\r\n && e.target.parentElement.classList.contains('e-selected')\r\n && closest(target, '.e-content')\r\n && closest(target, '.e-content').classList.contains('e-' + this.depth.toLowerCase())) {\r\n this.hide(e);\r\n }\r\n else if (closest(target, '.e-footer-container')\r\n && target.classList.contains('e-today')\r\n && target.classList.contains('e-btn')\r\n && (+new Date(+this.value) === +_super.prototype.generateTodayVal.call(this, this.value))) {\r\n this.hide(e);\r\n }\r\n }\r\n };\r\n DatePicker.prototype.inputKeyActionHandle = function (e) {\r\n var clickedView = this.currentView();\r\n switch (e.action) {\r\n case 'altUpArrow':\r\n this.isAltKeyPressed = false;\r\n this.hide(e);\r\n this.inputElement.focus();\r\n break;\r\n case 'altDownArrow':\r\n this.isAltKeyPressed = true;\r\n this.strictModeUpdate();\r\n this.updateInput();\r\n this.changeTrigger(e);\r\n if (this.getModuleName() === 'datepicker') {\r\n this.show(null, e);\r\n }\r\n break;\r\n case 'escape':\r\n this.hide(e);\r\n break;\r\n case 'enter':\r\n this.strictModeUpdate();\r\n this.updateInput();\r\n this.popupUpdate();\r\n this.changeTrigger(e);\r\n this.errorClass();\r\n if (!this.isCalendar() && document.activeElement === this.inputElement) {\r\n this.hide(e);\r\n }\r\n if (this.isCalendar()) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n break;\r\n case 'tab':\r\n case 'shiftTab':\r\n var start = this.inputElement.selectionStart;\r\n var end = this.inputElement.selectionEnd;\r\n if (this.enableMask && !this.popupObj && !this.readonly) {\r\n var length_1 = this.inputElement.value.length;\r\n if ((start == 0 && end == length_1) || (end !== length_1 && e.action == 'tab') || (start !== 0 && e.action == 'shiftTab')) {\r\n e.preventDefault();\r\n }\r\n this.notify(\"keyDownHandler\", {\r\n module: \"MaskedDateTime\",\r\n e: e\r\n });\r\n start = this.inputElement.selectionStart;\r\n end = this.inputElement.selectionEnd;\r\n }\r\n this.strictModeUpdate();\r\n this.updateInput();\r\n this.popupUpdate();\r\n this.changeTrigger(e);\r\n this.errorClass();\r\n if (this.enableMask) {\r\n this.inputElement.selectionStart = start;\r\n this.inputElement.selectionEnd = end;\r\n }\r\n this.hide(e);\r\n break;\r\n default:\r\n this.defaultAction(e);\r\n // Fix for close the popup when select the previously selected value.\r\n if (e.action === 'select' && clickedView === this.depth) {\r\n this.hide(e);\r\n }\r\n }\r\n };\r\n DatePicker.prototype.defaultAction = function (e) {\r\n this.previousDate = ((!isNullOrUndefined(this.value) && new Date(+this.value)) || null);\r\n if (this.isCalendar()) {\r\n _super.prototype.keyActionHandle.call(this, e);\r\n if (this.isCalendar()) {\r\n attributes(this.inputElement, {\r\n 'aria-activedescendant': '' + this.setActiveDescendant()\r\n });\r\n }\r\n }\r\n };\r\n DatePicker.prototype.popupUpdate = function () {\r\n if ((isNullOrUndefined(this.value)) && (!isNullOrUndefined(this.previousDate)) ||\r\n (+this.value !== +this.previousDate)) {\r\n if (this.popupObj) {\r\n if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {\r\n removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [SELECTED]);\r\n }\r\n }\r\n if (!isNullOrUndefined(this.value)) {\r\n if ((+this.value >= +this.min) && (+this.value <= +this.max)) {\r\n var targetdate = new Date(this.checkValue(this.value));\r\n _super.prototype.navigateTo.call(this, 'Month', targetdate);\r\n }\r\n }\r\n }\r\n };\r\n DatePicker.prototype.strictModeUpdate = function () {\r\n var format;\r\n var formatOptions;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n format = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\r\n }\r\n else {\r\n format = isNullOrUndefined(this.formatString) ? this.formatString : this.formatString.replace('dd', 'd');\r\n }\r\n if (!isNullOrUndefined(format)) {\r\n var len = format.split('M').length - 1;\r\n if (len < 3) {\r\n format = format.replace('MM', 'M');\r\n }\r\n }\r\n var dateOptions;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n if (this.calendarMode === 'Gregorian') {\r\n dateOptions = {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd'\r\n };\r\n }\r\n else {\r\n dateOptions = {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\r\n };\r\n }\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: format, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n dateOptions = formatOptions;\r\n }\r\n var date;\r\n if (typeof this.inputElement.value === 'string') {\r\n this.inputElement.value = this.inputElement.value.trim();\r\n }\r\n if ((this.getModuleName() === 'datetimepicker')) {\r\n if (this.checkDateValue(this.globalize.parseDate(this.inputElement.value, dateOptions))) {\r\n date = this.globalize.parseDate(this.inputElement.value, dateOptions);\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n date = this.globalize.parseDate(this.inputElement.value, formatOptions);\r\n }\r\n }\r\n else {\r\n date = this.globalize.parseDate(this.inputElement.value, dateOptions);\r\n date = (!isNullOrUndefined(date) && isNaN(+date)) ? null : date;\r\n if (!isNullOrUndefined(this.formatString) && this.inputElement.value !== '' && this.strictMode) {\r\n if ((this.isPopupClicked || (!this.isPopupClicked && this.inputElement.value === this.previousElementValue))\r\n && this.formatString.indexOf('y') === -1) {\r\n date.setFullYear(this.value.getFullYear());\r\n }\r\n }\r\n }\r\n // EJ2-35061 - To prevent change event from triggering twice when using strictmode and format property\r\n if ((this.getModuleName() === 'datepicker') && (this.value && !isNaN(+this.value)) && date) {\r\n date.setHours(this.value.getHours(), this.value.getMinutes(), this.value.getSeconds(), this.value.getMilliseconds());\r\n }\r\n if (this.strictMode && date) {\r\n this.updateInputValue(this.globalize.formatDate(date, dateOptions));\r\n if (this.inputElement.value !== this.previousElementValue) {\r\n this.setProperties({ value: date }, true);\r\n }\r\n }\r\n else if (!this.strictMode) {\r\n if (this.inputElement.value !== this.previousElementValue) {\r\n this.setProperties({ value: date }, true);\r\n }\r\n }\r\n if (this.strictMode && !date && this.inputElement.value === '') {\r\n this.setProperties({ value: null }, true);\r\n }\r\n if (isNaN(+this.value)) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n if (isNullOrUndefined(this.value)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n }\r\n };\r\n DatePicker.prototype.createCalendar = function () {\r\n var _this = this;\r\n this.popupWrapper = this.createElement('div', { className: '' + ROOT + ' ' + POPUPWRAPPER });\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n this.popupWrapper.className += ' ' + this.cssClass;\r\n }\r\n if (Browser.isDevice) {\r\n this.modelHeader();\r\n this.modal = this.createElement('div');\r\n this.modal.className = '' + ROOT + ' e-date-modal';\r\n document.body.className += ' ' + OVERFLOW;\r\n this.modal.style.display = 'block';\r\n document.body.appendChild(this.modal);\r\n }\r\n //this.calendarElement represent the Calendar object from the Calendar class.\r\n this.calendarElement.querySelector('table tbody').className = '';\r\n this.popupObj = new Popup(this.popupWrapper, {\r\n content: this.calendarElement,\r\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\r\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\r\n offsetY: OFFSETVALUE,\r\n targetType: 'container',\r\n enableRtl: this.enableRtl,\r\n zIndex: this.zIndex,\r\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\r\n open: function () {\r\n if (_this.getModuleName() !== 'datetimepicker') {\r\n if (document.activeElement !== _this.inputElement) {\r\n _this.defaultKeyConfigs = extend(_this.defaultKeyConfigs, _this.keyConfigs);\r\n _this.calendarElement.children[1].firstElementChild.focus();\r\n _this.calendarKeyboardModules = new KeyboardEvents(_this.calendarElement.children[1].firstElementChild, {\r\n eventName: 'keydown',\r\n keyAction: _this.calendarKeyActionHandle.bind(_this),\r\n keyConfigs: _this.defaultKeyConfigs\r\n });\r\n _this.calendarKeyboardModules = new KeyboardEvents(_this.inputWrapper.container.children[_this.index], {\r\n eventName: 'keydown',\r\n keyAction: _this.calendarKeyActionHandle.bind(_this),\r\n keyConfigs: _this.defaultKeyConfigs\r\n });\r\n }\r\n }\r\n }, close: function () {\r\n if (_this.isDateIconClicked) {\r\n _this.inputWrapper.container.children[_this.index].focus();\r\n }\r\n if (_this.value) {\r\n _this.disabledDates();\r\n }\r\n if (_this.popupObj) {\r\n _this.popupObj.destroy();\r\n }\r\n _this.resetCalendar();\r\n detach(_this.popupWrapper);\r\n _this.popupObj = _this.popupWrapper = null;\r\n _this.preventArgs = null;\r\n _this.calendarKeyboardModules = null;\r\n _this.setAriaAttributes();\r\n }, targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hide();\r\n }\r\n }\r\n });\r\n this.popupObj.element.className += ' ' + this.cssClass;\r\n this.setAriaAttributes();\r\n };\r\n DatePicker.prototype.setAriaDisabled = function () {\r\n if (!this.enabled) {\r\n this.inputElement.setAttribute('aria-disabled', 'true');\r\n this.inputElement.tabIndex = -1;\r\n }\r\n else {\r\n this.inputElement.setAttribute('aria-disabled', 'false');\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n };\r\n DatePicker.prototype.modelHeader = function () {\r\n var dateOptions;\r\n var modelHeader = this.createElement('div', { className: 'e-model-header' });\r\n var yearHeading = this.createElement('h1', { className: 'e-model-year' });\r\n var h2 = this.createElement('div');\r\n var daySpan = this.createElement('span', { className: 'e-model-day' });\r\n var monthSpan = this.createElement('span', { className: 'e-model-month' });\r\n if (this.calendarMode === 'Gregorian') {\r\n dateOptions = { format: 'y', skeleton: 'dateTime' };\r\n }\r\n else {\r\n dateOptions = { format: 'y', skeleton: 'dateTime', calendar: 'islamic' };\r\n }\r\n yearHeading.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\r\n if (this.calendarMode === 'Gregorian') {\r\n dateOptions = { format: 'E', skeleton: 'dateTime' };\r\n }\r\n else {\r\n dateOptions = { format: 'E', skeleton: 'dateTime', calendar: 'islamic' };\r\n }\r\n daySpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions) + ', ';\r\n if (this.calendarMode === 'Gregorian') {\r\n dateOptions = { format: 'MMM d', skeleton: 'dateTime' };\r\n }\r\n else {\r\n dateOptions = { format: 'MMM d', skeleton: 'dateTime', calendar: 'islamic' };\r\n }\r\n monthSpan.textContent = '' + this.globalize.formatDate(this.value || new Date(), dateOptions);\r\n modelHeader.appendChild(yearHeading);\r\n h2.appendChild(daySpan);\r\n h2.appendChild(monthSpan);\r\n modelHeader.appendChild(h2);\r\n this.calendarElement.insertBefore(modelHeader, this.calendarElement.firstElementChild);\r\n };\r\n DatePicker.prototype.changeTrigger = function (event) {\r\n if (this.inputElement.value !== this.previousElementValue) {\r\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\r\n if (this.isDynamicValueChanged && this.isCalendar()) {\r\n this.popupUpdate();\r\n }\r\n this.changedArgs.value = this.value;\r\n this.changedArgs.event = event || null;\r\n this.changedArgs.element = this.element;\r\n this.changedArgs.isInteracted = !isNullOrUndefined(event);\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', this.changedArgs);\r\n }\r\n this.previousElementValue = this.inputElement.value;\r\n this.previousDate = !isNaN(+new Date(this.checkValue(this.value))) ? new Date(this.checkValue(this.value)) : null;\r\n this.isInteracted = true;\r\n }\r\n }\r\n };\r\n DatePicker.prototype.navigatedEvent = function () {\r\n this.trigger('navigated', this.navigatedArgs);\r\n };\r\n DatePicker.prototype.changeEvent = function (event) {\r\n if (((this.previousDate && this.previousDate.valueOf()) !== (this.value && this.value.valueOf()))) {\r\n this.selectCalendar(event);\r\n this.changedArgs.event = event ? event : null;\r\n this.changedArgs.element = this.element;\r\n this.changedArgs.isInteracted = this.isInteracted;\r\n if (!this.isDynamicValueChanged) {\r\n this.trigger('change', this.changedArgs);\r\n }\r\n this.previousDate = this.value && new Date(+this.value);\r\n if (!this.isDynamicValueChanged) {\r\n this.hide(event);\r\n }\r\n this.previousElementValue = this.inputElement.value;\r\n this.errorClass();\r\n }\r\n };\r\n DatePicker.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this) {\r\n modules.push({ args: [this], member: 'islamic' });\r\n }\r\n if (this.enableMask) {\r\n modules.push({ args: [this], member: 'MaskedDateTime' });\r\n }\r\n return modules;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DatePicker.prototype.selectCalendar = function (e) {\r\n var date;\r\n var tempFormat;\r\n var formatOptions;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n tempFormat = !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat;\r\n }\r\n else {\r\n tempFormat = this.formatString;\r\n }\r\n if (this.value) {\r\n if (this.getModuleName() === 'datetimepicker') {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: tempFormat, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n date = this.globalize.formatDate(this.changedArgs.value, formatOptions);\r\n }\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n }\r\n if (!isNullOrUndefined(date)) {\r\n this.updateInputValue(date);\r\n if (this.enableMask) {\r\n this.notify(\"setMaskSelection\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n }\r\n };\r\n DatePicker.prototype.isCalendar = function () {\r\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + POPUPWRAPPER)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DatePicker.prototype.setWidth = function (width) {\r\n if (typeof width === 'number') {\r\n this.inputWrapper.container.style.width = formatUnit(this.width);\r\n }\r\n else if (typeof width === 'string') {\r\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (this.width) : (formatUnit(this.width));\r\n }\r\n else {\r\n this.inputWrapper.container.style.width = '100%';\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Shows the Calendar.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n DatePicker.prototype.show = function (type, e) {\r\n var _this = this;\r\n if ((this.enabled && this.readonly) || !this.enabled || this.popupObj) {\r\n return;\r\n }\r\n else {\r\n var prevent_1 = true;\r\n var outOfRange = void 0;\r\n if (!isNullOrUndefined(this.value) && !(+this.value >= +this.min && +this.value <= +this.max)) {\r\n outOfRange = new Date(this.checkValue(this.value));\r\n this.setProperties({ 'value': null }, true);\r\n }\r\n else {\r\n outOfRange = this.value || null;\r\n }\r\n if (!this.isCalendar()) {\r\n _super.prototype.render.call(this);\r\n this.setProperties({ 'value': outOfRange || null }, true);\r\n this.previousDate = outOfRange;\r\n this.createCalendar();\r\n }\r\n if (Browser.isDevice) {\r\n this.mobilePopupWrapper = this.createElement('div', { className: 'e-datepick-mob-popup-wrap' });\r\n document.body.appendChild(this.mobilePopupWrapper);\r\n }\r\n this.preventArgs = {\r\n preventDefault: function () {\r\n prevent_1 = false;\r\n },\r\n popup: this.popupObj,\r\n event: e || null,\r\n cancel: false,\r\n appendTo: Browser.isDevice ? this.mobilePopupWrapper : document.body\r\n };\r\n var eventArgs = this.preventArgs;\r\n this.trigger('open', eventArgs, function (eventArgs) {\r\n _this.preventArgs = eventArgs;\r\n if (prevent_1 && !_this.preventArgs.cancel) {\r\n addClass(_this.inputWrapper.buttons, ACTIVE);\r\n _this.preventArgs.appendTo.appendChild(_this.popupWrapper);\r\n _this.popupObj.refreshPosition(_this.inputElement);\r\n var openAnimation = {\r\n name: 'FadeIn',\r\n duration: Browser.isDevice ? 0 : OPENDURATION\r\n };\r\n if (_this.zIndex === 1000) {\r\n _this.popupObj.show(new Animation(openAnimation), _this.element);\r\n }\r\n else {\r\n _this.popupObj.show(new Animation(openAnimation), null);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n _super.prototype.setOverlayIndex.call(_this, _this.mobilePopupWrapper, _this.popupObj.element, _this.modal, Browser.isDevice);\r\n _this.setAriaAttributes();\r\n }\r\n else {\r\n _this.popupObj.destroy();\r\n _this.popupWrapper = _this.popupObj = null;\r\n }\r\n if (!isNullOrUndefined(_this.inputElement) && _this.inputElement.value === '') {\r\n if (!isNullOrUndefined(_this.tableBodyElement) && _this.tableBodyElement.querySelectorAll('td.e-selected').length > 0) {\r\n addClass([_this.tableBodyElement.querySelector('td.e-selected')], FOCUSEDDATE);\r\n removeClass(_this.tableBodyElement.querySelectorAll('td.e-selected'), SELECTED);\r\n }\r\n }\r\n EventHandler.add(document, 'mousedown touchstart', _this.documentHandler, _this);\r\n });\r\n }\r\n };\r\n /**\r\n * Hide the Calendar.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n DatePicker.prototype.hide = function (event) {\r\n var _this = this;\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n var prevent_2 = true;\r\n this.preventArgs = {\r\n preventDefault: function () {\r\n prevent_2 = false;\r\n },\r\n popup: this.popupObj,\r\n event: event || null,\r\n cancel: false\r\n };\r\n removeClass(this.inputWrapper.buttons, ACTIVE);\r\n removeClass([document.body], OVERFLOW);\r\n var eventArgs = this.preventArgs;\r\n if (this.isCalendar()) {\r\n this.trigger('close', eventArgs, function (eventArgs) {\r\n _this.closeEventCallback(prevent_2, eventArgs);\r\n });\r\n }\r\n else {\r\n this.closeEventCallback(prevent_2, eventArgs);\r\n }\r\n }\r\n else {\r\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n this.setAllowEdit();\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n DatePicker.prototype.closeEventCallback = function (prevent, eventArgs) {\r\n this.preventArgs = eventArgs;\r\n if (this.isCalendar() && (prevent && !this.preventArgs.cancel)) {\r\n this.popupObj.hide();\r\n this.isAltKeyPressed = false;\r\n this.keyboardModule.destroy();\r\n removeClass(this.inputWrapper.buttons, ACTIVE);\r\n }\r\n this.setAriaAttributes();\r\n if (Browser.isDevice && this.modal) {\r\n this.modal.style.display = 'none';\r\n this.modal.outerHTML = '';\r\n this.modal = null;\r\n }\r\n if (Browser.isDevice) {\r\n if (!isNullOrUndefined(this.mobilePopupWrapper)) {\r\n this.mobilePopupWrapper.remove();\r\n this.mobilePopupWrapper = null;\r\n }\r\n }\r\n EventHandler.remove(document, 'mousedown touchstart', this.documentHandler);\r\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n this.setAllowEdit();\r\n };\r\n /* eslint-disable jsdoc/require-param */\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DatePicker.prototype.focusIn = function (triggerEvent) {\r\n if (document.activeElement !== this.inputElement && this.enabled) {\r\n this.inputElement.focus();\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n };\r\n /* eslint-enable jsdoc/require-param */\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n DatePicker.prototype.focusOut = function () {\r\n if (document.activeElement === this.inputElement) {\r\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n this.inputElement.blur();\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the current view of the DatePicker.\r\n *\r\n * @returns {string}\r\n\r\n */\r\n DatePicker.prototype.currentView = function () {\r\n var currentView;\r\n if (this.calendarElement) {\r\n // calls the Calendar currentView public method\r\n currentView = _super.prototype.currentView.call(this);\r\n }\r\n return currentView;\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Navigates to specified month or year or decade view of the DatePicker.\r\n *\r\n * @param {string} view - Specifies the view of the calendar.\r\n * @param {Date} date - Specifies the focused date in a view.\r\n * @returns {void}\r\n\r\n */\r\n DatePicker.prototype.navigateTo = function (view, date) {\r\n if (this.calendarElement) {\r\n // calls the Calendar navigateTo public method\r\n _super.prototype.navigateTo.call(this, view, date);\r\n }\r\n };\r\n /**\r\n * To destroy the widget.\r\n *\r\n * @returns {void}\r\n */\r\n DatePicker.prototype.destroy = function () {\r\n this.unBindEvents();\r\n _super.prototype.destroy.call(this);\r\n this.keyboardModules.destroy();\r\n if (this.popupObj && this.popupObj.element.classList.contains(POPUP)) {\r\n _super.prototype.destroy.call(this);\r\n }\r\n var ariaAttrs = {\r\n 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-disabled': 'true',\r\n 'aria-haspopup': 'true', 'aria-activedescendant': 'null',\r\n 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'\r\n };\r\n if (this.inputElement) {\r\n Input.removeAttributes(ariaAttrs, this.inputElement);\r\n if (!isNullOrUndefined(this.inputElementCopy.getAttribute('tabindex'))) {\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.inputElement.removeAttribute('tabindex');\r\n }\r\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\r\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\r\n this.ensureInputAttribute();\r\n }\r\n if (this.isCalendar()) {\r\n if (this.popupWrapper) {\r\n detach(this.popupWrapper);\r\n }\r\n this.popupObj = this.popupWrapper = null;\r\n this.keyboardModule.destroy();\r\n }\r\n if (this.ngTag === null) {\r\n if (this.inputElement) {\r\n this.inputWrapper.container.insertAdjacentElement('afterend', this.inputElement);\r\n removeClass([this.inputElement], [INPUTROOT]);\r\n }\r\n removeClass([this.element], [ROOT]);\r\n detach(this.inputWrapper.container);\r\n }\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.resetFormHandler);\r\n }\r\n };\r\n DatePicker.prototype.ensureInputAttribute = function () {\r\n var prop = [];\r\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\r\n prop[i] = this.inputElement.attributes[i].name;\r\n }\r\n for (var i = 0; i < prop.length; i++) {\r\n if (isNullOrUndefined(this.inputElementCopy.getAttribute(prop[i]))) {\r\n if (prop[i].toLowerCase() === 'value') {\r\n this.inputElement.value = '';\r\n }\r\n this.inputElement.removeAttribute(prop[i]);\r\n }\r\n else {\r\n if (prop[i].toLowerCase() === 'value') {\r\n this.inputElement.value = this.inputElementCopy.getAttribute(prop[i]);\r\n }\r\n this.inputElement.setAttribute(prop[i], this.inputElementCopy.getAttribute(prop[i]));\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DatePicker.prototype.preRender = function () {\r\n this.inputElementCopy = this.element.cloneNode(true);\r\n removeClass([this.inputElementCopy], [ROOT, CONTROL, LIBRARY]);\r\n this.inputElement = this.element;\r\n this.formElement = closest(this.inputElement, 'form');\r\n this.index = this.showClearButton ? 2 : 1;\r\n this.ngTag = null;\r\n if (this.element.tagName === 'EJS-DATEPICKER' || this.element.tagName === 'EJS-DATETIMEPICKER') {\r\n this.ngTag = this.element.tagName;\r\n this.inputElement = this.createElement('input');\r\n this.element.appendChild(this.inputElement);\r\n }\r\n if (this.element.getAttribute('id')) {\r\n if (this.ngTag !== null) {\r\n this.inputElement.id = this.element.getAttribute('id') + '_input';\r\n }\r\n }\r\n else {\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.element.id = getUniqueID('ej2-datetimepicker');\r\n if (this.ngTag !== null) {\r\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\r\n }\r\n }\r\n else {\r\n this.element.id = getUniqueID('ej2-datepicker');\r\n if (this.ngTag !== null) {\r\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\r\n }\r\n }\r\n }\r\n if (this.ngTag !== null) {\r\n this.validationAttribute(this.element, this.inputElement);\r\n }\r\n this.updateHtmlAttributeToElement();\r\n this.defaultKeyConfigs = this.getDefaultKeyConfig();\r\n this.checkHtmlAttributes(false);\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.removeAttribute('tabindex');\r\n _super.prototype.preRender.call(this);\r\n };\r\n DatePicker.prototype.getDefaultKeyConfig = function () {\r\n this.defaultKeyConfigs = {\r\n altUpArrow: 'alt+uparrow',\r\n altDownArrow: 'alt+downarrow',\r\n escape: 'escape',\r\n enter: 'enter',\r\n controlUp: 'ctrl+38',\r\n controlDown: 'ctrl+40',\r\n moveDown: 'downarrow',\r\n moveUp: 'uparrow',\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n select: 'enter',\r\n home: 'home',\r\n end: 'end',\r\n pageUp: 'pageup',\r\n pageDown: 'pagedown',\r\n shiftPageUp: 'shift+pageup',\r\n shiftPageDown: 'shift+pagedown',\r\n controlHome: 'ctrl+home',\r\n controlEnd: 'ctrl+end',\r\n shiftTab: 'shift+tab',\r\n tab: 'tab'\r\n };\r\n return this.defaultKeyConfigs;\r\n };\r\n DatePicker.prototype.validationAttribute = function (target, inputElement) {\r\n var nameAttribute = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\r\n inputElement.setAttribute('name', nameAttribute);\r\n target.removeAttribute('name');\r\n var attribute = ['required', 'aria-required', 'form'];\r\n for (var i = 0; i < attribute.length; i++) {\r\n if (isNullOrUndefined(target.getAttribute(attribute[i]))) {\r\n continue;\r\n }\r\n var attr = target.getAttribute(attribute[i]);\r\n inputElement.setAttribute(attribute[i], attr);\r\n target.removeAttribute(attribute[i]);\r\n }\r\n };\r\n DatePicker.prototype.checkFormat = function () {\r\n var culture = new Internationalization(this.locale);\r\n if (this.format) {\r\n if (typeof this.format === 'string') {\r\n this.formatString = this.format;\r\n }\r\n else if (this.format.skeleton !== '' && !isNullOrUndefined(this.format.skeleton)) {\r\n var skeletonString = this.format.skeleton;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'dateTime' });\r\n }\r\n else {\r\n this.formatString = culture.getDatePattern({ skeleton: skeletonString, type: 'date' });\r\n }\r\n }\r\n else {\r\n if (this.getModuleName() === 'datetimepicker') {\r\n this.formatString = this.dateTimeFormat;\r\n }\r\n else {\r\n this.formatString = null;\r\n }\r\n }\r\n }\r\n else {\r\n this.formatString = null;\r\n }\r\n };\r\n DatePicker.prototype.checkHtmlAttributes = function (dynamic) {\r\n this.globalize = new Internationalization(this.locale);\r\n this.checkFormat();\r\n this.checkView();\r\n var attributes = dynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['value', 'min', 'max', 'disabled', 'readonly', 'style', 'name', 'placeholder', 'type'];\r\n var options;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n if (this.calendarMode === 'Gregorian') {\r\n options = {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd'\r\n };\r\n }\r\n else {\r\n options = {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\r\n };\r\n }\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n options = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n }\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'disabled':\r\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['enabled'] === undefined)) || dynamic)) {\r\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\r\n this.inputElement.getAttribute(prop) === '' ||\r\n this.inputElement.getAttribute(prop) === 'true' ? false : true;\r\n this.setProperties({ enabled: enabled }, !dynamic);\r\n }\r\n break;\r\n case 'readonly':\r\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['readonly'] === undefined)) || dynamic)) {\r\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\r\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ readonly: readonly }, !dynamic);\r\n }\r\n break;\r\n case 'placeholder':\r\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['placeholder'] === undefined)) || dynamic)) {\r\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !dynamic);\r\n }\r\n break;\r\n case 'style':\r\n this.inputElement.setAttribute('style', '' + this.inputElement.getAttribute(prop));\r\n break;\r\n case 'name':\r\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute(prop));\r\n break;\r\n case 'value':\r\n if (((isNullOrUndefined(this.datepickerOptions) || (this.datepickerOptions['value'] === undefined)) || dynamic)) {\r\n var value = this.inputElement.getAttribute(prop);\r\n this.setProperties(setValue(prop, this.globalize.parseDate(value, options), {}), !dynamic);\r\n }\r\n break;\r\n case 'min':\r\n if ((+this.min === +new Date(1900, 0, 1)) || dynamic) {\r\n var min = this.inputElement.getAttribute(prop);\r\n this.setProperties(setValue(prop, this.globalize.parseDate(min), {}), !dynamic);\r\n }\r\n break;\r\n case 'max':\r\n if ((+this.max === +new Date(2099, 11, 31)) || dynamic) {\r\n var max = this.inputElement.getAttribute(prop);\r\n this.setProperties(setValue(prop, this.globalize.parseDate(max), {}), !dynamic);\r\n }\r\n break;\r\n case 'type':\r\n if (this.inputElement.getAttribute(prop) !== 'text') {\r\n this.inputElement.setAttribute('type', 'text');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To get component name.\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n DatePicker.prototype.getModuleName = function () {\r\n return 'datepicker';\r\n };\r\n DatePicker.prototype.disabledDates = function () {\r\n var formatOptions;\r\n var globalize;\r\n var valueCopy = this.checkDateValue(this.value) ? new Date(+this.value) : new Date(this.checkValue(this.value));\r\n var previousValCopy = this.previousDate;\r\n //calls the Calendar render method to check the disabled dates through renderDayCell event and update the input value accordingly.\r\n this.minMaxUpdates();\r\n _super.prototype.render.call(this);\r\n this.previousDate = previousValCopy;\r\n var date = valueCopy && +(valueCopy);\r\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + date);\r\n if (!this.strictMode) {\r\n if (typeof this.value === 'string' || ((typeof this.value === 'object') && (+this.value) !== (+valueCopy))) {\r\n this.setProperties({ value: valueCopy }, true);\r\n }\r\n }\r\n if (!isNullOrUndefined(this.calendarElement.querySelectorAll(dateIdString)[0])) {\r\n if (this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled')) {\r\n if (!this.strictMode) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n }\r\n }\r\n }\r\n var inputVal;\r\n if (this.getModuleName() === 'datetimepicker') {\r\n if (this.calendarMode === 'Gregorian') {\r\n globalize = this.globalize.formatDate(valueCopy, {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd'\r\n });\r\n }\r\n else {\r\n globalize = this.globalize.formatDate(valueCopy, {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.dateTimeFormat,\r\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\r\n });\r\n }\r\n inputVal = globalize;\r\n }\r\n else {\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n formatOptions = { format: this.formatString, type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n inputVal = this.globalize.formatDate(valueCopy, formatOptions);\r\n }\r\n if (!this.popupObj) {\r\n this.updateInputValue(inputVal);\r\n if (this.enableMask) {\r\n this.updateInputValue(this.maskedDateValue);\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n }\r\n };\r\n DatePicker.prototype.setAriaAttributes = function () {\r\n if (this.isCalendar()) {\r\n Input.addAttributes({ 'aria-expanded': 'true' }, this.inputElement);\r\n attributes(this.inputElement, { 'aria-activedescendant': '' + this.setActiveDescendant() });\r\n }\r\n else {\r\n Input.addAttributes({ 'aria-expanded': 'false' }, this.inputElement);\r\n attributes(this.inputElement, { 'aria-activedescendant': 'null' });\r\n }\r\n };\r\n DatePicker.prototype.errorClass = function () {\r\n var dateIdString = '*[id^=\"/id\"]'.replace('/id', '' + (+this.value));\r\n var isDisabledDate = this.calendarElement &&\r\n this.calendarElement.querySelectorAll(dateIdString)[0] &&\r\n this.calendarElement.querySelectorAll(dateIdString)[0].classList.contains('e-disabled');\r\n if ((!isNullOrUndefined(this.value) && !(+new Date(+this.value).setMilliseconds(0) >= +this.min\r\n && +new Date(+this.value).setMilliseconds(0) <= +this.max))\r\n || (!this.strictMode && this.inputElement.value !== '' && this.inputElement.value !== this.maskedDateValue && isNullOrUndefined(this.value) || isDisabledDate)) {\r\n addClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'true' });\r\n }\r\n else {\r\n removeClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'false' });\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {DatePickerModel} newProp - Returns the dynamic property value of the component.\r\n * @param {DatePickerModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n DatePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'value':\r\n this.isDynamicValueChanged = true;\r\n this.isInteracted = false;\r\n this.invalidValueString = null;\r\n this.checkInvalidValue(newProp.value);\r\n newProp.value = this.value;\r\n this.previousElementValue = this.inputElement.value;\r\n if (isNullOrUndefined(this.value)) {\r\n this.updateInputValue('');\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n }\r\n this.updateInput(true);\r\n if (+this.previousDate !== +this.value) {\r\n this.changeTrigger(null);\r\n }\r\n this.isInteracted = true;\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n break;\r\n case 'format':\r\n this.checkFormat();\r\n this.bindInputEvent();\r\n this.updateInput();\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n if (!this.value) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n }\r\n break;\r\n case 'allowEdit':\r\n this.setAllowEdit();\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(this.placeholder, this.inputElement);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.inputElement);\r\n break;\r\n case 'enabled':\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n this.setAriaDisabled();\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttributeToElement();\r\n this.updateHtmlAttributeToWrapper();\r\n this.checkHtmlAttributes(true);\r\n break;\r\n case 'locale':\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n Input.setPlaceholder(this.placeholder, this.inputElement);\r\n this.updateInput();\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n break;\r\n case 'enableRtl':\r\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\r\n break;\r\n case 'start':\r\n case 'depth':\r\n this.checkView();\r\n if (this.calendarElement) {\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n }\r\n break;\r\n case 'zIndex':\r\n this.setProperties({ zIndex: newProp.zIndex }, true);\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'showClearButton':\r\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\r\n this.bindClearEvent();\r\n this.index = this.showClearButton ? 2 : 1;\r\n break;\r\n case 'strictMode':\r\n this.invalidValueString = null;\r\n this.updateInput();\r\n break;\r\n case 'width':\r\n this.setWidth(newProp.width);\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n Input.removeFloating(this.inputWrapper);\r\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\r\n break;\r\n case 'enableMask':\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n this.updateInputValue(this.maskedDateValue);\r\n this.bindInputEvent();\r\n }\r\n else {\r\n if (this.inputElement.value === this.maskedDateValue) {\r\n this.updateInputValue('');\r\n }\r\n }\r\n break;\r\n default:\r\n if (this.calendarElement && this.isCalendar()) {\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n }\r\n break;\r\n }\r\n if (!this.isDynamicValueChanged) {\r\n this.hide(null);\r\n }\r\n this.isDynamicValueChanged = false;\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"strictMode\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"format\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DatePicker.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property({})\r\n ], DatePicker.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"values\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"isMultiSelection\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DatePicker.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DatePicker.prototype, \"allowEdit\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], DatePicker.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], DatePicker.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DatePicker.prototype, \"serverTimezoneOffset\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"openOnFocus\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DatePicker.prototype, \"enableMask\", void 0);\r\n __decorate([\r\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\r\n ], DatePicker.prototype, \"maskPlaceholder\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"cleared\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], DatePicker.prototype, \"destroyed\", void 0);\r\n DatePicker = __decorate([\r\n NotifyPropertyChanges\r\n ], DatePicker);\r\n return DatePicker;\r\n}(Calendar));\r\nexport { DatePicker };\r\n","/**\n * Datepicker modules\n */\nexport * from './datepicker';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { Property, EventHandler, Internationalization, NotifyPropertyChanges, detach, getUniqueID } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, Event, Browser, L10n, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { addClass, createElement, remove, closest, select, prepend, removeClass, attributes, Collection } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, isUndefined, formatUnit, setValue, rippleEffect, merge, extend } from '@syncfusion/ej2-base';\r\nimport { CalendarBase } from '../calendar/calendar';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nvar DATERANGEWRAPPER = 'e-date-range-wrapper';\r\nvar INPUTCONTAINER = 'e-input-group';\r\nvar DATERANGEICON = 'e-input-group-icon e-range-icon e-icons';\r\nvar POPUP = 'e-popup';\r\nvar LEFTCALENDER = 'e-left-calendar';\r\nvar RIGHTCALENDER = 'e-right-calendar';\r\nvar LEFTCONTAINER = 'e-left-container';\r\nvar RIGHTCONTAINER = 'e-right-container';\r\nvar ROOT = 'e-daterangepicker';\r\nvar LIBRARY = 'e-lib';\r\nvar CONTROL = 'e-control';\r\nvar ERROR = 'e-error';\r\nvar ACTIVE = 'e-active';\r\nvar STARTENDCONTAINER = 'e-start-end';\r\nvar STARTDATE = 'e-start-date';\r\nvar ENDDATE = 'e-end-date';\r\nvar STARTBUTTON = 'e-start-btn';\r\nvar INPUTFOCUS = 'e-input-focus';\r\nvar ENDBUTTON = 'e-end-btn';\r\nvar RANGEHOVER = 'e-range-hover';\r\nvar OTHERMONTH = 'e-other-month';\r\nvar STARTLABEL = 'e-start-label';\r\nvar ENDLABEL = 'e-end-label';\r\nvar DISABLED = 'e-disabled';\r\nvar SELECTED = 'e-selected';\r\nvar CALENDAR = 'e-calendar';\r\nvar NEXTICON = 'e-next';\r\nvar PREVICON = 'e-prev';\r\nvar HEADER = 'e-header';\r\nvar TITLE = 'e-title';\r\nvar ICONCONTAINER = 'e-icon-container';\r\nvar RANGECONTAINER = 'e-date-range-container';\r\nvar RANGEHEADER = 'e-range-header';\r\nvar PRESETS = 'e-presets';\r\nvar FOOTER = 'e-footer';\r\nvar RANGEBORDER = 'e-range-border';\r\nvar TODAY = 'e-today';\r\nvar FOCUSDATE = 'e-focused-date';\r\nvar CONTENT = 'e-content';\r\nvar DAYSPAN = 'e-day-span';\r\nvar WEEKNUMBER = 'e-week-number';\r\nvar DATEDISABLED = 'e-date-disabled';\r\nvar ICONDISABLED = 'e-icon-disabled';\r\nvar CALENDARCONTAINER = 'e-calendar-container';\r\nvar SEPARATOR = 'e-separator';\r\nvar APPLY = 'e-apply';\r\nvar CANCEL = 'e-cancel';\r\nvar DEVICE = 'e-device';\r\nvar OVERLAY = 'e-overlay';\r\nvar CHANGEICON = 'e-change-icon e-icons';\r\nvar LISTCLASS = 'e-list-item';\r\nvar RTL = 'e-rtl';\r\nvar HOVER = 'e-hover';\r\nvar OVERFLOW = 'e-range-overflow';\r\nvar OFFSETVALUE = 4;\r\nvar PRIMARY = 'e-primary';\r\nvar FLAT = 'e-flat';\r\nvar CSS = 'e-css';\r\nvar ZOOMIN = 'e-zoomin';\r\nvar NONEDITABLE = 'e-non-edit';\r\nvar DAYHEADERLONG = 'e-daterange-day-header-lg';\r\nvar HIDDENELEMENT = 'e-daterange-hidden';\r\nvar wrapperAttr = ['title', 'class', 'style'];\r\nvar Presets = /** @class */ (function (_super) {\r\n __extends(Presets, _super);\r\n function Presets() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], Presets.prototype, \"label\", void 0);\r\n __decorate([\r\n Property()\r\n ], Presets.prototype, \"start\", void 0);\r\n __decorate([\r\n Property()\r\n ], Presets.prototype, \"end\", void 0);\r\n return Presets;\r\n}(ChildProperty));\r\nexport { Presets };\r\n/**\r\n * Represents the DateRangePicker component that allows user to select the date range from the calendar\r\n * or entering the range through the input element.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar DateRangePicker = /** @class */ (function (_super) {\r\n __extends(DateRangePicker, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {DateRangePickerModel} options - Specifies the DateRangePicker model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function DateRangePicker(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isCustomRange = false;\r\n _this.isCustomWindow = false;\r\n _this.presetsItem = [];\r\n _this.liCollections = [];\r\n _this.previousEleValue = '';\r\n _this.isKeyPopup = false;\r\n _this.dateDisabled = false;\r\n _this.isRangeIconClicked = false;\r\n _this.isMaxDaysClicked = false;\r\n _this.disabledDays = [];\r\n _this.preventBlur = false;\r\n _this.preventFocus = false;\r\n _this.invalidValueString = null;\r\n _this.isAngular = false;\r\n _this.preventChange = false;\r\n _this.dateRangeOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DateRangePicker.prototype.render = function () {\r\n this.initialize();\r\n this.setProperties({ startDate: this.startValue }, true);\r\n this.setProperties({ endDate: this.endValue }, true);\r\n this.setModelValue();\r\n this.setDataAttribute(false);\r\n if (this.element.hasAttribute('data-val')) {\r\n this.element.setAttribute('data-val', 'false');\r\n }\r\n this.renderComplete();\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DateRangePicker.prototype.preRender = function () {\r\n this.keyInputConfigs = {\r\n altDownArrow: 'alt+downarrow',\r\n escape: 'escape',\r\n enter: 'enter',\r\n tab: 'tab',\r\n altRightArrow: 'alt+rightarrow',\r\n altLeftArrow: 'alt+leftarrow',\r\n moveUp: 'uparrow',\r\n moveDown: 'downarrow',\r\n spacebar: 'space'\r\n };\r\n this.defaultConstant = {\r\n placeholder: this.placeholder,\r\n startLabel: 'Start Date',\r\n endLabel: 'End Date',\r\n customRange: 'Custom Range',\r\n applyText: 'Apply',\r\n cancelText: 'Cancel',\r\n selectedDays: 'Selected Days',\r\n days: 'days'\r\n };\r\n /**\r\n * Mobile View\r\n */\r\n this.isMobile = window.matchMedia('(max-width:550px)').matches;\r\n this.inputElement = this.element;\r\n this.angularTag = null;\r\n if (this.element.tagName === 'EJS-DATERANGEPICKER') {\r\n this.angularTag = this.element.tagName;\r\n this.inputElement = this.createElement('input');\r\n this.element.appendChild(this.inputElement);\r\n }\r\n this.cloneElement = this.element.cloneNode(true);\r\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\r\n this.updateHtmlAttributeToElement();\r\n if (this.element.getAttribute('id')) {\r\n if (this.angularTag !== null) {\r\n this.inputElement.id = this.element.getAttribute('id') + '_input';\r\n }\r\n }\r\n else {\r\n this.element.id = getUniqueID('ej2-datetimepicker');\r\n if (this.angularTag !== null) {\r\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\r\n }\r\n }\r\n this.checkInvalidRange(this.value);\r\n if (!this.invalidValueString && (typeof (this.value) === 'string')) {\r\n var rangeArray = this.value.split(' ' + this.separator + ' ');\r\n this.value = [new Date(rangeArray[0]), new Date(rangeArray[1])];\r\n }\r\n this.initProperty();\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.removeAttribute('tabindex');\r\n _super.prototype.preRender.call(this);\r\n this.navNextFunction = this.navNextMonth.bind(this);\r\n this.navPrevFunction = this.navPrevMonth.bind(this);\r\n this.deviceNavNextFunction = this.deviceNavNext.bind(this);\r\n this.deviceNavPrevFunction = this.deviceNavPrevious.bind(this);\r\n this.initStartDate = this.checkDateValue(this.startValue);\r\n this.initEndDate = this.checkDateValue(this.endValue);\r\n this.formElement = closest(this.element, 'form');\r\n };\r\n DateRangePicker.prototype.updateValue = function () {\r\n if (this.value && this.value.length > 0) {\r\n if (this.value[0] instanceof Date && !isNaN(+this.value[0])) {\r\n this.setProperties({ startDate: this.value[0] }, true);\r\n this.startValue = this.value[0];\r\n }\r\n else if (typeof this.value[0] === 'string') {\r\n if (+this.value[0] === 0 || isNaN(+(new Date(this.checkValue(this.value[0]))))) {\r\n this.startValue = null;\r\n this.setValue();\r\n }\r\n else {\r\n this.setProperties({ startDate: new Date(this.checkValue(this.value[0])) }, true);\r\n this.startValue = new Date(this.checkValue(this.value[0]));\r\n }\r\n }\r\n else {\r\n this.startValue = null;\r\n this.setValue();\r\n }\r\n if (this.value[1] instanceof Date && !isNaN(+this.value[1])) {\r\n this.setProperties({ endDate: this.value[1] }, true);\r\n this.endValue = this.value[1];\r\n }\r\n else if (typeof this.value[1] === 'string') {\r\n if (+this.value[0] === 0 || isNaN(+(new Date(this.checkValue(this.value[0]))))) {\r\n this.setProperties({ endDate: null }, true);\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n else {\r\n this.setProperties({ endDate: new Date(this.checkValue(this.value[1])) }, true);\r\n this.endValue = new Date(this.checkValue(this.value[1]));\r\n this.setValue();\r\n }\r\n }\r\n else {\r\n this.setProperties({ endDate: null }, true);\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n else if (this.value && this.value.start) {\r\n if (this.value.start instanceof Date && !isNaN(+this.value.start)) {\r\n this.setProperties({ startDate: this.value.start }, true);\r\n this.startValue = this.value.start;\r\n }\r\n else if (typeof this.value.start === 'string') {\r\n this.setProperties({ startDate: new Date(this.checkValue(this.value.start)) }, true);\r\n this.startValue = new Date(this.checkValue(this.value.start));\r\n }\r\n else {\r\n this.startValue = null;\r\n this.setValue();\r\n }\r\n if (this.value.end instanceof Date && !isNaN(+this.value.end)) {\r\n this.setProperties({ endDate: this.value.end }, true);\r\n this.endValue = this.value.end;\r\n }\r\n else if (typeof this.value.end === 'string') {\r\n this.setProperties({ endDate: new Date(this.checkValue(this.value.end)) }, true);\r\n this.endValue = new Date(this.checkValue(this.value.end));\r\n this.setValue();\r\n }\r\n else {\r\n this.setProperties({ endDate: null }, true);\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n else if (isNullOrUndefined(this.value)) {\r\n this.endValue = this.checkDateValue(new Date(this.checkValue(this.endDate)));\r\n this.startValue = this.checkDateValue(new Date(this.checkValue(this.startDate)));\r\n this.setValue();\r\n }\r\n };\r\n DateRangePicker.prototype.initProperty = function () {\r\n this.globalize = new Internationalization(this.locale);\r\n this.checkFormat();\r\n this.checkView();\r\n if (isNullOrUndefined(this.firstDayOfWeek) || this.firstDayOfWeek > 6 || this.firstDayOfWeek < 0) {\r\n this.setProperties({ firstDayOfWeek: this.globalize.getFirstDayOfWeek() }, true);\r\n }\r\n this.updateValue();\r\n };\r\n DateRangePicker.prototype.checkFormat = function () {\r\n if (this.format) {\r\n if (typeof this.format === 'string') {\r\n this.formatString = this.format;\r\n }\r\n else if (this.format.skeleton !== '' && !isNullOrUndefined(this.format.skeleton)) {\r\n var skeletonString = this.format.skeleton;\r\n this.formatString = this.globalize.getDatePattern({ skeleton: skeletonString, type: 'date' });\r\n }\r\n else {\r\n this.formatString = null;\r\n }\r\n }\r\n else {\r\n this.formatString = null;\r\n }\r\n };\r\n DateRangePicker.prototype.initialize = function () {\r\n if (this.angularTag !== null) {\r\n this.validationAttribute(this.element, this.inputElement);\r\n }\r\n this.checkHtmlAttributes(false);\r\n merge(this.defaultKeyConfigs, { shiftTab: 'shift+tab' });\r\n var start = this.checkDateValue(new Date(this.checkValue(this.startValue)));\r\n this.setProperties({ startDate: start }, true); // persist the value propeerty.\r\n this.setProperties({ endValue: this.checkDateValue(new Date(this.checkValue(this.endValue))) }, true);\r\n this.setValue();\r\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(this.min))) }, true);\r\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(this.max))) }, true);\r\n this.l10n = new L10n('daterangepicker', this.defaultConstant, this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n this.processPresets();\r\n this.createInput();\r\n this.updateHtmlAttributeToWrapper();\r\n this.setRangeAllowEdit();\r\n this.bindEvents();\r\n };\r\n DateRangePicker.prototype.setDataAttribute = function (isDynamic) {\r\n var attributes = {};\r\n if (!isDynamic) {\r\n for (var i = 0; i < this.element.attributes.length; i++) {\r\n attributes[this.element.attributes[i].name] = this.element.getAttribute(this.element.attributes[i].name);\r\n }\r\n }\r\n else {\r\n attributes = this.htmlAttributes;\r\n }\r\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\r\n var pro = _a[_i];\r\n if (pro.indexOf('data') === 0) {\r\n this.firstHiddenChild.setAttribute(pro, attributes[pro]);\r\n this.secondHiddenChild.setAttribute(pro, attributes[pro]);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.setRangeAllowEdit = function () {\r\n if (this.allowEdit) {\r\n if (!this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n }\r\n else {\r\n attributes(this.inputElement, { 'readonly': '' });\r\n }\r\n this.updateClearIconState();\r\n };\r\n DateRangePicker.prototype.updateClearIconState = function () {\r\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\r\n if (this.inputElement.value === '') {\r\n removeClass([this.inputWrapper.container], [NONEDITABLE]);\r\n }\r\n else {\r\n addClass([this.inputWrapper.container], [NONEDITABLE]);\r\n }\r\n }\r\n else if (this.inputWrapper) {\r\n removeClass([this.inputWrapper.container], [NONEDITABLE]);\r\n }\r\n };\r\n DateRangePicker.prototype.validationAttribute = function (element, input) {\r\n var name = element.getAttribute('name') ? element.getAttribute('name') : element.getAttribute('id');\r\n input.setAttribute('name', name);\r\n element.removeAttribute('name');\r\n var attributes = ['required', 'aria-required', 'form'];\r\n for (var i = 0; i < attributes.length; i++) {\r\n if (isNullOrUndefined(element.getAttribute(attributes[i]))) {\r\n continue;\r\n }\r\n var attr = element.getAttribute(attributes[i]);\r\n input.setAttribute(attributes[i], attr);\r\n element.removeAttribute(attributes[i]);\r\n }\r\n };\r\n DateRangePicker.prototype.updateHtmlAttributeToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttr.indexOf(key) > -1) {\r\n if (key === 'class') {\r\n var updatedClassValue = (this.htmlAttributes[key].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValue !== '') {\r\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\r\n }\r\n }\r\n else if (key === 'style') {\r\n var dateRangeStyle = this.inputWrapper.container.getAttribute(key);\r\n dateRangeStyle = !isNullOrUndefined(dateRangeStyle) ? (dateRangeStyle + this.htmlAttributes[key]) :\r\n this.htmlAttributes[key];\r\n this.inputWrapper.container.setAttribute(key, dateRangeStyle);\r\n }\r\n else {\r\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.updateHtmlAttributeToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttr.indexOf(key) < 0) {\r\n this.inputElement.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.updateCssClass = function (cssNewClass, cssOldClass) {\r\n if (!isNullOrUndefined(cssOldClass)) {\r\n cssOldClass = (cssOldClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(cssNewClass)) {\r\n cssNewClass = (cssNewClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n Input.setCssClass(cssNewClass, [this.inputWrapper.container], cssOldClass);\r\n if (this.popupWrapper) {\r\n Input.setCssClass(cssNewClass, [this.popupWrapper], cssOldClass);\r\n }\r\n };\r\n DateRangePicker.prototype.processPresets = function () {\r\n this.presetsItem = [];\r\n var i = 0;\r\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\r\n for (var _i = 0, _a = this.presets; _i < _a.length; _i++) {\r\n var range = _a[_i];\r\n var id = range.label.replace(/\\s+/g, '') + '_' + (++i);\r\n if (typeof range.end === 'string') {\r\n this.presetsItem.push({\r\n id: id, text: range.label, end: new Date(this.checkValue(range.end)), start: new Date(this.checkValue(range.start))\r\n });\r\n }\r\n else {\r\n this.presetsItem.push({ id: id, text: range.label, start: range.start, end: range.end });\r\n }\r\n }\r\n var startDate = isNullOrUndefined(this.startValue) ? null : new Date(+this.startValue);\r\n var endDate = isNullOrUndefined(this.endValue) ? null : new Date(+this.endValue);\r\n this.presetsItem.push({ id: 'custom_range', text: this.l10n.getConstant('customRange'), start: startDate, end: endDate });\r\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\r\n this.isCustomRange = true;\r\n this.activeIndex = this.presetsItem.length - 1;\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.bindEvents = function () {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler, this);\r\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\r\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\r\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\r\n }\r\n if (!this.isMobile) {\r\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\r\n this.inputKeyboardModule = new KeyboardEvents(this.inputElement, {\r\n eventName: 'keydown',\r\n keyAction: this.inputHandler.bind(this),\r\n keyConfigs: this.keyInputConfigs\r\n });\r\n }\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n if (this.enabled) {\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.inputElement.tabIndex = -1;\r\n }\r\n };\r\n DateRangePicker.prototype.unBindEvents = function () {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler);\r\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\r\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\r\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler);\r\n }\r\n if (!this.isMobile) {\r\n if (!isNullOrUndefined(this.inputKeyboardModule)) {\r\n this.inputKeyboardModule.destroy();\r\n }\r\n }\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n this.inputElement.tabIndex = -1;\r\n };\r\n DateRangePicker.prototype.updateHiddenInput = function () {\r\n if (this.firstHiddenChild && this.secondHiddenChild) {\r\n var format = { type: 'datetime', skeleton: 'yMd' };\r\n if (typeof this.startDate === 'string') {\r\n this.startDate = this.globalize.parseDate(this.startDate, format);\r\n }\r\n if (typeof this.endDate === 'string') {\r\n this.endDate = this.globalize.parseDate(this.endDate, format);\r\n }\r\n this.firstHiddenChild.value = (this.startDate && this.globalize.formatDate(this.startDate, format))\r\n || (this.inputElement.value);\r\n this.secondHiddenChild.value = (this.endDate && this.globalize.formatDate(this.endDate, format)) ||\r\n (this.inputElement.value);\r\n this.dispatchEvent(this.firstHiddenChild, 'focusout');\r\n this.dispatchEvent(this.firstHiddenChild, 'change');\r\n }\r\n };\r\n DateRangePicker.prototype.inputChangeHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n e.stopPropagation();\r\n this.updateHiddenInput();\r\n };\r\n DateRangePicker.prototype.bindClearEvent = function () {\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\r\n }\r\n };\r\n DateRangePicker.prototype.resetHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.valueType = this.value;\r\n e.preventDefault();\r\n this.clear();\r\n var clearedArgs = {\r\n event: e\r\n };\r\n this.setProperties({ endDate: this.checkDateValue(this.endValue) }, true);\r\n this.setProperties({ startDate: this.checkDateValue(this.startValue) }, true);\r\n this.trigger('cleared', clearedArgs);\r\n this.changeTrigger(e);\r\n this.clearRange();\r\n this.hide(e);\r\n };\r\n DateRangePicker.prototype.restoreValue = function () {\r\n this.previousEleValue = this.inputElement.value;\r\n this.previousStartValue = this.startValue;\r\n this.previousEndValue = this.endValue;\r\n this.valueType = null;\r\n this.initStartDate = this.checkDateValue(this.startValue);\r\n this.initEndDate = this.checkDateValue(this.endValue);\r\n this.setValue();\r\n this.setModelValue();\r\n };\r\n DateRangePicker.prototype.formResetHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.formElement && (e.target === this.formElement) && !this.inputElement.disabled) {\r\n var val = this.inputElement.getAttribute('value');\r\n if (!isNullOrUndefined(this.startCopy)) {\r\n if (!isNullOrUndefined(this.value) && !isNullOrUndefined(this.value.start)) {\r\n this.setProperties({ value: { start: this.startCopy, end: this.endCopy } }, true);\r\n this.startValue = this.value.start;\r\n this.endValue = this.value.end;\r\n }\r\n else {\r\n this.setProperties({ value: [this.startCopy, this.endCopy] }, true);\r\n this.startValue = this.value[0];\r\n this.endValue = this.value[1];\r\n }\r\n this.setProperties({ startDate: this.startValue, endDate: this.endValue }, true);\r\n }\r\n else {\r\n this.setProperties({ value: null, startDate: null, endDate: null }, true);\r\n this.startValue = this.endValue = null;\r\n }\r\n if (this.element.tagName === 'EJS-DATERANGEPICKER') {\r\n this.setProperties({ value: null, startDate: null, endDate: null }, true);\r\n val = '';\r\n this.startValue = this.endValue = null;\r\n this.inputElement.setAttribute('value', '');\r\n }\r\n this.restoreValue();\r\n if (this.inputElement) {\r\n Input.setValue(val, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.errorClass();\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.clear = function () {\r\n if (this.startValue !== null) {\r\n this.startValue = null;\r\n }\r\n if (this.endValue !== null) {\r\n this.endValue = null;\r\n }\r\n if (this.value && this.value.start) {\r\n this.setProperties({ value: { start: null, end: null } }, true);\r\n }\r\n if (this.value !== null && this.value.length > 0) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\r\n if (!(isNullOrUndefined(this.applyButton))) {\r\n this.applyButton.disabled = this.applyButton.element.disabled = true;\r\n }\r\n this.removeSelection();\r\n };\r\n DateRangePicker.prototype.rangeIconHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.isMobile) {\r\n this.inputElement.setAttribute('readonly', '');\r\n }\r\n e.preventDefault();\r\n this.targetElement = null;\r\n if (this.isPopupOpen() && document.body.contains(this.popupObj.element)) {\r\n this.applyFunction(e);\r\n }\r\n else {\r\n this.isRangeIconClicked = true;\r\n this.inputWrapper.container.children[0].focus();\r\n this.show(null, e);\r\n if (!this.isMobile) {\r\n if (!isNullOrUndefined(this.leftCalendar)) {\r\n this.isRangeIconClicked = false;\r\n this.calendarFocus();\r\n this.isRangeIconClicked = true;\r\n }\r\n }\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n };\r\n DateRangePicker.prototype.checkHtmlAttributes = function (isDynamic) {\r\n this.globalize = new Internationalization(this.locale);\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['startDate', 'endDate', 'minDays', 'maxDays', 'min', 'max', 'disabled', 'readonly', 'style', 'name', 'placeholder',\r\n 'type', 'value'];\r\n var format = { format: this.formatString, type: 'date', skeleton: 'yMd' };\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['enabled'] === undefined)) || isDynamic) {\r\n var disabled = this.inputElement.getAttribute(prop) === 'disabled' ||\r\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ enabled: !disabled }, !isDynamic);\r\n }\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['readonly'] === undefined)) || isDynamic) {\r\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\r\n this.inputElement.getAttribute(prop) === 'true' || this.inputElement.getAttribute(prop) === '' ? true : false;\r\n this.setProperties({ readonly: readonly }, !isDynamic);\r\n }\r\n break;\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.dateRangeOptions) || (this.dateRangeOptions['value'] === undefined)) || isDynamic) {\r\n var value = this.inputElement.getAttribute(prop);\r\n this.setProperties(setValue(prop, value, {}), !isDynamic);\r\n }\r\n break;\r\n case 'style':\r\n this.inputElement.setAttribute('style', '' + this.inputElement.getAttribute(prop));\r\n break;\r\n case 'min':\r\n if ((isNullOrUndefined(this.min) || +this.min === +new Date(1900, 0, 1)) || isDynamic) {\r\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\r\n this.setProperties(setValue(prop, dateValue, {}), !isDynamic);\r\n }\r\n break;\r\n case 'name':\r\n this.inputElement.setAttribute('name', '' + this.inputElement.getAttribute(prop));\r\n break;\r\n case 'max':\r\n if ((isNullOrUndefined(this.max) || +this.max === +new Date(2099, 11, 31)) || isDynamic) {\r\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\r\n this.setProperties(setValue(prop, dateValue, {}), !isDynamic);\r\n }\r\n break;\r\n case 'startDate':\r\n if (isNullOrUndefined(this.startDate)) {\r\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\r\n this.startValue = dateValue;\r\n this.setValue();\r\n }\r\n break;\r\n case 'endDate':\r\n if (isNullOrUndefined(this.endDate)) {\r\n var dateValue = this.globalize.parseDate(this.inputElement.getAttribute(prop), format);\r\n this.endValue = dateValue;\r\n this.setValue();\r\n }\r\n break;\r\n case 'minDays':\r\n if (isNullOrUndefined(this.minDays)) {\r\n this.setProperties(setValue(prop, parseInt(this.inputElement.getAttribute(prop), 10), {}), true);\r\n }\r\n break;\r\n case 'maxDays':\r\n if (isNullOrUndefined(this.maxDays)) {\r\n this.setProperties(setValue(prop, parseInt(this.inputElement.getAttribute(prop), 10), {}), true);\r\n }\r\n break;\r\n case 'type':\r\n if (this.inputElement.getAttribute(prop) !== 'text') {\r\n this.inputElement.setAttribute('type', 'text');\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.createPopup = function () {\r\n for (var i = 0; i < this.presetsItem.length; i++) {\r\n if ((i !== (this.presetsItem.length - 1)) && this.presetsItem[i].id === 'custom_range') {\r\n this.presetsItem.splice(i, 1);\r\n }\r\n }\r\n this.activeIndex = this.presetsItem.length - 1;\r\n this.isCustomRange = true;\r\n for (var i = 0; i <= this.presetsItem.length - 2; i++) {\r\n var startDate = this.presetsItem[i].start;\r\n var endDate = this.presetsItem[i].end;\r\n if (this.startValue && this.endValue) {\r\n if ((+new Date(startDate.setHours(0, 0, 0, 0)) === +new Date(this.startValue.setHours(0, 0, 0, 0))) &&\r\n (+new Date(endDate.setHours(0, 0, 0, 0)) === +new Date(this.endValue.setHours(0, 0, 0, 0)))) {\r\n this.activeIndex = i;\r\n this.isCustomRange = false;\r\n }\r\n }\r\n }\r\n this.popupWrapper = createElement('div', { id: this.element.id + '_popup', className: ROOT + ' ' + POPUP });\r\n this.adjustLongHeaderWidth();\r\n var isPreset = (!this.isCustomRange || this.isMobile);\r\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && isPreset) {\r\n this.isCustomWindow = false;\r\n this.createPresets();\r\n this.listRippleEffect();\r\n this.renderPopup();\r\n }\r\n else {\r\n this.isCustomWindow = true;\r\n this.renderControl();\r\n }\r\n };\r\n DateRangePicker.prototype.renderControl = function () {\r\n this.createControl();\r\n this.bindCalendarEvents();\r\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n this.disabledDateRender();\r\n }\r\n this.updateHeader();\r\n };\r\n DateRangePicker.prototype.clearCalendarEvents = function () {\r\n EventHandler.clearEvents(this.leftCalPrevIcon);\r\n EventHandler.clearEvents(this.leftCalNextIcon);\r\n EventHandler.clearEvents(this.rightCalPrevIcon);\r\n EventHandler.clearEvents(this.rightCalNextIcon);\r\n };\r\n DateRangePicker.prototype.updateNavIcons = function () {\r\n _super.prototype.iconHandler.call(this);\r\n };\r\n DateRangePicker.prototype.calendarIconEvent = function () {\r\n this.clearCalendarEvents();\r\n if (this.leftCalPrevIcon && !this.leftCalPrevIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.leftCalPrevIcon, 'mousedown', this.navPrevFunction);\r\n }\r\n if (this.leftCalNextIcon && !this.leftCalNextIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.leftCalNextIcon, 'mousedown', this.navNextFunction);\r\n }\r\n if (this.rightCalPrevIcon && !this.rightCalPrevIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.rightCalPrevIcon, 'mousedown', this.navPrevFunction);\r\n }\r\n if (this.rightCalNextIcon && !this.rightCalNextIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.rightCalNextIcon, 'mousedown', this.navNextFunction);\r\n }\r\n };\r\n DateRangePicker.prototype.bindCalendarEvents = function () {\r\n if (!this.isMobile) {\r\n this.updateNavIcons();\r\n this.calendarIconEvent();\r\n this.calendarIconRipple();\r\n this.headerTitleElement = this.popupObj.element.querySelector('.' + RIGHTCALENDER + ' .' + HEADER + ' .' + TITLE);\r\n this.headerTitleElement = this.popupObj.element.querySelector('.' + LEFTCALENDER + ' .' + HEADER + ' .' + TITLE);\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\r\n this.leftKeyboardModule = new KeyboardEvents(this.leftCalendar, {\r\n eventName: 'keydown',\r\n keyAction: this.keyInputHandler.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n this.rightKeyboardModule = new KeyboardEvents(this.rightCalendar, {\r\n eventName: 'keydown',\r\n keyAction: this.keyInputHandler.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n }\r\n else {\r\n this.deviceCalendarEvent();\r\n EventHandler.add(this.startButton.element, 'click', this.deviceHeaderClick, this);\r\n EventHandler.add(this.endButton.element, 'click', this.deviceHeaderClick, this);\r\n }\r\n if (this.start === this.depth) {\r\n this.bindCalendarCellEvents();\r\n }\r\n this.removeFocusedDate();\r\n };\r\n DateRangePicker.prototype.calendarIconRipple = function () {\r\n rippleEffect(this.leftCalPrevIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\r\n rippleEffect(this.leftCalNextIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\r\n rippleEffect(this.rightCalPrevIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\r\n rippleEffect(this.rightCalNextIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\r\n };\r\n DateRangePicker.prototype.deviceCalendarEvent = function () {\r\n EventHandler.clearEvents(this.nextIcon);\r\n EventHandler.clearEvents(this.previousIcon);\r\n rippleEffect(this.nextIcon, { selector: '.e-prev', duration: 400, isCenterRipple: true });\r\n rippleEffect(this.previousIcon, { selector: '.e-next', duration: 400, isCenterRipple: true });\r\n if (this.nextIcon && !this.nextIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.nextIcon, 'mousedown', this.deviceNavNextFunction);\r\n }\r\n if (this.previousIcon && !this.previousIcon.classList.contains(DISABLED)) {\r\n EventHandler.add(this.previousIcon, 'mousedown', this.deviceNavPrevFunction);\r\n }\r\n };\r\n DateRangePicker.prototype.deviceNavNext = function (e) {\r\n var calendar = closest(e.target, '.' + CALENDAR);\r\n this.updateDeviceCalendar(calendar);\r\n this.navigateNext(e);\r\n this.deviceNavigation();\r\n };\r\n DateRangePicker.prototype.deviceNavPrevious = function (e) {\r\n var calendar = closest(e.target, '.' + CALENDAR);\r\n this.updateDeviceCalendar(calendar);\r\n this.navigatePrevious(e);\r\n this.deviceNavigation();\r\n };\r\n DateRangePicker.prototype.updateDeviceCalendar = function (calendar) {\r\n if (calendar) {\r\n this.previousIcon = calendar.querySelector('.' + PREVICON);\r\n this.nextIcon = calendar.querySelector('.' + NEXTICON);\r\n this.calendarElement = calendar;\r\n this.deviceCalendar = calendar;\r\n this.contentElement = calendar.querySelector('.' + CONTENT);\r\n this.tableBodyElement = select('.' + CONTENT + ' tbody', calendar);\r\n this.table = calendar.querySelector('.' + CONTENT).getElementsByTagName('table')[0];\r\n this.headerTitleElement = calendar.querySelector('.' + HEADER + ' .' + TITLE);\r\n this.headerElement = calendar.querySelector('.' + HEADER);\r\n }\r\n };\r\n DateRangePicker.prototype.deviceHeaderClick = function (event) {\r\n var element = event.currentTarget;\r\n if (element.classList.contains(STARTBUTTON) && !isNullOrUndefined(this.startValue)) {\r\n this.endButton.element.classList.remove(ACTIVE);\r\n this.startButton.element.classList.add(ACTIVE);\r\n var calendar = this.popupObj.element.querySelector('.' + CALENDAR);\r\n this.updateDeviceCalendar(calendar);\r\n if (isNullOrUndefined(this.calendarElement.querySelector('.' + STARTDATE + ':not(.e-other-month)'))) {\r\n this.currentDate = new Date(+this.startValue);\r\n remove(this.tableBodyElement);\r\n this.createContentBody();\r\n this.deviceNavigation();\r\n }\r\n this.removeClassDisabled();\r\n }\r\n else if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\r\n this.startButton.element.classList.remove(ACTIVE);\r\n this.endButton.element.classList.add(ACTIVE);\r\n var calendar = this.popupObj.element.querySelector('.' + CALENDAR);\r\n this.updateDeviceCalendar(calendar);\r\n if (isNullOrUndefined(this.calendarElement.querySelector('.' + ENDDATE + ':not(.e-other-month)'))) {\r\n this.currentDate = new Date(+this.endValue);\r\n remove(this.tableBodyElement);\r\n this.createContentBody();\r\n this.deviceNavigation();\r\n }\r\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\r\n this.selectableDates();\r\n }\r\n };\r\n DateRangePicker.prototype.inputFocusHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.preventBlur = false;\r\n var focusArguments = {\r\n model: this\r\n };\r\n if (!this.preventFocus) {\r\n this.trigger('focus', focusArguments);\r\n }\r\n this.updateClearIconState();\r\n this.updateHiddenInput();\r\n if (this.openOnFocus && !this.preventFocus) {\r\n this.preventFocus = true;\r\n this.show();\r\n }\r\n else {\r\n this.preventFocus = true;\r\n }\r\n };\r\n DateRangePicker.prototype.inputBlurHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (!this.preventBlur) {\r\n var value = this.inputElement.value;\r\n if (!isNullOrUndefined(this.presetsItem)) {\r\n if (this.presetsItem.length > 0 && this.previousEleValue !== this.inputElement.value) {\r\n this.activeIndex = this.presetsItem.length - 1;\r\n this.isCustomRange = true;\r\n }\r\n }\r\n if (!isNullOrUndefined(value) && value.trim() !== '') {\r\n var range = value.split(' ' + this.separator + ' ');\r\n if (range.length > 1) {\r\n this.invalidValueString = null;\r\n var dateOptions = { format: this.formatString, type: 'date', skeleton: 'yMd' };\r\n var startDate = this.globalize.parseDate(range[0].trim(), dateOptions);\r\n var endDate = this.globalize.parseDate(range[1].trim(), dateOptions);\r\n if (!isNullOrUndefined(startDate) && !isNaN(+startDate) && !isNullOrUndefined(endDate) && !isNaN(+endDate)) {\r\n var prevStartVal = this.startValue;\r\n this.startValue = startDate;\r\n var prevEndVal = this.endValue;\r\n this.endValue = endDate;\r\n this.setValue();\r\n this.refreshControl();\r\n if (value !== this.previousEleValue) {\r\n this.changeTrigger(e);\r\n }\r\n if (!this.preventBlur && document.activeElement !== this.inputElement) {\r\n this.preventFocus = false;\r\n var blurArguments = {\r\n model: this\r\n };\r\n this.trigger('blur', blurArguments);\r\n }\r\n this.updateHiddenInput();\r\n // For Mobile mode, when a value is present and choose another range and click on console\r\n // when popup is open, two startvalues and end values are updated in the popup.\r\n if (this.isMobile && this.isPopupOpen()) {\r\n this.startValue = prevStartVal;\r\n this.endValue = prevEndVal;\r\n }\r\n return;\r\n }\r\n else {\r\n if (!this.strictMode) {\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n }\r\n else {\r\n if (!this.strictMode) {\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n }\r\n if (!this.strictMode) {\r\n if (isNullOrUndefined(this.popupObj)) {\r\n this.currentDate = null;\r\n }\r\n this.previousStartValue = this.previousEndValue = null;\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n else {\r\n if (!isNullOrUndefined(value) && value.trim() === '') {\r\n this.startValue = null;\r\n this.endValue = null;\r\n }\r\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.updateInput();\r\n }\r\n this.errorClass();\r\n this.changeTrigger(e);\r\n if (!this.preventBlur && document.activeElement !== this.inputElement) {\r\n this.preventFocus = false;\r\n var blurArguments = {\r\n model: this\r\n };\r\n this.trigger('blur', blurArguments);\r\n }\r\n }\r\n this.updateHiddenInput();\r\n };\r\n DateRangePicker.prototype.clearRange = function () {\r\n this.previousStartValue = this.previousEndValue = null;\r\n this.currentDate = null;\r\n };\r\n DateRangePicker.prototype.errorClass = function () {\r\n var inputStr = this.inputElement.value.trim();\r\n if (((isNullOrUndefined(this.endValue) && isNullOrUndefined(this.startValue) && inputStr !== '') ||\r\n ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\r\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\r\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max))\r\n || ((this.startValue && this.isDateDisabled(this.startValue))\r\n || (this.endValue && this.isDateDisabled(this.endValue)))) && inputStr !== '') {\r\n addClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'true' });\r\n }\r\n else {\r\n if (this.inputWrapper) {\r\n removeClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'false' });\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.keyCalendarUpdate = function (isLeftCalendar, ele) {\r\n this.removeFocusedDate();\r\n if (isLeftCalendar) {\r\n this.leftCalCurrentDate = new Date(+this.currentDate);\r\n ele = this.leftCalendar;\r\n }\r\n else {\r\n this.rightCalCurrentDate = new Date(+this.currentDate);\r\n ele = this.rightCalendar;\r\n }\r\n this.updateCalendarElement(ele);\r\n this.table.focus();\r\n return ele;\r\n };\r\n DateRangePicker.prototype.navInCalendar = function (e, isLeftCalendar, leftLimit, rightLimit, ele) {\r\n var view = this.getViewNumber(this.currentView());\r\n var date;\r\n var min = this.min;\r\n var max;\r\n if (!isNullOrUndefined(this.maxDays) && this.isMaxDaysClicked && !isNullOrUndefined(this.startValue)) {\r\n max = new Date(new Date(+this.startValue).setDate(this.startValue.getDate() + (this.maxDays - 1)));\r\n }\r\n else {\r\n max = this.max;\r\n }\r\n switch (e.action) {\r\n case 'moveRight':\r\n date = new Date(+this.currentDate);\r\n this.addDay(date, 1, e, max, min);\r\n if (isLeftCalendar && +date === +rightLimit) {\r\n ele = this.keyCalendarUpdate(false, ele);\r\n }\r\n this.keyboardNavigate(1, view, e, max, min);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'moveLeft':\r\n date = new Date(+this.currentDate);\r\n this.addDay(date, -1, e, max, min);\r\n if (!isLeftCalendar) {\r\n if (+date === +leftLimit) {\r\n ele = this.keyCalendarUpdate(true, ele);\r\n }\r\n }\r\n this.keyboardNavigate(-1, view, e, max, min);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'moveUp':\r\n if (view === 0) {\r\n date = new Date(+this.currentDate);\r\n this.addDay(date, -7, e, max, min);\r\n if (+date <= +leftLimit && !isLeftCalendar) {\r\n ele = this.keyCalendarUpdate(true, ele);\r\n }\r\n this.keyboardNavigate(-7, view, e, max, min);\r\n }\r\n else {\r\n this.keyboardNavigate(-4, view, e, this.max, this.min); // move the current year to the previous four days.\r\n }\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'moveDown':\r\n if (view === 0) {\r\n date = new Date(+this.currentDate);\r\n this.addDay(date, 7, e, max, min);\r\n if (isLeftCalendar && +date >= +rightLimit) {\r\n ele = this.keyCalendarUpdate(false, ele);\r\n }\r\n this.keyboardNavigate(7, view, e, max, min);\r\n }\r\n else {\r\n this.keyboardNavigate(4, view, e, this.max, this.min);\r\n }\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'home':\r\n this.currentDate = this.firstDay(this.currentDate);\r\n remove(this.tableBodyElement);\r\n if (view === 0) {\r\n this.renderMonths(e);\r\n }\r\n else if (view === 1) {\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.renderDecades(e);\r\n }\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'end':\r\n this.currentDate = this.lastDay(this.currentDate, view);\r\n remove(this.tableBodyElement);\r\n if (view === 0) {\r\n this.renderMonths(e);\r\n }\r\n else if (view === 1) {\r\n this.renderYears(e);\r\n }\r\n else {\r\n this.renderDecades(e);\r\n }\r\n this.keyNavigation(ele, e);\r\n break;\r\n }\r\n };\r\n DateRangePicker.prototype.keyInputHandler = function (e, value) {\r\n var date;\r\n var view = this.getViewNumber(this.currentView());\r\n var rightDateLimit = new Date(this.rightCalCurrentDate.getFullYear(), this.rightCalCurrentDate.getMonth(), 1);\r\n var leftDateLimit = new Date(this.leftCalCurrentDate.getFullYear(), this.leftCalCurrentDate.getMonth() + 1, 0);\r\n var ele = closest(e.target, '.' + RIGHTCALENDER);\r\n ele = isNullOrUndefined(ele) ? this.leftCalendar : ele;\r\n var isLeftCalendar = ele.classList.contains(LEFTCALENDER);\r\n this.updateCalendarElement(ele);\r\n var selectedDate = this.tableBodyElement.querySelector('tr td.e-selected');\r\n var focusedDate = ele.querySelector('tr td.' + FOCUSDATE);\r\n var startDate = ele.querySelector('tr td.' + STARTDATE);\r\n var endDate = ele.querySelector('tr td.' + ENDDATE);\r\n var depthValue = this.getViewNumber(this.depth);\r\n var levelRestrict = (view === depthValue && this.getViewNumber(this.start) >= depthValue);\r\n var leftCalendar = closest(e.target, '.' + LEFTCALENDER);\r\n var rightCalendar = closest(e.target, '.' + RIGHTCALENDER);\r\n var presetElement = closest(e.target, '.' + PRESETS);\r\n if (!isNullOrUndefined(focusedDate)) {\r\n // eslint-disable-next-line no-self-assign\r\n this.currentDate = this.currentDate;\r\n }\r\n else if (!isNullOrUndefined(endDate) && !this.dateDisabled) {\r\n this.currentDate = new Date(+this.endValue);\r\n }\r\n else if (!isNullOrUndefined(startDate) && !this.dateDisabled) {\r\n this.currentDate = new Date(+this.startValue);\r\n }\r\n else if (!this.dateDisabled) {\r\n this.currentDate.setDate(1);\r\n }\r\n this.effect = '';\r\n switch (e.action) {\r\n case 'altUpArrow':\r\n if (this.isPopupOpen()) {\r\n this.hide(e);\r\n this.preventFocus = true;\r\n this.inputElement.focus();\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n break;\r\n case 'select':\r\n if (levelRestrict) {\r\n var element = !isNullOrUndefined(focusedDate) ? focusedDate : startDate;\r\n if (!isNullOrUndefined(element) && !element.classList.contains(DISABLED)) {\r\n this.selectRange(null, (element));\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(selectedDate) && !levelRestrict || !isNullOrUndefined(focusedDate)) {\r\n if (!isNullOrUndefined(this.value)) {\r\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\r\n value = this.startDate;\r\n }\r\n else {\r\n value = this.endDate;\r\n }\r\n }\r\n this.controlDown = e;\r\n this.contentClick(null, --view, (focusedDate || selectedDate), value);\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'controlHome':\r\n {\r\n var yearDate = new Date(this.currentDate.getFullYear(), 0, 1);\r\n if (!isLeftCalendar && +yearDate < +leftDateLimit) {\r\n ele = this.keyCalendarUpdate(true, ele);\r\n }\r\n _super.prototype.navigateTo.call(this, 'Month', new Date(this.currentDate.getFullYear(), 0, 1));\r\n this.keyNavigation(ele, e);\r\n }\r\n break;\r\n case 'altRightArrow':\r\n if (!isNullOrUndefined(leftCalendar)) {\r\n this.rightCalendar.children[1].firstElementChild.focus();\r\n }\r\n else if (!isNullOrUndefined(rightCalendar)) {\r\n if (!isNullOrUndefined(this.presetElement)) {\r\n this.presetElement.focus();\r\n this.removeFocusedDate();\r\n }\r\n else {\r\n this.cancelButton.element.focus();\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(presetElement)) {\r\n this.cancelButton.element.focus();\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'altLeftArrow':\r\n if (!isNullOrUndefined(leftCalendar)) {\r\n if (this.applyButton.element.disabled !== true) {\r\n this.applyButton.element.focus();\r\n }\r\n else {\r\n this.cancelButton.element.focus();\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(rightCalendar)) {\r\n this.leftCalendar.children[1].firstElementChild.focus();\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'controlUp':\r\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\r\n this.calendarNavigation(e, this.calendarElement);\r\n }\r\n else {\r\n this.calendarNavigation(e, this.calendarElement);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'controlDown':\r\n if ((!isNullOrUndefined(selectedDate) || !isNullOrUndefined(focusedDate)) && !levelRestrict) {\r\n if (!isNullOrUndefined(this.value)) {\r\n if (this.calendarElement.classList.contains(LEFTCALENDER)) {\r\n value = this.startDate;\r\n }\r\n else {\r\n value = this.endDate;\r\n }\r\n }\r\n this.controlDown = e;\r\n this.contentClick(null, --view, (selectedDate || focusedDate), value);\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'controlEnd':\r\n {\r\n var yearDate = new Date(this.currentDate.getFullYear(), 11, 31);\r\n if (isLeftCalendar && +yearDate > +rightDateLimit) {\r\n ele = this.keyCalendarUpdate(false, ele);\r\n }\r\n _super.prototype.navigateTo.call(this, 'Month', new Date(this.currentDate.getFullYear(), 11, 31));\r\n this.keyNavigation(ele, e);\r\n }\r\n break;\r\n case 'pageUp':\r\n date = new Date(+this.currentDate);\r\n this.addMonths(date, -1);\r\n if (!isLeftCalendar && +date <= +leftDateLimit) {\r\n ele = this.keyCalendarUpdate(true, ele);\r\n }\r\n this.addMonths(this.currentDate, -1);\r\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'pageDown':\r\n date = new Date(+this.currentDate);\r\n this.addMonths(date, 1);\r\n if (isLeftCalendar && +date >= +rightDateLimit) {\r\n ele = this.keyCalendarUpdate(false, ele);\r\n }\r\n this.addMonths(this.currentDate, 1);\r\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'shiftPageUp':\r\n date = new Date(+this.currentDate);\r\n this.addYears(date, -1);\r\n if (!isLeftCalendar && +date <= +leftDateLimit) {\r\n ele = this.keyCalendarUpdate(true, ele);\r\n }\r\n this.addYears(this.currentDate, -1);\r\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'shiftPageDown':\r\n date = new Date(+this.currentDate);\r\n this.addYears(date, 1);\r\n if (isLeftCalendar && +date >= +rightDateLimit) {\r\n ele = this.keyCalendarUpdate(false, ele);\r\n }\r\n this.addYears(this.currentDate, 1);\r\n _super.prototype.navigateTo.call(this, 'Month', this.currentDate);\r\n this.keyNavigation(ele, e);\r\n break;\r\n case 'shiftTab':\r\n if (!isNullOrUndefined(this.presetElement)) {\r\n this.presetElement.setAttribute('tabindex', '0');\r\n this.presetElement.focus();\r\n this.removeFocusedDate();\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'spacebar':\r\n if (this.applyButton && !this.applyButton.disabled) {\r\n this.applyFunction(e);\r\n }\r\n break;\r\n default:\r\n this.navInCalendar(e, isLeftCalendar, leftDateLimit, rightDateLimit, ele);\r\n this.checkMinMaxDays();\r\n }\r\n this.presetHeight();\r\n };\r\n DateRangePicker.prototype.keyNavigation = function (calendar, e) {\r\n this.bindCalendarCellEvents(calendar);\r\n if (calendar.classList.contains(LEFTCALENDER)) {\r\n this.leftCalCurrentDate = new Date(+this.currentDate);\r\n }\r\n else {\r\n this.rightCalCurrentDate = new Date(+this.currentDate);\r\n }\r\n this.updateNavIcons();\r\n this.calendarIconEvent();\r\n this.updateRange([calendar]);\r\n this.dateDisabled = this.isDateDisabled(this.currentDate);\r\n e.preventDefault();\r\n };\r\n DateRangePicker.prototype.inputHandler = function (e) {\r\n switch (e.action) {\r\n case 'altDownArrow':\r\n if (!this.isPopupOpen()) {\r\n if (this.inputElement.value === '') {\r\n this.clear();\r\n this.changeTrigger(e);\r\n this.clearRange();\r\n }\r\n this.show(null, e);\r\n this.isRangeIconClicked = false;\r\n if (!this.isMobile) {\r\n if (!isNullOrUndefined(this.leftCalendar)) {\r\n this.calendarFocus();\r\n }\r\n }\r\n this.isKeyPopup = true;\r\n }\r\n break;\r\n case 'escape':\r\n if (this.isPopupOpen()) {\r\n this.hide(e);\r\n }\r\n break;\r\n case 'enter':\r\n if (document.activeElement === this.inputElement) {\r\n this.inputBlurHandler(e);\r\n this.hide(e);\r\n }\r\n break;\r\n case 'tab':\r\n if (document.activeElement === this.inputElement && this.isPopupOpen()) {\r\n this.hide(e);\r\n e.preventDefault();\r\n }\r\n break;\r\n }\r\n };\r\n DateRangePicker.prototype.bindCalendarCellEvents = function (calendar) {\r\n var tdCells;\r\n if (calendar) {\r\n tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\r\n }\r\n else {\r\n tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td');\r\n }\r\n for (var _i = 0, tdCells_1 = tdCells; _i < tdCells_1.length; _i++) {\r\n var cell = tdCells_1[_i];\r\n EventHandler.clearEvents(cell);\r\n var disabledCell = cell.classList.contains(DISABLED) || cell.classList.contains(DATEDISABLED);\r\n if (!disabledCell && !cell.classList.contains(WEEKNUMBER)) {\r\n if (!this.isMobile) {\r\n EventHandler.add(cell, 'mouseover', this.hoverSelection, this);\r\n }\r\n EventHandler.add(cell, 'mousedown', this.selectRange, this);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.removeFocusedDate = function () {\r\n var isDate = !isNullOrUndefined(this.startValue) || !isNullOrUndefined(this.endValue);\r\n var focusedDate = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' .' + FOCUSDATE);\r\n for (var _i = 0, focusedDate_1 = focusedDate; _i < focusedDate_1.length; _i++) {\r\n var ele = focusedDate_1[_i];\r\n var today = new Date();\r\n var eleDate = this.getIdValue(null, ele);\r\n if ((this.depth === 'Month' && this.currentView() === 'Month' &&\r\n (!ele.classList.contains(TODAY) || (ele.classList.contains(TODAY) && isDate)))\r\n || (this.depth === 'Year' && this.currentView() === 'Year' &&\r\n ((!this.isSameMonth(today, eleDate) && !this.isSameYear(today, eleDate)) || isDate))\r\n || (this.depth === 'Decade' && this.currentView() === 'Decade' &&\r\n (!this.isSameYear(today, eleDate) || isDate))) {\r\n ele.classList.remove(FOCUSDATE);\r\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(ENDDATE)) {\r\n ele.removeAttribute('aria-label');\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.hoverSelection = function (event, element) {\r\n var currentElement = element || event.currentTarget;\r\n var currentDate = this.getIdValue(null, currentElement);\r\n if (!isNullOrUndefined(this.startValue) && +this.startValue >= +this.min && +this.startValue <= +this.max) {\r\n if ((!this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)\r\n && isNullOrUndefined(this.endValue) && isNullOrUndefined(this.startValue))\r\n || (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue))) {\r\n var tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td');\r\n for (var _i = 0, tdCells_2 = tdCells; _i < tdCells_2.length; _i++) {\r\n var ele = tdCells_2[_i];\r\n var isDisabledCell = (!ele.classList.contains(DISABLED) || ele.classList.contains(DATEDISABLED));\r\n if (!ele.classList.contains(WEEKNUMBER) && isDisabledCell) {\r\n var eleDate = this.getIdValue(null, ele);\r\n var startDateValue = new Date(+this.startValue);\r\n var eleDateValue = new Date(+eleDate);\r\n if (eleDateValue.setHours(0, 0, 0, 0) >= startDateValue.setHours(0, 0, 0, 0) && +eleDate <= +currentDate) {\r\n addClass([ele], RANGEHOVER);\r\n }\r\n else {\r\n removeClass([ele], [RANGEHOVER]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.isSameStartEnd = function (startVal, endVal) {\r\n var isSame = false;\r\n if (this.depth === 'Month') {\r\n if ((startVal).setHours(0, 0, 0, 0) === (endVal).setHours(0, 0, 0, 0)) {\r\n isSame = true;\r\n }\r\n }\r\n else if (this.depth === 'Year') {\r\n if ((startVal.getFullYear() === endVal.getFullYear()) &&\r\n (startVal.getMonth() === endVal.getMonth())) {\r\n isSame = true;\r\n }\r\n }\r\n else if (this.depth === 'Decade') {\r\n if (startVal.getFullYear() === endVal.getFullYear()) {\r\n isSame = true;\r\n }\r\n }\r\n return isSame;\r\n };\r\n DateRangePicker.prototype.updateRange = function (elementCollection) {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n for (var _i = 0, elementCollection_1 = elementCollection; _i < elementCollection_1.length; _i++) {\r\n var calendar = elementCollection_1[_i];\r\n var tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\r\n for (var _a = 0, tdCells_3 = tdCells; _a < tdCells_3.length; _a++) {\r\n var ele = tdCells_3[_a];\r\n if (!ele.classList.contains(WEEKNUMBER) && !ele.classList.contains(DISABLED)) {\r\n var eleDate = this.getIdValue(null, ele);\r\n var eleDateValue = this.getIdValue(null, ele);\r\n if (!isNullOrUndefined(this.endValue)) {\r\n if (this.currentView() === this.depth &&\r\n +eleDateValue.setHours(0, 0, 0, 0) >= +new Date(+this.startValue).setHours(0, 0, 0, 0)\r\n && +eleDateValue.setHours(0, 0, 0, 0) <= +new Date(+this.endValue).setHours(0, 0, 0, 0) &&\r\n !this.isSameStartEnd(new Date(+this.startValue), new Date(+this.endValue)) &&\r\n +new Date(+this.startValue).setHours(0, 0, 0, 0) >= +this.min\r\n && +new Date(+this.endValue).setHours(0, 0, 0, 0) <= +this.max\r\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\r\n addClass([ele], RANGEHOVER);\r\n }\r\n }\r\n else {\r\n removeClass([ele], [RANGEHOVER]);\r\n }\r\n if (ele.classList.contains(SELECTED) && ele.classList.contains(ENDDATE) &&\r\n (+eleDateValue !== +this.endValue)) {\r\n removeClass([ele], [SELECTED]);\r\n removeClass([ele], [ENDDATE]);\r\n }\r\n if (ele.classList.contains(RANGEHOVER) && (+eleDateValue > +this.endValue)) {\r\n removeClass([ele], [RANGEHOVER]);\r\n }\r\n if (!ele.classList.contains(OTHERMONTH)) {\r\n var startDateValue = new Date(+this.startValue);\r\n var eleDateValue_1 = new Date(+eleDate);\r\n if (this.currentView() === this.depth &&\r\n +eleDateValue_1.setHours(0, 0, 0, 0) === +startDateValue.setHours(0, 0, 0, 0)\r\n && +eleDateValue_1.setHours(0, 0, 0, 0) >= +startDateValue.setHours(0, 0, 0, 0) &&\r\n +this.startValue >= +this.min\r\n && !this.inputWrapper.container.classList.contains('e-error')\r\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\r\n addClass([ele], [STARTDATE, SELECTED]);\r\n this.addSelectedAttributes(ele, this.startValue, true);\r\n }\r\n var endDateValue = new Date(+this.endValue);\r\n if (this.currentView() === 'Year') {\r\n eleDateValue_1 = new Date(eleDateValue_1.getFullYear(), eleDateValue_1.getMonth() + 1, 0);\r\n }\r\n else if (this.currentView() === 'Decade') {\r\n eleDateValue_1 = new Date(eleDateValue_1.getFullYear(), 11, 31);\r\n }\r\n if (this.currentView() === this.depth &&\r\n !isNullOrUndefined(this.endValue) &&\r\n +eleDateValue_1.setHours(0, 0, 0, 0) === +endDateValue.setHours(0, 0, 0, 0)\r\n && +eleDateValue_1.setHours(0, 0, 0, 0) <= +endDateValue.setHours(0, 0, 0, 0) &&\r\n +this.startValue >= +this.min\r\n && !this.inputWrapper.container.classList.contains('e-error')\r\n && !(this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue))) {\r\n addClass([ele], [ENDDATE, SELECTED]);\r\n this.addSelectedAttributes(ele, this.startValue, false);\r\n }\r\n if (+eleDate === +this.startValue && !isNullOrUndefined(this.endValue) && +eleDate === +this.endValue) {\r\n this.addSelectedAttributes(ele, this.endValue, false, true);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.checkMinMaxDays = function () {\r\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) || (!isNullOrUndefined(this.maxDays) && this.maxDays > 0)) {\r\n if (!this.isMobile) {\r\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + LEFTCALENDER));\r\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + RIGHTCALENDER));\r\n }\r\n else {\r\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.rangeArgs = function (e) {\r\n var inputValue;\r\n var range;\r\n var startDate = !isNullOrUndefined(this.startValue) ?\r\n this.globalize.formatDate(this.startValue, {\r\n format: this.formatString, type: 'date', skeleton: 'yMd'\r\n }) : null;\r\n var endDate = !isNullOrUndefined(this.endValue) ?\r\n this.globalize.formatDate(this.endValue, {\r\n format: this.formatString, type: 'date', skeleton: 'yMd'\r\n }) : null;\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n inputValue = startDate + ' ' + this.separator + ' ' + endDate;\r\n range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\r\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\r\n }\r\n else {\r\n inputValue = '';\r\n range = 0;\r\n }\r\n var args = {\r\n value: this.value,\r\n startDate: this.startValue,\r\n endDate: this.endValue,\r\n daySpan: range,\r\n event: e || null,\r\n element: this.element,\r\n isInteracted: !isNullOrUndefined(e),\r\n text: inputValue\r\n };\r\n return args;\r\n };\r\n DateRangePicker.prototype.otherMonthSelect = function (ele, isStartDate, sameDate) {\r\n var value = +this.getIdValue(null, ele);\r\n var dateIdString = '*[id^=\"/id\"]:not(.e-other-month)'.replace('/id', '' + value);\r\n var tdCell = this.popupObj && this.popupObj.element.querySelector(dateIdString);\r\n if (!isNullOrUndefined(tdCell)) {\r\n if (isStartDate) {\r\n addClass([tdCell], [STARTDATE, SELECTED]);\r\n this.addSelectedAttributes(tdCell, this.startValue, true);\r\n }\r\n else {\r\n addClass([tdCell], [ENDDATE, SELECTED]);\r\n this.addSelectedAttributes(tdCell, this.endValue, true);\r\n }\r\n if (sameDate) {\r\n this.addSelectedAttributes(ele, this.endValue, false, true);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.selectRange = function (event, element) {\r\n var leftCalendar;\r\n var rightCalendar;\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n var date = isNullOrUndefined(event) ? this.getIdValue(null, element)\r\n : this.getIdValue(event, null);\r\n var y = date.getFullYear();\r\n var m = date.getMonth();\r\n var firstDay = new Date(y, m, 1);\r\n var lastDay = new Date(y, m + 1, 0);\r\n var firstMonth = new Date(y, 0, 1);\r\n var lastMonth = new Date(y, 11, 31);\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n if (!this.isMobile || this.isMobile && !this.endButton.element.classList.contains(ACTIVE)) {\r\n this.removeSelection();\r\n }\r\n }\r\n else if (this.isMobile && this.startButton.element.classList.contains(ACTIVE)) {\r\n this.removeSelection();\r\n }\r\n var ele = element || event.currentTarget;\r\n if (isNullOrUndefined(this.startValue)) {\r\n if (!isNullOrUndefined(this.previousStartValue)) {\r\n date.setHours(this.previousStartValue.getHours());\r\n date.setMinutes(this.previousStartValue.getMinutes());\r\n date.setSeconds(this.previousStartValue.getSeconds());\r\n }\r\n this.startValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\r\n (this.depth === 'Year') ? firstDay : firstMonth;\r\n this.endValue = null;\r\n this.setValue();\r\n addClass([ele], STARTDATE);\r\n this.addSelectedAttributes(ele, this.startValue, true);\r\n if (ele.classList.contains(OTHERMONTH)) {\r\n this.otherMonthSelect(ele, true);\r\n }\r\n this.checkMinMaxDays();\r\n this.applyButton.disabled = true;\r\n this.applyButton.element.disabled = true;\r\n if (this.isMobile) {\r\n this.endButton.element.classList.add(ACTIVE);\r\n this.startButton.element.classList.remove(ACTIVE);\r\n this.endButton.element.removeAttribute('disabled');\r\n this.selectableDates();\r\n }\r\n this.trigger('select', this.rangeArgs(event));\r\n }\r\n else {\r\n if (+date === +this.startValue || +date > +this.startValue) {\r\n if (+date === +this.startValue && !isNullOrUndefined(this.minDays) && this.minDays > 1) {\r\n return;\r\n }\r\n this.endValue = null;\r\n this.setValue();\r\n if (this.isMobile || element) {\r\n this.hoverSelection(event, element);\r\n }\r\n if (!isNullOrUndefined(this.previousEndValue)) {\r\n date.setHours(this.previousEndValue.getHours());\r\n date.setMinutes(this.previousEndValue.getMinutes());\r\n date.setSeconds(this.previousEndValue.getSeconds());\r\n }\r\n this.endValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\r\n (this.depth === 'Year') ? lastDay : lastMonth;\r\n this.setValue();\r\n var endEle = this.popupObj.element.querySelectorAll('.' + ENDDATE);\r\n if (this.isMobile) {\r\n this.startButton.element.classList.remove(ACTIVE);\r\n this.endButton.element.classList.add(ACTIVE);\r\n for (var _i = 0, endEle_1 = endEle; _i < endEle_1.length; _i++) {\r\n var ele_1 = endEle_1[_i];\r\n ele_1.removeAttribute('aria-label');\r\n if (!ele_1.classList.contains(STARTDATE)) {\r\n ele_1.setAttribute('aria-selected', 'false');\r\n removeClass([ele_1], [ENDDATE, SELECTED]);\r\n }\r\n else {\r\n this.addSelectedAttributes(ele_1, this.startValue, true);\r\n removeClass([ele_1], [ENDDATE]);\r\n }\r\n }\r\n }\r\n addClass([ele], ENDDATE);\r\n if (+this.endValue === +this.startValue) {\r\n this.addSelectedAttributes(ele, this.endValue, false, true);\r\n }\r\n else {\r\n this.addSelectedAttributes(ele, this.endValue, false);\r\n }\r\n if (ele.classList.contains(OTHERMONTH)) {\r\n if (+this.endValue === +this.startValue) {\r\n this.otherMonthSelect(ele, false, true);\r\n }\r\n else {\r\n this.otherMonthSelect(ele, false);\r\n }\r\n }\r\n endEle = this.popupObj.element.querySelectorAll('.' + ENDDATE);\r\n for (var _a = 0, endEle_2 = endEle; _a < endEle_2.length; _a++) {\r\n var ele_2 = endEle_2[_a];\r\n if (ele_2.classList.contains(STARTDATE)) {\r\n removeClass([ele_2], [RANGEHOVER]);\r\n }\r\n }\r\n this.applyButton.disabled = false;\r\n this.applyButton.element.disabled = false;\r\n if (!this.isMobile) {\r\n this.removeClassDisabled();\r\n }\r\n this.disabledDateRender();\r\n this.trigger('select', this.rangeArgs(event));\r\n }\r\n else if (+date < +this.startValue) {\r\n this.removeClassDisabled();\r\n this.startValue = (this.depth === 'Month') ? new Date(this.checkValue(date)) :\r\n (this.depth === 'Year') ? firstDay : firstMonth;\r\n this.setValue();\r\n this.removeSelectedAttributes();\r\n removeClass(this.popupObj.element.querySelectorAll('.' + STARTDATE), [STARTDATE, SELECTED]);\r\n addClass([ele], STARTDATE);\r\n this.addSelectedAttributes(ele, this.startValue, true);\r\n if (ele.classList.contains(OTHERMONTH)) {\r\n this.otherMonthSelect(ele, true);\r\n }\r\n this.checkMinMaxDays();\r\n }\r\n }\r\n if (event) {\r\n leftCalendar = closest(event.target, '.' + LEFTCALENDER);\r\n }\r\n if (!isNullOrUndefined(leftCalendar)) {\r\n this.leftCalendar.children[1].firstElementChild.focus();\r\n }\r\n else {\r\n if (event) {\r\n rightCalendar = event && closest(event.target, '.' + RIGHTCALENDER);\r\n }\r\n if (!isNullOrUndefined(rightCalendar)) {\r\n this.rightCalendar.children[1].firstElementChild.focus();\r\n }\r\n }\r\n addClass([ele], SELECTED);\r\n this.updateHeader();\r\n this.removeFocusedDate();\r\n };\r\n DateRangePicker.prototype.selectableDates = function () {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n var tdCells = this.calendarElement.querySelectorAll('.' + CALENDAR + ' td');\r\n var isStartDate = false;\r\n if (this.currentView() === this.depth) {\r\n for (var _i = 0, tdCells_4 = tdCells; _i < tdCells_4.length; _i++) {\r\n var ele = tdCells_4[_i];\r\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(WEEKNUMBER)) {\r\n if (!ele.classList.contains(DISABLED)) {\r\n var eleDate = this.getIdValue(null, ele);\r\n if (+eleDate < +this.startValue) {\r\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\r\n EventHandler.clearEvents(ele);\r\n continue;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n if (ele.classList.contains(STARTDATE) && !ele.classList.contains(OTHERMONTH)) {\r\n isStartDate = true;\r\n break;\r\n }\r\n }\r\n if (isStartDate) {\r\n if (!this.previousIcon.classList.contains(DISABLED)) {\r\n addClass([this.previousIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n }\r\n else {\r\n for (var _a = 0, tdCells_5 = tdCells; _a < tdCells_5.length; _a++) {\r\n var ele = tdCells_5[_a];\r\n var startMonth = this.startValue.getMonth();\r\n var startYear = this.startValue.getFullYear();\r\n var element = this.getIdValue(null, ele);\r\n if (!this.startButton.element.classList.contains(ACTIVE) && ((this.currentView() === 'Year' &&\r\n (element.getMonth() < startMonth) && (element.getFullYear() <= startYear))\r\n || (this.currentView() === 'Decade' && (element.getMonth() <= startMonth) &&\r\n (element.getFullYear() < startYear)))) {\r\n addClass([ele], [DISABLED]);\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (tdCells[0].classList.contains(DISABLED)) {\r\n this.previousIconHandler(true);\r\n }\r\n else if (tdCells[tdCells.length - 1].classList.contains(DISABLED)) {\r\n this.nextIconHandler(true);\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.updateMinMaxDays = function (calendar) {\r\n if ((!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) ||\r\n (this.isMobile && this.endButton.element.classList.contains(ACTIVE))) {\r\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) || (!isNullOrUndefined(this.maxDays) && this.maxDays > 0)) {\r\n var startValueSelected = this.removeTimeValueFromDate(this.startValue);\r\n var minDate = new Date(new Date(+startValueSelected).setDate(startValueSelected.getDate() + (this.minDays - 1)));\r\n var maxDate = new Date(new Date(+startValueSelected).setDate(startValueSelected.getDate() + (this.maxDays - 1)));\r\n minDate = (!isNullOrUndefined(this.minDays) && this.minDays > 0) ? minDate : null;\r\n maxDate = (!isNullOrUndefined(this.maxDays) && this.maxDays > 0) ? maxDate : null;\r\n if (this.currentView() === 'Year') {\r\n minDate = isNullOrUndefined(minDate) ? null : new Date(minDate.getFullYear(), minDate.getMonth(), 0);\r\n maxDate = isNullOrUndefined(maxDate) ? null : new Date(maxDate.getFullYear(), maxDate.getMonth(), 1);\r\n }\r\n else if (this.currentView() === 'Decade') {\r\n minDate = isNullOrUndefined(minDate) ? null : new Date(minDate.getFullYear() - 1, 11, 1);\r\n maxDate = isNullOrUndefined(maxDate) ? null : new Date(maxDate.getFullYear(), 0, 1);\r\n }\r\n var tdCells = calendar.querySelectorAll('.' + CALENDAR + ' td');\r\n var maxEle = void 0;\r\n for (var _i = 0, tdCells_6 = tdCells; _i < tdCells_6.length; _i++) {\r\n var ele = tdCells_6[_i];\r\n if (!ele.classList.contains(STARTDATE) && !ele.classList.contains(WEEKNUMBER)) {\r\n var eleDate = this.getIdValue(null, ele);\r\n eleDate = this.removeTimeValueFromDate(eleDate);\r\n if (!isNullOrUndefined(minDate) && +eleDate === +minDate && ele.classList.contains(DISABLED)) {\r\n minDate.setDate(minDate.getDate() + 1);\r\n }\r\n if (!ele.classList.contains(DISABLED)) {\r\n if (+eleDate <= +startValueSelected) {\r\n continue;\r\n }\r\n if (!isNullOrUndefined(minDate) && +eleDate < +minDate) {\r\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\r\n EventHandler.clearEvents(ele);\r\n }\r\n if (!isNullOrUndefined(maxDate) && +eleDate > +maxDate) {\r\n addClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\r\n this.isMaxDaysClicked = true;\r\n EventHandler.clearEvents(ele);\r\n if (isNullOrUndefined(maxEle) && !ele.classList.contains(OTHERMONTH)) {\r\n maxEle = ele;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(maxEle)) {\r\n if (this.isMobile) {\r\n if (!this.nextIcon.classList.contains(DISABLED)) {\r\n addClass([this.nextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n else {\r\n var calendar_1 = closest(maxEle, '.' + RIGHTCALENDER);\r\n calendar_1 = isNullOrUndefined(calendar_1) ? this.leftCalendar : calendar_1;\r\n var isLeftCalendar = calendar_1.classList.contains(LEFTCALENDER);\r\n if (!isLeftCalendar) {\r\n if (!this.rightCalNextIcon.classList.contains(DISABLED)) {\r\n addClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n else {\r\n if (!this.rightCalNextIcon.classList.contains(DISABLED)) {\r\n addClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n if (!this.leftCalNextIcon.classList.contains(DISABLED)) {\r\n addClass([this.leftCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n if (!this.rightCalPrevIcon.classList.contains(DISABLED)) {\r\n addClass([this.rightCalPrevIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.isMaxDaysClicked = false;\r\n }\r\n };\r\n DateRangePicker.prototype.removeTimeValueFromDate = function (value) {\r\n var dateValue = new Date(value.getFullYear(), value.getMonth(), value.getDate());\r\n return dateValue;\r\n };\r\n DateRangePicker.prototype.removeClassDisabled = function () {\r\n var tdCells = this.popupObj.element.querySelectorAll('.' + CALENDAR + ' td' + '.' + DATEDISABLED);\r\n for (var _i = 0, tdCells_7 = tdCells; _i < tdCells_7.length; _i++) {\r\n var ele = tdCells_7[_i];\r\n if (ele.classList.contains(DATEDISABLED)) {\r\n removeClass([ele], [DATEDISABLED, DISABLED, OVERLAY]);\r\n EventHandler.add(ele, 'click', this.selectRange, this);\r\n if (!this.isMobile) {\r\n EventHandler.add(ele, 'mouseover', this.hoverSelection, this);\r\n }\r\n }\r\n }\r\n if (this.isMobile) {\r\n if (this.nextIcon.classList.contains(ICONDISABLED)) {\r\n removeClass([this.nextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n if (this.previousIcon.classList.contains(ICONDISABLED)) {\r\n removeClass([this.previousIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n else {\r\n if (this.rightCalNextIcon.classList.contains(ICONDISABLED)) {\r\n removeClass([this.rightCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n if (this.rightCalPrevIcon.classList.contains(ICONDISABLED)) {\r\n removeClass([this.rightCalPrevIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n if (this.leftCalNextIcon.classList.contains(ICONDISABLED)) {\r\n removeClass([this.leftCalNextIcon], [ICONDISABLED, DISABLED, OVERLAY]);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.updateHeader = function () {\r\n var format = { type: 'date', skeleton: 'yMMMd' };\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n var range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\r\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\r\n if (!isNullOrUndefined(this.disabledDayCnt)) {\r\n range = range - this.disabledDayCnt;\r\n this.disabledDayCnt = null;\r\n }\r\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = range.toString() + ' ' + this.l10n.getConstant('days');\r\n }\r\n else {\r\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\r\n }\r\n if (!this.isMobile) {\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.globalize.formatDate(this.endValue, format);\r\n }\r\n else {\r\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.l10n.getConstant('endLabel');\r\n }\r\n if (!isNullOrUndefined(this.startValue)) {\r\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.globalize.formatDate(this.startValue, format);\r\n }\r\n else {\r\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.l10n.getConstant('startLabel');\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n this.startButton.element.textContent = this.globalize.formatDate(this.startValue, format);\r\n }\r\n else {\r\n this.startButton.element.textContent = this.l10n.getConstant('startLabel');\r\n }\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n this.endButton.element.textContent = this.globalize.formatDate(this.endValue, format);\r\n }\r\n else {\r\n this.endButton.element.textContent = this.l10n.getConstant('endLabel');\r\n }\r\n }\r\n if ((this.isDateDisabled(this.startValue) || this.isDateDisabled(this.endValue)) ||\r\n ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\r\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\r\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue))\r\n && +this.startValue > +this.endValue))) {\r\n if (!this.isMobile) {\r\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\r\n this.popupObj.element.querySelector('.' + STARTLABEL).textContent = this.l10n.getConstant('startLabel');\r\n this.popupObj.element.querySelector('.' + ENDLABEL).textContent = this.l10n.getConstant('endLabel');\r\n }\r\n else {\r\n this.startButton.element.textContent = this.l10n.getConstant('startLabel');\r\n this.endButton.element.textContent = this.l10n.getConstant('endLabel');\r\n this.popupObj.element.querySelector('.' + DAYSPAN).textContent = this.l10n.getConstant('selectedDays');\r\n }\r\n }\r\n if (this.popupObj.element.querySelector('#custom_range')) {\r\n this.popupObj.element.querySelector('#custom_range').textContent =\r\n this.l10n.getConstant('customRange') !== '' ? this.l10n.getConstant('customRange') : 'Custom Range';\r\n }\r\n };\r\n DateRangePicker.prototype.removeSelection = function () {\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n this.removeSelectedAttributes();\r\n if (this.popupObj) {\r\n if (this.popupObj.element.querySelectorAll('.' + SELECTED).length > 0) {\r\n removeClass(this.popupObj.element.querySelectorAll('.' + SELECTED), [STARTDATE, ENDDATE, SELECTED]);\r\n }\r\n if (this.popupObj.element.querySelectorAll('.' + FOCUSDATE).length > 0) {\r\n removeClass(this.popupObj.element.querySelectorAll('.' + FOCUSDATE), FOCUSDATE);\r\n }\r\n if (this.popupObj.element.querySelectorAll('.' + RANGEHOVER).length > 0) {\r\n removeClass(this.popupObj.element.querySelectorAll('.' + RANGEHOVER), [RANGEHOVER]);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.addSelectedAttributes = function (ele, date, isStartDate, sameDate) {\r\n if (ele) {\r\n var title = this.globalize.formatDate(date, { type: 'date', skeleton: 'full' });\r\n if (!isNullOrUndefined(sameDate) && sameDate) {\r\n ele.setAttribute('aria-label', 'The current start and end date is ' + '' + title);\r\n }\r\n else {\r\n ele.setAttribute('aria-label', 'The current ' + (isStartDate ? 'start' : 'end') + ' date is ' + '' + title);\r\n }\r\n ele.setAttribute('aria-selected', 'true');\r\n }\r\n };\r\n DateRangePicker.prototype.removeSelectedAttributes = function () {\r\n if (this.popupObj) {\r\n var start = this.popupObj.element.querySelectorAll('.' + STARTDATE);\r\n for (var _i = 0, start_1 = start; _i < start_1.length; _i++) {\r\n var ele = start_1[_i];\r\n ele.setAttribute('aria-selected', 'false');\r\n ele.removeAttribute('aria-label');\r\n }\r\n var end = this.popupObj.element.querySelectorAll('.' + ENDDATE);\r\n for (var _a = 0, end_1 = end; _a < end_1.length; _a++) {\r\n var ele = end_1[_a];\r\n ele.setAttribute('aria-selected', 'false');\r\n ele.removeAttribute('aria-label');\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.updateCalendarElement = function (calendar) {\r\n if (calendar.classList.contains(LEFTCALENDER)) {\r\n this.calendarElement = this.leftCalendar;\r\n this.currentDate = this.leftCalCurrentDate;\r\n this.previousIcon = this.leftCalPrevIcon;\r\n this.nextIcon = this.leftCalNextIcon;\r\n }\r\n else {\r\n this.calendarElement = this.rightCalendar;\r\n this.currentDate = this.rightCalCurrentDate;\r\n this.previousIcon = this.rightCalPrevIcon;\r\n this.nextIcon = this.rightCalNextIcon;\r\n }\r\n this.contentElement = calendar.querySelector('.' + CONTENT);\r\n this.tableBodyElement = select('.' + CONTENT + ' tbody', calendar);\r\n this.table = calendar.querySelector('.' + CONTENT).getElementsByTagName('table')[0];\r\n this.headerTitleElement = calendar.querySelector('.' + HEADER + ' .' + TITLE);\r\n this.headerElement = calendar.querySelector('.' + HEADER);\r\n };\r\n DateRangePicker.prototype.navPrevMonth = function (e) {\r\n e.preventDefault();\r\n var ele = closest(e.target, '.' + LEFTCALENDER);\r\n ele = isNullOrUndefined(ele) ? closest(e.target, '.' + RIGHTCALENDER) : ele;\r\n this.updateCalendarElement(ele);\r\n this.navigatePrevious(e);\r\n if (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\r\n this.updateMinMaxDays(ele);\r\n }\r\n this.updateControl(ele);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateRangePicker.prototype.deviceNavigation = function (ele) {\r\n this.deviceCalendarEvent();\r\n this.updateRange([this.popupObj.element.querySelector('.' + CALENDAR)]);\r\n if (this.endButton.element.classList.contains(ACTIVE)) {\r\n this.updateMinMaxDays(this.popupObj.element.querySelector('.' + CALENDAR));\r\n }\r\n if (this.endButton.element.classList.contains(ACTIVE)) {\r\n this.selectableDates();\r\n }\r\n if (this.currentView() === this.depth) {\r\n this.bindCalendarCellEvents();\r\n }\r\n this.removeFocusedDate();\r\n };\r\n DateRangePicker.prototype.updateControl = function (calendar) {\r\n if (calendar.classList.contains(RIGHTCALENDER)) {\r\n this.rightCalCurrentDate = new Date(+this.currentDate);\r\n }\r\n else {\r\n this.leftCalCurrentDate = new Date(+this.currentDate);\r\n }\r\n this.calendarIconEvent();\r\n if ((((this.depth === 'Month')\r\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-month')\r\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-month'))\r\n || ((this.depth === 'Year')\r\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-year')\r\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-year'))\r\n || ((this.depth === 'Decade')\r\n && this.leftCalendar.querySelector('.e-content').classList.contains('e-decade')\r\n && this.rightCalendar.querySelector('.e-content').classList.contains('e-decade')))\r\n || this.isMobile) {\r\n this.bindCalendarCellEvents();\r\n }\r\n this.removeFocusedDate();\r\n this.updateRange([calendar]);\r\n };\r\n DateRangePicker.prototype.navNextMonth = function (event) {\r\n event.preventDefault();\r\n var ele = closest(event.target, '.' + LEFTCALENDER);\r\n ele = isNullOrUndefined(ele) ? closest(event.target, '.' + RIGHTCALENDER) : ele;\r\n this.updateCalendarElement(ele);\r\n this.navigateNext(event);\r\n if (!isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\r\n this.updateMinMaxDays(ele);\r\n }\r\n this.updateControl(ele);\r\n };\r\n DateRangePicker.prototype.isPopupOpen = function () {\r\n if (!isNullOrUndefined(this.popupObj) && this.popupObj.element.classList.contains(POPUP)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateRangePicker.prototype.createRangeHeader = function () {\r\n var labelContainer = this.createElement('div', { className: STARTENDCONTAINER });\r\n if (!this.isMobile) {\r\n var startLabel = this.createElement('a', { className: STARTLABEL });\r\n var endLabel = this.createElement('a', { className: ENDLABEL });\r\n var changeIcon = this.createElement('span', { className: CHANGEICON });\r\n attributes(startLabel, { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'Start Date', 'role': 'button' });\r\n attributes(endLabel, { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'End Date', 'role': 'button' });\r\n labelContainer.appendChild(startLabel);\r\n labelContainer.appendChild(changeIcon);\r\n labelContainer.appendChild(endLabel);\r\n startLabel.textContent = this.l10n.getConstant('startLabel');\r\n endLabel.textContent = this.l10n.getConstant('endLabel');\r\n }\r\n else {\r\n var endBtn = this.createElement('button', { className: ENDBUTTON });\r\n var startBtn = this.createElement('button', { className: STARTBUTTON });\r\n this.startButton = new Button({ content: this.l10n.getConstant('startLabel') }, startBtn);\r\n this.endButton = new Button({ content: this.l10n.getConstant('endLabel') }, endBtn);\r\n labelContainer.appendChild(startBtn);\r\n labelContainer.appendChild(endBtn);\r\n }\r\n return labelContainer;\r\n };\r\n DateRangePicker.prototype.disableInput = function () {\r\n if (this.strictMode) {\r\n if (!isNullOrUndefined(this.previousStartValue) && !isNullOrUndefined(this.previousEndValue)) {\r\n this.startValue = this.previousStartValue;\r\n this.endValue = this.previousEndValue;\r\n this.setValue();\r\n this.updateInput();\r\n }\r\n }\r\n else {\r\n this.updateInput();\r\n this.clearRange();\r\n this.setProperties({ startDate: null }, true);\r\n this.setProperties({ endDate: null }, true);\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n this.errorClass();\r\n }\r\n this.setProperties({ enabled: false }, true);\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n this.bindEvents();\r\n };\r\n DateRangePicker.prototype.validateMinMax = function () {\r\n this.min = isNullOrUndefined(this.min) || !(+this.min) ? this.min = new Date(1900, 0, 1) : this.min;\r\n this.max = isNullOrUndefined(this.max) || !(+this.max) ? this.max = new Date(2099, 11, 31) : this.max;\r\n if (!(this.min <= this.max)) {\r\n this.disableInput();\r\n return;\r\n }\r\n if (!isNullOrUndefined(this.minDays) && !isNullOrUndefined(this.maxDays)) {\r\n if (this.maxDays > 0 && this.minDays > 0 && (this.minDays > this.maxDays)) {\r\n this.maxDays = null;\r\n }\r\n }\r\n if (!isNullOrUndefined(this.minDays) && this.minDays < 0) {\r\n this.minDays = null;\r\n }\r\n if (!isNullOrUndefined(this.maxDays) && this.maxDays < 0) {\r\n this.maxDays = null;\r\n }\r\n };\r\n DateRangePicker.prototype.validateRangeStrict = function () {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n if (+this.startValue <= +this.min) {\r\n this.startValue = this.min;\r\n this.setValue();\r\n }\r\n else if (+this.startValue >= +this.min && +this.startValue >= +this.max) {\r\n this.startValue = this.max;\r\n }\r\n }\r\n if (!isNullOrUndefined(this.endValue)) {\r\n if (+this.endValue > +this.max) {\r\n this.endValue = this.max;\r\n this.setValue();\r\n }\r\n else if (+this.endValue < +this.min) {\r\n this.endValue = this.min;\r\n this.setValue();\r\n }\r\n }\r\n this.validateMinMaxDays();\r\n };\r\n DateRangePicker.prototype.validateRange = function () {\r\n this.validateMinMaxDays();\r\n };\r\n DateRangePicker.prototype.validateMinMaxDays = function () {\r\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\r\n var range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\r\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\r\n if ((!isNullOrUndefined(this.minDays) && this.minDays > 0) && !(range >= this.minDays)) {\r\n if (this.strictMode) {\r\n var date = new Date(+this.startValue);\r\n date.setDate(date.getDate() + (this.minDays - 1));\r\n if (+date > +this.max) {\r\n this.endValue = this.max;\r\n this.setValue();\r\n }\r\n else {\r\n this.endValue = date;\r\n this.setValue();\r\n }\r\n }\r\n else {\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n if ((!isNullOrUndefined(this.maxDays) && this.maxDays > 0) && !(range <= this.maxDays)) {\r\n if (this.strictMode) {\r\n this.endValue = new Date(+this.startValue);\r\n this.endValue.setDate(this.endValue.getDate() + (this.maxDays - 1));\r\n this.setValue();\r\n }\r\n else {\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.renderCalendar = function () {\r\n this.calendarElement = this.createElement('div');\r\n this.calendarElement.classList.add(CALENDAR);\r\n if (this.enableRtl) {\r\n this.calendarElement.classList.add(RTL);\r\n }\r\n attributes(this.calendarElement, { 'role': 'calendar' });\r\n _super.prototype.createHeader.call(this);\r\n _super.prototype.createContent.call(this);\r\n };\r\n DateRangePicker.prototype.isSameMonth = function (start, end) {\r\n if (start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear()) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateRangePicker.prototype.isSameYear = function (start, end) {\r\n if (start.getFullYear() === end.getFullYear()) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateRangePicker.prototype.isSameDecade = function (start, end) {\r\n var startYear = start.getFullYear();\r\n var endYear = end.getFullYear();\r\n if ((startYear - (startYear % 10)) === (endYear - (endYear % 10))) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateRangePicker.prototype.startMonthCurrentDate = function () {\r\n if (this.isSameMonth(this.min, this.max) || +this.currentDate > +this.max || this.isSameMonth(this.currentDate, this.max)) {\r\n this.currentDate = new Date(+this.max);\r\n this.currentDate.setDate(1);\r\n this.currentDate.setMonth(this.currentDate.getMonth() - 1);\r\n }\r\n else if (this.currentDate < this.min) {\r\n this.currentDate = new Date(this.checkValue(this.min));\r\n }\r\n };\r\n DateRangePicker.prototype.selectNextMonth = function () {\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameMonth(this.endValue, this.currentDate)\r\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\r\n this.currentDate = new Date(+this.endValue);\r\n }\r\n else {\r\n this.currentDate.setDate(1);\r\n this.currentDate.setMonth(this.currentDate.getMonth() + 1);\r\n return;\r\n }\r\n if ((!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\r\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\r\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n this.currentDate.setDate(1);\r\n var month = this.currentDate.getMonth() + 1;\r\n this.currentDate.setMonth(month);\r\n }\r\n };\r\n DateRangePicker.prototype.selectNextYear = function () {\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameYear(this.endValue, this.currentDate)\r\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\r\n this.currentDate = new Date(+this.endValue);\r\n }\r\n else {\r\n this.currentDate.setMonth(0);\r\n var yr = this.currentDate.getFullYear() + 1;\r\n this.currentDate.setFullYear(yr);\r\n return;\r\n }\r\n if ((!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\r\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\r\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n this.currentDate.setMonth(0);\r\n this.currentDate.setFullYear(this.currentDate.getFullYear() + 1);\r\n }\r\n };\r\n DateRangePicker.prototype.selectNextDecade = function () {\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !this.isSameDecade(this.endValue, this.currentDate)\r\n && !this.isDateDisabled(this.endValue) && !this.isDateDisabled(this.startValue)) {\r\n this.currentDate = new Date(+this.endValue);\r\n }\r\n else {\r\n var decyr = this.currentDate.getFullYear() + 10;\r\n this.currentDate.setFullYear(decyr);\r\n return;\r\n }\r\n if (((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)\r\n || (!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\r\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n this.currentDate.setFullYear(this.currentDate.getFullYear() + 10);\r\n }\r\n };\r\n DateRangePicker.prototype.selectStartMonth = function () {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n if (!isNullOrUndefined(this.max) && this.isSameMonth(this.startValue, this.max)) {\r\n this.currentDate = new Date(+this.max);\r\n this.currentDate.setDate(1);\r\n this.currentDate.setMonth(this.currentDate.getMonth() - 1);\r\n }\r\n else if (!(this.startValue >= this.min && this.startValue <= this.max)\r\n || this.isDateDisabled(this.startValue)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n }\r\n else {\r\n this.currentDate = new Date(+this.startValue);\r\n }\r\n }\r\n else {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n this.startMonthCurrentDate();\r\n }\r\n if ((!isNullOrUndefined(this.endValue) && +this.endValue > +this.max)\r\n || (!isNullOrUndefined(this.startValue) && +this.startValue < +this.min)\r\n || ((!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) && +this.startValue > +this.endValue)) {\r\n this.currentDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n }\r\n this.startMonthCurrentDate();\r\n };\r\n DateRangePicker.prototype.createCalendar = function () {\r\n var calendarContainer = this.createElement('div', { className: CALENDARCONTAINER });\r\n if (!this.isMobile) {\r\n this.selectStartMonth();\r\n this.renderCalendar();\r\n this.leftCalCurrentDate = new Date(+this.currentDate);\r\n this.calendarElement.classList.add(LEFTCALENDER);\r\n this.leftCalPrevIcon = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + PREVICON);\r\n this.leftCalNextIcon = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + NEXTICON);\r\n this.leftTitle = this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + TITLE);\r\n remove(this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + ICONCONTAINER));\r\n this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER).appendChild(this.leftCalNextIcon);\r\n this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER).appendChild(this.leftCalPrevIcon);\r\n prepend([this.leftCalPrevIcon], this.calendarElement.querySelector('.' + LEFTCALENDER + ' .' + HEADER));\r\n this.leftCalendar = this.calendarElement;\r\n var leftContainer = this.createElement('div', { className: LEFTCONTAINER });\r\n var rightContainer = this.createElement('div', { className: RIGHTCONTAINER });\r\n leftContainer.appendChild(this.leftCalendar);\r\n calendarContainer.appendChild(leftContainer);\r\n if (!this.isMobile) {\r\n EventHandler.add(this.leftTitle, 'click', this.leftNavTitle, this);\r\n }\r\n if (this.start === 'Month') {\r\n this.selectNextMonth();\r\n }\r\n if (this.start === 'Year') {\r\n this.selectNextYear();\r\n }\r\n if (this.start === 'Decade') {\r\n this.selectNextDecade();\r\n }\r\n this.renderCalendar();\r\n this.rightCalCurrentDate = new Date(+this.currentDate);\r\n addClass([this.calendarElement], RIGHTCALENDER);\r\n this.rightCalendar = this.calendarElement;\r\n removeClass([this.leftCalendar && this.leftCalendar.querySelector('.e-content tbody')], 'e-zoomin');\r\n removeClass([this.rightCalendar && this.rightCalendar.querySelector('.e-content tbody')], 'e-zoomin');\r\n this.rightCalPrevIcon = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + PREVICON);\r\n this.rightCalNextIcon = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + NEXTICON);\r\n this.rightTitle = this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + TITLE);\r\n remove(this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + ICONCONTAINER));\r\n this.calendarElement.querySelector('table').setAttribute('tabindex', '-1');\r\n this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER).appendChild(this.rightCalNextIcon);\r\n this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER).appendChild(this.rightCalPrevIcon);\r\n prepend([this.rightCalPrevIcon], this.calendarElement.querySelector('.' + RIGHTCALENDER + ' .' + HEADER));\r\n rightContainer.appendChild(this.rightCalendar);\r\n calendarContainer.appendChild(rightContainer);\r\n if (!this.isMobile) {\r\n EventHandler.add(this.rightTitle, 'click', this.rightNavTitle, this);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.startValue)) {\r\n this.currentDate = new Date(+this.startValue);\r\n }\r\n _super.prototype.validateDate.call(this);\r\n _super.prototype.minMaxUpdate.call(this);\r\n _super.prototype.render.call(this);\r\n var prevIcon = this.calendarElement.querySelector('.' + CALENDAR + ' .' + PREVICON);\r\n var nextIcon = this.calendarElement.querySelector('.' + CALENDAR + ' .' + NEXTICON);\r\n remove(this.calendarElement.querySelector('.' + CALENDAR + ' .' + ICONCONTAINER));\r\n this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER).appendChild(nextIcon);\r\n this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER).appendChild(prevIcon);\r\n prepend([prevIcon], this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER));\r\n this.deviceCalendar = this.calendarElement;\r\n calendarContainer.appendChild(this.calendarElement);\r\n this.headerTitleElement = this.calendarElement.querySelector('.' + CALENDAR + ' .' + HEADER + ' .' + TITLE);\r\n }\r\n return calendarContainer;\r\n };\r\n DateRangePicker.prototype.leftNavTitle = function (e) {\r\n if (this.isPopupOpen()) {\r\n this.calendarElement = this.leftCalendar;\r\n this.calendarNavigation(e, this.calendarElement);\r\n }\r\n };\r\n DateRangePicker.prototype.calendarNavigation = function (e, element) {\r\n this.table = element.querySelector('table');\r\n this.headerTitleElement = element.querySelector('.e-title');\r\n this.tableBodyElement = element.querySelector('tbody');\r\n this.tableHeadElement = element.querySelector('thead');\r\n this.contentElement = element.querySelector('.e-content');\r\n this.updateCalendarElement(element);\r\n _super.prototype.navigateTitle.call(this, e);\r\n this.updateNavIcons();\r\n };\r\n DateRangePicker.prototype.rightNavTitle = function (e) {\r\n if (this.isPopupOpen()) {\r\n this.calendarElement = this.rightCalendar;\r\n this.calendarNavigation(e, this.calendarElement);\r\n }\r\n };\r\n DateRangePicker.prototype.clickEventEmitter = function (e) {\r\n if (!this.isMobile) {\r\n if (closest(e.target, '.e-calendar.e-left-calendar')) {\r\n this.calendarElement = this.leftCalendar;\r\n this.updateCalendarElement(this.leftCalendar);\r\n }\r\n else {\r\n this.calendarElement = this.rightCalendar;\r\n this.updateCalendarElement(this.rightCalendar);\r\n }\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the current view of the Calendar.\r\n *\r\n * @returns {string}\r\n * @private\r\n * @hidden\r\n */\r\n DateRangePicker.prototype.currentView = function () {\r\n return _super.prototype.currentView.call(this);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n DateRangePicker.prototype.getCalendarView = function (view) {\r\n if (view === 'Year') {\r\n return 'Year';\r\n }\r\n else if (view === 'Decade') {\r\n return 'Decade';\r\n }\r\n else {\r\n return 'Month';\r\n }\r\n };\r\n DateRangePicker.prototype.navigatedEvent = function (e) {\r\n this.trigger('navigated', this.navigatedArgs);\r\n if (!isNullOrUndefined(this.popupObj)) {\r\n var element = void 0;\r\n var view = this.getCalendarView(this.currentView());\r\n if (this.isMobile) {\r\n if (view === this.depth) {\r\n this.bindCalendarCellEvents();\r\n this.deviceNavigation();\r\n this.removeFocusedDate();\r\n this.checkMinMaxDays();\r\n }\r\n else {\r\n this.selectableDates();\r\n }\r\n }\r\n else {\r\n if (!this.isMobile && view === this.depth) {\r\n element = this.calendarElement.classList.contains('e-left-calendar') ? this.leftCalendar : this.rightCalendar;\r\n if (element === this.leftCalendar && ((e && !e.currentTarget.children[0].classList.contains('e-icons'))\r\n || (!isNullOrUndefined(this.controlDown)))) {\r\n this.leftCalCurrentDate = new Date(+this.currentDate);\r\n this.effect = '';\r\n this.currentDate = this.leftCalCurrentDate;\r\n this.updateCalendarElement(this.leftCalendar);\r\n this.updateControl(this.leftCalendar);\r\n this.updateCalendarElement(this.rightCalendar);\r\n _super.prototype.navigateTo.call(this, view, this.rightCalCurrentDate);\r\n this.updateControl(this.rightCalendar);\r\n this.updateNavIcons();\r\n this.calendarIconEvent();\r\n this.calendarIconRipple();\r\n this.controlDown = null;\r\n }\r\n else if (e && !e.currentTarget.children[0].classList.contains('e-icons')\r\n || (!isNullOrUndefined(this.controlDown))) {\r\n this.rightCalCurrentDate = new Date(+this.currentDate);\r\n this.effect = '';\r\n this.currentDate = this.rightCalCurrentDate;\r\n this.updateCalendarElement(this.rightCalendar);\r\n this.updateControl(this.rightCalendar);\r\n this.updateCalendarElement(this.leftCalendar);\r\n if (this.startValue && isNullOrUndefined(this.endValue)) {\r\n if (view === 'Month' && this.startValue.getMonth() < this.rightCalCurrentDate.getMonth() &&\r\n this.startValue.getFullYear() <= this.rightCalCurrentDate.getFullYear()) {\r\n _super.prototype.navigateTo.call(this, view, new Date(+this.startValue));\r\n }\r\n else if (view === 'Year' && this.startValue.getFullYear() < this.rightCalCurrentDate.getFullYear()) {\r\n _super.prototype.navigateTo.call(this, view, new Date(+this.startValue));\r\n }\r\n else {\r\n _super.prototype.navigateTo.call(this, view, this.leftCalCurrentDate);\r\n }\r\n }\r\n else {\r\n _super.prototype.navigateTo.call(this, view, this.leftCalCurrentDate);\r\n }\r\n this.updateControl(this.leftCalendar);\r\n this.updateNavIcons();\r\n this.calendarIconEvent();\r\n this.calendarIconRipple();\r\n this.controlDown = null;\r\n }\r\n this.checkMinMaxDays();\r\n }\r\n else {\r\n this.updateNavIcons();\r\n this.calendarIconEvent();\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.createControl = function () {\r\n var controlContainer = this.createElement('div', { className: RANGECONTAINER });\r\n var headerContainer = this.createElement('div', { className: RANGEHEADER });\r\n var labelContainer = this.createRangeHeader();\r\n headerContainer.appendChild(labelContainer);\r\n var daySpan = this.createElement('div', { className: DAYSPAN });\r\n attributes(daySpan, { 'aria-label': 'Selected Days' });\r\n daySpan.textContent = this.l10n.getConstant('selectedDays');\r\n headerContainer.appendChild(daySpan);\r\n var separator = this.createElement('div', { className: SEPARATOR });\r\n var calendarContainer = this.createCalendar();\r\n controlContainer.appendChild(headerContainer);\r\n controlContainer.appendChild(separator);\r\n controlContainer.appendChild(calendarContainer);\r\n var footerSection = this.createElement('div', { className: FOOTER });\r\n var cancelBtn = this.createElement('button', { className: CANCEL + ' ' + FLAT + ' ' + CSS });\r\n var applyBtn = this.createElement('button');\r\n addClass([applyBtn], [APPLY, FLAT, PRIMARY, CSS]);\r\n footerSection.appendChild(applyBtn);\r\n footerSection.appendChild(cancelBtn);\r\n var enable = !isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue);\r\n this.cancelButton = new Button({ content: this.l10n.getConstant('cancelText') }, cancelBtn);\r\n this.applyButton = new Button({ content: this.l10n.getConstant('applyText'), disabled: !enable }, applyBtn);\r\n EventHandler.add(applyBtn, 'click', this.applyFunction, this);\r\n EventHandler.add(cancelBtn, 'click', this.cancelFunction, this);\r\n this.popupWrapper.appendChild(controlContainer);\r\n if (!this.isMobile) {\r\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\r\n this.createPresets();\r\n this.listRippleEffect();\r\n addClass([controlContainer], RANGEBORDER);\r\n addClass([this.popupWrapper], 'e-preset-wrapper');\r\n var presets = this.popupWrapper.querySelector('.' + PRESETS);\r\n presets.style.height = this.popupWrapper.querySelector('.' + RANGECONTAINER).getBoundingClientRect().height + 'px';\r\n }\r\n }\r\n this.popupWrapper.appendChild(footerSection);\r\n if (this.isMobile) {\r\n this.deviceHeaderUpdate();\r\n }\r\n this.renderPopup();\r\n };\r\n DateRangePicker.prototype.cancelFunction = function (eve) {\r\n if (document.activeElement !== this.inputElement) {\r\n this.preventFocus = true;\r\n this.inputElement.focus();\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n eve.preventDefault();\r\n if (this.isKeyPopup) {\r\n this.inputElement.focus();\r\n this.isKeyPopup = false;\r\n }\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.removeSelection();\r\n this.hide(eve);\r\n };\r\n DateRangePicker.prototype.deviceHeaderUpdate = function () {\r\n if (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\r\n this.endButton.element.setAttribute('disabled', '');\r\n this.startButton.element.classList.add(ACTIVE);\r\n }\r\n else if (!isNullOrUndefined(this.startValue)) {\r\n this.startButton.element.classList.add(ACTIVE);\r\n }\r\n };\r\n DateRangePicker.prototype.applyFunction = function (eve) {\r\n var isValueChanged = false;\r\n if (eve.type !== 'touchstart') {\r\n eve.preventDefault();\r\n }\r\n if (this.closeEventArgs && this.closeEventArgs.cancel) {\r\n this.startValue = this.popupWrapper.querySelector('.e-start-date') &&\r\n this.getIdValue(null, this.popupWrapper.querySelector('.e-start-date'));\r\n this.endValue = this.popupWrapper.querySelector('.e-end-date') &&\r\n this.getIdValue(null, this.popupWrapper.querySelector('.e-end-date'));\r\n this.setValue();\r\n }\r\n if (document.activeElement !== this.inputElement) {\r\n this.preventFocus = true;\r\n this.inputElement.focus();\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n if (eve.type !== 'touchstart' &&\r\n this.closeEventArgs && !this.closeEventArgs.cancel) {\r\n eve.preventDefault();\r\n }\r\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\r\n this.previousStartValue = new Date(+this.startValue);\r\n this.previousEndValue = new Date(+this.endValue);\r\n this.previousEleValue = this.inputElement.value;\r\n Input.setValue(this.rangeArgs(eve).text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n if (+this.initStartDate !== +this.startValue || +this.initEndDate !== +this.endValue) {\r\n isValueChanged = true;\r\n }\r\n this.changeTrigger(eve);\r\n this.hide(eve ? eve : null);\r\n this.errorClass();\r\n isValueChanged = true;\r\n }\r\n else {\r\n this.hide(eve ? eve : null);\r\n }\r\n if (!(closest(eve.target, '.' + INPUTCONTAINER))\r\n && (!isValueChanged)) {\r\n this.focusOut();\r\n }\r\n if (!this.isMobile) {\r\n this.isKeyPopup = false;\r\n if (this.isRangeIconClicked) {\r\n this.inputWrapper.container.children[1].focus();\r\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\r\n this.popupKeyboardModule = new KeyboardEvents(this.inputWrapper.container.children[1], {\r\n eventName: 'keydown',\r\n keyConfigs: this.keyInputConfigs,\r\n keyAction: this.popupKeyActionHandle.bind(this)\r\n });\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.onMouseClick = function (event, item) {\r\n if (event.type === 'touchstart') {\r\n return;\r\n }\r\n var target = item || event.target;\r\n var li = closest(target, '.' + LISTCLASS);\r\n var isClick = li && li.classList.contains(ACTIVE);\r\n if (li && li.classList.contains(LISTCLASS)) {\r\n this.setListSelection(li, event);\r\n }\r\n this.preventFocus = true;\r\n this.inputElement.focus();\r\n if (!this.isMobile) {\r\n this.preventFocus = true;\r\n if (li && li.classList.contains(LISTCLASS) && li.getAttribute('id') === 'custom_range') {\r\n this.leftCalendar.children[1].firstElementChild.focus();\r\n }\r\n else {\r\n if (!isClick && event.type === 'keydown') {\r\n this.inputElement.focus();\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.onMouseOver = function (event) {\r\n var li = closest(event.target, '.' + LISTCLASS);\r\n if (li && li.classList.contains(LISTCLASS) && !li.classList.contains(HOVER)) {\r\n addClass([li], HOVER);\r\n }\r\n };\r\n DateRangePicker.prototype.onMouseLeave = function (event) {\r\n var item = closest(event.target, '.' + HOVER);\r\n if (!isNullOrUndefined(item)) {\r\n removeClass([item], HOVER);\r\n }\r\n };\r\n DateRangePicker.prototype.setListSelection = function (li, event) {\r\n if (li && (!li.classList.contains(ACTIVE) || (this.isMobile && li.classList.contains(ACTIVE)))) {\r\n if (this.isMobile && li.classList.contains(ACTIVE)) {\r\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\r\n var values_1 = this.presetsItem[this.activeIndex];\r\n if (values_1.id === 'custom_range') {\r\n this.renderCustomPopup();\r\n return;\r\n }\r\n return;\r\n }\r\n this.removeListSelection();\r\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\r\n addClass([li], ACTIVE);\r\n li.setAttribute('aria-selected', 'true');\r\n var values = this.presetsItem[this.activeIndex];\r\n if (values.id === 'custom_range') {\r\n this.renderCustomPopup();\r\n }\r\n else {\r\n this.applyPresetRange(values, event);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.removeListSelection = function () {\r\n var item = this.presetElement.querySelector('.' + ACTIVE);\r\n if (!isNullOrUndefined(item)) {\r\n removeClass([item], ACTIVE);\r\n item.removeAttribute('aria-selected');\r\n }\r\n };\r\n DateRangePicker.prototype.setValue = function () {\r\n this.modelValue = [this.startValue, this.endValue];\r\n };\r\n DateRangePicker.prototype.applyPresetRange = function (values, e) {\r\n this.hide(null);\r\n this.presetsItem[this.presetsItem.length - 1].start = null;\r\n this.presetsItem[this.presetsItem.length - 1].end = null;\r\n this.startValue = values.start;\r\n this.endValue = values.end;\r\n this.setValue();\r\n this.refreshControl();\r\n this.trigger('select', this.rangeArgs(e));\r\n this.changeTrigger(e);\r\n this.previousEleValue = this.inputElement.value;\r\n this.isCustomRange = false;\r\n this.leftCalendar = this.rightCalendar = null;\r\n if (this.isKeyPopup) {\r\n this.isRangeIconClicked = false;\r\n this.inputElement.focus();\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateRangePicker.prototype.showPopup = function (element, event) {\r\n this.presetHeight();\r\n if (this.zIndex === 1000) {\r\n this.popupObj.show(null, this.element);\r\n }\r\n else {\r\n this.popupObj.show(null, null);\r\n }\r\n if (this.isMobile) {\r\n this.popupObj.refreshPosition();\r\n }\r\n };\r\n DateRangePicker.prototype.renderCustomPopup = function () {\r\n this.isCustomWindow = true;\r\n this.popupObj.hide();\r\n this.popupWrapper = this.createElement('div', { id: this.element.id + '_popup', className: ROOT + ' ' + POPUP });\r\n this.renderControl();\r\n this.openEventArgs.appendTo.appendChild(this.popupWrapper);\r\n this.showPopup();\r\n this.isCustomRange = true;\r\n if (!this.isMobile) {\r\n this.calendarFocus();\r\n }\r\n };\r\n DateRangePicker.prototype.listRippleEffect = function () {\r\n for (var _i = 0, _a = this.liCollections; _i < _a.length; _i++) {\r\n var li = _a[_i];\r\n rippleEffect(li);\r\n }\r\n };\r\n DateRangePicker.prototype.createPresets = function () {\r\n if (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label)) {\r\n this.presetElement = this.createElement('div', { className: PRESETS, attrs: { 'tabindex': '0' } });\r\n var listTag = ListBase.createList(this.createElement, this.presetsItem, null, true);\r\n attributes(listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });\r\n this.presetElement.appendChild(listTag);\r\n this.popupWrapper.appendChild(this.presetElement);\r\n var customElement = this.presetElement.querySelector('#custom_range');\r\n if (!isNullOrUndefined(customElement)) {\r\n customElement.textContent = this.l10n.getConstant('customRange') !== '' ? this.l10n.getConstant('customRange')\r\n : 'Custom Range';\r\n }\r\n this.liCollections = this.presetElement.querySelectorAll('.' + LISTCLASS);\r\n this.wireListEvents();\r\n if (this.isMobile) {\r\n this.presetElement.style.width = this.inputWrapper.container.getBoundingClientRect().width + 'px';\r\n }\r\n if (!isNullOrUndefined(this.activeIndex) && this.activeIndex > -1) {\r\n addClass([this.liCollections[this.activeIndex]], ACTIVE);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.wireListEvents = function () {\r\n EventHandler.add(this.presetElement, 'click', this.onMouseClick, this);\r\n if (!this.isMobile) {\r\n EventHandler.add(this.presetElement, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.presetElement, 'mouseout', this.onMouseLeave, this);\r\n }\r\n };\r\n DateRangePicker.prototype.unWireListEvents = function () {\r\n if (!isNullOrUndefined(this.presetElement)) {\r\n EventHandler.remove(this.presetElement, 'click touchstart', this.onMouseClick);\r\n if (!this.isMobile) {\r\n EventHandler.remove(this.presetElement, 'mouseover', this.onMouseOver);\r\n EventHandler.remove(this.presetElement, 'mouseout', this.onMouseLeave);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.renderPopup = function () {\r\n var _this = this;\r\n this.popupWrapper.classList.add('e-control');\r\n var popupWidth = this.popupWrapper.getBoundingClientRect().width;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass.trim() !== '') {\r\n this.popupWrapper.className += ' ' + this.cssClass;\r\n }\r\n if (this.isMobile && this.isCustomWindow) {\r\n this.modal = this.createElement('div');\r\n document.body.appendChild(this.modal);\r\n }\r\n this.popupObj = new Popup(this.popupWrapper, {\r\n relateTo: this.isMobile && this.isCustomWindow ? document.body :\r\n (!isNullOrUndefined(this.targetElement) ? this.targetElement : this.inputWrapper.container),\r\n position: (this.isMobile ?\r\n (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && !this.isCustomWindow ?\r\n { X: 'left', Y: 'bottom' } : { X: 'center', Y: 'center' }) :\r\n this.enableRtl ? { X: 'left', Y: 'bottom' } : { X: 'right', Y: 'bottom' }),\r\n offsetX: this.isMobile || this.enableRtl ? 0 : -popupWidth,\r\n offsetY: OFFSETVALUE,\r\n collision: this.isMobile ?\r\n (!isUndefined(this.presets[0].start && this.presets[0].end && this.presets[0].label) && !this.isCustomWindow ?\r\n { X: 'fit' } : { X: 'fit', Y: 'fit' }) : { X: 'fit', Y: 'flip' },\r\n targetType: this.isMobile && this.isCustomWindow ? 'container' : 'relative',\r\n enableRtl: this.enableRtl,\r\n zIndex: this.zIndex,\r\n open: function () {\r\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\r\n addClass([_this.inputWrapper.buttons[0]], ACTIVE);\r\n if (!_this.isMobile) {\r\n if (_this.cancelButton) {\r\n _this.btnKeyboardModule = new KeyboardEvents(_this.cancelButton.element, {\r\n eventName: 'keydown',\r\n keyAction: _this.popupKeyActionHandle.bind(_this),\r\n keyConfigs: { tab: 'tab', altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\r\n });\r\n _this.btnKeyboardModule = new KeyboardEvents(_this.applyButton.element, {\r\n eventName: 'keydown',\r\n keyAction: _this.popupKeyActionHandle.bind(_this),\r\n keyConfigs: { altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\r\n });\r\n }\r\n if (!isNullOrUndefined(_this.leftCalendar)) {\r\n if (!_this.isRangeIconClicked) {\r\n _this.calendarFocus();\r\n }\r\n }\r\n if (!isNullOrUndefined(_this.presetElement)) {\r\n _this.keyInputConfigs = extend(_this.keyInputConfigs, _this.keyConfigs);\r\n _this.presetKeyboardModule = new KeyboardEvents(_this.presetElement, {\r\n eventName: 'keydown',\r\n keyAction: _this.presetKeyActionHandler.bind(_this),\r\n keyConfigs: _this.keyInputConfigs\r\n });\r\n _this.presetKeyboardModule = new KeyboardEvents(_this.presetElement, {\r\n eventName: 'keydown',\r\n keyAction: _this.popupKeyActionHandle.bind(_this),\r\n keyConfigs: { altRightArrow: 'alt+rightarrow', altLeftArrow: 'alt+leftarrow' }\r\n });\r\n if (isNullOrUndefined(_this.leftCalendar)) {\r\n _this.preventBlur = true;\r\n _this.presetElement.focus();\r\n }\r\n else {\r\n _this.presetElement.setAttribute('tabindex', '-1');\r\n }\r\n }\r\n _this.popupKeyBoardHandler();\r\n }\r\n if (_this.isMobile && !Browser.isDevice) {\r\n EventHandler.add(document, 'keydown', _this.popupCloseHandler, _this);\r\n }\r\n },\r\n close: function () {\r\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\r\n removeClass([_this.inputWrapper.buttons[0]], ACTIVE);\r\n if (_this.isRangeIconClicked) {\r\n _this.inputWrapper.container.children[1].focus();\r\n }\r\n if (!isUndefined(_this.presets[0].start && _this.presets[0].end && _this.presets[0].label)) {\r\n _this.unWireListEvents();\r\n }\r\n if (!isNullOrUndefined(_this.popupObj)) {\r\n if (!isNullOrUndefined(_this.popupObj.element.parentElement)) {\r\n detach(_this.popupObj.element);\r\n }\r\n _this.popupObj.destroy();\r\n _this.popupObj = null;\r\n }\r\n if (_this.isMobile && !Browser.isDevice) {\r\n EventHandler.remove(document, 'keydown', _this.popupCloseHandler);\r\n }\r\n }, targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hide();\r\n }\r\n }\r\n });\r\n if (this.isMobile) {\r\n this.popupObj.element.classList.add(DEVICE);\r\n if (!this.isMobile) {\r\n this.popupObj.element.classList.add('e-bigger');\r\n }\r\n }\r\n if (this.isMobile && this.isCustomWindow) {\r\n addClass([this.modal], [DEVICE, ROOT, 'e-range-modal']);\r\n document.body.className += ' ' + OVERFLOW;\r\n this.modal.style.display = 'block';\r\n }\r\n EventHandler.add(document, 'mousedown touchstart', this.documentHandler, this);\r\n };\r\n DateRangePicker.prototype.popupCloseHandler = function (e) {\r\n switch (e.keyCode) {\r\n case 27:\r\n this.hide(e);\r\n break;\r\n }\r\n };\r\n DateRangePicker.prototype.calendarFocus = function () {\r\n var startDate = this.popupObj && this.popupObj.element.querySelector('.' + STARTDATE);\r\n if (startDate) {\r\n var ele = closest(startDate, '.' + RIGHTCALENDER);\r\n ele = isNullOrUndefined(ele) ? this.leftCalendar : ele;\r\n if (this.isRangeIconClicked) {\r\n this.inputWrapper.container.focus();\r\n }\r\n else {\r\n this.preventBlur = true;\r\n ele.children[1].firstElementChild.focus();\r\n }\r\n addClass([startDate], FOCUSDATE);\r\n }\r\n else {\r\n if (this.isRangeIconClicked) {\r\n this.inputWrapper.container.focus();\r\n }\r\n else {\r\n this.preventBlur = true;\r\n this.leftCalendar.children[1].firstElementChild.focus();\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.presetHeight = function () {\r\n var presets = this.popupObj && this.popupObj.element.querySelector('.' + PRESETS);\r\n var rangeContainer = this.popupObj && this.popupObj.element.querySelector('.' + RANGECONTAINER);\r\n if (!isNullOrUndefined(presets) && !isNullOrUndefined(rangeContainer)) {\r\n presets.style.height = rangeContainer.getBoundingClientRect().height + 'px';\r\n }\r\n };\r\n DateRangePicker.prototype.presetKeyActionHandler = function (e) {\r\n switch (e.action) {\r\n case 'moveDown':\r\n this.listMoveDown(e);\r\n this.setScrollPosition();\r\n e.preventDefault();\r\n break;\r\n case 'moveUp':\r\n this.listMoveUp(e);\r\n this.setScrollPosition();\r\n e.preventDefault();\r\n break;\r\n case 'enter':\r\n {\r\n var hvrItem = this.getHoverLI();\r\n var actItem = this.getActiveLI();\r\n if (!isNullOrUndefined(this.leftCalendar) && !isNullOrUndefined(actItem)) {\r\n if (isNullOrUndefined(hvrItem) || (!isNullOrUndefined(actItem) && actItem === hvrItem)) {\r\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(actItem);\r\n var values = this.presetsItem[this.activeIndex];\r\n if (values.id === 'custom_range') {\r\n this.calendarFocus();\r\n actItem.classList.remove(HOVER);\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(hvrItem) || !isNullOrUndefined(actItem)) {\r\n this.onMouseClick(e, hvrItem || actItem);\r\n }\r\n e.preventDefault();\r\n }\r\n break;\r\n case 'tab':\r\n if (this.leftCalendar) {\r\n var item = this.getHoverLI();\r\n if (!isNullOrUndefined(item)) {\r\n item.classList.remove(HOVER);\r\n }\r\n }\r\n else {\r\n this.hide(e);\r\n e.preventDefault();\r\n }\r\n break;\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateRangePicker.prototype.listMoveDown = function (e) {\r\n var hvrItem = this.getHoverLI();\r\n var actItem = this.getActiveLI();\r\n if (!isNullOrUndefined(hvrItem)) {\r\n var li = hvrItem.nextElementSibling;\r\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\r\n removeClass([hvrItem], HOVER);\r\n addClass([li], HOVER);\r\n }\r\n }\r\n else if (!isNullOrUndefined(actItem)) {\r\n var li = actItem.nextElementSibling;\r\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\r\n addClass([li], HOVER);\r\n }\r\n }\r\n else {\r\n addClass([this.liCollections[0]], HOVER);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateRangePicker.prototype.listMoveUp = function (e) {\r\n var hvrItem = this.getHoverLI();\r\n var actItem = this.getActiveLI();\r\n if (!isNullOrUndefined(hvrItem)) {\r\n var li = hvrItem.previousElementSibling;\r\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\r\n removeClass([hvrItem], HOVER);\r\n addClass([li], HOVER);\r\n }\r\n }\r\n else if (!isNullOrUndefined(actItem)) {\r\n var li = actItem.previousElementSibling;\r\n if (!isNullOrUndefined(li) && li.classList.contains(LISTCLASS)) {\r\n addClass([li], HOVER);\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.getHoverLI = function () {\r\n var item = this.presetElement.querySelector('.' + HOVER);\r\n return item;\r\n };\r\n DateRangePicker.prototype.getActiveLI = function () {\r\n var item = this.presetElement.querySelector('.' + ACTIVE);\r\n return item;\r\n };\r\n DateRangePicker.prototype.popupKeyBoardHandler = function () {\r\n this.popupKeyboardModule = new KeyboardEvents(this.popupWrapper, {\r\n eventName: 'keydown',\r\n keyAction: this.popupKeyActionHandle.bind(this),\r\n keyConfigs: { escape: 'escape' }\r\n });\r\n this.keyInputConfigs = extend(this.keyInputConfigs, this.keyConfigs);\r\n this.popupKeyboardModule = new KeyboardEvents(this.inputWrapper.container.children[1], {\r\n eventName: 'keydown',\r\n keyAction: this.popupKeyActionHandle.bind(this),\r\n keyConfigs: this.keyInputConfigs\r\n });\r\n };\r\n DateRangePicker.prototype.setScrollPosition = function () {\r\n var listHeight = this.presetElement.getBoundingClientRect().height;\r\n var hover = this.presetElement.querySelector('.' + HOVER);\r\n var active = this.presetElement.querySelector('.' + ACTIVE);\r\n var element = !isNullOrUndefined(hover) ? hover : active;\r\n if (!isNullOrUndefined(element)) {\r\n var nextEle = element.nextElementSibling;\r\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\r\n var liHeight = element.getBoundingClientRect().height;\r\n if ((height + element.offsetTop) > listHeight) {\r\n this.presetElement.scrollTop = nextEle ? (height - (listHeight / 2 + liHeight / 2)) : height;\r\n }\r\n else {\r\n this.presetElement.scrollTop = 0;\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.popupKeyActionHandle = function (e) {\r\n var presetElement = closest(e.target, '.' + PRESETS);\r\n switch (e.action) {\r\n case 'escape':\r\n if (this.isPopupOpen()) {\r\n if (this.isKeyPopup) {\r\n this.inputElement.focus();\r\n this.isKeyPopup = false;\r\n }\r\n this.hide(e);\r\n }\r\n else {\r\n this.inputWrapper.container.children[1].blur();\r\n }\r\n break;\r\n case 'enter':\r\n if (!this.isPopupOpen()) {\r\n this.show(null, e);\r\n }\r\n else {\r\n this.inputWrapper.container.children[1].focus();\r\n }\r\n break;\r\n case 'tab':\r\n this.hide(e);\r\n break;\r\n case 'altRightArrow':\r\n if (!isNullOrUndefined(presetElement)) {\r\n this.cancelButton.element.focus();\r\n }\r\n else {\r\n if (document.activeElement === this.cancelButton.element && this.applyButton.element.disabled !== true) {\r\n this.applyButton.element.focus();\r\n }\r\n else {\r\n this.leftCalendar.children[1].firstElementChild.focus();\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n case 'altLeftArrow':\r\n if (!isNullOrUndefined(presetElement)) {\r\n this.rightCalendar.children[1].firstElementChild.focus();\r\n }\r\n else {\r\n if (document.activeElement === this.applyButton.element && this.applyButton.element.disabled !== true) {\r\n this.cancelButton.element.focus();\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.presetElement) && (document.activeElement === this.cancelButton.element)) {\r\n this.presetElement.focus();\r\n }\r\n else {\r\n this.rightCalendar.children[1].firstElementChild.focus();\r\n }\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n }\r\n };\r\n DateRangePicker.prototype.documentHandler = function (e) {\r\n if (isNullOrUndefined(this.popupObj)) {\r\n return;\r\n }\r\n var target = e.target;\r\n if (!this.inputWrapper.container.contains(target) ||\r\n (!isNullOrUndefined(this.popupObj) && !closest(target, '[id=\"' + this.popupWrapper.id + '\"]'))) {\r\n if (e.type !== 'touchstart' && ((e.type === 'mousedown') ||\r\n this.closeEventArgs && !this.closeEventArgs.cancel)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if ((isNullOrUndefined(this.targetElement) ||\r\n (!isNullOrUndefined(this.targetElement) && !(target === this.targetElement))) &&\r\n !(closest(target, '[id=\"' + this.popupWrapper.id + '\"]'))\r\n && !(closest(target, '.' + INPUTCONTAINER) === this.inputWrapper.container)\r\n && !(closest(target, '.e-daterangepicker.e-popup') && (!target.classList.contains('e-day')))) {\r\n this.preventBlur = false;\r\n if (this.isPopupOpen() && document.body.contains(this.popupObj.element)) {\r\n this.applyFunction(e);\r\n if (!this.isMobile) {\r\n this.isRangeIconClicked = false;\r\n }\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.createInput = function () {\r\n var updatedCssClassValue = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n this.inputWrapper = Input.createInput({\r\n floatLabelType: this.floatLabelType,\r\n element: this.inputElement,\r\n properties: {\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n cssClass: updatedCssClassValue,\r\n enabled: this.enabled,\r\n enableRtl: this.enableRtl,\r\n showClearButton: this.showClearButton\r\n },\r\n buttons: [DATERANGEICON]\r\n }, this.createElement);\r\n attributes(this.inputElement, {\r\n 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',\r\n 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',\r\n 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false'\r\n });\r\n Input.addAttributes({ 'aria-label': 'select' }, this.inputWrapper.buttons[0]);\r\n if (!isNullOrUndefined(this.placeholder) && this.placeholder.trim() !== '') {\r\n Input.addAttributes({ 'aria-placeholder': this.placeholder }, this.inputElement);\r\n }\r\n this.setEleWidth(this.width);\r\n addClass([this.inputWrapper.container], DATERANGEWRAPPER);\r\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\r\n attributes(this.inputElement, { 'name': this.element.id });\r\n }\r\n if (this.inputElement.type === 'hidden') {\r\n this.inputWrapper.container.style.display = 'none';\r\n }\r\n this.refreshControl();\r\n this.previousEleValue = this.inputElement.value;\r\n this.inputElement.setAttribute('value', this.inputElement.value);\r\n this.startCopy = this.startDate;\r\n this.endCopy = this.endDate;\r\n };\r\n DateRangePicker.prototype.setEleWidth = function (width) {\r\n if (typeof width === 'string') {\r\n this.inputWrapper.container.style.width = (this.width);\r\n }\r\n else if (typeof width === 'number') {\r\n this.inputWrapper.container.style.width = formatUnit(this.width);\r\n }\r\n else {\r\n this.inputWrapper.container.style.width = '100%';\r\n }\r\n };\r\n DateRangePicker.prototype.adjustLongHeaderWidth = function () {\r\n if (this.dayHeaderFormat === 'Wide') {\r\n addClass([this.popupWrapper], DAYHEADERLONG);\r\n }\r\n };\r\n DateRangePicker.prototype.refreshControl = function () {\r\n this.validateMinMax();\r\n if (this.strictMode) {\r\n this.validateRangeStrict();\r\n }\r\n var isDisabled = this.disabledDates();\r\n if (this.strictMode && (isDisabled)) {\r\n this.startValue = this.previousStartValue;\r\n this.setProperties({ startDate: this.startValue }, true);\r\n this.endValue = this.previousEndValue;\r\n this.setProperties({ endDate: this.endValue }, true);\r\n this.setValue();\r\n }\r\n this.updateInput();\r\n if (!this.strictMode) {\r\n this.validateRange();\r\n }\r\n if (!this.strictMode && (isDisabled)) {\r\n this.clearRange();\r\n }\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue) && !isDisabled) {\r\n this.disabledDateRender();\r\n }\r\n this.errorClass();\r\n this.previousStartValue = isNullOrUndefined(this.startValue) || isNaN(+this.startValue) ? null : new Date(+this.startValue);\r\n this.previousEndValue = isNullOrUndefined(this.endValue) || isNaN(+this.endValue) ? null : new Date(+this.endValue);\r\n };\r\n DateRangePicker.prototype.updateInput = function () {\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n var formatOption = { format: this.formatString, type: 'date', skeleton: 'yMd' };\r\n var startDate = this.globalize.formatDate(this.startValue, formatOption);\r\n var endDate = this.globalize.formatDate(this.endValue, formatOption);\r\n Input.setValue(startDate + ' ' + this.separator + ' ' + endDate, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.previousStartValue = new Date(+this.startValue);\r\n this.previousEndValue = new Date(+this.endValue);\r\n }\r\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\r\n Input.setValue(this.invalidValueString, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n };\r\n DateRangePicker.prototype.checkInvalidRange = function (value) {\r\n if (!isNullOrUndefined(value)) {\r\n var invalid = false;\r\n var startinvalue = void 0;\r\n var endinvalue = void 0;\r\n var startString = null;\r\n var endString = null;\r\n var valueString = null;\r\n var startObject = false;\r\n var endObject = false;\r\n var invalidobject = false;\r\n if (typeof (value) === 'string') {\r\n var range = value.split(' ' + this.separator + ' ');\r\n if (range.length === 2) {\r\n startString = range[0];\r\n endString = range[1];\r\n }\r\n else {\r\n invalid = true;\r\n valueString = value;\r\n }\r\n }\r\n else {\r\n if (value.length > 0) {\r\n startinvalue = value[0];\r\n endinvalue = value[1];\r\n }\r\n else {\r\n startinvalue = value.start;\r\n endinvalue = value.end;\r\n }\r\n if (!(startinvalue instanceof Date) && typeof (startinvalue) !== 'object') {\r\n startString = this.getstringvalue(startinvalue);\r\n }\r\n else if (startinvalue instanceof Date) {\r\n startObject = true;\r\n }\r\n else if (!isNullOrUndefined(startinvalue)) {\r\n invalidobject = true;\r\n }\r\n if (!(endinvalue instanceof Date) && typeof (endinvalue) !== 'object') {\r\n endString = this.getstringvalue(endinvalue);\r\n }\r\n else if (endinvalue instanceof Date) {\r\n endObject = true;\r\n }\r\n else if (!isNullOrUndefined(endinvalue)) {\r\n invalidobject = true;\r\n }\r\n }\r\n if ((isNullOrUndefined(startString) && !startObject && !isNullOrUndefined(endString)) ||\r\n (!isNullOrUndefined(startString) && !endObject && isNullOrUndefined(endString))) {\r\n invalid = true;\r\n }\r\n if (invalidobject) {\r\n startString = endString = valueString = null;\r\n invalid = true;\r\n }\r\n if (startString) {\r\n invalid = invalid || this.checkInvalidValue(startString);\r\n }\r\n if (endString) {\r\n invalid = invalid || this.checkInvalidValue(endString);\r\n }\r\n if (invalid) {\r\n if (startObject && !invalidobject) {\r\n startString = startinvalue.toLocaleDateString();\r\n }\r\n if (endObject && !invalidobject) {\r\n endString = endinvalue.toLocaleDateString();\r\n }\r\n if (!isNullOrUndefined(startString) && !isNullOrUndefined(endString)) {\r\n valueString = startString + ' ' + this.separator + ' ' + endString;\r\n }\r\n else if (!isNullOrUndefined(startString)) {\r\n valueString = startString;\r\n }\r\n else if (!isNullOrUndefined(endString)) {\r\n valueString = endString;\r\n }\r\n this.invalidValueString = valueString;\r\n this.setProperties({ value: null }, true);\r\n this.setProperties({ startValue: null }, true);\r\n this.setProperties({ endValue: null }, true);\r\n this.startDate = null;\r\n this.endDate = null;\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.getstringvalue = function (value) {\r\n var stringValue = null;\r\n if (!isNullOrUndefined(value) && (typeof value === 'number')) {\r\n stringValue = (value).toString();\r\n }\r\n else if (!isNullOrUndefined(value) && (typeof value === 'string')) {\r\n stringValue = '' + value;\r\n }\r\n return stringValue;\r\n };\r\n DateRangePicker.prototype.checkInvalidValue = function (value) {\r\n var valueString = value;\r\n var invalid = false;\r\n var formatOpt = null;\r\n formatOpt = { format: this.formatString, type: 'date', skeleton: 'yMd' };\r\n if (typeof valueString !== 'string') {\r\n invalid = true;\r\n }\r\n else {\r\n var globalize = new Internationalization(this.locale);\r\n if (!this.checkDateValue(globalize.parseDate(valueString, formatOpt))) {\r\n var extISOStr = null;\r\n var basISOString = null;\r\n // eslint-disable-next-line\r\n extISOStr = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n // eslint-disable-next-line\r\n basISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n if ((!extISOStr.test(valueString) && !basISOString.test(valueString))\r\n || (/^[a-zA-Z0-9- ]*$/).test(valueString) || isNaN(+new Date(this.checkValue(valueString)))) {\r\n invalid = true;\r\n }\r\n }\r\n }\r\n return invalid;\r\n };\r\n DateRangePicker.prototype.isDateDisabled = function (date) {\r\n if (isNullOrUndefined(date)) {\r\n return false;\r\n }\r\n var value = new Date(+date);\r\n if (+value < +this.min || +value > +this.max) {\r\n return true;\r\n }\r\n this.virtualRenderCellArgs = {\r\n date: value,\r\n isDisabled: false\r\n };\r\n var args = this.virtualRenderCellArgs;\r\n this.virtualRenderCellEvent(args);\r\n if (args.isDisabled) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DateRangePicker.prototype.disabledDateRender = function () {\r\n this.disabledDays = [];\r\n this.disabledDayCnt = null;\r\n var localDate = new Date(+this.startValue);\r\n var count = 0;\r\n while (+localDate <= +this.endValue) {\r\n this.virtualRenderCellArgs = {\r\n date: localDate,\r\n isDisabled: false\r\n };\r\n var args = this.virtualRenderCellArgs;\r\n this.virtualRenderCellEvent(args);\r\n if (args.isDisabled) {\r\n this.disabledDays.push(new Date(+args.date));\r\n if (+localDate > +this.startValue && +localDate < +this.endValue) {\r\n count++;\r\n }\r\n }\r\n this.addDay(localDate, 1, null, this.max, this.min);\r\n }\r\n this.disabledDayCnt = count;\r\n };\r\n DateRangePicker.prototype.virtualRenderCellEvent = function (args) {\r\n extend(this.virtualRenderCellArgs, { name: 'renderDayCell' });\r\n this.trigger('renderDayCell', args);\r\n };\r\n DateRangePicker.prototype.disabledDates = function () {\r\n var isStartDisabled = false;\r\n var isEndDisabled = false;\r\n if (!isNullOrUndefined(this.endValue) && !isNullOrUndefined(this.startValue)) {\r\n isStartDisabled = this.isDateDisabled(this.startValue);\r\n isEndDisabled = this.isDateDisabled(this.endValue);\r\n if (!this.isPopupOpen()) {\r\n this.currentDate = null;\r\n }\r\n this.setValue();\r\n }\r\n return (isStartDisabled || isEndDisabled);\r\n };\r\n DateRangePicker.prototype.setModelValue = function () {\r\n if (!this.value && this.startDate === null && this.endDate === null) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n else if (this.value === null || this.value.start === null) {\r\n if (this.value === null) {\r\n this.setProperties({ value: [this.startDate, this.endDate] }, true);\r\n }\r\n else if (this.value.start === null) {\r\n this.setProperties({ value: { start: this.startDate, end: this.endDate } }, true);\r\n }\r\n }\r\n else {\r\n if ((this.value && this.value.length > 0) ||\r\n this.valueType && this.valueType.length > 0) {\r\n if (+this.startDate !== +this.value[0] || +this.endDate !== +this.value[1]) {\r\n this.setProperties({ value: [this.startDate, this.endDate] }, true);\r\n }\r\n if (this.value && this.value[0] == null && this.value[1] == null) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n }\r\n else {\r\n if ((this.value && this.value.start)) {\r\n this.setProperties({ value: { start: this.startDate, end: this.endDate } }, true);\r\n }\r\n }\r\n }\r\n this.createHiddenInput();\r\n };\r\n /**\r\n * To dispatch the event manually\r\n *\r\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\r\n * @param {string} type - Specifies the name of the event.\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.dispatchEvent = function (element, type) {\r\n var evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(type, false, true);\r\n element.dispatchEvent(evt);\r\n this.firstHiddenChild.dispatchEvent(evt);\r\n };\r\n DateRangePicker.prototype.changeTrigger = function (e) {\r\n if (+this.initStartDate !== +this.startValue || +this.initEndDate !== +this.endValue) {\r\n this.setProperties({ endDate: this.checkDateValue(this.endValue) }, true);\r\n this.setProperties({ startDate: this.checkDateValue(this.startValue) }, true);\r\n this.setModelValue();\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', this.rangeArgs(e));\r\n }\r\n }\r\n this.previousEleValue = this.inputElement.value;\r\n this.initStartDate = this.checkDateValue(this.startValue);\r\n this.initEndDate = this.checkDateValue(this.endValue);\r\n };\r\n /**\r\n * This method is used to navigate to the month/year/decade view of the Calendar.\r\n *\r\n * @param {string} view - Specifies the view of the Calendar.\r\n * @param {Date} date - Specifies the focused date in a view.\r\n * @returns {void}\r\n * @hidden\r\n */\r\n DateRangePicker.prototype.navigateTo = function (view, date) {\r\n if (this.isPopupOpen()) {\r\n if (view.toLowerCase() === 'month') {\r\n view = 'Month';\r\n }\r\n else if (view.toLowerCase() === 'year') {\r\n view = 'Year';\r\n }\r\n else if (view.toLowerCase() === 'decade') {\r\n view = 'Decade';\r\n }\r\n else {\r\n return;\r\n }\r\n if (this.getViewNumber(view) < this.getViewNumber(this.depth)) {\r\n view = this.depth;\r\n }\r\n if (this.isMobile) {\r\n _super.prototype.navigateTo.call(this, view, date);\r\n }\r\n else {\r\n if (date < this.min) {\r\n date = new Date(+this.min);\r\n }\r\n else if (date >= this.max) {\r\n date = new Date(+this.max);\r\n }\r\n if (view === 'Month' && this.isSameMonth(date, this.max)) {\r\n date = new Date(this.max.getFullYear(), this.max.getMonth() - 1, this.min.getDate());\r\n }\r\n else if (view === 'Year' && this.isSameYear(date, this.max)) {\r\n date = new Date((this.max.getFullYear() - 1), this.max.getMonth(), this.max.getDate());\r\n }\r\n else if (view === 'Decade' && this.isSameDecade(date, this.max)) {\r\n date = new Date((this.max.getFullYear() - 10), this.max.getMonth(), this.max.getDate());\r\n }\r\n this.leftCalCurrentDate = date;\r\n this.navigate(this.leftCalendar, this.leftCalCurrentDate, view);\r\n if (view === 'Month') {\r\n date = new Date(this.currentDate.setMonth(this.currentDate.getMonth() + 1));\r\n }\r\n else if (view === 'Year') {\r\n date = new Date(this.currentDate.setFullYear(this.currentDate.getFullYear() + 1));\r\n }\r\n else {\r\n date = new Date(this.currentDate.setFullYear(this.currentDate.getFullYear() + 10));\r\n }\r\n this.rightCalCurrentDate = date;\r\n this.navigate(this.rightCalendar, this.rightCalCurrentDate, view);\r\n this.leftKeyboardModule = this.rightKeyboardModule = null;\r\n this.updateNavIcons();\r\n }\r\n if (this.currentView() === this.depth) {\r\n this.bindCalendarCellEvents();\r\n }\r\n this.removeFocusedDate();\r\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\r\n }\r\n };\r\n DateRangePicker.prototype.navigate = function (calendar, date, view) {\r\n this.calendarElement = calendar;\r\n this.table = calendar.querySelector('table');\r\n this.tableBodyElement = calendar.querySelector('tbody');\r\n this.headerTitleElement = calendar.querySelector('.e-title');\r\n this.tableHeadElement = calendar.querySelector('thead');\r\n this.contentElement = calendar.querySelector('.e-content');\r\n this.previousIcon = calendar.querySelector('.e-prev');\r\n this.nextIcon = calendar.querySelector('.e-next');\r\n this.effect = ZOOMIN;\r\n _super.prototype.navigateTo.call(this, view, date);\r\n };\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.focusIn = function () {\r\n if (document.activeElement !== this.inputElement && this.enabled) {\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n this.inputElement.focus();\r\n }\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.focusOut = function () {\r\n var isBlur = this.preventBlur;\r\n if (document.activeElement === this.inputElement) {\r\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n this.preventBlur = false;\r\n this.inputElement.blur();\r\n this.preventBlur = isBlur;\r\n }\r\n };\r\n /**\r\n * To destroy the widget.\r\n *\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.destroy = function () {\r\n this.unBindEvents();\r\n this.hide(null);\r\n var ariaAttrs = {\r\n 'aria-readonly': this.readonly ? 'true' : 'false', 'tabindex': '0', 'aria-haspopup': 'true',\r\n 'aria-activedescendant': 'null', 'aria-owns': this.element.id + '_popup', 'aria-expanded': 'false',\r\n 'role': 'combobox', 'autocomplete': 'off', 'aria-disabled': !this.enabled ? 'true' : 'false',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'aria-invalid': 'false', 'spellcheck': 'false'\r\n };\r\n if (this.inputElement) {\r\n removeClass([this.inputElement], [ROOT]);\r\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\r\n Input.removeAttributes(ariaAttrs, this.inputElement);\r\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.inputElement.removeAttribute('tabindex');\r\n }\r\n this.ensureInputAttribute();\r\n this.inputElement.classList.remove('e-input');\r\n if (!isNullOrUndefined(this.inputWrapper)) {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.rangeIconHandler);\r\n if (this.angularTag === null) {\r\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\r\n }\r\n detach(this.inputWrapper.container);\r\n }\r\n }\r\n if (!isNullOrUndefined(this.inputKeyboardModule) && !this.isMobile) {\r\n this.inputKeyboardModule.destroy();\r\n }\r\n if (this.popupObj) {\r\n if (!this.isMobile) {\r\n this.clearCalendarEvents();\r\n }\r\n }\r\n _super.prototype.destroy.call(this);\r\n this.inputWrapper = this.popupWrapper = this.popupObj = this.cloneElement = this.presetElement = null;\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n if ((!isNullOrUndefined(this.firstHiddenChild))\r\n && (!isNullOrUndefined(this.secondHiddenChild))) {\r\n detach(this.firstHiddenChild);\r\n detach(this.secondHiddenChild);\r\n this.firstHiddenChild = this.secondHiddenChild = null;\r\n this.inputElement.setAttribute('name', this.element.getAttribute('data-name'));\r\n this.inputElement.removeAttribute('data-name');\r\n }\r\n };\r\n DateRangePicker.prototype.ensureInputAttribute = function () {\r\n var attr = [];\r\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\r\n attr[i] = this.inputElement.attributes[i].name;\r\n }\r\n for (var i = 0; i < attr.length; i++) {\r\n if (isNullOrUndefined(this.cloneElement.getAttribute(attr[i]))) {\r\n if (attr[i].toLowerCase() === 'value') {\r\n this.inputElement.value = '';\r\n }\r\n this.inputElement.removeAttribute(attr[i]);\r\n }\r\n else {\r\n if (attr[i].toLowerCase() === 'value') {\r\n this.inputElement.value = this.cloneElement.getAttribute(attr[i]);\r\n }\r\n this.inputElement.setAttribute(attr[i], this.cloneElement.getAttribute(attr[i]));\r\n }\r\n }\r\n };\r\n /**\r\n * To get component name\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n DateRangePicker.prototype.getModuleName = function () {\r\n return 'daterangepicker';\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Return the properties that are maintained upon browser refresh.\r\n *\r\n * @returns {string}\r\n */\r\n DateRangePicker.prototype.getPersistData = function () {\r\n var keyEntity = ['startDate', 'endDate', 'value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * Return the selected range and day span in the DateRangePicker.\r\n *\r\n * @returns {Object}\r\n */\r\n DateRangePicker.prototype.getSelectedRange = function () {\r\n var range;\r\n if (!isNullOrUndefined(this.startValue) && !isNullOrUndefined(this.endValue)) {\r\n range = (Math.round(Math.abs((this.removeTimeValueFromDate(this.startValue).getTime() -\r\n this.removeTimeValueFromDate(this.endValue).getTime()) / (1000 * 60 * 60 * 24))) + 1);\r\n this.disabledDateRender();\r\n if (!isNullOrUndefined(this.disabledDayCnt)) {\r\n range = range - this.disabledDayCnt;\r\n this.disabledDayCnt = null;\r\n }\r\n }\r\n else {\r\n range = 0;\r\n }\r\n return { startDate: this.startValue, endDate: this.endValue, daySpan: range };\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * To open the Popup container in the DateRangePicker component.\r\n *\r\n * @param {HTMLElement} element - Specifies element.\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.show = function (element, event) {\r\n var _this = this;\r\n if (this.isMobile && this.popupObj) {\r\n this.popupObj.refreshPosition();\r\n }\r\n if ((this.enabled && this.readonly) || !this.enabled || this.popupObj) {\r\n return;\r\n }\r\n else {\r\n if (!this.isPopupOpen()) {\r\n if (element) {\r\n this.targetElement = element;\r\n }\r\n this.createPopup();\r\n if (this.isMobile || Browser.isDevice) {\r\n this.mobileRangePopupWrap = this.createElement('div', { className: 'e-daterangepick-mob-popup-wrap' });\r\n document.body.appendChild(this.mobileRangePopupWrap);\r\n }\r\n this.openEventArgs = {\r\n popup: this.popupObj || null,\r\n cancel: false,\r\n date: this.inputElement.value,\r\n model: this,\r\n event: event ? event : null,\r\n appendTo: this.isMobile || Browser.isDevice ? this.mobileRangePopupWrap : document.body\r\n };\r\n var eventArgs = this.openEventArgs;\r\n this.trigger('open', eventArgs, function (eventArgs) {\r\n _this.openEventArgs = eventArgs;\r\n if (!_this.openEventArgs.cancel) {\r\n _this.openEventArgs.appendTo.appendChild(_this.popupWrapper);\r\n _this.showPopup(element, event);\r\n var isPreset = (!_this.isCustomRange || (_this.isMobile && _this.isCustomRange));\r\n if (!isUndefined(_this.presets[0].start && _this.presets[0].end && _this.presets[0].label) && isPreset) {\r\n _this.setScrollPosition();\r\n }\r\n _this.checkMinMaxDays();\r\n if ((_this.isMobile) && (!isNullOrUndefined(_this.startDate)) && (isNullOrUndefined(_this.endDate))) {\r\n _this.endButton.element.classList.add(ACTIVE);\r\n _this.startButton.element.classList.remove(ACTIVE);\r\n _this.endButton.element.removeAttribute('disabled');\r\n _this.selectableDates();\r\n }\r\n _super.prototype.setOverlayIndex.call(_this, _this.mobileRangePopupWrap, _this.popupObj.element, _this.modal, \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n _this.isMobile || Browser.isDevice);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * To close the Popup container in the DateRangePicker component.\r\n *\r\n * @returns {void}\r\n */\r\n DateRangePicker.prototype.hide = function (event) {\r\n var _this = this;\r\n if (this.popupObj) {\r\n if (isNullOrUndefined(this.previousEndValue) && isNullOrUndefined(this.previousStartValue)) {\r\n this.clearRange();\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.previousStartValue)) {\r\n this.startValue = new Date(this.checkValue(this.previousStartValue));\r\n this.setValue();\r\n this.currentDate = new Date(this.checkValue(this.startValue));\r\n }\r\n else {\r\n this.startValue = null;\r\n this.setValue();\r\n }\r\n if (!isNullOrUndefined(this.previousEndValue)) {\r\n this.endValue = new Date(this.checkValue(this.previousEndValue));\r\n this.setValue();\r\n }\r\n else {\r\n this.endValue = null;\r\n this.setValue();\r\n }\r\n }\r\n if (this.isPopupOpen()) {\r\n this.closeEventArgs = {\r\n cancel: false,\r\n popup: this.popupObj,\r\n date: this.inputElement.value,\r\n model: this,\r\n event: event ? event : null\r\n };\r\n var eventArgs = this.closeEventArgs;\r\n this.trigger('close', eventArgs, function (eventArgs) {\r\n _this.closeEventArgs = eventArgs;\r\n if (!_this.closeEventArgs.cancel) {\r\n if (_this.isMobile) {\r\n if (!isNullOrUndefined(_this.startButton) && !isNullOrUndefined(_this.endButton)) {\r\n EventHandler.remove(_this.startButton.element, 'click touchstart', _this.deviceHeaderClick);\r\n EventHandler.remove(_this.endButton.element, 'click touchstart', _this.deviceHeaderClick);\r\n }\r\n }\r\n if (_this.popupObj) {\r\n _this.popupObj.hide();\r\n if (_this.preventBlur) {\r\n _this.inputElement.focus();\r\n addClass([_this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n }\r\n if (!_this.isMobile) {\r\n if (!isNullOrUndefined(_this.leftKeyboardModule) && !isNullOrUndefined(_this.rightKeyboardModule)) {\r\n _this.leftKeyboardModule.destroy();\r\n _this.rightKeyboardModule.destroy();\r\n }\r\n if (!isNullOrUndefined(_this.presetElement)) {\r\n _this.presetKeyboardModule.destroy();\r\n }\r\n if (!isNullOrUndefined(_this.cancelButton)) {\r\n _this.btnKeyboardModule.destroy();\r\n }\r\n }\r\n _this.targetElement = null;\r\n removeClass([document.body], OVERFLOW);\r\n EventHandler.remove(document, 'mousedown touchstart', _this.documentHandler);\r\n if (_this.isMobile && _this.modal) {\r\n _this.modal.style.display = 'none';\r\n _this.modal.outerHTML = '';\r\n _this.modal = null;\r\n }\r\n if (_this.isMobile || Browser.isDevice) {\r\n if (!isNullOrUndefined(_this.mobileRangePopupWrap)) {\r\n _this.mobileRangePopupWrap.remove();\r\n _this.mobileRangePopupWrap = null;\r\n }\r\n }\r\n _this.isKeyPopup = _this.dateDisabled = false;\r\n }\r\n else {\r\n removeClass([_this.inputWrapper.buttons[0]], ACTIVE);\r\n }\r\n _this.updateClearIconState();\r\n _this.updateHiddenInput();\r\n if (_this.isMobile && _this.allowEdit && !_this.readonly) {\r\n _this.inputElement.removeAttribute('readonly');\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.updateClearIconState();\r\n this.updateHiddenInput();\r\n if (this.isMobile && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n DateRangePicker.prototype.setLocale = function () {\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n Input.setPlaceholder(this.placeholder, this.inputElement);\r\n this.updateInput();\r\n this.updateHiddenInput();\r\n this.changeTrigger();\r\n };\r\n DateRangePicker.prototype.refreshChange = function () {\r\n this.checkView();\r\n this.refreshControl();\r\n this.changeTrigger();\r\n };\r\n DateRangePicker.prototype.setDate = function () {\r\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.refreshChange();\r\n };\r\n DateRangePicker.prototype.enableInput = function () {\r\n if (+this.min <= +this.max) {\r\n this.setProperties({ enabled: true }, true);\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n if (this.element.hasAttribute('disabled')) {\r\n this.bindEvents();\r\n }\r\n }\r\n };\r\n DateRangePicker.prototype.clearModelvalue = function (newProp, oldProp) {\r\n this.setProperties({ startDate: null }, true);\r\n this.setProperties({ endDate: null }, true);\r\n if (oldProp.value && oldProp.value.length > 0) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n else if (oldProp.value && oldProp.value.start) {\r\n this.setProperties({ value: { start: null, end: null } }, true);\r\n }\r\n else if (oldProp.value && !oldProp.value.start) {\r\n this.setProperties({ value: { start: null, end: null } }, true);\r\n }\r\n this.updateValue();\r\n this.setDate();\r\n };\r\n DateRangePicker.prototype.createHiddenInput = function () {\r\n if (isNullOrUndefined(this.firstHiddenChild) && isNullOrUndefined(this.secondHiddenChild)) {\r\n this.firstHiddenChild = this.createElement('input');\r\n this.secondHiddenChild = this.createElement('input');\r\n }\r\n if (!isNullOrUndefined(this.inputElement.getAttribute('name'))) {\r\n this.inputElement.setAttribute('data-name', this.inputElement.getAttribute('name'));\r\n this.inputElement.removeAttribute('name');\r\n }\r\n attributes(this.firstHiddenChild, {\r\n 'type': 'text', 'name': this.inputElement.getAttribute('data-name'), 'class': HIDDENELEMENT\r\n });\r\n attributes(this.secondHiddenChild, {\r\n 'type': 'text', 'name': this.inputElement.getAttribute('data-name'), 'class': HIDDENELEMENT\r\n });\r\n var format = { type: 'datetime', skeleton: 'yMd' };\r\n this.firstHiddenChild.value = this.startDate && this.globalize.formatDate(this.startDate, format);\r\n this.secondHiddenChild.value = this.endDate && this.globalize.formatDate(this.endDate, format);\r\n this.inputElement.parentElement.appendChild(this.firstHiddenChild);\r\n this.inputElement.parentElement.appendChild(this.secondHiddenChild);\r\n };\r\n DateRangePicker.prototype.setMinMaxDays = function () {\r\n if (this.isPopupOpen()) {\r\n this.removeClassDisabled();\r\n this.checkMinMaxDays();\r\n if (this.isMobile) {\r\n this.selectableDates();\r\n }\r\n if (!this.strictMode && (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue))) {\r\n this.removeSelection();\r\n }\r\n else {\r\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\r\n }\r\n this.updateHeader();\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {DateRangePickerModel} newProp - Returns the dynamic property value of the component.\r\n * @param {DateRangePickerModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n DateRangePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var format = { format: this.formatString, type: 'date', skeleton: 'yMd' };\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n var openPopup = ['maxDays', 'minDays', 'value'];\r\n if (openPopup.indexOf(prop) < 0) {\r\n this.hide(null);\r\n }\r\n switch (prop) {\r\n case 'width':\r\n this.setEleWidth(this.width);\r\n break;\r\n case 'separator':\r\n this.previousEleValue = this.inputElement.value;\r\n this.setProperties({ separator: newProp.separator }, true);\r\n this.updateInput();\r\n this.changeTrigger();\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\r\n this.setProperties({ placeholder: newProp.placeholder }, true);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.inputElement);\r\n this.inputElement.setAttribute('aria-readonly', '' + this.readonly);\r\n this.setRangeAllowEdit();\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'enabled':\r\n this.setProperties({ enabled: newProp.enabled }, true);\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n if (this.enabled) {\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.inputElement.tabIndex = -1;\r\n }\r\n break;\r\n case 'allowEdit':\r\n this.setRangeAllowEdit();\r\n break;\r\n case 'enableRtl':\r\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\r\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\r\n break;\r\n case 'zIndex':\r\n this.setProperties({ zIndex: newProp.zIndex }, true);\r\n break;\r\n case 'format':\r\n this.setProperties({ format: newProp.format }, true);\r\n this.checkFormat();\r\n this.updateInput();\r\n this.changeTrigger();\r\n break;\r\n case 'locale':\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n Input.setPlaceholder(this.placeholder, this.inputElement);\r\n this.setLocale();\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttributeToElement();\r\n this.updateHtmlAttributeToWrapper();\r\n this.setDataAttribute(true);\r\n this.checkHtmlAttributes(true);\r\n break;\r\n case 'showClearButton':\r\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\r\n this.bindClearEvent();\r\n break;\r\n case 'startDate':\r\n if (typeof newProp.startDate === 'string') {\r\n newProp.startDate = this.globalize.parseDate(newProp.startDate, format);\r\n }\r\n if (+this.initStartDate !== +newProp.startDate) {\r\n this.startValue = this.checkDateValue(new Date(this.checkValue(newProp.startDate)));\r\n this.setDate();\r\n this.setValue();\r\n }\r\n break;\r\n case 'endDate':\r\n if (typeof newProp.endDate === 'string') {\r\n newProp.endDate = this.globalize.parseDate(newProp.endDate, format);\r\n }\r\n if (+this.initEndDate !== +newProp.endDate) {\r\n this.endValue = this.checkDateValue(new Date(this.checkValue(newProp.endDate)));\r\n this.setDate();\r\n this.setValue();\r\n }\r\n break;\r\n case 'value':\r\n this.invalidValueString = null;\r\n this.checkInvalidRange(newProp.value);\r\n if (typeof (newProp.value) === 'string') {\r\n if (!this.invalidValueString) {\r\n var rangeArray = newProp.value.split(' ' + this.separator + ' ');\r\n this.value = [new Date(rangeArray[0]), new Date(rangeArray[1])];\r\n this.updateValue();\r\n this.setDate();\r\n }\r\n else {\r\n this.clearModelvalue(newProp, oldProp);\r\n }\r\n }\r\n else {\r\n if ((!isNullOrUndefined(newProp.value) && newProp.value.length > 0)\r\n || !isNullOrUndefined(newProp.value) && newProp.value.start) {\r\n this.valueType = newProp.value;\r\n if (newProp.value[0] === null || (newProp.value.start === null)) {\r\n if (newProp.value.length === 1 || (newProp.value.start)) {\r\n this.clearModelvalue(newProp, oldProp);\r\n }\r\n else if (newProp.value[1] === null ||\r\n (newProp.value.start === null)) {\r\n this.clearModelvalue(newProp, oldProp);\r\n }\r\n }\r\n else if ((+this.initStartDate !== +newProp.value[0]\r\n || +this.initEndDate !== +newProp.value[1]) ||\r\n (+this.initStartDate !== +(newProp.value.start\r\n || +this.initEndDate !== +newProp.value.start))) {\r\n if (newProp.value.length === 1) {\r\n this.modelValue = newProp.value;\r\n }\r\n else if (newProp.value.start) {\r\n this.modelValue = newProp.value;\r\n }\r\n this.updateValue();\r\n this.setDate();\r\n }\r\n }\r\n else {\r\n if (isNullOrUndefined(this.value)\r\n || newProp.value.start == null) {\r\n this.valueType = newProp.value;\r\n this.startValue = null;\r\n this.endValue = null;\r\n this.clearModelvalue(newProp, oldProp);\r\n }\r\n }\r\n }\r\n if (this.isPopupOpen()) {\r\n if (isNullOrUndefined(this.startValue) && isNullOrUndefined(this.endValue)) {\r\n this.removeSelection();\r\n if (this.isMobile) {\r\n this.deviceHeaderUpdate();\r\n }\r\n return;\r\n }\r\n if (this.isMobile) {\r\n this.navigate(this.deviceCalendar, this.startValue, this.currentView());\r\n this.deviceHeaderUpdate();\r\n }\r\n else {\r\n this.navigate(this.leftCalendar, this.startValue, this.currentView());\r\n this.updateControl(this.leftCalendar);\r\n this.navigate(this.rightCalendar, this.endValue, this.currentView());\r\n this.updateControl(this.rightCalendar);\r\n }\r\n this.updateRange((this.isMobile ? [this.calendarElement] : [this.leftCalendar, this.rightCalendar]));\r\n this.updateHeader();\r\n this.applyButton.disabled = this.applyButton.element.disabled = false;\r\n }\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n break;\r\n case 'minDays':\r\n this.setProperties({ minDays: newProp.minDays }, true);\r\n this.refreshChange();\r\n this.setMinMaxDays();\r\n break;\r\n case 'maxDays':\r\n this.setProperties({ maxDays: newProp.maxDays }, true);\r\n this.refreshChange();\r\n this.setMinMaxDays();\r\n break;\r\n case 'min':\r\n this.setProperties({ min: this.checkDateValue(new Date(this.checkValue(newProp.min))) }, true);\r\n this.previousEleValue = this.inputElement.value;\r\n this.enableInput();\r\n this.refreshChange();\r\n break;\r\n case 'max':\r\n this.setProperties({ max: this.checkDateValue(new Date(this.checkValue(newProp.max))) }, true);\r\n this.enableInput();\r\n this.refreshChange();\r\n break;\r\n case 'strictMode':\r\n this.invalidValueString = null;\r\n this.setProperties({ strictMode: newProp.strictMode }, true);\r\n this.refreshChange();\r\n break;\r\n case 'presets':\r\n this.setProperties({ presets: newProp.presets }, true);\r\n this.processPresets();\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n Input.removeFloating(this.inputWrapper);\r\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\r\n break;\r\n case 'start':\r\n this.setProperties({ start: newProp.start }, true);\r\n this.refreshChange();\r\n break;\r\n case 'depth':\r\n this.setProperties({ depth: newProp.depth }, true);\r\n this.refreshChange();\r\n break;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateRangePicker.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(new Date(1900, 0, 1))\r\n ], DateRangePicker.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(new Date(2099, 11, 31))\r\n ], DateRangePicker.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"firstDayOfWeek\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateRangePicker.prototype, \"weekNumber\", void 0);\r\n __decorate([\r\n Property('Gregorian')\r\n ], DateRangePicker.prototype, \"calendarMode\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateRangePicker.prototype, \"openOnFocus\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"cleared\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"navigated\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"renderDayCell\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"startDate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"endDate\", void 0);\r\n __decorate([\r\n Collection([{}], Presets)\r\n ], DateRangePicker.prototype, \"presets\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DateRangePicker.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], DateRangePicker.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateRangePicker.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateRangePicker.prototype, \"showTodayButton\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], DateRangePicker.prototype, \"start\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], DateRangePicker.prototype, \"depth\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DateRangePicker.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('-')\r\n ], DateRangePicker.prototype, \"separator\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"minDays\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"maxDays\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateRangePicker.prototype, \"strictMode\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"format\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateRangePicker.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateRangePicker.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateRangePicker.prototype, \"allowEdit\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], DateRangePicker.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateRangePicker.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property({})\r\n ], DateRangePicker.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateRangePicker.prototype, \"blur\", void 0);\r\n DateRangePicker = __decorate([\r\n NotifyPropertyChanges\r\n ], DateRangePicker);\r\n return DateRangePicker;\r\n}(CalendarBase));\r\nexport { DateRangePicker };\r\n","/**\n * DateRangePicker modules\n */\nexport * from './daterangepicker';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n///\r\nimport { EventHandler, Internationalization, Property, NotifyPropertyChanges, Browser } from '@syncfusion/ej2-base';\r\nimport { Animation, Event, cldrData, getDefaultDateObject, detach } from '@syncfusion/ej2-base';\r\nimport { createElement, remove, addClass, L10n, removeClass, closest, append, attributes } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, isNullOrUndefined, formatUnit, getValue, rippleEffect } from '@syncfusion/ej2-base';\r\nimport { extend } from '@syncfusion/ej2-base';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { DatePicker } from '../datepicker/datepicker';\r\nimport { TimePickerBase } from '../timepicker/timepicker';\r\n//class constant defination\r\nvar DATEWRAPPER = 'e-date-wrapper';\r\nvar DATEPICKERROOT = 'e-datepicker';\r\nvar DATETIMEWRAPPER = 'e-datetime-wrapper';\r\nvar DAY = new Date().getDate();\r\nvar MONTH = new Date().getMonth();\r\nvar YEAR = new Date().getFullYear();\r\nvar HOUR = new Date().getHours();\r\nvar MINUTE = new Date().getMinutes();\r\nvar SECOND = new Date().getSeconds();\r\nvar MILLISECOND = new Date().getMilliseconds();\r\nvar ROOT = 'e-datetimepicker';\r\nvar DATETIMEPOPUPWRAPPER = 'e-datetimepopup-wrapper';\r\nvar INPUTWRAPPER = 'e-input-group-icon';\r\nvar POPUP = 'e-popup';\r\nvar TIMEICON = 'e-time-icon';\r\nvar INPUTFOCUS = 'e-input-focus';\r\nvar POPUPDIMENSION = '250px';\r\nvar ICONANIMATION = 'e-icon-anim';\r\nvar DISABLED = 'e-disabled';\r\nvar ERROR = 'e-error';\r\nvar CONTENT = 'e-content';\r\nvar NAVIGATION = 'e-navigation';\r\nvar ACTIVE = 'e-active';\r\nvar HOVER = 'e-hover';\r\nvar ICONS = 'e-icons';\r\nvar HALFPOSITION = 2;\r\nvar LISTCLASS = 'e-list-item';\r\nvar ANIMATIONDURATION = 100;\r\nvar OVERFLOW = 'e-time-overflow';\r\n/**\r\n * Represents the DateTimePicker component that allows user to select\r\n * or enter a date time value.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar DateTimePicker = /** @class */ (function (_super) {\r\n __extends(DateTimePicker, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {DateTimePickerModel} options - Specifies the DateTimePicker model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function DateTimePicker(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.valueWithMinutes = null;\r\n _this.scrollInvoked = false;\r\n _this.moduleName = _this.getModuleName();\r\n _this.dateTimeOptions = options;\r\n return _this;\r\n }\r\n DateTimePicker.prototype.focusHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n addClass([this.inputWrapper.container], INPUTFOCUS);\r\n };\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n DateTimePicker.prototype.focusIn = function () {\r\n _super.prototype.focusIn.call(this);\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n DateTimePicker.prototype.focusOut = function () {\r\n if (document.activeElement === this.inputElement) {\r\n this.inputElement.blur();\r\n removeClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n };\r\n DateTimePicker.prototype.blurHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n // IE popup closing issue when click over the scrollbar\r\n if (this.isTimePopupOpen() && this.isPreventBlur) {\r\n this.inputElement.focus();\r\n return;\r\n }\r\n removeClass([this.inputWrapper.container], INPUTFOCUS);\r\n var blurArguments = {\r\n model: this\r\n };\r\n if (this.isTimePopupOpen()) {\r\n this.hide(e);\r\n }\r\n this.trigger('blur', blurArguments);\r\n };\r\n /**\r\n * To destroy the widget.\r\n *\r\n * @returns {void}\r\n */\r\n DateTimePicker.prototype.destroy = function () {\r\n if (this.popupObject && this.popupObject.element.classList.contains(POPUP)) {\r\n this.popupObject.destroy();\r\n detach(this.dateTimeWrapper);\r\n this.dateTimeWrapper = undefined;\r\n this.liCollections = this.timeCollections = [];\r\n if (!isNullOrUndefined(this.rippleFn)) {\r\n this.rippleFn();\r\n }\r\n }\r\n var ariaAttribute = {\r\n 'aria-live': 'assertive', 'aria-atomic': 'true', 'aria-invalid': 'false',\r\n 'aria-haspopup': 'true', 'aria-activedescendant': 'null',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false',\r\n 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off'\r\n };\r\n if (this.inputElement) {\r\n Input.removeAttributes(ariaAttribute, this.inputElement);\r\n this.inputElement.removeAttribute('aria-placeholder');\r\n }\r\n if (this.isCalendar()) {\r\n if (this.popupWrapper) {\r\n detach(this.popupWrapper);\r\n }\r\n this.popupObject = this.popupWrapper = null;\r\n this.keyboardHandler.destroy();\r\n }\r\n this.unBindInputEvents();\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * To Initialize the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DateTimePicker.prototype.render = function () {\r\n this.timekeyConfigure = {\r\n enter: 'enter',\r\n escape: 'escape',\r\n end: 'end',\r\n tab: 'tab',\r\n home: 'home',\r\n down: 'downarrow',\r\n up: 'uparrow',\r\n left: 'leftarrow',\r\n right: 'rightarrow',\r\n open: 'alt+downarrow',\r\n close: 'alt+uparrow'\r\n };\r\n this.valueWithMinutes = null;\r\n this.previousDateTime = null;\r\n this.isPreventBlur = false;\r\n this.cloneElement = this.element.cloneNode(true);\r\n this.dateTimeFormat = this.cldrDateTimeFormat();\r\n this.initValue = this.value;\r\n _super.prototype.updateHtmlAttributeToElement.call(this);\r\n this.checkAttributes(false);\r\n var localeText = { placeholder: this.placeholder };\r\n this.l10n = new L10n('datetimepicker', localeText, this.locale);\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n _super.prototype.render.call(this);\r\n this.createInputElement();\r\n _super.prototype.updateHtmlAttributeToWrapper.call(this);\r\n this.bindInputEvents();\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n this.setValue();\r\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType == 'Always' || !this.floatLabelType || !this.placeholder)) {\r\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(this.scrollTo))) }, true);\r\n this.previousDateTime = this.value && new Date(+this.value);\r\n if (this.element.tagName === 'EJS-DATETIMEPICKER') {\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.removeAttribute('tabindex');\r\n if (!this.enabled) {\r\n this.inputElement.tabIndex = -1;\r\n }\r\n }\r\n this.renderComplete();\r\n };\r\n DateTimePicker.prototype.setValue = function () {\r\n this.initValue = this.validateMinMaxRange(this.value);\r\n if (!this.strictMode && this.isDateObject(this.initValue)) {\r\n var value = this.validateMinMaxRange(this.initValue);\r\n Input.setValue(this.getFormattedValue(value), this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.setProperties({ value: value }, true);\r\n }\r\n else {\r\n if (isNullOrUndefined(this.value)) {\r\n this.initValue = null;\r\n this.setProperties({ value: null }, true);\r\n }\r\n }\r\n this.valueWithMinutes = this.value;\r\n _super.prototype.updateInput.call(this);\r\n };\r\n DateTimePicker.prototype.validateMinMaxRange = function (value) {\r\n var result = value;\r\n if (this.isDateObject(value)) {\r\n result = this.validateValue(value);\r\n }\r\n else {\r\n if (+this.min > +this.max) {\r\n this.disablePopupButton(true);\r\n }\r\n }\r\n this.checkValidState(result);\r\n return result;\r\n };\r\n DateTimePicker.prototype.checkValidState = function (value) {\r\n this.isValidState = true;\r\n if (!this.strictMode) {\r\n if ((+(value) > +(this.max)) || (+(value) < +(this.min))) {\r\n this.isValidState = false;\r\n }\r\n }\r\n this.checkErrorState();\r\n };\r\n DateTimePicker.prototype.checkErrorState = function () {\r\n if (this.isValidState) {\r\n removeClass([this.inputWrapper.container], ERROR);\r\n }\r\n else {\r\n addClass([this.inputWrapper.container], ERROR);\r\n }\r\n attributes(this.inputElement, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\r\n };\r\n DateTimePicker.prototype.validateValue = function (value) {\r\n var dateVal = value;\r\n if (this.strictMode) {\r\n if (+this.min > +this.max) {\r\n this.disablePopupButton(true);\r\n dateVal = this.max;\r\n }\r\n else if (+value < +this.min) {\r\n dateVal = this.min;\r\n }\r\n else if (+value > +this.max) {\r\n dateVal = this.max;\r\n }\r\n }\r\n else {\r\n if (+this.min > +this.max) {\r\n this.disablePopupButton(true);\r\n dateVal = value;\r\n }\r\n }\r\n return dateVal;\r\n };\r\n DateTimePicker.prototype.disablePopupButton = function (isDisable) {\r\n if (isDisable) {\r\n addClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\r\n this.hide();\r\n }\r\n else {\r\n removeClass([this.inputWrapper.buttons[0], this.timeIcon], DISABLED);\r\n }\r\n };\r\n DateTimePicker.prototype.getFormattedValue = function (value) {\r\n var dateOptions;\r\n if (!isNullOrUndefined(value)) {\r\n if (this.calendarMode === 'Gregorian') {\r\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd' };\r\n }\r\n else {\r\n dateOptions = { format: this.cldrDateTimeFormat(), type: 'dateTime', skeleton: 'yMd', calendar: 'islamic' };\r\n }\r\n return this.globalize.formatDate(value, dateOptions);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n DateTimePicker.prototype.isDateObject = function (value) {\r\n return (!isNullOrUndefined(value) && !isNaN(+value)) ? true : false;\r\n };\r\n DateTimePicker.prototype.createInputElement = function () {\r\n removeClass([this.inputElement], DATEPICKERROOT);\r\n removeClass([this.inputWrapper.container], DATEWRAPPER);\r\n addClass([this.inputWrapper.container], DATETIMEWRAPPER);\r\n addClass([this.inputElement], ROOT);\r\n this.renderTimeIcon();\r\n };\r\n DateTimePicker.prototype.renderTimeIcon = function () {\r\n this.timeIcon = Input.appendSpan(INPUTWRAPPER + ' ' + TIMEICON + ' ' + ICONS, this.inputWrapper.container);\r\n };\r\n DateTimePicker.prototype.bindInputEvents = function () {\r\n EventHandler.add(this.timeIcon, 'mousedown', this.timeHandler, this);\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dateHandler, this);\r\n EventHandler.add(this.inputElement, 'blur', this.blurHandler, this);\r\n EventHandler.add(this.inputElement, 'focus', this.focusHandler, this);\r\n this.defaultKeyConfigs = extend(this.defaultKeyConfigs, this.keyConfigs);\r\n this.keyboardHandler = new KeyboardEvents(this.inputElement, {\r\n eventName: 'keydown',\r\n keyAction: this.inputKeyAction.bind(this),\r\n keyConfigs: this.defaultKeyConfigs\r\n });\r\n };\r\n DateTimePicker.prototype.unBindInputEvents = function () {\r\n EventHandler.remove(this.timeIcon, 'mousedown touchstart', this.timeHandler);\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.dateHandler);\r\n if (this.inputElement) {\r\n EventHandler.remove(this.inputElement, 'blur', this.blurHandler);\r\n EventHandler.remove(this.inputElement, 'focus', this.focusHandler);\r\n }\r\n if (this.keyboardHandler) {\r\n this.keyboardHandler.destroy();\r\n }\r\n };\r\n DateTimePicker.prototype.cldrTimeFormat = function () {\r\n var cldrTime;\r\n if (this.isNullOrEmpty(this.timeFormat)) {\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\r\n }\r\n }\r\n else {\r\n cldrTime = this.timeFormat;\r\n }\r\n return cldrTime;\r\n };\r\n DateTimePicker.prototype.cldrDateTimeFormat = function () {\r\n var cldrTime;\r\n var culture = new Internationalization(this.locale);\r\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\r\n if (this.isNullOrEmpty(this.formatString)) {\r\n cldrTime = dateFormat + ' ' + this.getCldrFormat('time');\r\n }\r\n else {\r\n cldrTime = this.formatString;\r\n }\r\n return cldrTime;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateTimePicker.prototype.getCldrFormat = function (type) {\r\n var cldrDateTime;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrDateTime = (getValue('timeFormats.short', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrDateTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\r\n }\r\n return cldrDateTime;\r\n };\r\n DateTimePicker.prototype.isNullOrEmpty = function (value) {\r\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateTimePicker.prototype.getCultureTimeObject = function (ld, c) {\r\n if (this.calendarMode === 'Gregorian') {\r\n return getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.short', ld);\r\n }\r\n else {\r\n return getValue('main.' + '' + this.locale + '.dates.calendars.islamic.timeFormats.short', ld);\r\n }\r\n };\r\n DateTimePicker.prototype.timeHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.isIconClicked = true;\r\n if (Browser.isDevice) {\r\n this.inputElement.setAttribute('readonly', '');\r\n }\r\n if (e.currentTarget === this.timeIcon) {\r\n e.preventDefault();\r\n }\r\n if (this.enabled && !this.readonly) {\r\n if (this.isDatePopupOpen()) {\r\n _super.prototype.hide.call(this, e);\r\n }\r\n if (this.isTimePopupOpen()) {\r\n this.closePopup(e);\r\n }\r\n else {\r\n this.inputElement.focus();\r\n this.popupCreation('time', e);\r\n addClass([this.inputWrapper.container], [INPUTFOCUS]);\r\n }\r\n }\r\n this.isIconClicked = false;\r\n };\r\n DateTimePicker.prototype.dateHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (e.currentTarget === this.inputWrapper.buttons[0]) {\r\n e.preventDefault();\r\n }\r\n if (this.enabled && !this.readonly) {\r\n if (this.isTimePopupOpen()) {\r\n this.closePopup(e);\r\n }\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n this.popupCreation('date', e);\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.show = function (type, e) {\r\n if ((this.enabled && this.readonly) || !this.enabled) {\r\n return;\r\n }\r\n else {\r\n if (type === 'time' && !this.dateTimeWrapper) {\r\n if (this.isDatePopupOpen()) {\r\n this.hide(e);\r\n }\r\n this.popupCreation('time', e);\r\n }\r\n else if (!this.popupObj) {\r\n if (this.isTimePopupOpen()) {\r\n this.hide(e);\r\n }\r\n _super.prototype.show.call(this);\r\n this.popupCreation('date', e);\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.toggle = function (e) {\r\n if (this.isDatePopupOpen()) {\r\n _super.prototype.hide.call(this, e);\r\n this.show('time', null);\r\n }\r\n else if (this.isTimePopupOpen()) {\r\n this.hide(e);\r\n _super.prototype.show.call(this, null, e);\r\n this.popupCreation('date', null);\r\n }\r\n else {\r\n this.show(null, e);\r\n }\r\n };\r\n DateTimePicker.prototype.listCreation = function () {\r\n var dateObject;\r\n if (this.calendarMode === 'Gregorian') {\r\n dateObject = this.globalize.parseDate(this.inputElement.value, {\r\n format: this.cldrDateTimeFormat(), type: 'datetime'\r\n });\r\n }\r\n else {\r\n dateObject = this.globalize.parseDate(this.inputElement.value, {\r\n format: this.cldrDateTimeFormat(), type: 'datetime', calendar: 'islamic'\r\n });\r\n }\r\n var value = isNullOrUndefined(this.value) ? this.inputElement.value !== '' ?\r\n dateObject :\r\n new Date() : this.value;\r\n this.valueWithMinutes = value;\r\n this.listWrapper = createElement('div', { className: CONTENT, attrs: { 'tabindex': '0' } });\r\n var min = this.startTime(value);\r\n var max = this.endTime(value);\r\n var listDetails = TimePickerBase.createListItems(this.createElement, min, max, this.globalize, this.cldrTimeFormat(), this.step);\r\n this.timeCollections = listDetails.collection;\r\n this.listTag = listDetails.list;\r\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });\r\n append([listDetails.list], this.listWrapper);\r\n this.wireTimeListEvents();\r\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\r\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\r\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\r\n };\r\n DateTimePicker.prototype.popupCreation = function (type, e) {\r\n if (Browser.isDevice) {\r\n this.element.setAttribute('readonly', 'readonly');\r\n }\r\n if (type === 'date') {\r\n if (!this.readonly && this.popupWrapper) {\r\n addClass([this.popupWrapper], DATETIMEPOPUPWRAPPER);\r\n attributes(this.popupWrapper, { 'id': this.element.id + '_datepopup' });\r\n }\r\n }\r\n else {\r\n if (!this.readonly) {\r\n this.dateTimeWrapper = createElement('div', {\r\n className: ROOT + ' ' + POPUP,\r\n attrs: { 'id': this.element.id + '_timepopup', 'style': 'visibility:hidden ; display:block' }\r\n });\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n this.dateTimeWrapper.className += ' ' + this.cssClass;\r\n }\r\n if (!isNullOrUndefined(this.step) && this.step > 0) {\r\n this.listCreation();\r\n append([this.listWrapper], this.dateTimeWrapper);\r\n }\r\n document.body.appendChild(this.dateTimeWrapper);\r\n this.addTimeSelection();\r\n this.renderPopup();\r\n this.setTimeScrollPosition();\r\n this.openPopup(e);\r\n this.popupObject.refreshPosition(this.inputElement);\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.openPopup = function (e) {\r\n var _this = this;\r\n this.preventArgs = {\r\n cancel: false,\r\n popup: this.popupObject,\r\n event: e || null\r\n };\r\n var eventArgs = this.preventArgs;\r\n this.trigger('open', eventArgs, function (eventArgs) {\r\n _this.preventArgs = eventArgs;\r\n if (!_this.preventArgs.cancel && !_this.readonly) {\r\n var openAnimation = {\r\n name: 'FadeIn',\r\n duration: ANIMATIONDURATION\r\n };\r\n if (_this.zIndex === 1000) {\r\n _this.popupObject.show(new Animation(openAnimation), _this.element);\r\n }\r\n else {\r\n _this.popupObject.show(new Animation(openAnimation), null);\r\n }\r\n addClass([_this.inputWrapper.container], [ICONANIMATION]);\r\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\r\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\r\n }\r\n });\r\n };\r\n DateTimePicker.prototype.documentClickHandler = function (event) {\r\n var target = event.target;\r\n if ((!isNullOrUndefined(this.popupObject) && (this.inputWrapper.container.contains(target) ||\r\n (this.popupObject.element && this.popupObject.element.contains(target)))) && event.type !== 'touchstart') {\r\n event.preventDefault();\r\n }\r\n if (!(closest(target, '[id=\"' + (this.popupObject && this.popupObject.element.id + '\"]'))) && target !== this.inputElement\r\n && target !== this.timeIcon && target !== this.inputWrapper.container) {\r\n if (this.isTimePopupOpen()) {\r\n this.hide(event);\r\n this.focusOut();\r\n }\r\n }\r\n else if (target !== this.inputElement) {\r\n if (!Browser.isDevice) {\r\n this.isPreventBlur = ((document.activeElement === this.inputElement) && (Browser.isIE || Browser.info.name === 'edge')\r\n && target === this.popupObject.element);\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.isTimePopupOpen = function () {\r\n return (this.dateTimeWrapper && this.dateTimeWrapper.classList.contains('' + ROOT)) ? true : false;\r\n };\r\n DateTimePicker.prototype.isDatePopupOpen = function () {\r\n return (this.popupWrapper && this.popupWrapper.classList.contains('' + DATETIMEPOPUPWRAPPER)) ? true : false;\r\n };\r\n DateTimePicker.prototype.renderPopup = function () {\r\n var _this = this;\r\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\r\n if (Browser.isDevice) {\r\n this.timeModal = createElement('div');\r\n this.timeModal.className = '' + ROOT + ' e-time-modal';\r\n document.body.className += ' ' + OVERFLOW;\r\n this.timeModal.style.display = 'block';\r\n document.body.appendChild(this.timeModal);\r\n }\r\n var offset = 4;\r\n this.popupObject = new Popup(this.dateTimeWrapper, {\r\n width: this.setPopupWidth(),\r\n zIndex: this.zIndex,\r\n targetType: 'container',\r\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\r\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\r\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\r\n enableRtl: this.enableRtl,\r\n offsetY: offset,\r\n open: function () {\r\n _this.dateTimeWrapper.style.visibility = 'visible';\r\n addClass([_this.timeIcon], ACTIVE);\r\n if (!Browser.isDevice) {\r\n _this.timekeyConfigure = extend(_this.timekeyConfigure, _this.keyConfigs);\r\n _this.inputEvent = new KeyboardEvents(_this.inputWrapper.container, {\r\n keyAction: _this.timeKeyActionHandle.bind(_this),\r\n keyConfigs: _this.timekeyConfigure,\r\n eventName: 'keydown'\r\n });\r\n }\r\n }, close: function () {\r\n removeClass([_this.timeIcon], ACTIVE);\r\n _this.unWireTimeListEvents();\r\n _this.inputElement.setAttribute('aria-activedescendant', 'null');\r\n remove(_this.popupObject.element);\r\n _this.popupObject.destroy();\r\n _this.dateTimeWrapper.innerHTML = '';\r\n _this.listWrapper = _this.dateTimeWrapper = undefined;\r\n if (_this.inputEvent) {\r\n _this.inputEvent.destroy();\r\n }\r\n }, targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hide();\r\n }\r\n }\r\n });\r\n this.popupObject.element.style.maxHeight = POPUPDIMENSION;\r\n };\r\n DateTimePicker.prototype.setDimension = function (width) {\r\n if (typeof width === 'number') {\r\n width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n // eslint-disable-next-line no-self-assign\r\n width = width;\r\n }\r\n else {\r\n width = '100%';\r\n }\r\n return width;\r\n };\r\n DateTimePicker.prototype.setPopupWidth = function () {\r\n var width = this.setDimension(this.width);\r\n if (width.indexOf('%') > -1) {\r\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\r\n width = inputWidth.toString() + 'px';\r\n }\r\n return width;\r\n };\r\n DateTimePicker.prototype.wireTimeListEvents = function () {\r\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\r\n if (!Browser.isDevice) {\r\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\r\n }\r\n };\r\n DateTimePicker.prototype.unWireTimeListEvents = function () {\r\n if (this.listWrapper) {\r\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\r\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\r\n if (!Browser.isDevice) {\r\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.onMouseOver = function (event) {\r\n var currentLi = closest(event.target, '.' + LISTCLASS);\r\n this.setTimeHover(currentLi, HOVER);\r\n };\r\n DateTimePicker.prototype.onMouseLeave = function () {\r\n this.removeTimeHover(HOVER);\r\n };\r\n DateTimePicker.prototype.setTimeHover = function (li, className) {\r\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\r\n this.removeTimeHover(className);\r\n addClass([li], className);\r\n }\r\n };\r\n DateTimePicker.prototype.getPopupHeight = function () {\r\n var height = parseInt(POPUPDIMENSION, 10);\r\n var popupHeight = this.dateTimeWrapper.getBoundingClientRect().height;\r\n return popupHeight > height ? height : popupHeight;\r\n };\r\n DateTimePicker.prototype.changeEvent = function (e) {\r\n if ((this.value && this.value.valueOf()) !== (this.previousDateTime && +this.previousDateTime.valueOf())) {\r\n _super.prototype.changeEvent.call(this, e);\r\n this.valueWithMinutes = this.value;\r\n this.setInputValue('date');\r\n this.previousDateTime = this.value && new Date(+this.value);\r\n }\r\n };\r\n DateTimePicker.prototype.updateValue = function (e) {\r\n this.setInputValue('time');\r\n if (+this.previousDateTime !== +this.value) {\r\n this.changedArgs = {\r\n value: this.value, event: e || null,\r\n isInteracted: !isNullOrUndefined(e),\r\n element: this.element\r\n };\r\n this.addTimeSelection();\r\n this.trigger('change', this.changedArgs);\r\n this.previousDateTime = this.value;\r\n }\r\n };\r\n DateTimePicker.prototype.setTimeScrollPosition = function () {\r\n var popupElement = this.selectedElement;\r\n if (!isNullOrUndefined(popupElement)) {\r\n this.findScrollTop(popupElement);\r\n }\r\n else if (this.dateTimeWrapper && this.checkDateValue(this.scrollTo)) {\r\n this.setScrollTo();\r\n }\r\n };\r\n DateTimePicker.prototype.findScrollTop = function (element) {\r\n var listHeight = this.getPopupHeight();\r\n var nextElement = element.nextElementSibling;\r\n var height = nextElement ? nextElement.offsetTop : element.offsetTop;\r\n var lineHeight = element.getBoundingClientRect().height;\r\n if ((height + element.offsetTop) > listHeight) {\r\n this.dateTimeWrapper.scrollTop = nextElement ? (height - (listHeight / HALFPOSITION + lineHeight / HALFPOSITION)) : height;\r\n }\r\n else {\r\n this.dateTimeWrapper.scrollTop = 0;\r\n }\r\n };\r\n DateTimePicker.prototype.setScrollTo = function () {\r\n var element;\r\n var items = this.dateTimeWrapper.querySelectorAll('.' + LISTCLASS);\r\n if (items.length >= 0) {\r\n this.scrollInvoked = true;\r\n var initialTime = this.timeCollections[0];\r\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\r\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\r\n }\r\n else {\r\n this.dateTimeWrapper.scrollTop = 0;\r\n }\r\n if (!isNullOrUndefined(element)) {\r\n this.findScrollTop(element);\r\n }\r\n else {\r\n this.dateTimeWrapper.scrollTop = 0;\r\n }\r\n };\r\n DateTimePicker.prototype.setInputValue = function (type) {\r\n if (type === 'date') {\r\n this.inputElement.value = this.previousElementValue = this.getFormattedValue(this.getFullDateTime());\r\n this.setProperties({ value: this.getFullDateTime() }, true);\r\n }\r\n else {\r\n var tempVal = this.getFormattedValue(new Date(this.timeCollections[this.activeIndex]));\r\n Input.setValue(tempVal, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.previousElementValue = this.inputElement.value;\r\n this.setProperties({ value: new Date(this.timeCollections[this.activeIndex]) }, true);\r\n if (this.enableMask) {\r\n this.createMask();\r\n }\r\n }\r\n this.updateIconState();\r\n };\r\n DateTimePicker.prototype.getFullDateTime = function () {\r\n var value = null;\r\n if (this.isDateObject(this.valueWithMinutes)) {\r\n value = this.combineDateTime(this.valueWithMinutes);\r\n }\r\n else {\r\n value = this.previousDate;\r\n }\r\n return this.validateMinMaxRange(value);\r\n };\r\n DateTimePicker.prototype.createMask = function () {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n };\r\n DateTimePicker.prototype.combineDateTime = function (value) {\r\n if (this.isDateObject(value)) {\r\n var day = this.previousDate.getDate();\r\n var month = this.previousDate.getMonth();\r\n var year = this.previousDate.getFullYear();\r\n var hour = value.getHours();\r\n var minutes = value.getMinutes();\r\n var seconds = value.getSeconds();\r\n return new Date(year, month, day, hour, minutes, seconds);\r\n }\r\n else {\r\n return this.previousDate;\r\n }\r\n };\r\n DateTimePicker.prototype.onMouseClick = function (event) {\r\n var target = event.target;\r\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\r\n if (li && li.classList.contains(LISTCLASS)) {\r\n this.timeValue = li.getAttribute('data-value');\r\n this.hide(event);\r\n }\r\n this.setSelection(li, event);\r\n };\r\n DateTimePicker.prototype.setSelection = function (li, event) {\r\n if (this.isValidLI(li) && !li.classList.contains(ACTIVE)) {\r\n this.selectedElement = li;\r\n var index = Array.prototype.slice.call(this.liCollections).indexOf(li);\r\n this.activeIndex = index;\r\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\r\n addClass([this.selectedElement], ACTIVE);\r\n this.selectedElement.setAttribute('aria-selected', 'true');\r\n this.updateValue(event);\r\n }\r\n };\r\n DateTimePicker.prototype.setTimeActiveClass = function () {\r\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\r\n if (!isNullOrUndefined(collections)) {\r\n var items = collections.querySelectorAll('.' + LISTCLASS);\r\n if (items.length) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.timeCollections[i] === +(this.valueWithMinutes)) {\r\n items[i].setAttribute('aria-selected', 'true');\r\n this.selectedElement = items[i];\r\n this.activeIndex = i;\r\n this.setTimeActiveDescendant();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.setTimeActiveDescendant = function () {\r\n if (!isNullOrUndefined(this.selectedElement)) {\r\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\r\n }\r\n else {\r\n attributes(this.inputElement, { 'aria-activedescendant': 'null' });\r\n }\r\n };\r\n DateTimePicker.prototype.addTimeSelection = function () {\r\n this.selectedElement = null;\r\n this.removeTimeSelection();\r\n this.setTimeActiveClass();\r\n if (!isNullOrUndefined(this.selectedElement)) {\r\n addClass([this.selectedElement], ACTIVE);\r\n this.selectedElement.setAttribute('aria-selected', 'true');\r\n }\r\n };\r\n DateTimePicker.prototype.removeTimeSelection = function () {\r\n this.removeTimeHover(HOVER);\r\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\r\n var items = this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\r\n if (items.length) {\r\n removeClass(items, ACTIVE);\r\n items[0].removeAttribute('aria-selected');\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.removeTimeHover = function (className) {\r\n var hoveredItem = this.getTimeHoverItem(className);\r\n if (hoveredItem && hoveredItem.length) {\r\n removeClass(hoveredItem, className);\r\n }\r\n };\r\n DateTimePicker.prototype.getTimeHoverItem = function (className) {\r\n var collections = isNullOrUndefined(this.dateTimeWrapper) ? this.listWrapper : this.dateTimeWrapper;\r\n var hoveredItem;\r\n if (!isNullOrUndefined(collections)) {\r\n hoveredItem = collections.querySelectorAll('.' + className);\r\n }\r\n return hoveredItem;\r\n };\r\n DateTimePicker.prototype.isValidLI = function (li) {\r\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\r\n };\r\n DateTimePicker.prototype.calculateStartEnd = function (value, range, method) {\r\n var day = value.getDate();\r\n var month = value.getMonth();\r\n var year = value.getFullYear();\r\n var hours = value.getHours();\r\n var minutes = value.getMinutes();\r\n var seconds = value.getSeconds();\r\n var milliseconds = value.getMilliseconds();\r\n if (range) {\r\n if (method === 'starttime') {\r\n return new Date(year, month, day, 0, 0, 0);\r\n }\r\n else {\r\n return new Date(year, month, day, 23, 59, 59);\r\n }\r\n }\r\n else {\r\n return new Date(year, month, day, hours, minutes, seconds, milliseconds);\r\n }\r\n };\r\n DateTimePicker.prototype.startTime = function (date) {\r\n var tempStartValue;\r\n var start;\r\n var tempMin = this.min;\r\n var value = date === null ? new Date() : date;\r\n if ((+value.getDate() === +tempMin.getDate() && +value.getMonth() === +tempMin.getMonth() &&\r\n +value.getFullYear() === +tempMin.getFullYear()) || ((+new Date(value.getFullYear(), value.getMonth(), value.getDate())) <=\r\n +new Date(tempMin.getFullYear(), tempMin.getMonth(), tempMin.getDate()))) {\r\n start = false;\r\n tempStartValue = this.min;\r\n }\r\n else if (+value < +this.max && +value > +this.min) {\r\n start = true;\r\n tempStartValue = value;\r\n }\r\n else if (+value >= +this.max) {\r\n start = true;\r\n tempStartValue = this.max;\r\n }\r\n return this.calculateStartEnd(tempStartValue, start, 'starttime');\r\n };\r\n DateTimePicker.prototype.endTime = function (date) {\r\n var tempEndValue;\r\n var end;\r\n var tempMax = this.max;\r\n var value = date === null ? new Date() : date;\r\n if ((+value.getDate() === +tempMax.getDate() && +value.getMonth() === +tempMax.getMonth() &&\r\n +value.getFullYear() === +tempMax.getFullYear()) || (+new Date(value.getUTCFullYear(), value.getMonth(), value.getDate()) >=\r\n +new Date(tempMax.getFullYear(), tempMax.getMonth(), tempMax.getDate()))) {\r\n end = false;\r\n tempEndValue = this.max;\r\n }\r\n else if (+value < +this.max && +value > +this.min) {\r\n end = true;\r\n tempEndValue = value;\r\n }\r\n else if (+value <= +this.min) {\r\n end = true;\r\n tempEndValue = this.min;\r\n }\r\n return this.calculateStartEnd(tempEndValue, end, 'endtime');\r\n };\r\n DateTimePicker.prototype.hide = function (e) {\r\n var _this = this;\r\n if (this.popupObj || this.dateTimeWrapper) {\r\n this.preventArgs = {\r\n cancel: false,\r\n popup: this.popupObj || this.popupObject,\r\n event: e || null\r\n };\r\n var eventArgs = this.preventArgs;\r\n if (isNullOrUndefined(this.popupObj)) {\r\n this.trigger('close', eventArgs, function (eventArgs) {\r\n _this.dateTimeCloseEventCallback(e, eventArgs);\r\n });\r\n }\r\n else {\r\n this.dateTimeCloseEventCallback(e, eventArgs);\r\n }\r\n }\r\n else {\r\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n this.setAllowEdit();\r\n }\r\n };\r\n DateTimePicker.prototype.dateTimeCloseEventCallback = function (e, eventArgs) {\r\n this.preventArgs = eventArgs;\r\n if (!this.preventArgs.cancel) {\r\n if (this.isDatePopupOpen()) {\r\n _super.prototype.hide.call(this, e);\r\n }\r\n else if (this.isTimePopupOpen()) {\r\n this.closePopup(e);\r\n removeClass([document.body], OVERFLOW);\r\n if (Browser.isDevice && this.timeModal) {\r\n this.timeModal.style.display = 'none';\r\n this.timeModal.outerHTML = '';\r\n this.timeModal = null;\r\n }\r\n this.setTimeActiveDescendant();\r\n }\r\n }\r\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n this.setAllowEdit();\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DateTimePicker.prototype.closePopup = function (e) {\r\n if (this.isTimePopupOpen() && this.popupObject) {\r\n var animModel = {\r\n name: 'FadeOut',\r\n duration: ANIMATIONDURATION,\r\n delay: 0\r\n };\r\n this.popupObject.hide(new Animation(animModel));\r\n this.inputWrapper.container.classList.remove(ICONANIMATION);\r\n attributes(this.inputElement, { 'aria-expanded': 'false' });\r\n EventHandler.remove(document, 'mousedown touchstart', this.documentClickHandler);\r\n }\r\n };\r\n DateTimePicker.prototype.preRender = function () {\r\n this.checkFormat();\r\n this.dateTimeFormat = this.cldrDateTimeFormat();\r\n _super.prototype.preRender.call(this);\r\n removeClass([this.inputElementCopy], [ROOT]);\r\n };\r\n DateTimePicker.prototype.getProperty = function (date, val) {\r\n if (val === 'min') {\r\n this.setProperties({ min: this.validateValue(date.min) }, true);\r\n }\r\n else {\r\n this.setProperties({ max: this.validateValue(date.max) }, true);\r\n }\r\n };\r\n DateTimePicker.prototype.checkAttributes = function (isDynamic) {\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['style', 'name', 'step', 'disabled', 'readonly', 'value', 'min', 'max', 'placeholder', 'type'];\r\n var value;\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'name':\r\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\r\n break;\r\n case 'step':\r\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['readonly'] === undefined)) || isDynamic) {\r\n var readonly = this.inputElement.getAttribute(prop) === 'disabled' ||\r\n this.inputElement.getAttribute(prop) === '' ||\r\n this.inputElement.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ readonly: readonly }, !isDynamic);\r\n }\r\n break;\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\r\n }\r\n break;\r\n case 'min':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['min'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\r\n this.setProperties({ min: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['enabled'] === undefined)) || isDynamic) {\r\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\r\n this.inputElement.getAttribute(prop) === 'true' ||\r\n this.inputElement.getAttribute(prop) === '' ? false : true;\r\n this.setProperties({ enabled: enabled }, !isDynamic);\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['value'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\r\n this.setProperties({ value: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'max':\r\n if ((isNullOrUndefined(this.dateTimeOptions) || (this.dateTimeOptions['max'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!this.isNullOrEmpty(value) && !isNaN(+value)) {\r\n this.setProperties({ max: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this) {\r\n modules.push({ args: [this], member: 'islamic' });\r\n }\r\n if (this.enableMask) {\r\n modules.push(this.maskedDateModule());\r\n }\r\n return modules;\r\n };\r\n DateTimePicker.prototype.maskedDateModule = function () {\r\n var modules = { args: [this], member: 'MaskedDateTime' };\r\n return modules;\r\n };\r\n DateTimePicker.prototype.getTimeActiveElement = function () {\r\n if (!isNullOrUndefined(this.dateTimeWrapper)) {\r\n return this.dateTimeWrapper.querySelectorAll('.' + ACTIVE);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n DateTimePicker.prototype.createDateObj = function (val) {\r\n return val instanceof Date ? val : null;\r\n };\r\n DateTimePicker.prototype.getDateObject = function (text) {\r\n if (!this.isNullOrEmpty(text)) {\r\n var dateValue = this.createDateObj(text);\r\n var value = this.valueWithMinutes;\r\n var status_1 = !isNullOrUndefined(value);\r\n if (this.checkDateValue(dateValue)) {\r\n var date = status_1 ? value.getDate() : DAY;\r\n var month = status_1 ? value.getMonth() : MONTH;\r\n var year = status_1 ? value.getFullYear() : YEAR;\r\n var hour = status_1 ? value.getHours() : HOUR;\r\n var minute = status_1 ? value.getMinutes() : MINUTE;\r\n var second = status_1 ? value.getSeconds() : SECOND;\r\n var millisecond = status_1 ? value.getMilliseconds() : MILLISECOND;\r\n if (!this.scrollInvoked) {\r\n return new Date(year, month, date, hour, minute, second, millisecond);\r\n }\r\n else {\r\n this.scrollInvoked = false;\r\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds(), dateValue.getMilliseconds());\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n DateTimePicker.prototype.findNextTimeElement = function (event) {\r\n var textVal = (this.inputElement).value;\r\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\r\n this.getDateObject(this.valueWithMinutes);\r\n var dateTimeVal = null;\r\n var listCount = this.liCollections.length;\r\n if (!isNullOrUndefined(this.activeIndex) || !isNullOrUndefined(this.checkDateValue(value))) {\r\n if (event.action === 'home') {\r\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[0])));\r\n this.activeIndex = 0;\r\n }\r\n else if (event.action === 'end') {\r\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[this.timeCollections.length - 1])));\r\n this.activeIndex = this.timeCollections.length - 1;\r\n }\r\n else {\r\n if (event.action === 'down') {\r\n for (var i = 0; i < listCount; i++) {\r\n if (+value < this.timeCollections[i]) {\r\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\r\n this.activeIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = listCount - 1; i >= 0; i--) {\r\n if (+value > this.timeCollections[i]) {\r\n dateTimeVal = +(this.createDateObj(new Date(this.timeCollections[i])));\r\n this.activeIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.timeElementValue(isNullOrUndefined(dateTimeVal) ? null : new Date(dateTimeVal));\r\n }\r\n };\r\n DateTimePicker.prototype.setTimeValue = function (date, value) {\r\n var dateString;\r\n var time;\r\n var val = this.validateMinMaxRange(value);\r\n var newval = this.createDateObj(val);\r\n if (this.getFormattedValue(newval) !== (!isNullOrUndefined(this.value) ? this.getFormattedValue(this.value) : null)) {\r\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\r\n time = new Date(+this.valueWithMinutes);\r\n }\r\n else {\r\n if (this.strictMode) {\r\n //for strict mode case, when value not present within a range. Reset the nearest range value.\r\n date = newval;\r\n }\r\n this.valueWithMinutes = this.checkDateValue(date);\r\n time = new Date(+this.valueWithMinutes);\r\n }\r\n if (this.calendarMode === 'Gregorian') {\r\n dateString = this.globalize.formatDate(time, {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\r\n type: 'dateTime', skeleton: 'yMd'\r\n });\r\n }\r\n else {\r\n dateString = this.globalize.formatDate(time, {\r\n format: !isNullOrUndefined(this.formatString) ? this.formatString : this.cldrDateTimeFormat(),\r\n type: 'dateTime', skeleton: 'yMd', calendar: 'islamic'\r\n });\r\n }\r\n if (!this.strictMode && isNullOrUndefined(time)) {\r\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n else {\r\n Input.setValue(dateString, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n return time;\r\n };\r\n DateTimePicker.prototype.timeElementValue = function (value) {\r\n if (!isNullOrUndefined(this.checkDateValue(value)) && !this.isNullOrEmpty(value)) {\r\n var date = value instanceof Date ? value : this.getDateObject(value);\r\n return this.setTimeValue(date, value);\r\n }\r\n return null;\r\n };\r\n DateTimePicker.prototype.timeKeyHandler = function (event) {\r\n if (isNullOrUndefined(this.step) || this.step <= 0) {\r\n return;\r\n }\r\n var listCount = this.timeCollections.length;\r\n if (isNullOrUndefined(this.getTimeActiveElement()) || this.getTimeActiveElement().length === 0) {\r\n if (this.liCollections.length > 0) {\r\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\r\n this.activeIndex = 0;\r\n this.selectedElement = this.liCollections[0];\r\n this.timeElementValue(new Date(this.timeCollections[0]));\r\n }\r\n else {\r\n this.findNextTimeElement(event);\r\n }\r\n }\r\n }\r\n else {\r\n var nextItemValue = void 0;\r\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\r\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\r\n this.activeIndex = index = this.activeIndex === (listCount) ? 0 : this.activeIndex;\r\n this.activeIndex = index = this.activeIndex < 0 ? (listCount - 1) : this.activeIndex;\r\n nextItemValue = isNullOrUndefined(this.timeCollections[index]) ? this.timeCollections[0] : this.timeCollections[index];\r\n }\r\n else if (event.action === 'home') {\r\n this.activeIndex = 0;\r\n nextItemValue = this.timeCollections[0];\r\n }\r\n else if (event.action === 'end') {\r\n this.activeIndex = listCount - 1;\r\n nextItemValue = this.timeCollections[listCount - 1];\r\n }\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.timeElementValue(new Date(nextItemValue));\r\n }\r\n this.isNavigate = true;\r\n this.setTimeHover(this.selectedElement, NAVIGATION);\r\n this.setTimeActiveDescendant();\r\n if (this.isTimePopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\r\n this.setTimeScrollPosition();\r\n }\r\n };\r\n DateTimePicker.prototype.timeKeyActionHandle = function (event) {\r\n if (this.enabled) {\r\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\r\n event.preventDefault();\r\n }\r\n switch (event.action) {\r\n case 'up':\r\n case 'down':\r\n case 'home':\r\n case 'end':\r\n this.timeKeyHandler(event);\r\n break;\r\n case 'enter':\r\n if (this.isNavigate) {\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\r\n this.setInputValue('time');\r\n if (+this.previousDateTime !== +this.value) {\r\n this.changedArgs.value = this.value;\r\n this.addTimeSelection();\r\n this.previousDateTime = this.value;\r\n }\r\n }\r\n else {\r\n this.updateValue(event);\r\n }\r\n this.hide(event);\r\n addClass([this.inputWrapper.container], INPUTFOCUS);\r\n this.isNavigate = false;\r\n event.stopPropagation();\r\n break;\r\n case 'escape':\r\n this.hide(event);\r\n break;\r\n default:\r\n this.isNavigate = false;\r\n break;\r\n }\r\n }\r\n };\r\n DateTimePicker.prototype.inputKeyAction = function (event) {\r\n switch (event.action) {\r\n case 'altDownArrow':\r\n this.strictModeUpdate();\r\n this.updateInput();\r\n this.toggle(event);\r\n break;\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {DateTimePickerModel} newProp - Returns the dynamic property value of the component.\r\n * @param {DateTimePickerModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n\r\n */\r\n DateTimePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'value':\r\n this.isDynamicValueChanged = true;\r\n this.invalidValueString = null;\r\n this.checkInvalidValue(newProp.value);\r\n newProp.value = this.value;\r\n newProp.value = this.validateValue(newProp.value);\r\n Input.setValue(this.getFormattedValue(newProp.value), this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.valueWithMinutes = newProp.value;\r\n this.setProperties({ value: newProp.value }, true);\r\n if (this.popupObj) {\r\n this.popupUpdate();\r\n }\r\n this.previousDateTime = new Date(this.inputElement.value);\r\n this.updateInput();\r\n this.changeTrigger(null);\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n if (this.enableMask && this.value) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n break;\r\n case 'min':\r\n case 'max':\r\n this.getProperty(newProp, prop);\r\n this.updateInput();\r\n break;\r\n case 'enableRtl':\r\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\r\n break;\r\n case 'cssClass':\r\n if (!isNullOrUndefined(oldProp.cssClass)) {\r\n oldProp.cssClass = (oldProp.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(newProp.cssClass)) {\r\n newProp.cssClass = (newProp.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n Input.setCssClass(newProp.cssClass, [this.inputWrapper.container], oldProp.cssClass);\r\n if (this.dateTimeWrapper) {\r\n Input.setCssClass(newProp.cssClass, [this.dateTimeWrapper], oldProp.cssClass);\r\n }\r\n break;\r\n case 'locale':\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\r\n this.dateTimeFormat = this.cldrDateTimeFormat();\r\n _super.prototype.updateInput.call(this);\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttributeToElement();\r\n this.updateHtmlAttributeToWrapper();\r\n this.checkAttributes(true);\r\n break;\r\n case 'format':\r\n this.setProperties({ format: newProp.format }, true);\r\n this.checkFormat();\r\n this.dateTimeFormat = this.formatString;\r\n this.setValue();\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n if (!this.value) {\r\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n }\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\r\n this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);\r\n break;\r\n case 'enabled':\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n if (!this.enabled) {\r\n this.inputElement.tabIndex = -1;\r\n }\r\n break;\r\n case 'strictMode':\r\n this.invalidValueString = null;\r\n this.updateInput();\r\n break;\r\n case 'width':\r\n this.setWidth(newProp.width);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.inputElement);\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n Input.removeFloating(this.inputWrapper);\r\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\r\n break;\r\n case 'scrollTo':\r\n if (this.checkDateValue(new Date(this.checkValue(newProp.scrollTo)))) {\r\n if (this.dateTimeWrapper) {\r\n this.setScrollTo();\r\n }\r\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkValue(newProp.scrollTo))) }, true);\r\n }\r\n else {\r\n this.setProperties({ scrollTo: null }, true);\r\n }\r\n break;\r\n case 'enableMask':\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n else {\r\n if (this.inputElement.value === this.maskedDateValue) {\r\n this.maskedDateValue = '';\r\n Input.setValue(this.maskedDateValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n }\r\n break;\r\n default:\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n break;\r\n }\r\n if (!this.isDynamicValueChanged) {\r\n this.hide(null);\r\n }\r\n this.isDynamicValueChanged = false;\r\n }\r\n };\r\n /**\r\n * To get component name.\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n DateTimePicker.prototype.getModuleName = function () {\r\n return 'datetimepicker';\r\n };\r\n DateTimePicker.prototype.restoreValue = function () {\r\n this.previousDateTime = this.previousDate;\r\n this.currentDate = this.value ? this.value : new Date();\r\n this.valueWithMinutes = this.value;\r\n this.previousDate = this.value;\r\n this.previousElementValue = this.previousElementValue = (isNullOrUndefined(this.inputValueCopy)) ? '' :\r\n this.getFormattedValue(this.inputValueCopy);\r\n };\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"timeFormat\", void 0);\r\n __decorate([\r\n Property(30)\r\n ], DateTimePicker.prototype, \"step\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"scrollTo\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], DateTimePicker.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property({})\r\n ], DateTimePicker.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateTimePicker.prototype, \"allowEdit\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"isMultiSelection\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"values\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateTimePicker.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"strictMode\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"serverTimezoneOffset\", void 0);\r\n __decorate([\r\n Property(new Date(1900, 0, 1))\r\n ], DateTimePicker.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(new Date(2099, 11, 31))\r\n ], DateTimePicker.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DateTimePicker.prototype, \"firstDayOfWeek\", void 0);\r\n __decorate([\r\n Property('Gregorian')\r\n ], DateTimePicker.prototype, \"calendarMode\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], DateTimePicker.prototype, \"start\", void 0);\r\n __decorate([\r\n Property('Month')\r\n ], DateTimePicker.prototype, \"depth\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"weekNumber\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DateTimePicker.prototype, \"showTodayButton\", void 0);\r\n __decorate([\r\n Property('Short')\r\n ], DateTimePicker.prototype, \"dayHeaderFormat\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"openOnFocus\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DateTimePicker.prototype, \"enableMask\", void 0);\r\n __decorate([\r\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\r\n ], DateTimePicker.prototype, \"maskPlaceholder\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"cleared\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], DateTimePicker.prototype, \"destroyed\", void 0);\r\n DateTimePicker = __decorate([\r\n NotifyPropertyChanges\r\n ], DateTimePicker);\r\n return DateTimePicker;\r\n}(DatePicker));\r\nexport { DateTimePicker };\r\n","/**\n * DateTimePicker modules\n */\nexport * from './datetimepicker';\n","/**\r\n * Calendar all modules\r\n */\r\nexport * from './calendar/index';\r\nexport * from './datepicker/index';\r\nexport * from './daterangepicker/index';\r\nexport * from './timepicker/index';\r\nexport * from './datetimepicker/index';\r\nexport * from './maskbase/index';\r\n","/**\r\n * MaskedDateTime modules\r\n */\r\nexport * from './masked-date-time';\r\n","import { L10n, getValue, getDefaultDateObject, cldrData } from '@syncfusion/ej2-base';\r\nvar ARROWLEFT = 'ArrowLeft';\r\nvar ARROWRIGHT = 'ArrowRight';\r\nvar ARROWUP = 'ArrowUp';\r\nvar ARROWDOWN = 'ArrowDown';\r\nvar TAB = 'Tab';\r\nvar SHIFTTAB = 'shiftTab';\r\nvar END = 'End';\r\nvar HOME = 'Home';\r\nvar MaskedDateTime = /** @class */ (function () {\r\n function MaskedDateTime(parent) {\r\n this.mask = '';\r\n this.defaultConstant = {\r\n day: 'day',\r\n month: 'month',\r\n year: 'year',\r\n hour: 'hour',\r\n minute: 'minute',\r\n second: 'second',\r\n dayOfTheWeek: 'day of the week',\r\n };\r\n this.hiddenMask = '';\r\n this.validCharacters = 'dMyhmHfasz';\r\n this.isDayPart = false;\r\n this.isMonthPart = false;\r\n this.isYearPart = false;\r\n this.isHourPart = false;\r\n this.isMinutePart = false;\r\n this.isSecondsPart = false;\r\n this.isMilliSecondsPart = false;\r\n this.monthCharacter = '';\r\n this.periodCharacter = '';\r\n this.isHiddenMask = false;\r\n this.isComplete = false;\r\n this.isNavigate = false;\r\n this.formatRegex = /EEEEE|EEEE|EEE|EE|E|dddd|ddd|dd|d|MMMM|MMM|MM|M|yyyy|yy|y|HH|H|hh|h|mm|m|fff|ff|f|aa|a|ss|s|zzzz|zzz|zz|z|'[^']*'|'[^']*'/g;\r\n this.isDeletion = false;\r\n this.isShortYear = false;\r\n this.isDeleteKey = false;\r\n this.isDateZero = false;\r\n this.isMonthZero = false;\r\n this.isYearZero = false;\r\n this.dayTypeCount = 0;\r\n this.monthTypeCount = 0;\r\n this.hourTypeCount = 0;\r\n this.minuteTypeCount = 0;\r\n this.secondTypeCount = 0;\r\n this.parent = parent;\r\n this.dateformat = this.getCulturedFormat();\r\n this.maskDateValue = this.parent.value != null ? new Date(+this.parent.value) : new Date();\r\n this.maskDateValue.setMonth(0);\r\n this.maskDateValue.setHours(0);\r\n this.maskDateValue.setMinutes(0);\r\n this.maskDateValue.setSeconds(0);\r\n this.previousDate = new Date(this.maskDateValue.getFullYear(), this.maskDateValue.getMonth(), this.maskDateValue.getDate(), this.maskDateValue.getHours(), this.maskDateValue.getMinutes(), this.maskDateValue.getSeconds());\r\n this.removeEventListener();\r\n this.addEventListener();\r\n }\r\n MaskedDateTime.prototype.getModuleName = function () {\r\n return 'MaskedDateTime';\r\n };\r\n MaskedDateTime.prototype.addEventListener = function () {\r\n if (this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.on('createMask', this.createMask, this);\r\n this.parent.on('setMaskSelection', this.validCharacterCheck, this);\r\n this.parent.on('inputHandler', this.maskInputHandler, this);\r\n this.parent.on('keyDownHandler', this.maskKeydownHandler, this);\r\n this.parent.on('clearHandler', this.clearHandler, this);\r\n };\r\n MaskedDateTime.prototype.removeEventListener = function () {\r\n if (this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.off('createMask', this.createMask);\r\n this.parent.off('setMaskSelection', this.validCharacterCheck);\r\n this.parent.off('inputHandler', this.maskInputHandler);\r\n this.parent.off('keyDownHandler', this.maskKeydownHandler);\r\n this.parent.off('clearHandler', this.clearHandler);\r\n };\r\n MaskedDateTime.prototype.createMask = function (dateformat) {\r\n this.isDayPart = this.isMonthPart = this.isYearPart = this.isHourPart = this.isMinutePart = this.isSecondsPart = false;\r\n this.dateformat = this.getCulturedFormat();\r\n if (this.parent.maskPlaceholder.day)\r\n this.defaultConstant['day'] = this.parent.maskPlaceholder.day;\r\n if (this.parent.maskPlaceholder.month)\r\n this.defaultConstant['month'] = this.parent.maskPlaceholder.month;\r\n if (this.parent.maskPlaceholder.year)\r\n this.defaultConstant['year'] = this.parent.maskPlaceholder.year;\r\n if (this.parent.maskPlaceholder.hour)\r\n this.defaultConstant['hour'] = this.parent.maskPlaceholder.hour;\r\n if (this.parent.maskPlaceholder.minute)\r\n this.defaultConstant['minute'] = this.parent.maskPlaceholder.minute;\r\n if (this.parent.maskPlaceholder.second)\r\n this.defaultConstant['second'] = this.parent.maskPlaceholder.second;\r\n if (this.parent.maskPlaceholder.dayOfTheWeek)\r\n this.defaultConstant['dayOfTheWeek'] = this.parent.maskPlaceholder.dayOfTheWeek.toString();\r\n this.getCUltureMaskFormat();\r\n var inputValue = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = true;\r\n this.hiddenMask = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = false;\r\n this.previousHiddenMask = this.hiddenMask;\r\n this.mask = this.previousValue = inputValue;\r\n this.parent.maskedDateValue = this.mask;\r\n if (this.parent.value) {\r\n this.setDynamicValue();\r\n }\r\n };\r\n MaskedDateTime.prototype.getCUltureMaskFormat = function () {\r\n this.l10n = new L10n(this.parent.moduleName, this.defaultConstant, this.parent.locale);\r\n this.objectString = Object.keys(this.defaultConstant);\r\n for (var i = 0; i < this.objectString.length; i++) {\r\n this.defaultConstant[this.objectString[i].toString()] = this.l10n.getConstant(this.objectString[i].toString());\r\n }\r\n };\r\n MaskedDateTime.prototype.validCharacterCheck = function () {\r\n var start = this.parent.inputElement.selectionStart;\r\n for (var i = start, j = start - 1; i < this.hiddenMask.length || j >= 0; i++, j--) {\r\n if (i < this.hiddenMask.length && this.validCharacters.indexOf(this.hiddenMask[i]) !== -1) {\r\n this.setSelection(this.hiddenMask[i]);\r\n return;\r\n }\r\n if (j >= 0 && this.validCharacters.indexOf(this.hiddenMask[j]) !== -1) {\r\n this.setSelection(this.hiddenMask[j]);\r\n return;\r\n }\r\n }\r\n };\r\n MaskedDateTime.prototype.setDynamicValue = function () {\r\n this.maskDateValue = this.parent.value;\r\n this.isDayPart = this.isMonthPart = this.isYearPart = this.isHourPart = this.isMinutePart = this.isSecondsPart = true;\r\n this.updateValue();\r\n // this.parent.inputElement.selectionStart = start;\r\n // this.validCharacterCheck();\r\n };\r\n MaskedDateTime.prototype.setSelection = function (validChar) {\r\n var start = -1;\r\n var end = 0;\r\n for (var i = 0; i < this.hiddenMask.length; i++) {\r\n if (this.hiddenMask[i] === validChar) {\r\n end = i + 1;\r\n if (start === -1) {\r\n start = i;\r\n }\r\n }\r\n }\r\n if (start < 0) {\r\n start = 0;\r\n }\r\n this.parent.inputElement.setSelectionRange(start, end);\r\n };\r\n MaskedDateTime.prototype.maskKeydownHandler = function (args) {\r\n if (args.e.key === 'Delete') {\r\n this.isDeleteKey = true;\r\n return;\r\n }\r\n if ((!args.e.altKey && !args.e.ctrlKey) && (args.e.key === ARROWLEFT || args.e.key === ARROWRIGHT || args.e.key === SHIFTTAB || args.e.key === TAB || args.e.action === SHIFTTAB ||\r\n args.e.key === END || args.e.key === HOME)) {\r\n var start = this.parent.inputElement.selectionStart;\r\n var end = this.parent.inputElement.selectionEnd;\r\n var length_1 = this.parent.inputElement.value.length;\r\n if ((start == 0 && end == length_1) && (args.e.key === TAB || args.e.action === SHIFTTAB)) {\r\n var index = args.e.action === SHIFTTAB ? end : 0;\r\n this.parent.inputElement.selectionStart = this.parent.inputElement.selectionEnd = index;\r\n }\r\n if (args.e.key === END || args.e.key === HOME) {\r\n var range = args.e.key === END ? length_1 : 0;\r\n this.parent.inputElement.selectionStart = this.parent.inputElement.selectionEnd = range;\r\n }\r\n this.navigateSelection(args.e.key === ARROWLEFT || args.e.action === SHIFTTAB || args.e.key === END ? true : false);\r\n }\r\n if ((!args.e.altKey && !args.e.ctrlKey) && (args.e.key === ARROWUP || args.e.key === ARROWDOWN)) {\r\n var start = this.parent.inputElement.selectionStart;\r\n this.dateAlteration(args.e.key === ARROWDOWN ? true : false);\r\n var inputValue = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = true;\r\n this.hiddenMask = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = false;\r\n this.previousHiddenMask = this.hiddenMask;\r\n this.previousValue = inputValue;\r\n this.parent.inputElement.value = inputValue;\r\n this.parent.inputElement.selectionStart = start;\r\n this.validCharacterCheck();\r\n }\r\n };\r\n MaskedDateTime.prototype.differenceCheck = function () {\r\n var start = this.parent.inputElement.selectionStart;\r\n var inputValue = this.parent.inputElement.value;\r\n var previousVal = this.previousValue.substring(0, start + this.previousValue.length - inputValue.length);\r\n var newVal = inputValue.substring(0, start);\r\n var newDateValue = this.maskDateValue;\r\n var maxDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth() + 1, 0).getDate();\r\n if (previousVal.indexOf(newVal) === 0 && (newVal.length === 0 || this.previousHiddenMask[newVal.length - 1] !== this.previousHiddenMask[newVal.length])) {\r\n for (var i = newVal.length; i < previousVal.length; i++) {\r\n if (this.previousHiddenMask[i] !== '' && this.validCharacters.indexOf(this.previousHiddenMask[i]) >= 0) {\r\n this.isDeletion = this.handleDeletion(this.previousHiddenMask[i], false);\r\n }\r\n }\r\n if (this.isDeletion) {\r\n return;\r\n }\r\n }\r\n switch (this.previousHiddenMask[start - 1]) {\r\n case 'd':\r\n var date = (this.isDayPart && newDateValue.getDate().toString().length < 2 ? newDateValue.getDate() * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n this.isDateZero = (newVal[start - 1] == '0');\r\n if (isNaN(date)) {\r\n return;\r\n }\r\n for (var i = 0; date > maxDate; i++) {\r\n date = parseInt(date.toString().slice(1), 10);\r\n }\r\n if (date >= 1) {\r\n newDateValue.setDate(date);\r\n this.isNavigate = date.toString().length === 2;\r\n this.previousDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth(), newDateValue.getDate());\r\n if (newDateValue.getMonth() !== this.maskDateValue.getMonth()) {\r\n return;\r\n }\r\n this.isDayPart = true;\r\n this.dayTypeCount = this.dayTypeCount + 1;\r\n }\r\n else {\r\n this.isDayPart = false;\r\n this.dayTypeCount = this.isDateZero ? this.dayTypeCount + 1 : this.dayTypeCount;\r\n }\r\n break;\r\n case 'M':\r\n var month = void 0;\r\n if (newDateValue.getMonth().toString().length < 2) {\r\n month = (this.isMonthPart ? (newDateValue.getMonth() + 1) * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n }\r\n else {\r\n month = parseInt(newVal[start - 1], 10);\r\n }\r\n this.isMonthZero = (newVal[start - 1] == '0');\r\n if (!isNaN(month)) {\r\n while (month > 12) {\r\n month = parseInt(month.toString().slice(1), 10);\r\n }\r\n if (month >= 1) {\r\n newDateValue.setMonth(month - 1);\r\n this.isNavigate = month.toString().length === 2;\r\n if (newDateValue.getMonth() !== month - 1) {\r\n newDateValue.setDate(1);\r\n newDateValue.setMonth(month - 1);\r\n }\r\n if (this.isDayPart) {\r\n var previousMaxDate = new Date(this.previousDate.getFullYear(), this.previousDate.getMonth() + 1, 0).getDate();\r\n var currentMaxDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth() + 1, 0).getDate();\r\n if (this.previousDate.getDate() == previousMaxDate && currentMaxDate <= previousMaxDate) {\r\n newDateValue.setDate(currentMaxDate);\r\n }\r\n }\r\n this.previousDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth(), newDateValue.getDate());\r\n this.isMonthPart = true;\r\n this.monthTypeCount = this.monthTypeCount + 1;\r\n }\r\n else {\r\n newDateValue.setMonth(0);\r\n this.isMonthPart = false;\r\n this.monthTypeCount = this.isMonthZero ? this.monthTypeCount + 1 : this.monthTypeCount;\r\n }\r\n }\r\n else { // let monthString: string[] = (getValue('months[stand-alone].wide', getDefaultDateObject()));\r\n var monthString = (this.getCulturedValue('months[stand-alone].wide'));\r\n var monthValue = Object.keys(monthString);\r\n this.monthCharacter += newVal[start - 1].toLowerCase();\r\n while (this.monthCharacter.length > 0) {\r\n var i = 1;\r\n for (var _i = 0, monthValue_1 = monthValue; _i < monthValue_1.length; _i++) {\r\n var months = monthValue_1[_i];\r\n if (monthString[i].toLowerCase().indexOf(this.monthCharacter) === 0) {\r\n newDateValue.setMonth(i - 1);\r\n this.isMonthPart = true;\r\n this.maskDateValue = newDateValue;\r\n return;\r\n }\r\n i++;\r\n }\r\n this.monthCharacter = this.monthCharacter.substring(1, this.monthCharacter.length);\r\n }\r\n }\r\n break;\r\n case 'y':\r\n var year = (this.isYearPart && (newDateValue.getFullYear().toString().length < 4 && !this.isShortYear) ? newDateValue.getFullYear() * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n this.isShortYear = false;\r\n this.isYearZero = (newVal[start - 1] == '0');\r\n if (isNaN(year)) {\r\n return;\r\n }\r\n while (year > 9999) {\r\n year = parseInt(year.toString().slice(1), 10);\r\n }\r\n if (year < 1) {\r\n this.isYearPart = false;\r\n }\r\n else {\r\n newDateValue.setFullYear(year);\r\n if (year.toString().length === 4) {\r\n this.isNavigate = true;\r\n }\r\n this.previousDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth(), newDateValue.getDate());\r\n this.isYearPart = true;\r\n }\r\n break;\r\n case 'h':\r\n this.hour = (this.isHourPart && (newDateValue.getHours() % 12 || 12).toString().length < 2 ? (newDateValue.getHours() % 12 || 12) * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n if (isNaN(this.hour)) {\r\n return;\r\n }\r\n while (this.hour > 12) {\r\n this.hour = parseInt(this.hour.toString().slice(1), 10);\r\n }\r\n newDateValue.setHours(Math.floor(newDateValue.getHours() / 12) * 12 + (this.hour % 12));\r\n this.isNavigate = this.hour.toString().length === 2;\r\n this.isHourPart = true;\r\n this.hourTypeCount = this.hourTypeCount + 1;\r\n break;\r\n case 'H':\r\n this.hour = (this.isHourPart && newDateValue.getHours().toString().length < 2 ? newDateValue.getHours() * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n if (isNaN(this.hour)) {\r\n return;\r\n }\r\n for (var i = 0; this.hour > 23; i++) {\r\n this.hour = parseInt(this.hour.toString().slice(1), 10);\r\n }\r\n newDateValue.setHours(this.hour);\r\n this.isNavigate = this.hour.toString().length === 2;\r\n this.isHourPart = true;\r\n this.hourTypeCount = this.hourTypeCount + 1;\r\n break;\r\n case 'm':\r\n var minutes = (this.isMinutePart && newDateValue.getMinutes().toString().length < 2 ? newDateValue.getMinutes() * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n if (isNaN(minutes)) {\r\n return;\r\n }\r\n for (var i = 0; minutes > 59; i++) {\r\n minutes = parseInt(minutes.toString().slice(1), 10);\r\n }\r\n newDateValue.setMinutes(minutes);\r\n this.isNavigate = minutes.toString().length === 2;\r\n this.isMinutePart = true;\r\n this.minuteTypeCount = this.minuteTypeCount + 1;\r\n break;\r\n case 's':\r\n var seconds = (this.isSecondsPart && newDateValue.getSeconds().toString().length < 2 ? newDateValue.getSeconds() * 10 : 0) + parseInt(newVal[start - 1], 10);\r\n if (isNaN(seconds)) {\r\n return;\r\n }\r\n for (var i = 0; seconds > 59; i++) {\r\n seconds = parseInt(seconds.toString().slice(1), 10);\r\n }\r\n newDateValue.setSeconds(seconds);\r\n this.isNavigate = seconds.toString().length === 2;\r\n this.isSecondsPart = true;\r\n this.secondTypeCount = this.secondTypeCount + 1;\r\n break;\r\n case 'a':\r\n this.periodCharacter += newVal[start - 1].toLowerCase();\r\n // let periodString: string[] = (getValue('dayPeriods.format.wide', getDefaultDateObject()));;\r\n var periodString = (this.getCulturedValue('dayPeriods.format.wide'));\r\n var periodkeys = Object.keys(periodString);\r\n //periodString[periodkeys[0]] : periodString[periodkeys[1]] : periodString[periodkeys[0]];\r\n for (var i = 0; this.periodCharacter.length > 0; i++) {\r\n if ((periodString[periodkeys[0]].toLowerCase().indexOf(this.periodCharacter) === 0 && newDateValue.getHours() >= 12) || (periodString[periodkeys[1]].toLowerCase().indexOf(this.periodCharacter) === 0 && newDateValue.getHours() < 12)) {\r\n newDateValue.setHours((newDateValue.getHours() + 12) % 24);\r\n this.maskDateValue = newDateValue;\r\n }\r\n this.periodCharacter = this.periodCharacter.substring(1, this.periodCharacter.length);\r\n // Object.values()\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n this.maskDateValue = newDateValue;\r\n };\r\n MaskedDateTime.prototype.formatCheck = function () {\r\n var proxy = this;\r\n function formatValueSpecifier(formattext) {\r\n var isSymbol;\r\n var result;\r\n var daysAbbreviated = proxy.getCulturedValue('days[stand-alone].abbreviated');\r\n var dayKeyAbbreviated = Object.keys(daysAbbreviated);\r\n var daysWide = (proxy.getCulturedValue('days[stand-alone].wide'));\r\n var dayKeyWide = Object.keys(daysWide);\r\n var daysNarrow = (proxy.getCulturedValue('days[stand-alone].narrow'));\r\n var dayKeyNarrow = Object.keys(daysNarrow);\r\n var monthAbbreviated = (proxy.getCulturedValue('months[stand-alone].abbreviated'));\r\n var monthWide = (proxy.getCulturedValue('months[stand-alone].wide'));\r\n var periodString = (proxy.getCulturedValue('dayPeriods.format.wide'));\r\n var periodkeys = Object.keys(periodString);\r\n var milliseconds;\r\n var dateOptions;\r\n switch (formattext) {\r\n case 'ddd':\r\n case 'dddd':\r\n case 'd':\r\n result = proxy.isDayPart ? proxy.maskDateValue.getDate().toString() : proxy.defaultConstant['day'].toString();\r\n result = proxy.zeroCheck(proxy.isDateZero, proxy.isDayPart, result);\r\n break;\r\n case 'dd':\r\n result = proxy.isDayPart ? proxy.roundOff(proxy.maskDateValue.getDate(), 2) : proxy.defaultConstant['day'].toString();\r\n result = proxy.zeroCheck(proxy.isDateZero, proxy.isDayPart, result);\r\n if (proxy.dayTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.dayTypeCount = 0;\r\n }\r\n break;\r\n case 'E':\r\n case 'EE':\r\n case 'EEE':\r\n result = proxy.isDayPart && proxy.isMonthPart && proxy.isYearPart ? daysAbbreviated[dayKeyAbbreviated[proxy.maskDateValue.getDay()]].toString() : proxy.defaultConstant['dayOfTheWeek'].toString();\r\n break;\r\n case 'EEEE':\r\n result = proxy.isDayPart && proxy.isMonthPart && proxy.isYearPart ? daysWide[dayKeyWide[proxy.maskDateValue.getDay()]].toString() : proxy.defaultConstant['dayOfTheWeek'].toString();\r\n break;\r\n case 'EEEEE':\r\n result = proxy.isDayPart && proxy.isMonthPart && proxy.isYearPart ? daysNarrow[dayKeyNarrow[proxy.maskDateValue.getDay()]].toString() : proxy.defaultConstant['dayOfTheWeek'].toString();\r\n break;\r\n case 'M':\r\n result = proxy.isMonthPart ? (proxy.maskDateValue.getMonth() + 1).toString() : proxy.defaultConstant['month'].toString();\r\n result = proxy.zeroCheck(proxy.isMonthZero, proxy.isMonthPart, result);\r\n break;\r\n case 'MM':\r\n result = proxy.isMonthPart ? proxy.roundOff(proxy.maskDateValue.getMonth() + 1, 2) : proxy.defaultConstant['month'].toString();\r\n result = proxy.zeroCheck(proxy.isMonthZero, proxy.isMonthPart, result);\r\n if (proxy.monthTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.monthTypeCount = 0;\r\n }\r\n break;\r\n case 'MMM':\r\n result = proxy.isMonthPart ? monthAbbreviated[proxy.maskDateValue.getMonth() + 1] : proxy.defaultConstant['month'].toString();\r\n break;\r\n case 'MMMM':\r\n result = proxy.isMonthPart ? monthWide[proxy.maskDateValue.getMonth() + 1] : proxy.defaultConstant['month'].toString();\r\n break;\r\n case 'yy':\r\n result = proxy.isYearPart ? proxy.roundOff(proxy.maskDateValue.getFullYear() % 100, 2) : proxy.defaultConstant['year'].toString();\r\n result = proxy.zeroCheck(proxy.isYearZero, proxy.isYearPart, result);\r\n if (proxy.isYearPart) {\r\n proxy.isNavigate = proxy.isShortYear = (proxy.maskDateValue.getFullYear() % 100).toString().length === 2;\r\n }\r\n break;\r\n case 'y':\r\n case 'yyyy':\r\n result = proxy.isYearPart ? proxy.roundOff(proxy.maskDateValue.getFullYear(), 4) : proxy.defaultConstant['year'].toString();\r\n result = proxy.zeroCheck(proxy.isYearZero, proxy.isYearPart, result);\r\n break;\r\n case 'h':\r\n result = proxy.isHourPart ? (proxy.maskDateValue.getHours() % 12 || 12).toString() : proxy.defaultConstant['hour'].toString();\r\n break;\r\n case 'hh':\r\n result = proxy.isHourPart ? proxy.roundOff(proxy.maskDateValue.getHours() % 12 || 12, 2) : proxy.defaultConstant['hour'].toString();\r\n if (proxy.hourTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.hourTypeCount = 0;\r\n }\r\n break;\r\n case 'H':\r\n result = proxy.isHourPart ? proxy.maskDateValue.getHours().toString() : proxy.defaultConstant['hour'].toString();\r\n break;\r\n case 'HH':\r\n result = proxy.isHourPart ? proxy.roundOff(proxy.maskDateValue.getHours(), 2) : proxy.defaultConstant['hour'].toString();\r\n if (proxy.hourTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.hourTypeCount = 0;\r\n }\r\n break;\r\n case 'm':\r\n result = proxy.isMinutePart ? proxy.maskDateValue.getMinutes().toString() : proxy.defaultConstant['minute'].toString();\r\n break;\r\n case 'mm':\r\n result = proxy.isMinutePart ? proxy.roundOff(proxy.maskDateValue.getMinutes(), 2) : proxy.defaultConstant['minute'].toString();\r\n if (proxy.minuteTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.minuteTypeCount = 0;\r\n }\r\n break;\r\n case 's':\r\n result = proxy.isSecondsPart ? proxy.maskDateValue.getSeconds().toString() : proxy.defaultConstant['second'].toString();\r\n break;\r\n case 'ss':\r\n result = proxy.isSecondsPart ? proxy.roundOff(proxy.maskDateValue.getSeconds(), 2) : proxy.defaultConstant['second'].toString();\r\n if (proxy.secondTypeCount == 2) {\r\n proxy.isNavigate = true;\r\n proxy.secondTypeCount = 0;\r\n }\r\n break;\r\n case 'f':\r\n result = Math.floor(proxy.maskDateValue.getMilliseconds() / 100).toString();\r\n break;\r\n case 'ff':\r\n milliseconds = proxy.maskDateValue.getMilliseconds();\r\n if (proxy.maskDateValue.getMilliseconds() > 99) {\r\n milliseconds = Math.floor(proxy.maskDateValue.getMilliseconds() / 10);\r\n }\r\n result = proxy.roundOff(milliseconds, 2);\r\n break;\r\n case 'fff':\r\n result = proxy.roundOff(proxy.maskDateValue.getMilliseconds(), 3);\r\n break;\r\n case 'a':\r\n case 'aa':\r\n result = proxy.maskDateValue.getHours() < 12 ? periodString[periodkeys[0]] : periodString[periodkeys[1]];\r\n break;\r\n case 'z':\r\n case 'zz':\r\n case 'zzz':\r\n case 'zzzz':\r\n dateOptions = {\r\n format: formattext,\r\n type: 'dateTime', skeleton: 'yMd', calendar: proxy.parent.calendarMode\r\n };\r\n result = proxy.parent.globalize.formatDate(proxy.maskDateValue, dateOptions);\r\n break;\r\n }\r\n result = result !== undefined ? result : formattext.slice(1, formattext.length - 1);\r\n if (proxy.isHiddenMask) {\r\n var hiddenChar = '';\r\n for (var i = 0; i < result.length; i++) {\r\n hiddenChar += formattext[0];\r\n }\r\n return hiddenChar;\r\n }\r\n else {\r\n return result;\r\n }\r\n }\r\n return formatValueSpecifier;\r\n };\r\n MaskedDateTime.prototype.maskInputHandler = function () {\r\n var start = this.parent.inputElement.selectionStart;\r\n var selectionChar = this.previousHiddenMask[start - 1];\r\n var inputValue;\r\n this.differenceCheck();\r\n inputValue = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = true;\r\n this.hiddenMask = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isDateZero = this.isMonthZero = this.isYearZero = false;\r\n this.isHiddenMask = false;\r\n this.previousHiddenMask = this.hiddenMask;\r\n this.previousValue = inputValue;\r\n this.parent.inputElement.value = inputValue;\r\n this.parent.inputElement.selectionStart = start;\r\n this.validCharacterCheck();\r\n if ((this.isNavigate || this.isDeletion) && !this.isDeleteKey) {\r\n var isbackward = this.isNavigate ? false : true;\r\n this.isNavigate = this.isDeletion = false;\r\n this.navigateSelection(isbackward);\r\n }\r\n this.isDeleteKey = false;\r\n // this.setSelection(selectionChar);\r\n // this.navigateSelection(inputValue);\r\n };\r\n MaskedDateTime.prototype.navigateSelection = function (isbackward) {\r\n var start = this.parent.inputElement.selectionStart;\r\n var end = this.parent.inputElement.selectionEnd;\r\n var formatIndex = isbackward ? start - 1 : end + 1;\r\n while (formatIndex < this.hiddenMask.length && formatIndex >= 0) {\r\n if (this.validCharacters.indexOf(this.hiddenMask[formatIndex]) >= 0) {\r\n this.setSelection(this.hiddenMask[formatIndex]);\r\n break;\r\n }\r\n formatIndex = formatIndex + (isbackward ? -1 : 1);\r\n }\r\n };\r\n MaskedDateTime.prototype.roundOff = function (val, count) {\r\n var valueText = val.toString();\r\n var length = count - valueText.length;\r\n var result = '';\r\n for (var i = 0; i < length; i++) {\r\n result += '0';\r\n }\r\n return result + valueText;\r\n };\r\n MaskedDateTime.prototype.zeroCheck = function (isZero, isDayPart, resultValue) {\r\n var result = resultValue;\r\n if (isZero && !isDayPart) {\r\n result = '0';\r\n }\r\n return result;\r\n };\r\n MaskedDateTime.prototype.handleDeletion = function (format, isSegment) {\r\n switch (format) {\r\n case 'd':\r\n this.isDayPart = isSegment;\r\n break;\r\n case 'M':\r\n this.isMonthPart = isSegment;\r\n if (!isSegment) {\r\n this.maskDateValue.setMonth(0);\r\n this.monthCharacter = '';\r\n }\r\n break;\r\n case 'y':\r\n this.isYearPart = isSegment;\r\n break;\r\n case 'H':\r\n case 'h':\r\n this.isHourPart = isSegment;\r\n if (!isSegment) {\r\n this.periodCharacter = '';\r\n }\r\n break;\r\n case 'm':\r\n this.isMinutePart = isSegment;\r\n break;\r\n case 's':\r\n this.isSecondsPart = isSegment;\r\n break;\r\n default:\r\n return false;\r\n }\r\n return true;\r\n };\r\n MaskedDateTime.prototype.dateAlteration = function (isDecrement) {\r\n var start = this.parent.inputElement.selectionStart;\r\n var formatText = '';\r\n if (this.validCharacters.indexOf(this.hiddenMask[start]) !== -1) {\r\n formatText = this.hiddenMask[start];\r\n }\r\n else {\r\n return;\r\n }\r\n var newDateValue = new Date(this.maskDateValue.getFullYear(), this.maskDateValue.getMonth(), this.maskDateValue.getDate(), this.maskDateValue.getHours(), this.maskDateValue.getMinutes(), this.maskDateValue.getSeconds());\r\n this.previousDate = new Date(this.maskDateValue.getFullYear(), this.maskDateValue.getMonth(), this.maskDateValue.getDate(), this.maskDateValue.getHours(), this.maskDateValue.getMinutes(), this.maskDateValue.getSeconds());\r\n var incrementValue = isDecrement ? -1 : 1;\r\n switch (formatText) {\r\n case 'd':\r\n newDateValue.setDate(newDateValue.getDate() + incrementValue);\r\n break;\r\n case 'M':\r\n var newMonth = newDateValue.getMonth() + incrementValue;\r\n newDateValue.setDate(1);\r\n newDateValue.setMonth(newMonth);\r\n if (this.isDayPart) {\r\n var previousMaxDate = new Date(this.previousDate.getFullYear(), this.previousDate.getMonth() + 1, 0).getDate();\r\n var currentMaxDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth() + 1, 0).getDate();\r\n if (this.previousDate.getDate() == previousMaxDate && currentMaxDate <= previousMaxDate) {\r\n newDateValue.setDate(currentMaxDate);\r\n }\r\n else {\r\n newDateValue.setDate(this.previousDate.getDate());\r\n }\r\n }\r\n else {\r\n newDateValue.setDate(this.previousDate.getDate());\r\n }\r\n this.previousDate = new Date(newDateValue.getFullYear(), newDateValue.getMonth(), newDateValue.getDate());\r\n break;\r\n case 'y':\r\n newDateValue.setFullYear(newDateValue.getFullYear() + incrementValue);\r\n break;\r\n case 'H':\r\n case 'h':\r\n newDateValue.setHours(newDateValue.getHours() + incrementValue);\r\n break;\r\n case 'm':\r\n newDateValue.setMinutes(newDateValue.getMinutes() + incrementValue);\r\n break;\r\n case 's':\r\n newDateValue.setSeconds(newDateValue.getSeconds() + incrementValue);\r\n break;\r\n case 'a':\r\n newDateValue.setHours((newDateValue.getHours() + 12) % 24);\r\n break;\r\n default:\r\n break;\r\n }\r\n this.maskDateValue = newDateValue.getFullYear() > 0 ? newDateValue : this.maskDateValue;\r\n if (this.validCharacters.indexOf(this.hiddenMask[start]) !== -1) {\r\n this.handleDeletion(this.hiddenMask[start], true);\r\n }\r\n };\r\n MaskedDateTime.prototype.getCulturedValue = function (format) {\r\n var locale = this.parent.locale;\r\n var result;\r\n if (locale === 'en' || locale === 'en-US') {\r\n result = getValue(format, getDefaultDateObject());\r\n }\r\n else {\r\n result = getValue('main.' + '' + locale + ('.dates.calendars.gregorian.' + format), cldrData);\r\n }\r\n return result;\r\n };\r\n MaskedDateTime.prototype.getCulturedFormat = function () {\r\n var formatString = (this.getCulturedValue('dateTimeFormats[availableFormats].yMd')).toString();\r\n if (this.parent.moduleName == 'datepicker') {\r\n formatString = (this.getCulturedValue('dateTimeFormats[availableFormats].yMd')).toString();\r\n if (this.parent.format && this.parent.formatString) {\r\n formatString = this.parent.formatString;\r\n }\r\n }\r\n if (this.parent.moduleName == 'datetimepicker') {\r\n formatString = (this.getCulturedValue('dateTimeFormats[availableFormats].yMd')).toString();\r\n if (this.parent.dateTimeFormat) {\r\n formatString = this.parent.dateTimeFormat;\r\n }\r\n }\r\n if (this.parent.moduleName == 'timepicker') {\r\n formatString = this.parent.cldrTimeFormat();\r\n }\r\n return formatString;\r\n };\r\n MaskedDateTime.prototype.clearHandler = function () {\r\n this.isDayPart = this.isMonthPart = this.isYearPart = this.isHourPart = this.isMinutePart = this.isSecondsPart = false;\r\n this.updateValue();\r\n };\r\n MaskedDateTime.prototype.updateValue = function () {\r\n this.monthCharacter = this.periodCharacter = '';\r\n var inputValue = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = true;\r\n this.hiddenMask = this.dateformat.replace(this.formatRegex, this.formatCheck());\r\n this.isHiddenMask = false;\r\n this.previousHiddenMask = this.hiddenMask;\r\n this.previousValue = inputValue;\r\n this.parent.updateInputValue(inputValue);\r\n //this.parent.inputElement.value = inputValue;\r\n };\r\n MaskedDateTime.prototype.destroy = function () {\r\n this.removeEventListener();\r\n };\r\n return MaskedDateTime;\r\n}());\r\nexport { MaskedDateTime };\r\n","/**\n * TimePicker modules\n */\nexport * from './timepicker';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { EventHandler, Property, Internationalization, NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, Animation, Browser } from '@syncfusion/ej2-base';\r\nimport { cldrData, L10n, Component, getDefaultDateObject, rippleEffect, Event } from '@syncfusion/ej2-base';\r\nimport { remove, addClass, detach, removeClass, closest, append, attributes, setStyleAttribute } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, formatUnit, getValue, extend, getUniqueID, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nvar WRAPPERCLASS = 'e-time-wrapper';\r\nvar POPUP = 'e-popup';\r\nvar ERROR = 'e-error';\r\nvar POPUPDIMENSION = '240px';\r\nvar DAY = new Date().getDate();\r\nvar MONTH = new Date().getMonth();\r\nvar YEAR = new Date().getFullYear();\r\nvar ROOT = 'e-timepicker';\r\nvar LIBRARY = 'e-lib';\r\nvar CONTROL = 'e-control';\r\nvar CONTENT = 'e-content';\r\nvar SELECTED = 'e-active';\r\nvar HOVER = 'e-hover';\r\nvar NAVIGATION = 'e-navigation';\r\nvar DISABLED = 'e-disabled';\r\nvar ICONANIMATION = 'e-icon-anim';\r\nvar TIMEICON = 'e-time-icon';\r\nvar CLEARICON = 'e-clear-icon';\r\nvar FOCUS = 'e-input-focus';\r\nvar LISTCLASS = 'e-list-item';\r\nvar HALFPOSITION = 2;\r\nvar ANIMATIONDURATION = 50;\r\nvar OVERFLOW = 'e-time-overflow';\r\nvar OFFSETVAL = 4;\r\nvar EDITABLE = 'e-non-edit';\r\nvar wrapperAttributes = ['title', 'class', 'style'];\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport var TimePickerBase;\r\n(function (TimePickerBase) {\r\n // eslint-disable-next-line max-len, jsdoc/require-jsdoc\r\n function createListItems(createdEl, min, max, globalize, timeFormat, step) {\r\n var formatOptions;\r\n if (this.calendarMode === 'Gregorian') {\r\n formatOptions = { format: timeFormat, type: 'time' };\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n formatOptions = { format: timeFormat, type: 'time', calendar: 'islamic' };\r\n }\r\n var start;\r\n var interval = step * 60000;\r\n var listItems = [];\r\n var timeCollections = [];\r\n start = +(min.setMilliseconds(0));\r\n var end = +(max.setMilliseconds(0));\r\n while (end >= start) {\r\n timeCollections.push(start);\r\n listItems.push(globalize.formatDate(new Date(start), { format: timeFormat, type: 'time' }));\r\n start += interval;\r\n }\r\n var listTag = ListBase.createList(createdEl, listItems, null, true);\r\n return { collection: timeCollections, list: listTag };\r\n }\r\n TimePickerBase.createListItems = createListItems;\r\n})(TimePickerBase || (TimePickerBase = {}));\r\nvar TimeMaskPlaceholder = /** @class */ (function (_super) {\r\n __extends(TimeMaskPlaceholder, _super);\r\n function TimeMaskPlaceholder() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('day')\r\n ], TimeMaskPlaceholder.prototype, \"day\", void 0);\r\n __decorate([\r\n Property('month')\r\n ], TimeMaskPlaceholder.prototype, \"month\", void 0);\r\n __decorate([\r\n Property('year')\r\n ], TimeMaskPlaceholder.prototype, \"year\", void 0);\r\n __decorate([\r\n Property('day of the week')\r\n ], TimeMaskPlaceholder.prototype, \"dayOfTheWeek\", void 0);\r\n __decorate([\r\n Property('hour')\r\n ], TimeMaskPlaceholder.prototype, \"hour\", void 0);\r\n __decorate([\r\n Property('minute')\r\n ], TimeMaskPlaceholder.prototype, \"minute\", void 0);\r\n __decorate([\r\n Property('second')\r\n ], TimeMaskPlaceholder.prototype, \"second\", void 0);\r\n return TimeMaskPlaceholder;\r\n}(ChildProperty));\r\nexport { TimeMaskPlaceholder };\r\n/**\r\n * TimePicker is an intuitive interface component which provides an options to select a time value\r\n * from popup list or to set a desired time value.\r\n * ```\r\n * \r\n * \r\n * ```\r\n */\r\nvar TimePicker = /** @class */ (function (_super) {\r\n __extends(TimePicker, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {TimePickerModel} options - Specifies the TimePicker model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function TimePicker(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.liCollections = [];\r\n _this.timeCollections = [];\r\n _this.disableItemCollection = [];\r\n _this.invalidValueString = null;\r\n _this.isAngular = false;\r\n _this.preventChange = false;\r\n _this.maskedDateValue = '';\r\n _this.moduleName = _this.getModuleName();\r\n _this.timeOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n TimePicker.prototype.preRender = function () {\r\n this.keyConfigure = {\r\n enter: 'enter',\r\n escape: 'escape',\r\n end: 'end',\r\n tab: 'tab',\r\n home: 'home',\r\n down: 'downarrow',\r\n up: 'uparrow',\r\n left: 'leftarrow',\r\n right: 'rightarrow',\r\n open: 'alt+downarrow',\r\n close: 'alt+uparrow'\r\n };\r\n this.cloneElement = this.element.cloneNode(true);\r\n removeClass([this.cloneElement], [ROOT, CONTROL, LIBRARY]);\r\n this.inputElement = this.element;\r\n this.angularTag = null;\r\n this.formElement = closest(this.element, 'form');\r\n if (this.element.tagName === 'EJS-TIMEPICKER') {\r\n this.angularTag = this.element.tagName;\r\n this.inputElement = this.createElement('input');\r\n this.element.appendChild(this.inputElement);\r\n }\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.removeAttribute('tabindex');\r\n this.openPopupEventArgs = {\r\n appendTo: document.body\r\n };\r\n };\r\n // element creation\r\n TimePicker.prototype.render = function () {\r\n this.initialize();\r\n this.createInputElement();\r\n this.updateHtmlAttributeToWrapper();\r\n this.setTimeAllowEdit();\r\n this.setEnable();\r\n this.validateInterval();\r\n this.bindEvents();\r\n this.validateDisable();\r\n this.setValue(this.getFormattedValue(this.value));\r\n if (this.enableMask && !this.value && this.maskedDateValue && (this.floatLabelType == 'Always' || !this.floatLabelType || !this.placeholder)) {\r\n this.updateInputValue(this.maskedDateValue);\r\n this.checkErrorState(this.maskedDateValue);\r\n }\r\n this.anchor = this.inputElement;\r\n this.inputElement.setAttribute('value', this.inputElement.value);\r\n this.inputEleValue = this.getDateObject(this.inputElement.value);\r\n this.renderComplete();\r\n };\r\n TimePicker.prototype.setTimeAllowEdit = function () {\r\n if (this.allowEdit) {\r\n if (!this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n }\r\n else {\r\n attributes(this.inputElement, { 'readonly': '' });\r\n }\r\n this.clearIconState();\r\n };\r\n TimePicker.prototype.clearIconState = function () {\r\n if (!this.allowEdit && this.inputWrapper && !this.readonly) {\r\n if (this.inputElement.value === '') {\r\n removeClass([this.inputWrapper.container], [EDITABLE]);\r\n }\r\n else {\r\n addClass([this.inputWrapper.container], [EDITABLE]);\r\n }\r\n }\r\n else if (this.inputWrapper) {\r\n removeClass([this.inputWrapper.container], [EDITABLE]);\r\n }\r\n };\r\n TimePicker.prototype.validateDisable = function () {\r\n this.setMinMax(this.initMin, this.initMax);\r\n this.popupCreation();\r\n this.popupObj.destroy();\r\n this.popupWrapper = this.popupObj = null;\r\n if ((!isNaN(+this.value) && this.value !== null)) {\r\n if (!this.valueIsDisable(this.value)) {\r\n //disable value given in value property so reset the date based on current date\r\n if (this.strictMode) {\r\n this.resetState();\r\n }\r\n this.initValue = null;\r\n this.initMax = this.getDateObject(this.initMax);\r\n this.initMin = this.getDateObject(this.initMin);\r\n this.timeCollections = this.liCollections = [];\r\n this.setMinMax(this.initMin, this.initMax);\r\n }\r\n }\r\n };\r\n TimePicker.prototype.validationAttribute = function (target, input) {\r\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\r\n input.setAttribute('name', name);\r\n target.removeAttribute('name');\r\n var attributes = ['required', 'aria-required', 'form'];\r\n for (var i = 0; i < attributes.length; i++) {\r\n if (isNullOrUndefined(target.getAttribute(attributes[i]))) {\r\n continue;\r\n }\r\n var attr = target.getAttribute(attributes[i]);\r\n input.setAttribute(attributes[i], attr);\r\n target.removeAttribute(attributes[i]);\r\n }\r\n };\r\n TimePicker.prototype.initialize = function () {\r\n this.globalize = new Internationalization(this.locale);\r\n this.defaultCulture = new Internationalization('en');\r\n this.checkTimeFormat();\r\n this.checkInvalidValue(this.value);\r\n // persist the value property.\r\n this.setProperties({ value: this.checkDateValue(new Date(this.checkInValue(this.value))) }, true);\r\n this.setProperties({ min: this.checkDateValue(new Date(this.checkInValue(this.min))) }, true);\r\n this.setProperties({ max: this.checkDateValue(new Date(this.checkInValue(this.max))) }, true);\r\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(this.scrollTo))) }, true);\r\n if (this.angularTag !== null) {\r\n this.validationAttribute(this.element, this.inputElement);\r\n }\r\n this.updateHtmlAttributeToElement();\r\n this.checkAttributes(false); //check the input element attributes\r\n var localeText = { placeholder: this.placeholder };\r\n this.l10n = new L10n('timepicker', localeText, this.locale);\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n this.initValue = this.checkDateValue(this.value);\r\n this.initMin = this.checkDateValue(this.min);\r\n this.initMax = this.checkDateValue(this.max);\r\n this.isNavigate = this.isPreventBlur = this.isTextSelected = false;\r\n this.activeIndex = this.valueWithMinutes = this.prevDate = null;\r\n if (!isNullOrUndefined(this.element.getAttribute('id'))) {\r\n if (this.angularTag !== null) {\r\n this.inputElement.id = this.element.getAttribute('id') + '_input';\r\n }\r\n }\r\n else {\r\n //for angular case\r\n this.element.id = getUniqueID('ej2_timepicker');\r\n if (this.angularTag !== null) {\r\n attributes(this.inputElement, { 'id': this.element.id + '_input' });\r\n }\r\n }\r\n if (isNullOrUndefined(this.inputElement.getAttribute('name'))) {\r\n attributes(this.inputElement, { 'name': this.element.id });\r\n }\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n };\r\n TimePicker.prototype.checkTimeFormat = function () {\r\n if (this.format) {\r\n if (typeof this.format === 'string') {\r\n this.formatString = this.format;\r\n }\r\n else if (!isNullOrUndefined(this.format.skeleton) && this.format.skeleton !== '') {\r\n var skeletonString = this.format.skeleton;\r\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: skeletonString });\r\n }\r\n else {\r\n this.formatString = this.globalize.getDatePattern({ type: 'time', skeleton: 'short' });\r\n }\r\n }\r\n else {\r\n this.formatString = null;\r\n }\r\n };\r\n TimePicker.prototype.checkDateValue = function (value) {\r\n return (!isNullOrUndefined(value) && value instanceof Date && !isNaN(+value)) ? value : null;\r\n };\r\n TimePicker.prototype.createInputElement = function () {\r\n var updatedCssClassesValue = this.cssClass;\r\n var isBindClearAction = this.enableMask ? false : true;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassesValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n this.inputWrapper = Input.createInput({\r\n element: this.inputElement,\r\n bindClearAction: isBindClearAction,\r\n floatLabelType: this.floatLabelType,\r\n properties: {\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n cssClass: updatedCssClassesValue,\r\n enabled: this.enabled,\r\n enableRtl: this.enableRtl,\r\n showClearButton: this.showClearButton\r\n },\r\n buttons: [' e-input-group-icon e-time-icon e-icons']\r\n }, this.createElement);\r\n this.inputWrapper.container.style.width = this.setWidth(this.width);\r\n attributes(this.inputElement, {\r\n 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',\r\n 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'false', 'aria-invalid': 'false'\r\n });\r\n if (!this.isNullOrEmpty(this.inputStyle)) {\r\n Input.addAttributes({ 'style': this.inputStyle }, this.inputElement);\r\n }\r\n addClass([this.inputWrapper.container], WRAPPERCLASS);\r\n };\r\n TimePicker.prototype.getCldrDateTimeFormat = function () {\r\n var culture = new Internationalization(this.locale);\r\n var cldrTime;\r\n var dateFormat = culture.getDatePattern({ skeleton: 'yMd' });\r\n if (this.isNullOrEmpty(this.formatString)) {\r\n cldrTime = dateFormat + ' ' + this.cldrFormat('time');\r\n }\r\n else {\r\n cldrTime = this.formatString;\r\n }\r\n return cldrTime;\r\n };\r\n TimePicker.prototype.checkInvalidValue = function (value) {\r\n var isInvalid = false;\r\n if (typeof value !== 'object' && !isNullOrUndefined(value)) {\r\n var valueString = value;\r\n if (typeof valueString === 'string') {\r\n valueString = valueString.trim();\r\n }\r\n var valueExpression = null;\r\n var valueExp = null;\r\n if (typeof value === 'number') {\r\n valueString = value.toString();\r\n }\r\n else if (typeof value === 'string') {\r\n if (!(/^[a-zA-Z0-9- ]*$/).test(value)) {\r\n valueExpression = this.setCurrentDate(this.getDateObject(value));\r\n if (isNullOrUndefined(valueExpression)) {\r\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\r\n format: this.getCldrDateTimeFormat(), type: 'datetime'\r\n }));\r\n if (isNullOrUndefined(valueExpression)) {\r\n valueExpression = this.checkDateValue(this.globalize.parseDate(valueString, {\r\n format: this.formatString, type: 'dateTime', skeleton: 'yMd'\r\n }));\r\n }\r\n }\r\n }\r\n }\r\n valueExp = this.globalize.parseDate(valueString, {\r\n format: this.getCldrDateTimeFormat(), type: 'datetime'\r\n });\r\n valueExpression = (!isNullOrUndefined(valueExp) && valueExp instanceof Date && !isNaN(+valueExp)) ? valueExp : null;\r\n if (isNullOrUndefined(valueExpression) && valueString.replace(/\\s/g, '').length) {\r\n var extISOString = null;\r\n var basicISOString = null;\r\n // eslint-disable-next-line\r\n extISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n // eslint-disable-next-line\r\n basicISOString = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/;\r\n if ((!extISOString.test(valueString) && !basicISOString.test(valueString))\r\n || ((/^[a-zA-Z0-9- ]*$/).test(value)) || isNaN(+new Date('' + valueString))) {\r\n isInvalid = true;\r\n }\r\n else {\r\n valueExpression = new Date('' + valueString);\r\n }\r\n }\r\n if (isInvalid) {\r\n if (!this.strictMode) {\r\n this.invalidValueString = valueString;\r\n }\r\n this.setProperties({ value: null }, true);\r\n this.initValue = null;\r\n }\r\n else {\r\n this.setProperties({ value: valueExpression }, true);\r\n this.initValue = this.value;\r\n }\r\n }\r\n };\r\n TimePicker.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this.enableMask) {\r\n modules.push({ args: [this], member: 'MaskedDateTime' });\r\n }\r\n return modules;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TimePicker.prototype.cldrFormat = function (type) {\r\n var cldrDateTimeString;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrDateTimeString = (getValue('timeFormats.short', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrDateTimeString = (this.getCultureTimeObject(cldrData, '' + this.locale));\r\n }\r\n return cldrDateTimeString;\r\n };\r\n // destroy function\r\n TimePicker.prototype.destroy = function () {\r\n this.hide();\r\n this.unBindEvents();\r\n var ariaAttribute = {\r\n 'aria-haspopup': 'true', 'aria-autocomplete': 'list', 'tabindex': '0', 'aria-activedescendant': 'null',\r\n 'aria-owns': this.element.id + '_options', 'aria-expanded': 'false', 'role': 'combobox', 'autocomplete': 'off',\r\n 'autocorrect': 'off', 'autocapitalize': 'off', 'spellcheck': 'false', 'aria-disabled': 'true', 'aria-invalid': 'false'\r\n };\r\n if (this.inputElement) {\r\n Input.removeAttributes(ariaAttribute, this.inputElement);\r\n if (this.angularTag === null) {\r\n this.inputWrapper.container.parentElement.appendChild(this.inputElement);\r\n }\r\n if (!isNullOrUndefined(this.cloneElement.getAttribute('tabindex'))) {\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.inputElement.removeAttribute('tabindex');\r\n }\r\n this.ensureInputAttribute();\r\n this.enableElement([this.inputElement]);\r\n this.inputElement.classList.remove('e-input');\r\n if (isNullOrUndefined(this.cloneElement.getAttribute('disabled'))) {\r\n Input.setEnabled(true, this.inputElement, this.floatLabelType);\r\n }\r\n }\r\n if (this.inputWrapper.container) {\r\n detach(this.inputWrapper.container);\r\n }\r\n this.inputWrapper = this.popupWrapper = this.cloneElement = undefined;\r\n this.liCollections = this.timeCollections = this.disableItemCollection = [];\r\n if (!isNullOrUndefined(this.rippleFn)) {\r\n this.rippleFn();\r\n }\r\n _super.prototype.destroy.call(this);\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n };\r\n TimePicker.prototype.ensureInputAttribute = function () {\r\n var propertyList = [];\r\n for (var i = 0; i < this.inputElement.attributes.length; i++) {\r\n propertyList[i] = this.inputElement.attributes[i].name;\r\n }\r\n for (var i = 0; i < propertyList.length; i++) {\r\n if (!isNullOrUndefined(this.cloneElement.getAttribute(propertyList[i]))) {\r\n this.inputElement.setAttribute(propertyList[i], this.cloneElement.getAttribute(propertyList[i]));\r\n if (propertyList[i].toLowerCase() === 'value') {\r\n this.inputElement.value = this.cloneElement.getAttribute(propertyList[i]);\r\n }\r\n }\r\n else {\r\n this.inputElement.removeAttribute(propertyList[i]);\r\n if (propertyList[i].toLowerCase() === 'value') {\r\n this.inputElement.value = '';\r\n }\r\n }\r\n }\r\n };\r\n //popup creation\r\n TimePicker.prototype.popupCreation = function () {\r\n this.popupWrapper = this.createElement('div', {\r\n className: ROOT + ' ' + POPUP,\r\n attrs: { 'id': this.element.id + '_popup', 'style': 'visibility:hidden' }\r\n });\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n this.popupWrapper.className += ' ' + this.cssClass;\r\n }\r\n if (!isNullOrUndefined(this.step) && this.step > 0) {\r\n this.generateList();\r\n append([this.listWrapper], this.popupWrapper);\r\n }\r\n this.openPopupEventArgs.appendTo.appendChild(this.popupWrapper);\r\n this.addSelection();\r\n this.renderPopup();\r\n detach(this.popupWrapper);\r\n };\r\n TimePicker.prototype.getPopupHeight = function () {\r\n var height = parseInt(POPUPDIMENSION, 10);\r\n var popupHeight = this.popupWrapper.getBoundingClientRect().height;\r\n return popupHeight > height ? height : popupHeight;\r\n };\r\n TimePicker.prototype.generateList = function () {\r\n this.createListItems();\r\n this.wireListEvents();\r\n var rippleModel = { duration: 300, selector: '.' + LISTCLASS };\r\n this.rippleFn = rippleEffect(this.listWrapper, rippleModel);\r\n this.liCollections = this.listWrapper.querySelectorAll('.' + LISTCLASS);\r\n };\r\n TimePicker.prototype.renderPopup = function () {\r\n var _this = this;\r\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\r\n this.popupObj = new Popup(this.popupWrapper, {\r\n width: this.setPopupWidth(this.width),\r\n zIndex: this.zIndex,\r\n targetType: 'relative',\r\n position: Browser.isDevice ? { X: 'center', Y: 'center' } : { X: 'left', Y: 'bottom' },\r\n collision: Browser.isDevice ? { X: 'fit', Y: 'fit' } : { X: 'flip', Y: 'flip' },\r\n enableRtl: this.enableRtl,\r\n relateTo: Browser.isDevice ? document.body : this.inputWrapper.container,\r\n offsetY: OFFSETVAL,\r\n open: function () {\r\n _this.popupWrapper.style.visibility = 'visible';\r\n addClass([_this.inputWrapper.buttons[0]], SELECTED);\r\n }, close: function () {\r\n removeClass([_this.inputWrapper.buttons[0]], SELECTED);\r\n _this.unWireListEvents();\r\n _this.inputElement.setAttribute('aria-activedescendant', 'null');\r\n remove(_this.popupObj.element);\r\n _this.popupObj.destroy();\r\n _this.popupWrapper.innerHTML = '';\r\n _this.listWrapper = _this.popupWrapper = _this.listTag = undefined;\r\n }, targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hide();\r\n }\r\n }\r\n });\r\n if (!Browser.isDevice) {\r\n this.popupObj.collision = { X: 'none', Y: 'flip' };\r\n }\r\n this.popupObj.element.style.maxHeight = POPUPDIMENSION;\r\n };\r\n //util function\r\n TimePicker.prototype.getFormattedValue = function (value) {\r\n if (isNullOrUndefined(this.checkDateValue(value))) {\r\n return null;\r\n }\r\n else {\r\n return this.globalize.formatDate(value, { skeleton: 'medium', type: 'time' });\r\n }\r\n };\r\n TimePicker.prototype.getDateObject = function (text) {\r\n if (!this.isNullOrEmpty(text)) {\r\n var dateValue = this.createDateObj(text);\r\n var value = !this.isNullOrEmpty(this.initValue);\r\n if (this.checkDateValue(dateValue)) {\r\n var date = value ? this.initValue.getDate() : DAY;\r\n var month = value ? this.initValue.getMonth() : MONTH;\r\n var year = value ? this.initValue.getFullYear() : YEAR;\r\n return new Date(year, month, date, dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds());\r\n }\r\n }\r\n return null;\r\n };\r\n TimePicker.prototype.updateHtmlAttributeToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttributes.indexOf(key) > -1) {\r\n if (key === 'class') {\r\n var updatedClassesValue = (this.htmlAttributes[key].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassesValue !== '') {\r\n addClass([this.inputWrapper.container], updatedClassesValue.split(' '));\r\n }\r\n }\r\n else if (key === 'style') {\r\n var timeStyle = this.inputWrapper.container.getAttribute(key);\r\n timeStyle = !isNullOrUndefined(timeStyle) ? (timeStyle + this.htmlAttributes[key]) :\r\n this.htmlAttributes[key];\r\n this.inputWrapper.container.setAttribute(key, timeStyle);\r\n }\r\n else {\r\n this.inputWrapper.container.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.updateHtmlAttributeToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttributes.indexOf(key) < 0) {\r\n this.inputElement.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.updateCssClass = function (cssClassNew, cssClassOld) {\r\n if (!isNullOrUndefined(cssClassOld)) {\r\n cssClassOld = (cssClassOld.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(cssClassNew)) {\r\n cssClassNew = (cssClassNew.replace(/\\s+/g, ' ')).trim();\r\n }\r\n Input.setCssClass(cssClassNew, [this.inputWrapper.container], cssClassOld);\r\n if (this.popupWrapper) {\r\n Input.setCssClass(cssClassNew, [this.popupWrapper], cssClassOld);\r\n }\r\n };\r\n TimePicker.prototype.removeErrorClass = function () {\r\n removeClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'false' });\r\n };\r\n TimePicker.prototype.checkErrorState = function (val) {\r\n var value = this.getDateObject(val);\r\n if ((this.validateState(value) && !this.invalidValueString) || (this.enableMask && this.inputElement.value === this.maskedDateValue)) {\r\n this.removeErrorClass();\r\n }\r\n else {\r\n addClass([this.inputWrapper.container], ERROR);\r\n attributes(this.inputElement, { 'aria-invalid': 'true' });\r\n }\r\n };\r\n TimePicker.prototype.validateInterval = function () {\r\n if (!isNullOrUndefined(this.step) && this.step > 0) {\r\n this.enableElement([this.inputWrapper.buttons[0]]);\r\n }\r\n else {\r\n this.disableTimeIcon();\r\n }\r\n };\r\n TimePicker.prototype.disableTimeIcon = function () {\r\n this.disableElement([this.inputWrapper.buttons[0]]);\r\n this.hide();\r\n };\r\n TimePicker.prototype.disableElement = function (element) {\r\n addClass(element, DISABLED);\r\n };\r\n TimePicker.prototype.enableElement = function (element) {\r\n removeClass(element, DISABLED);\r\n };\r\n TimePicker.prototype.selectInputText = function () {\r\n this.inputElement.setSelectionRange(0, (this.inputElement).value.length);\r\n };\r\n TimePicker.prototype.setCursorToEnd = function () {\r\n this.inputElement.setSelectionRange((this.inputElement).value.length, (this.inputElement).value.length);\r\n };\r\n TimePicker.prototype.getMeridianText = function () {\r\n var meridian;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n meridian = getValue('dayPeriods.format.wide', getDefaultDateObject());\r\n }\r\n else {\r\n var gregorianFormat = '.dates.calendars.gregorian.dayPeriods.format.abbreviated';\r\n var mainVal = 'main.';\r\n meridian = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\r\n }\r\n return meridian;\r\n };\r\n TimePicker.prototype.getCursorSelection = function () {\r\n var input = (this.inputElement);\r\n var start = 0;\r\n var end = 0;\r\n if (!isNaN(input.selectionStart)) {\r\n start = input.selectionStart;\r\n end = input.selectionEnd;\r\n }\r\n return { start: Math.abs(start), end: Math.abs(end) };\r\n };\r\n TimePicker.prototype.getActiveElement = function () {\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n return this.popupWrapper.querySelectorAll('.' + SELECTED);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n TimePicker.prototype.isNullOrEmpty = function (value) {\r\n if (isNullOrUndefined(value) || (typeof value === 'string' && value.trim() === '')) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n TimePicker.prototype.setWidth = function (width) {\r\n if (typeof width === 'number') {\r\n width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n width = (width.match(/px|%|em/)) ? width : formatUnit(width);\r\n }\r\n else {\r\n width = '100%';\r\n }\r\n return width;\r\n };\r\n TimePicker.prototype.setPopupWidth = function (width) {\r\n width = this.setWidth(width);\r\n if (width.indexOf('%') > -1) {\r\n var inputWidth = this.containerStyle.width * parseFloat(width) / 100;\r\n width = inputWidth.toString() + 'px';\r\n }\r\n return width;\r\n };\r\n TimePicker.prototype.setScrollPosition = function () {\r\n var element = this.selectedElement;\r\n if (!isNullOrUndefined(element)) {\r\n this.findScrollTop(element);\r\n }\r\n else if (this.popupWrapper && this.checkDateValue(this.scrollTo)) {\r\n this.setScrollTo();\r\n }\r\n };\r\n TimePicker.prototype.findScrollTop = function (element) {\r\n var listHeight = this.getPopupHeight();\r\n var nextEle = element.nextElementSibling;\r\n var height = nextEle ? nextEle.offsetTop : element.offsetTop;\r\n var liHeight = element.getBoundingClientRect().height;\r\n if ((height + element.offsetTop) > listHeight) {\r\n this.popupWrapper.scrollTop = nextEle ? (height - (listHeight / HALFPOSITION + liHeight / HALFPOSITION)) : height;\r\n }\r\n else {\r\n this.popupWrapper.scrollTop = 0;\r\n }\r\n };\r\n TimePicker.prototype.setScrollTo = function () {\r\n var element;\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\r\n if (items.length) {\r\n var initialTime = this.timeCollections[0];\r\n var scrollTime = this.getDateObject(this.checkDateValue(this.scrollTo)).getTime();\r\n element = items[Math.round((scrollTime - initialTime) / (this.step * 60000))];\r\n }\r\n }\r\n else {\r\n this.popupWrapper.scrollTop = 0;\r\n }\r\n if (!isNullOrUndefined(element)) {\r\n this.findScrollTop(element);\r\n }\r\n else {\r\n this.popupWrapper.scrollTop = 0;\r\n }\r\n };\r\n TimePicker.prototype.getText = function () {\r\n return (isNullOrUndefined(this.checkDateValue(this.value))) ? '' : this.getValue(this.value);\r\n };\r\n TimePicker.prototype.getValue = function (value) {\r\n return (isNullOrUndefined(this.checkDateValue(value))) ? null : this.globalize.formatDate(value, {\r\n format: this.cldrTimeFormat(), type: 'time'\r\n });\r\n };\r\n TimePicker.prototype.cldrDateFormat = function () {\r\n var cldrDate;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrDate = (getValue('dateFormats.short', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrDate = (this.getCultureDateObject(cldrData, '' + this.locale));\r\n }\r\n return cldrDate;\r\n };\r\n TimePicker.prototype.cldrTimeFormat = function () {\r\n var cldrTime;\r\n if (this.isNullOrEmpty(this.formatString)) {\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrTime = (getValue('timeFormats.short', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrTime = (this.getCultureTimeObject(cldrData, '' + this.locale));\r\n }\r\n }\r\n else {\r\n cldrTime = this.formatString;\r\n }\r\n return cldrTime;\r\n };\r\n TimePicker.prototype.dateToNumeric = function () {\r\n var cldrTime;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n cldrTime = (getValue('timeFormats.medium', getDefaultDateObject()));\r\n }\r\n else {\r\n cldrTime = (getValue('main.' + '' + this.locale + '.dates.calendars.gregorian.timeFormats.medium', cldrData));\r\n }\r\n return cldrTime;\r\n };\r\n TimePicker.prototype.getExactDateTime = function (value) {\r\n if (isNullOrUndefined(this.checkDateValue(value))) {\r\n return null;\r\n }\r\n else {\r\n return this.globalize.formatDate(value, { format: this.dateToNumeric(), type: 'time' });\r\n }\r\n };\r\n TimePicker.prototype.setValue = function (value) {\r\n var time = this.checkValue(value);\r\n if (!this.strictMode && !this.validateState(time)) {\r\n if (this.checkDateValue(this.valueWithMinutes) === null) {\r\n this.initValue = this.valueWithMinutes = null;\r\n }\r\n this.validateMinMax(this.value, this.min, this.max);\r\n }\r\n else {\r\n if (this.isNullOrEmpty(time)) {\r\n this.initValue = null;\r\n this.validateMinMax(this.value, this.min, this.max);\r\n }\r\n else {\r\n this.initValue = this.compareFormatChange(time);\r\n }\r\n }\r\n this.updateInput(true, this.initValue);\r\n };\r\n TimePicker.prototype.compareFormatChange = function (value) {\r\n if (isNullOrUndefined(value)) {\r\n return null;\r\n }\r\n return (value !== this.getText()) ? this.getDateObject(value) : this.getDateObject(this.value);\r\n };\r\n TimePicker.prototype.updatePlaceHolder = function () {\r\n Input.setPlaceholder(this.l10n.getConstant('placeholder'), this.inputElement);\r\n };\r\n //event related functions\r\n TimePicker.prototype.updateInputValue = function (value) {\r\n Input.setValue(value, this.inputElement, this.floatLabelType, this.showClearButton);\r\n };\r\n TimePicker.prototype.preventEventBubbling = function (e) {\r\n e.preventDefault();\r\n this.interopAdaptor.invokeMethodAsync('OnTimeIconClick');\r\n };\r\n TimePicker.prototype.popupHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (Browser.isDevice) {\r\n this.inputElement.setAttribute('readonly', '');\r\n }\r\n e.preventDefault();\r\n if (this.isPopupOpen()) {\r\n this.closePopup(0, e);\r\n }\r\n else {\r\n this.inputElement.focus();\r\n this.show(e);\r\n }\r\n };\r\n TimePicker.prototype.mouseDownHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (!this.readonly) {\r\n this.inputElement.setSelectionRange(0, 0);\r\n EventHandler.add(this.inputElement, 'mouseup', this.mouseUpHandler, this);\r\n }\r\n };\r\n TimePicker.prototype.mouseUpHandler = function (event) {\r\n if (!this.readonly) {\r\n event.preventDefault();\r\n if (this.enableMask) {\r\n event.preventDefault();\r\n this.notify(\"setMaskSelection\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n return;\r\n }\r\n else {\r\n EventHandler.remove(this.inputElement, 'mouseup', this.mouseUpHandler);\r\n var curPos = this.getCursorSelection();\r\n if (!(curPos.start === 0 && curPos.end === this.inputElement.value.length)) {\r\n if (this.inputElement.value.length > 0) {\r\n this.cursorDetails = this.focusSelection();\r\n }\r\n this.inputElement.setSelectionRange(this.cursorDetails.start, this.cursorDetails.end);\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.focusSelection = function () {\r\n var regex = new RegExp('^[a-zA-Z0-9]+$');\r\n var split = this.inputElement.value.split('');\r\n split.push(' ');\r\n var curPos = this.getCursorSelection();\r\n var start = 0;\r\n var end = 0;\r\n var isSeparator = false;\r\n if (!this.isTextSelected) {\r\n for (var i = 0; i < split.length; i++) {\r\n if (!regex.test(split[i])) {\r\n end = i;\r\n isSeparator = true;\r\n }\r\n if (isSeparator) {\r\n if (curPos.start >= start && curPos.end <= end) {\r\n // eslint-disable-next-line no-self-assign\r\n end = end;\r\n this.isTextSelected = true;\r\n break;\r\n }\r\n else {\r\n start = i + 1;\r\n isSeparator = false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n start = curPos.start;\r\n end = curPos.end;\r\n this.isTextSelected = false;\r\n }\r\n return { start: start, end: end };\r\n };\r\n TimePicker.prototype.inputHandler = function (event) {\r\n if (!this.readonly && this.enabled) {\r\n if (event.action !== 'right' && event.action !== 'left' && event.action !== 'tab') {\r\n event.preventDefault();\r\n }\r\n switch (event.action) {\r\n case 'home':\r\n case 'end':\r\n case 'up':\r\n case 'down':\r\n if (this.enableMask && !this.readonly && !this.isPopupOpen()) {\r\n event.preventDefault();\r\n this.notify(\"keyDownHandler\", {\r\n module: \"MaskedDateTime\",\r\n e: event\r\n });\r\n }\r\n if (!this.enableMask || this.isPopupOpen()) {\r\n this.keyHandler(event);\r\n }\r\n break;\r\n case 'enter':\r\n if (this.isNavigate) {\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\r\n this.updateValue(this.valueWithMinutes, event);\r\n }\r\n else {\r\n this.updateValue(this.inputElement.value, event);\r\n }\r\n this.hide();\r\n this.isNavigate = false;\r\n if (this.isPopupOpen()) {\r\n event.stopPropagation();\r\n }\r\n break;\r\n case 'open':\r\n this.show(event);\r\n break;\r\n case 'escape':\r\n this.updateInputValue(this.objToString(this.value));\r\n if (this.enableMask) {\r\n if (!this.value) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n this.createMask();\r\n }\r\n this.previousState(this.value);\r\n this.hide();\r\n break;\r\n case 'close':\r\n this.hide();\r\n break;\r\n case 'right':\r\n case 'left':\r\n case 'tab':\r\n case 'shiftTab':\r\n if (!this.isPopupOpen() && this.enableMask && !this.readonly) {\r\n if ((this.inputElement.selectionStart == 0 && this.inputElement.selectionEnd == this.inputElement.value.length) ||\r\n (this.inputElement.selectionEnd !== this.inputElement.value.length && event.action == 'tab') ||\r\n (this.inputElement.selectionStart !== 0 && event.action == 'shiftTab') || (event.action == 'left' || event.action == 'right')) {\r\n event.preventDefault();\r\n }\r\n this.notify(\"keyDownHandler\", { module: \"MaskedDateTime\",\r\n e: event\r\n });\r\n }\r\n break;\r\n default:\r\n this.isNavigate = false;\r\n break;\r\n }\r\n }\r\n };\r\n TimePicker.prototype.onMouseClick = function (event) {\r\n var target = event.target;\r\n var li = this.selectedElement = closest(target, '.' + LISTCLASS);\r\n this.setSelection(li, event);\r\n if (li && li.classList.contains(LISTCLASS)) {\r\n this.hide();\r\n }\r\n };\r\n TimePicker.prototype.closePopup = function (delay, e) {\r\n var _this = this;\r\n if (this.isPopupOpen() && this.popupWrapper) {\r\n var args = {\r\n popup: this.popupObj,\r\n event: e || null,\r\n cancel: false,\r\n name: 'open'\r\n };\r\n removeClass([document.body], OVERFLOW);\r\n this.trigger('close', args, function (args) {\r\n if (!args.cancel) {\r\n var animModel = {\r\n name: 'FadeOut',\r\n duration: ANIMATIONDURATION,\r\n delay: delay ? delay : 0\r\n };\r\n _this.popupObj.hide(new Animation(animModel));\r\n removeClass([_this.inputWrapper.container], [ICONANIMATION]);\r\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\r\n EventHandler.remove(document, 'mousedown touchstart', _this.documentClickHandler);\r\n }\r\n if (Browser.isDevice && _this.modal) {\r\n _this.modal.style.display = 'none';\r\n _this.modal.outerHTML = '';\r\n _this.modal = null;\r\n }\r\n if (Browser.isDevice) {\r\n if (!isNullOrUndefined(_this.mobileTimePopupWrap)) {\r\n _this.mobileTimePopupWrap.remove();\r\n _this.mobileTimePopupWrap = null;\r\n }\r\n }\r\n if (Browser.isDevice && _this.allowEdit && !_this.readonly) {\r\n _this.inputElement.removeAttribute('readonly');\r\n }\r\n });\r\n }\r\n else {\r\n if (Browser.isDevice && this.allowEdit && !this.readonly) {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n }\r\n };\r\n TimePicker.prototype.disposeServerPopup = function () {\r\n if (this.popupWrapper) {\r\n this.popupWrapper.style.visibility = 'hidden';\r\n this.popupWrapper.style.top = '-9999px';\r\n this.popupWrapper.style.left = '-9999px';\r\n this.popupWrapper.style.width = '0px';\r\n this.popupWrapper.style.height = '0px';\r\n }\r\n };\r\n TimePicker.prototype.checkValueChange = function (event, isNavigation) {\r\n if (!this.strictMode && !this.validateState(this.valueWithMinutes)) {\r\n if (this.checkDateValue(this.valueWithMinutes) === null) {\r\n this.initValue = this.valueWithMinutes = null;\r\n }\r\n this.setProperties({ value: this.compareFormatChange(this.inputElement.value) }, true);\r\n this.initValue = this.valueWithMinutes = this.compareFormatChange(this.inputElement.value);\r\n this.prevValue = this.inputElement.value;\r\n if (+this.prevDate !== +this.value) {\r\n this.changeEvent(event);\r\n }\r\n }\r\n else {\r\n if (!isNavigation) {\r\n if ((this.prevValue !== this.inputElement.value) || isNullOrUndefined(this.checkDateValue(this.value))) {\r\n this.valueProcess(event, this.compareFormatChange(this.inputElement.value));\r\n }\r\n }\r\n else {\r\n var value = this.getDateObject(new Date(this.timeCollections[this.activeIndex]));\r\n if (+this.prevDate !== +value) {\r\n this.valueProcess(event, value);\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.onMouseOver = function (event) {\r\n var currentLi = closest(event.target, '.' + LISTCLASS);\r\n this.setHover(currentLi, HOVER);\r\n };\r\n TimePicker.prototype.setHover = function (li, className) {\r\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(className)) {\r\n this.removeHover(className);\r\n addClass([li], className);\r\n if (className === NAVIGATION) {\r\n li.setAttribute('aria-selected', 'true');\r\n }\r\n }\r\n };\r\n TimePicker.prototype.setSelection = function (li, event) {\r\n if (this.isValidLI(li)) {\r\n this.checkValue(li.getAttribute('data-value'));\r\n if (this.enableMask) {\r\n this.notify(\"setMaskSelection\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n this.selectedElement = li;\r\n this.activeIndex = Array.prototype.slice.call(this.liCollections).indexOf(li);\r\n this.valueWithMinutes = new Date(this.timeCollections[this.activeIndex]);\r\n addClass([this.selectedElement], SELECTED);\r\n this.selectedElement.setAttribute('aria-selected', 'true');\r\n this.checkValueChange(event, true);\r\n }\r\n };\r\n TimePicker.prototype.onMouseLeave = function () {\r\n this.removeHover(HOVER);\r\n };\r\n TimePicker.prototype.scrollHandler = function () {\r\n if (this.getModuleName() === 'timepicker' && Browser.isDevice) {\r\n return;\r\n }\r\n else {\r\n this.hide();\r\n }\r\n };\r\n TimePicker.prototype.setMinMax = function (minVal, maxVal) {\r\n if (isNullOrUndefined(this.checkDateValue(minVal))) {\r\n this.initMin = this.getDateObject('12:00:00 AM');\r\n }\r\n if (isNullOrUndefined(this.checkDateValue(maxVal))) {\r\n this.initMax = this.getDateObject('11:59:59 PM');\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TimePicker.prototype.validateMinMax = function (dateVal, minVal, maxVal) {\r\n var value = dateVal instanceof Date ? dateVal : this.getDateObject(dateVal);\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n dateVal = this.strictOperation(this.initMin, this.initMax, dateVal, value);\r\n }\r\n else if (+(this.createDateObj(this.getFormattedValue(this.initMin))) >\r\n +(this.createDateObj(this.getFormattedValue(this.initMax)))) {\r\n this.disableTimeIcon();\r\n }\r\n if (this.strictMode) {\r\n dateVal = this.valueIsDisable(dateVal) ? dateVal : null;\r\n }\r\n this.checkErrorState(dateVal);\r\n return dateVal;\r\n };\r\n TimePicker.prototype.valueIsDisable = function (value) {\r\n if (this.disableItemCollection.length > 0) {\r\n if (this.disableItemCollection.length === this.timeCollections.length) {\r\n return false;\r\n }\r\n var time = value instanceof Date ? this.objToString(value) : value;\r\n for (var index = 0; index < this.disableItemCollection.length; index++) {\r\n if (time === this.disableItemCollection[index]) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n TimePicker.prototype.validateState = function (val) {\r\n if (!this.strictMode) {\r\n if (this.valueIsDisable(val)) {\r\n var value = typeof val === 'string' ? this.setCurrentDate(this.getDateObject(val)) :\r\n this.setCurrentDate(this.getDateObject(val));\r\n var maxValue = this.setCurrentDate(this.getDateObject(this.initMax));\r\n var minValue = this.setCurrentDate(this.getDateObject(this.initMin));\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n if ((+(value) > +(maxValue)) || (+(value) < +(minValue))) {\r\n return false;\r\n }\r\n }\r\n else {\r\n if ((+(maxValue) < +(minValue)) || this.inputElement.value !== '') {\r\n return false;\r\n }\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n TimePicker.prototype.strictOperation = function (minimum, maximum, dateVal, val) {\r\n var maxValue = this.createDateObj(this.getFormattedValue(maximum));\r\n var minValue = this.createDateObj(this.getFormattedValue(minimum));\r\n var value = this.createDateObj(this.getFormattedValue(val));\r\n if (this.strictMode) {\r\n if (+minValue > +maxValue) {\r\n this.disableTimeIcon();\r\n this.initValue = this.getDateObject(maxValue);\r\n this.updateInputValue(this.getValue(this.initValue));\r\n if (this.enableMask) {\r\n this.createMask();\r\n }\r\n return this.inputElement.value;\r\n }\r\n else if (+minValue >= +value) {\r\n return this.getDateObject(minValue);\r\n }\r\n else if (+value >= +maxValue || +minValue === +maxValue) {\r\n return this.getDateObject(maxValue);\r\n }\r\n }\r\n else {\r\n if (+minValue > +maxValue) {\r\n this.disableTimeIcon();\r\n if (!isNaN(+this.createDateObj(dateVal))) {\r\n return dateVal;\r\n }\r\n }\r\n }\r\n return dateVal;\r\n };\r\n TimePicker.prototype.bindEvents = function () {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.popupHandler, this);\r\n EventHandler.add(this.inputElement, 'blur', this.inputBlurHandler, this);\r\n EventHandler.add(this.inputElement, 'focus', this.inputFocusHandler, this);\r\n EventHandler.add(this.inputElement, 'change', this.inputChangeHandler, this);\r\n EventHandler.add(this.inputElement, 'input', this.inputEventHandler, this);\r\n if (this.enableMask) {\r\n EventHandler.add(this.inputElement, 'keydown', this.keydownHandler, this);\r\n }\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\r\n }\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n if (!Browser.isDevice) {\r\n this.keyConfigure = extend(this.keyConfigure, this.keyConfigs);\r\n this.inputEvent = new KeyboardEvents(this.inputWrapper.container, {\r\n keyAction: this.inputHandler.bind(this),\r\n keyConfigs: this.keyConfigure,\r\n eventName: 'keydown'\r\n });\r\n if (this.showClearButton && this.inputElement) {\r\n EventHandler.add(this.inputElement, 'mousedown', this.mouseDownHandler, this);\r\n }\r\n }\r\n };\r\n TimePicker.prototype.keydownHandler = function (e) {\r\n switch (e.code) {\r\n case 'Delete':\r\n if (this.enableMask && !this.popupObj && !this.readonly) {\r\n this.notify(\"keyDownHandler\", {\r\n module: \"MaskedDateTime\",\r\n e: e\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n TimePicker.prototype.formResetHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (!this.inputElement.disabled) {\r\n var timeValue = this.inputElement.getAttribute('value');\r\n var val = this.checkDateValue(this.inputEleValue);\r\n if (this.element.tagName === 'EJS-TIMEPICKER') {\r\n val = null;\r\n timeValue = '';\r\n this.inputElement.setAttribute('value', '');\r\n }\r\n this.setProperties({ value: val }, true);\r\n this.prevDate = this.value;\r\n this.valueWithMinutes = this.value;\r\n this.initValue = this.value;\r\n if (this.inputElement) {\r\n this.updateInputValue(timeValue);\r\n if (this.enableMask) {\r\n if (!timeValue) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n this.createMask();\r\n }\r\n this.checkErrorState(timeValue);\r\n this.prevValue = this.inputElement.value;\r\n }\r\n }\r\n };\r\n TimePicker.prototype.inputChangeHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n e.stopPropagation();\r\n };\r\n TimePicker.prototype.inputEventHandler = function () {\r\n if (this.enableMask) {\r\n this.notify(\"inputHandler\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n };\r\n TimePicker.prototype.unBindEvents = function () {\r\n if (this.inputWrapper) {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown touchstart', this.popupHandler);\r\n }\r\n EventHandler.remove(this.inputElement, 'blur', this.inputBlurHandler);\r\n EventHandler.remove(this.inputElement, 'focus', this.inputFocusHandler);\r\n EventHandler.remove(this.inputElement, 'change', this.inputChangeHandler);\r\n EventHandler.remove(this.inputElement, 'input', this.inputEventHandler);\r\n if (this.inputEvent) {\r\n this.inputEvent.destroy();\r\n }\r\n EventHandler.remove(this.inputElement, 'mousedown touchstart', this.mouseDownHandler);\r\n if (this.showClearButton && !isNullOrUndefined(this.inputWrapper.clearButton)) {\r\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown touchstart', this.clearHandler);\r\n }\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n };\r\n TimePicker.prototype.bindClearEvent = function () {\r\n if (this.showClearButton && this.inputWrapper.clearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.clearHandler, this);\r\n }\r\n };\r\n TimePicker.prototype.raiseClearedEvent = function (e) {\r\n var clearedArgs = {\r\n event: e\r\n };\r\n this.trigger('cleared', clearedArgs);\r\n };\r\n TimePicker.prototype.clearHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (!isNullOrUndefined(this.value)) {\r\n this.clear(e);\r\n }\r\n else {\r\n this.resetState();\r\n this.raiseClearedEvent(e);\r\n }\r\n if (this.popupWrapper) {\r\n this.popupWrapper.scrollTop = 0;\r\n }\r\n if (this.enableMask) {\r\n this.notify(\"clearHandler\", {\r\n module: \"MaskedDateTime\"\r\n });\r\n }\r\n };\r\n TimePicker.prototype.clear = function (event) {\r\n this.setProperties({ value: null }, true);\r\n this.initValue = null;\r\n this.resetState();\r\n this.raiseClearedEvent(event);\r\n this.changeEvent(event);\r\n };\r\n TimePicker.prototype.setZIndex = function () {\r\n if (this.popupObj) {\r\n this.popupObj.zIndex = this.zIndex;\r\n this.popupObj.dataBind();\r\n }\r\n };\r\n TimePicker.prototype.checkAttributes = function (isDynamic) {\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['step', 'disabled', 'readonly', 'style', 'name', 'value', 'min', 'max', 'placeholder'];\r\n var value;\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.inputElement.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['enabled'] === undefined)) || isDynamic) {\r\n var enabled = this.inputElement.getAttribute(prop) === 'disabled' ||\r\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? false : true;\r\n this.setProperties({ enabled: enabled }, !isDynamic);\r\n }\r\n break;\r\n case 'style':\r\n this.inputStyle = this.inputElement.getAttribute(prop);\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['readonly'] === undefined)) || isDynamic) {\r\n var readonly = this.inputElement.getAttribute(prop) === 'readonly' ||\r\n this.inputElement.getAttribute(prop) === '' || this.inputElement.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ readonly: readonly }, !isDynamic);\r\n }\r\n break;\r\n case 'name':\r\n this.inputElement.setAttribute('name', this.inputElement.getAttribute(prop));\r\n break;\r\n case 'step':\r\n this.step = parseInt(this.inputElement.getAttribute(prop), 10);\r\n break;\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.inputElement.getAttribute(prop) }, !isDynamic);\r\n }\r\n break;\r\n case 'min':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['min'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n this.setProperties({ min: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'max':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['max'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n this.setProperties({ max: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.timeOptions) || (this.timeOptions['value'] === undefined)) || isDynamic) {\r\n value = new Date(this.inputElement.getAttribute(prop));\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n this.initValue = value;\r\n this.updateInput(false, this.initValue);\r\n this.setProperties({ value: value }, !isDynamic);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.setCurrentDate = function (value) {\r\n if (isNullOrUndefined(this.checkDateValue(value))) {\r\n return null;\r\n }\r\n return new Date(YEAR, MONTH, DAY, value.getHours(), value.getMinutes(), value.getSeconds());\r\n };\r\n TimePicker.prototype.getTextFormat = function () {\r\n var time = 0;\r\n if (this.cldrTimeFormat().split(' ')[0] === 'a' || this.cldrTimeFormat().indexOf('a') === 0) {\r\n time = 1;\r\n }\r\n else if (this.cldrTimeFormat().indexOf('a') < 0) {\r\n var strArray = this.cldrTimeFormat().split(' ');\r\n for (var i = 0; i < strArray.length; i++) {\r\n if (strArray[i].toLowerCase().indexOf('h') >= 0) {\r\n time = i;\r\n break;\r\n }\r\n }\r\n }\r\n return time;\r\n };\r\n TimePicker.prototype.updateValue = function (value, event) {\r\n var val;\r\n if (this.isNullOrEmpty(value)) {\r\n this.resetState();\r\n }\r\n else {\r\n val = this.checkValue(value);\r\n if (this.strictMode) {\r\n // this case set previous value to the text box when set invalid date\r\n var inputVal = (val === null && value.trim().length > 0) ?\r\n this.previousState(this.prevDate) : this.inputElement.value;\r\n this.updateInputValue(inputVal);\r\n if (this.enableMask) {\r\n if (!inputVal) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n if (isNullOrUndefined(val) && value != this.maskedDateValue) {\r\n this.createMask();\r\n }\r\n if (isNullOrUndefined(val) && value == this.maskedDateValue) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n }\r\n }\r\n }\r\n this.checkValueChange(event, typeof value === 'string' ? false : true);\r\n };\r\n TimePicker.prototype.previousState = function (date) {\r\n var value = this.getDateObject(date);\r\n for (var i = 0; i < this.timeCollections.length; i++) {\r\n if (+value === this.timeCollections[i]) {\r\n this.activeIndex = i;\r\n this.selectedElement = this.liCollections[i];\r\n this.valueWithMinutes = new Date(this.timeCollections[i]);\r\n break;\r\n }\r\n }\r\n return this.prevValue;\r\n };\r\n TimePicker.prototype.resetState = function () {\r\n this.removeSelection();\r\n Input.setValue('', this.inputElement, this.floatLabelType, false);\r\n this.valueWithMinutes = this.activeIndex = null;\r\n if (!this.strictMode) {\r\n this.checkErrorState(null);\r\n }\r\n };\r\n TimePicker.prototype.objToString = function (val) {\r\n if (isNullOrUndefined(this.checkDateValue(val))) {\r\n return null;\r\n }\r\n else {\r\n return this.globalize.formatDate(val, { format: this.cldrTimeFormat(), type: 'time' });\r\n }\r\n };\r\n TimePicker.prototype.checkValue = function (value) {\r\n if (!this.isNullOrEmpty(value)) {\r\n var date = value instanceof Date ? value : this.getDateObject(value);\r\n return this.validateValue(date, value);\r\n }\r\n this.resetState();\r\n return this.valueWithMinutes = null;\r\n };\r\n TimePicker.prototype.validateValue = function (date, value) {\r\n var time;\r\n var val = this.validateMinMax(value, this.min, this.max);\r\n var newval = this.createDateObj(val);\r\n if (this.getFormattedValue(newval) !== this.getFormattedValue(this.value)) {\r\n this.valueWithMinutes = isNullOrUndefined(newval) ? null : newval;\r\n time = this.objToString(this.valueWithMinutes);\r\n }\r\n else {\r\n if (this.strictMode) {\r\n //for strict mode case, when value not present within a range. Reset the nearest range value.\r\n date = newval;\r\n }\r\n this.valueWithMinutes = this.checkDateValue(date);\r\n time = this.objToString(this.valueWithMinutes);\r\n }\r\n if (!this.strictMode && isNullOrUndefined(time)) {\r\n var value_1 = val.trim().length > 0 ? val : '';\r\n this.updateInputValue(value_1);\r\n if (this.enableMask) {\r\n if (!value_1) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n }\r\n }\r\n else {\r\n this.updateInputValue(time);\r\n if (this.enableMask) {\r\n if (time == '') {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n if (isNullOrUndefined(time) && value != this.maskedDateValue) {\r\n this.createMask();\r\n }\r\n if (isNullOrUndefined(time) && value == this.maskedDateValue) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n }\r\n }\r\n return time;\r\n };\r\n TimePicker.prototype.createMask = function () {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n };\r\n TimePicker.prototype.findNextElement = function (event) {\r\n var textVal = (this.inputElement).value;\r\n var value = isNullOrUndefined(this.valueWithMinutes) ? this.createDateObj(textVal) :\r\n this.getDateObject(this.valueWithMinutes);\r\n var timeVal = null;\r\n var count = this.liCollections.length;\r\n var collections = this.timeCollections;\r\n if (!isNullOrUndefined(this.checkDateValue(value)) || !isNullOrUndefined(this.activeIndex)) {\r\n if (event.action === 'home') {\r\n var index = this.validLiElement(0);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n }\r\n else if (event.action === 'end') {\r\n var index = this.validLiElement(collections.length - 1, true);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n }\r\n else {\r\n if (event.action === 'down') {\r\n for (var i = 0; i < count; i++) {\r\n if (+value < this.timeCollections[i]) {\r\n var index = this.validLiElement(i);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n break;\r\n }\r\n else if (i === count - 1) {\r\n var index = this.validLiElement(0);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = count - 1; i >= 0; i--) {\r\n if (+value > this.timeCollections[i]) {\r\n var index = this.validLiElement(i, true);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n break;\r\n }\r\n else if (i === 0) {\r\n var index = this.validLiElement(count - 1);\r\n timeVal = +(this.createDateObj(new Date(this.timeCollections[index])));\r\n this.activeIndex = index;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.elementValue(isNullOrUndefined(timeVal) ? null : new Date(timeVal));\r\n }\r\n else {\r\n this.selectNextItem(event);\r\n }\r\n };\r\n TimePicker.prototype.selectNextItem = function (event) {\r\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\r\n this.activeIndex = index;\r\n this.selectedElement = this.liCollections[index];\r\n this.elementValue(new Date(this.timeCollections[index]));\r\n };\r\n TimePicker.prototype.elementValue = function (value) {\r\n if (!isNullOrUndefined(this.checkDateValue(value))) {\r\n this.checkValue(value);\r\n }\r\n };\r\n TimePicker.prototype.validLiElement = function (index, backward) {\r\n var elementIndex = null;\r\n var items = isNullOrUndefined(this.popupWrapper) ? this.liCollections :\r\n this.popupWrapper.querySelectorAll('.' + LISTCLASS);\r\n var isCheck = true;\r\n if (items.length) {\r\n if (backward) {\r\n for (var i = index; i >= 0; i--) {\r\n if (!items[i].classList.contains(DISABLED)) {\r\n elementIndex = i;\r\n break;\r\n }\r\n else if (i === 0) {\r\n if (isCheck) {\r\n index = i = items.length;\r\n isCheck = false;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = index; i <= items.length - 1; i++) {\r\n if (!items[i].classList.contains(DISABLED)) {\r\n elementIndex = i;\r\n break;\r\n }\r\n else if (i === items.length - 1) {\r\n if (isCheck) {\r\n index = i = -1;\r\n isCheck = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return elementIndex;\r\n };\r\n TimePicker.prototype.keyHandler = function (event) {\r\n if (isNullOrUndefined(this.step) || this.step <= 0 || this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\r\n return;\r\n }\r\n var count = this.timeCollections.length;\r\n if (isNullOrUndefined(this.getActiveElement()) || this.getActiveElement().length === 0) {\r\n if (this.liCollections.length > 0) {\r\n if (isNullOrUndefined(this.value) && isNullOrUndefined(this.activeIndex)) {\r\n var index = this.validLiElement(0, event.action === 'down' ? false : true);\r\n this.activeIndex = index;\r\n this.selectedElement = this.liCollections[index];\r\n this.elementValue(new Date(this.timeCollections[index]));\r\n }\r\n else {\r\n this.findNextElement(event);\r\n }\r\n }\r\n else {\r\n this.findNextElement(event);\r\n }\r\n }\r\n else {\r\n var nextItem = void 0;\r\n if ((event.keyCode >= 37) && (event.keyCode <= 40)) {\r\n var index = (event.keyCode === 40 || event.keyCode === 39) ? ++this.activeIndex : --this.activeIndex;\r\n this.activeIndex = index = this.activeIndex === (count) ? 0 : this.activeIndex;\r\n this.activeIndex = index = this.activeIndex < 0 ? (count - 1) : this.activeIndex;\r\n this.activeIndex = index = this.validLiElement(this.activeIndex, (event.keyCode === 40 || event.keyCode === 39) ?\r\n false : true);\r\n nextItem = isNullOrUndefined(this.timeCollections[index]) ? this.timeCollections[0] : this.timeCollections[index];\r\n }\r\n else if (event.action === 'home') {\r\n var index = this.validLiElement(0);\r\n this.activeIndex = index;\r\n nextItem = this.timeCollections[index];\r\n }\r\n else if (event.action === 'end') {\r\n var index = this.validLiElement(count - 1, true);\r\n this.activeIndex = index;\r\n nextItem = this.timeCollections[index];\r\n }\r\n this.selectedElement = this.liCollections[this.activeIndex];\r\n this.elementValue(new Date(nextItem));\r\n }\r\n this.isNavigate = true;\r\n this.setHover(this.selectedElement, NAVIGATION);\r\n this.setActiveDescendant();\r\n this.selectInputText();\r\n if (this.isPopupOpen() && this.selectedElement !== null && (!event || event.type !== 'click')) {\r\n this.setScrollPosition();\r\n }\r\n };\r\n TimePicker.prototype.getCultureTimeObject = function (ld, c) {\r\n return getValue('main.' + c + '.dates.calendars.gregorian.timeFormats.short', ld);\r\n };\r\n TimePicker.prototype.getCultureDateObject = function (ld, c) {\r\n return getValue('main.' + c + '.dates.calendars.gregorian.dateFormats.short', ld);\r\n };\r\n TimePicker.prototype.wireListEvents = function () {\r\n EventHandler.add(this.listWrapper, 'click', this.onMouseClick, this);\r\n if (!Browser.isDevice) {\r\n EventHandler.add(this.listWrapper, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.listWrapper, 'mouseout', this.onMouseLeave, this);\r\n }\r\n };\r\n TimePicker.prototype.unWireListEvents = function () {\r\n if (this.listWrapper) {\r\n EventHandler.remove(this.listWrapper, 'click', this.onMouseClick);\r\n if (!Browser.isDevice) {\r\n EventHandler.remove(this.listWrapper, 'mouseover', this.onMouseOver);\r\n EventHandler.remove(this.listWrapper, 'mouseout', this.onMouseLeave);\r\n }\r\n }\r\n };\r\n TimePicker.prototype.valueProcess = function (event, value) {\r\n var result = (isNullOrUndefined(this.checkDateValue(value))) ? null : value;\r\n if (+this.prevDate !== +result) {\r\n this.initValue = result;\r\n this.changeEvent(event);\r\n }\r\n };\r\n TimePicker.prototype.changeEvent = function (e) {\r\n this.addSelection();\r\n this.updateInput(true, this.initValue);\r\n var eventArgs = {\r\n event: (e || null),\r\n value: this.value,\r\n text: (this.inputElement).value,\r\n isInteracted: !isNullOrUndefined(e),\r\n element: this.element\r\n };\r\n eventArgs.value = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\r\n this.prevDate = this.valueWithMinutes || this.getDateObject(this.inputElement.value);\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', eventArgs);\r\n }\r\n this.invalidValueString = null;\r\n this.checkErrorState(this.value);\r\n };\r\n TimePicker.prototype.updateInput = function (isUpdate, date) {\r\n if (isUpdate) {\r\n this.prevValue = this.getValue(date);\r\n }\r\n this.prevDate = this.valueWithMinutes = date;\r\n if ((typeof date !== 'number') || (this.value && +new Date(+this.value).setMilliseconds(0)) !== +date) {\r\n this.setProperties({ value: date }, true);\r\n if (this.enableMask) {\r\n this.createMask();\r\n }\r\n }\r\n if (!this.strictMode && isNullOrUndefined(this.value) && this.invalidValueString) {\r\n this.checkErrorState(this.invalidValueString);\r\n this.updateInputValue(this.invalidValueString);\r\n }\r\n this.clearIconState();\r\n };\r\n TimePicker.prototype.setActiveDescendant = function () {\r\n if (!isNullOrUndefined(this.selectedElement)) {\r\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedElement.getAttribute('id') });\r\n }\r\n else {\r\n attributes(this.inputElement, { 'aria-activedescendant': 'null' });\r\n }\r\n };\r\n TimePicker.prototype.removeSelection = function () {\r\n this.removeHover(HOVER);\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n var items = this.popupWrapper.querySelectorAll('.' + SELECTED);\r\n if (items.length) {\r\n removeClass(items, SELECTED);\r\n items[0].removeAttribute('aria-selected');\r\n }\r\n }\r\n };\r\n TimePicker.prototype.removeHover = function (className) {\r\n var hoveredItem = this.getHoverItem(className);\r\n if (hoveredItem && hoveredItem.length) {\r\n removeClass(hoveredItem, className);\r\n if (className === NAVIGATION) {\r\n hoveredItem[0].removeAttribute('aria-selected');\r\n }\r\n }\r\n };\r\n TimePicker.prototype.getHoverItem = function (className) {\r\n var hoveredItem;\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n hoveredItem = this.popupWrapper.querySelectorAll('.' + className);\r\n }\r\n return hoveredItem;\r\n };\r\n TimePicker.prototype.setActiveClass = function () {\r\n if (!isNullOrUndefined(this.popupWrapper)) {\r\n var items = this.popupWrapper.querySelectorAll('.' + LISTCLASS);\r\n if (items.length) {\r\n for (var i = 0; i < items.length; i++) {\r\n if ((this.timeCollections[i] === +this.getDateObject(this.valueWithMinutes))) {\r\n items[i].setAttribute('aria-selected', 'true');\r\n this.selectedElement = items[i];\r\n this.activeIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TimePicker.prototype.addSelection = function () {\r\n this.selectedElement = null;\r\n this.removeSelection();\r\n this.setActiveClass();\r\n if (!isNullOrUndefined(this.selectedElement)) {\r\n addClass([this.selectedElement], SELECTED);\r\n this.selectedElement.setAttribute('aria-selected', 'true');\r\n }\r\n };\r\n TimePicker.prototype.isValidLI = function (li) {\r\n return (li && li.classList.contains(LISTCLASS) && !li.classList.contains(DISABLED));\r\n };\r\n TimePicker.prototype.createDateObj = function (val) {\r\n var formatStr = null;\r\n var today = this.globalize.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\r\n var value = null;\r\n if (typeof val === 'string') {\r\n if (val.toUpperCase().indexOf('AM') > -1 || val.toUpperCase().indexOf('PM') > -1) {\r\n today = this.defaultCulture.formatDate(new Date(), { format: formatStr, skeleton: 'short', type: 'date' });\r\n value = isNaN(+new Date(today + ' ' + val)) ? null : new Date(new Date(today + ' ' + val).setMilliseconds(0));\r\n if (isNullOrUndefined(value)) {\r\n value = this.timeParse(today, val);\r\n }\r\n }\r\n else {\r\n value = this.timeParse(today, val);\r\n }\r\n }\r\n else if (val instanceof Date) {\r\n value = val;\r\n }\r\n return value;\r\n };\r\n TimePicker.prototype.timeParse = function (today, val) {\r\n var value;\r\n value = this.globalize.parseDate(today + ' ' + val, {\r\n format: this.cldrDateFormat() + ' ' + this.cldrTimeFormat(), type: 'datetime'\r\n });\r\n value = isNullOrUndefined(value) ? this.globalize.parseDate(today + ' ' + val, {\r\n format: this.cldrDateFormat() + ' ' + this.dateToNumeric(), type: 'datetime'\r\n }) : value;\r\n value = isNullOrUndefined(value) ? value : new Date(value.setMilliseconds(0));\r\n return value;\r\n };\r\n TimePicker.prototype.createListItems = function () {\r\n var _this = this;\r\n this.listWrapper = this.createElement('div', { className: CONTENT, attrs: { 'tabindex': '0' } });\r\n var start;\r\n var interval = this.step * 60000;\r\n var listItems = [];\r\n this.timeCollections = [];\r\n this.disableItemCollection = [];\r\n start = +(this.getDateObject(this.initMin).setMilliseconds(0));\r\n var end = +(this.getDateObject(this.initMax).setMilliseconds(0));\r\n while (end >= start) {\r\n this.timeCollections.push(start);\r\n listItems.push(this.globalize.formatDate(new Date(start), { format: this.cldrTimeFormat(), type: 'time' }));\r\n start += interval;\r\n }\r\n var listBaseOptions = {\r\n itemCreated: function (args) {\r\n var eventArgs = {\r\n element: args.item,\r\n text: args.text, value: _this.getDateObject(args.text), isDisabled: false\r\n };\r\n _this.trigger('itemRender', eventArgs, function (eventArgs) {\r\n if (eventArgs.isDisabled) {\r\n eventArgs.element.classList.add(DISABLED);\r\n }\r\n if (eventArgs.element.classList.contains(DISABLED)) {\r\n _this.disableItemCollection.push(eventArgs.element.getAttribute('data-value'));\r\n }\r\n });\r\n }\r\n };\r\n this.listTag = ListBase.createList(this.createElement, listItems, listBaseOptions, true);\r\n attributes(this.listTag, { 'role': 'listbox', 'aria-hidden': 'false', 'id': this.element.id + '_options' });\r\n append([this.listTag], this.listWrapper);\r\n };\r\n TimePicker.prototype.documentClickHandler = function (event) {\r\n var target = event.target;\r\n if ((!isNullOrUndefined(this.popupObj) && (this.inputWrapper.container.contains(target) ||\r\n (this.popupObj.element && this.popupObj.element.contains(target)))) && event.type !== 'touchstart') {\r\n event.preventDefault();\r\n }\r\n if (!(closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) && target !== this.inputElement\r\n && target !== (this.inputWrapper && this.inputWrapper.buttons[0]) &&\r\n target !== (this.inputWrapper && this.inputWrapper.clearButton) &&\r\n target !== (this.inputWrapper && this.inputWrapper.container)) {\r\n if (this.isPopupOpen()) {\r\n this.hide();\r\n this.focusOut();\r\n }\r\n }\r\n else if (target !== this.inputElement) {\r\n if (!Browser.isDevice) {\r\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement)\r\n && (target === this.popupWrapper);\r\n }\r\n }\r\n };\r\n TimePicker.prototype.setEnableRtl = function () {\r\n Input.setEnableRtl(this.enableRtl, [this.inputWrapper.container]);\r\n if (this.popupObj) {\r\n this.popupObj.enableRtl = this.enableRtl;\r\n this.popupObj.dataBind();\r\n }\r\n };\r\n TimePicker.prototype.setEnable = function () {\r\n Input.setEnabled(this.enabled, this.inputElement, this.floatLabelType);\r\n if (this.enabled) {\r\n removeClass([this.inputWrapper.container], DISABLED);\r\n attributes(this.inputElement, { 'aria-disabled': 'false' });\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.hide();\r\n addClass([this.inputWrapper.container], DISABLED);\r\n attributes(this.inputElement, { 'aria-disabled': 'true' });\r\n this.inputElement.tabIndex = -1;\r\n }\r\n };\r\n TimePicker.prototype.getProperty = function (date, val) {\r\n if (val === 'min') {\r\n this.initMin = this.checkDateValue(new Date(this.checkInValue(date.min)));\r\n this.setProperties({ min: this.initMin }, true);\r\n }\r\n else {\r\n this.initMax = this.checkDateValue(new Date(this.checkInValue(date.max)));\r\n this.setProperties({ max: this.initMax }, true);\r\n }\r\n if (this.inputElement.value === '') {\r\n this.validateMinMax(this.value, this.min, this.max);\r\n }\r\n else {\r\n this.checkValue(this.inputElement.value);\r\n }\r\n this.checkValueChange(null, false);\r\n };\r\n TimePicker.prototype.inputBlurHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n // IE popup closing issue when click over the scrollbar\r\n if (this.isPreventBlur && this.isPopupOpen()) {\r\n this.inputElement.focus();\r\n return;\r\n }\r\n this.closePopup(0, e);\r\n if (this.enableMask && this.maskedDateValue && this.placeholder && this.floatLabelType !== 'Always') {\r\n if (this.inputElement.value == this.maskedDateValue && !this.value && (this.floatLabelType == 'Auto' || this.floatLabelType == 'Never' || this.placeholder)) {\r\n this.updateInputValue('');\r\n }\r\n }\r\n removeClass([this.inputWrapper.container], [FOCUS]);\r\n var blurArguments = {\r\n model: this\r\n };\r\n this.trigger('blur', blurArguments);\r\n if (this.getText() !== this.inputElement.value) {\r\n this.updateValue((this.inputElement).value, e);\r\n }\r\n else if (this.inputElement.value.trim().length === 0) {\r\n this.resetState();\r\n }\r\n this.cursorDetails = null;\r\n this.isNavigate = false;\r\n if (this.inputElement.value === '') {\r\n this.invalidValueString = null;\r\n }\r\n };\r\n /**\r\n * Focuses out the TimePicker textbox element.\r\n *\r\n * @returns {void}\r\n */\r\n TimePicker.prototype.focusOut = function () {\r\n if (document.activeElement === this.inputElement) {\r\n this.inputElement.blur();\r\n removeClass([this.inputWrapper.container], [FOCUS]);\r\n var blurArguments = {\r\n model: this\r\n };\r\n this.trigger('blur', blurArguments);\r\n }\r\n };\r\n TimePicker.prototype.isPopupOpen = function () {\r\n if (this.popupWrapper && this.popupWrapper.classList.contains('' + ROOT)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n TimePicker.prototype.inputFocusHandler = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var focusArguments = {\r\n model: this\r\n };\r\n if (!this.readonly && !Browser.isDevice && !this.enableMask) {\r\n this.selectInputText();\r\n }\r\n if (this.enableMask && !this.inputElement.value && this.placeholder) {\r\n if (this.maskedDateValue && !this.value && (this.floatLabelType == 'Auto' || this.floatLabelType == 'Never' || this.placeholder)) {\r\n this.updateInputValue(this.maskedDateValue);\r\n this.inputElement.selectionStart = 0;\r\n this.inputElement.selectionEnd = this.inputElement.value.length;\r\n }\r\n }\r\n this.trigger('focus', focusArguments);\r\n this.clearIconState();\r\n if (this.openOnFocus) {\r\n this.show();\r\n }\r\n };\r\n /**\r\n * Focused the TimePicker textbox element.\r\n *\r\n * @returns {void}\r\n */\r\n TimePicker.prototype.focusIn = function () {\r\n if (document.activeElement !== this.inputElement && this.enabled) {\r\n this.inputElement.focus();\r\n }\r\n };\r\n /**\r\n * Hides the TimePicker popup.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n TimePicker.prototype.hide = function () {\r\n this.closePopup(100, null);\r\n this.clearIconState();\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Opens the popup to show the list items.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n TimePicker.prototype.show = function (event) {\r\n var _this = this;\r\n if ((this.enabled && this.readonly) || !this.enabled || this.popupWrapper) {\r\n return;\r\n }\r\n else {\r\n this.popupCreation();\r\n if (Browser.isDevice && this.listWrapper) {\r\n this.modal = this.createElement('div');\r\n this.modal.className = '' + ROOT + ' e-time-modal';\r\n document.body.className += ' ' + OVERFLOW;\r\n document.body.appendChild(this.modal);\r\n }\r\n if (Browser.isDevice) {\r\n this.mobileTimePopupWrap = this.createElement('div', { className: 'e-timepicker-mob-popup-wrap' });\r\n document.body.appendChild(this.mobileTimePopupWrap);\r\n }\r\n this.openPopupEventArgs = {\r\n popup: this.popupObj || null,\r\n cancel: false,\r\n event: event || null,\r\n name: 'open',\r\n appendTo: Browser.isDevice ? this.mobileTimePopupWrap : document.body\r\n };\r\n var eventArgs = this.openPopupEventArgs;\r\n this.trigger('open', eventArgs, function (eventArgs) {\r\n _this.openPopupEventArgs = eventArgs;\r\n if (!_this.openPopupEventArgs.cancel && !_this.inputWrapper.buttons[0].classList.contains(DISABLED)) {\r\n _this.openPopupEventArgs.appendTo.appendChild(_this.popupWrapper);\r\n _this.popupAlignment(_this.openPopupEventArgs);\r\n _this.setScrollPosition();\r\n if (!Browser.isDevice) {\r\n _this.inputElement.focus();\r\n }\r\n var openAnimation = {\r\n name: 'FadeIn',\r\n duration: ANIMATIONDURATION\r\n };\r\n _this.popupObj.refreshPosition(_this.anchor);\r\n if (_this.zIndex === 1000) {\r\n _this.popupObj.show(new Animation(openAnimation), _this.element);\r\n }\r\n else {\r\n _this.popupObj.show(new Animation(openAnimation), null);\r\n }\r\n _this.setActiveDescendant();\r\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\r\n addClass([_this.inputWrapper.container], FOCUS);\r\n EventHandler.add(document, 'mousedown touchstart', _this.documentClickHandler, _this);\r\n _this.setOverlayIndex(_this.mobileTimePopupWrap, _this.popupObj.element, _this.modal, Browser.isDevice);\r\n }\r\n else {\r\n _this.popupObj.destroy();\r\n _this.popupWrapper = _this.listTag = undefined;\r\n _this.liCollections = _this.timeCollections = _this.disableItemCollection = [];\r\n _this.popupObj = null;\r\n }\r\n });\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n TimePicker.prototype.setOverlayIndex = function (popupWrapper, timePopupElement, modal, isDevice) {\r\n if (isDevice && !isNullOrUndefined(timePopupElement) && !isNullOrUndefined(modal) && !isNullOrUndefined(popupWrapper)) {\r\n var index = parseInt(timePopupElement.style.zIndex, 10) ? parseInt(timePopupElement.style.zIndex, 10) : 1000;\r\n modal.style.zIndex = (index - 1).toString();\r\n popupWrapper.style.zIndex = index.toString();\r\n }\r\n };\r\n TimePicker.prototype.formatValues = function (type) {\r\n var value;\r\n if (typeof type === 'number') {\r\n value = formatUnit(type);\r\n }\r\n else if (typeof type === 'string') {\r\n value = (type.match(/px|%|em/)) ? type : isNaN(parseInt(type, 10)) ? type : formatUnit(type);\r\n }\r\n return value;\r\n };\r\n TimePicker.prototype.popupAlignment = function (args) {\r\n args.popup.position.X = this.formatValues(args.popup.position.X);\r\n args.popup.position.Y = this.formatValues(args.popup.position.Y);\r\n if (!isNaN(parseFloat(args.popup.position.X)) || !isNaN(parseFloat(args.popup.position.Y))) {\r\n this.popupObj.relateTo = this.anchor = document.body;\r\n this.popupObj.targetType = 'container';\r\n }\r\n if (!isNaN(parseFloat(args.popup.position.X))) {\r\n this.popupObj.offsetX = parseFloat(args.popup.position.X);\r\n }\r\n if (!isNaN(parseFloat(args.popup.position.Y))) {\r\n this.popupObj.offsetY = parseFloat(args.popup.position.Y);\r\n }\r\n if (!Browser.isDevice) {\r\n switch (args.popup.position.X) {\r\n case 'left':\r\n break;\r\n case 'right':\r\n args.popup.offsetX = this.containerStyle.width;\r\n break;\r\n case 'center':\r\n args.popup.offsetX = -(this.containerStyle.width / 2);\r\n break;\r\n }\r\n switch (args.popup.position.Y) {\r\n case 'top':\r\n break;\r\n case 'bottom':\r\n break;\r\n case 'center':\r\n args.popup.offsetY = -(this.containerStyle.height / 2);\r\n break;\r\n }\r\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\r\n this.popupObj.relateTo = this.inputWrapper.container;\r\n this.anchor = this.inputElement;\r\n this.popupObj.targetType = 'relative';\r\n }\r\n }\r\n else {\r\n if (args.popup.position.X === 'center' && args.popup.position.Y === 'center') {\r\n this.popupObj.relateTo = this.anchor = document.body;\r\n this.popupObj.offsetY = 0;\r\n this.popupObj.targetType = 'container';\r\n this.popupObj.collision = { X: 'fit', Y: 'fit' };\r\n }\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the properties to be maintained upon browser refresh.\r\n *\r\n * @returns {string}\r\n */\r\n TimePicker.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * To get component name\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n TimePicker.prototype.getModuleName = function () {\r\n return 'timepicker';\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {TimePickerModel} newProp - Returns the dynamic property value of the component.\r\n * @param {TimePickerModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n TimePicker.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\r\n this.inputElement.setAttribute('aria-placeholder', newProp.placeholder);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.inputElement, this.floatLabelType);\r\n if (this.readonly) {\r\n this.hide();\r\n }\r\n this.setTimeAllowEdit();\r\n break;\r\n case 'enabled':\r\n this.setProperties({ enabled: newProp.enabled }, true);\r\n this.setEnable();\r\n break;\r\n case 'allowEdit':\r\n this.setTimeAllowEdit();\r\n break;\r\n case 'enableRtl':\r\n this.setProperties({ enableRtl: newProp.enableRtl }, true);\r\n this.setEnableRtl();\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'zIndex':\r\n this.setProperties({ zIndex: newProp.zIndex }, true);\r\n this.setZIndex();\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHtmlAttributeToElement();\r\n this.updateHtmlAttributeToWrapper();\r\n this.checkAttributes(true);\r\n break;\r\n case 'min':\r\n case 'max':\r\n this.getProperty(newProp, prop);\r\n break;\r\n case 'showClearButton':\r\n Input.setClearButton(this.showClearButton, this.inputElement, this.inputWrapper);\r\n this.bindClearEvent();\r\n break;\r\n case 'locale':\r\n this.setProperties({ locale: newProp.locale }, true);\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.updatePlaceHolder();\r\n this.setValue(this.value);\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n break;\r\n case 'width':\r\n setStyleAttribute(this.inputWrapper.container, { 'width': this.setWidth(newProp.width) });\r\n this.containerStyle = this.inputWrapper.container.getBoundingClientRect();\r\n break;\r\n case 'format':\r\n this.setProperties({ format: newProp.format }, true);\r\n this.checkTimeFormat();\r\n this.setValue(this.value);\r\n if (this.enableMask) {\r\n this.createMask();\r\n if (!this.value) {\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n }\r\n break;\r\n case 'value':\r\n this.invalidValueString = null;\r\n this.checkInvalidValue(newProp.value);\r\n newProp.value = this.value;\r\n if (!this.invalidValueString) {\r\n if (typeof newProp.value === 'string') {\r\n this.setProperties({ value: this.checkDateValue(new Date(newProp.value)) }, true);\r\n newProp.value = this.value;\r\n }\r\n else {\r\n if ((newProp.value && +new Date(+newProp.value).setMilliseconds(0)) !== +this.value) {\r\n newProp.value = this.checkDateValue(new Date('' + newProp.value));\r\n }\r\n }\r\n this.initValue = newProp.value;\r\n newProp.value = this.compareFormatChange(this.checkValue(newProp.value));\r\n }\r\n else {\r\n this.updateInputValue(this.invalidValueString);\r\n this.checkErrorState(this.invalidValueString);\r\n }\r\n this.checkValueChange(null, false);\r\n if (this.isPopupOpen()) {\r\n this.setScrollPosition();\r\n }\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n }\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n Input.removeFloating(this.inputWrapper);\r\n Input.addFloating(this.inputElement, this.floatLabelType, this.placeholder);\r\n break;\r\n case 'strictMode':\r\n this.invalidValueString = null;\r\n if (newProp.strictMode) {\r\n this.checkErrorState(null);\r\n }\r\n this.setProperties({ strictMode: newProp.strictMode }, true);\r\n this.checkValue((this.inputElement).value);\r\n this.checkValueChange(null, false);\r\n break;\r\n case 'scrollTo':\r\n if (this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo)))) {\r\n if (this.popupWrapper) {\r\n this.setScrollTo();\r\n }\r\n this.setProperties({ scrollTo: this.checkDateValue(new Date(this.checkInValue(newProp.scrollTo))) }, true);\r\n }\r\n else {\r\n this.setProperties({ scrollTo: null }, true);\r\n }\r\n break;\r\n case 'enableMask':\r\n if (this.enableMask) {\r\n this.notify(\"createMask\", {\r\n module: \"MaskedDateTime\",\r\n });\r\n this.updateInputValue(this.maskedDateValue);\r\n }\r\n else {\r\n if (this.inputElement.value === this.maskedDateValue) {\r\n this.updateInputValue('');\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n TimePicker.prototype.checkInValue = function (inValue) {\r\n if (inValue instanceof Date) {\r\n return (inValue.toUTCString());\r\n }\r\n else {\r\n return ('' + inValue);\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TimePicker.prototype, \"strictMode\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"keyConfigs\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"format\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TimePicker.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TimePicker.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property({})\r\n ], TimePicker.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], TimePicker.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], TimePicker.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TimePicker.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TimePicker.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(30)\r\n ], TimePicker.prototype, \"step\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"scrollTo\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TimePicker.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TimePicker.prototype, \"allowEdit\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TimePicker.prototype, \"openOnFocus\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TimePicker.prototype, \"enableMask\", void 0);\r\n __decorate([\r\n Property({ day: 'day', month: 'month', year: 'year', hour: 'hour', minute: 'minute', second: 'second', dayOfTheWeek: 'day of the week' })\r\n ], TimePicker.prototype, \"maskPlaceholder\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"itemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"cleared\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], TimePicker.prototype, \"focus\", void 0);\r\n TimePicker = __decorate([\r\n NotifyPropertyChanges\r\n ], TimePicker);\r\n return TimePicker;\r\n}(Component));\r\nexport { TimePicker };\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n","/**\n * index\n */\nexport * from './src/index';\n","import { Encoding } from '@syncfusion/ej2-file-utils';\n/**\n * array literal codes\n */\nvar ARR_LITERAL_CODES = new Int16Array(286);\nvar ARR_LITERAL_LENGTHS = new Uint8Array(286);\nvar ARR_DISTANCE_CODES = new Int16Array(30);\nvar ARR_DISTANCE_LENGTHS = new Uint8Array(30);\n/**\n * represent compression stream writer\n * ```typescript\n * let compressedWriter = new CompressedStreamWriter();\n * let text: string = 'Hello world!!!';\n * compressedWriter.write(text, 0, text.length);\n * compressedWriter.close();\n * ```\n */\nvar CompressedStreamWriter = /** @class */ (function () {\n /**\n * Initializes compressor and writes ZLib header if needed.\n * @param {boolean} noWrap - optional if true, ZLib header and checksum will not be written.\n */\n function CompressedStreamWriter(noWrap) {\n this.pendingBuffer = new Uint8Array(1 << 16);\n this.pendingBufLength = 0;\n this.pendingBufCache = 0;\n this.pendingBufBitsInCache = 0;\n this.bufferPosition = 0;\n this.extraBits = 0;\n this.currentHash = 0;\n this.matchStart = 0;\n this.matchLength = 0;\n this.matchPrevAvail = false;\n this.blockStart = 0;\n this.stringStart = 0;\n this.lookAhead = 0;\n this.totalBytesIn = 0;\n this.inputOffset = 0;\n this.inputEnd = 0;\n this.windowSize = 1 << 15;\n this.windowMask = this.windowSize - 1;\n this.hashSize = 1 << 15;\n this.hashMask = this.hashSize - 1;\n this.hashShift = Math.floor((15 + 3 - 1) / 3);\n this.maxDist = this.windowSize - 262;\n this.checkSum = 1;\n this.noWrap = false;\n if (!CompressedStreamWriter.isHuffmanTreeInitiated) {\n CompressedStreamWriter.initHuffmanTree();\n CompressedStreamWriter.isHuffmanTreeInitiated = true;\n }\n this.treeLiteral = new CompressorHuffmanTree(this, 286, 257, 15);\n this.treeDistances = new CompressorHuffmanTree(this, 30, 1, 15);\n this.treeCodeLengths = new CompressorHuffmanTree(this, 19, 4, 7);\n this.arrDistances = new Uint16Array((1 << 14));\n this.arrLiterals = new Uint8Array((1 << 14));\n this.stream = [];\n this.dataWindow = new Uint8Array(2 * this.windowSize);\n this.hashHead = new Int16Array(this.hashSize);\n this.hashPrevious = new Int16Array(this.windowSize);\n this.blockStart = this.stringStart = 1;\n this.noWrap = noWrap;\n if (!noWrap) {\n this.writeZLibHeader();\n }\n }\n Object.defineProperty(CompressedStreamWriter.prototype, \"compressedData\", {\n /**\n * get compressed data\n */\n get: function () {\n return this.stream;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressedStreamWriter.prototype, \"getCompressedString\", {\n get: function () {\n var compressedString = '';\n if (this.stream !== undefined) {\n for (var i = 0; i < this.stream.length; i++) {\n compressedString += String.fromCharCode.apply(null, this.stream[i]);\n }\n }\n return compressedString;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Compresses data and writes it to the stream.\n * @param {Uint8Array} data - data to compress\n * @param {number} offset - offset in data\n * @param {number} length - length of the data\n * @returns {void}\n */\n CompressedStreamWriter.prototype.write = function (data, offset, length) {\n if (data === undefined || data === null) {\n throw new Error('ArgumentException: data cannot null or undefined');\n }\n var end = offset + length;\n if (0 > offset || offset > end || end > data.length) {\n throw new Error('ArgumentOutOfRangeException: Offset or length is incorrect');\n }\n if (typeof data === 'string') {\n var encode = new Encoding(false);\n encode.type = 'Utf8';\n data = new Uint8Array(encode.getBytes(data, 0, data.length));\n end = offset + data.length;\n }\n this.inputBuffer = data;\n this.inputOffset = offset;\n this.inputEnd = end;\n if (!this.noWrap) {\n this.checkSum = ChecksumCalculator.checksumUpdate(this.checkSum, this.inputBuffer, this.inputOffset, end);\n }\n while (!(this.inputEnd === this.inputOffset) || !(this.pendingBufLength === 0)) {\n this.pendingBufferFlush();\n this.compressData(false);\n }\n };\n /**\n * write ZLib header to the compressed data\n * @return {void}\n */\n CompressedStreamWriter.prototype.writeZLibHeader = function () {\n /* Initialize header.*/\n var headerDate = (8 + (7 << 4)) << 8;\n /* Save compression level.*/\n headerDate |= ((5 >> 2) & 3) << 6;\n /* Align header.*/\n headerDate += 31 - (headerDate % 31);\n /* Write header to stream.*/\n this.pendingBufferWriteShortBytes(headerDate);\n };\n /**\n * Write Most Significant Bytes in to stream\n * @param {number} s - check sum value\n */\n CompressedStreamWriter.prototype.pendingBufferWriteShortBytes = function (s) {\n this.pendingBuffer[this.pendingBufLength++] = s >> 8;\n this.pendingBuffer[this.pendingBufLength++] = s;\n };\n CompressedStreamWriter.prototype.compressData = function (finish) {\n var success;\n do {\n this.fillWindow();\n var canFlush = (finish && this.inputEnd === this.inputOffset);\n success = this.compressSlow(canFlush, finish);\n } while (this.pendingBufLength === 0 && success);\n return success;\n };\n CompressedStreamWriter.prototype.compressSlow = function (flush, finish) {\n if (this.lookAhead < 262 && !flush) {\n return false;\n }\n while (this.lookAhead >= 262 || flush) {\n if (this.lookAhead === 0) {\n return this.lookAheadCompleted(finish);\n }\n if (this.stringStart >= 2 * this.windowSize - 262) {\n this.slideWindow();\n }\n var prevMatch = this.matchStart;\n var prevLen = this.matchLength;\n if (this.lookAhead >= 3) {\n this.discardMatch();\n }\n if (prevLen >= 3 && this.matchLength <= prevLen) {\n prevLen = this.matchPreviousBest(prevMatch, prevLen);\n }\n else {\n this.matchPreviousAvailable();\n }\n if (this.bufferPosition >= (1 << 14)) {\n return this.huffmanIsFull(finish);\n }\n }\n return true;\n };\n CompressedStreamWriter.prototype.discardMatch = function () {\n var hashHead = this.insertString();\n if (hashHead !== 0 && this.stringStart - hashHead <= this.maxDist && this.findLongestMatch(hashHead)) {\n if (this.matchLength <= 5 && (this.matchLength === 3 && this.stringStart - this.matchStart > 4096)) {\n this.matchLength = 3 - 1;\n }\n }\n };\n CompressedStreamWriter.prototype.matchPreviousAvailable = function () {\n if (this.matchPrevAvail) {\n this.huffmanTallyLit(this.dataWindow[this.stringStart - 1] & 0xff);\n }\n this.matchPrevAvail = true;\n this.stringStart++;\n this.lookAhead--;\n };\n CompressedStreamWriter.prototype.matchPreviousBest = function (prevMatch, prevLen) {\n this.huffmanTallyDist(this.stringStart - 1 - prevMatch, prevLen);\n prevLen -= 2;\n do {\n this.stringStart++;\n this.lookAhead--;\n if (this.lookAhead >= 3) {\n this.insertString();\n }\n } while (--prevLen > 0);\n this.stringStart++;\n this.lookAhead--;\n this.matchPrevAvail = false;\n this.matchLength = 3 - 1;\n return prevLen;\n };\n CompressedStreamWriter.prototype.lookAheadCompleted = function (finish) {\n if (this.matchPrevAvail) {\n this.huffmanTallyLit(this.dataWindow[this.stringStart - 1] & 0xff);\n }\n this.matchPrevAvail = false;\n this.huffmanFlushBlock(this.dataWindow, this.blockStart, this.stringStart - this.blockStart, finish);\n this.blockStart = this.stringStart;\n return false;\n };\n CompressedStreamWriter.prototype.huffmanIsFull = function (finish) {\n var len = this.stringStart - this.blockStart;\n if (this.matchPrevAvail) {\n len--;\n }\n var lastBlock = (finish && this.lookAhead === 0 && !this.matchPrevAvail);\n this.huffmanFlushBlock(this.dataWindow, this.blockStart, len, lastBlock);\n this.blockStart += len;\n return !lastBlock;\n };\n CompressedStreamWriter.prototype.fillWindow = function () {\n if (this.stringStart >= this.windowSize + this.maxDist) {\n this.slideWindow();\n }\n while (this.lookAhead < 262 && this.inputOffset < this.inputEnd) {\n var more = 2 * this.windowSize - this.lookAhead - this.stringStart;\n if (more > this.inputEnd - this.inputOffset) {\n more = this.inputEnd - this.inputOffset;\n }\n this.dataWindow.set(this.inputBuffer.subarray(this.inputOffset, this.inputOffset + more), this.stringStart + this.lookAhead);\n this.inputOffset += more;\n this.totalBytesIn += more;\n this.lookAhead += more;\n }\n if (this.lookAhead >= 3) {\n this.updateHash();\n }\n };\n CompressedStreamWriter.prototype.slideWindow = function () {\n this.dataWindow.set(this.dataWindow.subarray(this.windowSize, this.windowSize + this.windowSize), 0);\n this.matchStart -= this.windowSize;\n this.stringStart -= this.windowSize;\n this.blockStart -= this.windowSize;\n for (var i = 0; i < this.hashSize; ++i) {\n var m = this.hashHead[i] & 0xffff;\n this.hashHead[i] = (((m >= this.windowSize) ? (m - this.windowSize) : 0));\n }\n for (var i = 0; i < this.windowSize; i++) {\n var m = this.hashPrevious[i] & 0xffff;\n this.hashPrevious[i] = ((m >= this.windowSize) ? (m - this.windowSize) : 0);\n }\n };\n CompressedStreamWriter.prototype.insertString = function () {\n var match;\n var hash = ((this.currentHash << this.hashShift) ^ this.dataWindow[this.stringStart + (3 - 1)]) & this.hashMask;\n this.hashPrevious[this.stringStart & this.windowMask] = match = this.hashHead[hash];\n this.hashHead[hash] = this.stringStart;\n this.currentHash = hash;\n return match & 0xffff;\n };\n CompressedStreamWriter.prototype.findLongestMatch = function (curMatch) {\n var chainLen = 4096;\n var niceLen = 258;\n var scan = this.stringStart;\n var match;\n var bestEnd = this.stringStart + this.matchLength;\n var bestLength = Math.max(this.matchLength, 3 - 1);\n var limit = Math.max(this.stringStart - this.maxDist, 0);\n var stringEnd = this.stringStart + 258 - 1;\n var scanEnd1 = this.dataWindow[bestEnd - 1];\n var scanEnd = this.dataWindow[bestEnd];\n var data = this.dataWindow;\n if (bestLength >= 32) {\n chainLen >>= 2;\n }\n if (niceLen > this.lookAhead) {\n niceLen = this.lookAhead;\n }\n do {\n if (data[curMatch + bestLength] !== scanEnd ||\n data[curMatch + bestLength - 1] !== scanEnd1 ||\n data[curMatch] !== data[scan] ||\n data[curMatch + 1] !== data[scan + 1]) {\n continue;\n }\n match = curMatch + 2;\n scan += 2;\n /* tslint:disable */\n while (data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] &&\n data[++scan] === data[++match] && data[++scan] === data[++match] && scan < stringEnd) {\n /* tslint:disable */\n }\n if (scan > bestEnd) {\n this.matchStart = curMatch;\n bestEnd = scan;\n bestLength = scan - this.stringStart;\n if (bestLength >= niceLen) {\n break;\n }\n scanEnd1 = data[bestEnd - 1];\n scanEnd = data[bestEnd];\n }\n scan = this.stringStart;\n } while ((curMatch = (this.hashPrevious[curMatch & this.windowMask] & 0xffff)) > limit && --chainLen !== 0);\n this.matchLength = Math.min(bestLength, this.lookAhead);\n return this.matchLength >= 3;\n };\n CompressedStreamWriter.prototype.updateHash = function () {\n this.currentHash = (this.dataWindow[this.stringStart] << this.hashShift) ^ this.dataWindow[this.stringStart + 1];\n };\n CompressedStreamWriter.prototype.huffmanTallyLit = function (literal) {\n this.arrDistances[this.bufferPosition] = 0;\n this.arrLiterals[this.bufferPosition++] = literal;\n this.treeLiteral.codeFrequencies[literal]++;\n return this.bufferPosition >= (1 << 14);\n };\n CompressedStreamWriter.prototype.huffmanTallyDist = function (dist, len) {\n this.arrDistances[this.bufferPosition] = dist;\n this.arrLiterals[this.bufferPosition++] = (len - 3);\n var lc = this.huffmanLengthCode(len - 3);\n this.treeLiteral.codeFrequencies[lc]++;\n if (lc >= 265 && lc < 285) {\n this.extraBits += Math.floor((lc - 261) / 4);\n }\n var dc = this.huffmanDistanceCode(dist - 1);\n this.treeDistances.codeFrequencies[dc]++;\n if (dc >= 4) {\n this.extraBits += Math.floor((dc / 2 - 1));\n }\n return this.bufferPosition >= (1 << 14);\n };\n CompressedStreamWriter.prototype.huffmanFlushBlock = function (stored, storedOffset, storedLength, lastBlock) {\n this.treeLiteral.codeFrequencies[256]++;\n this.treeLiteral.buildTree();\n this.treeDistances.buildTree();\n this.treeLiteral.calculateBLFreq(this.treeCodeLengths);\n this.treeDistances.calculateBLFreq(this.treeCodeLengths);\n this.treeCodeLengths.buildTree();\n var blTreeCodes = 4;\n for (var i = 18; i > blTreeCodes; i--) {\n if (this.treeCodeLengths.codeLengths[CompressorHuffmanTree.huffCodeLengthOrders[i]] > 0) {\n blTreeCodes = i + 1;\n }\n }\n var opt_len = 14 + blTreeCodes * 3 + this.treeCodeLengths.getEncodedLength() +\n this.treeLiteral.getEncodedLength() + this.treeDistances.getEncodedLength() + this.extraBits;\n var static_len = this.extraBits;\n for (var i = 0; i < 286; i++) {\n static_len += this.treeLiteral.codeFrequencies[i] * ARR_LITERAL_LENGTHS[i];\n }\n for (var i = 0; i < 30; i++) {\n static_len += this.treeDistances.codeFrequencies[i] * ARR_DISTANCE_LENGTHS[i];\n }\n if (opt_len >= static_len) {\n // Force static trees.\n opt_len = static_len;\n }\n if (storedOffset >= 0 && storedLength + 4 < opt_len >> 3) {\n this.huffmanFlushStoredBlock(stored, storedOffset, storedLength, lastBlock);\n }\n else if (opt_len == static_len) {\n // Encode with static tree.\n this.pendingBufferWriteBits((1 << 1) + (lastBlock ? 1 : 0), 3);\n this.treeLiteral.setStaticCodes(ARR_LITERAL_CODES, ARR_LITERAL_LENGTHS);\n this.treeDistances.setStaticCodes(ARR_DISTANCE_CODES, ARR_DISTANCE_LENGTHS);\n this.huffmanCompressBlock();\n this.huffmanReset();\n }\n else {\n this.pendingBufferWriteBits((2 << 1) + (lastBlock ? 1 : 0), 3);\n this.huffmanSendAllTrees(blTreeCodes);\n this.huffmanCompressBlock();\n this.huffmanReset();\n }\n };\n CompressedStreamWriter.prototype.huffmanFlushStoredBlock = function (stored, storedOffset, storedLength, lastBlock) {\n this.pendingBufferWriteBits((0 << 1) + (lastBlock ? 1 : 0), 3);\n this.pendingBufferAlignToByte();\n this.pendingBufferWriteShort(storedLength);\n this.pendingBufferWriteShort(~storedLength);\n this.pendingBufferWriteByteBlock(stored, storedOffset, storedLength);\n this.huffmanReset();\n };\n CompressedStreamWriter.prototype.huffmanLengthCode = function (len) {\n if (len === 255) {\n return 285;\n }\n var code = 257;\n while (len >= 8) {\n code += 4;\n len >>= 1;\n }\n return code + len;\n };\n CompressedStreamWriter.prototype.huffmanDistanceCode = function (distance) {\n var code = 0;\n while (distance >= 4) {\n code += 2;\n distance >>= 1;\n }\n return code + distance;\n };\n CompressedStreamWriter.prototype.huffmanSendAllTrees = function (blTreeCodes) {\n this.treeCodeLengths.buildCodes();\n this.treeLiteral.buildCodes();\n this.treeDistances.buildCodes();\n this.pendingBufferWriteBits(this.treeLiteral.treeLength - 257, 5);\n this.pendingBufferWriteBits(this.treeDistances.treeLength - 1, 5);\n this.pendingBufferWriteBits(blTreeCodes - 4, 4);\n for (var rank = 0; rank < blTreeCodes; rank++) {\n this.pendingBufferWriteBits(this.treeCodeLengths.codeLengths[CompressorHuffmanTree.huffCodeLengthOrders[rank]], 3);\n }\n this.treeLiteral.writeTree(this.treeCodeLengths);\n this.treeDistances.writeTree(this.treeCodeLengths);\n };\n CompressedStreamWriter.prototype.huffmanReset = function () {\n this.bufferPosition = 0;\n this.extraBits = 0;\n this.treeLiteral.reset();\n this.treeDistances.reset();\n this.treeCodeLengths.reset();\n };\n CompressedStreamWriter.prototype.huffmanCompressBlock = function () {\n for (var i = 0; i < this.bufferPosition; i++) {\n var literalLen = this.arrLiterals[i] & 255;\n var dist = this.arrDistances[i];\n if (dist-- !== 0) {\n var lc = this.huffmanLengthCode(literalLen);\n this.treeLiteral.writeCodeToStream(lc);\n var bits = Math.floor((lc - 261) / 4);\n if (bits > 0 && bits <= 5) {\n this.pendingBufferWriteBits(literalLen & ((1 << bits) - 1), bits);\n }\n var dc = this.huffmanDistanceCode(dist);\n this.treeDistances.writeCodeToStream(dc);\n bits = Math.floor(dc / 2 - 1);\n if (bits > 0) {\n this.pendingBufferWriteBits(dist & ((1 << bits) - 1), bits);\n }\n }\n else {\n this.treeLiteral.writeCodeToStream(literalLen);\n }\n }\n this.treeLiteral.writeCodeToStream(256);\n };\n /**\n * write bits in to internal buffer\n * @param {number} b - source of bits\n * @param {number} count - count of bits to write\n */\n CompressedStreamWriter.prototype.pendingBufferWriteBits = function (b, count) {\n var uint = new Uint32Array(1);\n uint[0] = this.pendingBufCache | (b << this.pendingBufBitsInCache);\n this.pendingBufCache = uint[0];\n this.pendingBufBitsInCache += count;\n this.pendingBufferFlushBits();\n };\n CompressedStreamWriter.prototype.pendingBufferFlush = function (isClose) {\n this.pendingBufferFlushBits();\n if (this.pendingBufLength > 0) {\n var array = new Uint8Array(this.pendingBufLength);\n array.set(this.pendingBuffer.subarray(0, this.pendingBufLength), 0);\n this.stream.push(array);\n }\n this.pendingBufLength = 0;\n };\n CompressedStreamWriter.prototype.pendingBufferFlushBits = function () {\n var result = 0;\n while (this.pendingBufBitsInCache >= 8 && this.pendingBufLength < (1 << 16)) {\n this.pendingBuffer[this.pendingBufLength++] = this.pendingBufCache;\n this.pendingBufCache >>= 8;\n this.pendingBufBitsInCache -= 8;\n result++;\n }\n return result;\n };\n CompressedStreamWriter.prototype.pendingBufferWriteByteBlock = function (data, offset, length) {\n var array = data.subarray(offset, offset + length);\n this.pendingBuffer.set(array, this.pendingBufLength);\n this.pendingBufLength += length;\n };\n CompressedStreamWriter.prototype.pendingBufferWriteShort = function (s) {\n this.pendingBuffer[this.pendingBufLength++] = s;\n this.pendingBuffer[this.pendingBufLength++] = (s >> 8);\n };\n CompressedStreamWriter.prototype.pendingBufferAlignToByte = function () {\n if (this.pendingBufBitsInCache > 0) {\n this.pendingBuffer[this.pendingBufLength++] = this.pendingBufCache;\n }\n this.pendingBufCache = 0;\n this.pendingBufBitsInCache = 0;\n };\n /**\n * Huffman Tree literal calculation\n * @private\n */\n CompressedStreamWriter.initHuffmanTree = function () {\n var i = 0;\n while (i < 144) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x030 + i) << 8);\n ARR_LITERAL_LENGTHS[i++] = 8;\n }\n while (i < 256) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x190 - 144 + i) << 7);\n ARR_LITERAL_LENGTHS[i++] = 9;\n }\n while (i < 280) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x000 - 256 + i) << 9);\n ARR_LITERAL_LENGTHS[i++] = 7;\n }\n while (i < 286) {\n ARR_LITERAL_CODES[i] = CompressorHuffmanTree.bitReverse((0x0c0 - 280 + i) << 8);\n ARR_LITERAL_LENGTHS[i++] = 8;\n }\n for (i = 0; i < 30; i++) {\n ARR_DISTANCE_CODES[i] = CompressorHuffmanTree.bitReverse(i << 11);\n ARR_DISTANCE_LENGTHS[i] = 5;\n }\n };\n /**\n * close the stream and write all pending buffer in to stream\n * @returns {void}\n */\n CompressedStreamWriter.prototype.close = function () {\n do {\n this.pendingBufferFlush(true);\n if (!this.compressData(true)) {\n this.pendingBufferFlush(true);\n this.pendingBufferAlignToByte();\n if (!this.noWrap) {\n this.pendingBufferWriteShortBytes(this.checkSum >> 16);\n this.pendingBufferWriteShortBytes(this.checkSum & 0xffff);\n }\n this.pendingBufferFlush(true);\n }\n } while (!(this.inputEnd === this.inputOffset) ||\n !(this.pendingBufLength === 0));\n };\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n CompressedStreamWriter.prototype.destroy = function () {\n this.stream = [];\n this.stream = undefined;\n this.pendingBuffer = undefined;\n this.treeLiteral = undefined;\n this.treeDistances = undefined;\n this.treeCodeLengths = undefined;\n this.arrLiterals = undefined;\n this.arrDistances = undefined;\n this.hashHead = undefined;\n this.hashPrevious = undefined;\n this.dataWindow = undefined;\n this.inputBuffer = undefined;\n this.pendingBufLength = undefined;\n this.pendingBufCache = undefined;\n this.pendingBufBitsInCache = undefined;\n this.bufferPosition = undefined;\n this.extraBits = undefined;\n this.currentHash = undefined;\n this.matchStart = undefined;\n this.matchLength = undefined;\n this.matchPrevAvail = undefined;\n this.blockStart = undefined;\n this.stringStart = undefined;\n this.lookAhead = undefined;\n this.totalBytesIn = undefined;\n this.inputOffset = undefined;\n this.inputEnd = undefined;\n this.windowSize = undefined;\n this.windowMask = undefined;\n this.hashSize = undefined;\n this.hashMask = undefined;\n this.hashShift = undefined;\n this.maxDist = undefined;\n this.checkSum = undefined;\n this.noWrap = undefined;\n };\n CompressedStreamWriter.isHuffmanTreeInitiated = false;\n return CompressedStreamWriter;\n}());\nexport { CompressedStreamWriter };\n/**\n * represent the Huffman Tree\n */\nvar CompressorHuffmanTree = /** @class */ (function () {\n /**\n * Create new Huffman Tree\n * @param {CompressedStreamWriter} writer instance\n * @param {number} elementCount - element count\n * @param {number} minCodes - minimum count\n * @param {number} maxLength - maximum count\n */\n function CompressorHuffmanTree(writer, elementCount, minCodes, maxLength) {\n this.writer = writer;\n this.codeMinCount = minCodes;\n this.maxLength = maxLength;\n this.codeFrequency = new Uint16Array(elementCount);\n this.lengthCount = new Int32Array(maxLength);\n }\n Object.defineProperty(CompressorHuffmanTree.prototype, \"treeLength\", {\n get: function () {\n return this.codeCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressorHuffmanTree.prototype, \"codeLengths\", {\n get: function () {\n return this.codeLength;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CompressorHuffmanTree.prototype, \"codeFrequencies\", {\n get: function () {\n return this.codeFrequency;\n },\n enumerable: true,\n configurable: true\n });\n CompressorHuffmanTree.prototype.setStaticCodes = function (codes, lengths) {\n var temp = new Int16Array(codes.length);\n temp.set(codes, 0);\n this.codes = temp;\n var lengthTemp = new Uint8Array(lengths.length);\n lengthTemp.set(lengths, 0);\n this.codeLength = lengthTemp;\n };\n /**\n * reset all code data in tree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.reset = function () {\n for (var i = 0; i < this.codeFrequency.length; i++) {\n this.codeFrequency[i] = 0;\n }\n this.codes = undefined;\n this.codeLength = undefined;\n };\n /**\n * write code to the compressor output stream\n * @param {number} code - code to be written\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.writeCodeToStream = function (code) {\n this.writer.pendingBufferWriteBits(this.codes[code] & 0xffff, this.codeLength[code]);\n };\n /**\n * calculate code from their frequencies\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.buildCodes = function () {\n var nextCode = new Int32Array(this.maxLength);\n this.codes = new Int16Array(this.codeCount);\n var code = 0;\n for (var bitsCount = 0; bitsCount < this.maxLength; bitsCount++) {\n nextCode[bitsCount] = code;\n code += this.lengthCount[bitsCount] << (15 - bitsCount);\n }\n for (var i = 0; i < this.codeCount; i++) {\n var bits = this.codeLength[i];\n if (bits > 0) {\n this.codes[i] = CompressorHuffmanTree.bitReverse(nextCode[bits - 1]);\n nextCode[bits - 1] += 1 << (16 - bits);\n }\n }\n };\n CompressorHuffmanTree.bitReverse = function (value) {\n return (CompressorHuffmanTree.reverseBits[value & 15] << 12\n | CompressorHuffmanTree.reverseBits[(value >> 4) & 15] << 8\n | CompressorHuffmanTree.reverseBits[(value >> 8) & 15] << 4\n | CompressorHuffmanTree.reverseBits[value >> 12]);\n };\n /**\n * calculate length of compressed data\n * @returns {number}\n */\n CompressorHuffmanTree.prototype.getEncodedLength = function () {\n var len = 0;\n for (var i = 0; i < this.codeFrequency.length; i++) {\n len += this.codeFrequency[i] * this.codeLength[i];\n }\n return len;\n };\n /**\n * calculate code frequencies\n * @param {CompressorHuffmanTree} blTree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.calculateBLFreq = function (blTree) {\n var maxCount;\n var minCount;\n var count;\n var curLen = -1;\n var i = 0;\n while (i < this.codeCount) {\n count = 1;\n var nextLen = this.codeLength[i];\n if (nextLen === 0) {\n maxCount = 138;\n minCount = 3;\n }\n else {\n maxCount = 6;\n minCount = 3;\n if (curLen !== nextLen) {\n blTree.codeFrequency[nextLen]++;\n count = 0;\n }\n }\n curLen = nextLen;\n i++;\n while (i < this.codeCount && curLen === this.codeLength[i]) {\n i++;\n if (++count >= maxCount) {\n break;\n }\n }\n if (count < minCount) {\n blTree.codeFrequency[curLen] += count;\n }\n else if (curLen !== 0) {\n blTree.codeFrequency[16]++;\n }\n else if (count <= 10) {\n blTree.codeFrequency[17]++;\n }\n else {\n blTree.codeFrequency[18]++;\n }\n }\n };\n /**\n * @param {CompressorHuffmanTree} blTree - write tree to output stream\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.writeTree = function (blTree) {\n var maxRepeatCount;\n var minRepeatCount;\n var currentRepeatCount;\n var currentCodeLength = -1;\n var i = 0;\n while (i < this.codeCount) {\n currentRepeatCount = 1;\n var nextLen = this.codeLength[i];\n if (nextLen === 0) {\n maxRepeatCount = 138;\n minRepeatCount = 3;\n }\n else {\n maxRepeatCount = 6;\n minRepeatCount = 3;\n if (currentCodeLength !== nextLen) {\n blTree.writeCodeToStream(nextLen);\n currentRepeatCount = 0;\n }\n }\n currentCodeLength = nextLen;\n i++;\n while (i < this.codeCount && currentCodeLength === this.codeLength[i]) {\n i++;\n if (++currentRepeatCount >= maxRepeatCount) {\n break;\n }\n }\n if (currentRepeatCount < minRepeatCount) {\n while (currentRepeatCount-- > 0) {\n blTree.writeCodeToStream(currentCodeLength);\n }\n }\n else if (currentCodeLength !== 0) {\n blTree.writeCodeToStream(16);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 3, 2);\n }\n else if (currentRepeatCount <= 10) {\n blTree.writeCodeToStream(17);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 3, 3);\n }\n else {\n blTree.writeCodeToStream(18);\n this.writer.pendingBufferWriteBits(currentRepeatCount - 11, 7);\n }\n }\n };\n /**\n * Build huffman tree\n * @returns {void}\n */\n CompressorHuffmanTree.prototype.buildTree = function () {\n var codesCount = this.codeFrequency.length;\n var arrTree = new Int32Array(codesCount);\n var treeLength = 0;\n var maxCount = 0;\n for (var n = 0; n < codesCount; n++) {\n var freq = this.codeFrequency[n];\n if (freq !== 0) {\n var pos = treeLength++;\n var pPos = 0;\n while (pos > 0 && this.codeFrequency[arrTree[pPos = Math.floor((pos - 1) / 2)]] > freq) {\n arrTree[pos] = arrTree[pPos];\n pos = pPos;\n }\n arrTree[pos] = n;\n maxCount = n;\n }\n }\n while (treeLength < 2) {\n arrTree[treeLength++] =\n (maxCount < 2) ? ++maxCount : 0;\n }\n this.codeCount = Math.max(maxCount + 1, this.codeMinCount);\n var leafsCount = treeLength;\n var nodesCount = leafsCount;\n var child = new Int32Array(4 * treeLength - 2);\n var values = new Int32Array(2 * treeLength - 1);\n for (var i = 0; i < treeLength; i++) {\n var node = arrTree[i];\n var iIndex = 2 * i;\n child[iIndex] = node;\n child[iIndex + 1] = -1;\n values[i] = (this.codeFrequency[node] << 8);\n arrTree[i] = i;\n }\n this.constructHuffmanTree(arrTree, treeLength, values, nodesCount, child);\n this.buildLength(child);\n };\n CompressorHuffmanTree.prototype.constructHuffmanTree = function (arrTree, treeLength, values, nodesCount, child) {\n do {\n var first = arrTree[0];\n var last = arrTree[--treeLength];\n var lastVal = values[last];\n var pPos = 0;\n var path = 1;\n while (path < treeLength) {\n if (path + 1 < treeLength && values[arrTree[path]] > values[arrTree[path + 1]]) {\n path++;\n }\n arrTree[pPos] = arrTree[path];\n pPos = path;\n path = pPos * 2 + 1;\n }\n while ((path = pPos) > 0 && values[arrTree[pPos = Math.floor((path - 1) / 2)]] > lastVal) {\n arrTree[path] = arrTree[pPos];\n }\n arrTree[path] = last;\n var second = arrTree[0];\n last = nodesCount++;\n child[2 * last] = first;\n child[2 * last + 1] = second;\n var minDepth = Math.min(values[first] & 0xff, values[second] & 0xff);\n values[last] = lastVal = values[first] + values[second] - minDepth + 1;\n pPos = 0;\n path = 1;\n /* tslint:disable */\n while (path < treeLength) {\n if (path + 1 < treeLength && values[arrTree[path]] > values[arrTree[path + 1]]) {\n path++;\n }\n arrTree[pPos] = arrTree[path];\n pPos = path;\n path = pPos * 2 + 1;\n } /* tslint:disable */\n while ((path = pPos) > 0 && values[arrTree[pPos = Math.floor((path - 1) / 2)]] > lastVal) {\n arrTree[path] = arrTree[pPos];\n }\n arrTree[path] = last;\n } while (treeLength > 1);\n };\n CompressorHuffmanTree.prototype.buildLength = function (child) {\n this.codeLength = new Uint8Array(this.codeFrequency.length);\n var numNodes = Math.floor(child.length / 2);\n var numLeafs = Math.floor((numNodes + 1) / 2);\n var overflow = 0;\n for (var i = 0; i < this.maxLength; i++) {\n this.lengthCount[i] = 0;\n }\n overflow = this.calculateOptimalCodeLength(child, overflow, numNodes);\n if (overflow === 0) {\n return;\n }\n var iIncreasableLength = this.maxLength - 1;\n do {\n while (this.lengthCount[--iIncreasableLength] === 0) {\n /* tslint:disable */\n }\n do {\n this.lengthCount[iIncreasableLength]--;\n this.lengthCount[++iIncreasableLength]++;\n overflow -= (1 << (this.maxLength - 1 - iIncreasableLength));\n } while (overflow > 0 && iIncreasableLength < this.maxLength - 1);\n } while (overflow > 0);\n this.recreateTree(child, overflow, numLeafs);\n };\n CompressorHuffmanTree.prototype.recreateTree = function (child, overflow, numLeafs) {\n this.lengthCount[this.maxLength - 1] += overflow;\n this.lengthCount[this.maxLength - 2] -= overflow;\n var nodePtr = 2 * numLeafs;\n for (var bits = this.maxLength; bits !== 0; bits--) {\n var n = this.lengthCount[bits - 1];\n while (n > 0) {\n var childPtr = 2 * child[nodePtr++];\n if (child[childPtr + 1] === -1) {\n this.codeLength[child[childPtr]] = bits;\n n--;\n }\n }\n }\n };\n CompressorHuffmanTree.prototype.calculateOptimalCodeLength = function (child, overflow, numNodes) {\n var lengths = new Int32Array(numNodes);\n lengths[numNodes - 1] = 0;\n for (var i = numNodes - 1; i >= 0; i--) {\n var childIndex = 2 * i + 1;\n if (child[childIndex] !== -1) {\n var bitLength = lengths[i] + 1;\n if (bitLength > this.maxLength) {\n bitLength = this.maxLength;\n overflow++;\n }\n lengths[child[childIndex - 1]] = lengths[child[childIndex]] = bitLength;\n }\n else {\n var bitLength = lengths[i];\n this.lengthCount[bitLength - 1]++;\n this.codeLength[child[childIndex - 1]] = lengths[i];\n }\n }\n return overflow;\n };\n CompressorHuffmanTree.reverseBits = [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15];\n CompressorHuffmanTree.huffCodeLengthOrders = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n return CompressorHuffmanTree;\n}());\nexport { CompressorHuffmanTree };\n/**\n * Checksum calculator, based on Adler32 algorithm.\n */\nvar ChecksumCalculator = /** @class */ (function () {\n function ChecksumCalculator() {\n }\n /**\n * Updates checksum by calculating checksum of the\n * given buffer and adding it to current value.\n * @param {number} checksum - current checksum.\n * @param {Uint8Array} buffer - data byte array.\n * @param {number} offset - offset in the buffer.\n * @param {number} length - length of data to be used from the stream.\n * @returns {number}\n */\n ChecksumCalculator.checksumUpdate = function (checksum, buffer, offset, length) {\n var uint = new Uint32Array(1);\n uint[0] = checksum;\n var checksum_uint = uint[0];\n var s1 = uint[0] = checksum_uint & 65535;\n var s2 = uint[0] = checksum_uint >> ChecksumCalculator.checkSumBitOffset;\n while (length > 0) {\n var steps = Math.min(length, ChecksumCalculator.checksumIterationCount);\n length -= steps;\n while (--steps >= 0) {\n s1 = s1 + (uint[0] = (buffer[offset++] & 255));\n s2 = s2 + s1;\n }\n s1 %= ChecksumCalculator.checksumBase;\n s2 %= ChecksumCalculator.checksumBase;\n }\n checksum_uint = (s2 << ChecksumCalculator.checkSumBitOffset) | s1;\n return checksum_uint;\n };\n ChecksumCalculator.checkSumBitOffset = 16;\n ChecksumCalculator.checksumBase = 65521;\n ChecksumCalculator.checksumIterationCount = 3800;\n return ChecksumCalculator;\n}());\nexport { ChecksumCalculator };\n","/**\n * export ZipArchive class\n */\nexport * from './zip-archive';\nexport * from './compression-writer';\n","import { CompressedStreamWriter } from './compression-writer';\nimport { Save } from '@syncfusion/ej2-file-utils';\nvar CRC32TABLE = [];\n/**\n * class provide compression library\n * ```typescript\n * let archive = new ZipArchive();\n * archive.compressionLevel = 'Normal';\n * let archiveItem = new ZipArchiveItem(archive, 'directoryName\\fileName.txt');\n * archive.addItem(archiveItem);\n * archive.save(fileName.zip);\n * ```\n */\nvar ZipArchive = /** @class */ (function () {\n /**\n * constructor for creating ZipArchive instance\n */\n function ZipArchive() {\n if (CRC32TABLE.length === 0) {\n ZipArchive.initCrc32Table();\n }\n this.files = [];\n this.level = 'Normal';\n Save.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n }\n Object.defineProperty(ZipArchive.prototype, \"compressionLevel\", {\n /**\n * gets compression level\n */\n get: function () {\n return this.level;\n },\n /**\n * sets compression level\n */\n set: function (level) {\n this.level = level;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ZipArchive.prototype, \"length\", {\n /**\n * gets items count\n */\n get: function () {\n if (this.files === undefined) {\n return 0;\n }\n return this.files.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * add new item to archive\n * @param {ZipArchiveItem} item - item to be added\n * @returns {void}\n */\n ZipArchive.prototype.addItem = function (item) {\n if (item === null || item === undefined) {\n throw new Error('ArgumentException: item cannot be null or undefined');\n }\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n if (file instanceof ZipArchiveItem) {\n if (file.name === item.name) {\n throw new Error('item with same name already exist');\n }\n }\n }\n this.files.push(item);\n };\n /**\n * add new directory to archive\n * @param directoryName directoryName to be created\n * @returns {void}\n */\n ZipArchive.prototype.addDirectory = function (directoryName) {\n if (directoryName === null || directoryName === undefined) {\n throw new Error('ArgumentException: string cannot be null or undefined');\n }\n if (directoryName.length === 0) {\n throw new Error('ArgumentException: string cannot be empty');\n }\n if (directoryName.slice(-1) !== '/') {\n directoryName += '/';\n }\n if (this.files.indexOf(directoryName) !== -1) {\n throw new Error('item with same name already exist');\n }\n this.files.push(directoryName);\n };\n /**\n * gets item at specified index\n * @param {number} index - item index\n * @returns {ZipArchiveItem}\n */\n ZipArchive.prototype.getItem = function (index) {\n if (index >= 0 && index < this.files.length) {\n return this.files[index];\n }\n return undefined;\n };\n /**\n * determines whether an element is in the collection\n * @param {string | ZipArchiveItem} item - item to search\n * @returns {boolean}\n */\n ZipArchive.prototype.contains = function (item) {\n return this.files.indexOf(item) !== -1 ? true : false;\n };\n /**\n * save archive with specified file name\n * @param {string} fileName save archive with specified file name\n * @returns {Promise}\n */\n ZipArchive.prototype.save = function (fileName) {\n if (fileName === null || fileName === undefined || fileName.length === 0) {\n throw new Error('ArgumentException: fileName cannot be null or undefined');\n }\n if (this.files.length === 0) {\n throw new Error('InvalidOperation');\n }\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n zipArchive.saveInternal(fileName, false).then(function () {\n resolve(zipArchive);\n });\n });\n };\n /**\n * Save archive as blob\n * @return {Promise}\n */\n ZipArchive.prototype.saveAsBlob = function () {\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n zipArchive.saveInternal('', true).then(function (blob) {\n resolve(blob);\n });\n });\n };\n ZipArchive.prototype.saveInternal = function (fileName, skipFileSave) {\n var _this = this;\n var zipArchive = this;\n var promise;\n return promise = new Promise(function (resolve, reject) {\n var zipData = [];\n var dirLength = 0;\n for (var i = 0; i < zipArchive.files.length; i++) {\n var compressedObject = _this.getCompressedData(_this.files[i]);\n compressedObject.then(function (data) {\n dirLength = zipArchive.constructZippedObject(zipData, data, dirLength, data.isDirectory);\n if (zipData.length === zipArchive.files.length) {\n var blob = zipArchive.writeZippedContent(fileName, zipData, dirLength, skipFileSave);\n resolve(blob);\n }\n });\n }\n });\n };\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n ZipArchive.prototype.destroy = function () {\n if (this.files !== undefined && this.files.length > 0) {\n for (var i = 0; i < this.files.length; i++) {\n var file = this.files[i];\n if (file instanceof ZipArchiveItem) {\n file.destroy();\n }\n file = undefined;\n }\n this.files = [];\n }\n this.files = undefined;\n this.level = undefined;\n };\n ZipArchive.prototype.getCompressedData = function (item) {\n var zipArchive = this;\n var promise = new Promise(function (resolve, reject) {\n if (item instanceof ZipArchiveItem) {\n var reader_1 = new FileReader();\n reader_1.onload = function () {\n var input = new Uint8Array(reader_1.result);\n var data = {\n fileName: item.name, crc32Value: 0, compressedData: [],\n compressedSize: undefined, uncompressedDataSize: input.length, compressionType: undefined,\n isDirectory: false\n };\n if (zipArchive.level === 'Normal') {\n zipArchive.compressData(input, data, CRC32TABLE);\n var length_1 = 0;\n for (var i = 0; i < data.compressedData.length; i++) {\n length_1 += data.compressedData[i].length;\n }\n data.compressedSize = length_1;\n data.compressionType = '\\x08\\x00'; //Deflated = 8\n }\n else {\n data.compressedSize = input.length;\n data.crc32Value = zipArchive.calculateCrc32Value(0, input, CRC32TABLE);\n data.compressionType = '\\x00\\x00'; // Stored = 0\n data.compressedData.push(input);\n }\n resolve(data);\n };\n reader_1.readAsArrayBuffer(item.data);\n }\n else {\n var data = {\n fileName: item, crc32Value: 0, compressedData: '', compressedSize: 0, uncompressedDataSize: 0,\n compressionType: '\\x00\\x00', isDirectory: true\n };\n resolve(data);\n }\n });\n return promise;\n };\n ZipArchive.prototype.compressData = function (input, data, crc32Table) {\n var compressor = new CompressedStreamWriter(true);\n var currentIndex = 0;\n var nextIndex = 0;\n do {\n if (currentIndex >= input.length) {\n compressor.close();\n break;\n }\n nextIndex = Math.min(input.length, currentIndex + 16384);\n var subArray = input.subarray(currentIndex, nextIndex);\n data.crc32Value = this.calculateCrc32Value(data.crc32Value, subArray, crc32Table);\n compressor.write(subArray, 0, nextIndex - currentIndex);\n currentIndex = nextIndex;\n } while (currentIndex <= input.length);\n data.compressedData = compressor.compressedData;\n compressor.destroy();\n };\n ZipArchive.prototype.constructZippedObject = function (zipParts, data, dirLength, isDirectory) {\n var extFileAttr = 0;\n var date = new Date();\n if (isDirectory) {\n extFileAttr = extFileAttr | 0x00010; // directory flag\n }\n extFileAttr = extFileAttr | (0 & 0x3F);\n var header = this.writeHeader(data, date);\n var localHeader = 'PK\\x03\\x04' + header + data.fileName;\n var centralDir = this.writeCentralDirectory(data, header, dirLength, extFileAttr);\n zipParts.push({ localHeader: localHeader, centralDir: centralDir, compressedData: data });\n return dirLength + localHeader.length + data.compressedSize;\n };\n ZipArchive.prototype.writeHeader = function (data, date) {\n var zipHeader = '';\n zipHeader += '\\x0A\\x00' + '\\x00\\x00'; // version needed to extract & general purpose bit flag\n zipHeader += data.compressionType; // compression method Deflate=8,Stored=0\n zipHeader += this.getBytes(this.getModifiedTime(date), 2); // last modified Time\n zipHeader += this.getBytes(this.getModifiedDate(date), 2); // last modified date\n zipHeader += this.getBytes(data.crc32Value, 4); // crc-32 value\n zipHeader += this.getBytes(data.compressedSize, 4); // compressed file size\n zipHeader += this.getBytes(data.uncompressedDataSize, 4); // uncompressed file size\n zipHeader += this.getBytes(data.fileName.length, 2); // file name length\n zipHeader += this.getBytes(0, 2); // extra field length\n return zipHeader;\n };\n ZipArchive.prototype.writeZippedContent = function (fileName, zipData, localDirLen, skipFileSave) {\n var cenDirLen = 0;\n var buffer = [];\n for (var i = 0; i < zipData.length; i++) {\n var item = zipData[i];\n cenDirLen += item.centralDir.length;\n buffer.push(this.getArrayBuffer(item.localHeader));\n while (item.compressedData.compressedData.length) {\n buffer.push(item.compressedData.compressedData.shift().buffer);\n }\n }\n for (var i = 0; i < zipData.length; i++) {\n buffer.push(this.getArrayBuffer(zipData[i].centralDir));\n }\n buffer.push(this.getArrayBuffer(this.writeFooter(zipData, cenDirLen, localDirLen)));\n var blob = new Blob(buffer, { type: 'application/zip' });\n if (!skipFileSave) {\n Save.save(fileName, blob);\n }\n return blob;\n };\n ZipArchive.prototype.writeCentralDirectory = function (data, localHeader, offset, externalFileAttribute) {\n var directoryHeader = 'PK\\x01\\x02' +\n this.getBytes(0x0014, 2) + localHeader + // inherit from file header\n this.getBytes(0, 2) + // comment length\n '\\x00\\x00' + '\\x00\\x00' + // internal file attributes \n this.getBytes(externalFileAttribute, 4) + // external file attributes\n this.getBytes(offset, 4) + // local fileHeader relative offset\n data.fileName;\n return directoryHeader;\n };\n ZipArchive.prototype.writeFooter = function (zipData, centralLength, localLength) {\n var dirEnd = 'PK\\x05\\x06' + '\\x00\\x00' + '\\x00\\x00' +\n this.getBytes(zipData.length, 2) + this.getBytes(zipData.length, 2) +\n this.getBytes(centralLength, 4) + this.getBytes(localLength, 4) +\n this.getBytes(0, 2);\n return dirEnd;\n };\n ZipArchive.prototype.getArrayBuffer = function (input) {\n var a = new Uint8Array(input.length);\n for (var j = 0; j < input.length; ++j) {\n a[j] = input.charCodeAt(j) & 0xFF;\n }\n return a.buffer;\n };\n ZipArchive.prototype.getBytes = function (value, offset) {\n var bytes = '';\n for (var i = 0; i < offset; i++) {\n bytes += String.fromCharCode(value & 0xff);\n value = value >>> 8;\n }\n return bytes;\n };\n ZipArchive.prototype.getModifiedTime = function (date) {\n var modTime = date.getHours();\n modTime = modTime << 6;\n modTime = modTime | date.getMinutes();\n modTime = modTime << 5;\n return modTime = modTime | date.getSeconds() / 2;\n };\n ZipArchive.prototype.getModifiedDate = function (date) {\n var modiDate = date.getFullYear() - 1980;\n modiDate = modiDate << 4;\n modiDate = modiDate | (date.getMonth() + 1);\n modiDate = modiDate << 5;\n return modiDate = modiDate | date.getDate();\n };\n ZipArchive.prototype.calculateCrc32Value = function (crc32Value, input, crc32Table) {\n crc32Value ^= -1;\n for (var i = 0; i < input.length; i++) {\n crc32Value = (crc32Value >>> 8) ^ crc32Table[(crc32Value ^ input[i]) & 0xFF];\n }\n return (crc32Value ^ (-1));\n };\n /**\n * construct cyclic redundancy code table\n * @private\n */\n ZipArchive.initCrc32Table = function () {\n var i;\n for (var j = 0; j < 256; j++) {\n i = j;\n for (var k = 0; k < 8; k++) {\n i = ((i & 1) ? (0xEDB88320 ^ (i >>> 1)) : (i >>> 1));\n }\n CRC32TABLE[j] = i;\n }\n };\n return ZipArchive;\n}());\nexport { ZipArchive };\n/**\n * Class represent unique ZipArchive item\n * ```typescript\n * let archiveItem = new ZipArchiveItem(archive, 'directoryName\\fileName.txt');\n * ```\n */\nvar ZipArchiveItem = /** @class */ (function () {\n /**\n * constructor for creating {ZipArchiveItem} instance\n * @param {Blob|ArrayBuffer} data file data\n * @param {itemName} itemName absolute file path\n */\n function ZipArchiveItem(data, itemName) {\n if (data === null || data === undefined) {\n throw new Error('ArgumentException: data cannot be null or undefined');\n }\n if (itemName === null || itemName === undefined) {\n throw new Error('ArgumentException: string cannot be null or undefined');\n }\n if (itemName.length === 0) {\n throw new Error('string cannot be empty');\n }\n this.data = data;\n this.name = itemName;\n }\n Object.defineProperty(ZipArchiveItem.prototype, \"name\", {\n /**\n * Get the name of archive item\n * @returns string\n */\n get: function () {\n return this.fileName;\n },\n /**\n * Set the name of archive item\n * @param {string} value\n */\n set: function (value) {\n this.fileName = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * release allocated un-managed resource\n * @returns {void}\n */\n ZipArchiveItem.prototype.destroy = function () {\n this.fileName = undefined;\n this.data = undefined;\n };\n return ZipArchiveItem;\n}());\nexport { ZipArchiveItem };\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { merge, extend, isNullOrUndefined, setValue, getValue } from '@syncfusion/ej2-base';\r\nimport { DataUtil } from './util';\r\nimport { Query, Predicate } from './query';\r\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\r\n/**\r\n * Adaptors are specific data source type aware interfaces that are used by DataManager to communicate with DataSource.\r\n * This is the base adaptor class that other adaptors can extend.\r\n * @hidden\r\n */\r\nvar Adaptor = /** @class */ (function () {\r\n /**\r\n * Constructor for Adaptor class\r\n * @param {DataOptions} ds?\r\n * @hidden\r\n * @returns aggregates\r\n */\r\n function Adaptor(ds) {\r\n // common options for all the adaptors \r\n this.options = {\r\n from: 'table',\r\n requestType: 'json',\r\n sortBy: 'sorted',\r\n select: 'select',\r\n skip: 'skip',\r\n group: 'group',\r\n take: 'take',\r\n search: 'search',\r\n count: 'requiresCounts',\r\n where: 'where',\r\n aggregates: 'aggregates',\r\n expand: 'expand'\r\n };\r\n /**\r\n * Specifies the type of adaptor.\r\n * @default Adaptor\r\n */\r\n this.type = Adaptor;\r\n this.dataSource = ds;\r\n this.pvt = {};\r\n }\r\n /**\r\n * Returns the data from the query processing.\r\n * @param {Object} data\r\n * @param {DataOptions} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @returns Object\r\n */\r\n Adaptor.prototype.processResponse = function (data, ds, query, xhr) {\r\n return data;\r\n };\r\n return Adaptor;\r\n}());\r\nexport { Adaptor };\r\n/**\r\n * JsonAdaptor is used to process JSON data. It contains methods to process the given JSON data based on the queries.\r\n * @hidden\r\n */\r\nvar JsonAdaptor = /** @class */ (function (_super) {\r\n __extends(JsonAdaptor, _super);\r\n function JsonAdaptor() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Process the JSON data based on the provided queries.\r\n * @param {DataManager} dataManager\r\n * @param {Query} query\r\n * @returns Object\r\n */\r\n JsonAdaptor.prototype.processQuery = function (dataManager, query) {\r\n var result = dataManager.dataSource.json.slice(0);\r\n var count = result.length;\r\n var countFlg = true;\r\n var ret;\r\n var key;\r\n var lazyLoad = {};\r\n var keyCount = 0;\r\n var group = [];\r\n var page;\r\n for (var i = 0; i < query.lazyLoad.length; i++) {\r\n keyCount++;\r\n lazyLoad[query.lazyLoad[i].key] = query.lazyLoad[i].value;\r\n }\r\n var agg = {};\r\n for (var i = 0; i < query.queries.length; i++) {\r\n key = query.queries[i];\r\n if ((key.fn === 'onPage' || key.fn === 'onGroup') && query.lazyLoad.length) {\r\n if (key.fn === 'onGroup') {\r\n group.push(key.e);\r\n }\r\n if (key.fn === 'onPage') {\r\n page = key.e;\r\n }\r\n continue;\r\n }\r\n ret = this[key.fn].call(this, result, key.e, query);\r\n if (key.fn === 'onAggregates') {\r\n agg[key.e.field + ' - ' + key.e.type] = ret;\r\n }\r\n else {\r\n result = ret !== undefined ? ret : result;\r\n }\r\n if (key.fn === 'onPage' || key.fn === 'onSkip' || key.fn === 'onTake' || key.fn === 'onRange') {\r\n countFlg = false;\r\n }\r\n if (countFlg) {\r\n count = result.length;\r\n }\r\n }\r\n if (keyCount) {\r\n var args = {\r\n query: query, lazyLoad: lazyLoad, result: result, group: group, page: page\r\n };\r\n var lazyLoadData = this.lazyLoadGroup(args);\r\n result = lazyLoadData.result;\r\n count = lazyLoadData.count;\r\n }\r\n if (query.isCountRequired) {\r\n result = {\r\n result: result,\r\n count: count,\r\n aggregates: agg\r\n };\r\n }\r\n return result;\r\n };\r\n /**\r\n * Perform lazy load grouping in JSON array based on the given query and lazy load details.\r\n * @param {LazyLoadGroupArgs} args\r\n */\r\n JsonAdaptor.prototype.lazyLoadGroup = function (args) {\r\n var count = 0;\r\n var agg = this.getAggregate(args.query);\r\n var result = args.result;\r\n if (!isNullOrUndefined(args.lazyLoad.onDemandGroupInfo)) {\r\n var req = args.lazyLoad.onDemandGroupInfo;\r\n for (var i = req.where.length - 1; i >= 0; i--) {\r\n result = this.onWhere(result, req.where[i]);\r\n }\r\n if (args.group.length !== req.level) {\r\n var field = args.group[req.level].fieldName;\r\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\r\n }\r\n count = result.length;\r\n var data = result;\r\n result = result.slice(req.skip);\r\n result = result.slice(0, req.take);\r\n if (args.group.length !== req.level) {\r\n this.formGroupResult(result, data);\r\n }\r\n }\r\n else {\r\n var field = args.group[0].fieldName;\r\n result = DataUtil.group(result, field, agg, null, null, args.group[0].comparer, true);\r\n count = result.length;\r\n var data = result;\r\n if (args.page) {\r\n result = this.onPage(result, args.page, args.query);\r\n }\r\n this.formGroupResult(result, data);\r\n }\r\n return { result: result, count: count };\r\n };\r\n JsonAdaptor.prototype.formGroupResult = function (result, data) {\r\n if (result.length && data.length) {\r\n var uid = 'GroupGuid';\r\n var childLevel = 'childLevels';\r\n var level = 'level';\r\n var records = 'records';\r\n result[uid] = data[uid];\r\n result[childLevel] = data[childLevel];\r\n result[level] = data[level];\r\n result[records] = data[records];\r\n }\r\n return result;\r\n };\r\n /**\r\n * Separate the aggregate query from the given queries\r\n * @param {Query} query\r\n */\r\n JsonAdaptor.prototype.getAggregate = function (query) {\r\n var aggQuery = Query.filterQueries(query.queries, 'onAggregates');\r\n var agg = [];\r\n if (aggQuery.length) {\r\n var tmp = void 0;\r\n for (var i = 0; i < aggQuery.length; i++) {\r\n tmp = aggQuery[i].e;\r\n agg.push({ type: tmp.type, field: DataUtil.getValue(tmp.field, query) });\r\n }\r\n }\r\n return agg;\r\n };\r\n /**\r\n * Performs batch update in the JSON array which add, remove and update records.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {RemoteArgs} e\r\n */\r\n JsonAdaptor.prototype.batchRequest = function (dm, changes, e) {\r\n var i;\r\n var deletedRecordsLen = changes.deletedRecords.length;\r\n for (i = 0; i < changes.addedRecords.length; i++) {\r\n this.insert(dm, changes.addedRecords[i]);\r\n }\r\n for (i = 0; i < changes.changedRecords.length; i++) {\r\n this.update(dm, e.key, changes.changedRecords[i]);\r\n }\r\n for (i = 0; i < deletedRecordsLen; i++) {\r\n this.remove(dm, e.key, changes.deletedRecords[i]);\r\n }\r\n return changes;\r\n };\r\n /**\r\n * Performs filter operation with the given data and where query.\r\n * @param {Object[]} ds\r\n * @param {{validate:Function}} e\r\n */\r\n JsonAdaptor.prototype.onWhere = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return ds.filter(function (obj) {\r\n if (e) {\r\n return e.validate(obj);\r\n }\r\n });\r\n };\r\n /**\r\n * Returns aggregate function based on the aggregate type.\r\n * @param {Object[]} ds\r\n * @param {{field:string} e\r\n * @param {string}} type\r\n */\r\n JsonAdaptor.prototype.onAggregates = function (ds, e) {\r\n var fn = DataUtil.aggregates[e.type];\r\n if (!ds || !fn || ds.length === 0) {\r\n return null;\r\n }\r\n return fn(ds, e.field);\r\n };\r\n /**\r\n * Performs search operation based on the given query.\r\n * @param {Object[]} ds\r\n * @param {QueryOptions} e\r\n */\r\n JsonAdaptor.prototype.onSearch = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n if (e.fieldNames.length === 0) {\r\n DataUtil.getFieldList(ds[0], e.fieldNames);\r\n }\r\n return ds.filter(function (obj) {\r\n for (var j = 0; j < e.fieldNames.length; j++) {\r\n if (e.comparer.call(obj, DataUtil.getObject(e.fieldNames[j], obj), e.searchKey, e.ignoreCase, e.ignoreAccent)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n };\r\n /**\r\n * Sort the data with given direction and field.\r\n * @param {Object[]} ds\r\n * @param {{comparer:(a:Object} e\r\n * @param {Object} b\r\n */\r\n JsonAdaptor.prototype.onSortBy = function (ds, e, query) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n var fnCompare;\r\n var field = DataUtil.getValue(e.fieldName, query);\r\n if (!field) {\r\n return ds.sort(e.comparer);\r\n }\r\n if (field instanceof Array) {\r\n field = field.slice(0);\r\n for (var i = field.length - 1; i >= 0; i--) {\r\n if (!field[i]) {\r\n continue;\r\n }\r\n fnCompare = e.comparer;\r\n if (DataUtil.endsWith(field[i], ' desc')) {\r\n fnCompare = DataUtil.fnSort('descending');\r\n field[i] = field[i].replace(' desc', '');\r\n }\r\n ds = DataUtil.sort(ds, field[i], fnCompare);\r\n }\r\n return ds;\r\n }\r\n return DataUtil.sort(ds, field, e.comparer);\r\n };\r\n /**\r\n * Group the data based on the given query.\r\n * @param {Object[]} ds\r\n * @param {QueryOptions} e\r\n * @param {Query} query\r\n */\r\n JsonAdaptor.prototype.onGroup = function (ds, e, query) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n var agg = this.getAggregate(query);\r\n return DataUtil.group(ds, DataUtil.getValue(e.fieldName, query), agg, null, null, e.comparer);\r\n };\r\n /**\r\n * Retrieves records based on the given page index and size.\r\n * @param {Object[]} ds\r\n * @param {{pageSize:number} e\r\n * @param {number}} pageIndex\r\n * @param {Query} query\r\n */\r\n JsonAdaptor.prototype.onPage = function (ds, e, query) {\r\n var size = DataUtil.getValue(e.pageSize, query);\r\n var start = (DataUtil.getValue(e.pageIndex, query) - 1) * size;\r\n var end = start + size;\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return ds.slice(start, end);\r\n };\r\n /**\r\n * Retrieves records based on the given start and end index from query.\r\n * @param {Object[]} ds\r\n * @param {{start:number} e\r\n * @param {number}} end\r\n */\r\n JsonAdaptor.prototype.onRange = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return ds.slice(DataUtil.getValue(e.start), DataUtil.getValue(e.end));\r\n };\r\n /**\r\n * Picks the given count of records from the top of the datasource.\r\n * @param {Object[]} ds\r\n * @param {{nos:number}} e\r\n */\r\n JsonAdaptor.prototype.onTake = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return ds.slice(0, DataUtil.getValue(e.nos));\r\n };\r\n /**\r\n * Skips the given count of records from the data source.\r\n * @param {Object[]} ds\r\n * @param {{nos:number}} e\r\n */\r\n JsonAdaptor.prototype.onSkip = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return ds.slice(DataUtil.getValue(e.nos));\r\n };\r\n /**\r\n * Selects specified columns from the data source.\r\n * @param {Object[]} ds\r\n * @param {{fieldNames:string}} e\r\n */\r\n JsonAdaptor.prototype.onSelect = function (ds, e) {\r\n if (!ds || !ds.length) {\r\n return ds;\r\n }\r\n return DataUtil.select(ds, DataUtil.getValue(e.fieldNames));\r\n };\r\n /**\r\n * Inserts new record in the table.\r\n * @param {DataManager} dm\r\n * @param {Object} data\r\n * @param {number} position\r\n */\r\n JsonAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\r\n if (isNullOrUndefined(position)) {\r\n return dm.dataSource.json.push(data);\r\n }\r\n else {\r\n return dm.dataSource.json.splice(position, 0, data);\r\n }\r\n };\r\n /**\r\n * Remove the data from the dataSource based on the key field value.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName?\r\n * @returns null\r\n */\r\n JsonAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\r\n var ds = dm.dataSource.json;\r\n var i;\r\n if (typeof value === 'object' && !(value instanceof Date)) {\r\n value = DataUtil.getObject(keyField, value);\r\n }\r\n for (i = 0; i < ds.length; i++) {\r\n if (DataUtil.getObject(keyField, ds[i]) === value) {\r\n break;\r\n }\r\n }\r\n return i !== ds.length ? ds.splice(i, 1) : null;\r\n };\r\n /**\r\n * Updates existing record and saves the changes to the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName?\r\n * @returns null\r\n */\r\n JsonAdaptor.prototype.update = function (dm, keyField, value, tableName) {\r\n var ds = dm.dataSource.json;\r\n var i;\r\n var key;\r\n if (!isNullOrUndefined(keyField)) {\r\n key = getValue(keyField, value);\r\n }\r\n for (i = 0; i < ds.length; i++) {\r\n if (!isNullOrUndefined(keyField) && (getValue(keyField, ds[i])) === key) {\r\n break;\r\n }\r\n }\r\n return i < ds.length ? merge(ds[i], value) : null;\r\n };\r\n return JsonAdaptor;\r\n}(Adaptor));\r\nexport { JsonAdaptor };\r\n/**\r\n * URL Adaptor of DataManager can be used when you are required to use remote service to retrieve data.\r\n * It interacts with server-side for all DataManager Queries and CRUD operations.\r\n * @hidden\r\n */\r\nvar UrlAdaptor = /** @class */ (function (_super) {\r\n __extends(UrlAdaptor, _super);\r\n function UrlAdaptor() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Process the query to generate request body.\r\n * @param {DataManager} dm\r\n * @param {Query} query\r\n * @param {Object[]} hierarchyFilters?\r\n * @returns p\r\n */\r\n // tslint:disable-next-line:max-func-body-length\r\n UrlAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\r\n var queries = this.getQueryRequest(query);\r\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\r\n var params = query.params;\r\n var url = dm.dataSource.url;\r\n var temp;\r\n var skip;\r\n var take = null;\r\n var options = this.options;\r\n var request = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\r\n // calc Paging & Range\r\n if ('onPage' in singles) {\r\n temp = singles.onPage;\r\n skip = DataUtil.getValue(temp.pageIndex, query);\r\n take = DataUtil.getValue(temp.pageSize, query);\r\n skip = (skip - 1) * take;\r\n }\r\n else if ('onRange' in singles) {\r\n temp = singles.onRange;\r\n skip = temp.start;\r\n take = temp.end - temp.start;\r\n }\r\n // Sorting\r\n for (var i = 0; i < queries.sorts.length; i++) {\r\n temp = DataUtil.getValue(queries.sorts[i].e.fieldName, query);\r\n request.sorts.push(DataUtil.callAdaptorFunction(this, 'onEachSort', { name: temp, direction: queries.sorts[i].e.direction }, query));\r\n }\r\n // hierarchy\r\n if (hierarchyFilters) {\r\n temp = this.getFiltersFrom(hierarchyFilters, query);\r\n if (temp) {\r\n request.filters.push(DataUtil.callAdaptorFunction(this, 'onEachWhere', temp.toJson(), query));\r\n }\r\n }\r\n // Filters\r\n for (var i = 0; i < queries.filters.length; i++) {\r\n var res = DataUtil.callAdaptorFunction(this, 'onEachWhere', queries.filters[i].e.toJson(), query);\r\n if ((this.getModuleName &&\r\n this.getModuleName() === 'ODataV4Adaptor') &&\r\n !isNullOrUndefined(queries.filters[i].e.key) && queries.filters.length > 1) {\r\n res = \"(\" + res + \")\";\r\n }\r\n request.filters.push(res);\r\n var keys_3 = typeof request.filters[i] === 'object' ? Object.keys(request.filters[i]) : [];\r\n for (var _i = 0, keys_1 = keys_3; _i < keys_1.length; _i++) {\r\n var prop = keys_1[_i];\r\n if (DataUtil.isNull((request)[prop])) {\r\n delete request[prop];\r\n }\r\n }\r\n }\r\n // Searches\r\n for (var i = 0; i < queries.searches.length; i++) {\r\n temp = queries.searches[i].e;\r\n request.searches.push(DataUtil.callAdaptorFunction(this, 'onEachSearch', {\r\n fields: temp.fieldNames,\r\n operator: temp.operator,\r\n key: temp.searchKey,\r\n ignoreCase: temp.ignoreCase\r\n }, query));\r\n }\r\n // Grouping\r\n for (var i = 0; i < queries.groups.length; i++) {\r\n request.groups.push(DataUtil.getValue(queries.groups[i].e.fieldName, query));\r\n }\r\n // aggregates\r\n for (var i = 0; i < queries.aggregates.length; i++) {\r\n temp = queries.aggregates[i].e;\r\n request.aggregates.push({ type: temp.type, field: DataUtil.getValue(temp.field, query) });\r\n }\r\n var req = {};\r\n this.getRequestQuery(options, query, singles, request, req);\r\n // Params\r\n DataUtil.callAdaptorFunction(this, 'addParams', { dm: dm, query: query, params: params, reqParams: req });\r\n if (query.lazyLoad.length) {\r\n for (var i = 0; i < query.lazyLoad.length; i++) {\r\n req[query.lazyLoad[i].key] = query.lazyLoad[i].value;\r\n }\r\n }\r\n // cleanup\r\n var keys = Object.keys(req);\r\n for (var _a = 0, keys_2 = keys; _a < keys_2.length; _a++) {\r\n var prop = keys_2[_a];\r\n if (DataUtil.isNull(req[prop]) || req[prop] === '' || req[prop].length === 0) {\r\n delete req[prop];\r\n }\r\n }\r\n if (!(options.skip in req && options.take in req) && take !== null) {\r\n req[options.skip] = DataUtil.callAdaptorFunction(this, 'onSkip', skip, query);\r\n req[options.take] = DataUtil.callAdaptorFunction(this, 'onTake', take, query);\r\n }\r\n var p = this.pvt;\r\n this.pvt = {};\r\n if (this.options.requestType === 'json') {\r\n return {\r\n data: JSON.stringify(req, DataUtil.parse.jsonDateReplacer),\r\n url: url,\r\n pvtData: p,\r\n type: 'POST',\r\n contentType: 'application/json; charset=utf-8'\r\n };\r\n }\r\n temp = this.convertToQueryString(req, query, dm);\r\n temp = (dm.dataSource.url.indexOf('?') !== -1 ? '&' : '/') + temp;\r\n return {\r\n type: 'GET', url: temp.length ? url.replace(/\\/*$/, temp) : url, pvtData: p\r\n };\r\n };\r\n UrlAdaptor.prototype.getRequestQuery = function (options, query, singles, request, request1) {\r\n var param = 'param';\r\n var req = request1;\r\n req[options.from] = query.fromTable;\r\n if (options.apply && query.distincts.length) {\r\n req[options.apply] = 'onDistinct' in this ? DataUtil.callAdaptorFunction(this, 'onDistinct', query.distincts) : '';\r\n }\r\n if (!query.distincts.length && options.expand) {\r\n req[options.expand] = 'onExpand' in this && 'onSelect' in singles ?\r\n DataUtil.callAdaptorFunction(this, 'onExpand', { selects: DataUtil.getValue(singles.onSelect.fieldNames, query), expands: query.expands }, query) : query.expands;\r\n }\r\n req[options.select] = 'onSelect' in singles && !query.distincts.length ?\r\n DataUtil.callAdaptorFunction(this, 'onSelect', DataUtil.getValue(singles.onSelect.fieldNames, query), query) : '';\r\n req[options.count] = query.isCountRequired ? DataUtil.callAdaptorFunction(this, 'onCount', query.isCountRequired, query) : '';\r\n req[options.search] = request.searches.length ? DataUtil.callAdaptorFunction(this, 'onSearch', request.searches, query) : '';\r\n req[options.skip] = 'onSkip' in singles ?\r\n DataUtil.callAdaptorFunction(this, 'onSkip', DataUtil.getValue(singles.onSkip.nos, query), query) : '';\r\n req[options.take] = 'onTake' in singles ?\r\n DataUtil.callAdaptorFunction(this, 'onTake', DataUtil.getValue(singles.onTake.nos, query), query) : '';\r\n req[options.where] = request.filters.length || request.searches.length ?\r\n DataUtil.callAdaptorFunction(this, 'onWhere', request.filters, query) : '';\r\n req[options.sortBy] = request.sorts.length ? DataUtil.callAdaptorFunction(this, 'onSortBy', request.sorts, query) : '';\r\n req[options.group] = request.groups.length ? DataUtil.callAdaptorFunction(this, 'onGroup', request.groups, query) : '';\r\n req[options.aggregates] = request.aggregates.length ?\r\n DataUtil.callAdaptorFunction(this, 'onAggregates', request.aggregates, query) : '';\r\n req[param] = [];\r\n };\r\n /**\r\n * Convert the object from processQuery to string which can be added query string.\r\n * @param {Object} req\r\n * @param {Query} query\r\n * @param {DataManager} dm\r\n */\r\n UrlAdaptor.prototype.convertToQueryString = function (request, query, dm) {\r\n return '';\r\n // this needs to be overridden\r\n };\r\n /**\r\n * Return the data from the data manager processing.\r\n * @param {DataResult} data\r\n * @param {DataOptions} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Object} request?\r\n * @param {CrudOptions} changes?\r\n */\r\n UrlAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\r\n if (xhr && xhr.getResponseHeader('Content-Type') &&\r\n xhr.getResponseHeader('Content-Type').indexOf('application/json') !== -1) {\r\n var handleTimeZone = DataUtil.timeZoneHandling;\r\n if (ds && !ds.timeZoneHandling) {\r\n DataUtil.timeZoneHandling = false;\r\n }\r\n data = DataUtil.parse.parseJson(data);\r\n DataUtil.timeZoneHandling = handleTimeZone;\r\n }\r\n var requests = request;\r\n var pvt = requests.pvtData || {};\r\n var groupDs = data ? data.groupDs : [];\r\n if (xhr && xhr.getResponseHeader('Content-Type') &&\r\n xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\r\n return (query.isCountRequired ? { result: [], count: 0 } : []);\r\n }\r\n var d = JSON.parse(requests.data);\r\n if (d && d.action === 'batch' && data && data.addedRecords) {\r\n changes.addedRecords = data.addedRecords;\r\n return changes;\r\n }\r\n if (data && data.d) {\r\n data = data.d;\r\n }\r\n var args = {};\r\n if (data && 'count' in data) {\r\n args.count = data.count;\r\n }\r\n args.result = data && data.result ? data.result : data;\r\n var isExpand = false;\r\n if (Array.isArray(data.result) && data.result.length) {\r\n var key = 'key';\r\n var val = 'value';\r\n var level = 'level';\r\n if (!isNullOrUndefined(data.result[0][key])) {\r\n args.result = this.formRemoteGroupedData(args.result, 1, pvt.groups.length - 1);\r\n }\r\n if (query && query.lazyLoad.length && pvt.groups.length) {\r\n for (var i = 0; i < query.lazyLoad.length; i++) {\r\n if (query.lazyLoad[i][key] === 'onDemandGroupInfo') {\r\n var value = query.lazyLoad[i][val][level];\r\n if (pvt.groups.length === value) {\r\n isExpand = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (!isExpand) {\r\n this.getAggregateResult(pvt, data, args, groupDs, query);\r\n }\r\n return DataUtil.isNull(args.count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\r\n };\r\n UrlAdaptor.prototype.formRemoteGroupedData = function (data, level, childLevel) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].items.length && Object.keys(data[i].items[0]).indexOf('key') > -1) {\r\n this.formRemoteGroupedData(data[i].items, level + 1, childLevel - 1);\r\n }\r\n }\r\n var uid = 'GroupGuid';\r\n var childLvl = 'childLevels';\r\n var lvl = 'level';\r\n var records = 'records';\r\n data[uid] = consts[uid];\r\n data[lvl] = level;\r\n data[childLvl] = childLevel;\r\n data[records] = data[0].items.length ? this.getGroupedRecords(data, !isNullOrUndefined(data[0].items[records])) : [];\r\n return data;\r\n };\r\n UrlAdaptor.prototype.getGroupedRecords = function (data, hasRecords) {\r\n var childGroupedRecords = [];\r\n var records = 'records';\r\n for (var i = 0; i < data.length; i++) {\r\n if (!hasRecords) {\r\n for (var j = 0; j < data[i].items.length; j++) {\r\n childGroupedRecords.push(data[i].items[j]);\r\n }\r\n }\r\n else {\r\n childGroupedRecords = childGroupedRecords.concat(data[i].items[records]);\r\n }\r\n }\r\n return childGroupedRecords;\r\n };\r\n /**\r\n * Add the group query to the adaptor`s option.\r\n * @param {Object[]} e\r\n * @returns void\r\n */\r\n UrlAdaptor.prototype.onGroup = function (e) {\r\n this.pvt.groups = e;\r\n return e;\r\n };\r\n /**\r\n * Add the aggregate query to the adaptor`s option.\r\n * @param {Aggregates[]} e\r\n * @returns void\r\n */\r\n UrlAdaptor.prototype.onAggregates = function (e) {\r\n this.pvt.aggregates = e;\r\n };\r\n /**\r\n * Prepare the request body based on the newly added, removed and updated records.\r\n * The result is used by the batch request.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {Object} e\r\n */\r\n UrlAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\r\n var url;\r\n var key;\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.removeUrl || dm.dataSource.url,\r\n contentType: 'application/json; charset=utf-8',\r\n dataType: 'json',\r\n data: JSON.stringify(extend({}, {\r\n changed: changes.changedRecords,\r\n added: changes.addedRecords,\r\n deleted: changes.deletedRecords,\r\n action: 'batch',\r\n table: e[url],\r\n key: e[key]\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n /**\r\n * Method will trigger before send the request to server side.\r\n * Used to set the custom header or modify the request options.\r\n * @param {DataManager} dm\r\n * @param {XMLHttpRequest} request\r\n * @returns void\r\n */\r\n UrlAdaptor.prototype.beforeSend = function (dm, request) {\r\n // need to extend this method\r\n };\r\n /**\r\n * Prepare and returns request body which is used to insert a new record in the table.\r\n * @param {DataManager} dm\r\n * @param {Object} data\r\n * @param {string} tableName\r\n */\r\n UrlAdaptor.prototype.insert = function (dm, data, tableName, query) {\r\n return {\r\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n value: data,\r\n table: tableName,\r\n action: 'insert'\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n /**\r\n * Prepare and return request body which is used to remove record from the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {number|string} value\r\n * @param {string} tableName\r\n */\r\n UrlAdaptor.prototype.remove = function (dm, keyField, value, tableName, query) {\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n key: value,\r\n keyColumn: keyField,\r\n table: tableName,\r\n action: 'remove'\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n /**\r\n * Prepare and return request body which is used to update record.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName\r\n */\r\n UrlAdaptor.prototype.update = function (dm, keyField, value, tableName, query) {\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n value: value,\r\n action: 'update',\r\n keyColumn: keyField,\r\n key: DataUtil.getObject(keyField, value),\r\n table: tableName\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n /**\r\n * To generate the predicate based on the filtered query.\r\n * @param {Object[]|string[]|number[]} data\r\n * @param {Query} query\r\n * @hidden\r\n */\r\n UrlAdaptor.prototype.getFiltersFrom = function (data, query) {\r\n var key = query.fKey;\r\n var value;\r\n var prop = key;\r\n var pKey = query.key;\r\n var predicats = [];\r\n if (typeof data[0] !== 'object') {\r\n prop = null;\r\n }\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[0] === 'object') {\r\n value = DataUtil.getObject(pKey || prop, data[i]);\r\n }\r\n else {\r\n value = data[i];\r\n }\r\n predicats.push(new Predicate(key, 'equal', value));\r\n }\r\n return Predicate.or(predicats);\r\n };\r\n UrlAdaptor.prototype.getAggregateResult = function (pvt, data, args, groupDs, query) {\r\n var pData = data;\r\n if (data && data.result) {\r\n pData = data.result;\r\n }\r\n if (pvt && pvt.aggregates && pvt.aggregates.length) {\r\n var agg = pvt.aggregates;\r\n var fn = void 0;\r\n var aggregateData = pData;\r\n var res = {};\r\n if (data.aggregate) {\r\n aggregateData = data.aggregate;\r\n }\r\n for (var i = 0; i < agg.length; i++) {\r\n fn = DataUtil.aggregates[agg[i].type];\r\n if (fn) {\r\n res[agg[i].field + ' - ' + agg[i].type] = fn(aggregateData, agg[i].field);\r\n }\r\n }\r\n args.aggregates = res;\r\n }\r\n var key = 'key';\r\n var isServerGrouping = Array.isArray(data.result) && data.result.length && !isNullOrUndefined(data.result[0][key]);\r\n if (pvt && pvt.groups && pvt.groups.length && !isServerGrouping) {\r\n var groups = pvt.groups;\r\n for (var i = 0; i < groups.length; i++) {\r\n var level = null;\r\n if (!isNullOrUndefined(groupDs)) {\r\n groupDs = DataUtil.group(groupDs, groups[i]);\r\n }\r\n var groupQuery = Query.filterQueries(query.queries, 'onGroup')[i].e;\r\n pData = DataUtil.group(pData, groups[i], pvt.aggregates, level, groupDs, groupQuery.comparer);\r\n }\r\n args.result = pData;\r\n }\r\n return args;\r\n };\r\n UrlAdaptor.prototype.getQueryRequest = function (query) {\r\n var req = { sorts: [], groups: [], filters: [], searches: [], aggregates: [] };\r\n req.sorts = Query.filterQueries(query.queries, 'onSortBy');\r\n req.groups = Query.filterQueries(query.queries, 'onGroup');\r\n req.filters = Query.filterQueries(query.queries, 'onWhere');\r\n req.searches = Query.filterQueries(query.queries, 'onSearch');\r\n req.aggregates = Query.filterQueries(query.queries, 'onAggregates');\r\n return req;\r\n };\r\n UrlAdaptor.prototype.addParams = function (options) {\r\n var req = options.reqParams;\r\n if (options.params.length) {\r\n req.params = {};\r\n }\r\n for (var _i = 0, _a = options.params; _i < _a.length; _i++) {\r\n var tmp = _a[_i];\r\n if (req[tmp.key]) {\r\n throw new Error('Query() - addParams: Custom Param is conflicting other request arguments');\r\n }\r\n req[tmp.key] = tmp.value;\r\n if (tmp.fn) {\r\n req[tmp.key] = tmp.fn.call(options.query, tmp.key, options.query, options.dm);\r\n }\r\n req.params[tmp.key] = req[tmp.key];\r\n }\r\n };\r\n return UrlAdaptor;\r\n}(Adaptor));\r\nexport { UrlAdaptor };\r\n/**\r\n * OData Adaptor that is extended from URL Adaptor, is used for consuming data through OData Service.\r\n * @hidden\r\n */\r\nvar ODataAdaptor = /** @class */ (function (_super) {\r\n __extends(ODataAdaptor, _super);\r\n function ODataAdaptor(props) {\r\n var _this = _super.call(this) || this;\r\n // options replaced the default adaptor options\r\n _this.options = extend({}, _this.options, {\r\n requestType: 'get',\r\n accept: 'application/json;odata=light;q=1,application/json;odata=verbose;q=0.5',\r\n multipartAccept: 'multipart/mixed',\r\n sortBy: '$orderby',\r\n select: '$select',\r\n skip: '$skip',\r\n take: '$top',\r\n count: '$inlinecount',\r\n where: '$filter',\r\n expand: '$expand',\r\n batch: '$batch',\r\n changeSet: '--changeset_',\r\n batchPre: 'batch_',\r\n contentId: 'Content-Id: ',\r\n batchContent: 'Content-Type: multipart/mixed; boundary=',\r\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\r\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\r\n updateType: 'PUT'\r\n });\r\n extend(_this.options, props || {});\r\n return _this;\r\n }\r\n ODataAdaptor.prototype.getModuleName = function () {\r\n return 'ODataAdaptor';\r\n };\r\n /**\r\n * Generate request string based on the filter criteria from query.\r\n * @param {Predicate} pred\r\n * @param {boolean} requiresCast?\r\n */\r\n ODataAdaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\r\n var returnValue = '';\r\n var operator;\r\n var guid;\r\n var val = predicate.value;\r\n var type = typeof val;\r\n var field = predicate.field ? ODataAdaptor.getField(predicate.field) : null;\r\n if (val instanceof Date) {\r\n val = 'datetime\\'' + DataUtil.parse.replacer(val) + '\\'';\r\n }\r\n if (type === 'string') {\r\n val = encodeURIComponent(val);\r\n val = '\\'' + val + '\\'';\r\n if (requiresCast) {\r\n field = 'cast(' + field + ', \\'Edm.String\\')';\r\n }\r\n if (DataUtil.parse.isGuid(val)) {\r\n guid = 'guid';\r\n }\r\n if (predicate.ignoreCase) {\r\n if (!guid) {\r\n field = 'tolower(' + field + ')';\r\n }\r\n val = val.toLowerCase();\r\n }\r\n }\r\n operator = DataUtil.odBiOperator[predicate.operator];\r\n if (operator) {\r\n returnValue += field;\r\n returnValue += operator;\r\n if (guid) {\r\n returnValue += guid;\r\n }\r\n return returnValue + val;\r\n }\r\n if (!isNullOrUndefined(this.getModuleName) && this.getModuleName() === 'ODataV4Adaptor') {\r\n operator = DataUtil.odv4UniOperator[predicate.operator];\r\n }\r\n else {\r\n operator = DataUtil.odUniOperator[predicate.operator];\r\n }\r\n if (operator === 'substringof') {\r\n var temp = val;\r\n val = field;\r\n field = temp;\r\n }\r\n returnValue += operator + '(';\r\n returnValue += field + ',';\r\n if (guid) {\r\n returnValue += guid;\r\n }\r\n returnValue += val + ')';\r\n return returnValue;\r\n };\r\n ODataAdaptor.prototype.addParams = function (options) {\r\n _super.prototype.addParams.call(this, options);\r\n delete options.reqParams.params;\r\n };\r\n /**\r\n * Generate request string based on the multiple filter criteria from query.\r\n * @param {Predicate} pred\r\n * @param {boolean} requiresCast?\r\n */\r\n ODataAdaptor.prototype.onComplexPredicate = function (predicate, query, requiresCast) {\r\n var res = [];\r\n for (var i = 0; i < predicate.predicates.length; i++) {\r\n res.push('(' + this.onEachWhere(predicate.predicates[i], query, requiresCast) + ')');\r\n }\r\n return res.join(' ' + predicate.condition + ' ');\r\n };\r\n /**\r\n * Generate query string based on the multiple filter criteria from query.\r\n * @param {Predicate} filter\r\n * @param {boolean} requiresCast?\r\n */\r\n ODataAdaptor.prototype.onEachWhere = function (filter, query, requiresCast) {\r\n return filter.isComplex ? this.onComplexPredicate(filter, query, requiresCast) : this.onPredicate(filter, query, requiresCast);\r\n };\r\n /**\r\n * Generate query string based on the multiple filter criteria from query.\r\n * @param {string[]} filters\r\n */\r\n ODataAdaptor.prototype.onWhere = function (filters) {\r\n if (this.pvt.search) {\r\n filters.push(this.onEachWhere(this.pvt.search, null, true));\r\n }\r\n return filters.join(' and ');\r\n };\r\n /**\r\n * Generate query string based on the multiple search criteria from query.\r\n * @param {{fields:string[]} e\r\n * @param {string} operator\r\n * @param {string} key\r\n * @param {boolean}} ignoreCase\r\n */\r\n ODataAdaptor.prototype.onEachSearch = function (e) {\r\n if (e.fields && e.fields.length === 0) {\r\n DataUtil.throwError('Query() - Search : oData search requires list of field names to search');\r\n }\r\n var filter = this.pvt.search || [];\r\n for (var i = 0; i < e.fields.length; i++) {\r\n filter.push(new Predicate(e.fields[i], e.operator, e.key, e.ignoreCase));\r\n }\r\n this.pvt.search = filter;\r\n };\r\n /**\r\n * Generate query string based on the search criteria from query.\r\n * @param {Object} e\r\n */\r\n ODataAdaptor.prototype.onSearch = function (e) {\r\n this.pvt.search = Predicate.or(this.pvt.search);\r\n return '';\r\n };\r\n /**\r\n * Generate query string based on multiple sort criteria from query.\r\n * @param {QueryOptions} e\r\n */\r\n ODataAdaptor.prototype.onEachSort = function (e) {\r\n var res = [];\r\n if (e.name instanceof Array) {\r\n for (var i = 0; i < e.name.length; i++) {\r\n res.push(ODataAdaptor.getField(e.name[i]) + (e.direction === 'descending' ? ' desc' : ''));\r\n }\r\n }\r\n else {\r\n res.push(ODataAdaptor.getField(e.name) + (e.direction === 'descending' ? ' desc' : ''));\r\n }\r\n return res.join(',');\r\n };\r\n /**\r\n * Returns sort query string.\r\n * @param {string[]} e\r\n */\r\n ODataAdaptor.prototype.onSortBy = function (e) {\r\n return e.reverse().join(',');\r\n };\r\n /**\r\n * Adds the group query to the adaptor option.\r\n * @param {Object[]} e\r\n * @returns string\r\n */\r\n ODataAdaptor.prototype.onGroup = function (e) {\r\n this.pvt.groups = e;\r\n return [];\r\n };\r\n /**\r\n * Returns the select query string.\r\n * @param {string[]} e\r\n */\r\n ODataAdaptor.prototype.onSelect = function (e) {\r\n for (var i = 0; i < e.length; i++) {\r\n e[i] = ODataAdaptor.getField(e[i]);\r\n }\r\n return e.join(',');\r\n };\r\n /**\r\n * Add the aggregate query to the adaptor option.\r\n * @param {Object[]} e\r\n * @returns string\r\n */\r\n ODataAdaptor.prototype.onAggregates = function (e) {\r\n this.pvt.aggregates = e;\r\n return '';\r\n };\r\n /**\r\n * Returns the query string which requests total count from the data source.\r\n * @param {boolean} e\r\n * @returns string\r\n */\r\n ODataAdaptor.prototype.onCount = function (e) {\r\n return e === true ? 'allpages' : '';\r\n };\r\n /**\r\n * Method will trigger before send the request to server side.\r\n * Used to set the custom header or modify the request options.\r\n * @param {DataManager} dm\r\n * @param {XMLHttpRequest} request\r\n * @param {Ajax} settings?\r\n */\r\n ODataAdaptor.prototype.beforeSend = function (dm, request, settings) {\r\n if (DataUtil.endsWith(settings.url, this.options.batch) && settings.type.toLowerCase() === 'post') {\r\n request.setRequestHeader('Accept', this.options.multipartAccept);\r\n request.setRequestHeader('DataServiceVersion', '2.0');\r\n request.overrideMimeType('text/plain; charset=x-user-defined');\r\n }\r\n else {\r\n request.setRequestHeader('Accept', this.options.accept);\r\n }\r\n request.setRequestHeader('DataServiceVersion', '2.0');\r\n request.setRequestHeader('MaxDataServiceVersion', '2.0');\r\n };\r\n /**\r\n * Returns the data from the query processing.\r\n * @param {DataResult} data\r\n * @param {DataOptions} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Ajax} request?\r\n * @param {CrudOptions} changes?\r\n * @returns aggregateResult\r\n */\r\n ODataAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\r\n var metaCheck = 'odata.metadata';\r\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaCheck]) {\r\n var dataUrls = data[metaCheck].split('/$metadata#');\r\n this.rootUrl = dataUrls[0];\r\n this.resourceTableName = dataUrls[1];\r\n }\r\n var pvtData = 'pvtData';\r\n if (!isNullOrUndefined(data.d)) {\r\n var dataCopy = ((query && query.isCountRequired) ? data.d.results : data.d);\r\n var metaData = '__metadata';\r\n if (!isNullOrUndefined(dataCopy)) {\r\n for (var i = 0; i < dataCopy.length; i++) {\r\n if (!isNullOrUndefined(dataCopy[i][metaData])) {\r\n delete dataCopy[i][metaData];\r\n }\r\n }\r\n }\r\n }\r\n var pvt = request && request[pvtData];\r\n var emptyAndBatch = this.processBatchResponse(data, query, xhr, request, changes);\r\n if (emptyAndBatch) {\r\n return emptyAndBatch;\r\n }\r\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\r\n var count = null;\r\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\r\n if (query && query.isCountRequired) {\r\n var oDataCount = '__count';\r\n if (data[oDataCount] || data['odata.count']) {\r\n count = data[oDataCount] || data['odata.count'];\r\n }\r\n if (data.d) {\r\n data = data.d;\r\n }\r\n if (data[oDataCount] || data['odata.count']) {\r\n count = data[oDataCount] || data['odata.count'];\r\n }\r\n }\r\n if (version === 3 && data.value) {\r\n data = data.value;\r\n }\r\n if (data.d) {\r\n data = data.d;\r\n }\r\n if (version < 3 && data.results) {\r\n data = data.results;\r\n }\r\n var args = {};\r\n args.count = count;\r\n args.result = data;\r\n this.getAggregateResult(pvt, data, args, null, query);\r\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\r\n };\r\n /**\r\n * Converts the request object to query string.\r\n * @param {Object} req\r\n * @param {Query} query\r\n * @param {DataManager} dm\r\n * @returns tableName\r\n */\r\n ODataAdaptor.prototype.convertToQueryString = function (request, query, dm) {\r\n var res = [];\r\n var table = 'table';\r\n var tableName = request[table] || '';\r\n var format = '$format';\r\n delete request[table];\r\n if (dm.dataSource.requiresFormat) {\r\n request[format] = 'json';\r\n }\r\n var keys = Object.keys(request);\r\n for (var _i = 0, keys_4 = keys; _i < keys_4.length; _i++) {\r\n var prop = keys_4[_i];\r\n res.push(prop + '=' + request[prop]);\r\n }\r\n res = res.join('&');\r\n if (dm.dataSource.url && dm.dataSource.url.indexOf('?') !== -1 && !tableName) {\r\n return res;\r\n }\r\n return res.length ? tableName + '?' + res : tableName || '';\r\n };\r\n ODataAdaptor.prototype.localTimeReplacer = function (key, convertObj) {\r\n for (var _i = 0, _a = !isNullOrUndefined(convertObj) ? Object.keys(convertObj) : []; _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n if ((convertObj[prop] instanceof Date)) {\r\n convertObj[prop] = DataUtil.dateParse.toLocalTime(convertObj[prop]);\r\n }\r\n }\r\n return convertObj;\r\n };\r\n /**\r\n * Prepare and returns request body which is used to insert a new record in the table.\r\n * @param {DataManager} dm\r\n * @param {Object} data\r\n * @param {string} tableName?\r\n */\r\n ODataAdaptor.prototype.insert = function (dm, data, tableName) {\r\n return {\r\n url: (dm.dataSource.insertUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : ''),\r\n data: JSON.stringify(data, this.options.localTime ? this.localTimeReplacer : null)\r\n };\r\n };\r\n /**\r\n * Prepare and return request body which is used to remove record from the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {number} value\r\n * @param {string} tableName?\r\n */\r\n ODataAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\r\n var url;\r\n if (typeof value === 'string' && !DataUtil.parse.isGuid(value)) {\r\n url = \"('\" + value + \"')\";\r\n }\r\n else {\r\n url = \"(\" + value + \")\";\r\n }\r\n return {\r\n type: 'DELETE',\r\n url: (dm.dataSource.removeUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url\r\n };\r\n };\r\n /**\r\n * Updates existing record and saves the changes to the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName?\r\n * @returns this\r\n */\r\n ODataAdaptor.prototype.update = function (dm, keyField, value, tableName, query, original) {\r\n if (this.options.updateType === 'PATCH' && !isNullOrUndefined(original)) {\r\n value = this.compareAndRemove(value, original, keyField);\r\n }\r\n var url;\r\n if (typeof value[keyField] === 'string' && !DataUtil.parse.isGuid(value[keyField])) {\r\n url = \"('\" + value[keyField] + \"')\";\r\n }\r\n else {\r\n url = \"(\" + value[keyField] + \")\";\r\n }\r\n return {\r\n type: this.options.updateType,\r\n url: (dm.dataSource.updateUrl || dm.dataSource.url).replace(/\\/*$/, tableName ? '/' + tableName : '') + url,\r\n data: JSON.stringify(value, this.options.localTime ? this.localTimeReplacer : null),\r\n accept: this.options.accept\r\n };\r\n };\r\n /**\r\n * Prepare the request body based on the newly added, removed and updated records.\r\n * The result is used by the batch request.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {RemoteArgs} e\r\n * @returns {Object}\r\n */\r\n ODataAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\r\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\r\n var url = this.rootUrl ? this.rootUrl + '/' + this.options.batch :\r\n dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\r\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\r\n var args = {\r\n url: e.url,\r\n key: e.key,\r\n cid: 1,\r\n cSet: DataUtil.getGuid(this.options.changeSet)\r\n };\r\n var req = '--' + initialGuid + '\\n';\r\n req += 'Content-Type: multipart/mixed; boundary=' + args.cSet.replace('--', '') + '\\n';\r\n this.pvt.changeSet = 0;\r\n req += this.generateInsertRequest(changes.addedRecords, args, dm);\r\n req += this.generateUpdateRequest(changes.changedRecords, args, dm, original ? original.changedRecords : []);\r\n req += this.generateDeleteRequest(changes.deletedRecords, args, dm);\r\n req += args.cSet + '--\\n';\r\n req += '--' + initialGuid + '--';\r\n return {\r\n type: 'POST',\r\n url: url,\r\n dataType: 'json',\r\n contentType: 'multipart/mixed; charset=UTF-8;boundary=' + initialGuid,\r\n data: req\r\n };\r\n };\r\n /**\r\n * Generate the string content from the removed records.\r\n * The result will be send during batch update.\r\n * @param {Object[]} arr\r\n * @param {RemoteArgs} e\r\n * @returns this\r\n */\r\n ODataAdaptor.prototype.generateDeleteRequest = function (arr, e, dm) {\r\n if (!arr) {\r\n return '';\r\n }\r\n var req = '';\r\n var stat = {\r\n 'method': 'DELETE ',\r\n 'url': function (data, i, key) {\r\n var url = DataUtil.getObject(key, data[i]);\r\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\r\n return '(' + url + ')';\r\n }\r\n else if (url instanceof Date) {\r\n var dateTime = data[i][key];\r\n return '(' + dateTime.toJSON() + ')';\r\n }\r\n else {\r\n return \"('\" + url + \"')\";\r\n }\r\n },\r\n 'data': function (data, i) { return ''; }\r\n };\r\n req = this.generateBodyContent(arr, e, stat, dm);\r\n return req + '\\n';\r\n };\r\n /**\r\n * Generate the string content from the inserted records.\r\n * The result will be send during batch update.\r\n * @param {Object[]} arr\r\n * @param {RemoteArgs} e\r\n */\r\n ODataAdaptor.prototype.generateInsertRequest = function (arr, e, dm) {\r\n if (!arr) {\r\n return '';\r\n }\r\n var req = '';\r\n var stat = {\r\n 'method': 'POST ',\r\n 'url': function (data, i, key) { return ''; },\r\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\r\n };\r\n req = this.generateBodyContent(arr, e, stat, dm);\r\n return req;\r\n };\r\n /**\r\n * Generate the string content from the updated records.\r\n * The result will be send during batch update.\r\n * @param {Object[]} arr\r\n * @param {RemoteArgs} e\r\n */\r\n ODataAdaptor.prototype.generateUpdateRequest = function (arr, e, dm, org) {\r\n var _this = this;\r\n if (!arr) {\r\n return '';\r\n }\r\n var req = '';\r\n arr.forEach(function (change) { return change = _this.compareAndRemove(change, org.filter(function (o) { return DataUtil.getObject(e.key, o) === DataUtil.getObject(e.key, change); })[0], e.key); });\r\n var stat = {\r\n 'method': this.options.updateType + ' ',\r\n 'url': function (data, i, key) {\r\n if (typeof data[i][key] === 'number' || DataUtil.parse.isGuid(data[i][key])) {\r\n return '(' + data[i][key] + ')';\r\n }\r\n else if (data[i][key] instanceof Date) {\r\n var date = data[i][key];\r\n return '(' + date.toJSON() + ')';\r\n }\r\n else {\r\n return \"('\" + data[i][key] + \"')\";\r\n }\r\n },\r\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\r\n };\r\n req = this.generateBodyContent(arr, e, stat, dm);\r\n return req;\r\n };\r\n ODataAdaptor.getField = function (prop) {\r\n return prop.replace(/\\./g, '/');\r\n };\r\n ODataAdaptor.prototype.generateBodyContent = function (arr, e, stat, dm) {\r\n var req = '';\r\n for (var i = 0; i < arr.length; i++) {\r\n req += '\\n' + e.cSet + '\\n';\r\n req += this.options.changeSetContent + '\\n\\n';\r\n req += stat.method;\r\n if (stat.method === 'POST ') {\r\n req += (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\r\n }\r\n else if (stat.method === 'PUT ' || stat.method === 'PATCH ') {\r\n req += (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\r\n }\r\n else if (stat.method === 'DELETE ') {\r\n req += (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url) + stat.url(arr, i, e.key) + ' HTTP/1.1\\n';\r\n }\r\n req += 'Accept: ' + this.options.accept + '\\n';\r\n req += 'Content-Id: ' + this.pvt.changeSet++ + '\\n';\r\n req += this.options.batchChangeSetContentType + '\\n';\r\n if (!isNullOrUndefined(arr[i]['@odata.etag'])) {\r\n req += 'If-Match: ' + arr[i]['@odata.etag'] + '\\n\\n';\r\n delete arr[i]['@odata.etag'];\r\n }\r\n else {\r\n req += '\\n';\r\n }\r\n req += stat.data(arr, i);\r\n }\r\n return req;\r\n };\r\n ODataAdaptor.prototype.processBatchResponse = function (data, query, xhr, request, changes) {\r\n if (xhr && xhr.getResponseHeader('Content-Type') && xhr.getResponseHeader('Content-Type').indexOf('xml') !== -1) {\r\n return (query.isCountRequired ? { result: [], count: 0 } : []);\r\n }\r\n if (request && this.options.batch && DataUtil.endsWith(request.url, this.options.batch) && request.type.toLowerCase() === 'post') {\r\n var guid = xhr.getResponseHeader('Content-Type');\r\n var cIdx = void 0;\r\n var jsonObj = void 0;\r\n var d = data + '';\r\n guid = guid.substring(guid.indexOf('=batchresponse') + 1);\r\n d = d.split(guid);\r\n if (d.length < 2) {\r\n return {};\r\n }\r\n d = d[1];\r\n var exVal = /(?:\\bContent-Type.+boundary=)(changesetresponse.+)/i.exec(d);\r\n if (exVal) {\r\n d.replace(exVal[0], '');\r\n }\r\n var changeGuid = exVal ? exVal[1] : '';\r\n d = d.split(changeGuid);\r\n for (var i = d.length; i > -1; i--) {\r\n if (!/\\bContent-ID:/i.test(d[i]) || !/\\bHTTP.+201/.test(d[i])) {\r\n continue;\r\n }\r\n cIdx = parseInt(/\\bContent-ID: (\\d+)/i.exec(d[i])[1], 10);\r\n if (changes.addedRecords[cIdx]) {\r\n jsonObj = DataUtil.parse.parseJson(/^\\{.+\\}/m.exec(d[i])[0]);\r\n extend({}, changes.addedRecords[cIdx], this.processResponse(jsonObj));\r\n }\r\n }\r\n return changes;\r\n }\r\n return null;\r\n };\r\n ODataAdaptor.prototype.compareAndRemove = function (data, original, key) {\r\n var _this = this;\r\n if (isNullOrUndefined(original)) {\r\n return data;\r\n }\r\n Object.keys(data).forEach(function (prop) {\r\n if (prop !== key && prop !== '@odata.etag') {\r\n if (DataUtil.isPlainObject(data[prop])) {\r\n _this.compareAndRemove(data[prop], original[prop]);\r\n var final = Object.keys(data[prop]).filter(function (data) { return data !== '@odata.etag'; });\r\n if (final.length === 0) {\r\n delete data[prop];\r\n }\r\n }\r\n else if (data[prop] === original[prop]) {\r\n delete data[prop];\r\n }\r\n else if (data[prop] && original[prop] && data[prop].valueOf() === original[prop].valueOf()) {\r\n delete data[prop];\r\n }\r\n }\r\n });\r\n return data;\r\n };\r\n return ODataAdaptor;\r\n}(UrlAdaptor));\r\nexport { ODataAdaptor };\r\n/**\r\n * The OData v4 is an improved version of OData protocols.\r\n * The DataManager uses the ODataV4Adaptor to consume OData v4 services.\r\n * @hidden\r\n */\r\nvar ODataV4Adaptor = /** @class */ (function (_super) {\r\n __extends(ODataV4Adaptor, _super);\r\n function ODataV4Adaptor(props) {\r\n var _this = _super.call(this, props) || this;\r\n // options replaced the default adaptor options\r\n _this.options = extend({}, _this.options, {\r\n requestType: 'get',\r\n accept: 'application/json, text/javascript, */*; q=0.01',\r\n multipartAccept: 'multipart/mixed',\r\n sortBy: '$orderby',\r\n select: '$select',\r\n skip: '$skip',\r\n take: '$top',\r\n count: '$count',\r\n search: '$search',\r\n where: '$filter',\r\n expand: '$expand',\r\n batch: '$batch',\r\n changeSet: '--changeset_',\r\n batchPre: 'batch_',\r\n contentId: 'Content-Id: ',\r\n batchContent: 'Content-Type: multipart/mixed; boundary=',\r\n changeSetContent: 'Content-Type: application/http\\nContent-Transfer-Encoding: binary ',\r\n batchChangeSetContentType: 'Content-Type: application/json; charset=utf-8 ',\r\n updateType: 'PATCH',\r\n localTime: false,\r\n apply: '$apply'\r\n });\r\n extend(_this.options, props || {});\r\n return _this;\r\n }\r\n /**\r\n * @hidden\r\n */\r\n ODataV4Adaptor.prototype.getModuleName = function () {\r\n return 'ODataV4Adaptor';\r\n };\r\n /**\r\n * Returns the query string which requests total count from the data source.\r\n * @param {boolean} e\r\n * @returns string\r\n */\r\n ODataV4Adaptor.prototype.onCount = function (e) {\r\n return e === true ? 'true' : '';\r\n };\r\n /**\r\n * Generate request string based on the filter criteria from query.\r\n * @param {Predicate} pred\r\n * @param {boolean} requiresCast?\r\n */\r\n ODataV4Adaptor.prototype.onPredicate = function (predicate, query, requiresCast) {\r\n var returnValue = '';\r\n var val = predicate.value;\r\n var isDate = val instanceof Date;\r\n if (query instanceof Query) {\r\n var queries = this.getQueryRequest(query);\r\n for (var i = 0; i < queries.filters.length; i++) {\r\n if (queries.filters[i].e.key === predicate.value) {\r\n requiresCast = true;\r\n }\r\n }\r\n }\r\n returnValue = _super.prototype.onPredicate.call(this, predicate, query, requiresCast);\r\n if (isDate) {\r\n returnValue = returnValue.replace(/datetime'(.*)'$/, '$1');\r\n }\r\n if (DataUtil.parse.isGuid(val)) {\r\n returnValue = returnValue.replace('guid', '').replace(/'/g, '');\r\n }\r\n return returnValue;\r\n };\r\n /**\r\n * Generate query string based on the multiple search criteria from query.\r\n * @param {{fields:string[]} e\r\n * @param {string} operator\r\n * @param {string} key\r\n * @param {boolean}} ignoreCase\r\n */\r\n ODataV4Adaptor.prototype.onEachSearch = function (e) {\r\n var search = this.pvt.searches || [];\r\n search.push(e.key);\r\n this.pvt.searches = search;\r\n };\r\n /**\r\n * Generate query string based on the search criteria from query.\r\n * @param {Object} e\r\n */\r\n ODataV4Adaptor.prototype.onSearch = function (e) {\r\n return this.pvt.searches.join(' OR ');\r\n };\r\n /**\r\n * Returns the expand query string.\r\n * @param {string} e\r\n */\r\n ODataV4Adaptor.prototype.onExpand = function (e) {\r\n var selected = {};\r\n var expanded = {};\r\n var expands = e.expands.slice();\r\n var exArr = [];\r\n var selects = e.selects.filter(function (item) { return item.indexOf('.') > -1; });\r\n selects.forEach(function (select) {\r\n var splits = select.split('.');\r\n if (!(splits[0] in selected)) {\r\n selected[splits[0]] = [];\r\n }\r\n if (splits.length == 2) {\r\n selected[splits[0]].push('$select=' + splits[1]);\r\n }\r\n else {\r\n var sel = '$select=' + splits[splits.length - 1];\r\n var exp = '';\r\n var close_1 = '';\r\n for (var i = 1; i < splits.length - 1; i++) {\r\n exp = exp + '$expand=' + splits[i] + '(';\r\n close_1 = close_1 + ')';\r\n }\r\n selected[splits[0]].push(exp + sel + close_1);\r\n }\r\n });\r\n //Auto expand from select query\r\n Object.keys(selected).forEach(function (expand) {\r\n if ((expands.indexOf(expand) === -1)) {\r\n expands.push(expand);\r\n }\r\n });\r\n expands.forEach(function (expand) {\r\n expanded[expand] = expand in selected ? expand + \"(\" + selected[expand].join(';') + \")\" : expand;\r\n });\r\n Object.keys(expanded).forEach(function (ex) { return exArr.push(expanded[ex]); });\r\n return exArr.join(',');\r\n };\r\n /**\r\n * Returns the groupby query string.\r\n * @param {string} e\r\n */\r\n ODataV4Adaptor.prototype.onDistinct = function (distinctFields) {\r\n var fields = distinctFields.map(function (field) { return ODataAdaptor.getField(field); }).join(',');\r\n return \"groupby((\" + fields + \"))\";\r\n };\r\n /**\r\n * Returns the select query string.\r\n * @param {string[]} e\r\n */\r\n ODataV4Adaptor.prototype.onSelect = function (e) {\r\n return _super.prototype.onSelect.call(this, e.filter(function (item) { return item.indexOf('.') === -1; }));\r\n };\r\n /**\r\n * Method will trigger before send the request to server side.\r\n * Used to set the custom header or modify the request options.\r\n * @param {DataManager} dm\r\n * @param {XMLHttpRequest} request\r\n * @param {Ajax} settings\r\n * @returns void\r\n */\r\n ODataV4Adaptor.prototype.beforeSend = function (dm, request, settings) {\r\n if (settings.type === 'POST' || settings.type === 'PUT' || settings.type === 'PATCH') {\r\n request.setRequestHeader('Prefer', 'return=representation');\r\n }\r\n request.setRequestHeader('Accept', this.options.accept);\r\n };\r\n /**\r\n * Returns the data from the query processing.\r\n * @param {DataResult} data\r\n * @param {DataOptions} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Ajax} request?\r\n * @param {CrudOptions} changes?\r\n * @returns aggregateResult\r\n */\r\n ODataV4Adaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\r\n var metaName = '@odata.context';\r\n if ((request && request.type === 'GET') && !this.rootUrl && data[metaName]) {\r\n var dataUrl = data[metaName].split('/$metadata#');\r\n this.rootUrl = dataUrl[0];\r\n this.resourceTableName = dataUrl[1];\r\n }\r\n var pvtData = 'pvtData';\r\n var pvt = request && request[pvtData];\r\n var emptyAndBatch = _super.prototype.processBatchResponse.call(this, data, query, xhr, request, changes);\r\n if (emptyAndBatch) {\r\n return emptyAndBatch;\r\n }\r\n var count = null;\r\n var dataCount = '@odata.count';\r\n if (query && query.isCountRequired) {\r\n if (dataCount in data) {\r\n count = data[dataCount];\r\n }\r\n }\r\n data = !isNullOrUndefined(data.value) ? data.value : data;\r\n var args = {};\r\n args.count = count;\r\n args.result = data;\r\n this.getAggregateResult(pvt, data, args, null, query);\r\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: count, aggregates: args.aggregates };\r\n };\r\n return ODataV4Adaptor;\r\n}(ODataAdaptor));\r\nexport { ODataV4Adaptor };\r\n/**\r\n * The Web API is a programmatic interface to define the request and response messages system that is mostly exposed in JSON or XML.\r\n * The DataManager uses the WebApiAdaptor to consume Web API.\r\n * Since this adaptor is targeted to interact with Web API created using OData endpoint, it is extended from ODataAdaptor\r\n * @hidden\r\n */\r\nvar WebApiAdaptor = /** @class */ (function (_super) {\r\n __extends(WebApiAdaptor, _super);\r\n function WebApiAdaptor() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n WebApiAdaptor.prototype.getModuleName = function () {\r\n return 'WebApiAdaptor';\r\n };\r\n /**\r\n * Prepare and returns request body which is used to insert a new record in the table.\r\n * @param {DataManager} dm\r\n * @param {Object} data\r\n * @param {string} tableName?\r\n */\r\n WebApiAdaptor.prototype.insert = function (dm, data, tableName) {\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.url,\r\n data: JSON.stringify(data)\r\n };\r\n };\r\n /**\r\n * Prepare and return request body which is used to remove record from the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {number} value\r\n * @param {string} tableName?\r\n */\r\n WebApiAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\r\n return {\r\n type: 'DELETE',\r\n url: dm.dataSource.url + '/' + value,\r\n data: JSON.stringify(value)\r\n };\r\n };\r\n /**\r\n * Prepare and return request body which is used to update record.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName?\r\n */\r\n WebApiAdaptor.prototype.update = function (dm, keyField, value, tableName) {\r\n return {\r\n type: 'PUT',\r\n url: dm.dataSource.url,\r\n data: JSON.stringify(value)\r\n };\r\n };\r\n WebApiAdaptor.prototype.batchRequest = function (dm, changes, e) {\r\n var _this = this;\r\n var initialGuid = e.guid = DataUtil.getGuid(this.options.batchPre);\r\n var url = dm.dataSource.url.replace(/\\/*$/, '/' + this.options.batch);\r\n e.url = this.resourceTableName ? this.resourceTableName : e.url;\r\n var req = [];\r\n var _loop_1 = function (i, x) {\r\n changes.addedRecords.forEach(function (j, d) {\r\n var stat = {\r\n 'method': 'POST ',\r\n 'url': function (data, i, key) { return ''; },\r\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\r\n };\r\n req.push('--' + initialGuid);\r\n req.push('Content-Type: application/http; msgtype=request', '');\r\n req.push('POST ' + '/api/' + (dm.dataSource.insertUrl || dm.dataSource.crudUrl || e.url)\r\n + stat.url(changes.addedRecords, i, e.key) + ' HTTP/1.1');\r\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\r\n req.push('Host: ' + location.host);\r\n req.push('', j ? JSON.stringify(j) : '');\r\n });\r\n };\r\n //insertion\r\n for (var i = 0, x = changes.addedRecords.length; i < x; i++) {\r\n _loop_1(i, x);\r\n }\r\n var _loop_2 = function (i, x) {\r\n changes.changedRecords.forEach(function (j, d) {\r\n var stat = {\r\n 'method': _this.options.updateType + ' ',\r\n 'url': function (data, i, key) { return ''; },\r\n 'data': function (data, i) { return JSON.stringify(data[i]) + '\\n\\n'; }\r\n };\r\n req.push('--' + initialGuid);\r\n req.push('Content-Type: application/http; msgtype=request', '');\r\n req.push('PUT ' + '/api/' + (dm.dataSource.updateUrl || dm.dataSource.crudUrl || e.url)\r\n + stat.url(changes.changedRecords, i, e.key) + ' HTTP/1.1');\r\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\r\n req.push('Host: ' + location.host);\r\n req.push('', j ? JSON.stringify(j) : '');\r\n });\r\n };\r\n //updation \r\n for (var i = 0, x = changes.changedRecords.length; i < x; i++) {\r\n _loop_2(i, x);\r\n }\r\n var _loop_3 = function (i, x) {\r\n changes.deletedRecords.forEach(function (j, d) {\r\n var state = {\r\n 'mtd': 'DELETE ',\r\n 'url': function (data, i, key) {\r\n var url = DataUtil.getObject(key, data[i]);\r\n if (typeof url === 'number' || DataUtil.parse.isGuid(url)) {\r\n return '/' + url;\r\n }\r\n else if (url instanceof Date) {\r\n var datTime = data[i][key];\r\n return '/' + datTime.toJSON();\r\n }\r\n else {\r\n return \"/'\" + url + \"'\";\r\n }\r\n },\r\n 'data': function (data, i) { return ''; }\r\n };\r\n req.push('--' + initialGuid);\r\n req.push('Content-Type: application/http; msgtype=request', '');\r\n req.push('DELETE ' + '/api/' + (dm.dataSource.removeUrl || dm.dataSource.crudUrl || e.url)\r\n + state.url(changes.deletedRecords, i, e.key) + ' HTTP/1.1');\r\n req.push('Content-Type: ' + 'application/json; charset=utf-8');\r\n req.push('Host: ' + location.host);\r\n req.push('', j ? JSON.stringify(j) : '');\r\n });\r\n };\r\n //deletion\r\n for (var i = 0, x = changes.deletedRecords.length; i < x; i++) {\r\n _loop_3(i, x);\r\n }\r\n req.push('--' + initialGuid + '--', '');\r\n return {\r\n type: 'POST',\r\n url: url,\r\n contentType: 'multipart/mixed; boundary=' + initialGuid,\r\n data: req.join('\\r\\n')\r\n };\r\n };\r\n /**\r\n * Method will trigger before send the request to server side.\r\n * Used to set the custom header or modify the request options.\r\n * @param {DataManager} dm\r\n * @param {XMLHttpRequest} request\r\n * @param {Ajax} settings\r\n * @returns void\r\n */\r\n WebApiAdaptor.prototype.beforeSend = function (dm, request, settings) {\r\n request.setRequestHeader('Accept', 'application/json, text/javascript, */*; q=0.01');\r\n };\r\n /**\r\n * Returns the data from the query processing.\r\n * @param {DataResult} data\r\n * @param {DataOptions} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Ajax} request?\r\n * @param {CrudOptions} changes?\r\n * @returns aggregateResult\r\n */\r\n WebApiAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\r\n var pvtData = 'pvtData';\r\n var pvt = request && request[pvtData];\r\n var count = null;\r\n var args = {};\r\n if (request && request.type.toLowerCase() !== 'post') {\r\n var versionCheck = xhr && request.getResponseHeader('DataServiceVersion');\r\n var version = (versionCheck && parseInt(versionCheck, 10)) || 2;\r\n if (query && query.isCountRequired) {\r\n if (!DataUtil.isNull(data.Count)) {\r\n count = data.Count;\r\n }\r\n }\r\n if (version < 3 && data.Items) {\r\n data = data.Items;\r\n }\r\n args.count = count;\r\n args.result = data;\r\n this.getAggregateResult(pvt, data, args, null, query);\r\n }\r\n args.result = args.result || data;\r\n return DataUtil.isNull(count) ? args.result : { result: args.result, count: args.count, aggregates: args.aggregates };\r\n };\r\n return WebApiAdaptor;\r\n}(ODataAdaptor));\r\nexport { WebApiAdaptor };\r\n/**\r\n * WebMethodAdaptor can be used by DataManager to interact with web method.\r\n * @hidden\r\n */\r\nvar WebMethodAdaptor = /** @class */ (function (_super) {\r\n __extends(WebMethodAdaptor, _super);\r\n function WebMethodAdaptor() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Prepare the request body based on the query.\r\n * The query information can be accessed at the WebMethod using variable named `value`.\r\n * @param {DataManager} dm\r\n * @param {Query} query\r\n * @param {Object[]} hierarchyFilters?\r\n * @returns application\r\n */\r\n WebMethodAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\r\n var obj = new UrlAdaptor().processQuery(dm, query, hierarchyFilters);\r\n var getData = 'data';\r\n var data = DataUtil.parse.parseJson(obj[getData]);\r\n var result = {};\r\n var value = 'value';\r\n if (data.param) {\r\n for (var i = 0; i < data.param.length; i++) {\r\n var param = data.param[i];\r\n var key = Object.keys(param)[0];\r\n result[key] = param[key];\r\n }\r\n }\r\n result[value] = data;\r\n var pvtData = 'pvtData';\r\n var url = 'url';\r\n return {\r\n data: JSON.stringify(result),\r\n url: obj[url],\r\n pvtData: obj[pvtData],\r\n type: 'POST',\r\n contentType: 'application/json; charset=utf-8'\r\n };\r\n };\r\n return WebMethodAdaptor;\r\n}(UrlAdaptor));\r\nexport { WebMethodAdaptor };\r\n/**\r\n * RemoteSaveAdaptor, extended from JsonAdaptor and it is used for binding local data and performs all DataManager queries in client-side.\r\n * It interacts with server-side only for CRUD operations.\r\n * @hidden\r\n */\r\nvar RemoteSaveAdaptor = /** @class */ (function (_super) {\r\n __extends(RemoteSaveAdaptor, _super);\r\n /**\r\n * @hidden\r\n */\r\n function RemoteSaveAdaptor() {\r\n var _this = _super.call(this) || this;\r\n setValue('beforeSend', UrlAdaptor.prototype.beforeSend, _this);\r\n return _this;\r\n }\r\n RemoteSaveAdaptor.prototype.insert = function (dm, data, tableName, query, position) {\r\n this.pvt.position = position;\r\n this.updateType = 'add';\r\n return {\r\n url: dm.dataSource.insertUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n value: data,\r\n table: tableName,\r\n action: 'insert'\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n RemoteSaveAdaptor.prototype.remove = function (dm, keyField, val, tableName, query) {\r\n _super.prototype.remove.call(this, dm, keyField, val);\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.removeUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n key: val,\r\n keyColumn: keyField,\r\n table: tableName,\r\n action: 'remove'\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n RemoteSaveAdaptor.prototype.update = function (dm, keyField, val, tableName, query) {\r\n this.updateType = 'update';\r\n this.updateKey = keyField;\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.updateUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n data: JSON.stringify(extend({}, {\r\n value: val,\r\n action: 'update',\r\n keyColumn: keyField,\r\n key: val[keyField],\r\n table: tableName\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n RemoteSaveAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes, e) {\r\n var i;\r\n var newData = request ? JSON.parse(request.data) : data;\r\n data = newData.action === 'batch' ? DataUtil.parse.parseJson(data) : data;\r\n if (this.updateType === 'add') {\r\n _super.prototype.insert.call(this, ds, data, null, null, this.pvt.position);\r\n }\r\n if (this.updateType === 'update') {\r\n _super.prototype.update.call(this, ds, this.updateKey, data);\r\n }\r\n this.updateType = undefined;\r\n if (data.added) {\r\n for (i = 0; i < data.added.length; i++) {\r\n _super.prototype.insert.call(this, ds, data.added[i]);\r\n }\r\n }\r\n if (data.changed) {\r\n for (i = 0; i < data.changed.length; i++) {\r\n _super.prototype.update.call(this, ds, e.key, data.changed[i]);\r\n }\r\n }\r\n if (data.deleted) {\r\n for (i = 0; i < data.deleted.length; i++) {\r\n _super.prototype.remove.call(this, ds, e.key, data.deleted[i]);\r\n }\r\n }\r\n return data;\r\n };\r\n /**\r\n * Prepare the request body based on the newly added, removed and updated records.\r\n * Also perform the changes in the locally cached data to sync with the remote data.\r\n * The result is used by the batch request.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {RemoteArgs} e\r\n */\r\n RemoteSaveAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\r\n return {\r\n type: 'POST',\r\n url: dm.dataSource.batchUrl || dm.dataSource.crudUrl || dm.dataSource.url,\r\n contentType: 'application/json; charset=utf-8',\r\n dataType: 'json',\r\n data: JSON.stringify(extend({}, {\r\n changed: changes.changedRecords,\r\n added: changes.addedRecords,\r\n deleted: changes.deletedRecords,\r\n action: 'batch',\r\n table: e.url,\r\n key: e.key\r\n }, DataUtil.getAddParams(this, dm, query)))\r\n };\r\n };\r\n RemoteSaveAdaptor.prototype.addParams = function (options) {\r\n var urlParams = new UrlAdaptor();\r\n urlParams.addParams(options);\r\n };\r\n return RemoteSaveAdaptor;\r\n}(JsonAdaptor));\r\nexport { RemoteSaveAdaptor };\r\n/**\r\n * Ajax Adaptor that is extended from URL Adaptor, is used for handle data operations with user defined functions.\r\n * @hidden\r\n */\r\nvar CustomDataAdaptor = /** @class */ (function (_super) {\r\n __extends(CustomDataAdaptor, _super);\r\n function CustomDataAdaptor(props) {\r\n var _this = _super.call(this) || this;\r\n // options replaced the default adaptor options\r\n _this.options = extend({}, _this.options, {\r\n getData: new Function(),\r\n addRecord: new Function(),\r\n updateRecord: new Function(),\r\n deleteRecord: new Function(),\r\n batchUpdate: new Function()\r\n });\r\n extend(_this.options, props || {});\r\n return _this;\r\n }\r\n CustomDataAdaptor.prototype.getModuleName = function () {\r\n return 'CustomDataAdaptor';\r\n };\r\n return CustomDataAdaptor;\r\n}(UrlAdaptor));\r\nexport { CustomDataAdaptor };\r\n/**\r\n * The GraphqlAdaptor that is extended from URL Adaptor, is used for retrieving data from the Graphql server.\r\n * It interacts with the Graphql server with all the DataManager Queries and performs CRUD operations.\r\n * @hidden\r\n */\r\nvar GraphQLAdaptor = /** @class */ (function (_super) {\r\n __extends(GraphQLAdaptor, _super);\r\n function GraphQLAdaptor(options) {\r\n var _this = _super.call(this) || this;\r\n _this.opt = options;\r\n _this.schema = _this.opt.response;\r\n _this.query = _this.opt.query;\r\n _this.getVariables = _this.opt.getVariables ? _this.opt.getVariables : function () { };\r\n _this.getQuery = function () { return _this.query; };\r\n return _this;\r\n }\r\n GraphQLAdaptor.prototype.getModuleName = function () {\r\n return 'GraphQLAdaptor';\r\n };\r\n /**\r\n * Process the JSON data based on the provided queries.\r\n * @param {DataManager} dm\r\n * @param {Query} query?\r\n */\r\n GraphQLAdaptor.prototype.processQuery = function (datamanager, query) {\r\n var urlQuery = _super.prototype.processQuery.apply(this, arguments);\r\n var dm = JSON.parse(urlQuery.data);\r\n // constructing GraphQL parameters\r\n var keys = ['skip', 'take', 'sorted', 'table', 'select', 'where',\r\n 'search', 'requiresCounts', 'aggregates', 'params'];\r\n var temp = {};\r\n var str = 'searchwhereparams';\r\n keys.filter(function (e) {\r\n temp[e] = str.indexOf(e) > -1 ? JSON.stringify(dm[e]) : dm[e];\r\n });\r\n var vars = this.getVariables() || {};\r\n vars['datamanager'] = temp;\r\n var data = JSON.stringify({\r\n query: this.getQuery(),\r\n variables: vars\r\n });\r\n urlQuery.data = data;\r\n return urlQuery;\r\n };\r\n /**\r\n * Returns the data from the query processing.\r\n * It will also cache the data for later usage.\r\n * @param {DataResult} data\r\n * @param {DataManager} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Object} request?\r\n * @returns DataResult\r\n */\r\n GraphQLAdaptor.prototype.processResponse = function (resData, ds, query, xhr, request) {\r\n var res = resData;\r\n var count;\r\n var aggregates;\r\n var result = getValue(this.schema.result, res.data);\r\n if (this.schema.count) {\r\n count = getValue(this.schema.count, res.data);\r\n }\r\n if (this.schema.aggregates) {\r\n aggregates = getValue(this.schema.aggregates, res.data);\r\n aggregates = !isNullOrUndefined(aggregates) ? DataUtil.parse.parseJson(aggregates) : aggregates;\r\n }\r\n var pvt = request.pvtData || {};\r\n var args = { result: result, aggregates: aggregates };\r\n var data = args;\r\n if (pvt && pvt.groups && pvt.groups.length) {\r\n this.getAggregateResult(pvt, data, args, null, query);\r\n }\r\n return !isNullOrUndefined(count) ? { result: args.result, count: count, aggregates: aggregates } : args.result;\r\n };\r\n /**\r\n * Prepare and returns request body which is used to insert a new record in the table.\r\n */\r\n GraphQLAdaptor.prototype.insert = function () {\r\n var inserted = _super.prototype.insert.apply(this, arguments);\r\n return this.generateCrudData(inserted, 'insert');\r\n };\r\n /**\r\n * Prepare and returns request body which is used to update a new record in the table.\r\n */\r\n GraphQLAdaptor.prototype.update = function () {\r\n var inserted = _super.prototype.update.apply(this, arguments);\r\n return this.generateCrudData(inserted, 'update');\r\n };\r\n /**\r\n * Prepare and returns request body which is used to remove a new record in the table.\r\n */\r\n GraphQLAdaptor.prototype.remove = function () {\r\n var inserted = _super.prototype.remove.apply(this, arguments);\r\n return this.generateCrudData(inserted, 'remove');\r\n };\r\n /**\r\n * Prepare the request body based on the newly added, removed and updated records.\r\n * The result is used by the batch request.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {Object} e\r\n * @param {Query} query\r\n * @param {Object} original\r\n */\r\n GraphQLAdaptor.prototype.batchRequest = function (dm, changes, e, query, original) {\r\n var batch = _super.prototype.batchRequest.apply(this, arguments);\r\n var bData = JSON.parse(batch.data);\r\n bData.key = e.key;\r\n batch.data = JSON.stringify(bData);\r\n return this.generateCrudData(batch, 'batch');\r\n };\r\n GraphQLAdaptor.prototype.generateCrudData = function (crudData, action) {\r\n var parsed = JSON.parse(crudData.data);\r\n crudData.data = JSON.stringify({\r\n query: this.opt.getMutation(action),\r\n variables: parsed\r\n });\r\n return crudData;\r\n };\r\n return GraphQLAdaptor;\r\n}(UrlAdaptor));\r\nexport { GraphQLAdaptor };\r\n/**\r\n * Cache Adaptor is used to cache the data of the visited pages. It prevents new requests for the previously visited pages.\r\n * You can configure cache page size and duration of caching by using cachingPageSize and timeTillExpiration properties of the DataManager\r\n * @hidden\r\n */\r\nvar CacheAdaptor = /** @class */ (function (_super) {\r\n __extends(CacheAdaptor, _super);\r\n /**\r\n * Constructor for CacheAdaptor class.\r\n * @param {CacheAdaptor} adaptor?\r\n * @param {number} timeStamp?\r\n * @param {number} pageSize?\r\n * @hidden\r\n */\r\n function CacheAdaptor(adaptor, timeStamp, pageSize) {\r\n var _this = _super.call(this) || this;\r\n _this.isCrudAction = false;\r\n _this.isInsertAction = false;\r\n if (!isNullOrUndefined(adaptor)) {\r\n _this.cacheAdaptor = adaptor;\r\n }\r\n _this.pageSize = pageSize;\r\n _this.guidId = DataUtil.getGuid('cacheAdaptor');\r\n var obj = { keys: [], results: [] };\r\n window.localStorage.setItem(_this.guidId, JSON.stringify(obj));\r\n var guid = _this.guidId;\r\n if (!isNullOrUndefined(timeStamp)) {\r\n setInterval(function () {\r\n var data;\r\n data = DataUtil.parse.parseJson(window.localStorage.getItem(guid));\r\n var forDel = [];\r\n for (var i = 0; i < data.results.length; i++) {\r\n var currentTime = +new Date();\r\n var requestTime = +new Date(data.results[i].timeStamp);\r\n data.results[i].timeStamp = currentTime - requestTime;\r\n if (currentTime - requestTime > timeStamp) {\r\n forDel.push(i);\r\n }\r\n }\r\n for (var i = 0; i < forDel.length; i++) {\r\n data.results.splice(forDel[i], 1);\r\n data.keys.splice(forDel[i], 1);\r\n }\r\n window.localStorage.removeItem(guid);\r\n window.localStorage.setItem(guid, JSON.stringify(data));\r\n }, timeStamp);\r\n }\r\n return _this;\r\n }\r\n /**\r\n * It will generate the key based on the URL when we send a request to server.\r\n * @param {string} url\r\n * @param {Query} query?\r\n * @hidden\r\n */\r\n CacheAdaptor.prototype.generateKey = function (url, query) {\r\n var queries = this.getQueryRequest(query);\r\n var singles = Query.filterQueryLists(query.queries, ['onSelect', 'onPage', 'onSkip', 'onTake', 'onRange']);\r\n var key = url;\r\n var page = 'onPage';\r\n if (page in singles) {\r\n key += singles[page].pageIndex;\r\n }\r\n queries.sorts.forEach(function (obj) {\r\n key += obj.e.direction + obj.e.fieldName;\r\n });\r\n queries.groups.forEach(function (obj) {\r\n key += obj.e.fieldName;\r\n });\r\n queries.searches.forEach(function (obj) {\r\n key += obj.e.searchKey;\r\n });\r\n for (var filter = 0; filter < queries.filters.length; filter++) {\r\n var currentFilter = queries.filters[filter];\r\n if (currentFilter.e.isComplex) {\r\n var newQuery = query.clone();\r\n newQuery.queries = [];\r\n for (var i = 0; i < currentFilter.e.predicates.length; i++) {\r\n newQuery.queries.push({ fn: 'onWhere', e: currentFilter.e.predicates[i], filter: query.queries.filter });\r\n }\r\n key += currentFilter.e.condition + this.generateKey(url, newQuery);\r\n }\r\n else {\r\n key += currentFilter.e.field + currentFilter.e.operator + currentFilter.e.value;\r\n }\r\n }\r\n return key;\r\n };\r\n /**\r\n * Process the query to generate request body.\r\n * If the data is already cached, it will return the cached data.\r\n * @param {DataManager} dm\r\n * @param {Query} query?\r\n * @param {Object[]} hierarchyFilters?\r\n */\r\n CacheAdaptor.prototype.processQuery = function (dm, query, hierarchyFilters) {\r\n var key = this.generateKey(dm.dataSource.url, query);\r\n var cachedItems;\r\n cachedItems = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\r\n var data = cachedItems ? cachedItems.results[cachedItems.keys.indexOf(key)] : null;\r\n if (data != null && !this.isCrudAction && !this.isInsertAction) {\r\n return data;\r\n }\r\n this.isCrudAction = null;\r\n this.isInsertAction = null;\r\n return this.cacheAdaptor.processQuery.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\r\n };\r\n /**\r\n * Returns the data from the query processing.\r\n * It will also cache the data for later usage.\r\n * @param {DataResult} data\r\n * @param {DataManager} ds?\r\n * @param {Query} query?\r\n * @param {XMLHttpRequest} xhr?\r\n * @param {Ajax} request?\r\n * @param {CrudOptions} changes?\r\n */\r\n CacheAdaptor.prototype.processResponse = function (data, ds, query, xhr, request, changes) {\r\n if (this.isInsertAction || (request && this.cacheAdaptor.options.batch &&\r\n DataUtil.endsWith(request.url, this.cacheAdaptor.options.batch) && request.type.toLowerCase() === 'post')) {\r\n return this.cacheAdaptor.processResponse(data, ds, query, xhr, request, changes);\r\n }\r\n data = this.cacheAdaptor.processResponse.apply(this.cacheAdaptor, [].slice.call(arguments, 0));\r\n var key = query ? this.generateKey(ds.dataSource.url, query) : ds.dataSource.url;\r\n var obj = {};\r\n obj = DataUtil.parse.parseJson(window.localStorage.getItem(this.guidId));\r\n var index = obj.keys.indexOf(key);\r\n if (index !== -1) {\r\n obj.results.splice(index, 1);\r\n obj.keys.splice(index, 1);\r\n }\r\n obj.results[obj.keys.push(key) - 1] = { keys: key, result: data.result, timeStamp: new Date(), count: data.count };\r\n while (obj.results.length > this.pageSize) {\r\n obj.results.splice(0, 1);\r\n obj.keys.splice(0, 1);\r\n }\r\n window.localStorage.setItem(this.guidId, JSON.stringify(obj));\r\n return data;\r\n };\r\n /**\r\n * Method will trigger before send the request to server side. Used to set the custom header or modify the request options.\r\n * @param {DataManager} dm\r\n * @param {XMLHttpRequest} request\r\n * @param {Ajax} settings?\r\n */\r\n CacheAdaptor.prototype.beforeSend = function (dm, request, settings) {\r\n if (!isNullOrUndefined(this.cacheAdaptor.options.batch) && DataUtil.endsWith(settings.url, this.cacheAdaptor.options.batch)\r\n && settings.type.toLowerCase() === 'post') {\r\n request.setRequestHeader('Accept', this.cacheAdaptor.options.multipartAccept);\r\n }\r\n if (!dm.dataSource.crossDomain) {\r\n request.setRequestHeader('Accept', this.cacheAdaptor.options.accept);\r\n }\r\n };\r\n /**\r\n * Updates existing record and saves the changes to the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName\r\n */\r\n CacheAdaptor.prototype.update = function (dm, keyField, value, tableName) {\r\n this.isCrudAction = true;\r\n return this.cacheAdaptor.update(dm, keyField, value, tableName);\r\n };\r\n /**\r\n * Prepare and returns request body which is used to insert a new record in the table.\r\n * @param {DataManager} dm\r\n * @param {Object} data\r\n * @param {string} tableName?\r\n */\r\n CacheAdaptor.prototype.insert = function (dm, data, tableName) {\r\n this.isInsertAction = true;\r\n return this.cacheAdaptor.insert(dm, data, tableName);\r\n };\r\n /**\r\n * Prepare and return request body which is used to remove record from the table.\r\n * @param {DataManager} dm\r\n * @param {string} keyField\r\n * @param {Object} value\r\n * @param {string} tableName?\r\n */\r\n CacheAdaptor.prototype.remove = function (dm, keyField, value, tableName) {\r\n this.isCrudAction = true;\r\n return this.cacheAdaptor.remove(dm, keyField, value, tableName);\r\n };\r\n /**\r\n * Prepare the request body based on the newly added, removed and updated records.\r\n * The result is used by the batch request.\r\n * @param {DataManager} dm\r\n * @param {CrudOptions} changes\r\n * @param {RemoteArgs} e\r\n */\r\n CacheAdaptor.prototype.batchRequest = function (dm, changes, e) {\r\n return this.cacheAdaptor.batchRequest(dm, changes, e);\r\n };\r\n return CacheAdaptor;\r\n}(UrlAdaptor));\r\nexport { CacheAdaptor };\r\n","/**\n * Data modules\n */\nexport * from './manager';\nexport * from './query';\nexport * from './adaptors';\nexport * from './util';\n","import { Ajax } from '@syncfusion/ej2-base';\r\nimport { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { DataUtil } from './util';\r\nimport { Query } from './query';\r\nimport { ODataAdaptor, JsonAdaptor, CacheAdaptor, RemoteSaveAdaptor, CustomDataAdaptor } from './adaptors';\r\n/**\r\n * DataManager is used to manage and manipulate relational data.\r\n */\r\nvar DataManager = /** @class */ (function () {\r\n /**\r\n * Constructor for DataManager class\r\n * @param {DataOptions|JSON[]} dataSource?\r\n * @param {Query} query?\r\n * @param {AdaptorOptions|string} adaptor?\r\n * @hidden\r\n */\r\n function DataManager(dataSource, query, adaptor) {\r\n var _this = this;\r\n /** @hidden */\r\n this.dateParse = true;\r\n /** @hidden */\r\n this.timeZoneHandling = true;\r\n this.requests = [];\r\n if (!dataSource && !this.dataSource) {\r\n dataSource = [];\r\n }\r\n adaptor = adaptor || dataSource.adaptor;\r\n if (dataSource && dataSource.timeZoneHandling === false) {\r\n this.timeZoneHandling = dataSource.timeZoneHandling;\r\n }\r\n var data;\r\n if (dataSource instanceof Array) {\r\n data = {\r\n json: dataSource,\r\n offline: true\r\n };\r\n }\r\n else if (typeof dataSource === 'object') {\r\n if (!dataSource.json) {\r\n dataSource.json = [];\r\n }\r\n data = {\r\n url: dataSource.url,\r\n insertUrl: dataSource.insertUrl,\r\n removeUrl: dataSource.removeUrl,\r\n updateUrl: dataSource.updateUrl,\r\n crudUrl: dataSource.crudUrl,\r\n batchUrl: dataSource.batchUrl,\r\n json: dataSource.json,\r\n headers: dataSource.headers,\r\n accept: dataSource.accept,\r\n data: dataSource.data,\r\n timeTillExpiration: dataSource.timeTillExpiration,\r\n cachingPageSize: dataSource.cachingPageSize,\r\n enableCaching: dataSource.enableCaching,\r\n requestType: dataSource.requestType,\r\n key: dataSource.key,\r\n crossDomain: dataSource.crossDomain,\r\n jsonp: dataSource.jsonp,\r\n dataType: dataSource.dataType,\r\n offline: dataSource.offline !== undefined ? dataSource.offline\r\n : dataSource.adaptor instanceof RemoteSaveAdaptor || dataSource.adaptor instanceof CustomDataAdaptor ?\r\n false : dataSource.url ? false : true,\r\n requiresFormat: dataSource.requiresFormat\r\n };\r\n }\r\n else {\r\n DataUtil.throwError('DataManager: Invalid arguments');\r\n }\r\n if (data.requiresFormat === undefined && !DataUtil.isCors()) {\r\n data.requiresFormat = isNullOrUndefined(data.crossDomain) ? true : data.crossDomain;\r\n }\r\n if (data.dataType === undefined) {\r\n data.dataType = 'json';\r\n }\r\n this.dataSource = data;\r\n this.defaultQuery = query;\r\n if (data.url && data.offline && !data.json.length) {\r\n this.isDataAvailable = false;\r\n this.adaptor = adaptor || new ODataAdaptor();\r\n this.dataSource.offline = false;\r\n this.ready = this.executeQuery(query || new Query());\r\n this.ready.then(function (e) {\r\n _this.dataSource.offline = true;\r\n _this.isDataAvailable = true;\r\n data.json = e.result;\r\n _this.adaptor = new JsonAdaptor();\r\n });\r\n }\r\n else {\r\n this.adaptor = data.offline ? new JsonAdaptor() : new ODataAdaptor();\r\n }\r\n if (!data.jsonp && this.adaptor instanceof ODataAdaptor) {\r\n data.jsonp = 'callback';\r\n }\r\n this.adaptor = adaptor || this.adaptor;\r\n if (data.enableCaching) {\r\n this.adaptor = new CacheAdaptor(this.adaptor, data.timeTillExpiration, data.cachingPageSize);\r\n }\r\n return this;\r\n }\r\n /**\r\n * Overrides DataManager's default query with given query.\r\n * @param {Query} query - Defines the new default query.\r\n */\r\n DataManager.prototype.setDefaultQuery = function (query) {\r\n this.defaultQuery = query;\r\n return this;\r\n };\r\n /**\r\n * Executes the given query with local data source.\r\n * @param {Query} query - Defines the query to retrieve data.\r\n */\r\n DataManager.prototype.executeLocal = function (query) {\r\n if (!this.defaultQuery && !(query instanceof Query)) {\r\n DataUtil.throwError('DataManager - executeLocal() : A query is required to execute');\r\n }\r\n if (!this.dataSource.json) {\r\n DataUtil.throwError('DataManager - executeLocal() : Json data is required to execute');\r\n }\r\n query = query || this.defaultQuery;\r\n var result = this.adaptor.processQuery(this, query);\r\n if (query.subQuery) {\r\n var from = query.subQuery.fromTable;\r\n var lookup = query.subQuery.lookups;\r\n var res = query.isCountRequired ? result.result :\r\n result;\r\n if (lookup && lookup instanceof Array) {\r\n DataUtil.buildHierarchy(query.subQuery.fKey, from, res, lookup, query.subQuery.key);\r\n }\r\n for (var j = 0; j < res.length; j++) {\r\n if (res[j][from] instanceof Array) {\r\n res[j] = extend({}, {}, res[j]);\r\n res[j][from] = this.adaptor.processResponse(query.subQuery.using(new DataManager(res[j][from].slice(0))).executeLocal(), this, query);\r\n }\r\n }\r\n }\r\n return this.adaptor.processResponse(result, this, query);\r\n };\r\n /**\r\n * Executes the given query with either local or remote data source.\r\n * It will be executed as asynchronously and returns Promise object which will be resolved or rejected after action completed.\r\n * @param {Query|Function} query - Defines the query to retrieve data.\r\n * @param {Function} done - Defines the callback function and triggers when the Promise is resolved.\r\n * @param {Function} fail - Defines the callback function and triggers when the Promise is rejected.\r\n * @param {Function} always - Defines the callback function and triggers when the Promise is resolved or rejected.\r\n */\r\n DataManager.prototype.executeQuery = function (query, done, fail, always) {\r\n var _this = this;\r\n var makeRequest = 'makeRequest';\r\n if (typeof query === 'function') {\r\n always = fail;\r\n fail = done;\r\n done = query;\r\n query = null;\r\n }\r\n if (!query) {\r\n query = this.defaultQuery;\r\n }\r\n if (!(query instanceof Query)) {\r\n DataUtil.throwError('DataManager - executeQuery() : A query is required to execute');\r\n }\r\n var deffered = new Deferred();\r\n var args = { query: query };\r\n if (!this.dataSource.offline && (this.dataSource.url !== undefined && this.dataSource.url !== '')\r\n || (!isNullOrUndefined(this.adaptor[makeRequest])) || this.isCustomDataAdaptor(this.adaptor)) {\r\n var result = this.adaptor.processQuery(this, query);\r\n if (!isNullOrUndefined(this.adaptor[makeRequest])) {\r\n this.adaptor[makeRequest](result, deffered, args, query);\r\n }\r\n else if (!isNullOrUndefined(result.url) || this.isCustomDataAdaptor(this.adaptor)) {\r\n this.makeRequest(result, deffered, args, query);\r\n }\r\n else {\r\n args = DataManager.getDeferedArgs(query, result, args);\r\n deffered.resolve(args);\r\n }\r\n }\r\n else {\r\n DataManager.nextTick(function () {\r\n var res = _this.executeLocal(query);\r\n args = DataManager.getDeferedArgs(query, res, args);\r\n deffered.resolve(args);\r\n });\r\n }\r\n if (done || fail) {\r\n deffered.promise.then(done, fail);\r\n }\r\n if (always) {\r\n deffered.promise.then(always, always);\r\n }\r\n return deffered.promise;\r\n };\r\n DataManager.getDeferedArgs = function (query, result, args) {\r\n if (query.isCountRequired) {\r\n args.result = result.result;\r\n args.count = result.count;\r\n args.aggregates = result.aggregates;\r\n }\r\n else {\r\n args.result = result;\r\n }\r\n return args;\r\n };\r\n DataManager.nextTick = function (fn) {\r\n (window.setImmediate || window.setTimeout)(fn, 0);\r\n };\r\n DataManager.prototype.extendRequest = function (url, fnSuccess, fnFail) {\r\n return extend({}, {\r\n type: 'GET',\r\n dataType: this.dataSource.dataType,\r\n crossDomain: this.dataSource.crossDomain,\r\n jsonp: this.dataSource.jsonp,\r\n cache: true,\r\n processData: false,\r\n onSuccess: fnSuccess,\r\n onFailure: fnFail\r\n }, url);\r\n };\r\n // tslint:disable-next-line:max-func-body-length\r\n DataManager.prototype.makeRequest = function (url, deffered, args, query) {\r\n var _this = this;\r\n var isSelector = !!query.subQuerySelector;\r\n var fnFail = function (e) {\r\n args.error = e;\r\n deffered.reject(args);\r\n };\r\n var process = function (data, count, xhr, request, actual, aggregates, virtualSelectRecords) {\r\n args.xhr = xhr;\r\n args.count = count ? parseInt(count.toString(), 10) : 0;\r\n args.result = data;\r\n args.request = request;\r\n args.aggregates = aggregates;\r\n args.actual = actual;\r\n args.virtualSelectRecords = virtualSelectRecords;\r\n deffered.resolve(args);\r\n };\r\n var fnQueryChild = function (data, selector) {\r\n var subDeffer = new Deferred();\r\n var childArgs = { parent: args };\r\n query.subQuery.isChild = true;\r\n var subUrl = _this.adaptor.processQuery(_this, query.subQuery, data ? _this.adaptor.processResponse(data) : selector);\r\n var childReq = _this.makeRequest(subUrl, subDeffer, childArgs, query.subQuery);\r\n if (!isSelector) {\r\n subDeffer.then(function (subData) {\r\n if (data) {\r\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, data, subData, query.subQuery.key);\r\n process(data, subData.count, subData.xhr);\r\n }\r\n }, fnFail);\r\n }\r\n return childReq;\r\n };\r\n var fnSuccess = function (data, request) {\r\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\r\n if (!isNullOrUndefined(data['errors'])) {\r\n return fnFail(data['errors'], request);\r\n }\r\n }\r\n if (_this.isCustomDataAdaptor(_this.adaptor)) {\r\n request = extend({}, _this.ajaxReqOption, request);\r\n }\r\n if (request.httpRequest.getResponseHeader('Content-Type').indexOf('xml') === -1 && _this.dateParse) {\r\n data = DataUtil.parse.parseJson(data);\r\n }\r\n var result = _this.adaptor.processResponse(data, _this, query, request.httpRequest, request);\r\n var count = 0;\r\n var aggregates = null;\r\n var virtualSelectRecords = 'virtualSelectRecords';\r\n var virtualRecords = data[virtualSelectRecords];\r\n if (query.isCountRequired) {\r\n count = result.count;\r\n aggregates = result.aggregates;\r\n result = result.result;\r\n }\r\n if (!query.subQuery) {\r\n process(result, count, request.httpRequest, request.type, data, aggregates, virtualRecords);\r\n return;\r\n }\r\n if (!isSelector) {\r\n fnQueryChild(result, request);\r\n }\r\n };\r\n var req = this.extendRequest(url, fnSuccess, fnFail);\r\n if (!this.isCustomDataAdaptor(this.adaptor)) {\r\n var ajax_1 = new Ajax(req);\r\n ajax_1.beforeSend = function () {\r\n _this.beforeSend(ajax_1.httpRequest, ajax_1);\r\n };\r\n req = ajax_1.send();\r\n req.catch(function (e) { return true; }); // to handle failure remote requests. \r\n this.requests.push(ajax_1);\r\n }\r\n else {\r\n this.ajaxReqOption = req;\r\n var request = req;\r\n this.adaptor.options.getData({\r\n data: request.data,\r\n onSuccess: request.onSuccess, onFailure: request.onFailure\r\n });\r\n }\r\n if (isSelector) {\r\n var promise = void 0;\r\n var res = query.subQuerySelector.call(this, { query: query.subQuery, parent: query });\r\n if (res && res.length) {\r\n promise = Promise.all([req, fnQueryChild(null, res)]);\r\n promise.then(function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = args[0];\r\n var pResult = _this.adaptor.processResponse(result[0], _this, query, _this.requests[0].httpRequest, _this.requests[0]);\r\n var count = 0;\r\n if (query.isCountRequired) {\r\n count = pResult.count;\r\n pResult = pResult.result;\r\n }\r\n var cResult = _this.adaptor.processResponse(result[1], _this, query.subQuery, _this.requests[1].httpRequest, _this.requests[1]);\r\n count = 0;\r\n if (query.subQuery.isCountRequired) {\r\n count = cResult.count;\r\n cResult = cResult.result;\r\n }\r\n DataUtil.buildHierarchy(query.subQuery.fKey, query.subQuery.fromTable, pResult, cResult, query.subQuery.key);\r\n isSelector = false;\r\n process(pResult, count, _this.requests[0].httpRequest);\r\n });\r\n }\r\n else {\r\n isSelector = false;\r\n }\r\n }\r\n return req;\r\n };\r\n DataManager.prototype.beforeSend = function (request, settings) {\r\n this.adaptor.beforeSend(this, request, settings);\r\n var headers = this.dataSource.headers;\r\n var props;\r\n for (var i = 0; headers && i < headers.length; i++) {\r\n props = [];\r\n var keys = Object.keys(headers[i]);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var prop = keys_1[_i];\r\n props.push(prop);\r\n request.setRequestHeader(prop, headers[i][prop]);\r\n }\r\n }\r\n };\r\n /**\r\n * Save bulk changes to the given table name.\r\n * User can add a new record, edit an existing record, and delete a record at the same time.\r\n * If the datasource from remote, then updated in a single post.\r\n * @param {Object} changes - Defines the CrudOptions.\r\n * @param {string} key - Defines the column field.\r\n * @param {string|Query} tableName - Defines the table name.\r\n * @param {Query} query - Sets default query for the DataManager.\r\n */\r\n DataManager.prototype.saveChanges = function (changes, key, tableName, query, original) {\r\n var _this = this;\r\n if (tableName instanceof Query) {\r\n query = tableName;\r\n tableName = null;\r\n }\r\n var args = {\r\n url: tableName,\r\n key: key || this.dataSource.key\r\n };\r\n var req = this.adaptor.batchRequest(this, changes, args, query || new Query(), original);\r\n var doAjaxRequest = 'doAjaxRequest';\r\n if (this.dataSource.offline) {\r\n return req;\r\n }\r\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\r\n return this.adaptor[doAjaxRequest](req);\r\n }\r\n else if (!this.isCustomDataAdaptor(this.adaptor)) {\r\n var deff_1 = new Deferred();\r\n var ajax_2 = new Ajax(req);\r\n ajax_2.beforeSend = function () {\r\n _this.beforeSend(ajax_2.httpRequest, ajax_2);\r\n };\r\n ajax_2.onSuccess = function (data, request) {\r\n if (_this.isGraphQLAdaptor(_this.adaptor)) {\r\n if (!isNullOrUndefined(data['errors'])) {\r\n ajax_2.onFailure(JSON.stringify(data['errors']));\r\n }\r\n }\r\n deff_1.resolve(_this.adaptor.processResponse(data, _this, null, request.httpRequest, request, changes, args));\r\n };\r\n ajax_2.onFailure = function (e) {\r\n deff_1.reject([{ error: e }]);\r\n };\r\n ajax_2.send().catch(function (e) { return true; }); // to handle the failure requests. \r\n return deff_1.promise;\r\n }\r\n else {\r\n return this.doAjaxRequest(req, this.adaptor.options.batchUpdate);\r\n }\r\n };\r\n /**\r\n * Inserts new record in the given table.\r\n * @param {Object} data - Defines the data to insert.\r\n * @param {string|Query} tableName - Defines the table name.\r\n * @param {Query} query - Sets default query for the DataManager.\r\n */\r\n DataManager.prototype.insert = function (data, tableName, query, position) {\r\n if (tableName instanceof Query) {\r\n query = tableName;\r\n tableName = null;\r\n }\r\n var req = this.adaptor.insert(this, data, tableName, query, position);\r\n var doAjaxRequest = 'doAjaxRequest';\r\n if (this.dataSource.offline) {\r\n return req;\r\n }\r\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\r\n return this.adaptor[doAjaxRequest](req);\r\n }\r\n else {\r\n return this.doAjaxRequest(req, this.adaptor.options.addRecord);\r\n }\r\n };\r\n /**\r\n * Removes data from the table with the given key.\r\n * @param {string} keyField - Defines the column field.\r\n * @param {Object} value - Defines the value to find the data in the specified column.\r\n * @param {string|Query} tableName - Defines the table name\r\n * @param {Query} query - Sets default query for the DataManager.\r\n */\r\n DataManager.prototype.remove = function (keyField, value, tableName, query) {\r\n if (typeof value === 'object') {\r\n value = DataUtil.getObject(keyField, value);\r\n }\r\n if (tableName instanceof Query) {\r\n query = tableName;\r\n tableName = null;\r\n }\r\n var res = this.adaptor.remove(this, keyField, value, tableName, query);\r\n var doAjaxRequest = 'doAjaxRequest';\r\n if (this.dataSource.offline) {\r\n return res;\r\n }\r\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\r\n return this.adaptor[doAjaxRequest](res);\r\n }\r\n else {\r\n var remove = this.adaptor.options.deleteRecord;\r\n return this.doAjaxRequest(res, remove);\r\n }\r\n };\r\n /**\r\n * Updates existing record in the given table.\r\n * @param {string} keyField - Defines the column field.\r\n * @param {Object} value - Defines the value to find the data in the specified column.\r\n * @param {string|Query} tableName - Defines the table name\r\n * @param {Query} query - Sets default query for the DataManager.\r\n */\r\n DataManager.prototype.update = function (keyField, value, tableName, query, original) {\r\n if (tableName instanceof Query) {\r\n query = tableName;\r\n tableName = null;\r\n }\r\n var res = this.adaptor.update(this, keyField, value, tableName, query, original);\r\n var doAjaxRequest = 'doAjaxRequest';\r\n if (this.dataSource.offline) {\r\n return res;\r\n }\r\n if (!isNullOrUndefined(this.adaptor[doAjaxRequest])) {\r\n return this.adaptor[doAjaxRequest](res);\r\n }\r\n else {\r\n var update = this.adaptor.options.updateRecord;\r\n return this.doAjaxRequest(res, update);\r\n }\r\n };\r\n DataManager.prototype.isCustomDataAdaptor = function (dataSource) {\r\n return this.adaptor.getModuleName &&\r\n this.adaptor.getModuleName() === 'CustomDataAdaptor';\r\n };\r\n DataManager.prototype.isGraphQLAdaptor = function (dataSource) {\r\n return this.adaptor.getModuleName &&\r\n this.adaptor.getModuleName() === 'GraphQLAdaptor';\r\n };\r\n DataManager.prototype.successFunc = function (record, request) {\r\n if (this.isGraphQLAdaptor(this.adaptor)) {\r\n var data = JSON.parse(record);\r\n if (!isNullOrUndefined(data['errors'])) {\r\n this.failureFunc(JSON.stringify(data['errors']));\r\n }\r\n }\r\n if (this.isCustomDataAdaptor(this.adaptor)) {\r\n request = extend({}, this.ajaxReqOption, request);\r\n }\r\n try {\r\n DataUtil.parse.parseJson(record);\r\n }\r\n catch (e) {\r\n record = [];\r\n }\r\n record = this.adaptor.processResponse(DataUtil.parse.parseJson(record), this, null, request.httpRequest, request);\r\n this.ajaxDeffered.resolve(record);\r\n };\r\n ;\r\n DataManager.prototype.failureFunc = function (e) {\r\n this.ajaxDeffered.reject([{ error: e }]);\r\n };\r\n ;\r\n DataManager.prototype.doAjaxRequest = function (res, ajaxFunc) {\r\n var _this = this;\r\n res = extend({}, {\r\n type: 'POST',\r\n contentType: 'application/json; charset=utf-8',\r\n processData: false\r\n }, res);\r\n this.ajaxDeffered = new Deferred();\r\n if (!this.isCustomDataAdaptor(this.adaptor)) {\r\n var ajax_3 = new Ajax(res);\r\n ajax_3.beforeSend = function () {\r\n _this.beforeSend(ajax_3.httpRequest, ajax_3);\r\n };\r\n ajax_3.onSuccess = this.successFunc.bind(this);\r\n ajax_3.onFailure = this.failureFunc.bind(this);\r\n ajax_3.send().catch(function (e) { return true; }); // to handle the failure requests.\r\n }\r\n else {\r\n this.ajaxReqOption = res;\r\n ajaxFunc.call(this, {\r\n data: res.data, onSuccess: this.successFunc.bind(this),\r\n onFailure: this.failureFunc.bind(this)\r\n });\r\n }\r\n return this.ajaxDeffered.promise;\r\n };\r\n return DataManager;\r\n}());\r\nexport { DataManager };\r\n/**\r\n * Deferred is used to handle asynchronous operation.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n /**\r\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\r\n */\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n /**\r\n * Defines the callback function triggers when the Deferred object is resolved.\r\n */\r\n this.then = this.promise.then.bind(this.promise);\r\n /**\r\n * Defines the callback function triggers when the Deferred object is rejected.\r\n */\r\n this.catch = this.promise.catch.bind(this.promise);\r\n }\r\n return Deferred;\r\n}());\r\nexport { Deferred };\r\n","import { DataUtil } from './util';\r\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\r\n/**\r\n * Query class is used to build query which is used by the DataManager to communicate with datasource.\r\n */\r\nvar Query = /** @class */ (function () {\r\n /**\r\n * Constructor for Query class.\r\n * @param {string|string[]} from?\r\n * @hidden\r\n */\r\n function Query(from) {\r\n /** @hidden */\r\n this.subQuery = null;\r\n /** @hidden */\r\n this.isChild = false;\r\n /** @hidden */\r\n this.distincts = [];\r\n this.queries = [];\r\n this.key = '';\r\n this.fKey = '';\r\n if (typeof from === 'string') {\r\n this.fromTable = from;\r\n }\r\n else if (from && from instanceof Array) {\r\n this.lookups = from;\r\n }\r\n this.expands = [];\r\n this.sortedColumns = [];\r\n this.groupedColumns = [];\r\n this.subQuery = null;\r\n this.isChild = false;\r\n this.params = [];\r\n this.lazyLoad = [];\r\n return this;\r\n }\r\n /**\r\n * Sets the primary key.\r\n * @param {string} field - Defines the column field.\r\n */\r\n Query.prototype.setKey = function (field) {\r\n this.key = field;\r\n return this;\r\n };\r\n /**\r\n * Sets default DataManager to execute query.\r\n * @param {DataManager} dataManager - Defines the DataManager.\r\n */\r\n Query.prototype.using = function (dataManager) {\r\n this.dataManager = dataManager;\r\n return this;\r\n };\r\n /**\r\n * Executes query with the given DataManager.\r\n * @param {DataManager} dataManager - Defines the DataManager.\r\n * @param {Function} done - Defines the success callback.\r\n * @param {Function} fail - Defines the failure callback.\r\n * @param {Function} always - Defines the callback which will be invoked on either success or failure.\r\n *\r\n *
    \r\n     * let dataManager: DataManager = new DataManager([{ ID: '10' }, { ID: '2' }, { ID: '1' }, { ID: '20' }]);\r\n     * let query: Query = new Query();\r\n     * query.sortBy('ID', (x: string, y: string): number => { return parseInt(x, 10) - parseInt(y, 10) });\r\n     * let promise: Promise< Object > = query.execute(dataManager);\r\n     * promise.then((e: { result: Object }) => { });\r\n     * 
    \r\n */\r\n Query.prototype.execute = function (dataManager, done, fail, always) {\r\n dataManager = dataManager || this.dataManager;\r\n if (dataManager) {\r\n return dataManager.executeQuery(this, done, fail, always);\r\n }\r\n return DataUtil.throwError('Query - execute() : dataManager needs to be is set using \"using\" function or should be passed as argument');\r\n };\r\n /**\r\n * Executes query with the local datasource.\r\n * @param {DataManager} dataManager - Defines the DataManager.\r\n */\r\n Query.prototype.executeLocal = function (dataManager) {\r\n dataManager = dataManager || this.dataManager;\r\n if (dataManager) {\r\n return dataManager.executeLocal(this);\r\n }\r\n return DataUtil.throwError('Query - executeLocal() : dataManager needs to be is set using \"using\" function or should be passed as argument');\r\n };\r\n /**\r\n * Creates deep copy of the Query object.\r\n */\r\n Query.prototype.clone = function () {\r\n var cloned = new Query();\r\n cloned.queries = this.queries.slice(0);\r\n cloned.key = this.key;\r\n cloned.isChild = this.isChild;\r\n cloned.dataManager = this.dataManager;\r\n cloned.fromTable = this.fromTable;\r\n cloned.params = this.params.slice(0);\r\n cloned.expands = this.expands.slice(0);\r\n cloned.sortedColumns = this.sortedColumns.slice(0);\r\n cloned.groupedColumns = this.groupedColumns.slice(0);\r\n cloned.subQuerySelector = this.subQuerySelector;\r\n cloned.subQuery = this.subQuery;\r\n cloned.fKey = this.fKey;\r\n cloned.isCountRequired = this.isCountRequired;\r\n cloned.distincts = this.distincts.slice(0);\r\n cloned.lazyLoad = this.lazyLoad.slice(0);\r\n return cloned;\r\n };\r\n /**\r\n * Specifies the name of table to retrieve data in query execution.\r\n * @param {string} tableName - Defines the table name.\r\n */\r\n Query.prototype.from = function (tableName) {\r\n this.fromTable = tableName;\r\n return this;\r\n };\r\n /**\r\n * Adds additional parameter which will be sent along with the request which will be generated while DataManager execute.\r\n * @param {string} key - Defines the key of additional parameter.\r\n * @param {Function|string} value - Defines the value for the key.\r\n */\r\n Query.prototype.addParams = function (key, value) {\r\n if (typeof value === 'function') {\r\n this.params.push({ key: key, fn: value });\r\n }\r\n else {\r\n this.params.push({ key: key, value: value });\r\n }\r\n return this;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n Query.prototype.distinct = function (fields) {\r\n if (typeof fields === 'string') {\r\n this.distincts = [].slice.call([fields], 0);\r\n }\r\n else {\r\n this.distincts = fields.slice(0);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Expands the related table.\r\n * @param {string|Object[]} tables\r\n */\r\n Query.prototype.expand = function (tables) {\r\n if (typeof tables === 'string') {\r\n this.expands = [].slice.call([tables], 0);\r\n }\r\n else {\r\n this.expands = tables.slice(0);\r\n }\r\n return this;\r\n };\r\n /**\r\n * Filter data with given filter criteria.\r\n * @param {string|Predicate} fieldName - Defines the column field or Predicate.\r\n * @param {string} operator - Defines the operator how to filter data.\r\n * @param {string|number|boolean} value - Defines the values to match with data.\r\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\r\n * filter data with case insensitive.\r\n */\r\n Query.prototype.where = function (fieldName, operator, value, ignoreCase, ignoreAccent) {\r\n operator = operator ? (operator).toLowerCase() : null;\r\n var predicate = null;\r\n if (typeof fieldName === 'string') {\r\n predicate = new Predicate(fieldName, operator, value, ignoreCase, ignoreAccent);\r\n }\r\n else if (fieldName instanceof Predicate) {\r\n predicate = fieldName;\r\n }\r\n this.queries.push({\r\n fn: 'onWhere',\r\n e: predicate\r\n });\r\n return this;\r\n };\r\n /**\r\n * Search data with given search criteria.\r\n * @param {string|number|boolean} searchKey - Defines the search key.\r\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\r\n * @param {string} operator - Defines the operator how to search data.\r\n * @param {boolean} ignoreCase - If ignore case set to false, then filter data with exact match or else\r\n * filter data with case insensitive.\r\n */\r\n Query.prototype.search = function (searchKey, fieldNames, operator, ignoreCase, ignoreAccent) {\r\n if (typeof fieldNames === 'string') {\r\n fieldNames = [fieldNames];\r\n }\r\n if (!operator || operator === 'none') {\r\n operator = 'contains';\r\n }\r\n var comparer = DataUtil.fnOperators[operator];\r\n this.queries.push({\r\n fn: 'onSearch',\r\n e: {\r\n fieldNames: fieldNames,\r\n operator: operator,\r\n searchKey: searchKey,\r\n ignoreCase: ignoreCase,\r\n ignoreAccent: ignoreAccent,\r\n comparer: comparer\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Sort the data with given sort criteria.\r\n * By default, sort direction is ascending.\r\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\r\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\r\n */\r\n Query.prototype.sortBy = function (fieldName, comparer, isFromGroup) {\r\n return this.sortByForeignKey(fieldName, comparer, isFromGroup);\r\n };\r\n /**\r\n * Sort the data with given sort criteria.\r\n * By default, sort direction is ascending.\r\n * @param {string|string[]} fieldName - Defines the single or collection of column fields.\r\n * @param {string|Function} comparer - Defines the sort direction or custom sort comparer function.\r\n * @param {string} direction - Defines the sort direction .\r\n */\r\n Query.prototype.sortByForeignKey = function (fieldName, comparer, isFromGroup, direction) {\r\n var order = !isNullOrUndefined(direction) ? direction : 'ascending';\r\n var sorts;\r\n var temp;\r\n if (typeof fieldName === 'string' && DataUtil.endsWith(fieldName.toLowerCase(), ' desc')) {\r\n fieldName = fieldName.replace(/ desc$/i, '');\r\n comparer = 'descending';\r\n }\r\n if (!comparer || typeof comparer === 'string') {\r\n order = comparer ? comparer.toLowerCase() : 'ascending';\r\n comparer = DataUtil.fnSort(comparer);\r\n }\r\n if (isFromGroup) {\r\n sorts = Query.filterQueries(this.queries, 'onSortBy');\r\n for (var i = 0; i < sorts.length; i++) {\r\n temp = sorts[i].e.fieldName;\r\n if (typeof temp === 'string') {\r\n if (temp === fieldName) {\r\n return this;\r\n }\r\n }\r\n else if (temp instanceof Array) {\r\n for (var j = 0; j < temp.length; j++) {\r\n if (temp[j] === fieldName || fieldName.toLowerCase() === temp[j] + ' desc') {\r\n return this;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.queries.push({\r\n fn: 'onSortBy',\r\n e: {\r\n fieldName: fieldName,\r\n comparer: comparer,\r\n direction: order\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Sorts data in descending order.\r\n * @param {string} fieldName - Defines the column field.\r\n */\r\n Query.prototype.sortByDesc = function (fieldName) {\r\n return this.sortBy(fieldName, 'descending');\r\n };\r\n /**\r\n * Groups data with the given field name.\r\n * @param {string} fieldName - Defines the column field.\r\n */\r\n Query.prototype.group = function (fieldName, fn, format) {\r\n this.sortBy(fieldName, null, true);\r\n this.queries.push({\r\n fn: 'onGroup',\r\n e: {\r\n fieldName: fieldName,\r\n comparer: fn ? fn : null,\r\n format: format ? format : null\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Gets data based on the given page index and size.\r\n * @param {number} pageIndex - Defines the current page index.\r\n * @param {number} pageSize - Defines the no of records per page.\r\n */\r\n Query.prototype.page = function (pageIndex, pageSize) {\r\n this.queries.push({\r\n fn: 'onPage',\r\n e: {\r\n pageIndex: pageIndex,\r\n pageSize: pageSize\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Gets data based on the given start and end index.\r\n * @param {number} start - Defines the start index of the datasource.\r\n * @param {number} end - Defines the end index of the datasource.\r\n */\r\n Query.prototype.range = function (start, end) {\r\n this.queries.push({\r\n fn: 'onRange',\r\n e: {\r\n start: start,\r\n end: end\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Gets data from the top of the data source based on given number of records count.\r\n * @param {number} nos - Defines the no of records to retrieve from datasource.\r\n */\r\n Query.prototype.take = function (nos) {\r\n this.queries.push({\r\n fn: 'onTake',\r\n e: {\r\n nos: nos\r\n }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Skips data with given number of records count from the top of the data source.\r\n * @param {number} nos - Defines the no of records skip in the datasource.\r\n */\r\n Query.prototype.skip = function (nos) {\r\n this.queries.push({\r\n fn: 'onSkip',\r\n e: { nos: nos }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Selects specified columns from the data source.\r\n * @param {string|string[]} fieldNames - Defines the collection of column fields.\r\n */\r\n Query.prototype.select = function (fieldNames) {\r\n if (typeof fieldNames === 'string') {\r\n fieldNames = [].slice.call([fieldNames], 0);\r\n }\r\n this.queries.push({\r\n fn: 'onSelect',\r\n e: { fieldNames: fieldNames }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Gets the records in hierarchical relationship from two tables. It requires the foreign key to relate two tables.\r\n * @param {Query} query - Defines the query to relate two tables.\r\n * @param {Function} selectorFn - Defines the custom function to select records.\r\n */\r\n Query.prototype.hierarchy = function (query, selectorFn) {\r\n this.subQuerySelector = selectorFn;\r\n this.subQuery = query;\r\n return this;\r\n };\r\n /**\r\n * Sets the foreign key which is used to get data from the related table.\r\n * @param {string} key - Defines the foreign key.\r\n */\r\n Query.prototype.foreignKey = function (key) {\r\n this.fKey = key;\r\n return this;\r\n };\r\n /**\r\n * It is used to get total number of records in the DataManager execution result.\r\n */\r\n Query.prototype.requiresCount = function () {\r\n this.isCountRequired = true;\r\n return this;\r\n };\r\n //type - sum, avg, min, max\r\n /**\r\n * Aggregate the data with given type and field name.\r\n * @param {string} type - Defines the aggregate type.\r\n * @param {string} field - Defines the column field to aggregate.\r\n */\r\n Query.prototype.aggregate = function (type, field) {\r\n this.queries.push({\r\n fn: 'onAggregates',\r\n e: { field: field, type: type }\r\n });\r\n return this;\r\n };\r\n /**\r\n * Pass array of filterColumn query for performing filter operation.\r\n * @param {QueryOptions[]} queries\r\n * @param {string} name\r\n * @hidden\r\n */\r\n Query.filterQueries = function (queries, name) {\r\n return queries.filter(function (q) {\r\n return q.fn === name;\r\n });\r\n };\r\n /**\r\n * To get the list of queries which is already filtered in current data source.\r\n * @param {Object[]} queries\r\n * @param {string[]} singles\r\n * @hidden\r\n */\r\n Query.filterQueryLists = function (queries, singles) {\r\n var filtered = queries.filter(function (q) {\r\n return singles.indexOf(q.fn) !== -1;\r\n });\r\n var res = {};\r\n for (var i = 0; i < filtered.length; i++) {\r\n if (!res[filtered[i].fn]) {\r\n res[filtered[i].fn] = filtered[i].e;\r\n }\r\n }\r\n return res;\r\n };\r\n return Query;\r\n}());\r\nexport { Query };\r\n/**\r\n * Predicate class is used to generate complex filter criteria.\r\n * This will be used by DataManager to perform multiple filtering operation.\r\n */\r\nvar Predicate = /** @class */ (function () {\r\n /**\r\n * Constructor for Predicate class.\r\n * @param {string|Predicate} field\r\n * @param {string} operator\r\n * @param {string|number|boolean|Predicate|Predicate[]} value\r\n * @param {boolean=false} ignoreCase\r\n * @hidden\r\n */\r\n function Predicate(field, operator, value, ignoreCase, ignoreAccent) {\r\n if (ignoreCase === void 0) { ignoreCase = false; }\r\n /** @hidden */\r\n this.ignoreAccent = false;\r\n /** @hidden */\r\n this.isComplex = false;\r\n if (typeof field === 'string') {\r\n this.field = field;\r\n this.operator = operator.toLowerCase();\r\n this.value = value;\r\n this.ignoreCase = ignoreCase;\r\n this.ignoreAccent = ignoreAccent;\r\n this.isComplex = false;\r\n this.comparer = DataUtil.fnOperators.processOperator(this.operator);\r\n }\r\n else if (field instanceof Predicate && value instanceof Predicate || value instanceof Array) {\r\n this.isComplex = true;\r\n this.condition = operator.toLowerCase();\r\n this.predicates = [field];\r\n if (value instanceof Array) {\r\n [].push.apply(this.predicates, value);\r\n }\r\n else {\r\n this.predicates.push(value);\r\n }\r\n }\r\n return this;\r\n }\r\n /**\r\n * Adds n-number of new predicates on existing predicate with “and” condition.\r\n * @param {Object[]} args - Defines the collection of predicates.\r\n */\r\n Predicate.and = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return Predicate.combinePredicates([].slice.call(args, 0), 'and');\r\n };\r\n /**\r\n * Adds new predicate on existing predicate with “and” condition.\r\n * @param {string} field - Defines the column field.\r\n * @param {string} operator - Defines the operator how to filter data.\r\n * @param {string} value - Defines the values to match with data.\r\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\r\n * filter data with case insensitive.\r\n */\r\n Predicate.prototype.and = function (field, operator, value, ignoreCase, ignoreAccent) {\r\n return Predicate.combine(this, field, operator, value, 'and', ignoreCase, ignoreAccent);\r\n };\r\n /**\r\n * Adds n-number of new predicates on existing predicate with “or” condition.\r\n * @param {Object[]} args - Defines the collection of predicates.\r\n */\r\n Predicate.or = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return Predicate.combinePredicates([].slice.call(args, 0), 'or');\r\n };\r\n /**\r\n * Adds new predicate on existing predicate with “or” condition.\r\n * @param {string} field - Defines the column field.\r\n * @param {string} operator - Defines the operator how to filter data.\r\n * @param {string} value - Defines the values to match with data.\r\n * @param {boolean} ignoreCase? - If ignore case set to false, then filter data with exact match or else\r\n * filter data with case insensitive.\r\n */\r\n Predicate.prototype.or = function (field, operator, value, ignoreCase, ignoreAccent) {\r\n return Predicate.combine(this, field, operator, value, 'or', ignoreCase, ignoreAccent);\r\n };\r\n /**\r\n * Converts plain JavaScript object to Predicate object.\r\n * @param {Predicate[]|Predicate} json - Defines single or collection of Predicate.\r\n */\r\n Predicate.fromJson = function (json) {\r\n if (json instanceof Array) {\r\n var res = [];\r\n for (var i = 0, len = json.length; i < len; i++) {\r\n res.push(this.fromJSONData(json[i]));\r\n }\r\n return res;\r\n }\r\n var pred = json;\r\n return this.fromJSONData(pred);\r\n };\r\n /**\r\n * Validate the record based on the predicates.\r\n * @param {Object} record - Defines the datasource record.\r\n */\r\n Predicate.prototype.validate = function (record) {\r\n var predicate = this.predicates ? this.predicates : [];\r\n var isAnd;\r\n var ret;\r\n if (!this.isComplex && this.comparer) {\r\n return this.comparer.call(this, DataUtil.getObject(this.field, record), this.value, this.ignoreCase, this.ignoreAccent);\r\n }\r\n isAnd = this.condition === 'and';\r\n for (var i = 0; i < predicate.length; i++) {\r\n ret = predicate[i].validate(record);\r\n if (isAnd) {\r\n if (!ret) {\r\n return false;\r\n }\r\n }\r\n else {\r\n if (ret) {\r\n return true;\r\n }\r\n }\r\n }\r\n return isAnd;\r\n };\r\n /**\r\n * Converts predicates to plain JavaScript.\r\n * This method is uses Json stringify when serializing Predicate object.\r\n */\r\n Predicate.prototype.toJson = function () {\r\n var predicates;\r\n var p;\r\n if (this.isComplex) {\r\n predicates = [];\r\n p = this.predicates;\r\n for (var i = 0; i < p.length; i++) {\r\n predicates.push(p[i].toJson());\r\n }\r\n }\r\n return {\r\n isComplex: this.isComplex,\r\n field: this.field,\r\n operator: this.operator,\r\n value: this.value,\r\n ignoreCase: this.ignoreCase,\r\n ignoreAccent: this.ignoreAccent,\r\n condition: this.condition,\r\n predicates: predicates\r\n };\r\n };\r\n Predicate.combinePredicates = function (predicates, operator) {\r\n if (predicates.length === 1) {\r\n if (!(predicates[0] instanceof Array)) {\r\n return predicates[0];\r\n }\r\n predicates = predicates[0];\r\n }\r\n return new Predicate(predicates[0], operator, predicates.slice(1));\r\n };\r\n Predicate.combine = function (pred, field, operator, value, condition, ignoreCase, ignoreAccent) {\r\n if (field instanceof Predicate) {\r\n return Predicate[condition](pred, field);\r\n }\r\n if (typeof field === 'string') {\r\n return Predicate[condition](pred, new Predicate(field, operator, value, ignoreCase, ignoreAccent));\r\n }\r\n return DataUtil.throwError('Predicate - ' + condition + ' : invalid arguments');\r\n };\r\n Predicate.fromJSONData = function (json) {\r\n var preds = json.predicates || [];\r\n var len = preds.length;\r\n var predicates = [];\r\n var result;\r\n for (var i = 0; i < len; i++) {\r\n predicates.push(this.fromJSONData(preds[i]));\r\n }\r\n if (!json.isComplex) {\r\n result = new Predicate(json.field, json.operator, json.value, json.ignoreCase, json.ignoreAccent);\r\n }\r\n else {\r\n result = new Predicate(predicates[0], json.condition, predicates.slice(1));\r\n }\r\n return result;\r\n };\r\n return Predicate;\r\n}());\r\nexport { Predicate };\r\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { DataManager } from './manager';\r\nimport { Query, Predicate } from './query';\r\nvar consts = { GroupGuid: '{271bbba0-1ee7}' };\r\n/**\r\n * Data manager common utility methods.\r\n * @hidden\r\n */\r\nvar DataUtil = /** @class */ (function () {\r\n function DataUtil() {\r\n }\r\n /**\r\n * Returns the value by invoking the provided parameter function.\r\n * If the paramater is not of type function then it will be returned as it is.\r\n * @param {Function|string|string[]|number} value\r\n * @param {Object} inst?\r\n * @hidden\r\n */\r\n DataUtil.getValue = function (value, inst) {\r\n if (typeof value === 'function') {\r\n return value.call(inst || {});\r\n }\r\n return value;\r\n };\r\n /**\r\n * Returns true if the input string ends with given string.\r\n * @param {string} input\r\n * @param {string} substr\r\n */\r\n DataUtil.endsWith = function (input, substr) {\r\n return input.slice && input.slice(-substr.length) === substr;\r\n };\r\n /**\r\n * Returns true if the input string starts with given string.\r\n * @param {string} str\r\n * @param {string} startstr\r\n */\r\n DataUtil.startsWith = function (input, start) {\r\n return input.slice(0, start.length) === start;\r\n };\r\n /**\r\n * To return the sorting function based on the string.\r\n * @param {string} order\r\n * @hidden\r\n */\r\n DataUtil.fnSort = function (order) {\r\n order = order ? DataUtil.toLowerCase(order) : 'ascending';\r\n if (order === 'ascending') {\r\n return this.fnAscending;\r\n }\r\n return this.fnDescending;\r\n };\r\n /**\r\n * Comparer function which is used to sort the data in ascending order.\r\n * @param {string|number} x\r\n * @param {string|number} y\r\n * @returns number\r\n */\r\n DataUtil.fnAscending = function (x, y) {\r\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\r\n return -1;\r\n }\r\n if (y === null || y === undefined) {\r\n return -1;\r\n }\r\n if (typeof x === 'string') {\r\n return x.localeCompare(y);\r\n }\r\n if (x === null || x === undefined) {\r\n return 1;\r\n }\r\n return x - y;\r\n };\r\n /**\r\n * Comparer function which is used to sort the data in descending order.\r\n * @param {string|number} x\r\n * @param {string|number} y\r\n * @returns number\r\n */\r\n DataUtil.fnDescending = function (x, y) {\r\n if (isNullOrUndefined(x) && isNullOrUndefined(y)) {\r\n return -1;\r\n }\r\n if (y === null || y === undefined) {\r\n return 1;\r\n }\r\n if (typeof x === 'string') {\r\n return x.localeCompare(y) * -1;\r\n }\r\n if (x === null || x === undefined) {\r\n return -1;\r\n }\r\n return y - x;\r\n };\r\n DataUtil.extractFields = function (obj, fields) {\r\n var newObj = {};\r\n for (var i = 0; i < fields.length; i++) {\r\n newObj = this.setValue(fields[i], this.getObject(fields[i], obj), newObj);\r\n }\r\n return newObj;\r\n };\r\n /**\r\n * Select objects by given fields from jsonArray.\r\n * @param {Object[]} jsonArray\r\n * @param {string[]} fields\r\n */\r\n DataUtil.select = function (jsonArray, fields) {\r\n var newData = [];\r\n for (var i = 0; i < jsonArray.length; i++) {\r\n newData.push(this.extractFields(jsonArray[i], fields));\r\n }\r\n return newData;\r\n };\r\n /**\r\n * Group the input data based on the field name.\r\n * It also performs aggregation of the grouped records based on the aggregates paramater.\r\n * @param {Object[]} jsonArray\r\n * @param {string} field?\r\n * @param {Object[]} agg?\r\n * @param {number} level?\r\n * @param {Object[]} groupDs?\r\n */\r\n DataUtil.group = function (jsonArray, field, aggregates, level, groupDs, format, isLazyLoad) {\r\n level = level || 1;\r\n var jsonData = jsonArray;\r\n var guid = 'GroupGuid';\r\n if (jsonData.GroupGuid === consts[guid]) {\r\n var _loop_1 = function (j) {\r\n if (!isNullOrUndefined(groupDs)) {\r\n var indx = -1;\r\n var temp = groupDs.filter(function (e) { return e.key === jsonData[j].key; });\r\n indx = groupDs.indexOf(temp[0]);\r\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, groupDs[indx].items, format, isLazyLoad);\r\n jsonData[j].count = groupDs[indx].count;\r\n }\r\n else {\r\n jsonData[j].items = this_1.group(jsonData[j].items, field, aggregates, jsonData.level + 1, null, format, isLazyLoad);\r\n jsonData[j].count = jsonData[j].items.length;\r\n }\r\n };\r\n var this_1 = this;\r\n for (var j = 0; j < jsonData.length; j++) {\r\n _loop_1(j);\r\n }\r\n jsonData.childLevels += 1;\r\n return jsonData;\r\n }\r\n var grouped = {};\r\n var groupedArray = [];\r\n groupedArray.GroupGuid = consts[guid];\r\n groupedArray.level = level;\r\n groupedArray.childLevels = 0;\r\n groupedArray.records = jsonData;\r\n var _loop_2 = function (i) {\r\n var val = this_2.getVal(jsonData, i, field);\r\n if (!isNullOrUndefined(format)) {\r\n val = format(val, field);\r\n }\r\n if (!grouped[val]) {\r\n grouped[val] = {\r\n key: val,\r\n count: 0,\r\n items: [],\r\n aggregates: {},\r\n field: field\r\n };\r\n groupedArray.push(grouped[val]);\r\n if (!isNullOrUndefined(groupDs)) {\r\n var tempObj = groupDs.filter(function (e) { return e.key === grouped[val].key; });\r\n grouped[val].count = tempObj[0].count;\r\n }\r\n }\r\n grouped[val].count = !isNullOrUndefined(groupDs) ? grouped[val].count : grouped[val].count += 1;\r\n if (!isLazyLoad || (isLazyLoad && aggregates.length)) {\r\n grouped[val].items.push(jsonData[i]);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < jsonData.length; i++) {\r\n _loop_2(i);\r\n }\r\n if (aggregates && aggregates.length) {\r\n var _loop_3 = function (i) {\r\n var res = {};\r\n var fn = void 0;\r\n var aggs = aggregates;\r\n for (var j = 0; j < aggregates.length; j++) {\r\n fn = DataUtil.aggregates[aggregates[j].type];\r\n if (!isNullOrUndefined(groupDs)) {\r\n var temp = groupDs.filter(function (e) { return e.key === groupedArray[i].key; });\r\n if (fn) {\r\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(temp[0].items, aggs[j].field);\r\n }\r\n }\r\n else {\r\n if (fn) {\r\n res[aggs[j].field + ' - ' + aggs[j].type] = fn(groupedArray[i].items, aggs[j].field);\r\n }\r\n }\r\n }\r\n groupedArray[i].aggregates = res;\r\n };\r\n for (var i = 0; i < groupedArray.length; i++) {\r\n _loop_3(i);\r\n }\r\n }\r\n if (isLazyLoad && groupedArray.length && aggregates.length) {\r\n for (var i = 0; i < groupedArray.length; i++) {\r\n groupedArray[i].items = [];\r\n }\r\n }\r\n return jsonData.length && groupedArray || jsonData;\r\n };\r\n /**\r\n * It is used to categorize the multiple items based on a specific field in jsonArray.\r\n * The hierarchical queries are commonly required when you use foreign key binding.\r\n * @param {string} fKey\r\n * @param {string} from\r\n * @param {Object[]} source\r\n * @param {Group} lookup?\r\n * @param {string} pKey?\r\n * @hidden\r\n */\r\n DataUtil.buildHierarchy = function (fKey, from, source, lookup, pKey) {\r\n var i;\r\n var grp = {};\r\n var temp;\r\n if (lookup.result) {\r\n lookup = lookup.result;\r\n }\r\n if (lookup.GroupGuid) {\r\n this.throwError('DataManager: Do not have support Grouping in hierarchy');\r\n }\r\n for (i = 0; i < lookup.length; i++) {\r\n var fKeyData = this.getObject(fKey, lookup[i]);\r\n temp = grp[fKeyData] || (grp[fKeyData] = []);\r\n temp.push(lookup[i]);\r\n }\r\n for (i = 0; i < source.length; i++) {\r\n var fKeyData = this.getObject(pKey || fKey, source[i]);\r\n source[i][from] = grp[fKeyData];\r\n }\r\n };\r\n /**\r\n * The method used to get the field names which started with specified characters.\r\n * @param {Object} obj\r\n * @param {string[]} fields?\r\n * @param {string} prefix?\r\n * @hidden\r\n */\r\n DataUtil.getFieldList = function (obj, fields, prefix) {\r\n if (prefix === undefined) {\r\n prefix = '';\r\n }\r\n if (fields === undefined || fields === null) {\r\n return this.getFieldList(obj, [], prefix);\r\n }\r\n var copyObj = obj;\r\n var keys = Object.keys(obj);\r\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\r\n var prop = keys_1[_i];\r\n if (typeof copyObj[prop] === 'object' && !(copyObj[prop] instanceof Array)) {\r\n this.getFieldList(copyObj[prop], fields, prefix + prop + '.');\r\n }\r\n else {\r\n fields.push(prefix + prop);\r\n }\r\n }\r\n return fields;\r\n };\r\n /**\r\n * Gets the value of the property in the given object.\r\n * The complex object can be accessed by providing the field names concatenated with dot(.).\r\n * @param {string} nameSpace - The name of the property to be accessed.\r\n * @param {Object} from - Defines the source object.\r\n */\r\n DataUtil.getObject = function (nameSpace, from) {\r\n if (!nameSpace) {\r\n return from;\r\n }\r\n if (!from) {\r\n return undefined;\r\n }\r\n if (nameSpace.indexOf('.') === -1) {\r\n return from[nameSpace];\r\n }\r\n var value = from;\r\n var splits = nameSpace.split('.');\r\n for (var i = 0; i < splits.length; i++) {\r\n if (value == null) {\r\n break;\r\n }\r\n value = value[splits[i]];\r\n }\r\n return value;\r\n };\r\n /**\r\n * To set value for the nameSpace in desired object.\r\n * @param {string} nameSpace - String value to the get the inner object.\r\n * @param {Object} value - Value that you need to set.\r\n * @param {Object} obj - Object to get the inner object value.\r\n * @return { [key: string]: Object; } | Object\r\n * @hidden\r\n */\r\n DataUtil.setValue = function (nameSpace, value, obj) {\r\n var keys = nameSpace.toString().split('.');\r\n var start = obj || {};\r\n var fromObj = start;\r\n var i;\r\n var length = keys.length;\r\n var key;\r\n for (i = 0; i < length; i++) {\r\n key = keys[i];\r\n if (i + 1 === length) {\r\n fromObj[key] = value === undefined ? undefined : value;\r\n }\r\n else if (isNullOrUndefined(fromObj[key])) {\r\n fromObj[key] = {};\r\n }\r\n fromObj = fromObj[key];\r\n }\r\n return start;\r\n };\r\n /**\r\n * Sort the given data based on the field and comparer.\r\n * @param {Object[]} ds - Defines the input data.\r\n * @param {string} field - Defines the field to be sorted.\r\n * @param {Function} comparer - Defines the comparer function used to sort the records.\r\n */\r\n DataUtil.sort = function (ds, field, comparer) {\r\n if (ds.length <= 1) {\r\n return ds;\r\n }\r\n var middle = parseInt((ds.length / 2).toString(), 10);\r\n var left = ds.slice(0, middle);\r\n var right = ds.slice(middle);\r\n left = this.sort(left, field, comparer);\r\n right = this.sort(right, field, comparer);\r\n return this.merge(left, right, field, comparer);\r\n };\r\n DataUtil.ignoreDiacritics = function (value) {\r\n if (typeof value !== 'string') {\r\n return value;\r\n }\r\n var result = value.split('');\r\n var newValue = result.map(function (temp) { return temp in DataUtil.diacritics ? DataUtil.diacritics[temp] : temp; });\r\n return newValue.join('');\r\n };\r\n DataUtil.merge = function (left, right, fieldName, comparer) {\r\n var result = [];\r\n var current;\r\n while (left.length > 0 || right.length > 0) {\r\n if (left.length > 0 && right.length > 0) {\r\n if (comparer) {\r\n current = comparer(this.getVal(left, 0, fieldName), this.getVal(right, 0, fieldName), left[0], right[0]) <= 0 ? left : right;\r\n }\r\n else {\r\n current = left[0][fieldName] < left[0][fieldName] ? left : right;\r\n }\r\n }\r\n else {\r\n current = left.length > 0 ? left : right;\r\n }\r\n result.push(current.shift());\r\n }\r\n return result;\r\n };\r\n DataUtil.getVal = function (array, index, field) {\r\n return field ? this.getObject(field, array[index]) : array[index];\r\n };\r\n DataUtil.toLowerCase = function (val) {\r\n return val ? typeof val === 'string' ? val.toLowerCase() : val.toString() : (val === 0 || val === false) ? val.toString() : '';\r\n };\r\n /**\r\n * To perform the filter operation with specified adaptor and returns the result.\r\n * @param {Object} adaptor\r\n * @param {string} fnName\r\n * @param {Object} param1?\r\n * @param {Object} param2?\r\n * @hidden\r\n */\r\n DataUtil.callAdaptorFunction = function (adaptor, fnName, param1, param2) {\r\n if (fnName in adaptor) {\r\n var res = adaptor[fnName](param1, param2);\r\n if (!isNullOrUndefined(res)) {\r\n param1 = res;\r\n }\r\n }\r\n return param1;\r\n };\r\n DataUtil.getAddParams = function (adp, dm, query) {\r\n var req = {};\r\n DataUtil.callAdaptorFunction(adp, 'addParams', {\r\n dm: dm,\r\n query: query,\r\n params: query.params,\r\n reqParams: req\r\n });\r\n return req;\r\n };\r\n /**\r\n * Checks wheather the given input is a plain object or not.\r\n * @param {Object|Object[]} obj\r\n */\r\n DataUtil.isPlainObject = function (obj) {\r\n return (!!obj) && (obj.constructor === Object);\r\n };\r\n /**\r\n * Returns true when the browser cross origin request.\r\n */\r\n DataUtil.isCors = function () {\r\n var xhr = null;\r\n var request = 'XMLHttpRequest';\r\n try {\r\n xhr = new window[request]();\r\n }\r\n catch (e) {\r\n // No exception handling\r\n }\r\n return !!xhr && ('withCredentials' in xhr);\r\n };\r\n /**\r\n * Generate random GUID value which will be prefixed with the given value.\r\n * @param {string} prefix\r\n */\r\n DataUtil.getGuid = function (prefix) {\r\n var hexs = '0123456789abcdef';\r\n var rand;\r\n return (prefix || '') + '00000000-0000-4000-0000-000000000000'.replace(/0/g, function (val, i) {\r\n if ('crypto' in window && 'getRandomValues' in crypto) {\r\n var arr = new Uint8Array(1);\r\n window.crypto.getRandomValues(arr);\r\n rand = arr[0] % 16 | 0;\r\n }\r\n else {\r\n rand = Math.random() * 16 | 0;\r\n }\r\n return hexs[i === 19 ? rand & 0x3 | 0x8 : rand];\r\n });\r\n };\r\n /**\r\n * Checks wheather the given value is null or not.\r\n * @param {string|Object} val\r\n * @returns boolean\r\n */\r\n DataUtil.isNull = function (val) {\r\n return val === undefined || val === null;\r\n };\r\n /**\r\n * To get the required items from collection of objects.\r\n * @param {Object[]} array\r\n * @param {string} field\r\n * @param {Function} comparer\r\n * @returns Object\r\n * @hidden\r\n */\r\n DataUtil.getItemFromComparer = function (array, field, comparer) {\r\n var keyVal;\r\n var current;\r\n var key;\r\n var i = 0;\r\n var castRequired = typeof DataUtil.getVal(array, 0, field) === 'string';\r\n if (array.length) {\r\n while (isNullOrUndefined(keyVal) && i < array.length) {\r\n keyVal = DataUtil.getVal(array, i, field);\r\n key = array[i++];\r\n }\r\n }\r\n for (; i < array.length; i++) {\r\n current = DataUtil.getVal(array, i, field);\r\n if (isNullOrUndefined(current)) {\r\n continue;\r\n }\r\n if (castRequired) {\r\n keyVal = +keyVal;\r\n current = +current;\r\n }\r\n if (comparer(keyVal, current) > 0) {\r\n keyVal = current;\r\n key = array[i];\r\n }\r\n }\r\n return key;\r\n };\r\n /**\r\n * To get distinct values of Array or Array of Objects.\r\n * @param {Object[]} json\r\n * @param {string} field\r\n * @param {boolean} requiresCompleteRecord\r\n * @returns Object[]\r\n * * distinct array of objects is return when requiresCompleteRecord set as true.\r\n * @hidden\r\n */\r\n DataUtil.distinct = function (json, fieldName, requiresCompleteRecord) {\r\n requiresCompleteRecord = isNullOrUndefined(requiresCompleteRecord) ? false : requiresCompleteRecord;\r\n var result = [];\r\n var val;\r\n var tmp = {};\r\n json.forEach(function (data, index) {\r\n val = typeof (json[index]) === 'object' ? DataUtil.getVal(json, index, fieldName) : json[index];\r\n if (!(val in tmp)) {\r\n result.push(!requiresCompleteRecord ? val : json[index]);\r\n tmp[val] = 1;\r\n }\r\n });\r\n return result;\r\n };\r\n /**\r\n * Process the given records based on the datamanager string.\r\n * @param {string} datamanager\r\n * @param {Object[]} records\r\n */\r\n DataUtil.processData = function (dm, records) {\r\n var query = this.prepareQuery(dm);\r\n var sampledata = new DataManager(records);\r\n if (dm.requiresCounts) {\r\n query.requiresCount();\r\n }\r\n var result = sampledata.executeLocal(query);\r\n var returnValue = {\r\n result: dm.requiresCounts ? result.result : result,\r\n count: result.count,\r\n aggregates: JSON.stringify(result.aggregates)\r\n };\r\n return dm.requiresCounts ? returnValue : result;\r\n };\r\n DataUtil.prepareQuery = function (dm) {\r\n var _this = this;\r\n var query = new Query();\r\n if (dm.select) {\r\n query.select(dm.select);\r\n }\r\n if (dm.where) {\r\n var where = DataUtil.parse.parseJson(dm.where);\r\n where.filter(function (pred) {\r\n if (isNullOrUndefined(pred.condition)) {\r\n query.where(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent);\r\n }\r\n else {\r\n var predicateList = [];\r\n if (pred.field) {\r\n predicateList.push(new Predicate(pred.field, pred.operator, pred.value, pred.ignoreCase, pred.ignoreAccent));\r\n }\r\n else {\r\n predicateList = predicateList.concat(_this.getPredicate(pred.predicates));\r\n }\r\n if (pred.condition == 'or') {\r\n query.where(Predicate.or(predicateList));\r\n }\r\n else if (pred.condition == 'and') {\r\n query.where(Predicate.and(predicateList));\r\n }\r\n }\r\n });\r\n }\r\n if (dm.search) {\r\n var search = DataUtil.parse.parseJson(dm.search);\r\n search.filter(function (e) { return query.search(e.key, e.fields, e['operator'], e['ignoreCase'], e['ignoreAccent']); });\r\n }\r\n if (dm.aggregates) {\r\n dm.aggregates.filter(function (e) { return query.aggregate(e.type, e.field); });\r\n }\r\n if (dm.sorted) {\r\n dm.sorted.filter(function (e) { return query.sortBy(e.name, e.direction); });\r\n }\r\n if (dm.skip) {\r\n query.skip(dm.skip);\r\n }\r\n if (dm.take) {\r\n query.take(dm.take);\r\n }\r\n if (dm.group) {\r\n dm.group.filter(function (grp) { return query.group(grp); });\r\n }\r\n return query;\r\n };\r\n DataUtil.getPredicate = function (pred) {\r\n var mainPred = [];\r\n for (var i = 0; i < pred.length; i++) {\r\n var e = pred[i];\r\n if (e.field) {\r\n mainPred.push(new Predicate(e.field, e.operator, e.value, e.ignoreCase, e.ignoreAccent));\r\n }\r\n else {\r\n var childPred = [];\r\n var cpre = this.getPredicate(e.predicates);\r\n for (var _i = 0, _a = Object.keys(cpre); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n childPred.push(cpre[prop]);\r\n }\r\n mainPred.push(e.condition == 'or' ? Predicate.or(childPred) : Predicate.and(childPred));\r\n }\r\n }\r\n return mainPred;\r\n };\r\n /**\r\n * Specifies the value which will be used to adjust the date value to server timezone.\r\n * @default null\r\n */\r\n DataUtil.serverTimezoneOffset = null;\r\n /**\r\n * Species whether are not to be parsed with serverTimezoneOffset value.\r\n * @hidden\r\n */\r\n DataUtil.timeZoneHandling = true;\r\n /**\r\n * Throw error with the given string as message.\r\n * @param {string} er\r\n */\r\n DataUtil.throwError = function (error) {\r\n try {\r\n throw new Error(error);\r\n }\r\n catch (e) {\r\n throw e.message + '\\n' + e.stack;\r\n }\r\n };\r\n DataUtil.aggregates = {\r\n /**\r\n * Calculate sum of the given field in the data.\r\n * @param {Object[]} ds\r\n * @param {string} field\r\n */\r\n sum: function (ds, field) {\r\n var result = 0;\r\n var val;\r\n var castRequired = typeof DataUtil.getVal(ds, 0, field) !== 'number';\r\n for (var i = 0; i < ds.length; i++) {\r\n val = DataUtil.getVal(ds, i, field);\r\n if (!isNaN(val) && val !== null) {\r\n if (castRequired) {\r\n val = +val;\r\n }\r\n result += val;\r\n }\r\n }\r\n return result;\r\n },\r\n /**\r\n * Calculate average value of the given field in the data.\r\n * @param {Object[]} ds\r\n * @param {string} field\r\n */\r\n average: function (ds, field) {\r\n return DataUtil.aggregates.sum(ds, field) / ds.length;\r\n },\r\n /**\r\n * Returns the min value of the data based on the field.\r\n * @param {Object[]} ds\r\n * @param {string|Function} field\r\n */\r\n min: function (ds, field) {\r\n var comparer;\r\n if (typeof field === 'function') {\r\n comparer = field;\r\n field = null;\r\n }\r\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnAscending));\r\n },\r\n /**\r\n * Returns the max value of the data based on the field.\r\n * @param {Object[]} ds\r\n * @param {string} field\r\n * @returns number\r\n */\r\n max: function (ds, field) {\r\n var comparer;\r\n if (typeof field === 'function') {\r\n comparer = field;\r\n field = null;\r\n }\r\n return DataUtil.getObject(field, DataUtil.getItemFromComparer(ds, field, comparer || DataUtil.fnDescending));\r\n },\r\n /**\r\n * Returns the total number of true value present in the data based on the given boolean field name.\r\n * @param {Object[]} ds\r\n * @param {string} field\r\n */\r\n truecount: function (ds, field) {\r\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', true, true)).length;\r\n },\r\n /**\r\n * Returns the total number of false value present in the data based on the given boolean field name.\r\n * @param {Object[]} ds\r\n * @param {string} field\r\n */\r\n falsecount: function (ds, field) {\r\n return new DataManager(ds).executeLocal(new Query().where(field, 'equal', false, true)).length;\r\n },\r\n /**\r\n * Returns the length of the given data.\r\n * @param {Object[]} ds\r\n * @param {string} field?\r\n * @returns number\r\n */\r\n count: function (ds, field) {\r\n return ds.length;\r\n }\r\n };\r\n /**\r\n * Specifies the Object with filter operators.\r\n */\r\n DataUtil.operatorSymbols = {\r\n '<': 'lessthan',\r\n '>': 'greaterthan',\r\n '<=': 'lessthanorequal',\r\n '>=': 'greaterthanorequal',\r\n '==': 'equal',\r\n '!=': 'notequal',\r\n '*=': 'contains',\r\n '$=': 'endswith',\r\n '^=': 'startswith'\r\n };\r\n /**\r\n * Specifies the Object with filter operators which will be used for OData filter query generation.\r\n * * It will be used for date/number type filter query.\r\n */\r\n DataUtil.odBiOperator = {\r\n '<': ' lt ',\r\n '>': ' gt ',\r\n '<=': ' le ',\r\n '>=': ' ge ',\r\n '==': ' eq ',\r\n '!=': ' ne ',\r\n 'lessthan': ' lt ',\r\n 'lessthanorequal': ' le ',\r\n 'greaterthan': ' gt ',\r\n 'greaterthanorequal': ' ge ',\r\n 'equal': ' eq ',\r\n 'notequal': ' ne '\r\n };\r\n /**\r\n * Specifies the Object with filter operators which will be used for OData filter query generation.\r\n * It will be used for string type filter query.\r\n */\r\n DataUtil.odUniOperator = {\r\n '$=': 'endswith',\r\n '^=': 'startswith',\r\n '*=': 'substringof',\r\n 'endswith': 'endswith',\r\n 'startswith': 'startswith',\r\n 'contains': 'substringof'\r\n };\r\n /**\r\n * Specifies the Object with filter operators which will be used for ODataV4 filter query generation.\r\n * It will be used for string type filter query.\r\n */\r\n DataUtil.odv4UniOperator = {\r\n '$=': 'endswith',\r\n '^=': 'startswith',\r\n '*=': 'contains',\r\n 'endswith': 'endswith',\r\n 'startswith': 'startswith',\r\n 'contains': 'contains'\r\n };\r\n DataUtil.diacritics = {\r\n '\\u24B6': 'A',\r\n '\\uFF21': 'A',\r\n '\\u00C0': 'A',\r\n '\\u00C1': 'A',\r\n '\\u00C2': 'A',\r\n '\\u1EA6': 'A',\r\n '\\u1EA4': 'A',\r\n '\\u1EAA': 'A',\r\n '\\u1EA8': 'A',\r\n '\\u00C3': 'A',\r\n '\\u0100': 'A',\r\n '\\u0102': 'A',\r\n '\\u1EB0': 'A',\r\n '\\u1EAE': 'A',\r\n '\\u1EB4': 'A',\r\n '\\u1EB2': 'A',\r\n '\\u0226': 'A',\r\n '\\u01E0': 'A',\r\n '\\u00C4': 'A',\r\n '\\u01DE': 'A',\r\n '\\u1EA2': 'A',\r\n '\\u00C5': 'A',\r\n '\\u01FA': 'A',\r\n '\\u01CD': 'A',\r\n '\\u0200': 'A',\r\n '\\u0202': 'A',\r\n '\\u1EA0': 'A',\r\n '\\u1EAC': 'A',\r\n '\\u1EB6': 'A',\r\n '\\u1E00': 'A',\r\n '\\u0104': 'A',\r\n '\\u023A': 'A',\r\n '\\u2C6F': 'A',\r\n '\\uA732': 'AA',\r\n '\\u00C6': 'AE',\r\n '\\u01FC': 'AE',\r\n '\\u01E2': 'AE',\r\n '\\uA734': 'AO',\r\n '\\uA736': 'AU',\r\n '\\uA738': 'AV',\r\n '\\uA73A': 'AV',\r\n '\\uA73C': 'AY',\r\n '\\u24B7': 'B',\r\n '\\uFF22': 'B',\r\n '\\u1E02': 'B',\r\n '\\u1E04': 'B',\r\n '\\u1E06': 'B',\r\n '\\u0243': 'B',\r\n '\\u0182': 'B',\r\n '\\u0181': 'B',\r\n '\\u24B8': 'C',\r\n '\\uFF23': 'C',\r\n '\\u0106': 'C',\r\n '\\u0108': 'C',\r\n '\\u010A': 'C',\r\n '\\u010C': 'C',\r\n '\\u00C7': 'C',\r\n '\\u1E08': 'C',\r\n '\\u0187': 'C',\r\n '\\u023B': 'C',\r\n '\\uA73E': 'C',\r\n '\\u24B9': 'D',\r\n '\\uFF24': 'D',\r\n '\\u1E0A': 'D',\r\n '\\u010E': 'D',\r\n '\\u1E0C': 'D',\r\n '\\u1E10': 'D',\r\n '\\u1E12': 'D',\r\n '\\u1E0E': 'D',\r\n '\\u0110': 'D',\r\n '\\u018B': 'D',\r\n '\\u018A': 'D',\r\n '\\u0189': 'D',\r\n '\\uA779': 'D',\r\n '\\u01F1': 'DZ',\r\n '\\u01C4': 'DZ',\r\n '\\u01F2': 'Dz',\r\n '\\u01C5': 'Dz',\r\n '\\u24BA': 'E',\r\n '\\uFF25': 'E',\r\n '\\u00C8': 'E',\r\n '\\u00C9': 'E',\r\n '\\u00CA': 'E',\r\n '\\u1EC0': 'E',\r\n '\\u1EBE': 'E',\r\n '\\u1EC4': 'E',\r\n '\\u1EC2': 'E',\r\n '\\u1EBC': 'E',\r\n '\\u0112': 'E',\r\n '\\u1E14': 'E',\r\n '\\u1E16': 'E',\r\n '\\u0114': 'E',\r\n '\\u0116': 'E',\r\n '\\u00CB': 'E',\r\n '\\u1EBA': 'E',\r\n '\\u011A': 'E',\r\n '\\u0204': 'E',\r\n '\\u0206': 'E',\r\n '\\u1EB8': 'E',\r\n '\\u1EC6': 'E',\r\n '\\u0228': 'E',\r\n '\\u1E1C': 'E',\r\n '\\u0118': 'E',\r\n '\\u1E18': 'E',\r\n '\\u1E1A': 'E',\r\n '\\u0190': 'E',\r\n '\\u018E': 'E',\r\n '\\u24BB': 'F',\r\n '\\uFF26': 'F',\r\n '\\u1E1E': 'F',\r\n '\\u0191': 'F',\r\n '\\uA77B': 'F',\r\n '\\u24BC': 'G',\r\n '\\uFF27': 'G',\r\n '\\u01F4': 'G',\r\n '\\u011C': 'G',\r\n '\\u1E20': 'G',\r\n '\\u011E': 'G',\r\n '\\u0120': 'G',\r\n '\\u01E6': 'G',\r\n '\\u0122': 'G',\r\n '\\u01E4': 'G',\r\n '\\u0193': 'G',\r\n '\\uA7A0': 'G',\r\n '\\uA77D': 'G',\r\n '\\uA77E': 'G',\r\n '\\u24BD': 'H',\r\n '\\uFF28': 'H',\r\n '\\u0124': 'H',\r\n '\\u1E22': 'H',\r\n '\\u1E26': 'H',\r\n '\\u021E': 'H',\r\n '\\u1E24': 'H',\r\n '\\u1E28': 'H',\r\n '\\u1E2A': 'H',\r\n '\\u0126': 'H',\r\n '\\u2C67': 'H',\r\n '\\u2C75': 'H',\r\n '\\uA78D': 'H',\r\n '\\u24BE': 'I',\r\n '\\uFF29': 'I',\r\n '\\u00CC': 'I',\r\n '\\u00CD': 'I',\r\n '\\u00CE': 'I',\r\n '\\u0128': 'I',\r\n '\\u012A': 'I',\r\n '\\u012C': 'I',\r\n '\\u0130': 'I',\r\n '\\u00CF': 'I',\r\n '\\u1E2E': 'I',\r\n '\\u1EC8': 'I',\r\n '\\u01CF': 'I',\r\n '\\u0208': 'I',\r\n '\\u020A': 'I',\r\n '\\u1ECA': 'I',\r\n '\\u012E': 'I',\r\n '\\u1E2C': 'I',\r\n '\\u0197': 'I',\r\n '\\u24BF': 'J',\r\n '\\uFF2A': 'J',\r\n '\\u0134': 'J',\r\n '\\u0248': 'J',\r\n '\\u24C0': 'K',\r\n '\\uFF2B': 'K',\r\n '\\u1E30': 'K',\r\n '\\u01E8': 'K',\r\n '\\u1E32': 'K',\r\n '\\u0136': 'K',\r\n '\\u1E34': 'K',\r\n '\\u0198': 'K',\r\n '\\u2C69': 'K',\r\n '\\uA740': 'K',\r\n '\\uA742': 'K',\r\n '\\uA744': 'K',\r\n '\\uA7A2': 'K',\r\n '\\u24C1': 'L',\r\n '\\uFF2C': 'L',\r\n '\\u013F': 'L',\r\n '\\u0139': 'L',\r\n '\\u013D': 'L',\r\n '\\u1E36': 'L',\r\n '\\u1E38': 'L',\r\n '\\u013B': 'L',\r\n '\\u1E3C': 'L',\r\n '\\u1E3A': 'L',\r\n '\\u0141': 'L',\r\n '\\u023D': 'L',\r\n '\\u2C62': 'L',\r\n '\\u2C60': 'L',\r\n '\\uA748': 'L',\r\n '\\uA746': 'L',\r\n '\\uA780': 'L',\r\n '\\u01C7': 'LJ',\r\n '\\u01C8': 'Lj',\r\n '\\u24C2': 'M',\r\n '\\uFF2D': 'M',\r\n '\\u1E3E': 'M',\r\n '\\u1E40': 'M',\r\n '\\u1E42': 'M',\r\n '\\u2C6E': 'M',\r\n '\\u019C': 'M',\r\n '\\u24C3': 'N',\r\n '\\uFF2E': 'N',\r\n '\\u01F8': 'N',\r\n '\\u0143': 'N',\r\n '\\u00D1': 'N',\r\n '\\u1E44': 'N',\r\n '\\u0147': 'N',\r\n '\\u1E46': 'N',\r\n '\\u0145': 'N',\r\n '\\u1E4A': 'N',\r\n '\\u1E48': 'N',\r\n '\\u0220': 'N',\r\n '\\u019D': 'N',\r\n '\\uA790': 'N',\r\n '\\uA7A4': 'N',\r\n '\\u01CA': 'NJ',\r\n '\\u01CB': 'Nj',\r\n '\\u24C4': 'O',\r\n '\\uFF2F': 'O',\r\n '\\u00D2': 'O',\r\n '\\u00D3': 'O',\r\n '\\u00D4': 'O',\r\n '\\u1ED2': 'O',\r\n '\\u1ED0': 'O',\r\n '\\u1ED6': 'O',\r\n '\\u1ED4': 'O',\r\n '\\u00D5': 'O',\r\n '\\u1E4C': 'O',\r\n '\\u022C': 'O',\r\n '\\u1E4E': 'O',\r\n '\\u014C': 'O',\r\n '\\u1E50': 'O',\r\n '\\u1E52': 'O',\r\n '\\u014E': 'O',\r\n '\\u022E': 'O',\r\n '\\u0230': 'O',\r\n '\\u00D6': 'O',\r\n '\\u022A': 'O',\r\n '\\u1ECE': 'O',\r\n '\\u0150': 'O',\r\n '\\u01D1': 'O',\r\n '\\u020C': 'O',\r\n '\\u020E': 'O',\r\n '\\u01A0': 'O',\r\n '\\u1EDC': 'O',\r\n '\\u1EDA': 'O',\r\n '\\u1EE0': 'O',\r\n '\\u1EDE': 'O',\r\n '\\u1EE2': 'O',\r\n '\\u1ECC': 'O',\r\n '\\u1ED8': 'O',\r\n '\\u01EA': 'O',\r\n '\\u01EC': 'O',\r\n '\\u00D8': 'O',\r\n '\\u01FE': 'O',\r\n '\\u0186': 'O',\r\n '\\u019F': 'O',\r\n '\\uA74A': 'O',\r\n '\\uA74C': 'O',\r\n '\\u01A2': 'OI',\r\n '\\uA74E': 'OO',\r\n '\\u0222': 'OU',\r\n '\\u24C5': 'P',\r\n '\\uFF30': 'P',\r\n '\\u1E54': 'P',\r\n '\\u1E56': 'P',\r\n '\\u01A4': 'P',\r\n '\\u2C63': 'P',\r\n '\\uA750': 'P',\r\n '\\uA752': 'P',\r\n '\\uA754': 'P',\r\n '\\u24C6': 'Q',\r\n '\\uFF31': 'Q',\r\n '\\uA756': 'Q',\r\n '\\uA758': 'Q',\r\n '\\u024A': 'Q',\r\n '\\u24C7': 'R',\r\n '\\uFF32': 'R',\r\n '\\u0154': 'R',\r\n '\\u1E58': 'R',\r\n '\\u0158': 'R',\r\n '\\u0210': 'R',\r\n '\\u0212': 'R',\r\n '\\u1E5A': 'R',\r\n '\\u1E5C': 'R',\r\n '\\u0156': 'R',\r\n '\\u1E5E': 'R',\r\n '\\u024C': 'R',\r\n '\\u2C64': 'R',\r\n '\\uA75A': 'R',\r\n '\\uA7A6': 'R',\r\n '\\uA782': 'R',\r\n '\\u24C8': 'S',\r\n '\\uFF33': 'S',\r\n '\\u1E9E': 'S',\r\n '\\u015A': 'S',\r\n '\\u1E64': 'S',\r\n '\\u015C': 'S',\r\n '\\u1E60': 'S',\r\n '\\u0160': 'S',\r\n '\\u1E66': 'S',\r\n '\\u1E62': 'S',\r\n '\\u1E68': 'S',\r\n '\\u0218': 'S',\r\n '\\u015E': 'S',\r\n '\\u2C7E': 'S',\r\n '\\uA7A8': 'S',\r\n '\\uA784': 'S',\r\n '\\u24C9': 'T',\r\n '\\uFF34': 'T',\r\n '\\u1E6A': 'T',\r\n '\\u0164': 'T',\r\n '\\u1E6C': 'T',\r\n '\\u021A': 'T',\r\n '\\u0162': 'T',\r\n '\\u1E70': 'T',\r\n '\\u1E6E': 'T',\r\n '\\u0166': 'T',\r\n '\\u01AC': 'T',\r\n '\\u01AE': 'T',\r\n '\\u023E': 'T',\r\n '\\uA786': 'T',\r\n '\\uA728': 'TZ',\r\n '\\u24CA': 'U',\r\n '\\uFF35': 'U',\r\n '\\u00D9': 'U',\r\n '\\u00DA': 'U',\r\n '\\u00DB': 'U',\r\n '\\u0168': 'U',\r\n '\\u1E78': 'U',\r\n '\\u016A': 'U',\r\n '\\u1E7A': 'U',\r\n '\\u016C': 'U',\r\n '\\u00DC': 'U',\r\n '\\u01DB': 'U',\r\n '\\u01D7': 'U',\r\n '\\u01D5': 'U',\r\n '\\u01D9': 'U',\r\n '\\u1EE6': 'U',\r\n '\\u016E': 'U',\r\n '\\u0170': 'U',\r\n '\\u01D3': 'U',\r\n '\\u0214': 'U',\r\n '\\u0216': 'U',\r\n '\\u01AF': 'U',\r\n '\\u1EEA': 'U',\r\n '\\u1EE8': 'U',\r\n '\\u1EEE': 'U',\r\n '\\u1EEC': 'U',\r\n '\\u1EF0': 'U',\r\n '\\u1EE4': 'U',\r\n '\\u1E72': 'U',\r\n '\\u0172': 'U',\r\n '\\u1E76': 'U',\r\n '\\u1E74': 'U',\r\n '\\u0244': 'U',\r\n '\\u24CB': 'V',\r\n '\\uFF36': 'V',\r\n '\\u1E7C': 'V',\r\n '\\u1E7E': 'V',\r\n '\\u01B2': 'V',\r\n '\\uA75E': 'V',\r\n '\\u0245': 'V',\r\n '\\uA760': 'VY',\r\n '\\u24CC': 'W',\r\n '\\uFF37': 'W',\r\n '\\u1E80': 'W',\r\n '\\u1E82': 'W',\r\n '\\u0174': 'W',\r\n '\\u1E86': 'W',\r\n '\\u1E84': 'W',\r\n '\\u1E88': 'W',\r\n '\\u2C72': 'W',\r\n '\\u24CD': 'X',\r\n '\\uFF38': 'X',\r\n '\\u1E8A': 'X',\r\n '\\u1E8C': 'X',\r\n '\\u24CE': 'Y',\r\n '\\uFF39': 'Y',\r\n '\\u1EF2': 'Y',\r\n '\\u00DD': 'Y',\r\n '\\u0176': 'Y',\r\n '\\u1EF8': 'Y',\r\n '\\u0232': 'Y',\r\n '\\u1E8E': 'Y',\r\n '\\u0178': 'Y',\r\n '\\u1EF6': 'Y',\r\n '\\u1EF4': 'Y',\r\n '\\u01B3': 'Y',\r\n '\\u024E': 'Y',\r\n '\\u1EFE': 'Y',\r\n '\\u24CF': 'Z',\r\n '\\uFF3A': 'Z',\r\n '\\u0179': 'Z',\r\n '\\u1E90': 'Z',\r\n '\\u017B': 'Z',\r\n '\\u017D': 'Z',\r\n '\\u1E92': 'Z',\r\n '\\u1E94': 'Z',\r\n '\\u01B5': 'Z',\r\n '\\u0224': 'Z',\r\n '\\u2C7F': 'Z',\r\n '\\u2C6B': 'Z',\r\n '\\uA762': 'Z',\r\n '\\u24D0': 'a',\r\n '\\uFF41': 'a',\r\n '\\u1E9A': 'a',\r\n '\\u00E0': 'a',\r\n '\\u00E1': 'a',\r\n '\\u00E2': 'a',\r\n '\\u1EA7': 'a',\r\n '\\u1EA5': 'a',\r\n '\\u1EAB': 'a',\r\n '\\u1EA9': 'a',\r\n '\\u00E3': 'a',\r\n '\\u0101': 'a',\r\n '\\u0103': 'a',\r\n '\\u1EB1': 'a',\r\n '\\u1EAF': 'a',\r\n '\\u1EB5': 'a',\r\n '\\u1EB3': 'a',\r\n '\\u0227': 'a',\r\n '\\u01E1': 'a',\r\n '\\u00E4': 'a',\r\n '\\u01DF': 'a',\r\n '\\u1EA3': 'a',\r\n '\\u00E5': 'a',\r\n '\\u01FB': 'a',\r\n '\\u01CE': 'a',\r\n '\\u0201': 'a',\r\n '\\u0203': 'a',\r\n '\\u1EA1': 'a',\r\n '\\u1EAD': 'a',\r\n '\\u1EB7': 'a',\r\n '\\u1E01': 'a',\r\n '\\u0105': 'a',\r\n '\\u2C65': 'a',\r\n '\\u0250': 'a',\r\n '\\uA733': 'aa',\r\n '\\u00E6': 'ae',\r\n '\\u01FD': 'ae',\r\n '\\u01E3': 'ae',\r\n '\\uA735': 'ao',\r\n '\\uA737': 'au',\r\n '\\uA739': 'av',\r\n '\\uA73B': 'av',\r\n '\\uA73D': 'ay',\r\n '\\u24D1': 'b',\r\n '\\uFF42': 'b',\r\n '\\u1E03': 'b',\r\n '\\u1E05': 'b',\r\n '\\u1E07': 'b',\r\n '\\u0180': 'b',\r\n '\\u0183': 'b',\r\n '\\u0253': 'b',\r\n '\\u24D2': 'c',\r\n '\\uFF43': 'c',\r\n '\\u0107': 'c',\r\n '\\u0109': 'c',\r\n '\\u010B': 'c',\r\n '\\u010D': 'c',\r\n '\\u00E7': 'c',\r\n '\\u1E09': 'c',\r\n '\\u0188': 'c',\r\n '\\u023C': 'c',\r\n '\\uA73F': 'c',\r\n '\\u2184': 'c',\r\n '\\u24D3': 'd',\r\n '\\uFF44': 'd',\r\n '\\u1E0B': 'd',\r\n '\\u010F': 'd',\r\n '\\u1E0D': 'd',\r\n '\\u1E11': 'd',\r\n '\\u1E13': 'd',\r\n '\\u1E0F': 'd',\r\n '\\u0111': 'd',\r\n '\\u018C': 'd',\r\n '\\u0256': 'd',\r\n '\\u0257': 'd',\r\n '\\uA77A': 'd',\r\n '\\u01F3': 'dz',\r\n '\\u01C6': 'dz',\r\n '\\u24D4': 'e',\r\n '\\uFF45': 'e',\r\n '\\u00E8': 'e',\r\n '\\u00E9': 'e',\r\n '\\u00EA': 'e',\r\n '\\u1EC1': 'e',\r\n '\\u1EBF': 'e',\r\n '\\u1EC5': 'e',\r\n '\\u1EC3': 'e',\r\n '\\u1EBD': 'e',\r\n '\\u0113': 'e',\r\n '\\u1E15': 'e',\r\n '\\u1E17': 'e',\r\n '\\u0115': 'e',\r\n '\\u0117': 'e',\r\n '\\u00EB': 'e',\r\n '\\u1EBB': 'e',\r\n '\\u011B': 'e',\r\n '\\u0205': 'e',\r\n '\\u0207': 'e',\r\n '\\u1EB9': 'e',\r\n '\\u1EC7': 'e',\r\n '\\u0229': 'e',\r\n '\\u1E1D': 'e',\r\n '\\u0119': 'e',\r\n '\\u1E19': 'e',\r\n '\\u1E1B': 'e',\r\n '\\u0247': 'e',\r\n '\\u025B': 'e',\r\n '\\u01DD': 'e',\r\n '\\u24D5': 'f',\r\n '\\uFF46': 'f',\r\n '\\u1E1F': 'f',\r\n '\\u0192': 'f',\r\n '\\uA77C': 'f',\r\n '\\u24D6': 'g',\r\n '\\uFF47': 'g',\r\n '\\u01F5': 'g',\r\n '\\u011D': 'g',\r\n '\\u1E21': 'g',\r\n '\\u011F': 'g',\r\n '\\u0121': 'g',\r\n '\\u01E7': 'g',\r\n '\\u0123': 'g',\r\n '\\u01E5': 'g',\r\n '\\u0260': 'g',\r\n '\\uA7A1': 'g',\r\n '\\u1D79': 'g',\r\n '\\uA77F': 'g',\r\n '\\u24D7': 'h',\r\n '\\uFF48': 'h',\r\n '\\u0125': 'h',\r\n '\\u1E23': 'h',\r\n '\\u1E27': 'h',\r\n '\\u021F': 'h',\r\n '\\u1E25': 'h',\r\n '\\u1E29': 'h',\r\n '\\u1E2B': 'h',\r\n '\\u1E96': 'h',\r\n '\\u0127': 'h',\r\n '\\u2C68': 'h',\r\n '\\u2C76': 'h',\r\n '\\u0265': 'h',\r\n '\\u0195': 'hv',\r\n '\\u24D8': 'i',\r\n '\\uFF49': 'i',\r\n '\\u00EC': 'i',\r\n '\\u00ED': 'i',\r\n '\\u00EE': 'i',\r\n '\\u0129': 'i',\r\n '\\u012B': 'i',\r\n '\\u012D': 'i',\r\n '\\u00EF': 'i',\r\n '\\u1E2F': 'i',\r\n '\\u1EC9': 'i',\r\n '\\u01D0': 'i',\r\n '\\u0209': 'i',\r\n '\\u020B': 'i',\r\n '\\u1ECB': 'i',\r\n '\\u012F': 'i',\r\n '\\u1E2D': 'i',\r\n '\\u0268': 'i',\r\n '\\u0131': 'i',\r\n '\\u24D9': 'j',\r\n '\\uFF4A': 'j',\r\n '\\u0135': 'j',\r\n '\\u01F0': 'j',\r\n '\\u0249': 'j',\r\n '\\u24DA': 'k',\r\n '\\uFF4B': 'k',\r\n '\\u1E31': 'k',\r\n '\\u01E9': 'k',\r\n '\\u1E33': 'k',\r\n '\\u0137': 'k',\r\n '\\u1E35': 'k',\r\n '\\u0199': 'k',\r\n '\\u2C6A': 'k',\r\n '\\uA741': 'k',\r\n '\\uA743': 'k',\r\n '\\uA745': 'k',\r\n '\\uA7A3': 'k',\r\n '\\u24DB': 'l',\r\n '\\uFF4C': 'l',\r\n '\\u0140': 'l',\r\n '\\u013A': 'l',\r\n '\\u013E': 'l',\r\n '\\u1E37': 'l',\r\n '\\u1E39': 'l',\r\n '\\u013C': 'l',\r\n '\\u1E3D': 'l',\r\n '\\u1E3B': 'l',\r\n '\\u017F': 'l',\r\n '\\u0142': 'l',\r\n '\\u019A': 'l',\r\n '\\u026B': 'l',\r\n '\\u2C61': 'l',\r\n '\\uA749': 'l',\r\n '\\uA781': 'l',\r\n '\\uA747': 'l',\r\n '\\u01C9': 'lj',\r\n '\\u24DC': 'm',\r\n '\\uFF4D': 'm',\r\n '\\u1E3F': 'm',\r\n '\\u1E41': 'm',\r\n '\\u1E43': 'm',\r\n '\\u0271': 'm',\r\n '\\u026F': 'm',\r\n '\\u24DD': 'n',\r\n '\\uFF4E': 'n',\r\n '\\u01F9': 'n',\r\n '\\u0144': 'n',\r\n '\\u00F1': 'n',\r\n '\\u1E45': 'n',\r\n '\\u0148': 'n',\r\n '\\u1E47': 'n',\r\n '\\u0146': 'n',\r\n '\\u1E4B': 'n',\r\n '\\u1E49': 'n',\r\n '\\u019E': 'n',\r\n '\\u0272': 'n',\r\n '\\u0149': 'n',\r\n '\\uA791': 'n',\r\n '\\uA7A5': 'n',\r\n '\\u01CC': 'nj',\r\n '\\u24DE': 'o',\r\n '\\uFF4F': 'o',\r\n '\\u00F2': 'o',\r\n '\\u00F3': 'o',\r\n '\\u00F4': 'o',\r\n '\\u1ED3': 'o',\r\n '\\u1ED1': 'o',\r\n '\\u1ED7': 'o',\r\n '\\u1ED5': 'o',\r\n '\\u00F5': 'o',\r\n '\\u1E4D': 'o',\r\n '\\u022D': 'o',\r\n '\\u1E4F': 'o',\r\n '\\u014D': 'o',\r\n '\\u1E51': 'o',\r\n '\\u1E53': 'o',\r\n '\\u014F': 'o',\r\n '\\u022F': 'o',\r\n '\\u0231': 'o',\r\n '\\u00F6': 'o',\r\n '\\u022B': 'o',\r\n '\\u1ECF': 'o',\r\n '\\u0151': 'o',\r\n '\\u01D2': 'o',\r\n '\\u020D': 'o',\r\n '\\u020F': 'o',\r\n '\\u01A1': 'o',\r\n '\\u1EDD': 'o',\r\n '\\u1EDB': 'o',\r\n '\\u1EE1': 'o',\r\n '\\u1EDF': 'o',\r\n '\\u1EE3': 'o',\r\n '\\u1ECD': 'o',\r\n '\\u1ED9': 'o',\r\n '\\u01EB': 'o',\r\n '\\u01ED': 'o',\r\n '\\u00F8': 'o',\r\n '\\u01FF': 'o',\r\n '\\u0254': 'o',\r\n '\\uA74B': 'o',\r\n '\\uA74D': 'o',\r\n '\\u0275': 'o',\r\n '\\u01A3': 'oi',\r\n '\\u0223': 'ou',\r\n '\\uA74F': 'oo',\r\n '\\u24DF': 'p',\r\n '\\uFF50': 'p',\r\n '\\u1E55': 'p',\r\n '\\u1E57': 'p',\r\n '\\u01A5': 'p',\r\n '\\u1D7D': 'p',\r\n '\\uA751': 'p',\r\n '\\uA753': 'p',\r\n '\\uA755': 'p',\r\n '\\u24E0': 'q',\r\n '\\uFF51': 'q',\r\n '\\u024B': 'q',\r\n '\\uA757': 'q',\r\n '\\uA759': 'q',\r\n '\\u24E1': 'r',\r\n '\\uFF52': 'r',\r\n '\\u0155': 'r',\r\n '\\u1E59': 'r',\r\n '\\u0159': 'r',\r\n '\\u0211': 'r',\r\n '\\u0213': 'r',\r\n '\\u1E5B': 'r',\r\n '\\u1E5D': 'r',\r\n '\\u0157': 'r',\r\n '\\u1E5F': 'r',\r\n '\\u024D': 'r',\r\n '\\u027D': 'r',\r\n '\\uA75B': 'r',\r\n '\\uA7A7': 'r',\r\n '\\uA783': 'r',\r\n '\\u24E2': 's',\r\n '\\uFF53': 's',\r\n '\\u00DF': 's',\r\n '\\u015B': 's',\r\n '\\u1E65': 's',\r\n '\\u015D': 's',\r\n '\\u1E61': 's',\r\n '\\u0161': 's',\r\n '\\u1E67': 's',\r\n '\\u1E63': 's',\r\n '\\u1E69': 's',\r\n '\\u0219': 's',\r\n '\\u015F': 's',\r\n '\\u023F': 's',\r\n '\\uA7A9': 's',\r\n '\\uA785': 's',\r\n '\\u1E9B': 's',\r\n '\\u24E3': 't',\r\n '\\uFF54': 't',\r\n '\\u1E6B': 't',\r\n '\\u1E97': 't',\r\n '\\u0165': 't',\r\n '\\u1E6D': 't',\r\n '\\u021B': 't',\r\n '\\u0163': 't',\r\n '\\u1E71': 't',\r\n '\\u1E6F': 't',\r\n '\\u0167': 't',\r\n '\\u01AD': 't',\r\n '\\u0288': 't',\r\n '\\u2C66': 't',\r\n '\\uA787': 't',\r\n '\\uA729': 'tz',\r\n '\\u24E4': 'u',\r\n '\\uFF55': 'u',\r\n '\\u00F9': 'u',\r\n '\\u00FA': 'u',\r\n '\\u00FB': 'u',\r\n '\\u0169': 'u',\r\n '\\u1E79': 'u',\r\n '\\u016B': 'u',\r\n '\\u1E7B': 'u',\r\n '\\u016D': 'u',\r\n '\\u00FC': 'u',\r\n '\\u01DC': 'u',\r\n '\\u01D8': 'u',\r\n '\\u01D6': 'u',\r\n '\\u01DA': 'u',\r\n '\\u1EE7': 'u',\r\n '\\u016F': 'u',\r\n '\\u0171': 'u',\r\n '\\u01D4': 'u',\r\n '\\u0215': 'u',\r\n '\\u0217': 'u',\r\n '\\u01B0': 'u',\r\n '\\u1EEB': 'u',\r\n '\\u1EE9': 'u',\r\n '\\u1EEF': 'u',\r\n '\\u1EED': 'u',\r\n '\\u1EF1': 'u',\r\n '\\u1EE5': 'u',\r\n '\\u1E73': 'u',\r\n '\\u0173': 'u',\r\n '\\u1E77': 'u',\r\n '\\u1E75': 'u',\r\n '\\u0289': 'u',\r\n '\\u24E5': 'v',\r\n '\\uFF56': 'v',\r\n '\\u1E7D': 'v',\r\n '\\u1E7F': 'v',\r\n '\\u028B': 'v',\r\n '\\uA75F': 'v',\r\n '\\u028C': 'v',\r\n '\\uA761': 'vy',\r\n '\\u24E6': 'w',\r\n '\\uFF57': 'w',\r\n '\\u1E81': 'w',\r\n '\\u1E83': 'w',\r\n '\\u0175': 'w',\r\n '\\u1E87': 'w',\r\n '\\u1E85': 'w',\r\n '\\u1E98': 'w',\r\n '\\u1E89': 'w',\r\n '\\u2C73': 'w',\r\n '\\u24E7': 'x',\r\n '\\uFF58': 'x',\r\n '\\u1E8B': 'x',\r\n '\\u1E8D': 'x',\r\n '\\u24E8': 'y',\r\n '\\uFF59': 'y',\r\n '\\u1EF3': 'y',\r\n '\\u00FD': 'y',\r\n '\\u0177': 'y',\r\n '\\u1EF9': 'y',\r\n '\\u0233': 'y',\r\n '\\u1E8F': 'y',\r\n '\\u00FF': 'y',\r\n '\\u1EF7': 'y',\r\n '\\u1E99': 'y',\r\n '\\u1EF5': 'y',\r\n '\\u01B4': 'y',\r\n '\\u024F': 'y',\r\n '\\u1EFF': 'y',\r\n '\\u24E9': 'z',\r\n '\\uFF5A': 'z',\r\n '\\u017A': 'z',\r\n '\\u1E91': 'z',\r\n '\\u017C': 'z',\r\n '\\u017E': 'z',\r\n '\\u1E93': 'z',\r\n '\\u1E95': 'z',\r\n '\\u01B6': 'z',\r\n '\\u0225': 'z',\r\n '\\u0240': 'z',\r\n '\\u2C6C': 'z',\r\n '\\uA763': 'z',\r\n '\\u0386': '\\u0391',\r\n '\\u0388': '\\u0395',\r\n '\\u0389': '\\u0397',\r\n '\\u038A': '\\u0399',\r\n '\\u03AA': '\\u0399',\r\n '\\u038C': '\\u039F',\r\n '\\u038E': '\\u03A5',\r\n '\\u03AB': '\\u03A5',\r\n '\\u038F': '\\u03A9',\r\n '\\u03AC': '\\u03B1',\r\n '\\u03AD': '\\u03B5',\r\n '\\u03AE': '\\u03B7',\r\n '\\u03AF': '\\u03B9',\r\n '\\u03CA': '\\u03B9',\r\n '\\u0390': '\\u03B9',\r\n '\\u03CC': '\\u03BF',\r\n '\\u03CD': '\\u03C5',\r\n '\\u03CB': '\\u03C5',\r\n '\\u03B0': '\\u03C5',\r\n '\\u03C9': '\\u03C9',\r\n '\\u03C2': '\\u03C3'\r\n };\r\n DataUtil.fnOperators = {\r\n /**\r\n * Returns true when the actual input is equal to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n * @param {boolean} ignoreAccent?\r\n */\r\n equal: function (actual, expected, ignoreCase, ignoreAccent) {\r\n if (ignoreAccent) {\r\n actual = DataUtil.ignoreDiacritics(actual);\r\n expected = DataUtil.ignoreDiacritics(expected);\r\n }\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(actual) === DataUtil.toLowerCase(expected);\r\n }\r\n return actual === expected;\r\n },\r\n /**\r\n * Returns true when the actual input is not equal to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n notequal: function (actual, expected, ignoreCase, ignoreAccent) {\r\n if (ignoreAccent) {\r\n actual = DataUtil.ignoreDiacritics(actual);\r\n expected = DataUtil.ignoreDiacritics(expected);\r\n }\r\n return !DataUtil.fnOperators.equal(actual, expected, ignoreCase);\r\n },\r\n /**\r\n * Returns true when the actual input is less than to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n lessthan: function (actual, expected, ignoreCase) {\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(actual) < DataUtil.toLowerCase(expected);\r\n }\r\n if (isNullOrUndefined(actual)) {\r\n actual = undefined;\r\n }\r\n return actual < expected;\r\n },\r\n /**\r\n * Returns true when the actual input is greater than to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n greaterthan: function (actual, expected, ignoreCase) {\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(actual) > DataUtil.toLowerCase(expected);\r\n }\r\n return actual > expected;\r\n },\r\n /**\r\n * Returns true when the actual input is less than or equal to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n lessthanorequal: function (actual, expected, ignoreCase) {\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(actual) <= DataUtil.toLowerCase(expected);\r\n }\r\n if (isNullOrUndefined(actual)) {\r\n actual = undefined;\r\n }\r\n return actual <= expected;\r\n },\r\n /**\r\n * Returns true when the actual input is greater than or equal to the given input.\r\n * @param {string|number|boolean} actual\r\n * @param {string|number|boolean} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n greaterthanorequal: function (actual, expected, ignoreCase) {\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(actual) >= DataUtil.toLowerCase(expected);\r\n }\r\n return actual >= expected;\r\n },\r\n /**\r\n * Returns true when the actual input contains the given string.\r\n * @param {string|number} actual\r\n * @param {string|number} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n contains: function (actual, expected, ignoreCase, ignoreAccent) {\r\n if (ignoreAccent) {\r\n actual = DataUtil.ignoreDiacritics(actual);\r\n expected = DataUtil.ignoreDiacritics(expected);\r\n }\r\n if (ignoreCase) {\r\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\r\n DataUtil.toLowerCase(actual).indexOf(DataUtil.toLowerCase(expected)) !== -1;\r\n }\r\n return !isNullOrUndefined(actual) && !isNullOrUndefined(expected) &&\r\n actual.toString().indexOf(expected) !== -1;\r\n },\r\n /**\r\n * Returns true when the given input value is not null.\r\n * @param {string|number} actual\r\n * @returns boolean\r\n */\r\n notnull: function (actual) {\r\n return actual !== null;\r\n },\r\n /**\r\n * Returns true when the given input value is null.\r\n * @param {string|number} actual\r\n * @returns boolean\r\n */\r\n isnull: function (actual) {\r\n return actual === null;\r\n },\r\n /**\r\n * Returns true when the actual input starts with the given string\r\n * @param {string} actual\r\n * @param {string} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n startswith: function (actual, expected, ignoreCase, ignoreAccent) {\r\n if (ignoreAccent) {\r\n actual = DataUtil.ignoreDiacritics(actual);\r\n expected = DataUtil.ignoreDiacritics(expected);\r\n }\r\n if (ignoreCase) {\r\n return actual && expected && DataUtil.startsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\r\n }\r\n return actual && expected && DataUtil.startsWith(actual, expected);\r\n },\r\n /**\r\n * Returns true when the actual input ends with the given string.\r\n * @param {string} actual\r\n * @param {string} expected\r\n * @param {boolean} ignoreCase?\r\n */\r\n endswith: function (actual, expected, ignoreCase, ignoreAccent) {\r\n if (ignoreAccent) {\r\n actual = DataUtil.ignoreDiacritics(actual);\r\n expected = DataUtil.ignoreDiacritics(expected);\r\n }\r\n if (ignoreCase) {\r\n return actual && expected && DataUtil.endsWith(DataUtil.toLowerCase(actual), DataUtil.toLowerCase(expected));\r\n }\r\n return actual && expected && DataUtil.endsWith(actual, expected);\r\n },\r\n /**\r\n * It will return the filter operator based on the filter symbol.\r\n * @param {string} operator\r\n * @hidden\r\n */\r\n processSymbols: function (operator) {\r\n var fnName = DataUtil.operatorSymbols[operator];\r\n if (fnName) {\r\n var fn = DataUtil.fnOperators[fnName];\r\n return fn;\r\n }\r\n return DataUtil.throwError('Query - Process Operator : Invalid operator');\r\n },\r\n /**\r\n * It will return the valid filter operator based on the specified operators.\r\n * @param {string} operator\r\n * @hidden\r\n */\r\n processOperator: function (operator) {\r\n var fn = DataUtil.fnOperators[operator];\r\n if (fn) {\r\n return fn;\r\n }\r\n return DataUtil.fnOperators.processSymbols(operator);\r\n }\r\n };\r\n /**\r\n * To perform the parse operation on JSON data, like convert to string from JSON or convert to JSON from string.\r\n */\r\n DataUtil.parse = {\r\n /**\r\n * Parse the given string to the plain JavaScript object.\r\n * @param {string|Object|Object[]} jsonText\r\n */\r\n parseJson: function (jsonText) {\r\n if (typeof jsonText === 'string') {\r\n jsonText = JSON.parse(jsonText, DataUtil.parse.jsonReviver);\r\n }\r\n else if (jsonText instanceof Array) {\r\n DataUtil.parse.iterateAndReviveArray(jsonText);\r\n }\r\n else if (typeof jsonText === 'object' && jsonText !== null) {\r\n DataUtil.parse.iterateAndReviveJson(jsonText);\r\n }\r\n return jsonText;\r\n },\r\n /**\r\n * It will perform on array of values.\r\n * @param {string[]|Object[]} array\r\n * @hidden\r\n */\r\n iterateAndReviveArray: function (array) {\r\n for (var i = 0; i < array.length; i++) {\r\n if (typeof array[i] === 'object' && array[i] !== null) {\r\n DataUtil.parse.iterateAndReviveJson(array[i]);\r\n }\r\n else if (typeof array[i] === 'string' && !/^[\\s]*\\[|^[\\s]*\\{(.)+:|\\\"/g.test(array[i])) {\r\n array[i] = DataUtil.parse.jsonReviver('', array[i]);\r\n }\r\n else {\r\n array[i] = DataUtil.parse.parseJson(array[i]);\r\n }\r\n }\r\n },\r\n /**\r\n * It will perform on JSON values\r\n * @param {JSON} json\r\n * @hidden\r\n */\r\n iterateAndReviveJson: function (json) {\r\n var value;\r\n var keys = Object.keys(json);\r\n for (var _i = 0, keys_2 = keys; _i < keys_2.length; _i++) {\r\n var prop = keys_2[_i];\r\n if (DataUtil.startsWith(prop, '__')) {\r\n continue;\r\n }\r\n value = json[prop];\r\n if (typeof value === 'object') {\r\n if (value instanceof Array) {\r\n DataUtil.parse.iterateAndReviveArray(value);\r\n }\r\n else if (value) {\r\n DataUtil.parse.iterateAndReviveJson(value);\r\n }\r\n }\r\n else {\r\n json[prop] = DataUtil.parse.jsonReviver(json[prop], value);\r\n }\r\n }\r\n },\r\n /**\r\n * It will perform on JSON values\r\n * @param {string} field\r\n * @param {string|Date} value\r\n * @hidden\r\n */\r\n jsonReviver: function (field, value) {\r\n if (typeof value === 'string') {\r\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\r\n var offSet = DataUtil.timeZoneHandling ? DataUtil.serverTimezoneOffset : null;\r\n if (ms) {\r\n return DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), offSet, true);\r\n }\r\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\r\n var isUTC = value.indexOf('Z') > -1 || value.indexOf('z') > -1;\r\n var arr = value.split(/[^0-9.]/);\r\n if (isUTC) {\r\n value = DataUtil.dateParse\r\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), DataUtil.serverTimezoneOffset, false);\r\n }\r\n else {\r\n var utcFormat = new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10));\r\n var hrs = parseInt(arr[6], 10);\r\n var mins = parseInt(arr[7], 10);\r\n if (isNaN(hrs) && isNaN(mins)) {\r\n return utcFormat;\r\n }\r\n if (value.indexOf('+') > -1) {\r\n utcFormat.setHours(utcFormat.getHours() - hrs, utcFormat.getMinutes() - mins);\r\n }\r\n else {\r\n utcFormat.setHours(utcFormat.getHours() + hrs, utcFormat.getMinutes() + mins);\r\n }\r\n value = DataUtil.dateParse\r\n .toTimeZone(utcFormat, DataUtil.serverTimezoneOffset, false);\r\n }\r\n if (DataUtil.serverTimezoneOffset == null) {\r\n value = DataUtil.dateParse.addSelfOffset(value);\r\n }\r\n }\r\n }\r\n return value;\r\n },\r\n /**\r\n * Check wheather the given value is JSON or not.\r\n * @param {Object[]} jsonData\r\n */\r\n isJson: function (jsonData) {\r\n if (typeof jsonData[0] === 'string') {\r\n return jsonData;\r\n }\r\n return DataUtil.parse.parseJson(jsonData);\r\n },\r\n /**\r\n * Checks wheather the given value is GUID or not.\r\n * @param {string} value\r\n */\r\n isGuid: function (value) {\r\n var regex = /[A-Fa-f0-9]{8}(?:-[A-Fa-f0-9]{4}){3}-[A-Fa-f0-9]{12}/i;\r\n var match = regex.exec(value);\r\n return match != null;\r\n },\r\n /**\r\n * The method used to replace the value based on the type.\r\n * @param {Object} value\r\n * @param {boolean} stringify\r\n * @hidden\r\n */\r\n replacer: function (value, stringify) {\r\n if (DataUtil.isPlainObject(value)) {\r\n return DataUtil.parse.jsonReplacer(value, stringify);\r\n }\r\n if (value instanceof Array) {\r\n return DataUtil.parse.arrayReplacer(value);\r\n }\r\n if (value instanceof Date) {\r\n return DataUtil.parse.jsonReplacer({ val: value }, stringify).val;\r\n }\r\n return value;\r\n },\r\n /**\r\n * It will replace the JSON value.\r\n * @param {string} key\r\n * @param {Object} val\r\n * @hidden\r\n */\r\n jsonReplacer: function (val, stringify) {\r\n var value;\r\n var keys = Object.keys(val);\r\n for (var _i = 0, keys_3 = keys; _i < keys_3.length; _i++) {\r\n var prop = keys_3[_i];\r\n value = val[prop];\r\n if (!(value instanceof Date)) {\r\n continue;\r\n }\r\n var d = value;\r\n if (DataUtil.serverTimezoneOffset == null) {\r\n val[prop] = DataUtil.dateParse.toTimeZone(d, null).toJSON();\r\n }\r\n else {\r\n d = new Date(+d + DataUtil.serverTimezoneOffset * 3600000);\r\n val[prop] = DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(d), null).toJSON();\r\n }\r\n }\r\n return val;\r\n },\r\n /**\r\n * It will replace the Array of value.\r\n * @param {string} key\r\n * @param {Object[]} val\r\n * @hidden\r\n */\r\n arrayReplacer: function (val) {\r\n for (var i = 0; i < val.length; i++) {\r\n if (DataUtil.isPlainObject(val[i])) {\r\n val[i] = DataUtil.parse.jsonReplacer(val[i]);\r\n }\r\n else if (val[i] instanceof Date) {\r\n val[i] = DataUtil.parse.jsonReplacer({ date: val[i] }).date;\r\n }\r\n }\r\n return val;\r\n },\r\n /**\r\n * It will replace the Date object with respective to UTC format value.\r\n * @param {string} key\r\n * @param {any} value\r\n * @hidden\r\n */\r\n /* tslint:disable-next-line:no-any */\r\n jsonDateReplacer: function (key, value) {\r\n if (key === 'value' && value) {\r\n if (typeof value === 'string') {\r\n var ms = /^\\/Date\\(([+-]?[0-9]+)([+-][0-9]{4})?\\)\\/$/.exec(value);\r\n if (ms) {\r\n value = DataUtil.dateParse.toTimeZone(new Date(parseInt(ms[1], 10)), null, true);\r\n }\r\n else if (/^(\\d{4}\\-\\d\\d\\-\\d\\d([tT][\\d:\\.]*){1})([zZ]|([+\\-])(\\d\\d):?(\\d\\d))?$/.test(value)) {\r\n var arr = value.split(/[^0-9]/);\r\n value = DataUtil.dateParse\r\n .toTimeZone(new Date(parseInt(arr[0], 10), parseInt(arr[1], 10) - 1, parseInt(arr[2], 10), parseInt(arr[3], 10), parseInt(arr[4], 10), parseInt(arr[5], 10)), null, true);\r\n }\r\n }\r\n if (value instanceof Date) {\r\n value = DataUtil.dateParse.addSelfOffset(value);\r\n if (DataUtil.serverTimezoneOffset === null) {\r\n return DataUtil.dateParse.toTimeZone(DataUtil.dateParse.addSelfOffset(value), null).toJSON();\r\n }\r\n else {\r\n value = DataUtil.dateParse.toTimeZone(value, (((value.getTimezoneOffset() / 60) * 2)\r\n - DataUtil.serverTimezoneOffset), false);\r\n return value.toJSON();\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n DataUtil.dateParse = {\r\n addSelfOffset: function (input) {\r\n return new Date(+input - (input.getTimezoneOffset() * 60000));\r\n },\r\n toUTC: function (input) {\r\n return new Date(+input + (input.getTimezoneOffset() * 60000));\r\n },\r\n toTimeZone: function (input, offset, utc) {\r\n if (offset === null) {\r\n return input;\r\n }\r\n var unix = utc ? DataUtil.dateParse.toUTC(input) : input;\r\n return new Date(+unix - (offset * 3600000));\r\n },\r\n toLocalTime: function (input) {\r\n var datefn = input;\r\n var timeZone = -datefn.getTimezoneOffset();\r\n var differenceString = timeZone >= 0 ? '+' : '-';\r\n var localtimefn = function (num) {\r\n var norm = Math.floor(Math.abs(num));\r\n return (norm < 10 ? '0' : '') + norm;\r\n };\r\n var val = datefn.getFullYear() + '-' + localtimefn(datefn.getMonth() + 1) + '-' + localtimefn(datefn.getDate()) +\r\n 'T' + localtimefn(datefn.getHours()) +\r\n ':' + localtimefn(datefn.getMinutes()) +\r\n ':' + localtimefn(datefn.getSeconds()) +\r\n differenceString + localtimefn(timeZone / 60) +\r\n ':' + localtimefn(timeZone % 60);\r\n return val;\r\n }\r\n };\r\n return DataUtil;\r\n}());\r\nexport { DataUtil };\r\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { Property, EventHandler, isNullOrUndefined, detach } from '@syncfusion/ej2-base';\r\nimport { Event, Complex } from '@syncfusion/ej2-base';\r\nimport { removeClass, attributes, NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { dropDownListClasses } from '../drop-down-list/drop-down-list';\r\nimport { ComboBox } from '../combo-box/combo-box';\r\nimport { highlightSearch, revertHighlightSearch } from '../common/highlight-search';\r\nimport { Search } from '../common/incremental-search';\r\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\ndropDownListClasses.root = 'e-autocomplete';\r\ndropDownListClasses.icon = 'e-input-group-icon e-ddl-icon e-search-icon';\r\n/**\r\n * The AutoComplete component provides the matched suggestion list when type into the input,\r\n * from which the user can select one.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * let atcObj:AutoComplete = new AutoComplete();\r\n * atcObj.appendTo(\"#list\");\r\n * ```\r\n */\r\nvar AutoComplete = /** @class */ (function (_super) {\r\n __extends(AutoComplete, _super);\r\n /**\r\n * * Constructor for creating the widget\r\n *\r\n * @param {AutoCompleteModel} options - Specifies the AutoComplete model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function AutoComplete(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isFiltered = false;\r\n _this.searchList = false;\r\n return _this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n AutoComplete.prototype.preRender = function () {\r\n _super.prototype.preRender.call(this);\r\n };\r\n AutoComplete.prototype.getLocaleName = function () {\r\n return 'auto-complete';\r\n };\r\n AutoComplete.prototype.getNgDirective = function () {\r\n return 'EJS-AUTOCOMPLETE';\r\n };\r\n AutoComplete.prototype.getQuery = function (query) {\r\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\r\n var filterType = (this.queryString === '' && !isNullOrUndefined(this.value)) ? 'equal' : this.filterType;\r\n var queryString = (this.queryString === '' && !isNullOrUndefined(this.value)) ? this.value : this.queryString;\r\n if (this.isFiltered) {\r\n return filterQuery;\r\n }\r\n if (this.queryString !== null && this.queryString !== '') {\r\n var dataType = this.typeOfData(this.dataSource).typeof;\r\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\r\n filterQuery.where('', filterType, queryString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n else {\r\n var mapping = !isNullOrUndefined(this.fields.value) ? this.fields.value : '';\r\n filterQuery.where(mapping, filterType, queryString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n }\r\n if (!isNullOrUndefined(this.suggestionCount)) {\r\n // Since defualt value of suggestioncount is 20, checked the condition\r\n if (this.suggestionCount !== 20) {\r\n for (var queryElements = 0; queryElements < filterQuery.queries.length; queryElements++) {\r\n if (filterQuery.queries[queryElements].fn === 'onTake') {\r\n filterQuery.queries.splice(queryElements, 1);\r\n }\r\n }\r\n }\r\n filterQuery.take(this.suggestionCount);\r\n }\r\n return filterQuery;\r\n };\r\n AutoComplete.prototype.searchLists = function (e) {\r\n var _this = this;\r\n this.isTyped = true;\r\n this.isDataFetched = this.isSelectCustom = false;\r\n if (isNullOrUndefined(this.list)) {\r\n _super.prototype.renderList.call(this, true);\r\n }\r\n this.queryString = this.filterInput.value;\r\n if (e.type !== 'mousedown' && (e.keyCode === 40 || e.keyCode === 38)) {\r\n this.queryString = this.queryString === '' ? null : this.queryString;\r\n this.beforePopupOpen = true;\r\n this.resetList(this.dataSource, this.fields);\r\n return;\r\n }\r\n this.isSelected = false;\r\n this.activeIndex = null;\r\n var eventArgs = {\r\n preventDefaultAction: false,\r\n text: this.filterInput.value,\r\n updateData: function (dataSource, query, fields) {\r\n if (eventArgs.cancel) {\r\n return;\r\n }\r\n _this.isFiltered = true;\r\n _this.filterAction(dataSource, query, fields);\r\n },\r\n cancel: false\r\n };\r\n this.trigger('filtering', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel && !_this.isFiltered && !eventArgs.preventDefaultAction) {\r\n _this.searchList = true;\r\n _this.filterAction(_this.dataSource, null, _this.fields);\r\n }\r\n });\r\n };\r\n /**\r\n * To filter the data from given data source by using query\r\n *\r\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\r\n * @param {Query} query - Specify the query to filter the data.\r\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\r\n * @returns {void}\r\n\r\n */\r\n AutoComplete.prototype.filter = function (dataSource, query, fields) {\r\n this.isFiltered = true;\r\n this.filterAction(dataSource, query, fields);\r\n };\r\n AutoComplete.prototype.filterAction = function (dataSource, query, fields) {\r\n this.beforePopupOpen = true;\r\n if (this.queryString !== '' && (this.queryString.length >= this.minLength)) {\r\n this.resetList(dataSource, fields, query);\r\n }\r\n else {\r\n this.hidePopup();\r\n this.beforePopupOpen = false;\r\n }\r\n this.renderReactTemplates();\r\n };\r\n AutoComplete.prototype.clearAll = function (e, property) {\r\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\r\n _super.prototype.clearAll.call(this, e);\r\n }\r\n if (this.beforePopupOpen) {\r\n this.hidePopup();\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n AutoComplete.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\r\n this.fixedHeaderElement = null;\r\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\r\n var item = this.list.querySelector('.' + dropDownListClasses.li);\r\n if (!isNullOrUndefined(item)) {\r\n removeClass([item], dropDownListClasses.focus);\r\n }\r\n this.postBackAction();\r\n };\r\n AutoComplete.prototype.postBackAction = function () {\r\n if (this.autofill && !isNullOrUndefined(this.liCollections[0]) && this.searchList) {\r\n var items = [this.liCollections[0]];\r\n var searchItem = Search(this.inputElement.value, items, 'StartsWith', this.ignoreCase);\r\n this.searchList = false;\r\n if (!isNullOrUndefined(searchItem.item)) {\r\n _super.prototype.setAutoFill.call(this, this.liCollections[0], true);\r\n }\r\n }\r\n };\r\n AutoComplete.prototype.setSelection = function (li, e) {\r\n if (!this.isValidLI(li)) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(e) && e.type === 'keydown' && e.action !== 'enter'\r\n && e.action !== 'tab' && this.isValidLI(li)) {\r\n var value = this.getFormattedValue(li.getAttribute('data-value'));\r\n this.activeIndex = this.getIndexByValue(value);\r\n this.setHoverList(li);\r\n this.selectedLI = li;\r\n this.setScrollPosition(e);\r\n if (this.autofill && this.isPopupOpen) {\r\n this.preventAutoFill = false;\r\n _super.prototype.setAutoFill.call(this, li);\r\n }\r\n attributes(this.inputElement, { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });\r\n }\r\n else {\r\n _super.prototype.setSelection.call(this, li, e);\r\n }\r\n };\r\n AutoComplete.prototype.listOption = function (dataSource, fieldsSettings) {\r\n var _this = this;\r\n var fields = _super.prototype.listOption.call(this, dataSource, fieldsSettings);\r\n if (isNullOrUndefined(fields.itemCreated)) {\r\n fields.itemCreated = function (e) {\r\n if (_this.highlight) {\r\n if (_this.element.tagName === _this.getNgDirective() && _this.itemTemplate) {\r\n setTimeout(function () {\r\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\r\n }, 0);\r\n }\r\n else {\r\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\r\n }\r\n }\r\n };\r\n }\r\n else {\r\n var itemCreated_1 = fields.itemCreated;\r\n fields.itemCreated = function (e) {\r\n if (_this.highlight) {\r\n highlightSearch(e.item, _this.queryString, _this.ignoreCase, _this.filterType);\r\n }\r\n itemCreated_1.apply(_this, [e]);\r\n };\r\n }\r\n return fields;\r\n };\r\n AutoComplete.prototype.isFiltering = function () {\r\n return true;\r\n };\r\n AutoComplete.prototype.renderPopup = function () {\r\n this.list.scrollTop = 0;\r\n _super.prototype.renderPopup.call(this);\r\n };\r\n AutoComplete.prototype.isEditTextBox = function () {\r\n return true && this.inputElement.value.trim() !== '';\r\n };\r\n AutoComplete.prototype.isPopupButton = function () {\r\n return this.showPopupButton;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n AutoComplete.prototype.isSelectFocusItem = function (element) {\r\n return false;\r\n };\r\n /**\r\n * Search the entered text and show it in the suggestion list if available.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n AutoComplete.prototype.showPopup = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.beforePopupOpen) {\r\n this.refreshPopup();\r\n return;\r\n }\r\n this.beforePopupOpen = true;\r\n this.preventAutoFill = true;\r\n if (isNullOrUndefined(this.list)) {\r\n this.renderList();\r\n }\r\n else {\r\n this.resetList(this.dataSource, this.fields);\r\n }\r\n };\r\n /**\r\n * Hides the popup if it is in open state.\r\n *\r\n * @returns {void}\r\n */\r\n AutoComplete.prototype.hidePopup = function () {\r\n _super.prototype.hidePopup.call(this);\r\n this.activeIndex = -1;\r\n };\r\n /**\r\n * Dynamically change the value of properties.\r\n *\r\n * @param {AutoCompleteModel} newProp - Returns the dynamic property value of the component.\r\n * @param {AutoCompleteModel} oldProp - Returns the previous property value of the component.\r\n * @private\r\n * @returns {void}\r\n */\r\n AutoComplete.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (this.getModuleName() === 'autocomplete') {\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'showPopupButton':\r\n if (this.showPopupButton) {\r\n var button = Input.appendSpan(dropDownListClasses.icon, this.inputWrapper.container, this.createElement);\r\n this.inputWrapper.buttons[0] = button;\r\n if (this.inputWrapper && this.inputWrapper.buttons && this.inputWrapper.buttons[0]) {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'click', this.dropDownClick, this);\r\n }\r\n }\r\n else {\r\n detach(this.inputWrapper.buttons[0]);\r\n this.inputWrapper.buttons[0] = null;\r\n }\r\n break;\r\n default: {\r\n // eslint-disable-next-line max-len\r\n var atcProps = this.getPropObject(prop, newProp, oldProp);\r\n _super.prototype.onPropertyChanged.call(this, atcProps.newProperty, atcProps.oldProperty);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n AutoComplete.prototype.renderHightSearch = function () {\r\n if (this.highlight) {\r\n for (var i = 0; i < this.liCollections.length; i++) {\r\n var isHighlight = this.ulElement.querySelector('.e-active');\r\n if (!isHighlight) {\r\n revertHighlightSearch(this.liCollections[i]);\r\n highlightSearch(this.liCollections[i], this.queryString, this.ignoreCase, this.filterType);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Return the module name of this component.\r\n *\r\n * @private\r\n * @returns {string} Return the module name of this component.\r\n */\r\n AutoComplete.prototype.getModuleName = function () {\r\n return 'autocomplete';\r\n };\r\n /**\r\n * To initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n AutoComplete.prototype.render = function () {\r\n _super.prototype.render.call(this);\r\n };\r\n __decorate([\r\n Complex({ value: null, iconCss: null, groupBy: null }, FieldSettings)\r\n ], AutoComplete.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], AutoComplete.prototype, \"ignoreCase\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], AutoComplete.prototype, \"showPopupButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], AutoComplete.prototype, \"highlight\", void 0);\r\n __decorate([\r\n Property(20)\r\n ], AutoComplete.prototype, \"suggestionCount\", void 0);\r\n __decorate([\r\n Property({})\r\n ], AutoComplete.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AutoComplete.prototype, \"query\", void 0);\r\n __decorate([\r\n Property(1)\r\n ], AutoComplete.prototype, \"minLength\", void 0);\r\n __decorate([\r\n Property('Contains')\r\n ], AutoComplete.prototype, \"filterType\", void 0);\r\n __decorate([\r\n Event()\r\n ], AutoComplete.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AutoComplete.prototype, \"index\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], AutoComplete.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AutoComplete.prototype, \"valueTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AutoComplete.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], AutoComplete.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AutoComplete.prototype, \"text\", void 0);\r\n AutoComplete = __decorate([\r\n NotifyPropertyChanges\r\n ], AutoComplete);\r\n return AutoComplete;\r\n}(ComboBox));\r\nexport { AutoComplete };\r\n","/**\n * export all modules from current location\n */\nexport * from './auto-complete';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { EventHandler, Property, Event, addClass, Browser, removeClass, detach } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, NotifyPropertyChanges, getValue, setValue } from '@syncfusion/ej2-base';\r\nimport { DropDownList, dropDownListClasses } from '../drop-down-list/drop-down-list';\r\nimport { Search } from '../common/incremental-search';\r\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nvar SPINNER_CLASS = 'e-atc-spinner-icon';\r\ndropDownListClasses.root = 'e-combobox';\r\nvar inputObject = {\r\n container: null,\r\n buttons: []\r\n};\r\n/**\r\n * The ComboBox component allows the user to type a value or choose an option from the list of predefined options.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * let games:ComboBox = new ComboBox();\r\n * games.appendTo(\"#list\");\r\n * ```\r\n */\r\nvar ComboBox = /** @class */ (function (_super) {\r\n __extends(ComboBox, _super);\r\n /**\r\n * *Constructor for creating the component\r\n *\r\n * @param {ComboBoxModel} options - Specifies the ComboBox model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function ComboBox(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ComboBox.prototype.preRender = function () {\r\n _super.prototype.preRender.call(this);\r\n };\r\n ComboBox.prototype.getLocaleName = function () {\r\n return 'combo-box';\r\n };\r\n ComboBox.prototype.wireEvent = function () {\r\n if (this.getModuleName() === 'combobox') {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur, this);\r\n EventHandler.add(this.inputWrapper.container, 'blur', this.onBlurHandler, this);\r\n }\r\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\r\n EventHandler.add(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick, this);\r\n }\r\n EventHandler.add(this.inputElement, 'focus', this.targetFocus, this);\r\n if (!this.readonly) {\r\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\r\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\r\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\r\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\r\n }\r\n this.bindCommonEvent();\r\n };\r\n ComboBox.prototype.preventBlur = function (e) {\r\n if ((!this.allowFiltering && document.activeElement !== this.inputElement &&\r\n !document.activeElement.classList.contains(dropDownListClasses.input) && Browser.isDevice || !Browser.isDevice)) {\r\n e.preventDefault();\r\n }\r\n };\r\n ComboBox.prototype.onBlurHandler = function (e) {\r\n var inputValue = this.inputElement && this.inputElement.value === '' ?\r\n null : this.inputElement && this.inputElement.value;\r\n if (!isNullOrUndefined(this.listData) && !isNullOrUndefined(inputValue) && inputValue !== this.text) {\r\n this.customValue(e);\r\n }\r\n _super.prototype.onBlurHandler.call(this, e);\r\n };\r\n ComboBox.prototype.targetElement = function () {\r\n return this.inputElement;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ComboBox.prototype.setOldText = function (text) {\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.customValue();\r\n this.removeSelection();\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ComboBox.prototype.setOldValue = function (value) {\r\n if (this.allowCustom) {\r\n this.valueMuteChange(this.value);\r\n }\r\n else {\r\n this.valueMuteChange(null);\r\n }\r\n this.removeSelection();\r\n this.setHiddenValue();\r\n };\r\n ComboBox.prototype.valueMuteChange = function (value) {\r\n var inputValue = isNullOrUndefined(value) ? null : value.toString();\r\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.setProperties({ value: value, text: value, index: null }, true);\r\n this.activeIndex = this.index;\r\n var fields = this.fields;\r\n var dataItem = {};\r\n dataItem[fields.text] = isNullOrUndefined(value) ? null : value.toString();\r\n dataItem[fields.value] = isNullOrUndefined(value) ? null : value.toString();\r\n this.itemData = dataItem;\r\n this.item = null;\r\n if (this.previousValue !== this.value) {\r\n this.detachChangeEvent(null);\r\n }\r\n };\r\n ComboBox.prototype.updateValues = function () {\r\n if (!isNullOrUndefined(this.value)) {\r\n var li = this.getElementByValue(this.value);\r\n if (li) {\r\n this.setSelection(li, null);\r\n }\r\n else if (this.allowCustom) {\r\n this.valueMuteChange(this.value);\r\n }\r\n else {\r\n this.valueMuteChange(null);\r\n }\r\n }\r\n else if (this.text && isNullOrUndefined(this.value)) {\r\n var li = this.getElementByText(this.text);\r\n if (li) {\r\n this.setSelection(li, null);\r\n }\r\n else {\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.customValue();\r\n }\r\n }\r\n else {\r\n this.setSelection(this.liCollections[this.activeIndex], null);\r\n }\r\n this.setHiddenValue();\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n };\r\n ComboBox.prototype.updateIconState = function () {\r\n if (this.showClearButton) {\r\n if (this.inputElement && this.inputElement.value !== '' && !this.readonly) {\r\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n else {\r\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n }\r\n };\r\n ComboBox.prototype.getAriaAttributes = function () {\r\n var ariaAttributes = {\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'combobox',\r\n 'aria-autocomplete': 'both',\r\n 'aria-labelledby': this.hiddenElement.id,\r\n 'aria-hasPopup': 'true',\r\n 'aria-expanded': 'false',\r\n 'aria-readonly': this.readonly.toString(),\r\n 'autocomplete': 'off',\r\n 'autocorrect': 'off',\r\n 'autocapitalize': 'off',\r\n 'spellcheck': 'false'\r\n };\r\n return ariaAttributes;\r\n };\r\n ComboBox.prototype.searchLists = function (e) {\r\n this.isTyped = true;\r\n if (this.isFiltering()) {\r\n _super.prototype.searchLists.call(this, e);\r\n if (this.ulElement && this.filterInput.value.trim() === '') {\r\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\r\n }\r\n }\r\n else {\r\n if (this.ulElement && this.inputElement.value === '' && this.preventAutoFill) {\r\n this.setHoverList(this.ulElement.querySelector('.' + dropDownListClasses.li));\r\n }\r\n this.incrementalSearch(e);\r\n }\r\n };\r\n ComboBox.prototype.getNgDirective = function () {\r\n return 'EJS-COMBOBOX';\r\n };\r\n ComboBox.prototype.setSearchBox = function () {\r\n this.filterInput = this.inputElement;\r\n return (this.isFiltering() ? this.inputWrapper : inputObject);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ComboBox.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\r\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\r\n if (this.isSelectCustom) {\r\n this.removeSelection();\r\n }\r\n if (!this.preventAutoFill && this.getModuleName() === 'combobox' && this.isTyped) {\r\n this.inlineSearch();\r\n }\r\n };\r\n ComboBox.prototype.getFocusElement = function () {\r\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\r\n var selected = this.list.querySelector('.' + dropDownListClasses.selected);\r\n var isSelected = dataItem.text === this.inputElement.value && !isNullOrUndefined(selected);\r\n if (isSelected) {\r\n return selected;\r\n }\r\n if ((Browser.isDevice && !this.isDropDownClick || !Browser.isDevice) &&\r\n !isNullOrUndefined(this.liCollections) && this.liCollections.length > 0) {\r\n var inputValue = this.inputElement.value;\r\n var activeItem = Search(inputValue, this.liCollections, 'StartsWith', true);\r\n var activeElement = activeItem.item;\r\n if (!isNullOrUndefined(activeElement)) {\r\n var count = this.getIndexByValue(activeElement.getAttribute('data-value')) - 1;\r\n var height = parseInt(getComputedStyle(this.liCollections[0], null).getPropertyValue('height'), 10);\r\n if (!isNaN(height) && this.getModuleName() !== 'autocomplete') {\r\n this.removeFocus();\r\n var fixedHead = this.fields.groupBy ? this.liCollections[0].offsetHeight : 0;\r\n this.list.scrollTop = count * height + fixedHead;\r\n addClass([activeElement], dropDownListClasses.focus);\r\n }\r\n }\r\n else {\r\n if (this.isSelectCustom && this.inputElement.value.trim() !== '') {\r\n this.removeFocus();\r\n this.list.scrollTop = 0;\r\n }\r\n }\r\n return activeElement;\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n ComboBox.prototype.setValue = function (e) {\r\n if (e && e.type === 'keydown' && e.action === 'enter') {\r\n this.removeFillSelection();\r\n }\r\n if (this.autofill && this.getModuleName() === 'combobox' && e && e.type === 'keydown' && e.action !== 'enter') {\r\n this.preventAutoFill = false;\r\n this.inlineSearch(e);\r\n return false;\r\n }\r\n else {\r\n return _super.prototype.setValue.call(this, e);\r\n }\r\n };\r\n ComboBox.prototype.checkCustomValue = function () {\r\n this.itemData = this.getDataByValue(this.value);\r\n var dataItem = this.getItemData();\r\n if (!(this.allowCustom && isNullOrUndefined(dataItem.value) && isNullOrUndefined(dataItem.text))) {\r\n this.setProperties({ 'value': dataItem.value, 'text': dataItem.text }, !this.allowCustom);\r\n }\r\n };\r\n /**\r\n * Shows the spinner loader.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.showSpinner = function () {\r\n if (isNullOrUndefined(this.spinnerElement)) {\r\n this.spinnerElement = (this.getModuleName() === 'autocomplete') ? (this.inputWrapper.buttons[0] ||\r\n this.inputWrapper.clearButton ||\r\n Input.appendSpan('e-input-group-icon ' + SPINNER_CLASS, this.inputWrapper.container, this.createElement)) :\r\n (this.inputWrapper.buttons[0] || this.inputWrapper.clearButton);\r\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\r\n createSpinner({\r\n target: this.spinnerElement,\r\n width: Browser.isDevice ? '16px' : '14px'\r\n }, this.createElement);\r\n showSpinner(this.spinnerElement);\r\n }\r\n };\r\n /**\r\n * Hides the spinner loader.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.hideSpinner = function () {\r\n if (!isNullOrUndefined(this.spinnerElement)) {\r\n hideSpinner(this.spinnerElement);\r\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\r\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\r\n detach(this.spinnerElement);\r\n }\r\n else {\r\n this.spinnerElement.innerHTML = '';\r\n }\r\n this.spinnerElement = null;\r\n }\r\n };\r\n ComboBox.prototype.setAutoFill = function (activeElement, isHover) {\r\n if (!isHover) {\r\n this.setHoverList(activeElement);\r\n }\r\n if (this.autofill && !this.preventAutoFill) {\r\n var currentValue = this.getTextByValue(activeElement.getAttribute('data-value')).toString();\r\n var currentFillValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\r\n if (this.getModuleName() === 'combobox') {\r\n if (!this.isSelected && this.previousValue !== currentFillValue) {\r\n this.updateSelectedItem(activeElement, null);\r\n this.isSelected = true;\r\n this.previousValue = this.getFormattedValue(activeElement.getAttribute('data-value'));\r\n }\r\n else {\r\n this.updateSelectedItem(activeElement, null, true);\r\n }\r\n }\r\n if (!this.isAndroidAutoFill(currentValue)) {\r\n this.setAutoFillSelection(currentValue);\r\n }\r\n }\r\n };\r\n ComboBox.prototype.isAndroidAutoFill = function (value) {\r\n if (Browser.isAndroid) {\r\n var currentPoints = this.getSelectionPoints();\r\n var prevEnd = this.prevSelectPoints.end;\r\n var curEnd = currentPoints.end;\r\n var prevStart = this.prevSelectPoints.start;\r\n var curStart = currentPoints.start;\r\n if (prevEnd !== 0 && ((prevEnd === value.length && prevStart === value.length) ||\r\n (prevStart > curStart && prevEnd > curEnd) || (prevEnd === curEnd && prevStart === curStart))) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n ComboBox.prototype.clearAll = function (e, property) {\r\n if (isNullOrUndefined(property) || (!isNullOrUndefined(property) && isNullOrUndefined(property.dataSource))) {\r\n _super.prototype.clearAll.call(this, e);\r\n }\r\n if (this.isFiltering() && !isNullOrUndefined(e) && e.target === this.inputWrapper.clearButton) {\r\n this.searchLists(e);\r\n }\r\n };\r\n ComboBox.prototype.isSelectFocusItem = function (element) {\r\n return !isNullOrUndefined(element);\r\n };\r\n ComboBox.prototype.inlineSearch = function (e) {\r\n var isKeyNavigate = (e && (e.action === 'down' || e.action === 'up' ||\r\n e.action === 'home' || e.action === 'end' || e.action === 'pageUp' || e.action === 'pageDown'));\r\n var activeElement = isKeyNavigate ? this.liCollections[this.activeIndex] : this.getFocusElement();\r\n if (!isNullOrUndefined(activeElement)) {\r\n if (!isKeyNavigate) {\r\n var value = this.getFormattedValue(activeElement.getAttribute('data-value'));\r\n this.activeIndex = this.getIndexByValue(value);\r\n this.activeIndex = !isNullOrUndefined(this.activeIndex) ? this.activeIndex : null;\r\n }\r\n this.preventAutoFill = this.inputElement.value === '' ? false : this.preventAutoFill;\r\n this.setAutoFill(activeElement, isKeyNavigate);\r\n }\r\n else if (this.inputElement.value === '') {\r\n this.activeIndex = null;\r\n this.list.scrollTop = 0;\r\n var focusItem = this.list.querySelector('.' + dropDownListClasses.li);\r\n this.setHoverList(focusItem);\r\n }\r\n else {\r\n this.activeIndex = null;\r\n this.removeSelection();\r\n if (this.liCollections && this.liCollections.length < 0) {\r\n this.removeFocus();\r\n }\r\n }\r\n };\r\n ComboBox.prototype.incrementalSearch = function (e) {\r\n this.showPopup();\r\n if (!isNullOrUndefined(this.listData)) {\r\n this.inlineSearch(e);\r\n e.preventDefault();\r\n }\r\n };\r\n ComboBox.prototype.setAutoFillSelection = function (currentValue) {\r\n var selection = this.getSelectionPoints();\r\n var value = this.inputElement.value.substr(0, selection.start);\r\n if (value && (value.toLowerCase() === currentValue.substr(0, selection.start).toLowerCase())) {\r\n var inputValue = value + currentValue.substr(value.length, currentValue.length);\r\n Input.setValue(inputValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.inputElement.setSelectionRange(selection.start, this.inputElement.value.length);\r\n }\r\n else {\r\n Input.setValue(currentValue, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.inputElement.setSelectionRange(0, this.inputElement.value.length);\r\n }\r\n };\r\n ComboBox.prototype.getValueByText = function (text) {\r\n return _super.prototype.getValueByText.call(this, text, true, this.ignoreAccent);\r\n };\r\n ComboBox.prototype.unWireEvent = function () {\r\n if (this.getModuleName() === 'combobox') {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.preventBlur);\r\n EventHandler.remove(this.inputWrapper.container, 'blur', this.onBlurHandler);\r\n }\r\n if (!isNullOrUndefined(this.inputWrapper.buttons[0])) {\r\n EventHandler.remove(this.inputWrapper.buttons[0], 'mousedown', this.dropDownClick);\r\n }\r\n if (this.inputElement) {\r\n EventHandler.remove(this.inputElement, 'focus', this.targetFocus);\r\n if (!this.readonly) {\r\n EventHandler.remove(this.inputElement, 'input', this.onInput);\r\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\r\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\r\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\r\n }\r\n }\r\n this.unBindCommonEvent();\r\n };\r\n ComboBox.prototype.setSelection = function (li, e) {\r\n _super.prototype.setSelection.call(this, li, e);\r\n if (!isNullOrUndefined(li) && !this.autofill && !this.isDropDownClick) {\r\n this.removeFocus();\r\n }\r\n };\r\n ComboBox.prototype.selectCurrentItem = function (e) {\r\n var li;\r\n if (this.isPopupOpen) {\r\n if (this.isSelected) {\r\n li = this.list.querySelector('.' + dropDownListClasses.selected);\r\n }\r\n else {\r\n li = this.list.querySelector('.' + dropDownListClasses.focus);\r\n }\r\n if (li) {\r\n this.setSelection(li, e);\r\n this.isTyped = false;\r\n }\r\n if (this.isSelected) {\r\n this.isSelectCustom = false;\r\n this.onChangeEvent(e);\r\n }\r\n }\r\n if (e.action === 'enter' && this.inputElement.value.trim() === '') {\r\n this.clearAll(e);\r\n }\r\n else if (this.isTyped && !this.isSelected && isNullOrUndefined(li)) {\r\n this.customValue(e);\r\n }\r\n this.hidePopup();\r\n };\r\n ComboBox.prototype.setHoverList = function (li) {\r\n this.removeSelection();\r\n if (this.isValidLI(li) && !li.classList.contains(dropDownListClasses.selected)) {\r\n this.removeFocus();\r\n li.classList.add(dropDownListClasses.focus);\r\n }\r\n };\r\n ComboBox.prototype.targetFocus = function (e) {\r\n if (Browser.isDevice && !this.allowFiltering) {\r\n this.preventFocus = false;\r\n }\r\n this.onFocus(e);\r\n };\r\n ComboBox.prototype.dropDownClick = function (e) {\r\n e.preventDefault();\r\n if (Browser.isDevice && !this.isFiltering()) {\r\n this.preventFocus = true;\r\n }\r\n _super.prototype.dropDownClick.call(this, e);\r\n };\r\n ComboBox.prototype.customValue = function (e) {\r\n var _this = this;\r\n var value = this.getValueByText(this.inputElement.value);\r\n if (!this.allowCustom && this.inputElement.value !== '') {\r\n var previousValue = this.previousValue;\r\n var currentValue = this.value;\r\n this.setProperties({ value: value });\r\n if (isNullOrUndefined(this.value)) {\r\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n if (this.autofill && previousValue === this.value && currentValue !== this.value) {\r\n this.onChangeEvent(null);\r\n }\r\n }\r\n else if (this.inputElement.value.trim() !== '') {\r\n var previousValue_1 = this.value;\r\n if (isNullOrUndefined(value)) {\r\n var value_1 = this.inputElement.value === '' ? null : this.inputElement.value;\r\n // eslint-disable-next-line max-len\r\n var eventArgs = { text: value_1, item: {} };\r\n if (!this.initial) {\r\n this.trigger('customValueSpecifier', eventArgs, function (eventArgs) {\r\n _this.updateCustomValueCallback(value_1, eventArgs, previousValue_1, e);\r\n });\r\n }\r\n else {\r\n this.updateCustomValueCallback(value_1, eventArgs, previousValue_1);\r\n }\r\n }\r\n else {\r\n this.isSelectCustom = false;\r\n this.setProperties({ value: value });\r\n if (previousValue_1 !== this.value) {\r\n this.onChangeEvent(e);\r\n }\r\n }\r\n }\r\n else if (this.allowCustom) {\r\n this.isSelectCustom = true;\r\n }\r\n };\r\n ComboBox.prototype.updateCustomValueCallback = function (value, eventArgs, previousValue, e) {\r\n var fields = this.fields;\r\n var item = eventArgs.item;\r\n var dataItem = {};\r\n if (item && getValue(fields.text, item) && getValue(fields.value, item)) {\r\n dataItem = item;\r\n }\r\n else {\r\n setValue(fields.text, value, dataItem);\r\n setValue(fields.value, value, dataItem);\r\n }\r\n this.itemData = dataItem;\r\n var changeData = {\r\n text: getValue(fields.text, this.itemData),\r\n value: getValue(fields.value, this.itemData),\r\n index: null\r\n };\r\n this.setProperties(changeData, true);\r\n this.setSelection(null, null);\r\n this.isSelectCustom = true;\r\n if (previousValue !== this.value) {\r\n this.onChangeEvent(e);\r\n }\r\n };\r\n /**\r\n * Dynamically change the value of properties.\r\n *\r\n * @param {ComboBoxModel} newProp - Returns the dynamic property value of the component.\r\n * @param {ComboBoxModel} oldProp - Returns the previous property value of the component.\r\n * @private\r\n * @returns {void}\r\n */\r\n ComboBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (this.getModuleName() === 'combobox') {\r\n this.checkData(newProp);\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.inputElement);\r\n if (this.readonly) {\r\n EventHandler.remove(this.inputElement, 'input', this.onInput);\r\n EventHandler.remove(this.inputElement, 'keyup', this.onFilterUp);\r\n EventHandler.remove(this.inputElement, 'keydown', this.onFilterDown);\r\n }\r\n else {\r\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\r\n EventHandler.add(this.inputElement, 'keyup', this.onFilterUp, this);\r\n EventHandler.add(this.inputElement, 'keydown', this.onFilterDown, this);\r\n }\r\n this.setReadOnly();\r\n break;\r\n case 'allowFiltering':\r\n this.setSearchBox();\r\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\r\n _super.prototype.renderList.call(this);\r\n }\r\n break;\r\n case 'allowCustom':\r\n break;\r\n default: {\r\n // eslint-disable-next-line max-len\r\n var comboProps = this.getPropObject(prop, newProp, oldProp);\r\n _super.prototype.onPropertyChanged.call(this, comboProps.newProperty, comboProps.oldProperty);\r\n if (this.isFiltering() && prop === 'dataSource' && isNullOrUndefined(this.list) && this.itemTemplate &&\r\n this.getModuleName() === 'combobox') {\r\n _super.prototype.renderList.call(this);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To initialize the control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ComboBox.prototype.render = function () {\r\n _super.prototype.render.call(this);\r\n this.setSearchBox();\r\n if (this.isFiltering() && this.getModuleName() === 'combobox' && isNullOrUndefined(this.list)) {\r\n _super.prototype.renderList.call(this);\r\n }\r\n this.renderComplete();\r\n };\r\n /**\r\n * Return the module name of this component.\r\n *\r\n * @private\r\n * @returns {string} Return the module name of this component.\r\n */\r\n ComboBox.prototype.getModuleName = function () {\r\n return 'combobox';\r\n };\r\n /**\r\n * Adds a new item to the combobox popup list. By default, new item appends to the list as the last item,\r\n * but you can insert based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.addItem = function (items, itemIndex) {\r\n _super.prototype.addItem.call(this, items, itemIndex);\r\n };\r\n /**\r\n * To filter the data from given data source by using query\r\n *\r\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\r\n * @param {Query} query - Specify the query to filter the data.\r\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.filter = function (dataSource, query, fields) {\r\n _super.prototype.filter.call(this, dataSource, query, fields);\r\n };\r\n /**\r\n * Opens the popup that displays the list of items.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.showPopup = function () {\r\n _super.prototype.showPopup.call(this);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Hides the popup if it is in open state.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.hidePopup = function (e) {\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n var inputValue = this.inputElement && this.inputElement.value === '' ? null\r\n : this.inputElement && this.inputElement.value;\r\n if (!isNullOrUndefined(this.listData)) {\r\n var isEscape = this.isEscapeKey;\r\n if (this.isEscapeKey) {\r\n Input.setValue(this.typedString, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.isEscapeKey = false;\r\n }\r\n if (this.autofill) {\r\n this.removeFillSelection();\r\n }\r\n var dataItem = this.isSelectCustom ? { text: '' } : this.getItemData();\r\n var selected = this.list.querySelector('.' + dropDownListClasses.selected);\r\n if (this.inputElement && dataItem.text === this.inputElement.value && !isNullOrUndefined(selected)) {\r\n if (this.isSelected) {\r\n this.onChangeEvent(e);\r\n this.isSelectCustom = false;\r\n }\r\n _super.prototype.hidePopup.call(this, e);\r\n return;\r\n }\r\n if (this.getModuleName() === 'combobox' && this.inputElement.value.trim() !== '') {\r\n var searchItem = Search(this.inputElement.value, this.liCollections, 'Equal', true);\r\n this.selectedLI = searchItem.item;\r\n if (isNullOrUndefined(searchItem.index)) {\r\n searchItem.index = Search(this.inputElement.value, this.liCollections, 'StartsWith', true).index;\r\n }\r\n this.activeIndex = searchItem.index;\r\n if (!isNullOrUndefined(this.selectedLI)) {\r\n this.updateSelectedItem(this.selectedLI, null, true);\r\n }\r\n else if (isEscape) {\r\n this.isSelectCustom = true;\r\n this.removeSelection();\r\n }\r\n }\r\n if (!this.isEscapeKey && this.isTyped && !this.isInteracted) {\r\n this.customValue(e);\r\n }\r\n }\r\n if (isNullOrUndefined(this.listData) && this.allowCustom && !isNullOrUndefined(inputValue) && inputValue !== this.value) {\r\n this.customValue();\r\n }\r\n _super.prototype.hidePopup.call(this, e);\r\n };\r\n /**\r\n * Sets the focus to the component for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n ComboBox.prototype.focusIn = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (Browser.isDevice && !this.isFiltering()) {\r\n this.preventFocus = true;\r\n }\r\n _super.prototype.focusIn.call(this);\r\n };\r\n /**\r\n * Allows you to clear the selected values from the component.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.clear = function () {\r\n this.value = null;\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Moves the focus from the component if the component is already focused.\r\n *\r\n * @returns {void}\r\n\r\n */\r\n ComboBox.prototype.focusOut = function (e) {\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n _super.prototype.focusOut.call(this, e);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets all the list items bound on this component.\r\n *\r\n * @returns {Element[]}\r\n\r\n */\r\n ComboBox.prototype.getItems = function () {\r\n return _super.prototype.getItems.call(this);\r\n };\r\n /**\r\n * Gets the data Object that matches the given value.\r\n *\r\n * @param { string | number } value - Specifies the value of the list item.\r\n * @returns {Object}\r\n\r\n */\r\n ComboBox.prototype.getDataByValue = function (value) {\r\n return _super.prototype.getDataByValue.call(this, value);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n ComboBox.prototype.renderHightSearch = function () {\r\n // update high light search\r\n };\r\n __decorate([\r\n Property(false)\r\n ], ComboBox.prototype, \"autofill\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ComboBox.prototype, \"allowCustom\", void 0);\r\n __decorate([\r\n Property({})\r\n ], ComboBox.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ComboBox.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"query\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"index\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ComboBox.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ComboBox.prototype, \"enableRtl\", void 0);\r\n __decorate([\r\n Event()\r\n ], ComboBox.prototype, \"customValueSpecifier\", void 0);\r\n __decorate([\r\n Event()\r\n ], ComboBox.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"valueTemplate\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], ComboBox.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"footerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], ComboBox.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('300px')\r\n ], ComboBox.prototype, \"popupHeight\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], ComboBox.prototype, \"popupWidth\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ComboBox.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"text\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ComboBox.prototype, \"value\", void 0);\r\n ComboBox = __decorate([\r\n NotifyPropertyChanges\r\n ], ComboBox);\r\n return ComboBox;\r\n}(DropDownList));\r\nexport { ComboBox };\r\n","/**\n * export all modules from current location\n */\nexport * from './combo-box';\n","/* eslint-disable jsdoc/require-param, valid-jsdoc */\r\n/**\r\n * Function helps to find which highlightSearch is to call based on your data.\r\n *\r\n * @param {HTMLElement} element - Specifies an li element.\r\n * @param {string} query - Specifies the string to be highlighted.\r\n * @param {boolean} ignoreCase - Specifies the ignoreCase option.\r\n * @param {HightLightType} type - Specifies the type of highlight.\r\n * @returns {void}\r\n */\r\nexport function highlightSearch(element, query, ignoreCase, type) {\r\n if (query === '') {\r\n return;\r\n }\r\n else {\r\n var ignoreRegex = ignoreCase ? 'gim' : 'gm';\r\n // eslint-disable-next-line\r\n query = /^[a-zA-Z0-9- ]*$/.test(query) ? query : query.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\r\n var replaceQuery = type === 'StartsWith' ? '^(' + query + ')' : type === 'EndsWith' ?\r\n '(' + query + ')$' : '(' + query + ')';\r\n findTextNode(element, new RegExp(replaceQuery, ignoreRegex));\r\n }\r\n}\r\n/* eslint-enable jsdoc/require-param, valid-jsdoc */\r\n/**\r\n *\r\n * @param {HTMLElement} element - Specifies the element.\r\n * @param {RegExp} pattern - Specifies the regex to match the searched text.\r\n * @returns {void}\r\n */\r\nfunction findTextNode(element, pattern) {\r\n for (var index = 0; element.childNodes && (index < element.childNodes.length); index++) {\r\n if (element.childNodes[index].nodeType === 3 && element.childNodes[index].textContent.trim() !== '') {\r\n var value = element.childNodes[index].nodeValue.trim().replace(pattern, '$1');\r\n element.childNodes[index].nodeValue = '';\r\n element.innerHTML = element.innerHTML.trim() + value;\r\n break;\r\n }\r\n else {\r\n findTextNode(element.childNodes[index], pattern);\r\n }\r\n }\r\n}\r\n/**\r\n * Function helps to remove highlighted element based on your data.\r\n *\r\n * @param {HTMLElement} content - Specifies an content element.\r\n * @returns {void}\r\n */\r\nexport function revertHighlightSearch(content) {\r\n var contentElement = content.querySelectorAll('.e-highlight');\r\n for (var i = contentElement.length - 1; i >= 0; i--) {\r\n var parent_1 = contentElement[i].parentNode;\r\n var text = document.createTextNode(contentElement[i].textContent);\r\n parent_1.replaceChild(text, contentElement[i]);\r\n }\r\n}\r\n","/**\r\n * IncrementalSearch module file\r\n */\r\nvar queryString = '';\r\nvar prevString = '';\r\nvar matches = [];\r\nvar activeClass = 'e-active';\r\nvar prevElementId = '';\r\n/**\r\n * Search and focus the list item based on key code matches with list text content\r\n *\r\n * @param { number } keyCode - Specifies the key code which pressed on keyboard events.\r\n * @param { HTMLElement[]} items - Specifies an array of HTMLElement, from which matches find has done.\r\n * @param { number } selectedIndex - Specifies the selected item in list item, so that search will happen\r\n * after selected item otherwise it will do from initial.\r\n * @param { boolean } ignoreCase - Specifies the case consideration when search has done.\r\n * @param {string} elementId - Specifies the list element ID.\r\n * @returns {Element} Returns list item based on key code matches with list text content.\r\n */\r\nexport function incrementalSearch(keyCode, items, selectedIndex, ignoreCase, elementId) {\r\n queryString += String.fromCharCode(keyCode);\r\n setTimeout(function () {\r\n queryString = '';\r\n }, 1000);\r\n var index;\r\n queryString = ignoreCase ? queryString.toLowerCase() : queryString;\r\n if (prevElementId === elementId && prevString === queryString) {\r\n for (var i = 0; i < matches.length; i++) {\r\n if (matches[i].classList.contains(activeClass)) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n index = index + 1;\r\n return matches[index] ? matches[index] : matches[0];\r\n }\r\n else {\r\n var listItems = items;\r\n var strLength = queryString.length;\r\n var text = void 0;\r\n var item = void 0;\r\n selectedIndex = selectedIndex ? selectedIndex + 1 : 0;\r\n var i = selectedIndex;\r\n matches = [];\r\n do {\r\n if (i === listItems.length) {\r\n i = -1;\r\n }\r\n if (i === -1) {\r\n index = 0;\r\n }\r\n else {\r\n index = i;\r\n }\r\n item = listItems[index];\r\n text = ignoreCase ? item.innerText.toLowerCase() : item.innerText;\r\n if (text.substr(0, strLength) === queryString) {\r\n matches.push(listItems[index]);\r\n }\r\n i++;\r\n } while (i !== selectedIndex);\r\n prevString = queryString;\r\n prevElementId = elementId;\r\n return matches[0];\r\n }\r\n}\r\n/**\r\n * Search the list item based on given input value matches with search type.\r\n *\r\n * @param {string} inputVal - Specifies the given input value.\r\n * @param {HTMLElement[]} items - Specifies the list items.\r\n * @param {SearchType} searchType - Specifies the filter type.\r\n * @param {boolean} ignoreCase - Specifies the case sensitive option for search operation.\r\n * @returns {Element | number} Returns the search matched items.\r\n */\r\nexport function Search(inputVal, items, searchType, ignoreCase) {\r\n var listItems = items;\r\n ignoreCase = ignoreCase !== undefined && ignoreCase !== null ? ignoreCase : true;\r\n var itemData = { item: null, index: null };\r\n if (inputVal && inputVal.length) {\r\n var strLength = inputVal.length;\r\n var queryStr = ignoreCase ? inputVal.toLocaleLowerCase() : inputVal;\r\n for (var i = 0, itemsData = listItems; i < itemsData.length; i++) {\r\n var item = itemsData[i];\r\n var text = (ignoreCase ? item.textContent.toLocaleLowerCase() : item.textContent).replace(/^\\s+|\\s+$/g, '');\r\n if ((searchType === 'Equal' && text === queryStr) || (searchType === 'StartsWith' && text.substr(0, strLength) === queryStr)) {\r\n itemData.item = item;\r\n itemData.index = i;\r\n return { item: item, index: i };\r\n }\r\n }\r\n return itemData;\r\n }\r\n return itemData;\r\n}\r\nexport function resetIncrementalSearchValues(elementId) {\r\n if (prevElementId === elementId) {\r\n prevElementId = '';\r\n prevString = '';\r\n queryString = '';\r\n matches = [];\r\n }\r\n}\r\n","/**\n * Common source\n */\nexport * from './incremental-search';\nexport * from './highlight-search';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, addClass, append, Property, Event, L10n, compile } from '@syncfusion/ej2-base';\r\nimport { setStyleAttribute, extend, removeClass, prepend, isNullOrUndefined, detach, getValue } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, rippleEffect, ChildProperty, Complex } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query, DataUtil } from '@syncfusion/ej2-data';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nimport { select, selectAll } from '@syncfusion/ej2-base';\r\nvar FieldSettings = /** @class */ (function (_super) {\r\n __extends(FieldSettings, _super);\r\n function FieldSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], FieldSettings.prototype, \"text\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldSettings.prototype, \"value\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldSettings.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldSettings.prototype, \"groupBy\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\r\n return FieldSettings;\r\n}(ChildProperty));\r\nexport { FieldSettings };\r\nexport var dropDownBaseClasses = {\r\n root: 'e-dropdownbase',\r\n rtl: 'e-rtl',\r\n content: 'e-content',\r\n selected: 'e-active',\r\n hover: 'e-hover',\r\n noData: 'e-nodata',\r\n fixedHead: 'e-fixed-head',\r\n focus: 'e-item-focus',\r\n li: 'e-list-item',\r\n group: 'e-list-group-item',\r\n disabled: 'e-disabled',\r\n grouping: 'e-dd-group'\r\n};\r\nvar ITEMTEMPLATE_PROPERTY = 'ItemTemplate';\r\nvar VALUETEMPLATE_PROPERTY = 'ValueTemplate';\r\nvar GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\r\nvar HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\r\nvar FOOTERTEMPLATE_PROPERTY = 'FooterTemplate';\r\nvar NORECORDSTEMPLATE_PROPERTY = 'NoRecordsTemplate';\r\nvar ACTIONFAILURETEMPLATE_PROPERTY = 'ActionFailureTemplate';\r\n/**\r\n * DropDownBase component will generate the list items based on given data and act as base class to drop-down related components\r\n */\r\nvar DropDownBase = /** @class */ (function (_super) {\r\n __extends(DropDownBase, _super);\r\n /**\r\n * * Constructor for DropDownBase class\r\n *\r\n * @param {DropDownBaseModel} options - Specifies the DropDownBase model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function DropDownBase(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.preventChange = false;\r\n _this.isAngular = false;\r\n _this.isPreventChange = false;\r\n _this.isDynamicDataChange = false;\r\n return _this;\r\n }\r\n DropDownBase.prototype.getPropObject = function (prop, newProp, oldProp) {\r\n var newProperty = new Object();\r\n var oldProperty = new Object();\r\n var propName = function (prop) {\r\n return prop;\r\n };\r\n newProperty[propName(prop)] = newProp[propName(prop)];\r\n oldProperty[propName(prop)] = oldProp[propName(prop)];\r\n var data = new Object();\r\n data.newProperty = newProperty;\r\n data.oldProperty = oldProperty;\r\n return data;\r\n };\r\n DropDownBase.prototype.getValueByText = function (text, ignoreCase, ignoreAccent) {\r\n var value = null;\r\n if (!isNullOrUndefined(this.listData)) {\r\n if (ignoreCase) {\r\n value = this.checkValueCase(text, true, ignoreAccent);\r\n }\r\n else {\r\n value = this.checkValueCase(text, false, ignoreAccent);\r\n }\r\n }\r\n return value;\r\n };\r\n DropDownBase.prototype.checkValueCase = function (text, ignoreCase, ignoreAccent, isTextByValue) {\r\n var _this = this;\r\n var value = null;\r\n if (isTextByValue) {\r\n value = text;\r\n }\r\n var dataSource = this.listData;\r\n var fields = this.fields;\r\n var type = this.typeOfData(dataSource).typeof;\r\n if (type === 'string' || type === 'number' || type === 'boolean') {\r\n for (var _i = 0, dataSource_1 = dataSource; _i < dataSource_1.length; _i++) {\r\n var item = dataSource_1[_i];\r\n if (!isNullOrUndefined(item)) {\r\n if (ignoreAccent) {\r\n value = this.checkingAccent(String(item), text, ignoreCase);\r\n }\r\n else {\r\n if (ignoreCase) {\r\n if (this.checkIgnoreCase(String(item), text)) {\r\n value = this.getItemValue(String(item), text, ignoreCase);\r\n }\r\n }\r\n else {\r\n if (this.checkNonIgnoreCase(String(item), text)) {\r\n value = this.getItemValue(String(item), text, ignoreCase, isTextByValue);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (ignoreCase) {\r\n dataSource.filter(function (item) {\r\n var itemValue = getValue(fields.value, item);\r\n if (!isNullOrUndefined(itemValue) && _this.checkIgnoreCase(getValue(fields.text, item).toString(), text)) {\r\n value = getValue(fields.value, item);\r\n }\r\n });\r\n }\r\n else {\r\n if (isTextByValue) {\r\n var compareValue_1 = null;\r\n compareValue_1 = value;\r\n dataSource.filter(function (item) {\r\n var itemValue = getValue(fields.value, item);\r\n if (!isNullOrUndefined(itemValue) && !isNullOrUndefined(value) && itemValue.toString() === compareValue_1.toString()) {\r\n value = getValue(fields.text, item);\r\n }\r\n });\r\n }\r\n else {\r\n dataSource.filter(function (item) {\r\n if (_this.checkNonIgnoreCase(getValue(fields.text, item), text)) {\r\n value = getValue(fields.value, item);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return value;\r\n };\r\n DropDownBase.prototype.checkingAccent = function (item, text, ignoreCase) {\r\n var dataItem = DataUtil.ignoreDiacritics(String(item));\r\n var textItem = DataUtil.ignoreDiacritics(text.toString());\r\n var value = null;\r\n if (ignoreCase) {\r\n if (this.checkIgnoreCase(dataItem, textItem)) {\r\n value = this.getItemValue(String(item), text, ignoreCase);\r\n }\r\n }\r\n else {\r\n if (this.checkNonIgnoreCase(String(item), text)) {\r\n value = this.getItemValue(String(item), text, ignoreCase);\r\n }\r\n }\r\n return value;\r\n };\r\n DropDownBase.prototype.checkIgnoreCase = function (item, text) {\r\n return String(item).toLowerCase() === text.toString().toLowerCase() ? true : false;\r\n };\r\n DropDownBase.prototype.checkNonIgnoreCase = function (item, text) {\r\n return String(item) === text.toString() ? true : false;\r\n };\r\n DropDownBase.prototype.getItemValue = function (dataItem, typedText, ignoreCase, isTextByValue) {\r\n var value = null;\r\n var dataSource = this.listData;\r\n var type = this.typeOfData(dataSource).typeof;\r\n if (isTextByValue) {\r\n value = dataItem.toString();\r\n }\r\n else {\r\n if (ignoreCase) {\r\n value = type === 'string' ? String(dataItem) : this.getFormattedValue(String(dataItem));\r\n }\r\n else {\r\n value = type === 'string' ? typedText : this.getFormattedValue(typedText);\r\n }\r\n }\r\n return value;\r\n };\r\n DropDownBase.prototype.templateCompiler = function (baseTemplate) {\r\n var checkTemplate = false;\r\n if (baseTemplate) {\r\n try {\r\n checkTemplate = (selectAll(baseTemplate, document).length) ? true : false;\r\n }\r\n catch (exception) {\r\n checkTemplate = false;\r\n }\r\n }\r\n return checkTemplate;\r\n };\r\n DropDownBase.prototype.l10nUpdate = function (actionFailure) {\r\n var ele = this.getModuleName() === 'listbox' ? this.ulElement : this.list;\r\n if (this.noRecordsTemplate !== 'No records found' || this.actionFailureTemplate !== 'Request failed') {\r\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\r\n var compiledString = void 0;\r\n var templateId = actionFailure ? this.actionFailureTemplateId : this.noRecordsTemplateId;\r\n ele.innerHTML = '';\r\n var tempaltecheck = this.templateCompiler(template);\r\n if (tempaltecheck) {\r\n compiledString = compile(select(template, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(template);\r\n }\r\n var templateName = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var noDataCompTemp = compiledString({}, this, templateName, templateId, this.isStringTemplate, null, ele);\r\n if (noDataCompTemp && noDataCompTemp.length > 0) {\r\n for (var i = 0; i < noDataCompTemp.length; i++) {\r\n ele.appendChild(noDataCompTemp[i]);\r\n }\r\n }\r\n this.renderReactTemplates();\r\n }\r\n else {\r\n var l10nLocale = { noRecordsTemplate: 'No records found', actionFailureTemplate: 'Request failed' };\r\n var componentLocale = new L10n(this.getLocaleName(), {}, this.locale);\r\n if (componentLocale.getConstant('actionFailureTemplate') !== '') {\r\n this.l10n = componentLocale;\r\n }\r\n else {\r\n this.l10n = new L10n(this.getModuleName() === 'listbox' ? 'listbox' : 'dropdowns', l10nLocale, this.locale);\r\n }\r\n var content = actionFailure ?\r\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\r\n if (this.getModuleName() === 'listbox') {\r\n var liElem = this.createElement('li');\r\n liElem.textContent = content;\r\n ele.appendChild(liElem);\r\n liElem.classList.add('e-list-nrt');\r\n }\r\n else {\r\n ele.innerHTML = content;\r\n }\r\n }\r\n };\r\n DropDownBase.prototype.getLocaleName = function () {\r\n return 'drop-down-base';\r\n };\r\n DropDownBase.prototype.getTextByValue = function (value) {\r\n var text = this.checkValueCase(value, false, false, true);\r\n return text;\r\n };\r\n DropDownBase.prototype.getFormattedValue = function (value) {\r\n if (this.listData && this.listData.length) {\r\n var item = this.typeOfData(this.listData);\r\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'number'\r\n || item.typeof === 'number') {\r\n return parseFloat(value);\r\n }\r\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), item.item) === 'boolean'\r\n || item.typeof === 'boolean') {\r\n return ((value === 'true') || ('' + value === 'true'));\r\n }\r\n }\r\n return value;\r\n };\r\n /**\r\n * Sets RTL to dropdownbase wrapper\r\n *\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.setEnableRtl = function () {\r\n if (this.list) {\r\n this.enableRtlElements.push(this.list);\r\n }\r\n if (this.enableRtl) {\r\n addClass(this.enableRtlElements, dropDownBaseClasses.rtl);\r\n }\r\n else {\r\n removeClass(this.enableRtlElements, dropDownBaseClasses.rtl);\r\n }\r\n };\r\n /**\r\n * Initialize the Component.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.initialize = function () {\r\n this.bindEvent = true;\r\n this.actionFailureTemplateId = \"\" + this.element.id + ACTIONFAILURETEMPLATE_PROPERTY;\r\n if (this.element.tagName === 'UL') {\r\n var jsonElement = ListBase.createJsonFromElement(this.element);\r\n this.setProperties({ fields: { text: 'text', value: 'text' } }, true);\r\n this.resetList(jsonElement, this.fields);\r\n }\r\n else if (this.element.tagName === 'SELECT') {\r\n var dataSource = this.dataSource instanceof Array ? (this.dataSource.length > 0 ? true : false)\r\n : !isNullOrUndefined(this.dataSource) ? true : false;\r\n if (!dataSource) {\r\n this.renderItemsBySelect();\r\n }\r\n else if (this.isDynamicDataChange) {\r\n this.setListData(this.dataSource, this.fields, this.query);\r\n }\r\n }\r\n else {\r\n this.setListData(this.dataSource, this.fields, this.query);\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in persisted state.\r\n *\r\n * @returns {string} Returns the persisted data of the component.\r\n */\r\n DropDownBase.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * Sets the enabled state to DropDownBase.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.setEnabled = function () {\r\n this.element.setAttribute('aria-disabled', (this.enabled) ? 'false' : 'true');\r\n };\r\n /**\r\n * Sets the enabled state to DropDownBase.\r\n *\r\n * @param {string} value - Specifies the attribute values to add on the input element.\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.updateDataAttribute = function (value) {\r\n var invalidAttr = ['class', 'style', 'id', 'type'];\r\n var attr = {};\r\n for (var a = 0; a < this.element.attributes.length; a++) {\r\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\r\n !(this.getModuleName() === 'dropdownlist' && this.element.attributes[a].name === 'readonly')) {\r\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\r\n }\r\n }\r\n extend(attr, value, attr);\r\n this.setProperties({ htmlAttributes: attr }, true);\r\n };\r\n DropDownBase.prototype.renderItemsBySelect = function () {\r\n var element = this.element;\r\n var fields = { value: 'value', text: 'text' };\r\n var jsonElement = [];\r\n var group = element.querySelectorAll('select>optgroup');\r\n var option = element.querySelectorAll('select>option');\r\n this.getJSONfromOption(jsonElement, option, fields);\r\n if (group.length) {\r\n for (var i = 0; i < group.length; i++) {\r\n var item = group[i];\r\n var optionGroup = {};\r\n optionGroup[fields.text] = item.label;\r\n optionGroup.isHeader = true;\r\n var child = item.querySelectorAll('option');\r\n jsonElement.push(optionGroup);\r\n this.getJSONfromOption(jsonElement, child, fields);\r\n }\r\n element.querySelectorAll('select>option');\r\n }\r\n this.updateFields(fields.text, fields.value, this.fields.groupBy, this.fields.htmlAttributes, this.fields.iconCss);\r\n this.resetList(jsonElement, fields);\r\n };\r\n DropDownBase.prototype.updateFields = function (text, value, groupBy, htmlAttributes, iconCss) {\r\n var field = {\r\n 'fields': {\r\n text: text,\r\n value: value,\r\n groupBy: !isNullOrUndefined(groupBy) ? groupBy : this.fields && this.fields.groupBy,\r\n htmlAttributes: !isNullOrUndefined(htmlAttributes) ? htmlAttributes : this.fields && this.fields.htmlAttributes,\r\n iconCss: !isNullOrUndefined(iconCss) ? iconCss : this.fields && this.fields.iconCss\r\n }\r\n };\r\n this.setProperties(field, true);\r\n };\r\n DropDownBase.prototype.getJSONfromOption = function (items, options, fields) {\r\n for (var _i = 0, options_1 = options; _i < options_1.length; _i++) {\r\n var option = options_1[_i];\r\n var json = {};\r\n json[fields.text] = option.innerText;\r\n json[fields.value] = !isNullOrUndefined(option.getAttribute(fields.value)) ?\r\n option.getAttribute(fields.value) : option.innerText;\r\n items.push(json);\r\n }\r\n };\r\n /**\r\n * Execute before render the list items\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.preRender = function () {\r\n // there is no event handler\r\n this.scrollTimer = -1;\r\n this.enableRtlElements = [];\r\n this.isRequested = false;\r\n this.isDataFetched = false;\r\n this.itemTemplateId = \"\" + this.element.id + ITEMTEMPLATE_PROPERTY;\r\n this.valueTemplateId = \"\" + this.element.id + VALUETEMPLATE_PROPERTY;\r\n this.groupTemplateId = \"\" + this.element.id + GROUPTEMPLATE_PROPERTY;\r\n this.headerTemplateId = \"\" + this.element.id + HEADERTEMPLATE_PROPERTY;\r\n this.footerTemplateId = \"\" + this.element.id + FOOTERTEMPLATE_PROPERTY;\r\n this.noRecordsTemplateId = \"\" + this.element.id + NORECORDSTEMPLATE_PROPERTY;\r\n };\r\n /**\r\n * Creates the list items of DropDownBase component.\r\n *\r\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\r\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\r\n * @param {Query} query - Accepts the external Query that execute along with data processing.\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.setListData = function (dataSource, fields, query) {\r\n var _this = this;\r\n fields = fields ? fields : this.fields;\r\n var ulElement;\r\n this.isActive = true;\r\n var eventArgs = { cancel: false, data: dataSource, query: query };\r\n this.isPreventChange = this.isAngular && this.preventChange ? true : this.isPreventChange;\r\n this.trigger('actionBegin', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.showSpinner();\r\n if (dataSource instanceof DataManager) {\r\n _this.isRequested = true;\r\n if (_this.isDataFetched) {\r\n _this.emptyDataRequest(fields);\r\n return;\r\n }\r\n eventArgs.data.executeQuery(_this.getQuery(eventArgs.query)).then(function (e) {\r\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\r\n _this.trigger('actionComplete', e, function (e) {\r\n if (!e.cancel) {\r\n var listItems = e.result;\r\n if (listItems.length === 0) {\r\n _this.isDataFetched = true;\r\n }\r\n ulElement = _this.renderItems(listItems, fields);\r\n _this.onActionComplete(ulElement, listItems, e);\r\n if (_this.groupTemplate) {\r\n _this.renderGroupTemplate(ulElement);\r\n }\r\n _this.isRequested = false;\r\n _this.bindChildItems(listItems, ulElement, fields, e);\r\n }\r\n });\r\n }).catch(function (e) {\r\n _this.isRequested = false;\r\n _this.onActionFailure(e);\r\n _this.hideSpinner();\r\n });\r\n }\r\n else {\r\n var dataManager = new DataManager(eventArgs.data);\r\n var listItems = (_this.getQuery(eventArgs.query)).executeLocal(dataManager);\r\n var localDataArgs = { cancel: false, result: listItems };\r\n _this.isPreventChange = _this.isAngular && _this.preventChange ? true : _this.isPreventChange;\r\n _this.trigger('actionComplete', localDataArgs, function (localDataArgs) {\r\n if (!localDataArgs.cancel) {\r\n ulElement = _this.renderItems(localDataArgs.result, fields);\r\n _this.onActionComplete(ulElement, localDataArgs.result);\r\n if (_this.groupTemplate) {\r\n _this.renderGroupTemplate(ulElement);\r\n }\r\n _this.bindChildItems(localDataArgs.result, ulElement, fields);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n };\r\n DropDownBase.prototype.bindChildItems = function (listItems, ulElement, fields, e) {\r\n var _this = this;\r\n if (listItems.length >= 100 && this.getModuleName() === 'autocomplete') {\r\n setTimeout(function () {\r\n var childNode = _this.remainingItems(_this.sortedData, fields);\r\n append(childNode, ulElement);\r\n _this.liCollections = _this.list.querySelectorAll('.' + dropDownBaseClasses.li);\r\n _this.updateListValues();\r\n _this.raiseDataBound(listItems, e);\r\n }, 0);\r\n }\r\n else {\r\n this.raiseDataBound(listItems, e);\r\n }\r\n };\r\n DropDownBase.prototype.updateListValues = function () {\r\n // Used this method in component side.\r\n };\r\n DropDownBase.prototype.findListElement = function (list, findNode, attribute, value) {\r\n var liElement = null;\r\n if (list) {\r\n var listArr = [].slice.call(list.querySelectorAll(findNode));\r\n for (var index = 0; index < listArr.length; index++) {\r\n if (listArr[index].getAttribute(attribute) === (value + '')) {\r\n liElement = listArr[index];\r\n break;\r\n }\r\n }\r\n }\r\n return liElement;\r\n };\r\n DropDownBase.prototype.raiseDataBound = function (listItems, e) {\r\n this.hideSpinner();\r\n var dataBoundEventArgs = {\r\n items: listItems,\r\n e: e\r\n };\r\n this.trigger('dataBound', dataBoundEventArgs);\r\n };\r\n DropDownBase.prototype.remainingItems = function (dataSource, fields) {\r\n var spliceData = new DataManager(dataSource).executeLocal(new Query().skip(100));\r\n if (this.itemTemplate) {\r\n var listElements = this.templateListItem(spliceData, fields);\r\n return [].slice.call(listElements.childNodes);\r\n }\r\n var type = this.typeOfData(spliceData).typeof;\r\n if (type === 'string' || type === 'number' || type === 'boolean') {\r\n return ListBase.createListItemFromArray(this.createElement, spliceData, true, this.listOption(spliceData, fields), this);\r\n }\r\n return ListBase.createListItemFromJson(this.createElement, spliceData, this.listOption(spliceData, fields), 1, true, this);\r\n };\r\n DropDownBase.prototype.emptyDataRequest = function (fields) {\r\n var listItems = [];\r\n this.onActionComplete(this.renderItems(listItems, fields), listItems);\r\n this.isRequested = false;\r\n this.hideSpinner();\r\n };\r\n DropDownBase.prototype.showSpinner = function () {\r\n // Used this method in component side.\r\n };\r\n DropDownBase.prototype.hideSpinner = function () {\r\n // Used this method in component side.\r\n };\r\n DropDownBase.prototype.onActionFailure = function (e) {\r\n this.liCollections = [];\r\n this.trigger('actionFailure', e);\r\n this.l10nUpdate(true);\r\n addClass([this.list], dropDownBaseClasses.noData);\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n DropDownBase.prototype.onActionComplete = function (ulElement, list, e) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n this.listData = list;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.clearTemplate(['itemTemplate', 'groupTemplate', 'actionFailureTemplate', 'noRecordsTemplate']);\r\n }\r\n this.list.innerHTML = '';\r\n this.fixedHeaderElement = isNullOrUndefined(this.fixedHeaderElement) ? this.fixedHeaderElement : null;\r\n this.list.appendChild(ulElement);\r\n this.liCollections = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\r\n this.ulElement = this.list.querySelector('ul');\r\n this.postRender(this.list, list, this.bindEvent);\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n DropDownBase.prototype.postRender = function (listElement, list, bindEvent) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n var focusItem = listElement.querySelector('.' + dropDownBaseClasses.li);\r\n var selectedItem = listElement.querySelector('.' + dropDownBaseClasses.selected);\r\n if (focusItem && !selectedItem) {\r\n focusItem.classList.add(dropDownBaseClasses.focus);\r\n }\r\n if (list.length <= 0) {\r\n this.l10nUpdate();\r\n addClass([listElement], dropDownBaseClasses.noData);\r\n }\r\n else {\r\n listElement.classList.remove(dropDownBaseClasses.noData);\r\n }\r\n };\r\n /**\r\n * Get the query to do the data operation before list item generation.\r\n *\r\n * @param {Query} query - Accepts the external Query that execute along with data processing.\r\n * @returns {Query} Returns the query to do the data query operation.\r\n */\r\n DropDownBase.prototype.getQuery = function (query) {\r\n return query ? query : this.query ? this.query : new Query();\r\n };\r\n /**\r\n * To render the template content for group header element.\r\n *\r\n * @param {HTMLElement} listEle - Specifies the group list elements.\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.renderGroupTemplate = function (listEle) {\r\n if (this.fields.groupBy !== null && this.dataSource || this.element.querySelector('.' + dropDownBaseClasses.group)) {\r\n var dataSource = this.dataSource;\r\n var option = { groupTemplateID: this.groupTemplateId, isStringTemplate: this.isStringTemplate };\r\n var headerItems = listEle.querySelectorAll('.' + dropDownBaseClasses.group);\r\n var groupcheck = this.templateCompiler(this.groupTemplate);\r\n if (groupcheck) {\r\n var groupValue = select(this.groupTemplate, document).innerHTML.trim();\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n var tempHeaders = ListBase.renderGroupTemplate(groupValue, dataSource, this.fields.properties, headerItems, option, this);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n var tempHeaders = ListBase.renderGroupTemplate(this.groupTemplate, dataSource, this.fields.properties, headerItems, option, this);\r\n }\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * To create the ul li list items\r\n *\r\n * @param {object []} dataSource - Specifies the data to generate the list.\r\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\r\n * @returns {HTMLElement} Return the ul li list items.\r\n */\r\n DropDownBase.prototype.createListItems = function (dataSource, fields) {\r\n if (dataSource && fields.groupBy || this.element.querySelector('optgroup')) {\r\n if (fields.groupBy) {\r\n if (this.sortOrder !== 'None') {\r\n dataSource = this.getSortedDataSource(dataSource);\r\n }\r\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\r\n }\r\n addClass([this.list], dropDownBaseClasses.grouping);\r\n }\r\n else {\r\n dataSource = this.getSortedDataSource(dataSource);\r\n }\r\n var options = this.listOption(dataSource, fields);\r\n var spliceData = (dataSource.length > 100) ?\r\n new DataManager(dataSource).executeLocal(new Query().take(100))\r\n : dataSource;\r\n this.sortedData = dataSource;\r\n return ListBase.createList(this.createElement, (this.getModuleName() === 'autocomplete') ? spliceData : dataSource, options, true, this);\r\n };\r\n DropDownBase.prototype.listOption = function (dataSource, fields) {\r\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\r\n var fieldValues = !isNullOrUndefined(fields.properties) ?\r\n fields.properties : fields;\r\n var options = (fields.text !== null || fields.value !== null) ? {\r\n fields: fieldValues,\r\n showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\r\n } : { fields: { value: 'text' } };\r\n return extend({}, options, fields, true);\r\n };\r\n DropDownBase.prototype.setFloatingHeader = function (e) {\r\n if (isNullOrUndefined(this.fixedHeaderElement)) {\r\n this.fixedHeaderElement = this.createElement('div', { className: dropDownBaseClasses.fixedHead });\r\n if (!this.list.querySelector('li').classList.contains(dropDownBaseClasses.group)) {\r\n this.fixedHeaderElement.style.display = 'none';\r\n }\r\n prepend([this.fixedHeaderElement], this.list);\r\n this.setFixedHeader();\r\n }\r\n if (!isNullOrUndefined(this.fixedHeaderElement) && this.fixedHeaderElement.style.zIndex === '0') {\r\n this.setFixedHeader();\r\n }\r\n this.scrollStop(e);\r\n };\r\n DropDownBase.prototype.scrollStop = function (e) {\r\n var target = !isNullOrUndefined(e) ? e.target : this.list;\r\n var liHeight = parseInt(getComputedStyle(this.getValidLi(), null).getPropertyValue('height'), 10);\r\n var topIndex = Math.round(target.scrollTop / liHeight);\r\n var liCollections = this.list.querySelectorAll('li' + ':not(.e-hide-listitem)');\r\n for (var i = topIndex; i > -1; i--) {\r\n if (!isNullOrUndefined(liCollections[i]) && liCollections[i].classList.contains(dropDownBaseClasses.group)) {\r\n var currentLi = liCollections[i];\r\n this.fixedHeaderElement.innerHTML = currentLi.innerHTML;\r\n this.fixedHeaderElement.style.top = target.scrollTop + 'px';\r\n this.fixedHeaderElement.style.display = 'block';\r\n break;\r\n }\r\n else {\r\n this.fixedHeaderElement.style.display = 'none';\r\n this.fixedHeaderElement.style.top = 'none';\r\n }\r\n }\r\n };\r\n DropDownBase.prototype.getValidLi = function () {\r\n return this.liCollections[0];\r\n };\r\n /**\r\n * To render the list items\r\n *\r\n * @param {object[]} listData - Specifies the list of array of data.\r\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\r\n * @returns {HTMLElement} Return the list items.\r\n */\r\n DropDownBase.prototype.renderItems = function (listData, fields) {\r\n var ulElement;\r\n if (this.itemTemplate && listData) {\r\n var dataSource = listData;\r\n if (dataSource && fields.groupBy) {\r\n if (this.sortOrder !== 'None') {\r\n dataSource = this.getSortedDataSource(dataSource);\r\n }\r\n dataSource = ListBase.groupDataSource(dataSource, fields.properties, this.sortOrder);\r\n }\r\n else {\r\n dataSource = this.getSortedDataSource(dataSource);\r\n }\r\n this.sortedData = dataSource;\r\n var spliceData = (dataSource.length > 100) ?\r\n new DataManager(dataSource).executeLocal(new Query().take(100))\r\n : dataSource;\r\n ulElement = this.templateListItem((this.getModuleName() === 'autocomplete') ? spliceData : dataSource, fields);\r\n }\r\n else {\r\n ulElement = this.createListItems(listData, fields);\r\n }\r\n return ulElement;\r\n };\r\n DropDownBase.prototype.templateListItem = function (dataSource, fields) {\r\n var option = this.listOption(dataSource, fields);\r\n option.templateID = this.itemTemplateId;\r\n option.isStringTemplate = this.isStringTemplate;\r\n var itemcheck = this.templateCompiler(this.itemTemplate);\r\n if (itemcheck) {\r\n var itemValue = select(this.itemTemplate, document).innerHTML.trim();\r\n return ListBase.renderContentTemplate(this.createElement, itemValue, dataSource, fields.properties, option, this);\r\n }\r\n else {\r\n return ListBase.renderContentTemplate(this.createElement, this.itemTemplate, dataSource, fields.properties, option, this);\r\n }\r\n };\r\n DropDownBase.prototype.typeOfData = function (items) {\r\n var item = { typeof: null, item: null };\r\n for (var i = 0; (!isNullOrUndefined(items) && i < items.length); i++) {\r\n if (!isNullOrUndefined(items[i])) {\r\n var listDataType = typeof (items[i]) === 'string' ||\r\n typeof (items[i]) === 'number' || typeof (items[i]) === 'boolean';\r\n var isNullData = listDataType ? isNullOrUndefined(items[i]) :\r\n isNullOrUndefined(getValue((this.fields.value ? this.fields.value : 'value'), items[i]));\r\n if (!isNullData) {\r\n return item = { typeof: typeof items[i], item: items[i] };\r\n }\r\n }\r\n }\r\n return item;\r\n };\r\n DropDownBase.prototype.setFixedHeader = function () {\r\n this.list.parentElement.style.display = 'block';\r\n var borderWidth = 0;\r\n if (this.list && this.list.parentElement) {\r\n borderWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-width'), 10);\r\n /*Shorthand property not working in Firefox for getComputedStyle method.\r\n Refer bug report https://bugzilla.mozilla.org/show_bug.cgi?id=137688\r\n Refer alternate solution https://stackoverflow.com/a/41696234/9133493*/\r\n if (isNaN(borderWidth)) {\r\n var borderTopWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-top-width'), 10);\r\n var borderBottomWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-bottom-width'), 10);\r\n var borderLeftWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-left-width'), 10);\r\n var borderRightWidth = parseInt(document.defaultView.getComputedStyle(this.list.parentElement, null).getPropertyValue('border-right-width'), 10);\r\n borderWidth = (borderTopWidth + borderBottomWidth + borderLeftWidth + borderRightWidth);\r\n }\r\n }\r\n var liWidth = this.getValidLi().offsetWidth - borderWidth;\r\n this.fixedHeaderElement.style.width = liWidth.toString() + 'px';\r\n setStyleAttribute(this.fixedHeaderElement, { zIndex: 10 });\r\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group + ':not(.e-hide-listitem)');\r\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\r\n };\r\n DropDownBase.prototype.getSortedDataSource = function (dataSource) {\r\n if (dataSource && this.sortOrder !== 'None') {\r\n var textField = this.fields.text ? this.fields.text : 'text';\r\n if (this.typeOfData(dataSource).typeof === 'string' || this.typeOfData(dataSource).typeof === 'number'\r\n || this.typeOfData(dataSource).typeof === 'boolean') {\r\n textField = '';\r\n }\r\n dataSource = ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, textField));\r\n }\r\n return dataSource;\r\n };\r\n /**\r\n * Return the index of item which matched with given value in data source\r\n *\r\n * @param {string | number | boolean} value - Specifies given value.\r\n * @returns {number} Returns the index of the item.\r\n */\r\n DropDownBase.prototype.getIndexByValue = function (value) {\r\n var index;\r\n var listItems = this.getItems();\r\n for (var i = 0; i < listItems.length; i++) {\r\n if (!isNullOrUndefined(value) && listItems[i].getAttribute('data-value') === value.toString()) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n return index;\r\n };\r\n /**\r\n * To dispatch the event manually\r\n *\r\n * @param {HTMLElement} element - Specifies the element to dispatch the event.\r\n * @param {string} type - Specifies the name of the event.\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.dispatchEvent = function (element, type) {\r\n var evt = document.createEvent('HTMLEvents');\r\n evt.initEvent(type, false, true);\r\n element.dispatchEvent(evt);\r\n };\r\n /**\r\n * To set the current fields\r\n *\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.setFields = function () {\r\n if (this.fields.value && !this.fields.text) {\r\n this.updateFields(this.fields.value, this.fields.value);\r\n }\r\n else if (!this.fields.value && this.fields.text) {\r\n this.updateFields(this.fields.text, this.fields.text);\r\n }\r\n else if (!this.fields.value && !this.fields.text) {\r\n this.updateFields('text', 'text');\r\n }\r\n };\r\n /**\r\n * reset the items list.\r\n *\r\n * @param {Object[] | string[] | number[] | DataManager | boolean[]} dataSource - Specifies the data to generate the list.\r\n * @param {FieldSettingsModel} fields - Maps the columns of the data table and binds the data to the component.\r\n * @param {Query} query - Accepts the external Query that execute along with data processing.\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.resetList = function (dataSource, fields, query) {\r\n if (this.list) {\r\n if ((this.element.tagName === 'SELECT' && this.element.options.length > 0)\r\n || (this.element.tagName === 'UL' && this.element.childNodes.length > 0)) {\r\n var data = dataSource instanceof Array ? (dataSource.length > 0)\r\n : !isNullOrUndefined(dataSource);\r\n if (!data && this.selectData && this.selectData.length > 0) {\r\n dataSource = this.selectData;\r\n }\r\n }\r\n this.setListData(dataSource, fields, query);\r\n }\r\n };\r\n DropDownBase.prototype.updateSelectElementData = function (isFiltering) {\r\n if (isFiltering && isNullOrUndefined(this.selectData) && this.listData && this.listData.length > 0) {\r\n this.selectData = this.listData;\r\n }\r\n };\r\n DropDownBase.prototype.updateSelection = function () {\r\n // This is for after added the item, need to update the selected index values.\r\n };\r\n DropDownBase.prototype.renderList = function () {\r\n // This is for render the list items.\r\n this.render();\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownBase.prototype.updateDataSource = function (props) {\r\n this.resetList(this.dataSource);\r\n };\r\n DropDownBase.prototype.setUpdateInitial = function (props, newProp) {\r\n this.isDataFetched = false;\r\n var updateData = {};\r\n for (var j = 0; props.length > j; j++) {\r\n if (newProp[props[j]] && props[j] === 'fields') {\r\n this.setFields();\r\n updateData[props[j]] = newProp[props[j]];\r\n }\r\n else if (newProp[props[j]]) {\r\n updateData[props[j]] = newProp[props[j]];\r\n }\r\n }\r\n if (Object.keys(updateData).length > 0) {\r\n if (Object.keys(updateData).indexOf('dataSource') === -1) {\r\n updateData.dataSource = this.dataSource;\r\n }\r\n this.updateDataSource(updateData);\r\n }\r\n };\r\n /**\r\n * When property value changes happened, then onPropertyChanged method will execute the respective changes in this component.\r\n *\r\n * @param {DropDownBaseModel} newProp - Returns the dynamic property value of the component.\r\n * @param {DropDownBaseModel} oldProp - Returns the previous property value of the component.\r\n * @private\r\n * @returns {void}\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownBase.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (this.getModuleName() === 'dropdownbase') {\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n }\r\n this.setUpdateInitial(['sortOrder', 'itemTemplate'], newProp);\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'query':\r\n case 'sortOrder':\r\n case 'dataSource':\r\n case 'itemTemplate':\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRtl();\r\n break;\r\n case 'enabled':\r\n this.setEnabled();\r\n break;\r\n case 'groupTemplate':\r\n this.renderGroupTemplate(this.list);\r\n if (this.ulElement && this.fixedHeaderElement) {\r\n var firstLi = this.ulElement.querySelector('.' + dropDownBaseClasses.group);\r\n this.fixedHeaderElement.innerHTML = firstLi.innerHTML;\r\n }\r\n break;\r\n case 'locale':\r\n if (this.list && (!isNullOrUndefined(this.liCollections) && this.liCollections.length === 0)) {\r\n this.l10nUpdate();\r\n }\r\n break;\r\n case 'zIndex':\r\n this.setProperties({ zIndex: newProp.zIndex }, true);\r\n this.setZIndex();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Build and render the component\r\n *\r\n * @param {boolean} isEmptyData - Specifies the component to initialize with list data or not.\r\n * @private\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.render = function (isEmptyData) {\r\n this.list = this.createElement('div', { className: dropDownBaseClasses.content, attrs: { 'tabindex': '0' } });\r\n this.list.classList.add(dropDownBaseClasses.root);\r\n this.setFields();\r\n var rippleModel = { duration: 300, selector: '.' + dropDownBaseClasses.li };\r\n this.rippleFun = rippleEffect(this.list, rippleModel);\r\n var group = this.element.querySelector('select>optgroup');\r\n if ((this.fields.groupBy || !isNullOrUndefined(group)) && !this.isGroupChecking) {\r\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\r\n }\r\n if (this.getModuleName() === 'dropdownbase') {\r\n if (this.element.getAttribute('tabindex')) {\r\n this.list.setAttribute('tabindex', this.element.getAttribute('tabindex'));\r\n }\r\n removeClass([this.element], dropDownBaseClasses.root);\r\n this.element.style.display = 'none';\r\n var wrapperElement = this.createElement('div');\r\n this.element.parentElement.insertBefore(wrapperElement, this.element);\r\n wrapperElement.appendChild(this.element);\r\n wrapperElement.appendChild(this.list);\r\n }\r\n this.setEnableRtl();\r\n this.setEnabled();\r\n if (!isEmptyData) {\r\n this.initialize();\r\n }\r\n };\r\n /**\r\n * Return the module name of this component.\r\n *\r\n * @private\r\n * @returns {string} Return the module name of this component.\r\n */\r\n DropDownBase.prototype.getModuleName = function () {\r\n return 'dropdownbase';\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets all the list items bound on this component.\r\n *\r\n * @returns {Element[]}\r\n */\r\n DropDownBase.prototype.getItems = function () {\r\n return this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\r\n * but you can insert based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\r\n * @returns {void}\r\n\r\n */\r\n DropDownBase.prototype.addItem = function (items, itemIndex) {\r\n if (!this.list || (this.list.textContent === this.noRecordsTemplate && this.getModuleName() !== 'listbox')) {\r\n this.renderList();\r\n }\r\n if (this.sortOrder !== 'None' && isNullOrUndefined(itemIndex)) {\r\n var newList = [].slice.call(this.listData);\r\n newList.push(items);\r\n newList = this.getSortedDataSource(newList);\r\n if (this.fields.groupBy) {\r\n newList = ListBase.groupDataSource(newList, this.fields.properties, this.sortOrder);\r\n itemIndex = newList.indexOf(items);\r\n }\r\n else {\r\n itemIndex = newList.indexOf(items);\r\n }\r\n }\r\n var itemsCount = this.getItems().length;\r\n var selectedItemValue = this.list.querySelector('.' + dropDownBaseClasses.selected);\r\n items = (items instanceof Array ? items : [items]);\r\n var index;\r\n index = (isNullOrUndefined(itemIndex) || itemIndex < 0 || itemIndex > itemsCount - 1) ? itemsCount : itemIndex;\r\n var fields = this.fields;\r\n if (items && fields.groupBy) {\r\n items = ListBase.groupDataSource(items, fields.properties);\r\n }\r\n var liCollections = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isHeader = item.isHeader;\r\n var li = this.createElement('li', { className: isHeader ? dropDownBaseClasses.group : dropDownBaseClasses.li, id: 'option-add-' + i });\r\n var itemText = item instanceof Object ? getValue(fields.text, item) : item;\r\n if (isHeader) {\r\n li.innerText = itemText;\r\n }\r\n if (this.itemTemplate && !isHeader) {\r\n var compiledString = compile(this.itemTemplate);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var addItemTemplate = compiledString(item, this, 'itemTemplate', this.itemTemplateId, this.isStringTemplate, null, li);\r\n if (addItemTemplate) {\r\n append(addItemTemplate, li);\r\n }\r\n }\r\n else if (!isHeader) {\r\n li.appendChild(document.createTextNode(itemText));\r\n }\r\n li.setAttribute('data-value', item instanceof Object ? getValue(fields.value, item) : item);\r\n li.setAttribute('role', 'option');\r\n this.notify('addItem', { module: 'CheckBoxSelection', item: li });\r\n liCollections.push(li);\r\n this.listData.push(item);\r\n if (this.sortOrder === 'None' && isNullOrUndefined(itemIndex) && index === 0) {\r\n index = null;\r\n }\r\n this.updateActionCompleteData(li, item, index);\r\n //Listbox event\r\n this.trigger('beforeItemRender', { element: li, item: item });\r\n }\r\n if (itemsCount === 0 && isNullOrUndefined(this.list.querySelector('ul'))) {\r\n this.list.innerHTML = '';\r\n this.list.classList.remove(dropDownBaseClasses.noData);\r\n this.list.appendChild(this.ulElement);\r\n this.liCollections = liCollections;\r\n append(liCollections, this.ulElement);\r\n this.updateAddItemList(this.list, itemsCount);\r\n }\r\n else {\r\n if (this.getModuleName() === 'listbox' && itemsCount === 0) {\r\n this.ulElement.innerHTML = '';\r\n }\r\n var attr = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var listGroupItem = this.ulElement.querySelectorAll('.e-list-group-item');\r\n for (var j = 0; j < listGroupItem.length; j++) {\r\n attr[j] = listGroupItem[j].innerText;\r\n }\r\n if (attr.indexOf(liCollections[i].innerText) > -1 && fields.groupBy) {\r\n for (var j = 0; j < listGroupItem.length; j++) {\r\n if (attr[j] === liCollections[i].innerText) {\r\n if (this.sortOrder === 'None') {\r\n this.ulElement.insertBefore(liCollections[i + 1], listGroupItem[j + 1]);\r\n }\r\n else {\r\n this.ulElement.insertBefore(liCollections[i + 1], this.ulElement.childNodes[itemIndex]);\r\n }\r\n i = i + 1;\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n if (this.liCollections[index]) {\r\n this.liCollections[index].parentNode.insertBefore(liCollections[i], this.liCollections[index]);\r\n }\r\n else {\r\n this.ulElement.appendChild(liCollections[i]);\r\n }\r\n }\r\n var tempLi = [].slice.call(this.liCollections);\r\n tempLi.splice(index, 0, liCollections[i]);\r\n this.liCollections = tempLi;\r\n index += 1;\r\n if (this.getModuleName() === 'multiselect') {\r\n this.updateDataList();\r\n }\r\n }\r\n }\r\n if (selectedItemValue || itemIndex === 0) {\r\n this.updateSelection();\r\n }\r\n };\r\n DropDownBase.prototype.validationAttribute = function (target, hidden) {\r\n var name = target.getAttribute('name') ? target.getAttribute('name') : target.getAttribute('id');\r\n hidden.setAttribute('name', name);\r\n target.removeAttribute('name');\r\n var attributes = ['required', 'aria-required', 'form'];\r\n for (var i = 0; i < attributes.length; i++) {\r\n if (!target.getAttribute(attributes[i])) {\r\n continue;\r\n }\r\n var attr = target.getAttribute(attributes[i]);\r\n hidden.setAttribute(attributes[i], attr);\r\n target.removeAttribute(attributes[i]);\r\n }\r\n };\r\n DropDownBase.prototype.setZIndex = function () {\r\n // this is for component wise\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownBase.prototype.updateActionCompleteData = function (li, item, index) {\r\n // this is for ComboBox custom value\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownBase.prototype.updateAddItemList = function (list, itemCount) {\r\n // this is for multiselect add item\r\n };\r\n DropDownBase.prototype.updateDataList = function () {\r\n // this is for multiselect update list items\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the data Object that matches the given value.\r\n *\r\n * @param { string | number } value - Specifies the value of the list item.\r\n * @returns {Object}\r\n */\r\n DropDownBase.prototype.getDataByValue = function (value) {\r\n if (!isNullOrUndefined(this.listData)) {\r\n var type = this.typeOfData(this.listData).typeof;\r\n if (type === 'string' || type === 'number' || type === 'boolean') {\r\n for (var _i = 0, _a = this.listData; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n if (!isNullOrUndefined(item) && item === value) {\r\n return item;\r\n }\r\n }\r\n }\r\n else {\r\n for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {\r\n var item = _c[_b];\r\n if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {\r\n return item;\r\n }\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n DropDownBase.prototype.destroy = function () {\r\n if (document.body.contains(this.list)) {\r\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\r\n if (!isNullOrUndefined(this.rippleFun)) {\r\n this.rippleFun();\r\n }\r\n detach(this.list);\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n __decorate([\r\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\r\n ], DropDownBase.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownBase.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownBase.prototype, \"itemTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownBase.prototype, \"groupTemplate\", void 0);\r\n __decorate([\r\n Property('No records found')\r\n ], DropDownBase.prototype, \"noRecordsTemplate\", void 0);\r\n __decorate([\r\n Property('Request failed')\r\n ], DropDownBase.prototype, \"actionFailureTemplate\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], DropDownBase.prototype, \"sortOrder\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownBase.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property([])\r\n ], DropDownBase.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownBase.prototype, \"query\", void 0);\r\n __decorate([\r\n Property('StartsWith')\r\n ], DropDownBase.prototype, \"filterType\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownBase.prototype, \"ignoreCase\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], DropDownBase.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownBase.prototype, \"ignoreAccent\", void 0);\r\n __decorate([\r\n Property()\r\n ], DropDownBase.prototype, \"locale\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"actionBegin\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"actionComplete\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"actionFailure\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"dataBound\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownBase.prototype, \"destroyed\", void 0);\r\n DropDownBase = __decorate([\r\n NotifyPropertyChanges\r\n ], DropDownBase);\r\n return DropDownBase;\r\n}(Component));\r\nexport { DropDownBase };\r\n","/**\n * export all modules from current location\n */\nexport * from './drop-down-base';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { EventHandler, Property, Event, compile, KeyboardEvents, append, select } from '@syncfusion/ej2-base';\r\nimport { attributes, isNullOrUndefined, getUniqueID, formatUnit, isUndefined, getValue } from '@syncfusion/ej2-base';\r\nimport { Animation, Browser, NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, closest, prepend, detach, classList } from '@syncfusion/ej2-base';\r\nimport { Popup, isCollide, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { incrementalSearch, resetIncrementalSearchValues } from '../common/incremental-search';\r\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\r\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\r\n// don't use space in classnames\r\nexport var dropDownListClasses = {\r\n root: 'e-dropdownlist',\r\n hover: dropDownBaseClasses.hover,\r\n selected: dropDownBaseClasses.selected,\r\n rtl: dropDownBaseClasses.rtl,\r\n li: dropDownBaseClasses.li,\r\n disable: dropDownBaseClasses.disabled,\r\n base: dropDownBaseClasses.root,\r\n focus: dropDownBaseClasses.focus,\r\n input: 'e-input-group',\r\n inputFocus: 'e-input-focus',\r\n icon: 'e-input-group-icon e-ddl-icon',\r\n iconAnimation: 'e-icon-anim',\r\n value: 'e-input-value',\r\n device: 'e-ddl-device',\r\n backIcon: 'e-input-group-icon e-back-icon e-icons',\r\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\r\n filterInput: 'e-input-filter',\r\n filterParent: 'e-filter-parent',\r\n mobileFilter: 'e-ddl-device-filter',\r\n footer: 'e-ddl-footer',\r\n header: 'e-ddl-header',\r\n clearIcon: 'e-clear-icon',\r\n clearIconHide: 'e-clear-icon-hide',\r\n popupFullScreen: 'e-popup-full-page',\r\n disableIcon: 'e-ddl-disable-icon',\r\n hiddenElement: 'e-ddl-hidden'\r\n};\r\nvar inputObject = {\r\n container: null,\r\n buttons: []\r\n};\r\n/**\r\n * The DropDownList component contains a list of predefined values from which you can\r\n * choose a single value.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * let dropDownListObj:DropDownList = new DropDownList();\r\n * dropDownListObj.appendTo(\"#list\");\r\n * ```\r\n */\r\nvar DropDownList = /** @class */ (function (_super) {\r\n __extends(DropDownList, _super);\r\n /**\r\n * * Constructor for creating the DropDownList component.\r\n *\r\n * @param {DropDownListModel} options - Specifies the DropDownList model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function DropDownList(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isListSearched = false;\r\n _this.preventChange = false;\r\n _this.isAngular = false;\r\n return _this;\r\n }\r\n /**\r\n * Initialize the event handler.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.preRender = function () {\r\n this.valueTempElement = null;\r\n this.element.style.opacity = '0';\r\n this.initializeData();\r\n _super.prototype.preRender.call(this);\r\n this.activeIndex = this.index;\r\n this.queryString = '';\r\n };\r\n DropDownList.prototype.initializeData = function () {\r\n this.isPopupOpen = false;\r\n this.isDocumentClick = false;\r\n this.isInteracted = false;\r\n this.isFilterFocus = false;\r\n this.beforePopupOpen = false;\r\n this.initial = true;\r\n this.initRemoteRender = false;\r\n this.isNotSearchList = false;\r\n this.isTyped = false;\r\n this.isSelected = false;\r\n this.preventFocus = false;\r\n this.preventAutoFill = false;\r\n this.isValidKey = false;\r\n this.typedString = '';\r\n this.isEscapeKey = false;\r\n this.isPreventBlur = false;\r\n this.isTabKey = false;\r\n this.actionCompleteData = { isUpdated: false };\r\n this.actionData = { isUpdated: false };\r\n this.prevSelectPoints = {};\r\n this.isSelectCustom = false;\r\n this.isDropDownClick = false;\r\n this.preventAltUp = false;\r\n this.isCustomFilter = false;\r\n this.isSecondClick = false;\r\n this.previousValue = null;\r\n this.keyConfigure = {\r\n tab: 'tab',\r\n enter: '13',\r\n escape: '27',\r\n end: '35',\r\n home: '36',\r\n down: '40',\r\n up: '38',\r\n pageUp: '33',\r\n pageDown: '34',\r\n open: 'alt+40',\r\n close: 'shift+tab',\r\n hide: 'alt+38',\r\n space: '32'\r\n };\r\n };\r\n DropDownList.prototype.setZIndex = function () {\r\n if (this.popupObj) {\r\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\r\n }\r\n };\r\n DropDownList.prototype.renderList = function (isEmptyData) {\r\n _super.prototype.render.call(this, isEmptyData);\r\n this.unWireListEvents();\r\n this.wireListEvents();\r\n };\r\n DropDownList.prototype.floatLabelChange = function () {\r\n if (this.getModuleName() === 'dropdownlist' && this.floatLabelType === 'Auto') {\r\n var floatElement = this.inputWrapper.container.querySelector('.e-float-text');\r\n if (this.inputElement.value !== '' || this.isInteracted) {\r\n classList(floatElement, ['e-label-top'], ['e-label-bottom']);\r\n }\r\n else {\r\n classList(floatElement, ['e-label-bottom'], ['e-label-top']);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.resetHandler = function (e) {\r\n e.preventDefault();\r\n this.clearAll(e);\r\n };\r\n DropDownList.prototype.resetFocusElement = function () {\r\n this.removeHover();\r\n this.removeSelection();\r\n this.removeFocus();\r\n this.list.scrollTop = 0;\r\n if (this.getModuleName() !== 'autocomplete' && !isNullOrUndefined(this.ulElement)) {\r\n var li = this.ulElement.querySelector('.' + dropDownListClasses.li);\r\n if (li) {\r\n li.classList.add(dropDownListClasses.focus);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.clearAll = function (e, properties) {\r\n if (isNullOrUndefined(properties) || (!isNullOrUndefined(properties) &&\r\n (isNullOrUndefined(properties.dataSource) ||\r\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\r\n this.isActive = true;\r\n this.resetSelection(properties);\r\n }\r\n var dataItem = this.getItemData();\r\n if (this.previousValue === dataItem.value) {\r\n return;\r\n }\r\n this.onChangeEvent(e);\r\n };\r\n DropDownList.prototype.resetSelection = function (properties) {\r\n if (this.list) {\r\n if ((!isNullOrUndefined(properties) &&\r\n (isNullOrUndefined(properties.dataSource) ||\r\n (!(properties.dataSource instanceof DataManager) && properties.dataSource.length === 0)))) {\r\n this.selectedLI = null;\r\n this.actionCompleteData.isUpdated = false;\r\n this.actionCompleteData.ulElement = null;\r\n this.actionCompleteData.list = null;\r\n this.resetList(properties.dataSource);\r\n }\r\n else {\r\n if (this.allowFiltering && this.getModuleName() !== 'autocomplete'\r\n && !isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\r\n this.onActionComplete(this.actionCompleteData.ulElement.cloneNode(true), this.actionCompleteData.list);\r\n }\r\n this.resetFocusElement();\r\n }\r\n }\r\n this.hiddenElement.innerHTML = '';\r\n this.inputElement.value = '';\r\n this.value = null;\r\n this.itemData = null;\r\n this.text = null;\r\n this.index = null;\r\n this.activeIndex = null;\r\n this.item = null;\r\n this.queryString = '';\r\n if (this.valueTempElement) {\r\n detach(this.valueTempElement);\r\n this.inputElement.style.display = 'block';\r\n this.valueTempElement = null;\r\n }\r\n this.setSelection(null, null);\r\n this.isSelectCustom = false;\r\n this.updateIconState();\r\n this.cloneElements();\r\n };\r\n DropDownList.prototype.setHTMLAttributes = function () {\r\n if (Object.keys(this.htmlAttributes).length) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var htmlAttr = _a[_i];\r\n if (htmlAttr === 'class') {\r\n var updatedClassValue = (this.htmlAttributes[htmlAttr].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValue !== '') {\r\n addClass([this.inputWrapper.container], updatedClassValue.split(' '));\r\n }\r\n }\r\n else if (htmlAttr === 'disabled' && this.htmlAttributes[htmlAttr] === 'disabled') {\r\n this.enabled = false;\r\n this.setEnable();\r\n }\r\n else if (htmlAttr === 'readonly' && !isNullOrUndefined(this.htmlAttributes[htmlAttr])) {\r\n this.readonly = true;\r\n this.dataBind();\r\n }\r\n else if (htmlAttr === 'style') {\r\n this.inputWrapper.container.setAttribute('style', this.htmlAttributes[htmlAttr]);\r\n }\r\n else {\r\n var defaultAttr = ['title', 'id', 'placeholder', 'aria-placeholder',\r\n 'role', 'autocorrect', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\r\n var validateAttr = ['name', 'required'];\r\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\r\n defaultAttr.push('tabindex');\r\n }\r\n if (validateAttr.indexOf(htmlAttr) > -1 || htmlAttr.indexOf('data') === 0) {\r\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\r\n if (htmlAttr === 'placeholder') {\r\n Input.setPlaceholder(this.htmlAttributes[htmlAttr], this.inputElement);\r\n }\r\n else {\r\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n }\r\n else {\r\n this.inputWrapper.container.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n }\r\n }\r\n }\r\n if (this.getModuleName() === 'autocomplete' || this.getModuleName() === 'combobox') {\r\n this.inputWrapper.container.removeAttribute('tabindex');\r\n }\r\n };\r\n DropDownList.prototype.getAriaAttributes = function () {\r\n return {\r\n 'aria-disabled': 'false',\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n 'aria-activedescendant': 'null',\r\n 'aria-live': 'polite',\r\n 'aria-labelledby': this.hiddenElement.id\r\n };\r\n };\r\n DropDownList.prototype.setEnableRtl = function () {\r\n Input.setEnableRtl(this.enableRtl, [this.inputElement.parentElement]);\r\n if (this.popupObj) {\r\n this.popupObj.enableRtl = this.enableRtl;\r\n this.popupObj.dataBind();\r\n }\r\n };\r\n DropDownList.prototype.setEnable = function () {\r\n Input.setEnabled(this.enabled, this.inputElement);\r\n if (this.enabled) {\r\n removeClass([this.inputWrapper.container], dropDownListClasses.disable);\r\n this.inputElement.setAttribute('aria-disabled', 'false');\r\n this.targetElement().setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.hidePopup();\r\n addClass([this.inputWrapper.container], dropDownListClasses.disable);\r\n this.inputElement.setAttribute('aria-disabled', 'true');\r\n this.targetElement().tabIndex = -1;\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} Returns the persisted data of the component.\r\n */\r\n DropDownList.prototype.getPersistData = function () {\r\n return this.addOnPersist(['value']);\r\n };\r\n DropDownList.prototype.getLocaleName = function () {\r\n return 'drop-down-list';\r\n };\r\n DropDownList.prototype.preventTabIndex = function (element) {\r\n if (this.getModuleName() === 'dropdownlist') {\r\n element.tabIndex = -1;\r\n }\r\n };\r\n DropDownList.prototype.targetElement = function () {\r\n return this.inputWrapper.container;\r\n };\r\n DropDownList.prototype.getNgDirective = function () {\r\n return 'EJS-DROPDOWNLIST';\r\n };\r\n DropDownList.prototype.getElementByText = function (text) {\r\n return this.getElementByValue(this.getValueByText(text));\r\n };\r\n DropDownList.prototype.getElementByValue = function (value) {\r\n var item;\r\n var listItems = this.getItems();\r\n for (var _i = 0, listItems_1 = listItems; _i < listItems_1.length; _i++) {\r\n var liItem = listItems_1[_i];\r\n if (this.getFormattedValue(liItem.getAttribute('data-value')) === value) {\r\n item = liItem;\r\n break;\r\n }\r\n }\r\n return item;\r\n };\r\n DropDownList.prototype.initValue = function () {\r\n this.renderList();\r\n if (this.dataSource instanceof DataManager) {\r\n this.initRemoteRender = true;\r\n }\r\n else {\r\n this.updateValues();\r\n }\r\n };\r\n DropDownList.prototype.updateValues = function () {\r\n if (!isNullOrUndefined(this.value)) {\r\n this.setSelection(this.getElementByValue(this.value), null);\r\n }\r\n else if (this.text && isNullOrUndefined(this.value)) {\r\n var element = this.getElementByText(this.text);\r\n if (isNullOrUndefined(element)) {\r\n this.setProperties({ text: null });\r\n return;\r\n }\r\n else {\r\n this.setSelection(element, null);\r\n }\r\n }\r\n else {\r\n this.setSelection(this.liCollections[this.activeIndex], null);\r\n }\r\n this.setHiddenValue();\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n };\r\n DropDownList.prototype.onBlurHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var target = e.relatedTarget;\r\n var currentTarget = e.target;\r\n var isPreventBlur = this.isPreventBlur;\r\n this.isPreventBlur = false;\r\n //IE 11 - issue\r\n if (isPreventBlur && !this.isDocumentClick && this.isPopupOpen && (!isNullOrUndefined(currentTarget) ||\r\n !this.isFilterLayout() && isNullOrUndefined(target))) {\r\n if (this.getModuleName() === 'dropdownlist' && this.allowFiltering && this.isPopupOpen) {\r\n this.filterInput.focus();\r\n }\r\n else {\r\n this.targetElement().focus();\r\n }\r\n return;\r\n }\r\n if (this.isDocumentClick || (!isNullOrUndefined(this.popupObj)\r\n && document.body.contains(this.popupObj.element) &&\r\n this.popupObj.element.classList.contains(dropDownListClasses.mobileFilter))) {\r\n if (!this.beforePopupOpen) {\r\n this.isDocumentClick = false;\r\n }\r\n return;\r\n }\r\n if (((this.getModuleName() === 'dropdownlist' && !this.isFilterFocus && target !== this.inputElement)\r\n && (document.activeElement !== target || (document.activeElement === target &&\r\n currentTarget.classList.contains(dropDownListClasses.inputFocus)))) ||\r\n (isNullOrUndefined(target) && this.getModuleName() === 'dropdownlist' && this.allowFiltering &&\r\n currentTarget !== this.inputWrapper.container) || this.getModuleName() !== 'dropdownlist' &&\r\n !this.inputWrapper.container.contains(target) || this.isTabKey) {\r\n this.isDocumentClick = this.isPopupOpen ? true : false;\r\n this.focusOutAction(e);\r\n this.isTabKey = false;\r\n }\r\n if (this.isRequested && !this.isPopupOpen && !this.isPreventBlur) {\r\n this.isActive = false;\r\n this.beforePopupOpen = false;\r\n }\r\n };\r\n DropDownList.prototype.focusOutAction = function (e) {\r\n this.isInteracted = false;\r\n this.focusOut(e);\r\n this.onFocusOut();\r\n };\r\n DropDownList.prototype.onFocusOut = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.isSelected) {\r\n this.isSelectCustom = false;\r\n this.onChangeEvent(null);\r\n }\r\n this.floatLabelChange();\r\n this.dispatchEvent(this.hiddenElement, 'change');\r\n if (this.getModuleName() === 'dropdownlist' && this.element.tagName !== 'INPUT') {\r\n this.dispatchEvent(this.inputElement, 'blur');\r\n }\r\n if (this.inputWrapper.clearButton) {\r\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n this.trigger('blur');\r\n };\r\n DropDownList.prototype.onFocus = function (e) {\r\n if (!this.isInteracted) {\r\n this.isInteracted = true;\r\n var args = { isInteracted: e ? true : false, event: e };\r\n this.trigger('focus', args);\r\n }\r\n this.updateIconState();\r\n };\r\n DropDownList.prototype.resetValueHandler = function (e) {\r\n var formElement = closest(this.inputElement, 'form');\r\n if (formElement && e.target === formElement) {\r\n var val = (this.element.tagName === this.getNgDirective()) ? null : this.inputElement.getAttribute('value');\r\n this.text = val;\r\n }\r\n };\r\n DropDownList.prototype.wireEvent = function () {\r\n EventHandler.add(this.inputWrapper.container, 'mousedown', this.dropDownClick, this);\r\n EventHandler.add(this.inputWrapper.container, 'focus', this.focusIn, this);\r\n EventHandler.add(this.inputWrapper.container, 'keypress', this.onSearch, this);\r\n this.bindCommonEvent();\r\n };\r\n DropDownList.prototype.bindCommonEvent = function () {\r\n EventHandler.add(this.targetElement(), 'blur', this.onBlurHandler, this);\r\n var formElement = closest(this.inputElement, 'form');\r\n if (formElement) {\r\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\r\n }\r\n if (!Browser.isDevice) {\r\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\r\n keyAction: this.keyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\r\n });\r\n }\r\n else {\r\n this.keyboardModule = new KeyboardEvents(this.targetElement(), {\r\n keyAction: this.mobileKeyActionHandler.bind(this), keyConfigs: this.keyConfigure, eventName: 'keydown'\r\n });\r\n }\r\n this.bindClearEvent();\r\n };\r\n DropDownList.prototype.bindClearEvent = function () {\r\n if (this.showClearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown', this.resetHandler, this);\r\n }\r\n };\r\n DropDownList.prototype.unBindCommonEvent = function () {\r\n if (this.targetElement()) {\r\n EventHandler.remove(this.targetElement(), 'blur', this.onBlurHandler);\r\n }\r\n var formElement = this.inputElement && closest(this.inputElement, 'form');\r\n if (formElement) {\r\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\r\n }\r\n if (!Browser.isDevice) {\r\n this.keyboardModule.destroy();\r\n }\r\n if (this.showClearButton) {\r\n EventHandler.remove(this.inputWrapper.clearButton, 'mousedown', this.resetHandler);\r\n }\r\n };\r\n DropDownList.prototype.updateIconState = function () {\r\n if (this.showClearButton) {\r\n if (this.inputElement.value !== '' && !this.readonly) {\r\n removeClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n else {\r\n addClass([this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n }\r\n };\r\n /**\r\n * Event binding for list\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.wireListEvents = function () {\r\n EventHandler.add(this.list, 'click', this.onMouseClick, this);\r\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\r\n };\r\n DropDownList.prototype.onSearch = function (e) {\r\n if (e.charCode !== 32 && e.charCode !== 13) {\r\n if (this.list === undefined) {\r\n this.renderList();\r\n }\r\n this.searchKeyEvent = e;\r\n this.onServerIncrementalSearch(e);\r\n }\r\n };\r\n DropDownList.prototype.onServerIncrementalSearch = function (e) {\r\n if (!this.isRequested && !isNullOrUndefined(this.list) &&\r\n !isNullOrUndefined(this.list.querySelector('li')) && this.enabled && !this.readonly) {\r\n this.incrementalSearch(e);\r\n }\r\n };\r\n DropDownList.prototype.onMouseClick = function (e) {\r\n var target = e.target;\r\n var li = closest(target, '.' + dropDownBaseClasses.li);\r\n if (!this.isValidLI(li)) {\r\n return;\r\n }\r\n this.setSelection(li, e);\r\n if (Browser.isDevice && this.isFilterLayout()) {\r\n history.back();\r\n }\r\n else {\r\n var delay = 100;\r\n this.closePopup(delay);\r\n }\r\n };\r\n DropDownList.prototype.onMouseOver = function (e) {\r\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\r\n this.setHover(currentLi);\r\n };\r\n DropDownList.prototype.setHover = function (li) {\r\n if (this.enabled && this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.hover)) {\r\n this.removeHover();\r\n addClass([li], dropDownBaseClasses.hover);\r\n }\r\n };\r\n DropDownList.prototype.onMouseLeave = function () {\r\n this.removeHover();\r\n };\r\n DropDownList.prototype.removeHover = function () {\r\n if (this.list) {\r\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\r\n if (hoveredItem && hoveredItem.length) {\r\n removeClass(hoveredItem, dropDownBaseClasses.hover);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.isValidLI = function (li) {\r\n return (li && li.hasAttribute('role') && li.getAttribute('role') === 'option');\r\n };\r\n DropDownList.prototype.incrementalSearch = function (e) {\r\n if (this.liCollections.length > 0) {\r\n var li = incrementalSearch(e.charCode, this.liCollections, this.activeIndex, true, this.element.id);\r\n if (!isNullOrUndefined(li)) {\r\n this.setSelection(li, e);\r\n this.setScrollPosition();\r\n }\r\n }\r\n };\r\n /**\r\n * Hides the spinner loader.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.hideSpinner = function () {\r\n if (!isNullOrUndefined(this.spinnerElement)) {\r\n hideSpinner(this.spinnerElement);\r\n removeClass([this.spinnerElement], dropDownListClasses.disableIcon);\r\n this.spinnerElement.innerHTML = '';\r\n this.spinnerElement = null;\r\n }\r\n };\r\n /**\r\n * Shows the spinner loader.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.showSpinner = function () {\r\n if (isNullOrUndefined(this.spinnerElement)) {\r\n this.spinnerElement = Browser.isDevice && !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[1] ||\r\n !isNullOrUndefined(this.filterInputObj) && this.filterInputObj.buttons[0] || this.inputWrapper.buttons[0];\r\n addClass([this.spinnerElement], dropDownListClasses.disableIcon);\r\n createSpinner({\r\n target: this.spinnerElement,\r\n width: Browser.isDevice ? '16px' : '14px'\r\n }, this.createElement);\r\n showSpinner(this.spinnerElement);\r\n }\r\n };\r\n DropDownList.prototype.keyActionHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var preventAction = e.action === 'pageUp' || e.action === 'pageDown';\r\n var preventHomeEnd = this.getModuleName() !== 'dropdownlist' && (e.action === 'home' || e.action === 'end');\r\n this.isEscapeKey = e.action === 'escape';\r\n this.isTabKey = !this.isPopupOpen && e.action === 'tab';\r\n var isNavAction = e.action === 'down' || e.action === 'up' || e.action === 'home' || e.action === 'end';\r\n var isNavigation = (e.action === 'down' || e.action === 'up' || e.action === 'pageUp' || e.action === 'pageDown'\r\n || e.action === 'home' || e.action === 'end');\r\n if ((this.isEditTextBox() || preventAction || preventHomeEnd) && !this.isPopupOpen) {\r\n return;\r\n }\r\n if (!this.readonly) {\r\n var isTabAction = e.action === 'tab' || e.action === 'close';\r\n if (this.list === undefined && !this.isRequested && !isTabAction && e.action !== 'escape') {\r\n this.searchKeyEvent = e;\r\n this.renderList();\r\n }\r\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\r\n isNavigation && this.liCollections.length === 0) || this.isRequested) {\r\n return;\r\n }\r\n if ((isTabAction && this.getModuleName() !== 'autocomplete') && this.isPopupOpen\r\n || e.action === 'escape') {\r\n e.preventDefault();\r\n }\r\n this.isSelected = e.action === 'escape' ? false : this.isSelected;\r\n this.isTyped = (isNavigation || e.action === 'escape') ? false : this.isTyped;\r\n switch (e.action) {\r\n case 'down':\r\n case 'up':\r\n this.updateUpDownAction(e);\r\n break;\r\n case 'pageUp':\r\n this.pageUpSelection(this.activeIndex - this.getPageCount(), e);\r\n e.preventDefault();\r\n break;\r\n case 'pageDown':\r\n this.pageDownSelection(this.activeIndex + this.getPageCount(), e);\r\n e.preventDefault();\r\n break;\r\n case 'home':\r\n this.updateHomeEndAction(e);\r\n break;\r\n case 'end':\r\n this.updateHomeEndAction(e);\r\n break;\r\n case 'space':\r\n if (this.getModuleName() === 'dropdownlist') {\r\n if (!this.beforePopupOpen) {\r\n this.showPopup();\r\n }\r\n }\r\n break;\r\n case 'open':\r\n this.showPopup();\r\n break;\r\n case 'hide':\r\n this.preventAltUp = this.isPopupOpen;\r\n this.hidePopup(e);\r\n this.focusDropDown(e);\r\n break;\r\n case 'enter':\r\n this.selectCurrentItem(e);\r\n break;\r\n case 'tab':\r\n this.selectCurrentValueOnTab(e);\r\n break;\r\n case 'escape':\r\n case 'close':\r\n if (this.isPopupOpen) {\r\n this.hidePopup(e);\r\n this.focusDropDown(e);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n DropDownList.prototype.updateUpDownAction = function (e) {\r\n var focusEle = this.list.querySelector('.' + dropDownListClasses.focus);\r\n if (this.isSelectFocusItem(focusEle)) {\r\n this.setSelection(focusEle, e);\r\n }\r\n else if (!isNullOrUndefined(this.liCollections)) {\r\n var index = e.action === 'down' ? this.activeIndex + 1 : this.activeIndex - 1;\r\n var startIndex = 0;\r\n if (this.getModuleName() === 'autocomplete') {\r\n startIndex = e.action === 'down' && isNullOrUndefined(this.activeIndex) ? 0 : this.liCollections.length - 1;\r\n index = index < 0 ? this.liCollections.length - 1 : index === this.liCollections.length ? 0 : index;\r\n }\r\n var nextItem = isNullOrUndefined(this.activeIndex) ? this.liCollections[startIndex] : this.liCollections[index];\r\n if (!isNullOrUndefined(nextItem)) {\r\n this.setSelection(nextItem, e);\r\n }\r\n }\r\n e.preventDefault();\r\n };\r\n DropDownList.prototype.updateHomeEndAction = function (e) {\r\n if (this.getModuleName() === 'dropdownlist') {\r\n var findLi = 0;\r\n if (e.action === 'home') {\r\n findLi = 0;\r\n }\r\n else {\r\n findLi = this.getItems().length - 1;\r\n }\r\n e.preventDefault();\r\n if (this.activeIndex === findLi) {\r\n return;\r\n }\r\n this.setSelection(this.liCollections[findLi], e);\r\n }\r\n };\r\n DropDownList.prototype.selectCurrentValueOnTab = function (e) {\r\n if (this.getModuleName() === 'autocomplete') {\r\n this.selectCurrentItem(e);\r\n }\r\n else {\r\n if (this.isPopupOpen) {\r\n this.hidePopup(e);\r\n this.focusDropDown(e);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.mobileKeyActionHandler = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if ((this.isEditTextBox()) && !this.isPopupOpen) {\r\n return;\r\n }\r\n if (!this.readonly) {\r\n if (this.list === undefined && !this.isRequested) {\r\n this.searchKeyEvent = e;\r\n this.renderList();\r\n }\r\n if (isNullOrUndefined(this.list) || (!isNullOrUndefined(this.liCollections) &&\r\n this.liCollections.length === 0) || this.isRequested) {\r\n return;\r\n }\r\n if (e.action === 'enter') {\r\n this.selectCurrentItem(e);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.selectCurrentItem = function (e) {\r\n if (this.isPopupOpen) {\r\n var li = this.list.querySelector('.' + dropDownListClasses.focus);\r\n if (li) {\r\n this.setSelection(li, e);\r\n this.isTyped = false;\r\n }\r\n if (this.isSelected) {\r\n this.isSelectCustom = false;\r\n this.onChangeEvent(e);\r\n }\r\n this.hidePopup();\r\n this.focusDropDown(e);\r\n }\r\n else {\r\n this.showPopup();\r\n }\r\n };\r\n DropDownList.prototype.isSelectFocusItem = function (element) {\r\n return !isNullOrUndefined(element);\r\n };\r\n DropDownList.prototype.getPageCount = function () {\r\n var liHeight = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\r\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\r\n return Math.round(this.list.getBoundingClientRect().height / parseInt(liHeight, 10));\r\n };\r\n DropDownList.prototype.pageUpSelection = function (steps, event) {\r\n var previousItem = steps >= 0 ? this.liCollections[steps + 1] : this.liCollections[0];\r\n this.setSelection(previousItem, event);\r\n };\r\n DropDownList.prototype.pageDownSelection = function (steps, event) {\r\n var list = this.getItems();\r\n var previousItem = steps <= list.length ? this.liCollections[steps - 1] : this.liCollections[list.length - 1];\r\n this.setSelection(previousItem, event);\r\n };\r\n DropDownList.prototype.unWireEvent = function () {\r\n EventHandler.remove(this.inputWrapper.container, 'mousedown', this.dropDownClick);\r\n EventHandler.remove(this.inputWrapper.container, 'keypress', this.onSearch);\r\n EventHandler.remove(this.inputWrapper.container, 'focus', this.focusIn);\r\n this.unBindCommonEvent();\r\n };\r\n /**\r\n * Event un binding for list items.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.unWireListEvents = function () {\r\n EventHandler.remove(this.list, 'click', this.onMouseClick);\r\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\r\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\r\n };\r\n DropDownList.prototype.checkSelector = function (id) {\r\n return '[id=\"' + id.replace(/(:|\\.|\\[|\\]|,|=|@|\\\\|\\/|#)/g, '\\\\$1') + '\"]';\r\n };\r\n DropDownList.prototype.onDocumentClick = function (e) {\r\n var target = e.target;\r\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, this.checkSelector(this.popupObj.element.id))) &&\r\n !this.inputWrapper.container.contains(e.target)) {\r\n if (this.inputWrapper.container.classList.contains(dropDownListClasses.inputFocus) || this.isPopupOpen) {\r\n this.isDocumentClick = true;\r\n var isActive = this.isRequested;\r\n this.isInteracted = false;\r\n this.hidePopup(e);\r\n if (!isActive) {\r\n this.onFocusOut();\r\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\r\n }\r\n }\r\n }\r\n else if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput)\r\n && !(this.getModuleName() === 'combobox' &&\r\n !this.allowFiltering && Browser.isDevice && target === this.inputWrapper.buttons[0])) {\r\n this.isPreventBlur = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.targetElement() ||\r\n document.activeElement === this.filterInput);\r\n e.preventDefault();\r\n }\r\n };\r\n DropDownList.prototype.activeStateChange = function () {\r\n if (this.isDocumentClick) {\r\n this.hidePopup();\r\n this.onFocusOut();\r\n this.inputWrapper.container.classList.remove(dropDownListClasses.inputFocus);\r\n }\r\n };\r\n DropDownList.prototype.focusDropDown = function (e) {\r\n if (!this.initial && this.isFilterLayout()) {\r\n this.focusIn(e);\r\n }\r\n };\r\n DropDownList.prototype.dropDownClick = function (e) {\r\n if (e.which === 3 || e.button === 2) {\r\n return;\r\n }\r\n if (this.targetElement().classList.contains(dropDownListClasses.disable) || this.inputWrapper.clearButton === e.target) {\r\n return;\r\n }\r\n var target = e.target;\r\n if (target !== this.inputElement && !(this.allowFiltering && target === this.filterInput) && this.getModuleName() !== 'combobox') {\r\n e.preventDefault();\r\n }\r\n if (!this.readonly) {\r\n if (this.isPopupOpen) {\r\n this.hidePopup();\r\n if (this.isFilterLayout()) {\r\n this.focusDropDown(e);\r\n }\r\n }\r\n else {\r\n this.focusIn(e);\r\n this.floatLabelChange();\r\n this.queryString = this.inputElement.value.trim() === '' ? null : this.inputElement.value;\r\n this.isDropDownClick = true;\r\n this.showPopup();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var proxy_1 = this;\r\n // eslint-disable-next-line max-len\r\n var duration = (this.element.tagName === this.getNgDirective() && this.itemTemplate) ? 500 : 100;\r\n if (!this.isSecondClick) {\r\n setTimeout(function () {\r\n proxy_1.cloneElements();\r\n proxy_1.isSecondClick = true;\r\n }, duration);\r\n }\r\n }\r\n else {\r\n this.focusIn(e);\r\n }\r\n };\r\n DropDownList.prototype.cloneElements = function () {\r\n if (this.list) {\r\n var ulElement = this.list.querySelector('ul');\r\n if (ulElement) {\r\n ulElement = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\r\n this.actionCompleteData.ulElement = ulElement;\r\n }\r\n }\r\n };\r\n DropDownList.prototype.updateSelectedItem = function (li, e, preventSelect, isSelection) {\r\n var _this = this;\r\n this.removeSelection();\r\n li.classList.add(dropDownBaseClasses.selected);\r\n this.removeHover();\r\n var value = this.getFormattedValue(li.getAttribute('data-value'));\r\n var selectedData = this.getDataByValue(value);\r\n if (!this.initial && !preventSelect && !isNullOrUndefined(e)) {\r\n var items = this.detachChanges(selectedData);\r\n this.isSelected = true;\r\n var eventArgs = {\r\n e: e,\r\n item: li,\r\n itemData: items,\r\n isInteracted: e ? true : false,\r\n cancel: false\r\n };\r\n this.trigger('select', eventArgs, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n li.classList.remove(dropDownBaseClasses.selected);\r\n }\r\n else {\r\n _this.selectEventCallback(li, e, preventSelect, selectedData, value);\r\n if (isSelection) {\r\n _this.setSelectOptions(li, e);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.selectEventCallback(li, e, preventSelect, selectedData, value);\r\n if (isSelection) {\r\n this.setSelectOptions(li, e);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.selectEventCallback = function (li, e, preventSelect, selectedData, value) {\r\n this.previousItemData = (!isNullOrUndefined(this.itemData)) ? this.itemData : null;\r\n this.item = li;\r\n this.itemData = selectedData;\r\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\r\n if (focusedItem) {\r\n removeClass([focusedItem], dropDownBaseClasses.focus);\r\n }\r\n li.setAttribute('aria-selected', 'true');\r\n this.activeIndex = this.getIndexByValue(value);\r\n };\r\n DropDownList.prototype.activeItem = function (li) {\r\n if (this.isValidLI(li) && !li.classList.contains(dropDownBaseClasses.selected)) {\r\n this.removeSelection();\r\n li.classList.add(dropDownBaseClasses.selected);\r\n this.removeHover();\r\n li.setAttribute('aria-selected', 'true');\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownList.prototype.setValue = function (e) {\r\n var dataItem = this.getItemData();\r\n if (dataItem.value === null) {\r\n Input.setValue(null, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n else {\r\n Input.setValue(dataItem.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n if (this.valueTemplate && this.itemData !== null) {\r\n this.setValueTemplate();\r\n }\r\n else if (!isNullOrUndefined(this.valueTempElement) && this.inputElement.previousSibling === this.valueTempElement) {\r\n detach(this.valueTempElement);\r\n this.inputElement.style.display = 'block';\r\n }\r\n var clearIcon = dropDownListClasses.clearIcon;\r\n var isFilterElement = this.isFiltering() && this.filterInput && (this.getModuleName() === 'combobox');\r\n var clearElement = isFilterElement && this.filterInput.parentElement.querySelector('.' + clearIcon);\r\n if (this.isFiltering() && clearElement) {\r\n clearElement.style.removeProperty('visibility');\r\n }\r\n if (this.previousValue === dataItem.value) {\r\n this.isSelected = false;\r\n return true;\r\n }\r\n else {\r\n this.isSelected = !this.initial ? true : false;\r\n this.isSelectCustom = false;\r\n if (this.getModuleName() === 'dropdownlist') {\r\n this.updateIconState();\r\n }\r\n return false;\r\n }\r\n };\r\n DropDownList.prototype.setSelection = function (li, e) {\r\n if (this.isValidLI(li) && (!li.classList.contains(dropDownBaseClasses.selected) || (this.isPopupOpen && this.isSelected\r\n && li.classList.contains(dropDownBaseClasses.selected)))) {\r\n this.updateSelectedItem(li, e, false, true);\r\n }\r\n else {\r\n this.setSelectOptions(li, e);\r\n }\r\n };\r\n DropDownList.prototype.setSelectOptions = function (li, e) {\r\n if (this.list) {\r\n this.removeHover();\r\n }\r\n this.previousSelectedLI = (!isNullOrUndefined(this.selectedLI)) ? this.selectedLI : null;\r\n this.selectedLI = li;\r\n if (this.setValue(e)) {\r\n return;\r\n }\r\n if (this.isPopupOpen) {\r\n attributes(this.targetElement(), { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });\r\n if (this.isFilterLayout() && this.filterInput) {\r\n attributes(this.filterInput, { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });\r\n }\r\n }\r\n if ((!this.isPopupOpen && !isNullOrUndefined(li)) || (this.isPopupOpen && !isNullOrUndefined(e) &&\r\n (e.type !== 'keydown' || e.type === 'keydown' && e.action === 'enter'))) {\r\n this.isSelectCustom = false;\r\n this.onChangeEvent(e);\r\n }\r\n if (this.isPopupOpen && !isNullOrUndefined(this.selectedLI) && this.itemData !== null && (!e || e.type !== 'click')) {\r\n this.setScrollPosition(e);\r\n }\r\n if (Browser.info.name !== 'mozilla') {\r\n attributes(this.inputElement, { 'aria-label': this.inputElement.value });\r\n attributes(this.targetElement(), { 'aria-describedby': this.inputElement.id });\r\n this.targetElement().removeAttribute('aria-live');\r\n }\r\n };\r\n DropDownList.prototype.dropdownCompiler = function (dropdownTemplate) {\r\n var checkTemplate = false;\r\n if (dropdownTemplate) {\r\n try {\r\n checkTemplate = (document.querySelectorAll(dropdownTemplate).length) ? true : false;\r\n }\r\n catch (exception) {\r\n checkTemplate = false;\r\n }\r\n }\r\n return checkTemplate;\r\n };\r\n DropDownList.prototype.setValueTemplate = function () {\r\n var compiledString;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.clearTemplate(['valueTemplate']);\r\n }\r\n if (!this.valueTempElement) {\r\n this.valueTempElement = this.createElement('span', { className: dropDownListClasses.value });\r\n this.inputElement.parentElement.insertBefore(this.valueTempElement, this.inputElement);\r\n this.inputElement.style.display = 'none';\r\n }\r\n this.valueTempElement.innerHTML = '';\r\n var valuecheck = this.dropdownCompiler(this.valueTemplate);\r\n if (valuecheck) {\r\n compiledString = compile(document.querySelector(this.valueTemplate).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.valueTemplate);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var valueCompTemp = compiledString(this.itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, this.valueTempElement);\r\n if (valueCompTemp && valueCompTemp.length > 0) {\r\n for (var i = 0; i < valueCompTemp.length; i++) {\r\n this.valueTempElement.appendChild(valueCompTemp[i]);\r\n }\r\n }\r\n this.renderReactTemplates();\r\n };\r\n DropDownList.prototype.removeSelection = function () {\r\n if (this.list) {\r\n var selectedItems = this.list.querySelectorAll('.' + dropDownBaseClasses.selected);\r\n if (selectedItems.length) {\r\n removeClass(selectedItems, dropDownBaseClasses.selected);\r\n selectedItems[0].removeAttribute('aria-selected');\r\n }\r\n }\r\n };\r\n DropDownList.prototype.getItemData = function () {\r\n var fields = this.fields;\r\n var dataItem = null;\r\n dataItem = this.itemData;\r\n var dataValue;\r\n var dataText;\r\n if (!isNullOrUndefined(dataItem)) {\r\n dataValue = getValue(fields.value, dataItem);\r\n dataText = getValue(fields.text, dataItem);\r\n }\r\n var value = (!isNullOrUndefined(dataItem) &&\r\n !isUndefined(dataValue) ? dataValue : dataItem);\r\n var text = (!isNullOrUndefined(dataItem) &&\r\n !isUndefined(dataValue) ? dataText : dataItem);\r\n return { value: value, text: text };\r\n };\r\n /**\r\n * To trigger the change event for list.\r\n *\r\n * @param {MouseEvent | KeyboardEvent | TouchEvent} eve - Specifies the event arguments.\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.onChangeEvent = function (eve) {\r\n var dataItem = this.getItemData();\r\n var index = this.isSelectCustom ? null : this.activeIndex;\r\n this.setProperties({ 'index': index, 'text': dataItem.text, 'value': dataItem.value }, true);\r\n this.detachChangeEvent(eve);\r\n };\r\n DropDownList.prototype.detachChanges = function (value) {\r\n var items;\r\n if (typeof value === 'string' ||\r\n typeof value === 'boolean' ||\r\n typeof value === 'number') {\r\n items = Object.defineProperties({}, {\r\n value: {\r\n value: value,\r\n enumerable: true\r\n },\r\n text: {\r\n value: value,\r\n enumerable: true\r\n }\r\n });\r\n }\r\n else {\r\n items = value;\r\n }\r\n return items;\r\n };\r\n DropDownList.prototype.detachChangeEvent = function (eve) {\r\n this.isSelected = false;\r\n this.previousValue = this.value;\r\n this.activeIndex = this.index;\r\n this.typedString = !isNullOrUndefined(this.text) ? this.text : '';\r\n if (!this.initial) {\r\n var items = this.detachChanges(this.itemData);\r\n var preItems = void 0;\r\n if (typeof this.previousItemData === 'string' ||\r\n typeof this.previousItemData === 'boolean' ||\r\n typeof this.previousItemData === 'number') {\r\n preItems = Object.defineProperties({}, {\r\n value: {\r\n value: this.previousItemData,\r\n enumerable: true\r\n },\r\n text: {\r\n value: this.previousItemData,\r\n enumerable: true\r\n }\r\n });\r\n }\r\n else {\r\n preItems = this.previousItemData;\r\n }\r\n this.setHiddenValue();\r\n var eventArgs = {\r\n e: eve,\r\n item: this.item,\r\n itemData: items,\r\n previousItem: this.previousSelectedLI,\r\n previousItemData: preItems,\r\n isInteracted: eve ? true : false,\r\n value: this.value,\r\n element: this.element,\r\n event: eve\r\n };\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', eventArgs);\r\n }\r\n }\r\n if ((isNullOrUndefined(this.value) || this.value === '') && this.floatLabelType !== 'Always') {\r\n removeClass([this.inputWrapper.container], 'e-valid-input');\r\n }\r\n };\r\n DropDownList.prototype.setHiddenValue = function () {\r\n if (!isNullOrUndefined(this.value)) {\r\n if (this.hiddenElement.querySelector('option')) {\r\n var selectedElement = this.hiddenElement.querySelector('option');\r\n selectedElement.textContent = this.text;\r\n selectedElement.setAttribute('value', this.value.toString());\r\n }\r\n else {\r\n this.hiddenElement.innerHTML = '';\r\n var selectedElement = this.hiddenElement.querySelector('option');\r\n selectedElement.setAttribute('value', this.value.toString());\r\n }\r\n }\r\n else {\r\n this.hiddenElement.innerHTML = '';\r\n }\r\n };\r\n /**\r\n * Filter bar implementation\r\n *\r\n * @param {KeyboardEventArgs} e - Specifies the event arguments.\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.onFilterUp = function (e) {\r\n if (!(e.ctrlKey && e.keyCode === 86) && (this.isValidKey || e.keyCode === 40 || e.keyCode === 38)) {\r\n this.isValidKey = false;\r\n switch (e.keyCode) {\r\n case 38: //up arrow\r\n case 40: //down arrow\r\n if (this.getModuleName() === 'autocomplete' && !this.isPopupOpen && !this.preventAltUp && !this.isRequested) {\r\n this.preventAutoFill = true;\r\n this.searchLists(e);\r\n }\r\n else {\r\n this.preventAutoFill = false;\r\n }\r\n this.preventAltUp = false;\r\n e.preventDefault();\r\n break;\r\n case 46: //delete\r\n case 8: //backspace\r\n this.typedString = this.filterInput.value;\r\n if (!this.isPopupOpen && this.typedString !== '' || this.isPopupOpen && this.queryString.length > 0) {\r\n this.preventAutoFill = true;\r\n this.searchLists(e);\r\n }\r\n else if (this.typedString === '' && this.queryString === '' && this.getModuleName() !== 'autocomplete') {\r\n this.preventAutoFill = true;\r\n this.searchLists(e);\r\n }\r\n else if (this.typedString === '') {\r\n if (this.list) {\r\n this.resetFocusElement();\r\n }\r\n this.activeIndex = null;\r\n if (this.getModuleName() !== 'dropdownlist') {\r\n this.preventAutoFill = true;\r\n this.searchLists(e);\r\n if (this.getModuleName() === 'autocomplete') {\r\n this.hidePopup();\r\n }\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n default:\r\n this.typedString = this.filterInput.value;\r\n this.preventAutoFill = false;\r\n this.searchLists(e);\r\n break;\r\n }\r\n }\r\n else {\r\n this.isValidKey = false;\r\n }\r\n };\r\n DropDownList.prototype.onFilterDown = function (e) {\r\n switch (e.keyCode) {\r\n case 13: //enter\r\n break;\r\n case 40: //down arrow\r\n case 38: //up arrow\r\n this.queryString = this.filterInput.value;\r\n e.preventDefault();\r\n break;\r\n case 9: //tab\r\n if (this.isPopupOpen && this.getModuleName() !== 'autocomplete') {\r\n e.preventDefault();\r\n }\r\n break;\r\n default:\r\n this.prevSelectPoints = this.getSelectionPoints();\r\n this.queryString = this.filterInput.value;\r\n break;\r\n }\r\n };\r\n DropDownList.prototype.removeFillSelection = function () {\r\n if (this.isInteracted) {\r\n var selection = this.getSelectionPoints();\r\n this.inputElement.setSelectionRange(selection.end, selection.end);\r\n }\r\n };\r\n DropDownList.prototype.getQuery = function (query) {\r\n var filterQuery;\r\n if (!this.isCustomFilter && this.allowFiltering && this.filterInput) {\r\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\r\n var filterType = this.typedString === '' ? 'contains' : this.filterType;\r\n var dataType = this.typeOfData(this.dataSource).typeof;\r\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\r\n filterQuery.where('', filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n else {\r\n var fields = (this.fields.text) ? this.fields.text : '';\r\n filterQuery.where(fields, filterType, this.typedString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n }\r\n else {\r\n filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\r\n }\r\n return filterQuery;\r\n };\r\n DropDownList.prototype.getSelectionPoints = function () {\r\n var input = this.inputElement;\r\n return { start: Math.abs(input.selectionStart), end: Math.abs(input.selectionEnd) };\r\n };\r\n DropDownList.prototype.searchLists = function (e) {\r\n var _this = this;\r\n this.isTyped = true;\r\n this.activeIndex = null;\r\n this.isListSearched = true;\r\n if (this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon)) {\r\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\r\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\r\n }\r\n this.isDataFetched = false;\r\n if (this.isFiltering()) {\r\n var eventArgs_1 = {\r\n preventDefaultAction: false,\r\n text: this.filterInput.value,\r\n updateData: function (dataSource, query, fields) {\r\n if (eventArgs_1.cancel) {\r\n return;\r\n }\r\n _this.isCustomFilter = true;\r\n _this.filteringAction(dataSource, query, fields);\r\n },\r\n baseEventArgs: e,\r\n cancel: false\r\n };\r\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\r\n if (!eventArgs.cancel && !_this.isCustomFilter && !eventArgs.preventDefaultAction) {\r\n _this.filteringAction(_this.dataSource, null, _this.fields);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * To filter the data from given data source by using query\r\n *\r\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\r\n * @param {Query} query - Specify the query to filter the data.\r\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\r\n * @returns {void}\r\n\r\n */\r\n DropDownList.prototype.filter = function (dataSource, query, fields) {\r\n this.isCustomFilter = true;\r\n this.filteringAction(dataSource, query, fields);\r\n };\r\n DropDownList.prototype.filteringAction = function (dataSource, query, fields) {\r\n if (!isNullOrUndefined(this.filterInput)) {\r\n this.beforePopupOpen = (!this.isPopupOpen && this.getModuleName() === 'combobox' && this.filterInput.value === '') ?\r\n false : true;\r\n if (this.filterInput.value.trim() === '' && !this.itemTemplate) {\r\n this.actionCompleteData.isUpdated = false;\r\n this.isTyped = false;\r\n if (!isNullOrUndefined(this.actionCompleteData.ulElement) && !isNullOrUndefined(this.actionCompleteData.list)) {\r\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list);\r\n }\r\n this.isTyped = true;\r\n if (!isNullOrUndefined(this.itemData) && this.getModuleName() === 'dropdownlist') {\r\n this.focusIndexItem();\r\n this.setScrollPosition();\r\n }\r\n this.isNotSearchList = true;\r\n }\r\n else {\r\n this.isNotSearchList = false;\r\n query = (this.filterInput.value.trim() === '') ? null : query;\r\n this.resetList(dataSource, fields, query);\r\n }\r\n this.renderReactTemplates();\r\n }\r\n };\r\n DropDownList.prototype.setSearchBox = function (popupElement) {\r\n if (this.isFiltering()) {\r\n var parentElement = popupElement.querySelector('.' + dropDownListClasses.filterParent) ?\r\n popupElement.querySelector('.' + dropDownListClasses.filterParent) : this.createElement('span', {\r\n className: dropDownListClasses.filterParent\r\n });\r\n this.filterInput = this.createElement('input', {\r\n attrs: { type: 'text' },\r\n className: dropDownListClasses.filterInput\r\n });\r\n this.element.parentNode.insertBefore(this.filterInput, this.element);\r\n var backIcon = false;\r\n if (Browser.isDevice) {\r\n backIcon = true;\r\n }\r\n this.filterInputObj = Input.createInput({\r\n element: this.filterInput,\r\n buttons: backIcon ?\r\n [dropDownListClasses.backIcon, dropDownListClasses.filterBarClearIcon] : [dropDownListClasses.filterBarClearIcon],\r\n properties: { placeholder: this.filterBarPlaceholder }\r\n }, this.createElement);\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n if (this.cssClass.split(' ').indexOf('e-outline') !== -1) {\r\n addClass([this.filterInputObj.container], 'e-outline');\r\n }\r\n else if (this.cssClass.split(' ').indexOf('e-filled') !== -1) {\r\n addClass([this.filterInputObj.container], 'e-filled');\r\n }\r\n }\r\n append([this.filterInputObj.container], parentElement);\r\n prepend([parentElement], popupElement);\r\n attributes(this.filterInput, {\r\n 'aria-disabled': 'false',\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null,\r\n 'autocomplete': 'off',\r\n 'autocorrect': 'off',\r\n 'autocapitalize': 'off',\r\n 'spellcheck': 'false'\r\n });\r\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\r\n if (!Browser.isDevice && this.clearIconElement) {\r\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\r\n this.clearIconElement.style.visibility = 'hidden';\r\n }\r\n if (!Browser.isDevice) {\r\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigure,\r\n eventName: 'keydown'\r\n });\r\n }\r\n else {\r\n this.searchKeyModule = new KeyboardEvents(this.filterInput, {\r\n keyAction: this.mobileKeyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigure,\r\n eventName: 'keydown'\r\n });\r\n }\r\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\r\n EventHandler.add(this.filterInput, 'keyup', this.onFilterUp, this);\r\n EventHandler.add(this.filterInput, 'keydown', this.onFilterDown, this);\r\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\r\n EventHandler.add(this.filterInput, 'paste', this.pasteHandler, this);\r\n return this.filterInputObj;\r\n }\r\n else {\r\n return inputObject;\r\n }\r\n };\r\n DropDownList.prototype.onInput = function (e) {\r\n this.isValidKey = true;\r\n // For filtering works in mobile firefox.\r\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\r\n this.typedString = this.filterInput.value;\r\n this.preventAutoFill = true;\r\n this.searchLists(e);\r\n }\r\n };\r\n DropDownList.prototype.pasteHandler = function (e) {\r\n var _this = this;\r\n setTimeout(function () {\r\n _this.typedString = _this.filterInput.value;\r\n _this.searchLists(e);\r\n });\r\n };\r\n DropDownList.prototype.onActionFailure = function (e) {\r\n _super.prototype.onActionFailure.call(this, e);\r\n if (this.beforePopupOpen) {\r\n this.renderPopup();\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DropDownList.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\r\n var _this = this;\r\n if (this.isNotSearchList) {\r\n this.isNotSearchList = false;\r\n return;\r\n }\r\n if (this.isActive) {\r\n var selectedItem = this.selectedLI ? this.selectedLI.cloneNode(true) : null;\r\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\r\n this.updateSelectElementData(this.allowFiltering);\r\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent) && this.searchKeyEvent.type === 'keydown') {\r\n this.isRequested = false;\r\n this.keyActionHandler(this.searchKeyEvent);\r\n this.searchKeyEvent = null;\r\n }\r\n if (this.isRequested && !isNullOrUndefined(this.searchKeyEvent)) {\r\n this.incrementalSearch(this.searchKeyEvent);\r\n this.searchKeyEvent = null;\r\n }\r\n this.list.scrollTop = 0;\r\n if (!isNullOrUndefined(ulElement)) {\r\n attributes(ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\r\n }\r\n if (this.initRemoteRender) {\r\n this.initial = true;\r\n this.activeIndex = this.index;\r\n this.updateValues();\r\n this.initRemoteRender = false;\r\n this.initial = false;\r\n if (this.value && this.dataSource instanceof DataManager) {\r\n var checkField_1 = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\r\n var checkVal = list.some(function (x) { return x[checkField_1] === _this.value; });\r\n if (!checkVal) {\r\n this.dataSource.executeQuery(this.getQuery(this.query).where(new Predicate(checkField_1, 'equal', this.value)))\r\n .then(function (e) {\r\n if (e.result.length > 0) {\r\n _this.addItem(e.result, list.length);\r\n _this.updateValues();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n if (this.getModuleName() !== 'autocomplete' && this.isFiltering() && !this.isTyped) {\r\n if (!this.actionCompleteData.isUpdated || ((!this.isCustomFilter\r\n && !this.isFilterFocus) || (isNullOrUndefined(this.itemData) && this.allowFiltering)\r\n && ((this.dataSource instanceof DataManager)\r\n || (!isNullOrUndefined(this.dataSource) && !isNullOrUndefined(this.dataSource.length) &&\r\n this.dataSource.length !== 0)))) {\r\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\r\n setTimeout(function () {\r\n _this.updateActionCompleteDataValues(ulElement, list);\r\n }, 0);\r\n }\r\n else {\r\n this.updateActionCompleteDataValues(ulElement, list);\r\n }\r\n }\r\n this.addNewItem(list, selectedItem);\r\n if (!isNullOrUndefined(this.itemData)) {\r\n this.focusIndexItem();\r\n }\r\n }\r\n if (this.beforePopupOpen) {\r\n this.renderPopup();\r\n }\r\n }\r\n };\r\n DropDownList.prototype.updateActionCompleteDataValues = function (ulElement, list) {\r\n this.actionCompleteData = { ulElement: ulElement.cloneNode(true), list: list, isUpdated: true };\r\n if (isNullOrUndefined(this.actionData.ulElement) && isNullOrUndefined(this.actionData.list)) {\r\n this.actionData = this.actionCompleteData;\r\n }\r\n };\r\n DropDownList.prototype.addNewItem = function (listData, newElement) {\r\n var _this = this;\r\n if (!isNullOrUndefined(this.itemData) && !isNullOrUndefined(newElement)) {\r\n var value_1 = this.getItemData().value;\r\n var isExist = listData.some(function (data) {\r\n return (((typeof data === 'string' || typeof data === 'number') && data === value_1) ||\r\n (getValue(_this.fields.value, data) === value_1));\r\n });\r\n if (!isExist) {\r\n this.addItem(this.itemData);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.updateActionCompleteData = function (li, item, index) {\r\n var _this = this;\r\n if (this.getModuleName() !== 'autocomplete' && this.actionCompleteData.ulElement) {\r\n if (this.itemTemplate && this.element.tagName === 'EJS-COMBOBOX' && this.allowFiltering) {\r\n setTimeout(function () {\r\n _this.actionCompleteDataUpdate(li, item, index);\r\n }, 0);\r\n }\r\n else {\r\n this.actionCompleteDataUpdate(li, item, index);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.actionCompleteDataUpdate = function (li, item, index) {\r\n if (index != null) {\r\n this.actionCompleteData.ulElement.insertBefore(li.cloneNode(true), this.actionCompleteData.ulElement.childNodes[index]);\r\n }\r\n else {\r\n this.actionCompleteData.ulElement.appendChild(li.cloneNode(true));\r\n }\r\n if (this.isFiltering() && this.actionCompleteData.list.indexOf(item) < 0) {\r\n this.actionCompleteData.list.push(item);\r\n }\r\n };\r\n DropDownList.prototype.focusIndexItem = function () {\r\n var value = this.getItemData().value;\r\n this.activeIndex = this.getIndexByValue(value);\r\n var element = this.findListElement(this.list, 'li', 'data-value', value);\r\n this.selectedLI = element;\r\n this.activeItem(element);\r\n this.removeFocus();\r\n };\r\n DropDownList.prototype.updateSelection = function () {\r\n var selectedItem = this.list.querySelector('.' + dropDownBaseClasses.selected);\r\n if (selectedItem) {\r\n this.setProperties({ 'index': this.getIndexByValue(selectedItem.getAttribute('data-value')) });\r\n this.activeIndex = this.index;\r\n }\r\n else {\r\n this.removeFocus();\r\n this.list.querySelector('.' + dropDownBaseClasses.li).classList.add(dropDownListClasses.focus);\r\n }\r\n };\r\n DropDownList.prototype.removeFocus = function () {\r\n var highlightedItem = this.list.querySelectorAll('.' + dropDownListClasses.focus);\r\n if (highlightedItem && highlightedItem.length) {\r\n removeClass(highlightedItem, dropDownListClasses.focus);\r\n }\r\n };\r\n DropDownList.prototype.renderPopup = function () {\r\n var _this = this;\r\n if (this.popupObj && document.body.contains(this.popupObj.element)) {\r\n this.refreshPopup();\r\n return;\r\n }\r\n var args = { cancel: false };\r\n this.trigger('beforeOpen', args, function (args) {\r\n if (!args.cancel) {\r\n var popupEle = _this.createElement('div', {\r\n id: _this.element.id + '_popup', className: 'e-ddl e-popup ' + (_this.cssClass != null ? _this.cssClass : '')\r\n });\r\n var searchBox = _this.setSearchBox(popupEle);\r\n _this.listHeight = formatUnit(_this.popupHeight);\r\n if (_this.headerTemplate) {\r\n _this.setHeaderTemplate(popupEle);\r\n }\r\n append([_this.list], popupEle);\r\n if (_this.footerTemplate) {\r\n _this.setFooterTemplate(popupEle);\r\n }\r\n document.body.appendChild(popupEle);\r\n popupEle.style.visibility = 'hidden';\r\n if (_this.popupHeight !== 'auto') {\r\n _this.searchBoxHeight = 0;\r\n if (!isNullOrUndefined(searchBox.container)) {\r\n _this.searchBoxHeight = (searchBox.container.parentElement).getBoundingClientRect().height;\r\n _this.listHeight = (parseInt(_this.listHeight, 10) - (_this.searchBoxHeight)).toString() + 'px';\r\n }\r\n if (_this.headerTemplate) {\r\n _this.header = _this.header ? _this.header : popupEle.querySelector('.e-ddl-header');\r\n var height = Math.round(_this.header.getBoundingClientRect().height);\r\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\r\n }\r\n if (_this.footerTemplate) {\r\n _this.footer = _this.footer ? _this.footer : popupEle.querySelector('.e-ddl-footer');\r\n var height = Math.round(_this.footer.getBoundingClientRect().height);\r\n _this.listHeight = (parseInt(_this.listHeight, 10) - (height + _this.searchBoxHeight)).toString() + 'px';\r\n }\r\n _this.list.style.maxHeight = (parseInt(_this.listHeight, 10) - 2).toString() + 'px'; // due to box-sizing property\r\n popupEle.style.maxHeight = formatUnit(_this.popupHeight);\r\n }\r\n else {\r\n popupEle.style.height = 'auto';\r\n }\r\n var offsetValue = 0;\r\n var left = void 0;\r\n if (!isNullOrUndefined(_this.selectedLI) && (!isNullOrUndefined(_this.activeIndex) && _this.activeIndex >= 0)) {\r\n _this.setScrollPosition();\r\n }\r\n else {\r\n _this.list.scrollTop = 0;\r\n }\r\n if (Browser.isDevice && (!_this.allowFiltering && (_this.getModuleName() === 'dropdownlist' ||\r\n (_this.isDropDownClick && _this.getModuleName() === 'combobox')))) {\r\n offsetValue = _this.getOffsetValue(popupEle);\r\n var firstItem = _this.isEmptyList() ? _this.list : _this.liCollections[0];\r\n left = -(parseInt(getComputedStyle(firstItem).textIndent, 10) -\r\n parseInt(getComputedStyle(_this.inputElement).paddingLeft, 10) +\r\n parseInt(getComputedStyle(_this.inputElement.parentElement).borderLeftWidth, 10));\r\n }\r\n _this.getFocusElement();\r\n _this.createPopup(popupEle, offsetValue, left);\r\n _this.checkCollision(popupEle);\r\n if (Browser.isDevice) {\r\n _this.popupObj.element.classList.add(dropDownListClasses.device);\r\n if (_this.getModuleName() === 'dropdownlist' || (_this.getModuleName() === 'combobox'\r\n && !_this.allowFiltering && _this.isDropDownClick)) {\r\n _this.popupObj.collision = { X: 'fit', Y: 'fit' };\r\n }\r\n if (_this.isFilterLayout()) {\r\n _this.popupObj.element.classList.add(dropDownListClasses.mobileFilter);\r\n _this.popupObj.position = { X: 0, Y: 0 };\r\n _this.popupObj.dataBind();\r\n attributes(_this.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\r\n addClass([document.body, _this.popupObj.element], dropDownListClasses.popupFullScreen);\r\n _this.setSearchBoxPosition();\r\n _this.backIconElement = searchBox.container.querySelector('.e-back-icon');\r\n _this.clearIconElement = searchBox.container.querySelector('.' + dropDownListClasses.clearIcon);\r\n EventHandler.add(_this.backIconElement, 'click', _this.clickOnBackIcon, _this);\r\n EventHandler.add(_this.clearIconElement, 'click', _this.clearText, _this);\r\n }\r\n }\r\n popupEle.style.visibility = 'visible';\r\n addClass([popupEle], 'e-popup-close');\r\n var scrollParentElements = _this.popupObj.getScrollableParent(_this.inputWrapper.container);\r\n for (var _i = 0, scrollParentElements_1 = scrollParentElements; _i < scrollParentElements_1.length; _i++) {\r\n var element = scrollParentElements_1[_i];\r\n EventHandler.add(element, 'scroll', _this.scrollHandler, _this);\r\n }\r\n if (Browser.isDevice && _this.isFilterLayout()) {\r\n EventHandler.add(_this.list, 'scroll', _this.listScroll, _this);\r\n }\r\n if (!isNullOrUndefined(_this.list)) {\r\n _this.unWireListEvents();\r\n _this.wireListEvents();\r\n }\r\n attributes(_this.targetElement(), { 'aria-expanded': 'true' });\r\n var inputParent = _this.isFiltering() ? _this.filterInput.parentElement : _this.inputWrapper.container;\r\n addClass([inputParent], [dropDownListClasses.inputFocus]);\r\n var animModel = { name: 'FadeIn', duration: 100 };\r\n _this.beforePopupOpen = true;\r\n var popupInstance = _this.popupObj;\r\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel };\r\n _this.trigger('open', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n addClass([_this.inputWrapper.container], [dropDownListClasses.iconAnimation]);\r\n _this.renderReactTemplates();\r\n _this.popupObj.show(new Animation(eventArgs.animation), (_this.zIndex === 1000) ? _this.element : null);\r\n }\r\n else {\r\n _this.beforePopupOpen = false;\r\n _this.destroyPopup();\r\n }\r\n });\r\n }\r\n else {\r\n _this.beforePopupOpen = false;\r\n }\r\n });\r\n };\r\n DropDownList.prototype.checkCollision = function (popupEle) {\r\n if (!Browser.isDevice || (Browser.isDevice && !(this.getModuleName() === 'dropdownlist' || this.isDropDownClick))) {\r\n var collision = isCollide(popupEle);\r\n if (collision.length > 0) {\r\n popupEle.style.marginTop = -parseInt(getComputedStyle(popupEle).marginTop, 10) + 'px';\r\n }\r\n this.popupObj.resolveCollision();\r\n }\r\n };\r\n DropDownList.prototype.getOffsetValue = function (popupEle) {\r\n var popupStyles = getComputedStyle(popupEle);\r\n var borderTop = parseInt(popupStyles.borderTopWidth, 10);\r\n var borderBottom = parseInt(popupStyles.borderBottomWidth, 10);\r\n return this.setPopupPosition(borderTop + borderBottom);\r\n };\r\n DropDownList.prototype.createPopup = function (element, offsetValue, left) {\r\n var _this = this;\r\n this.popupObj = new Popup(element, {\r\n width: this.setWidth(), targetType: 'relative',\r\n relateTo: this.inputWrapper.container, collision: { X: 'flip', Y: 'flip' }, offsetY: offsetValue,\r\n enableRtl: this.enableRtl, offsetX: left, position: { X: 'left', Y: 'bottom' },\r\n zIndex: this.zIndex,\r\n close: function () {\r\n if (!_this.isDocumentClick) {\r\n _this.focusDropDown();\r\n }\r\n // eslint-disable-next-line\r\n if (_this.isReact) {\r\n _this.clearTemplate(['headerTemplate', 'footerTemplate']);\r\n }\r\n var isResetItem = (_this.getModuleName() === 'autocomplete') ? true : false;\r\n _this.isNotSearchList = false;\r\n _this.isDocumentClick = false;\r\n _this.destroyPopup();\r\n if (_this.isFiltering() && _this.actionCompleteData.list && _this.actionCompleteData.list[0]) {\r\n _this.isActive = true;\r\n _this.onActionComplete(_this.actionCompleteData.ulElement, _this.actionCompleteData.list, null, true);\r\n }\r\n },\r\n open: function () {\r\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\r\n _this.isPopupOpen = true;\r\n var actionList = _this.actionCompleteData && _this.actionCompleteData.ulElement &&\r\n _this.actionCompleteData.ulElement.querySelector('li');\r\n var ulElement = _this.list.querySelector('ul li');\r\n if (_this.isFiltering() && _this.itemTemplate && (_this.element.tagName === _this.getNgDirective()) &&\r\n (actionList && ulElement && actionList.textContent !== ulElement.textContent) &&\r\n _this.element.tagName !== 'EJS-COMBOBOX') {\r\n _this.cloneElements();\r\n }\r\n if (_this.isFilterLayout()) {\r\n removeClass([_this.inputWrapper.container], [dropDownListClasses.inputFocus]);\r\n _this.isFilterFocus = true;\r\n _this.filterInput.focus();\r\n if (_this.inputWrapper.clearButton) {\r\n addClass([_this.inputWrapper.clearButton], dropDownListClasses.clearIconHide);\r\n }\r\n }\r\n _this.activeStateChange();\r\n },\r\n targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hidePopup();\r\n }\r\n }\r\n });\r\n };\r\n DropDownList.prototype.isEmptyList = function () {\r\n return !isNullOrUndefined(this.liCollections) && this.liCollections.length === 0;\r\n };\r\n DropDownList.prototype.getFocusElement = function () {\r\n // combo-box used this method\r\n };\r\n DropDownList.prototype.isFilterLayout = function () {\r\n return this.getModuleName() === 'dropdownlist' && this.allowFiltering;\r\n };\r\n DropDownList.prototype.scrollHandler = function () {\r\n if (Browser.isDevice && ((this.getModuleName() === 'dropdownlist' &&\r\n !this.isFilterLayout()) || (this.getModuleName() === 'combobox' && !this.allowFiltering && this.isDropDownClick))) {\r\n this.hidePopup();\r\n }\r\n };\r\n DropDownList.prototype.setSearchBoxPosition = function () {\r\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\r\n this.popupObj.element.style.maxHeight = '100%';\r\n this.popupObj.element.style.width = '100%';\r\n this.list.style.maxHeight = (window.innerHeight - searchBoxHeight) + 'px';\r\n this.list.style.height = (window.innerHeight - searchBoxHeight) + 'px';\r\n var clearElement = this.filterInput.parentElement.querySelector('.' + dropDownListClasses.clearIcon);\r\n detach(this.filterInput);\r\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\r\n };\r\n DropDownList.prototype.setPopupPosition = function (border) {\r\n var offsetValue;\r\n var popupOffset = border;\r\n var selectedLI = this.list.querySelector('.' + dropDownListClasses.focus) || this.selectedLI;\r\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\r\n var lastItem = this.isEmptyList() ? this.list : this.liCollections[this.getItems().length - 1];\r\n var liHeight = firstItem.getBoundingClientRect().height;\r\n var listHeight = this.list.offsetHeight / 2;\r\n var height = isNullOrUndefined(selectedLI) ? firstItem.offsetTop : selectedLI.offsetTop;\r\n var lastItemOffsetValue = lastItem.offsetTop;\r\n if (lastItemOffsetValue - listHeight < height && !isNullOrUndefined(this.liCollections) &&\r\n this.liCollections.length > 0 && !isNullOrUndefined(selectedLI)) {\r\n var count = this.list.offsetHeight / liHeight;\r\n var paddingBottom = parseInt(getComputedStyle(this.list).paddingBottom, 10);\r\n offsetValue = (count - (this.liCollections.length - this.activeIndex)) * liHeight - popupOffset + paddingBottom;\r\n this.list.scrollTop = selectedLI.offsetTop;\r\n }\r\n else if (height > listHeight) {\r\n offsetValue = listHeight - liHeight / 2;\r\n this.list.scrollTop = height - listHeight + liHeight / 2;\r\n }\r\n else {\r\n offsetValue = height;\r\n }\r\n var inputHeight = this.inputWrapper.container.offsetHeight;\r\n offsetValue = offsetValue + liHeight + popupOffset - ((liHeight - inputHeight) / 2);\r\n return -offsetValue;\r\n };\r\n DropDownList.prototype.setWidth = function () {\r\n var width = formatUnit(this.popupWidth);\r\n if (width.indexOf('%') > -1) {\r\n var inputWidth = this.inputWrapper.container.offsetWidth * parseFloat(width) / 100;\r\n width = inputWidth.toString() + 'px';\r\n }\r\n if (Browser.isDevice && (!this.allowFiltering && (this.getModuleName() === 'dropdownlist' ||\r\n (this.isDropDownClick && this.getModuleName() === 'combobox')))) {\r\n var firstItem = this.isEmptyList() ? this.list : this.liCollections[0];\r\n width = (parseInt(width, 10) + (parseInt(getComputedStyle(firstItem).textIndent, 10) -\r\n parseInt(getComputedStyle(this.inputElement).paddingLeft, 10) +\r\n parseInt(getComputedStyle(this.inputElement.parentElement).borderLeftWidth, 10)) * 2) + 'px';\r\n }\r\n return width;\r\n };\r\n DropDownList.prototype.scrollBottom = function (isInitial) {\r\n if (!isNullOrUndefined(this.selectedLI)) {\r\n var currentOffset = this.list.offsetHeight;\r\n var nextBottom = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\r\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\r\n nextOffset = isInitial ? nextOffset + parseInt(getComputedStyle(this.list).paddingTop, 10) * 2 : nextOffset;\r\n var boxRange = this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop;\r\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\r\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\r\n if (this.activeIndex === 0) {\r\n this.list.scrollTop = 0;\r\n }\r\n else if (nextBottom > currentOffset || !(boxRange > 0 && this.list.offsetHeight > boxRange)) {\r\n this.list.scrollTop = nextOffset;\r\n }\r\n }\r\n };\r\n DropDownList.prototype.scrollTop = function () {\r\n if (!isNullOrUndefined(this.selectedLI)) {\r\n var nextOffset = this.selectedLI.offsetTop - this.list.scrollTop;\r\n nextOffset = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\r\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\r\n var boxRange = (this.selectedLI.offsetTop + this.selectedLI.offsetHeight - this.list.scrollTop);\r\n if (this.activeIndex === 0) {\r\n this.list.scrollTop = 0;\r\n }\r\n else if (nextOffset < 0) {\r\n this.list.scrollTop = this.list.scrollTop + nextOffset;\r\n }\r\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\r\n this.list.scrollTop = this.selectedLI.offsetTop - (this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\r\n this.fixedHeaderElement.offsetHeight : 0);\r\n }\r\n }\r\n };\r\n DropDownList.prototype.isEditTextBox = function () {\r\n return false;\r\n };\r\n DropDownList.prototype.isFiltering = function () {\r\n return this.allowFiltering;\r\n };\r\n DropDownList.prototype.isPopupButton = function () {\r\n return true;\r\n };\r\n DropDownList.prototype.setScrollPosition = function (e) {\r\n if (!isNullOrUndefined(e)) {\r\n switch (e.action) {\r\n case 'pageDown':\r\n case 'down':\r\n case 'end':\r\n this.scrollBottom();\r\n break;\r\n default:\r\n this.scrollTop();\r\n break;\r\n }\r\n }\r\n else {\r\n this.scrollBottom(true);\r\n }\r\n };\r\n DropDownList.prototype.clearText = function () {\r\n this.filterInput.value = this.typedString = '';\r\n this.searchLists(null);\r\n };\r\n DropDownList.prototype.listScroll = function () {\r\n this.filterInput.blur();\r\n };\r\n DropDownList.prototype.setEleWidth = function (width) {\r\n if (!isNullOrUndefined(width)) {\r\n if (typeof width === 'number') {\r\n this.inputWrapper.container.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n this.inputWrapper.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n }\r\n }\r\n };\r\n DropDownList.prototype.closePopup = function (delay) {\r\n var _this = this;\r\n this.isTyped = false;\r\n if (!(this.popupObj && document.body.contains(this.popupObj.element) && this.beforePopupOpen)) {\r\n return;\r\n }\r\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\r\n this.isActive = false;\r\n this.filterInputObj = null;\r\n this.isDropDownClick = false;\r\n this.preventAutoFill = false;\r\n var scrollableParentElements = this.popupObj.getScrollableParent(this.inputWrapper.container);\r\n for (var _i = 0, scrollableParentElements_1 = scrollableParentElements; _i < scrollableParentElements_1.length; _i++) {\r\n var element = scrollableParentElements_1[_i];\r\n EventHandler.remove(element, 'scroll', this.scrollHandler);\r\n }\r\n if (Browser.isDevice && this.isFilterLayout()) {\r\n removeClass([document.body, this.popupObj.element], dropDownListClasses.popupFullScreen);\r\n EventHandler.remove(this.list, 'scroll', this.listScroll);\r\n }\r\n if (this.isFilterLayout()) {\r\n if (!Browser.isDevice) {\r\n this.searchKeyModule.destroy();\r\n if (this.clearIconElement) {\r\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\r\n }\r\n }\r\n if (this.backIconElement) {\r\n EventHandler.remove(this.backIconElement, 'click', this.clickOnBackIcon);\r\n EventHandler.remove(this.clearIconElement, 'click', this.clearText);\r\n }\r\n EventHandler.remove(this.filterInput, 'input', this.onInput);\r\n EventHandler.remove(this.filterInput, 'keyup', this.onFilterUp);\r\n EventHandler.remove(this.filterInput, 'keydown', this.onFilterDown);\r\n EventHandler.remove(this.filterInput, 'blur', this.onBlurHandler);\r\n EventHandler.remove(this.filterInput, 'paste', this.pasteHandler);\r\n this.filterInput = null;\r\n }\r\n attributes(this.targetElement(), { 'aria-expanded': 'false', 'aria-activedescendant': null });\r\n this.inputWrapper.container.classList.remove(dropDownListClasses.iconAnimation);\r\n if (this.isFiltering()) {\r\n this.actionCompleteData.isUpdated = false;\r\n }\r\n this.beforePopupOpen = false;\r\n var animModel = {\r\n name: 'FadeOut',\r\n duration: 100,\r\n delay: delay ? delay : 0\r\n };\r\n var popupInstance = this.popupObj;\r\n var eventArgs = { popup: popupInstance, cancel: false, animation: animModel };\r\n this.trigger('close', eventArgs, function (eventArgs) {\r\n if (!isNullOrUndefined(_this.popupObj) &&\r\n !isNullOrUndefined(_this.popupObj.element.querySelector('.e-fixed-head'))) {\r\n var fixedHeader = _this.popupObj.element.querySelector('.e-fixed-head');\r\n fixedHeader.parentNode.removeChild(fixedHeader);\r\n _this.fixedHeaderElement = null;\r\n }\r\n if (!eventArgs.cancel) {\r\n if (_this.getModuleName() === 'autocomplete') {\r\n _this.rippleFun();\r\n }\r\n if (_this.isPopupOpen) {\r\n _this.popupObj.hide(new Animation(eventArgs.animation));\r\n }\r\n else {\r\n _this.destroyPopup();\r\n }\r\n }\r\n });\r\n };\r\n DropDownList.prototype.destroyPopup = function () {\r\n this.isPopupOpen = false;\r\n this.isFilterFocus = false;\r\n this.popupObj.destroy();\r\n detach(this.popupObj.element);\r\n };\r\n DropDownList.prototype.clickOnBackIcon = function () {\r\n this.hidePopup();\r\n this.focusIn();\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.render = function () {\r\n if (this.element.tagName === 'INPUT') {\r\n this.inputElement = this.element;\r\n if (isNullOrUndefined(this.inputElement.getAttribute('role'))) {\r\n this.inputElement.setAttribute('role', 'textbox');\r\n }\r\n if (isNullOrUndefined(this.inputElement.getAttribute('type'))) {\r\n this.inputElement.setAttribute('type', 'text');\r\n }\r\n }\r\n else {\r\n this.inputElement = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\r\n if (this.element.tagName !== this.getNgDirective()) {\r\n this.element.style.display = 'none';\r\n }\r\n this.element.parentElement.insertBefore(this.inputElement, this.element);\r\n this.preventTabIndex(this.inputElement);\r\n }\r\n var updatedCssClassValues = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n this.inputWrapper = Input.createInput({\r\n element: this.inputElement,\r\n buttons: this.isPopupButton() ? [dropDownListClasses.icon] : null,\r\n floatLabelType: this.floatLabelType,\r\n properties: {\r\n readonly: this.getModuleName() === 'dropdownlist' ? true : this.readonly,\r\n placeholder: this.placeholder,\r\n cssClass: updatedCssClassValues,\r\n enabled: this.enabled,\r\n enableRtl: this.enableRtl,\r\n showClearButton: this.showClearButton\r\n }\r\n }, this.createElement);\r\n if (this.element.tagName === this.getNgDirective()) {\r\n this.element.appendChild(this.inputWrapper.container);\r\n }\r\n else {\r\n this.inputElement.parentElement.insertBefore(this.element, this.inputElement);\r\n }\r\n this.hiddenElement = this.createElement('select', {\r\n attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': dropDownListClasses.hiddenElement }\r\n });\r\n prepend([this.hiddenElement], this.inputWrapper.container);\r\n this.validationAttribute(this.element, this.hiddenElement);\r\n this.setReadOnly();\r\n this.setFields();\r\n this.inputWrapper.container.style.width = formatUnit(this.width);\r\n this.inputWrapper.container.classList.add('e-ddl');\r\n this.wireEvent();\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n this.element.removeAttribute('tabindex');\r\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\r\n this.element.id = id;\r\n this.hiddenElement.id = id + '_hidden';\r\n this.targetElement().setAttribute('tabindex', this.tabIndex);\r\n attributes(this.targetElement(), this.getAriaAttributes());\r\n this.updateDataAttribute(this.htmlAttributes);\r\n this.setHTMLAttributes();\r\n if (this.value !== null || this.activeIndex !== null || this.text !== null) {\r\n this.initValue();\r\n }\r\n else if (this.element.tagName === 'SELECT' && this.element.options[0]) {\r\n var selectElement = this.element;\r\n this.value = selectElement.options[selectElement.selectedIndex].value;\r\n this.text = isNullOrUndefined(this.value) ? null : selectElement.options[selectElement.selectedIndex].textContent;\r\n this.initValue();\r\n }\r\n this.preventTabIndex(this.element);\r\n if (!this.enabled) {\r\n this.targetElement().tabIndex = -1;\r\n }\r\n this.initial = false;\r\n this.element.style.opacity = '';\r\n this.inputElement.onselect = function (e) {\r\n e.stopImmediatePropagation();\r\n };\r\n this.inputElement.onchange = function (e) {\r\n e.stopImmediatePropagation();\r\n };\r\n if (this.element.hasAttribute('autofocus')) {\r\n this.focusIn();\r\n }\r\n if (!isNullOrUndefined(this.text)) {\r\n this.inputElement.setAttribute('value', this.text);\r\n }\r\n if (this.element.hasAttribute('data-val')) {\r\n this.element.setAttribute('data-val', 'false');\r\n }\r\n this.renderComplete();\r\n };\r\n DropDownList.prototype.setFooterTemplate = function (popupEle) {\r\n var compiledString;\r\n if (this.footer) {\r\n this.footer.innerHTML = '';\r\n }\r\n else {\r\n this.footer = this.createElement('div');\r\n addClass([this.footer], dropDownListClasses.footer);\r\n }\r\n var footercheck = this.dropdownCompiler(this.footerTemplate);\r\n if (footercheck) {\r\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.footerTemplate);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var footerCompTemp = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\r\n if (footerCompTemp && footerCompTemp.length > 0) {\r\n for (var i = 0; i < footerCompTemp.length; i++) {\r\n this.footer.appendChild(footerCompTemp[i]);\r\n }\r\n }\r\n append([this.footer], popupEle);\r\n };\r\n DropDownList.prototype.setHeaderTemplate = function (popupEle) {\r\n var compiledString;\r\n if (this.header) {\r\n this.header.innerHTML = '';\r\n }\r\n else {\r\n this.header = this.createElement('div');\r\n addClass([this.header], dropDownListClasses.header);\r\n }\r\n var headercheck = this.dropdownCompiler(this.headerTemplate);\r\n if (headercheck) {\r\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.headerTemplate);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var headerCompTemp = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\r\n if (headerCompTemp && headerCompTemp.length) {\r\n for (var i = 0; i < headerCompTemp.length; i++) {\r\n this.header.appendChild(headerCompTemp[i]);\r\n }\r\n }\r\n var contentEle = popupEle.querySelector('div.e-content');\r\n popupEle.insertBefore(this.header, contentEle);\r\n };\r\n DropDownList.prototype.setOldText = function (text) {\r\n this.text = text;\r\n };\r\n DropDownList.prototype.setOldValue = function (value) {\r\n this.value = value;\r\n };\r\n DropDownList.prototype.refreshPopup = function () {\r\n if (!isNullOrUndefined(this.popupObj) && document.body.contains(this.popupObj.element) &&\r\n ((this.allowFiltering && !(Browser.isDevice && this.isFilterLayout())) || this.getModuleName() === 'autocomplete')) {\r\n removeClass([this.popupObj.element], 'e-popup-close');\r\n this.popupObj.refreshPosition(this.inputWrapper.container);\r\n this.popupObj.resolveCollision();\r\n }\r\n };\r\n DropDownList.prototype.checkData = function (newProp) {\r\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource)) && this.itemTemplate && this.allowFiltering &&\r\n !(this.isListSearched && (newProp.dataSource instanceof DataManager))) {\r\n this.list = null;\r\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\r\n }\r\n this.isListSearched = false;\r\n var isChangeValue = Object.keys(newProp).indexOf('value') !== -1 && isNullOrUndefined(newProp.value);\r\n var isChangeText = Object.keys(newProp).indexOf('text') !== -1 && isNullOrUndefined(newProp.text);\r\n if (this.getModuleName() !== 'autocomplete' && this.allowFiltering && (isChangeValue || isChangeText)) {\r\n this.itemData = null;\r\n }\r\n if (this.allowFiltering && newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))) {\r\n this.actionCompleteData = { ulElement: null, list: null, isUpdated: false };\r\n this.actionData = this.actionCompleteData;\r\n }\r\n else if (this.allowFiltering && newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\r\n this.actionCompleteData = this.getModuleName() === 'combobox' ?\r\n { ulElement: null, list: null, isUpdated: false } : this.actionCompleteData;\r\n this.actionData = this.actionCompleteData;\r\n }\r\n };\r\n DropDownList.prototype.updateDataSource = function (props) {\r\n if (this.inputElement.value !== '' || (!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\r\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0)))) {\r\n this.clearAll(null, props);\r\n }\r\n if ((this.fields.groupBy && props.fields) && !this.isGroupChecking) {\r\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\r\n EventHandler.add(this.list, 'scroll', this.setFloatingHeader, this);\r\n }\r\n if (!(!isNullOrUndefined(props) && (isNullOrUndefined(props.dataSource)\r\n || (!(props.dataSource instanceof DataManager) && props.dataSource.length === 0))) || !(props.dataSource === [])) {\r\n this.typedString = '';\r\n this.resetList(this.dataSource);\r\n }\r\n if (!this.isCustomFilter && !this.isFilterFocus && document.activeElement !== this.filterInput) {\r\n this.checkCustomValue();\r\n }\r\n };\r\n DropDownList.prototype.checkCustomValue = function () {\r\n this.itemData = this.getDataByValue(this.value);\r\n var dataItem = this.getItemData();\r\n this.setProperties({ 'value': dataItem.value, 'text': dataItem.text });\r\n };\r\n DropDownList.prototype.updateInputFields = function () {\r\n if (this.getModuleName() === 'dropdownlist') {\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n };\r\n /**\r\n * Dynamically change the value of properties.\r\n *\r\n * @private\r\n * @param {DropDownListModel} newProp - Returns the dynamic property value of the component.\r\n * @param {DropDownListModel} oldProp - Returns the previous previous value of the component.\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (this.getModuleName() === 'dropdownlist') {\r\n this.checkData(newProp);\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'query':\r\n case 'dataSource': break;\r\n case 'htmlAttributes':\r\n this.setHTMLAttributes();\r\n break;\r\n case 'width':\r\n this.setEleWidth(newProp.width);\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.inputElement);\r\n break;\r\n case 'filterBarPlaceholder':\r\n if (this.filterInput) {\r\n Input.setPlaceholder(newProp.filterBarPlaceholder, this.filterInput);\r\n }\r\n break;\r\n case 'readonly':\r\n if (this.getModuleName() !== 'dropdownlist') {\r\n Input.setReadonly(newProp.readonly, this.inputElement);\r\n }\r\n this.setReadOnly();\r\n break;\r\n case 'cssClass':\r\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRtl();\r\n break;\r\n case 'enabled':\r\n this.setEnable();\r\n break;\r\n case 'text':\r\n if (newProp.text === null) {\r\n this.clearAll();\r\n break;\r\n }\r\n if (!this.list) {\r\n if (this.dataSource instanceof DataManager) {\r\n this.initRemoteRender = true;\r\n }\r\n this.renderList();\r\n }\r\n if (!this.initRemoteRender) {\r\n var li = this.getElementByText(newProp.text);\r\n if (!this.checkValidLi(li)) {\r\n if (this.liCollections && this.liCollections.length === 100 &&\r\n this.getModuleName() === 'autocomplete' && this.listData.length > 100) {\r\n this.setSelectionData(newProp.text, oldProp.text, 'text');\r\n }\r\n else {\r\n this.setOldText(oldProp.text);\r\n }\r\n }\r\n this.updateInputFields();\r\n }\r\n break;\r\n case 'value':\r\n if (newProp.value === null) {\r\n this.clearAll();\r\n break;\r\n }\r\n this.notify('beforeValueChange', { newProp: newProp }); // gird component value type change\r\n if (!this.list) {\r\n if (this.dataSource instanceof DataManager) {\r\n this.initRemoteRender = true;\r\n }\r\n this.renderList();\r\n }\r\n if (!this.initRemoteRender) {\r\n var item = this.getElementByValue(newProp.value);\r\n if (!this.checkValidLi(item)) {\r\n if (this.liCollections && this.liCollections.length === 100 &&\r\n this.getModuleName() === 'autocomplete' && this.listData.length > 100) {\r\n this.setSelectionData(newProp.value, oldProp.value, 'value');\r\n }\r\n else {\r\n this.setOldValue(oldProp.value);\r\n }\r\n }\r\n this.updateInputFields();\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n }\r\n break;\r\n case 'index':\r\n if (newProp.index === null) {\r\n this.clearAll();\r\n break;\r\n }\r\n if (!this.list) {\r\n if (this.dataSource instanceof DataManager) {\r\n this.initRemoteRender = true;\r\n }\r\n this.renderList();\r\n }\r\n if (!this.initRemoteRender && this.liCollections) {\r\n var element = this.liCollections[newProp.index];\r\n if (!this.checkValidLi(element)) {\r\n if (this.liCollections && this.liCollections.length === 100 &&\r\n this.getModuleName() === 'autocomplete' && this.listData.length > 100) {\r\n this.setSelectionData(newProp.index, oldProp.index, 'index');\r\n }\r\n else {\r\n this.index = oldProp.index;\r\n }\r\n }\r\n this.updateInputFields();\r\n }\r\n break;\r\n case 'footerTemplate':\r\n if (this.popupObj) {\r\n this.setFooterTemplate(this.popupObj.element);\r\n }\r\n break;\r\n case 'headerTemplate':\r\n if (this.popupObj) {\r\n this.setHeaderTemplate(this.popupObj.element);\r\n }\r\n break;\r\n case 'valueTemplate':\r\n if (!isNullOrUndefined(this.itemData) && this.valueTemplate != null) {\r\n this.setValueTemplate();\r\n }\r\n break;\r\n case 'allowFiltering':\r\n if (this.allowFiltering) {\r\n this.actionCompleteData = { ulElement: this.ulElement,\r\n list: this.listData, isUpdated: true };\r\n this.actionData = this.actionCompleteData;\r\n this.updateSelectElementData(this.allowFiltering);\r\n }\r\n break;\r\n case 'floatLabelType':\r\n Input.removeFloating(this.inputWrapper);\r\n Input.addFloating(this.inputElement, newProp.floatLabelType, this.placeholder, this.createElement);\r\n break;\r\n case 'showClearButton':\r\n Input.setClearButton(newProp.showClearButton, this.inputElement, this.inputWrapper, null, this.createElement);\r\n this.bindClearEvent();\r\n break;\r\n default:\r\n {\r\n // eslint-disable-next-line max-len\r\n var ddlProps = this.getPropObject(prop, newProp, oldProp);\r\n _super.prototype.onPropertyChanged.call(this, ddlProps.newProperty, ddlProps.oldProperty);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n DropDownList.prototype.checkValidLi = function (element) {\r\n if (this.isValidLI(element)) {\r\n this.setSelection(element, null);\r\n return true;\r\n }\r\n return false;\r\n };\r\n DropDownList.prototype.setSelectionData = function (newProp, oldProp, prop) {\r\n var _this = this;\r\n var li;\r\n this.updateListValues = function () {\r\n if (prop === 'text') {\r\n li = _this.getElementByText(newProp);\r\n if (!_this.checkValidLi(li)) {\r\n _this.setOldText(oldProp);\r\n }\r\n }\r\n else if (prop === 'value') {\r\n li = _this.getElementByValue(newProp);\r\n if (!_this.checkValidLi(li)) {\r\n _this.setOldValue(oldProp);\r\n }\r\n }\r\n else if (prop === 'index') {\r\n li = _this.liCollections[newProp];\r\n if (!_this.checkValidLi(li)) {\r\n _this.index = oldProp;\r\n }\r\n }\r\n };\r\n };\r\n DropDownList.prototype.setReadOnly = function () {\r\n if (this.readonly) {\r\n addClass([this.inputWrapper.container], ['e-readonly']);\r\n }\r\n else {\r\n removeClass([this.inputWrapper.container], ['e-readonly']);\r\n }\r\n };\r\n DropDownList.prototype.setCssClass = function (newClass, oldClass) {\r\n if (!isNullOrUndefined(oldClass)) {\r\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(newClass)) {\r\n newClass = (newClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n Input.setCssClass(newClass, [this.inputWrapper.container], oldClass);\r\n if (this.popupObj) {\r\n Input.setCssClass(newClass, [this.popupObj.element], oldClass);\r\n }\r\n };\r\n /**\r\n * Return the module name of this component.\r\n *\r\n * @private\r\n * @returns {string} Return the module name of this component.\r\n */\r\n DropDownList.prototype.getModuleName = function () {\r\n return 'dropdownlist';\r\n };\r\n /**\r\n * Opens the popup that displays the list of items.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.showPopup = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.isFiltering() && this.dataSource instanceof DataManager && (this.actionData.list != this.actionCompleteData.list) &&\r\n this.actionData.list && this.actionData.ulElement) {\r\n this.actionCompleteData = this.actionData;\r\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\r\n }\r\n if (this.beforePopupOpen) {\r\n this.refreshPopup();\r\n return;\r\n }\r\n this.beforePopupOpen = true;\r\n if (this.isFiltering() && !this.isActive && this.actionCompleteData.list && this.actionCompleteData.list[0]) {\r\n this.isActive = true;\r\n this.onActionComplete(this.actionCompleteData.ulElement, this.actionCompleteData.list, null, true);\r\n }\r\n else if (isNullOrUndefined(this.list) || !isUndefined(this.list) && (this.list.classList.contains(dropDownBaseClasses.noData) ||\r\n this.list.querySelectorAll('.' + dropDownBaseClasses.li).length <= 0)) {\r\n this.renderList();\r\n }\r\n this.invokeRenderPopup();\r\n };\r\n DropDownList.prototype.invokeRenderPopup = function () {\r\n if (Browser.isDevice && this.isFilterLayout()) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var proxy_2 = this;\r\n window.onpopstate = function () {\r\n proxy_2.hidePopup();\r\n };\r\n history.pushState({}, '');\r\n }\r\n if (!isNullOrUndefined(this.list.children[0]) || this.list.classList.contains(dropDownBaseClasses.noData)) {\r\n this.renderPopup();\r\n }\r\n attributes(this.targetElement(), { 'aria-activedescendant': this.selectedLI ? this.selectedLI.id : null });\r\n };\r\n DropDownList.prototype.renderHightSearch = function () {\r\n // update high light search\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Hides the popup if it is in an open state.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.hidePopup = function (e) {\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n if (this.isEscapeKey && this.getModuleName() === 'dropdownlist') {\r\n Input.setValue(this.text, this.inputElement, this.floatLabelType, this.showClearButton);\r\n this.isEscapeKey = false;\r\n if (!isNullOrUndefined(this.index)) {\r\n var element = this.findListElement(this.ulElement, 'li', 'data-value', this.value);\r\n this.selectedLI = this.liCollections[this.index] || element;\r\n if (this.selectedLI) {\r\n this.updateSelectedItem(this.selectedLI, null, true);\r\n if (this.valueTemplate && this.itemData !== null) {\r\n this.setValueTemplate();\r\n }\r\n }\r\n }\r\n else {\r\n this.resetSelection();\r\n }\r\n }\r\n this.closePopup();\r\n var dataItem = this.getItemData();\r\n var isSelectVal = !isNullOrUndefined(this.selectedLI);\r\n if (this.inputElement && this.inputElement.value.trim() === '' && !this.isInteracted && (this.isSelectCustom ||\r\n isSelectVal && this.inputElement.value !== dataItem.text)) {\r\n this.isSelectCustom = false;\r\n this.clearAll(e);\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Sets the focus on the component for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.focusIn = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.targetElement().classList.contains(dropDownListClasses.disable)) {\r\n return;\r\n }\r\n var isFocused = false;\r\n if (this.preventFocus && Browser.isDevice) {\r\n this.inputWrapper.container.tabIndex = 1;\r\n this.inputWrapper.container.focus();\r\n this.preventFocus = false;\r\n isFocused = true;\r\n }\r\n if (!isFocused) {\r\n this.targetElement().focus();\r\n }\r\n addClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\r\n this.onFocus(e);\r\n };\r\n /**\r\n * Moves the focus from the component if the component is already focused.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.focusOut = function (e) {\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.isTyped = true;\r\n this.hidePopup(e);\r\n if (this.targetElement()) {\r\n this.targetElement().blur();\r\n }\r\n removeClass([this.inputWrapper.container], [dropDownListClasses.inputFocus]);\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.destroy = function () {\r\n this.isActive = false;\r\n resetIncrementalSearchValues(this.element.id);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n this.hidePopup();\r\n this.unWireEvent();\r\n if (this.list) {\r\n this.unWireListEvents();\r\n }\r\n if (this.element && !this.element.classList.contains('e-' + this.getModuleName())) {\r\n return;\r\n }\r\n if (this.inputElement) {\r\n var attrArray = ['readonly', 'aria-disabled', 'aria-placeholder',\r\n 'placeholder', 'aria-owns', 'aria-labelledby', 'aria-haspopup', 'aria-expanded',\r\n 'aria-activedescendant', 'autocomplete', 'aria-readonly', 'autocorrect',\r\n 'autocapitalize', 'spellcheck', 'aria-autocomplete', 'aria-live', 'aria-describedby', 'aria-label'];\r\n for (var i = 0; i < attrArray.length; i++) {\r\n this.inputElement.removeAttribute(attrArray[i]);\r\n }\r\n this.inputElement.setAttribute('tabindex', this.tabIndex);\r\n this.inputElement.classList.remove('e-input');\r\n Input.setValue('', this.inputElement, this.floatLabelType, this.showClearButton);\r\n }\r\n this.element.style.display = 'block';\r\n if (this.inputWrapper.container.parentElement.tagName === this.getNgDirective()) {\r\n detach(this.inputWrapper.container);\r\n }\r\n else {\r\n this.inputWrapper.container.parentElement.insertBefore(this.element, this.inputWrapper.container);\r\n detach(this.inputWrapper.container);\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets all the list items bound on this component.\r\n *\r\n * @returns {Element[]}\r\n */\r\n DropDownList.prototype.getItems = function () {\r\n if (!this.list) {\r\n if (this.dataSource instanceof DataManager) {\r\n this.initRemoteRender = true;\r\n }\r\n this.renderList();\r\n }\r\n return this.ulElement ? _super.prototype.getItems.call(this) : [];\r\n };\r\n /**\r\n * Gets the data Object that matches the given value.\r\n *\r\n * @param { string | number } value - Specifies the value of the list item.\r\n * @returns {Object}\r\n */\r\n DropDownList.prototype.getDataByValue = function (value) {\r\n return _super.prototype.getDataByValue.call(this, value);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Allows you to clear the selected values from the component.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownList.prototype.clear = function () {\r\n this.value = null;\r\n };\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], DropDownList.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('300px')\r\n ], DropDownList.prototype, \"popupHeight\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], DropDownList.prototype, \"popupWidth\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Property({})\r\n ], DropDownList.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"query\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"valueTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"footerTemplate\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownList.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownList.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"text\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownList.prototype, \"index\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], DropDownList.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownList.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownList.prototype, \"focus\", void 0);\r\n DropDownList = __decorate([\r\n NotifyPropertyChanges\r\n ], DropDownList);\r\n return DropDownList;\r\n}(DropDownBase));\r\nexport { DropDownList };\r\n","/**\n * export all modules from current location\n */\nexport * from './drop-down-list';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Input, TextBox } from '@syncfusion/ej2-inputs';\r\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\r\nimport { NotifyPropertyChanges, Property, Event } from '@syncfusion/ej2-base';\r\nimport { Component, EventHandler, attributes, formatUnit, ChildProperty, remove, L10n, extend } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, detach, prepend, Complex, closest, setValue, getValue, compile, append } from '@syncfusion/ej2-base';\r\nimport { select, selectAll, isNullOrUndefined as isNOU, matches, Browser, KeyboardEvents } from '@syncfusion/ej2-base';\r\nimport { DataManager, DataUtil } from '@syncfusion/ej2-data';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { TreeView } from '@syncfusion/ej2-navigations';\r\nvar RTL = 'e-rtl';\r\nvar DROPDOWNTREE = 'e-ddt';\r\nvar HIDDENELEMENT = 'e-ddt-hidden';\r\nvar DROPDOWNICON = 'e-input-group-icon e-ddt-icon e-icons';\r\nvar SHOW_CHIP = 'e-show-chip';\r\nvar SHOW_CLEAR = 'e-show-clear';\r\nvar SHOW_DD_ICON = 'e-show-dd-icon';\r\nvar CHIP_INPUT = 'e-chip-input';\r\nvar INPUTFOCUS = 'e-input-focus';\r\nvar INPUTGROUP = 'e-input-group';\r\nvar ICONANIMATION = 'e-icon-anim';\r\nvar CLOSEICON_CLASS = 'e-clear-icon e-icons';\r\nvar CHIP_WRAPPER = 'e-chips-wrapper';\r\nvar CHIP_COLLECTION = 'e-chips-collection';\r\nvar CHIP = 'e-chips';\r\nvar CHIP_CONTENT = 'e-chipcontent';\r\nvar CHIP_CLOSE = 'e-chips-close';\r\nvar HIDEICON = 'e-icon-hide';\r\nvar DDTHIDEICON = 'e-ddt-icon-hide';\r\nvar POPUP_CLASS = 'e-ddt e-popup';\r\nvar PARENTITEM = 'e-list-parent';\r\nvar CONTENT = 'e-popup-content';\r\nvar DROPDOWN = 'e-dropdown';\r\nvar DISABLED = 'e-disabled';\r\nvar ICONS = 'e-icons';\r\nvar CHECKALLPARENT = 'e-selectall-parent';\r\nvar CHECKALLHIDE = 'e-hide-selectall';\r\nvar BIGGER = 'e-bigger';\r\nvar SMALL = 'e-small';\r\nvar ALLTEXT = 'e-all-text';\r\nvar CHECKBOXFRAME = 'e-frame';\r\nvar CHECK = 'e-check';\r\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\r\nvar FILTERWRAP = 'e-filter-wrap';\r\nvar DDTICON = 'e-ddt-icon';\r\nvar FOOTER = 'e-ddt-footer';\r\nvar HEADER = 'e-ddt-header';\r\nvar NODATACONTAINER = 'e-ddt-nodata';\r\nvar NODATA = 'e-no-data';\r\nvar HEADERTEMPLATE = 'HeaderTemplate';\r\nvar FOOTERTEMPLATE = 'FooterTemplate';\r\nvar NORECORDSTEMPLATE = 'NoRecordsTemplate';\r\nvar ACTIONFAILURETEMPLATE = 'ActionFailureTemplate';\r\nvar CUSTOMTEMPLATE = 'CustomTemplate';\r\nvar REMAIN_WRAPPER = 'e-remain';\r\nvar OVERFLOW_VIEW = 'e-overflow';\r\nvar SHOW_TEXT = 'e-show-text';\r\nvar TOTAL_COUNT_WRAPPER = 'e-total-count';\r\nvar REMAIN_COUNT = 'e-wrap-count';\r\nvar Fields = /** @class */ (function (_super) {\r\n __extends(Fields, _super);\r\n function Fields() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('child')\r\n ], Fields.prototype, \"child\", void 0);\r\n __decorate([\r\n Property([])\r\n ], Fields.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property('expanded')\r\n ], Fields.prototype, \"expanded\", void 0);\r\n __decorate([\r\n Property('hasChildren')\r\n ], Fields.prototype, \"hasChildren\", void 0);\r\n __decorate([\r\n Property('htmlAttributes')\r\n ], Fields.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('iconCss')\r\n ], Fields.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('imageUrl')\r\n ], Fields.prototype, \"imageUrl\", void 0);\r\n __decorate([\r\n Property('parentValue')\r\n ], Fields.prototype, \"parentValue\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Fields.prototype, \"query\", void 0);\r\n __decorate([\r\n Property('selected')\r\n ], Fields.prototype, \"selected\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Fields.prototype, \"tableName\", void 0);\r\n __decorate([\r\n Property('text')\r\n ], Fields.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('tooltip')\r\n ], Fields.prototype, \"tooltip\", void 0);\r\n __decorate([\r\n Property('value')\r\n ], Fields.prototype, \"value\", void 0);\r\n return Fields;\r\n}(ChildProperty));\r\nexport { Fields };\r\nvar TreeSettings = /** @class */ (function (_super) {\r\n __extends(TreeSettings, _super);\r\n function TreeSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(false)\r\n ], TreeSettings.prototype, \"autoCheck\", void 0);\r\n __decorate([\r\n Property('Auto')\r\n ], TreeSettings.prototype, \"expandOn\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeSettings.prototype, \"loadOnDemand\", void 0);\r\n return TreeSettings;\r\n}(ChildProperty));\r\nexport { TreeSettings };\r\n/**\r\n * The Dropdown Tree control allows you to select single or multiple values from hierarchical data in a tree-like structure.\r\n * It has several out-of-the-box features, such as data binding, check boxes, templates, filter,\r\n * UI customization, accessibility, and preselected values.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * let ddtObj: DropDownTree = new DropDownTree();\r\n * ddtObj.appendTo(\"#tree\");\r\n * ```\r\n */\r\nvar DropDownTree = /** @class */ (function (_super) {\r\n __extends(DropDownTree, _super);\r\n function DropDownTree(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.filterTimer = null;\r\n _this.isFilteredData = false;\r\n _this.isFilterRestore = false;\r\n // eslint-disable-next-line\r\n _this.selectedData = [];\r\n _this.filterDelayTime = 300;\r\n _this.isClicked = false;\r\n return _this;\r\n }\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string}\r\n * @hidden\r\n */\r\n DropDownTree.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n DropDownTree.prototype.getLocaleName = function () {\r\n return 'drop-down-tree';\r\n };\r\n /**\r\n * Initialize the event handler.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DropDownTree.prototype.preRender = function () {\r\n this.inputFocus = false;\r\n this.isPopupOpen = false;\r\n this.isFirstRender = true;\r\n this.isInitialized = false;\r\n this.currentText = null;\r\n this.currentValue = null;\r\n this.oldValue = null;\r\n this.removeValue = false;\r\n this.selectedText = [];\r\n this.treeItems = [];\r\n this.dataValue = null;\r\n this.isNodeSelected = false;\r\n this.isDynamicChange = false;\r\n this.clearIconWidth = 0;\r\n this.headerTemplateId = \"\" + this.element.id + HEADERTEMPLATE;\r\n this.footerTemplateId = \"\" + this.element.id + FOOTERTEMPLATE;\r\n this.actionFailureTemplateId = \"\" + this.element.id + ACTIONFAILURETEMPLATE;\r\n this.noRecordsTemplateId = \"\" + this.element.id + NORECORDSTEMPLATE;\r\n this.customTemplateId = \"\" + this.element.id + CUSTOMTEMPLATE;\r\n this.keyConfigs = {\r\n escape: 'escape',\r\n altUp: 'alt+uparrow',\r\n altDown: 'alt+downarrow',\r\n tab: 'tab',\r\n shiftTab: 'shift+tab',\r\n end: 'end',\r\n enter: 'enter',\r\n home: 'home',\r\n moveDown: 'downarrow',\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n moveUp: 'uparrow',\r\n ctrlDown: 'ctrl+downarrow',\r\n ctrlUp: 'ctrl+uparrow',\r\n ctrlEnter: 'ctrl+enter',\r\n ctrlHome: 'ctrl+home',\r\n ctrlEnd: 'ctrl+end',\r\n shiftDown: 'shift+downarrow',\r\n shiftUp: 'shift+uparrow',\r\n shiftEnter: 'shift+enter',\r\n shiftHome: 'shift+home',\r\n shiftEnd: 'shift+end',\r\n csDown: 'ctrl+shift+downarrow',\r\n csUp: 'ctrl+shift+uparrow',\r\n csEnter: 'ctrl+shift+enter',\r\n csHome: 'ctrl+shift+home',\r\n csEnd: 'ctrl+shift+end',\r\n space: 'space',\r\n ctrlA: 'ctrl+A'\r\n };\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.render = function () {\r\n var isTree = select('#' + this.element.id + '_tree', document);\r\n if (isTree) {\r\n var popupDiv = select('#' + this.element.id + '_popup', document);\r\n detach(popupDiv ? popupDiv : isTree.parentElement);\r\n }\r\n this.ensureAutoCheck();\r\n if (this.element.tagName === 'INPUT') {\r\n this.inputEle = this.element;\r\n if (isNOU(this.inputEle.getAttribute('role'))) {\r\n this.inputEle.setAttribute('role', 'textbox');\r\n }\r\n if (isNOU(this.inputEle.getAttribute('type'))) {\r\n this.inputEle.setAttribute('type', 'text');\r\n }\r\n }\r\n else {\r\n this.inputEle = this.createElement('input', { attrs: { role: 'textbox', type: 'text' } });\r\n this.element.parentElement.insertBefore(this.inputEle, this.element);\r\n }\r\n this.inputObj = Input.createInput({\r\n element: this.inputEle,\r\n floatLabelType: this.floatLabelType,\r\n buttons: this.showDropDownIcon ? [DROPDOWNICON] : null,\r\n properties: {\r\n readonly: true,\r\n placeholder: this.placeholder,\r\n enabled: this.enabled,\r\n cssClass: this.cssClass,\r\n enableRtl: this.enableRtl\r\n }\r\n }, this.createElement);\r\n this.inputWrapper = this.inputObj.container;\r\n if (!this.inputWrapper.classList.contains(INPUTGROUP)) {\r\n this.inputWrapper.classList.add(INPUTGROUP);\r\n }\r\n if (this.showDropDownIcon) {\r\n this.inputWrapper.classList.add(SHOW_DD_ICON);\r\n }\r\n if (this.element.tagName === this.getDirective()) {\r\n this.element.appendChild(this.inputWrapper);\r\n }\r\n this.createHiddenElement();\r\n this.createClearIcon();\r\n this.inputWrapper.classList.add(DROPDOWNTREE);\r\n this.setElementWidth(this.width);\r\n this.updateDataAttribute();\r\n this.setHTMLAttributes();\r\n this.setAttributes();\r\n this.popupDiv = this.createElement('div', { className: CONTENT, attrs: { 'tabindex': '0' } });\r\n this.popupDiv.classList.add(DROPDOWN);\r\n this.tree = this.createElement('div', { id: this.element.id + '_tree' });\r\n this.popupDiv.appendChild(this.tree);\r\n document.body.appendChild(this.popupDiv);\r\n this.wireTreeEvents();\r\n addClass([this.popupDiv], DDTHIDEICON);\r\n this.renderTree();\r\n this.isRemoteData = this.fields.dataSource instanceof DataManager;\r\n if (this.allowMultiSelection || this.showCheckBox) {\r\n if (this.mode !== 'Delimiter') {\r\n this.createChip();\r\n }\r\n if (!this.wrapText && this.mode !== 'Custom') {\r\n this.overFlowWrapper = this.createElement('span', { className: OVERFLOW_VIEW + ' ' + HIDEICON });\r\n this.inputWrapper.insertBefore(this.overFlowWrapper, this.hiddenElement);\r\n if (this.mode !== 'Box') {\r\n addClass([this.overFlowWrapper], SHOW_TEXT);\r\n }\r\n }\r\n }\r\n if (!this.isRemoteData) {\r\n this.setTreeValue();\r\n this.setTreeText();\r\n this.updateHiddenValue();\r\n this.setSelectedValue();\r\n if (!this.wrapText) {\r\n this.updateView();\r\n }\r\n }\r\n this.wireEvents();\r\n var firstUl = select('.' + PARENTITEM, this.treeObj.element);\r\n if (firstUl && firstUl.getAttribute('aria-multiselectable')) {\r\n firstUl.removeAttribute('aria-multiselectable');\r\n }\r\n this.oldValue = this.value;\r\n this.isInitialized = true;\r\n this.hasTemplate = this.itemTemplate || this.headerTemplate || this.footerTemplate || this.actionFailureTemplate\r\n || this.noRecordsTemplate || this.customTemplate;\r\n this.renderComplete();\r\n };\r\n DropDownTree.prototype.ensureAutoCheck = function () {\r\n if (this.allowFiltering && this.treeSettings.autoCheck) {\r\n this.setProperties({ treeSettings: { autoCheck: false } }, true);\r\n }\r\n };\r\n DropDownTree.prototype.hideCheckAll = function (flag) {\r\n var checkAllEle = !isNOU(this.popupEle) ? this.popupEle.querySelector('.' + CHECKALLPARENT) : null;\r\n if (!isNOU(checkAllEle)) {\r\n if (flag && !checkAllEle.classList.contains(CHECKALLHIDE)) {\r\n addClass([checkAllEle], CHECKALLHIDE);\r\n }\r\n else if (!flag && checkAllEle.classList.contains(CHECKALLHIDE)) {\r\n removeClass([checkAllEle], CHECKALLHIDE);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.renderFilter = function () {\r\n this.filterContainer = this.createElement('div', {\r\n id: this.element.id + '_filter_wrap',\r\n className: FILTERWRAP\r\n });\r\n var filterInput = this.createElement('input', {\r\n id: this.element.id + '_filter',\r\n attrs: { autocomplete: 'off', 'aria-label': this.filterBarPlaceholder }\r\n });\r\n this.filterContainer.appendChild(filterInput);\r\n prepend([this.filterContainer], this.popupEle);\r\n this.filterObj = new TextBox({\r\n value: '',\r\n showClearButton: true,\r\n placeholder: this.filterBarPlaceholder,\r\n input: this.filterChangeHandler.bind(this)\r\n });\r\n this.filterObj.appendTo('#' + this.element.id + '_filter');\r\n };\r\n DropDownTree.prototype.filterChangeHandler = function (args) {\r\n var _this = this;\r\n if (!isNOU(args.value)) {\r\n window.clearTimeout(this.filterTimer);\r\n this.filterTimer = window.setTimeout(function () { _this.filterHandler(args.value, args.event); }, this.filterDelayTime);\r\n }\r\n };\r\n DropDownTree.prototype.filterHandler = function (value, event) {\r\n var _this = this;\r\n if (!this.isFilteredData) {\r\n this.treeData = this.treeObj.getTreeData();\r\n }\r\n var filterFields = this.cloneFields(this.fields);\r\n var args = {\r\n cancel: false,\r\n preventDefaultAction: false,\r\n event: event,\r\n text: value,\r\n fields: filterFields\r\n };\r\n this.trigger('filtering', args, function (args) {\r\n if (!args.cancel) {\r\n var flag = false;\r\n var fields = void 0;\r\n _this.isFilteredData = true;\r\n if (value === '') {\r\n _this.isFilteredData = false;\r\n _this.isFilterRestore = true;\r\n fields = _this.cloneFields(_this.fields);\r\n }\r\n else if (args.preventDefaultAction) {\r\n fields = args.fields;\r\n }\r\n else {\r\n if (_this.treeDataType === 1) {\r\n fields = _this.selfReferencefilter(value, args.fields);\r\n }\r\n else {\r\n if (_this.fields.dataSource instanceof DataManager) {\r\n flag = true;\r\n }\r\n else {\r\n fields = _this.nestedFilter(value, args.fields);\r\n }\r\n }\r\n }\r\n _this.hideCheckAll(_this.isFilteredData);\r\n if (flag) {\r\n return;\r\n }\r\n _this.treeObj.fields = _this.getTreeFields(fields);\r\n _this.treeObj.dataBind();\r\n }\r\n });\r\n };\r\n DropDownTree.prototype.nestedFilter = function (value, filteredFields) {\r\n // eslint-disable-next-line\r\n var matchedDataSource = [];\r\n for (var i = 0; i < this.treeData.length; i++) {\r\n // eslint-disable-next-line\r\n var filteredChild = this.nestedChildFilter(value, this.treeData[i]);\r\n if (!isNOU(filteredChild)) {\r\n matchedDataSource.push(filteredChild);\r\n }\r\n }\r\n filteredFields.dataSource = matchedDataSource;\r\n return filteredFields;\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.nestedChildFilter = function (value, node) {\r\n // eslint-disable-next-line\r\n var children = node[this.fields.child];\r\n if (isNOU(children)) {\r\n return (this.isMatchedNode(value, node)) ? node : null;\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n var matchedChildren = [];\r\n for (var i = 0; i < children.length; i++) {\r\n // eslint-disable-next-line\r\n var filteredChild = this.nestedChildFilter(value, children[i]);\r\n if (!isNOU(filteredChild)) {\r\n matchedChildren.push(filteredChild);\r\n }\r\n }\r\n if (matchedChildren.length !== 0) {\r\n node[this.fields.child] = matchedChildren;\r\n return node;\r\n }\r\n else {\r\n node[this.fields.child] = null;\r\n return (this.isMatchedNode(value, node)) ? node : null;\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.selfReferencefilter = function (value, filteredFields) {\r\n // eslint-disable-next-line\r\n var matchedData = [];\r\n // eslint-disable-next-line\r\n var matchedDataSource = [];\r\n for (var i = 0; i < this.treeData.length; i++) {\r\n if (this.isMatchedNode(value, this.treeData[i])) {\r\n matchedData.push(this.treeData[i]);\r\n }\r\n }\r\n for (var i = 0; i < matchedData.length; i++) {\r\n if (matchedDataSource.indexOf(matchedData[i]) === -1) {\r\n matchedDataSource.push(matchedData[i]);\r\n // eslint-disable-next-line\r\n var parentId = matchedData[i][this.fields.parentValue];\r\n while (!isNOU(parentId)) {\r\n // eslint-disable-next-line\r\n var parent_1 = null;\r\n for (var j = 0; j < this.treeData.length; j++) {\r\n // eslint-disable-next-line\r\n var value_1 = this.treeData[j][this.fields.value];\r\n if (!isNOU(value_1) && (value_1 === parentId)) {\r\n parent_1 = this.treeData[j];\r\n break;\r\n }\r\n }\r\n if (!isNOU(parent_1) && (matchedDataSource.indexOf(parent_1) === -1)) {\r\n matchedDataSource.push(parent_1);\r\n parentId = parent_1[this.fields.parentValue];\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n filteredFields.dataSource = matchedDataSource;\r\n return filteredFields;\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.isMatchedNode = function (value, node) {\r\n var checkValue = node[this.fields.text];\r\n if (this.ignoreCase) {\r\n checkValue = checkValue.toLowerCase();\r\n value = value.toLowerCase();\r\n }\r\n if (this.ignoreAccent) {\r\n checkValue = DataUtil.ignoreDiacritics(checkValue);\r\n value = DataUtil.ignoreDiacritics(value);\r\n }\r\n if (this.filterType === 'StartsWith') {\r\n return checkValue.slice(0, value.length) === value;\r\n }\r\n else if (this.filterType === 'EndsWith') {\r\n return checkValue.slice(-value.length) === value;\r\n }\r\n else {\r\n return checkValue.indexOf(value) !== -1;\r\n }\r\n };\r\n /* To wire events for the dropdown tree */\r\n DropDownTree.prototype.wireEvents = function () {\r\n EventHandler.add(this.inputWrapper, 'mouseup', this.dropDownClick, this);\r\n EventHandler.add(this.inputWrapper, 'focus', this.focusIn, this);\r\n EventHandler.add(this.inputWrapper, 'blur', this.focusOut, this);\r\n EventHandler.add(this.inputWrapper, 'mousemove', this.mouseIn, this);\r\n EventHandler.add(this.inputWrapper, 'mouseout', this.onMouseLeave, this);\r\n EventHandler.add(this.overAllClear, 'mousedown', this.clearAll, this);\r\n EventHandler.add(window, 'resize', this.windowResize, this);\r\n var formElement = closest(this.inputWrapper, 'form');\r\n if (formElement) {\r\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\r\n }\r\n this.keyboardModule = new KeyboardEvents(this.inputWrapper, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n };\r\n DropDownTree.prototype.wireTreeEvents = function () {\r\n this.keyboardModule = new KeyboardEvents(this.tree, {\r\n keyAction: this.treeAction.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n };\r\n DropDownTree.prototype.wireCheckAllWrapperEvents = function () {\r\n this.keyboardModule = new KeyboardEvents(this.checkAllParent, {\r\n keyAction: this.checkAllAction.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n };\r\n /* To unwire events for the dropdown tree */\r\n DropDownTree.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.inputWrapper, 'mouseup', this.dropDownClick);\r\n EventHandler.remove(this.inputWrapper, 'focus', this.focusIn);\r\n EventHandler.remove(this.inputWrapper, 'blur', this.focusOut);\r\n EventHandler.remove(this.inputWrapper, 'mousemove', this.mouseIn);\r\n EventHandler.remove(this.inputWrapper, 'mouseout', this.onMouseLeave);\r\n EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);\r\n EventHandler.remove(window, 'resize', this.windowResize);\r\n var formElement = closest(this.inputWrapper, 'form');\r\n if (formElement) {\r\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\r\n }\r\n };\r\n /* Trigger when the dropdown is clicked */\r\n DropDownTree.prototype.dropDownClick = function (e) {\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n if (this.isClearButtonClick) {\r\n this.isClearButtonClick = false;\r\n return;\r\n }\r\n if (this.isPopupOpen) {\r\n this.hidePopup();\r\n }\r\n else {\r\n this.focusIn(e);\r\n this.renderPopup();\r\n }\r\n this.showOverAllClear();\r\n };\r\n DropDownTree.prototype.mouseIn = function () {\r\n if (this.enabled || !this.readonly) {\r\n this.showOverAllClear();\r\n }\r\n };\r\n DropDownTree.prototype.onMouseLeave = function () {\r\n if (!this.inputFocus) {\r\n addClass([this.overAllClear], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n };\r\n DropDownTree.prototype.getDirective = function () {\r\n return 'EJS-DROPDOWNTREE';\r\n };\r\n DropDownTree.prototype.focusOut = function (e) {\r\n if (!this.enabled || this.readonly || !this.inputFocus) {\r\n return;\r\n }\r\n if ((Browser.isIE || Browser.info.name === 'edge') && (e.target === this.inputWrapper)) {\r\n return;\r\n }\r\n var target = e.relatedTarget;\r\n if ((target !== this.inputEle) && (isNOU(target)) && (e.target !== this.inputWrapper || !this.isPopupOpen)) {\r\n this.onFocusOut(e);\r\n }\r\n };\r\n DropDownTree.prototype.onFocusOut = function (event) {\r\n this.inputFocus = false;\r\n if (this.isPopupOpen) {\r\n this.hidePopup();\r\n }\r\n if (this.isClearButtonClick) {\r\n this.isClearButtonClick = false;\r\n }\r\n if (this.showClearButton) {\r\n this.clearIconWidth = select('.e-clear-icon', this.inputWrapper).offsetWidth;\r\n addClass([this.overAllClear], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n removeClass([this.inputWrapper], [INPUTFOCUS]);\r\n if ((this.allowMultiSelection || this.showCheckBox)) {\r\n var isValue = this.value ? (this.value.length ? true : false) : false;\r\n if (this.mode !== 'Delimiter' && this.mode !== 'Custom') {\r\n if (this.chipWrapper && (this.mode === 'Default')) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n }\r\n }\r\n if (!this.wrapText && isValue) {\r\n this.updateView();\r\n }\r\n }\r\n if (this.changeOnBlur) {\r\n this.triggerChangeEvent(event);\r\n }\r\n this.removeValue = false;\r\n this.oldValue = this.value;\r\n this.trigger('blur');\r\n };\r\n DropDownTree.prototype.updateView = function () {\r\n if ((!this.showCheckBox && !this.allowMultiSelection) || this.mode === 'Custom' || this.inputFocus) {\r\n return;\r\n }\r\n if (this.mode !== 'Box') {\r\n addClass([this.inputWrapper, this.overFlowWrapper], SHOW_TEXT);\r\n }\r\n else {\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n if (this.value && this.value.length !== 0) {\r\n if (this.inputWrapper.contains(this.chipWrapper)) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n }\r\n addClass([this.inputEle], CHIP_INPUT);\r\n this.updateOverFlowView();\r\n this.ensurePlaceHolder();\r\n }\r\n };\r\n DropDownTree.prototype.triggerChangeEvent = function (event) {\r\n var isEqual = this.ddtCompareValues(this.oldValue, this.value);\r\n if ((!isEqual || this.isChipDelete) && !this.removeValue) {\r\n var eventArgs = {\r\n e: event,\r\n oldValue: this.oldValue,\r\n value: this.value,\r\n isInteracted: event ? true : false,\r\n element: this.element\r\n };\r\n this.trigger('change', eventArgs);\r\n this.oldValue = this.value;\r\n }\r\n };\r\n DropDownTree.prototype.ddtCompareValues = function (oldValue, newValue) {\r\n if (oldValue === null || newValue === null) {\r\n var isValid = oldValue === null ? ((newValue === oldValue) ? true : false) :\r\n (oldValue.length === 0 ? (newValue === oldValue) : false);\r\n return isValid;\r\n }\r\n else if (oldValue.length !== newValue.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < oldValue.length; i++) {\r\n if (oldValue[i] !== newValue[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n DropDownTree.prototype.focusIn = function (e) {\r\n if (!this.enabled || this.readonly || this.inputFocus) {\r\n return;\r\n }\r\n this.showOverAllClear();\r\n this.inputFocus = true;\r\n addClass([this.inputWrapper], [INPUTFOCUS]);\r\n if (this.allowMultiSelection || this.showCheckBox) {\r\n if (this.mode !== 'Delimiter' && this.inputFocus) {\r\n if (this.chipWrapper && (this.value && this.value.length !== 0)) {\r\n removeClass([this.chipWrapper], HIDEICON);\r\n addClass([this.inputEle], CHIP_INPUT);\r\n }\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n if (this.popupObj) {\r\n this.popupObj.refreshPosition();\r\n }\r\n }\r\n if (!this.wrapText && this.mode !== 'Custom') {\r\n if (this.inputWrapper.contains(this.overFlowWrapper)) {\r\n addClass([this.overFlowWrapper], HIDEICON);\r\n }\r\n if (this.mode === 'Delimiter') {\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n }\r\n else {\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n removeClass([this.inputWrapper], SHOW_TEXT);\r\n this.ensurePlaceHolder();\r\n }\r\n }\r\n var args = { isInteracted: e ? true : false, event: e };\r\n this.trigger('focus', args);\r\n };\r\n DropDownTree.prototype.treeAction = function (e) {\r\n var _this = this;\r\n var eventArgs = {\r\n cancel: false,\r\n event: e\r\n };\r\n this.trigger('keyPress', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n switch (e.action) {\r\n case 'escape':\r\n case 'altUp':\r\n _this.inputWrapper.focus();\r\n e.preventDefault();\r\n if (_this.isPopupOpen) {\r\n _this.hidePopup();\r\n }\r\n break;\r\n case 'tab':\r\n case 'shiftTab':\r\n if (_this.isPopupOpen) {\r\n _this.hidePopup();\r\n }\r\n break;\r\n case 'enter':\r\n case 'ctrlEnter':\r\n case 'shiftEnter':\r\n case 'csEnter':\r\n if (!_this.showCheckBox) {\r\n _this.isValueChange = true;\r\n _this.keyEventArgs = e;\r\n }\r\n break;\r\n case 'space':\r\n _this.isValueChange = true;\r\n _this.keyEventArgs = e;\r\n break;\r\n case 'ctrlA':\r\n if (_this.allowMultiSelection) {\r\n _this.selectAll(true);\r\n }\r\n break;\r\n case 'moveRight':\r\n case 'moveLeft':\r\n case 'shiftDown':\r\n case 'moveDown':\r\n case 'ctrlDown':\r\n case 'csDown':\r\n case 'shiftUp':\r\n case 'moveUp':\r\n case 'ctrlUp':\r\n case 'csUp':\r\n case 'home':\r\n case 'shiftHome':\r\n case 'ctrlHome':\r\n case 'csHome':\r\n case 'end':\r\n case 'shiftEnd':\r\n case 'ctrlEnd':\r\n case 'csEnd':\r\n }\r\n }\r\n else {\r\n e.stopImmediatePropagation();\r\n }\r\n });\r\n };\r\n DropDownTree.prototype.keyActionHandler = function (e) {\r\n var _this = this;\r\n var eventArgs = {\r\n cancel: false,\r\n event: e\r\n };\r\n this.trigger('keyPress', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n switch (e.action) {\r\n case 'escape':\r\n case 'altUp':\r\n if (_this.isPopupOpen) {\r\n _this.hidePopup();\r\n }\r\n break;\r\n case 'shiftTab':\r\n case 'tab':\r\n if (_this.isPopupOpen) {\r\n _this.hidePopup();\r\n }\r\n if (_this.inputFocus) {\r\n _this.onFocusOut();\r\n }\r\n break;\r\n case 'altDown':\r\n if (!_this.isPopupOpen) {\r\n _this.showPopup();\r\n e.preventDefault();\r\n }\r\n break;\r\n case 'moveDown':\r\n if (_this.showSelectAll && _this.showCheckBox) {\r\n _this.checkAllParent.focus();\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n };\r\n DropDownTree.prototype.checkAllAction = function (e) {\r\n var _this = this;\r\n var eventArgs = {\r\n cancel: false,\r\n event: e\r\n };\r\n this.trigger('keyPress', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n switch (e.action) {\r\n case 'space':\r\n _this.clickHandler(e);\r\n break;\r\n case 'moveDown':\r\n _this.treeObj.element.focus();\r\n }\r\n }\r\n });\r\n };\r\n DropDownTree.prototype.windowResize = function () {\r\n if (this.popupObj) {\r\n this.popupObj.setProperties({ width: this.setWidth() });\r\n this.popupObj.refreshPosition();\r\n }\r\n };\r\n DropDownTree.prototype.resetValueHandler = function (e) {\r\n var formElement = closest(this.inputWrapper, 'form');\r\n if (formElement && e.target === formElement) {\r\n this.isDynamicChange = true;\r\n this.setProperties({ value: null }, true);\r\n this.resetValue(true);\r\n this.isDynamicChange = false;\r\n }\r\n };\r\n DropDownTree.prototype.getAriaAttributes = function () {\r\n var disable = this.enabled ? 'false' : 'true';\r\n return {\r\n 'aria-disabled': disable,\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false',\r\n 'aria-activedescendant': 'null',\r\n 'aria-labelledby': this.hiddenElement.id\r\n };\r\n };\r\n DropDownTree.prototype.updateOverFlowView = function () {\r\n this.overFlowWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\r\n removeClass([this.overFlowWrapper], HIDEICON);\r\n if (this.value && this.value.length) {\r\n var data = '';\r\n var overAllContainer = void 0;\r\n var temp = void 0;\r\n var tempData = void 0;\r\n var tempIndex = 1;\r\n var wrapperleng = void 0;\r\n var remaining = void 0;\r\n var downIconWidth = 0;\r\n this.overFlowWrapper.innerHTML = '';\r\n // eslint-disable-next-line\r\n var l10nLocale = { overflowCountTemplate: '+${count} more..', totalCountTemplate: '${count} selected' };\r\n this.l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\r\n var remainContent = this.l10n.getConstant('overflowCountTemplate');\r\n var remainElement = this.createElement('span', { className: REMAIN_WRAPPER });\r\n // eslint-disable-next-line\r\n var compiledString = compile(remainContent);\r\n // eslint-disable-next-line\r\n var totalCompiledString = compile(this.l10n.getConstant('totalCountTemplate'));\r\n remainElement.appendChild(compiledString({ 'count': this.value.length }, this, 'overflowCountTemplate', null, !this.isStringTemplate)[0]);\r\n this.overFlowWrapper.appendChild(remainElement);\r\n var remainSize = remainElement.offsetWidth;\r\n remove(remainElement);\r\n if (this.showDropDownIcon) {\r\n downIconWidth = select('.' + DDTICON, this.inputWrapper).offsetWidth;\r\n }\r\n if (!isNOU(this.value)) {\r\n if (this.mode !== 'Box') {\r\n for (var index = 0; !isNOU(this.value[index]); index++) {\r\n data += (index === 0) ? '' : this.delimiterChar + ' ';\r\n temp = this.getOverflowVal(index);\r\n data += temp;\r\n temp = this.overFlowWrapper.innerHTML;\r\n this.overFlowWrapper.innerHTML = data;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n overAllContainer = this.inputWrapper.offsetWidth;\r\n if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {\r\n if (tempData !== undefined && tempData !== '') {\r\n temp = tempData;\r\n index = tempIndex + 1;\r\n }\r\n this.overFlowWrapper.innerHTML = temp;\r\n remaining = this.value.length - index;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) >= overAllContainer)\r\n && wrapperleng !== 0 && this.overFlowWrapper.innerHTML !== '') {\r\n var textArr = this.overFlowWrapper.innerHTML.split(this.delimiterChar);\r\n textArr.pop();\r\n this.overFlowWrapper.innerHTML = textArr.join(this.delimiterChar);\r\n remaining++;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n }\r\n break;\r\n }\r\n else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) <= overAllContainer) {\r\n tempData = data;\r\n tempIndex = index;\r\n }\r\n else if (index === 0) {\r\n tempData = '';\r\n tempIndex = -1;\r\n }\r\n }\r\n }\r\n else {\r\n addClass([this.chipWrapper], HIDEICON);\r\n var ele = this.chipWrapper.cloneNode(true);\r\n var chips = selectAll('.' + CHIP, ele);\r\n for (var i = 0; i < chips.length; i++) {\r\n temp = this.overFlowWrapper.innerHTML;\r\n this.overFlowWrapper.appendChild(chips[i]);\r\n data = this.overFlowWrapper.innerHTML;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n overAllContainer = this.inputWrapper.offsetWidth;\r\n if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {\r\n if (tempData !== undefined && tempData !== '') {\r\n temp = tempData;\r\n i = tempIndex + 1;\r\n }\r\n this.overFlowWrapper.innerHTML = temp;\r\n remaining = this.value.length - i;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) >= overAllContainer)\r\n && wrapperleng !== 0 && this.overFlowWrapper.innerHTML !== '') {\r\n this.overFlowWrapper.removeChild(this.overFlowWrapper.lastChild);\r\n remaining++;\r\n wrapperleng = this.overFlowWrapper.offsetWidth;\r\n }\r\n break;\r\n }\r\n else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) <= overAllContainer) {\r\n tempData = data;\r\n tempIndex = i;\r\n }\r\n else if (i === 0) {\r\n tempData = '';\r\n tempIndex = -1;\r\n }\r\n }\r\n }\r\n }\r\n if (remaining > 0) {\r\n this.overFlowWrapper.appendChild(this.updateRemainTemplate(remainElement, remaining, compiledString, totalCompiledString));\r\n }\r\n if (this.mode === 'Box' && !this.overFlowWrapper.classList.contains(TOTAL_COUNT_WRAPPER)) {\r\n addClass([remainElement], REMAIN_COUNT);\r\n }\r\n }\r\n else {\r\n this.overFlowWrapper.innerHTML = '';\r\n addClass([this.overFlowWrapper], HIDEICON);\r\n }\r\n this.updateDelimMode();\r\n };\r\n DropDownTree.prototype.updateRemainTemplate = function (remainElement, remaining, \r\n // eslint-disable-next-line\r\n compiledString, \r\n // eslint-disable-next-line\r\n totalCompiledString) {\r\n if (this.overFlowWrapper.firstChild && this.overFlowWrapper.firstChild.nodeType === 3 &&\r\n this.overFlowWrapper.firstChild.nodeValue === '') {\r\n this.overFlowWrapper.removeChild(this.overFlowWrapper.firstChild);\r\n }\r\n remainElement.innerHTML = '';\r\n remainElement.appendChild((this.overFlowWrapper.firstChild && (this.overFlowWrapper.firstChild.nodeType === 3 || this.mode === 'Box')) ?\r\n compiledString({ 'count': remaining }, this, 'overflowCountTemplate', null, !this.isStringTemplate)[0] :\r\n totalCompiledString({ 'count': remaining }, this, 'totalCountTemplate', null, !this.isStringTemplate)[0]);\r\n if (this.overFlowWrapper.firstChild && (this.overFlowWrapper.firstChild.nodeType === 3 || this.mode === 'Box')) {\r\n removeClass([this.overFlowWrapper], TOTAL_COUNT_WRAPPER);\r\n }\r\n else {\r\n addClass([this.overFlowWrapper], TOTAL_COUNT_WRAPPER);\r\n removeClass([this.overFlowWrapper], REMAIN_COUNT);\r\n }\r\n return remainElement;\r\n };\r\n DropDownTree.prototype.getOverflowVal = function (index) {\r\n // eslint-disable-next-line\r\n var selectedData = this.getSelectedData(this.value[index]);\r\n return getValue(this.treeSettings.loadOnDemand ? this.fields.text : 'text', selectedData);\r\n };\r\n DropDownTree.prototype.updateDelimMode = function () {\r\n if (this.mode !== 'Box') {\r\n if (select('.' + REMAIN_WRAPPER, this.overFlowWrapper) && !this.overFlowWrapper.classList.contains(TOTAL_COUNT_WRAPPER)) {\r\n addClass([this.overFlowWrapper], REMAIN_COUNT);\r\n addClass([this.overFlowWrapper], SHOW_TEXT);\r\n }\r\n else {\r\n this.overFlowWrapper.classList.remove(REMAIN_COUNT);\r\n removeClass([this.overFlowWrapper], REMAIN_COUNT);\r\n }\r\n }\r\n else if (select('.' + REMAIN_WRAPPER, this.overFlowWrapper)) {\r\n this.overFlowWrapper.classList.remove(REMAIN_COUNT);\r\n }\r\n };\r\n DropDownTree.prototype.createHiddenElement = function () {\r\n if (this.allowMultiSelection || this.showCheckBox) {\r\n this.hiddenElement = this.createElement('select', {\r\n attrs: { 'aria-hidden': 'true', 'class': HIDDENELEMENT, 'tabindex': '-1', 'multiple': '' }\r\n });\r\n }\r\n else {\r\n this.hiddenElement = this.createElement('select', {\r\n attrs: { 'aria-hidden': 'true', 'tabindex': '-1', 'class': HIDDENELEMENT }\r\n });\r\n }\r\n prepend([this.hiddenElement], this.inputWrapper);\r\n this.validationAttribute();\r\n };\r\n DropDownTree.prototype.createClearIcon = function () {\r\n this.overAllClear = this.createElement('span', {\r\n className: CLOSEICON_CLASS\r\n });\r\n addClass([this.overAllClear], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CLEAR);\r\n if (this.showClearButton) {\r\n this.inputWrapper.insertBefore(this.overAllClear, this.inputObj.buttons[0]);\r\n }\r\n };\r\n DropDownTree.prototype.validationAttribute = function () {\r\n var name = this.inputEle.getAttribute('name') ? this.inputEle.getAttribute('name') : this.inputEle.getAttribute('id');\r\n this.hiddenElement.setAttribute('name', name);\r\n this.inputEle.removeAttribute('name');\r\n var attributes = ['required', 'aria-required', 'form'];\r\n for (var i = 0; i < attributes.length; i++) {\r\n var attr = this.inputEle.getAttribute(attributes[i]);\r\n if (attr) {\r\n this.hiddenElement.setAttribute(attributes[i], attr);\r\n this.inputEle.removeAttribute(attributes[i]);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.createChip = function () {\r\n if (!this.inputWrapper.contains(this.chipWrapper)) {\r\n this.chipWrapper = this.createElement('span', {\r\n className: CHIP_WRAPPER\r\n });\r\n this.chipCollection = this.createElement('span', {\r\n className: CHIP_COLLECTION\r\n });\r\n this.chipWrapper.appendChild(this.chipCollection);\r\n this.inputWrapper.insertBefore(this.chipWrapper, this.hiddenElement);\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n var isValid = this.getValidMode();\r\n if (isValid && this.value !== null && (this.value && this.value.length !== 0)) {\r\n addClass([this.inputEle], CHIP_INPUT);\r\n }\r\n else if (this.value === null || (this.value && this.value.length === 0)) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.getValidMode = function () {\r\n if (this.allowMultiSelection || this.showCheckBox) {\r\n return this.mode === 'Box' ? true : (this.mode === 'Default' && this.inputFocus) ? true : false;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n DropDownTree.prototype.createSelectAllWrapper = function () {\r\n this.checkAllParent = this.createElement('div', {\r\n className: CHECKALLPARENT, attrs: { 'tabindex': '0' }\r\n });\r\n this.selectAllSpan = this.createElement('span', {\r\n className: ALLTEXT\r\n });\r\n this.selectAllSpan.textContent = '';\r\n var ele = closest(this.element, '.' + BIGGER);\r\n var touchClass = isNOU(ele) ? '' : SMALL;\r\n this.checkBoxElement = createCheckBox(this.createElement, true, { cssClass: touchClass });\r\n this.checkBoxElement.setAttribute('role', 'checkbox');\r\n this.checkAllParent.appendChild(this.checkBoxElement);\r\n this.checkAllParent.appendChild(this.selectAllSpan);\r\n this.setLocale();\r\n EventHandler.add(this.checkAllParent, 'mouseup', this.clickHandler, this);\r\n this.wireCheckAllWrapperEvents();\r\n };\r\n DropDownTree.prototype.clickHandler = function (e) {\r\n var target;\r\n if ((e.currentTarget && e.currentTarget.classList.contains(CHECKALLPARENT))) {\r\n target = e.currentTarget.firstElementChild.lastElementChild;\r\n }\r\n else {\r\n target = e.target;\r\n }\r\n this.checkWrapper = closest(target, '.' + CHECKBOXWRAP);\r\n if (!isNOU(this.checkWrapper)) {\r\n this.isClicked = true;\r\n var checkElement = select('.' + CHECKBOXFRAME, this.checkWrapper);\r\n this.changeState(this.checkWrapper, checkElement.classList.contains(CHECK) ? 'uncheck' : 'check', e);\r\n this.isClicked = false;\r\n }\r\n e.preventDefault();\r\n };\r\n DropDownTree.prototype.changeState = function (wrapper, state, e) {\r\n var ariaState;\r\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\r\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\r\n frameSpan.classList.add(CHECK);\r\n ariaState = 'true';\r\n if (!this.isReverseUpdate) {\r\n this.treeObj.checkAll();\r\n if (!this.changeOnBlur) {\r\n this.triggerChangeEvent(e);\r\n }\r\n }\r\n this.setLocale(true);\r\n }\r\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK))) {\r\n frameSpan.classList.remove(CHECK);\r\n ariaState = 'false';\r\n if (!this.isReverseUpdate) {\r\n this.treeObj.uncheckAll();\r\n if (!this.changeOnBlur) {\r\n this.triggerChangeEvent(e);\r\n }\r\n }\r\n this.setLocale(false);\r\n }\r\n this.setMultiSelect();\r\n this.ensurePlaceHolder();\r\n ariaState = state === 'check' ? 'true' : 'false';\r\n if (!isNOU(ariaState)) {\r\n wrapper.setAttribute('aria-checked', ariaState);\r\n }\r\n };\r\n DropDownTree.prototype.setLocale = function (unSelect) {\r\n if (!this.selectAllSpan) {\r\n return;\r\n }\r\n if (this.selectAllText !== 'Select All' || this.unSelectAllText !== 'Unselect All') {\r\n var template = unSelect ? this.unSelectAllText : this.selectAllText;\r\n this.selectAllSpan.textContent = '';\r\n // eslint-disable-next-line\r\n var compiledString = compile(template);\r\n var templateName = unSelect ? 'unSelectAllText' : 'selectAllText';\r\n for (var _i = 0, _a = compiledString({}, this, templateName, null, !this.isStringTemplate); _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n this.selectAllSpan.textContent = item.textContent;\r\n }\r\n }\r\n else {\r\n this.selectAllSpan.textContent = unSelect ? this.unSelectAllText : this.selectAllText;\r\n }\r\n };\r\n DropDownTree.prototype.setAttributes = function () {\r\n this.inputEle.setAttribute('tabindex', '-1');\r\n var id = this.element.getAttribute('id');\r\n this.hiddenElement.id = id + '_hidden';\r\n this.inputWrapper.setAttribute('tabindex', '0');\r\n attributes(this.inputWrapper, this.getAriaAttributes());\r\n };\r\n DropDownTree.prototype.setHTMLAttributes = function () {\r\n if (Object.keys(this.htmlAttributes).length) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var htmlAttr = _a[_i];\r\n if (htmlAttr === 'class') {\r\n this.inputWrapper.classList.add(this.htmlAttributes[htmlAttr]);\r\n }\r\n else if (htmlAttr === 'disabled' && this.htmlAttributes[htmlAttr] === 'disabled') {\r\n this.setProperties({ enabled: false }, true);\r\n this.setEnable();\r\n }\r\n else if (htmlAttr === 'readonly' && !isNOU(this.htmlAttributes[htmlAttr])) {\r\n this.setProperties({ readonly: true }, true);\r\n this.dataBind();\r\n }\r\n else if (htmlAttr === 'style') {\r\n this.inputWrapper.setAttribute('style', this.htmlAttributes[htmlAttr]);\r\n }\r\n else {\r\n var defaultAttr = ['title', 'id', 'placeholder', 'aria-placeholder',\r\n 'role', 'autocorrect', 'autocomplete', 'autocapitalize', 'spellcheck', 'minlength', 'maxlength'];\r\n var validateAttr = ['name', 'required'];\r\n if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {\r\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n else if (defaultAttr.indexOf(htmlAttr) > -1) {\r\n if (htmlAttr === 'placeholder') {\r\n Input.setPlaceholder(this.htmlAttributes[htmlAttr], this.inputEle);\r\n }\r\n else {\r\n this.inputEle.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n }\r\n else {\r\n this.inputWrapper.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateDataAttribute = function () {\r\n var value = this.htmlAttributes;\r\n var invalidAttr = ['class', 'style', 'id', 'type'];\r\n var attr = {};\r\n for (var a = 0; a < this.element.attributes.length; a++) {\r\n if (invalidAttr.indexOf(this.element.attributes[a].name) === -1 &&\r\n !(this.element.attributes[a].name === 'readonly')) {\r\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\r\n }\r\n }\r\n extend(attr, value, attr);\r\n this.setProperties({ htmlAttributes: attr }, true);\r\n };\r\n DropDownTree.prototype.showOverAllClear = function () {\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n if (this.overAllClear) {\r\n var isValue = this.value ? (this.value.length ? true : false) : false;\r\n if (isValue && this.showClearButton) {\r\n removeClass([this.overAllClear], HIDEICON);\r\n addClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n else {\r\n addClass([this.overAllClear], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.setTreeValue = function () {\r\n if (this.value !== null && this.value.length !== 0) {\r\n // eslint-disable-next-line\r\n var data = void 0;\r\n if (this.showCheckBox || this.allowMultiSelection) {\r\n for (var i = 0; i < this.value.length; i++) {\r\n data = this.treeObj.getTreeData(this.value[i])[0];\r\n if (isNOU(data)) {\r\n this.value.splice(this.value.indexOf(this.value[i]), 1);\r\n }\r\n }\r\n if (this.value.length !== 0) {\r\n this.setValidValue();\r\n }\r\n }\r\n else {\r\n data = this.treeObj.getTreeData(this.value[0])[0];\r\n if (!isNOU(data)) {\r\n this.setProperties({ text: data[this.fields.text] }, true);\r\n this.setValidValue();\r\n }\r\n else {\r\n this.setProperties({ value: this.currentValue }, true);\r\n }\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.setTreeText = function () {\r\n if (this.value !== null && !this.isInitialized) {\r\n return;\r\n }\r\n if (this.text !== null) {\r\n // eslint-disable-next-line\r\n var data = void 0;\r\n var valArr = [];\r\n if (this.showCheckBox || this.allowMultiSelection) {\r\n var textArr = this.text.split(this.delimiterChar);\r\n for (var i = 0; i < textArr.length; i++) {\r\n data = this.getItems(textArr[i]);\r\n if (!isNOU(data)) {\r\n valArr.push(data[this.fields.value].toString());\r\n }\r\n }\r\n if (valArr.length !== 0) {\r\n this.oldValue = this.value;\r\n this.setProperties({ value: valArr }, true);\r\n this.setValidValue();\r\n }\r\n else {\r\n this.setProperties({ text: this.currentText }, true);\r\n }\r\n }\r\n else {\r\n data = this.getItems(this.text);\r\n if (!isNOU(data)) {\r\n this.oldValue = this.value;\r\n this.setProperties({ value: [data[this.fields.value].toString()] }, true);\r\n this.setValidValue();\r\n }\r\n else {\r\n this.setProperties({ text: this.currentText }, true);\r\n }\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.setSelectedValue = function () {\r\n if (this.value != null) {\r\n return;\r\n }\r\n if (!this.isInitialized) {\r\n this.oldValue = this.value;\r\n if (this.treeObj.selectedNodes.length > 0 && !this.showCheckBox) {\r\n this.setProperties({ value: this.treeObj.selectedNodes }, true);\r\n if (this.allowMultiSelection) {\r\n this.updateMode();\r\n }\r\n }\r\n else if (this.showCheckBox && this.treeObj.checkedNodes) {\r\n if (this.treeObj.checkedNodes.length > 0) {\r\n this.setProperties({ value: this.treeObj.checkedNodes }, true);\r\n setValue('selectedNodes', [], this.treeObj);\r\n this.treeObj.dataBind();\r\n this.updateMode();\r\n }\r\n }\r\n this.updateSelectedValues();\r\n this.currentText = this.text;\r\n this.currentValue = this.value;\r\n }\r\n };\r\n DropDownTree.prototype.setValidValue = function () {\r\n var _this = this;\r\n if (!this.showCheckBox && !this.allowMultiSelection) {\r\n Input.setValue(this.text, this.inputEle, this.floatLabelType);\r\n var id = this.value[0].toString();\r\n if (this.treeObj.selectedNodes[0] !== id) {\r\n setValue('selectedNodes', [id], this.treeObj);\r\n }\r\n }\r\n else {\r\n if (this.showCheckBox) {\r\n var difference = this.value.filter(function (e) {\r\n return _this.treeObj.checkedNodes.indexOf(e) === -1;\r\n });\r\n if (difference.length > 0 || this.treeSettings.autoCheck) {\r\n this.treeObj.checkedNodes = this.value.slice();\r\n this.treeObj.dataBind();\r\n this.setMultiSelect();\r\n }\r\n }\r\n else {\r\n this.treeObj.selectedNodes = this.value.slice();\r\n this.selectedText = [];\r\n this.updateSelectedValues();\r\n }\r\n this.treeObj.dataBind();\r\n }\r\n this.currentText = this.text;\r\n this.currentValue = this.value;\r\n if (this.isInitialized) {\r\n this.triggerChangeEvent();\r\n }\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.getItems = function (givenText) {\r\n // eslint-disable-next-line\r\n var data;\r\n if (this.treeDataType === 1) {\r\n for (var i = 0; i < this.treeItems.length; i++) {\r\n // eslint-disable-next-line\r\n var text = getValue(this.fields.text, this.treeItems[i]);\r\n if (!isNOU(this.treeItems[i]) && !isNOU(text) && text === givenText) {\r\n data = this.treeItems[i];\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n data = this.getNestedItems(this.treeItems, this.fields, givenText);\r\n }\r\n return data;\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.getNestedItems = function (data, field, givenText) {\r\n // eslint-disable-next-line\r\n var newData;\r\n for (var i = 0, objlen = data.length; i < objlen; i++) {\r\n // eslint-disable-next-line\r\n var dataId = getValue(this.fields.text, data[i]);\r\n if (data[i] && dataId && dataId.toString() === givenText) {\r\n return data[i];\r\n }\r\n else if (typeof field.child === 'string' && !isNOU(getValue(field.child, data[i]))) {\r\n // eslint-disable-next-line\r\n var childData = getValue(field.child, data[i]);\r\n // eslint-disable-next-line\r\n newData = this.getNestedItems(childData, this.getChildType(field), givenText);\r\n if (newData !== undefined) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', data[i]))) {\r\n var child = 'child';\r\n // eslint-disable-next-line\r\n newData = this.getNestedItems(getValue(child, data[i]), this.getChildType(field), givenText);\r\n if (newData !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return newData;\r\n };\r\n DropDownTree.prototype.getChildType = function (mapper) {\r\n return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;\r\n };\r\n /* To render the treeview */\r\n DropDownTree.prototype.renderTree = function () {\r\n this.treeObj = new TreeView({\r\n fields: this.getTreeFields(this.fields),\r\n enableRtl: this.enableRtl,\r\n nodeSelected: this.onNodeSelected.bind(this),\r\n nodeChecked: this.onNodeChecked.bind(this),\r\n nodeChecking: this.beforeCheck.bind(this),\r\n actionFailure: this.onActionFailure.bind(this),\r\n nodeClicked: this.onNodeClicked.bind(this),\r\n dataBound: this.OnDataBound.bind(this),\r\n allowMultiSelection: this.allowMultiSelection,\r\n showCheckBox: this.showCheckBox,\r\n autoCheck: this.treeSettings.autoCheck,\r\n sortOrder: this.sortOrder,\r\n expandOn: this.treeSettings.expandOn,\r\n loadOnDemand: this.treeSettings.loadOnDemand,\r\n nodeSelecting: this.onBeforeSelect.bind(this),\r\n nodeTemplate: this.itemTemplate\r\n });\r\n this.treeObj.appendTo('#' + this.tree.id);\r\n };\r\n /* To render the popup element */\r\n DropDownTree.prototype.renderPopup = function () {\r\n var _this = this;\r\n if (this.isFilteredData) {\r\n this.filterObj.value = '';\r\n this.treeObj.fields = this.getTreeFields(this.fields);\r\n this.isFilterRestore = true;\r\n this.isFilteredData = false;\r\n this.hideCheckAll(false);\r\n }\r\n var isCancelled = false;\r\n var args = { cancel: false };\r\n this.trigger('beforeOpen', args, function (args) {\r\n if (!args.cancel) {\r\n addClass([_this.inputWrapper], [ICONANIMATION]);\r\n if (_this.isFirstRender) {\r\n _this.popupEle = _this.createElement('div', {\r\n id: _this.element.id + '_popup', className: POPUP_CLASS + ' ' + (_this.cssClass != null ? _this.cssClass : '')\r\n });\r\n document.body.appendChild(_this.popupEle);\r\n _this.createPopup(_this.popupEle);\r\n }\r\n else {\r\n _this.popupEle = _this.popupObj.element;\r\n }\r\n }\r\n else {\r\n isCancelled = true;\r\n }\r\n if (_this.isFirstRender && !isCancelled) {\r\n prepend([_this.popupDiv], _this.popupEle);\r\n removeClass([_this.popupDiv], DDTHIDEICON);\r\n if (_this.allowFiltering) {\r\n _this.renderFilter();\r\n }\r\n if (_this.showCheckBox && _this.showSelectAll && (!_this.popupDiv.classList.contains(NODATA))) {\r\n _this.createSelectAllWrapper();\r\n _this.popupEle.insertBefore(_this.checkAllParent, _this.popupDiv);\r\n }\r\n if (_this.headerTemplate) {\r\n _this.setHeaderTemplate();\r\n }\r\n if (_this.footerTemplate) {\r\n _this.setFooterTemplate();\r\n }\r\n _this.isFirstRender = false;\r\n /* eslint-disable */\r\n if (_this.hasTemplate && _this.portals) {\r\n _this.portals = _this.portals.concat(_this.treeObj.portals);\r\n /* eslint-enable */\r\n _this.renderReactTemplates();\r\n }\r\n }\r\n if (!isCancelled) {\r\n attributes(_this.inputWrapper, { 'aria-expanded': 'true' });\r\n _this.popupObj.show(null, (_this.zIndex === 1000) ? _this.inputEle : null);\r\n removeClass([_this.popupEle], DDTHIDEICON);\r\n _this.updatePopupHeight();\r\n _this.popupObj.refreshPosition();\r\n if (!(_this.showCheckBox && _this.showSelectAll) && (!_this.popupDiv.classList.contains(NODATA)\r\n && _this.treeItems.length > 0)) {\r\n _this.treeObj.element.focus();\r\n }\r\n if (_this.checkSelectAll && _this.checkBoxElement) {\r\n var wrap = closest(_this.checkBoxElement, '.' + CHECKBOXWRAP);\r\n _this.changeState(wrap, 'check');\r\n _this.checkSelectAll = false;\r\n }\r\n if (_this.allowFiltering) {\r\n removeClass([_this.inputWrapper], [INPUTFOCUS]);\r\n _this.filterObj.element.focus();\r\n }\r\n var eventArgs = { popup: _this.popupObj };\r\n _this.trigger('open', eventArgs);\r\n }\r\n });\r\n };\r\n DropDownTree.prototype.updatePopupHeight = function () {\r\n if (this.isFirstRender) {\r\n return;\r\n }\r\n var popupHeight = this.getHeight();\r\n this.popupEle.style.maxHeight = popupHeight;\r\n if (this.allowFiltering) {\r\n var height = Math.round(this.filterContainer.getBoundingClientRect().height);\r\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\r\n }\r\n if (this.headerTemplate) {\r\n var height = Math.round(this.header.getBoundingClientRect().height);\r\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\r\n }\r\n if (this.showCheckBox && this.showSelectAll) {\r\n var height = Math.round(this.checkAllParent.getBoundingClientRect().height);\r\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\r\n }\r\n if (this.footerTemplate) {\r\n var height = Math.round(this.footer.getBoundingClientRect().height);\r\n popupHeight = formatUnit(parseInt(popupHeight, 10) - height + 'px');\r\n }\r\n var border = parseInt(window.getComputedStyle(this.popupEle).borderTopWidth, 10);\r\n border = border + parseInt(window.getComputedStyle(this.popupEle).borderBottomWidth, 10);\r\n popupHeight = formatUnit(parseInt(popupHeight, 10) - border + 'px');\r\n this.popupDiv.style.maxHeight = popupHeight;\r\n };\r\n DropDownTree.prototype.createPopup = function (element) {\r\n var _this = this;\r\n if (this.isFirstRender) {\r\n this.popupObj = new Popup(element, {\r\n width: this.setWidth(),\r\n targetType: 'relative',\r\n collision: { X: 'flip', Y: 'flip' },\r\n relateTo: this.inputWrapper,\r\n zIndex: this.zIndex,\r\n enableRtl: this.enableRtl,\r\n position: { X: 'left', Y: 'bottom' },\r\n close: function () {\r\n _this.isPopupOpen = false;\r\n },\r\n open: function () {\r\n EventHandler.add(document, 'mousedown', _this.onDocumentClick, _this);\r\n _this.isPopupOpen = true;\r\n },\r\n targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hidePopup();\r\n }\r\n }\r\n });\r\n }\r\n };\r\n /* To calculate the width when change via set model */\r\n DropDownTree.prototype.setElementWidth = function (inputWidth) {\r\n var ddElement = this.inputWrapper;\r\n if (!isNOU(inputWidth)) {\r\n if (typeof inputWidth === 'number') {\r\n ddElement.style.width = formatUnit(inputWidth);\r\n }\r\n else if (typeof inputWidth === 'string') {\r\n ddElement.style.width = (inputWidth.match(/px|%|em/)) ? (inputWidth) :\r\n (formatUnit(inputWidth));\r\n }\r\n }\r\n };\r\n /* To calculate the width of the popup */\r\n DropDownTree.prototype.setWidth = function () {\r\n var width = formatUnit(this.popupWidth);\r\n if (width.indexOf('%') > -1) {\r\n width = (this.inputWrapper.offsetWidth * parseFloat(width) / 100).toString() + 'px';\r\n }\r\n else if (typeof this.popupWidth === 'string') {\r\n width = (this.popupWidth.match(/px|em/)) ? (this.popupWidth) : width;\r\n }\r\n return width;\r\n };\r\n /* To calculate the height of the popup */\r\n DropDownTree.prototype.getHeight = function () {\r\n var height = formatUnit(this.popupHeight);\r\n if (height.indexOf('%') > -1) {\r\n // Will set the height of the popup according to the view port height\r\n height = (document.documentElement.clientHeight * parseFloat(height) / 100).toString() + 'px';\r\n }\r\n else if (typeof this.popupHeight === 'string') {\r\n height = (this.popupHeight.match(/px|em/)) ? (this.popupHeight) : height;\r\n }\r\n return height;\r\n };\r\n DropDownTree.prototype.onDocumentClick = function (e) {\r\n var target = e.target;\r\n var isTree = closest(target, '.' + PARENTITEM);\r\n var isFilter = closest(target, '.' + FILTERWRAP);\r\n var isHeader = closest(target, '.' + HEADER);\r\n var isFooter = closest(target, '.' + FOOTER);\r\n var isScroller = target.classList.contains(DROPDOWN) ? true :\r\n (matches(target, '.e-ddt .e-popup') || matches(target, '.e-ddt .e-treeview'));\r\n if ((this.isPopupOpen && (this.inputWrapper.contains(target) || isTree || isFilter || isScroller || isHeader || isFooter)) ||\r\n ((this.allowMultiSelection || this.showCheckBox) && (this.isPopupOpen && target.classList.contains(CHIP_CLOSE) ||\r\n (this.isPopupOpen && (target.classList.contains(CHECKALLPARENT) || target.classList.contains(ALLTEXT)\r\n || target.classList.contains(CHECKBOXFRAME)))))) {\r\n this.isDocumentClick = false;\r\n e.preventDefault();\r\n }\r\n else if (!this.inputWrapper.contains(target) && this.inputFocus) {\r\n this.focusOut(e);\r\n }\r\n };\r\n DropDownTree.prototype.onActionFailure = function (e) {\r\n this.trigger('actionFailure', e);\r\n this.l10nUpdate(true);\r\n addClass([this.popupDiv], NODATA);\r\n };\r\n DropDownTree.prototype.OnDataBound = function (args) {\r\n this.treeItems = args.data;\r\n if (this.treeItems.length <= 0) {\r\n this.l10nUpdate();\r\n addClass([this.popupDiv], NODATA);\r\n this.hideCheckAll(true);\r\n }\r\n else if (this.popupDiv.classList.contains(NODATA) && this.treeItems.length >= 1) {\r\n removeClass([this.popupDiv], NODATA);\r\n this.hideCheckAll(false);\r\n }\r\n this.treeDataType = this.getTreeDataType(this.treeItems, this.fields);\r\n if (this.isFirstRender && this.isRemoteData) {\r\n this.setTreeValue();\r\n this.setTreeText();\r\n this.updateHiddenValue();\r\n this.setSelectedValue();\r\n if (!this.wrapText) {\r\n this.updateView();\r\n }\r\n this.treeObj.element.focus();\r\n }\r\n var eventArgs = { data: args.data };\r\n this.trigger('dataBound', eventArgs);\r\n if (this.isFilteredData) {\r\n this.treeObj.expandAll();\r\n }\r\n if (this.isFilterRestore) {\r\n this.restoreFilterSelection();\r\n this.isFilterRestore = false;\r\n }\r\n };\r\n DropDownTree.prototype.restoreFilterSelection = function () {\r\n if (this.showCheckBox) {\r\n this.treeObj.checkedNodes = this.value ? this.value : [];\r\n }\r\n else {\r\n this.treeObj.selectedNodes = this.value ? this.value : [];\r\n }\r\n };\r\n /* To set cssclass for the dropdowntree */\r\n DropDownTree.prototype.setCssClass = function (newClass, oldClass) {\r\n var elements = this.popupObj ? [this.inputWrapper, this.popupObj.element] : [this.inputWrapper];\r\n if (!isNOU(oldClass) && oldClass !== '') {\r\n removeClass(elements, oldClass.split(' '));\r\n }\r\n if (!isNOU(newClass) && newClass !== '') {\r\n addClass(elements, newClass.split(' '));\r\n }\r\n };\r\n DropDownTree.prototype.setEnableRTL = function (state) {\r\n if (state) {\r\n this.inputWrapper.classList.add(RTL);\r\n }\r\n else {\r\n this.inputWrapper.classList.remove(RTL);\r\n }\r\n if (this.popupObj) {\r\n this.popupObj.enableRtl = state;\r\n this.popupObj.dataBind();\r\n }\r\n if (this.treeObj) {\r\n this.treeObj.enableRtl = state;\r\n this.treeObj.dataBind();\r\n }\r\n };\r\n /* To set enable property */\r\n DropDownTree.prototype.setEnable = function () {\r\n Input.setEnabled(this.enabled, this.inputEle);\r\n if (this.enabled) {\r\n removeClass([this.inputWrapper], DISABLED);\r\n this.inputEle.setAttribute('aria-disabled', 'false');\r\n this.inputWrapper.setAttribute('aria-disabled', 'false');\r\n }\r\n else {\r\n if (this.isPopupOpen) {\r\n this.hidePopup();\r\n }\r\n addClass([this.inputWrapper], DISABLED);\r\n if (this.inputWrapper && this.inputWrapper.classList.contains(INPUTFOCUS)) {\r\n removeClass([this.inputWrapper], [INPUTFOCUS]);\r\n }\r\n this.inputEle.setAttribute('aria-disabled', 'true');\r\n this.inputWrapper.setAttribute('aria-disabled', 'true');\r\n }\r\n };\r\n DropDownTree.prototype.cloneFields = function (fields) {\r\n var clonedField = {\r\n dataSource: fields.dataSource, value: fields.value, text: fields.text, parentValue: fields.parentValue,\r\n child: this.cloneChildField(fields.child), hasChildren: fields.hasChildren, expanded: fields.expanded,\r\n iconCss: fields.iconCss, imageUrl: fields.imageUrl, htmlAttributes: fields.htmlAttributes, query: fields.query,\r\n selected: fields.selected, tableName: fields.tableName, tooltip: fields.tooltip\r\n };\r\n return clonedField;\r\n };\r\n DropDownTree.prototype.cloneChildField = function (fields) {\r\n if (typeof fields === 'string') {\r\n return fields;\r\n }\r\n else {\r\n var clonedField = {\r\n dataSource: fields.dataSource, value: fields.value, text: fields.text, parentValue: fields.parentValue,\r\n child: (fields.child ? this.cloneChildField(fields.child) : null), hasChildren: fields.hasChildren,\r\n expanded: fields.expanded, iconCss: fields.iconCss, imageUrl: fields.imageUrl, htmlAttributes: fields.htmlAttributes,\r\n query: fields.query, selected: fields.selected, tableName: fields.tableName, tooltip: fields.tooltip\r\n };\r\n return clonedField;\r\n }\r\n };\r\n DropDownTree.prototype.getTreeFields = function (fields) {\r\n var treeFields = {\r\n dataSource: fields.dataSource, id: fields.value, text: fields.text, parentID: fields.parentValue,\r\n child: this.getTreeChildren(fields.child), hasChildren: fields.hasChildren, expanded: fields.expanded,\r\n iconCss: fields.iconCss, imageUrl: fields.imageUrl, isChecked: fields.selected,\r\n htmlAttributes: fields.htmlAttributes, query: fields.query, selected: fields.selected,\r\n tableName: fields.tableName, tooltip: fields.tooltip\r\n };\r\n return treeFields;\r\n };\r\n DropDownTree.prototype.getTreeChildren = function (mapper) {\r\n if (typeof mapper === 'string') {\r\n return mapper;\r\n }\r\n else if (!isNOU(mapper)) {\r\n mapper = this.getActualProperties(mapper);\r\n var childFields = mapper;\r\n if (mapper.value) {\r\n childFields.id = mapper.value;\r\n }\r\n if (mapper.parentValue) {\r\n childFields.parentID = mapper.parentValue;\r\n }\r\n if (mapper.child) {\r\n childFields.child = this.getTreeChildren(mapper.child);\r\n }\r\n if (mapper.selected && this.showCheckBox) {\r\n childFields.isChecked = mapper.selected;\r\n }\r\n return childFields;\r\n }\r\n return null;\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.getTreeDataType = function (ds, field) {\r\n if (this.fields.dataSource instanceof DataManager) {\r\n for (var i = 0; i < ds.length; i++) {\r\n if ((typeof field.child === 'string') && isNOU(getValue(field.child, ds[i]))) {\r\n return 1;\r\n }\r\n }\r\n return 2;\r\n }\r\n for (var i = 0, len = ds.length; i < len; i++) {\r\n if ((typeof field.child === 'string') && !isNOU(getValue(field.child, ds[i]))) {\r\n return 2;\r\n }\r\n if (!isNOU(getValue(field.parentValue, ds[i])) || !isNOU(getValue(field.hasChildren, ds[i]))) {\r\n return 1;\r\n }\r\n }\r\n return 1;\r\n };\r\n /* Triggers when the tree fields is changed dynamically */\r\n DropDownTree.prototype.setFields = function () {\r\n this.resetValue();\r\n if (this.hasTemplate) {\r\n this.updateTemplate();\r\n }\r\n this.treeObj.fields = this.getTreeFields(this.fields);\r\n this.treeObj.dataBind();\r\n };\r\n DropDownTree.prototype.getEventArgs = function (args) {\r\n // eslint-disable-next-line\r\n var checkData = args.data;\r\n // eslint-disable-next-line\r\n var selectData = args.nodeData;\r\n var state;\r\n if (this.showCheckBox) {\r\n if (args.action === 'check') {\r\n state = 'select';\r\n }\r\n else if (args.action === 'uncheck') {\r\n state = 'un-select';\r\n }\r\n }\r\n var eventArgs = {\r\n action: this.showCheckBox ? state : args.action,\r\n isInteracted: this.isClicked ? true : args.isInteracted,\r\n item: args.node,\r\n itemData: this.showCheckBox ? checkData[0] : selectData\r\n };\r\n return eventArgs;\r\n };\r\n DropDownTree.prototype.onBeforeSelect = function (args) {\r\n if (args.isInteracted) {\r\n this.oldValue = this.value ? this.value.slice() : this.value;\r\n if (this.value === null) {\r\n this.setProperties({ value: [] }, true);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateHiddenValue = function () {\r\n if (this.allowMultiSelection || this.showCheckBox) {\r\n return;\r\n }\r\n if (this.value && this.value.length) {\r\n this.hiddenElement.innerHTML = '';\r\n }\r\n else {\r\n this.hiddenElement.innerHTML = '';\r\n }\r\n };\r\n /* Triggers when the tree node is selected */\r\n DropDownTree.prototype.onNodeSelected = function (args) {\r\n if (this.showCheckBox) {\r\n return;\r\n }\r\n var selectedText;\r\n if (args.isInteracted) {\r\n var id = getValue('id', args.nodeData).toString();\r\n if (!this.allowMultiSelection) {\r\n this.hiddenElement.innerHTML = '';\r\n this.setProperties({ value: [id] }, true);\r\n if (this.itemTemplate) {\r\n selectedText = getValue('text', this.treeObj.getNode(id));\r\n }\r\n else {\r\n selectedText = getValue('text', args.nodeData).toString();\r\n }\r\n Input.setValue(selectedText, this.inputEle, this.floatLabelType);\r\n this.setProperties({ text: selectedText }, true);\r\n this.currentText = this.text;\r\n this.currentValue = this.value;\r\n attributes(this.inputWrapper, { 'aria-describedby': this.element.id });\r\n attributes(this.inputWrapper, { 'aria-activedescendant': id.toString() });\r\n this.updateHiddenValue();\r\n this.showOverAllClear();\r\n this.hidePopup();\r\n this.isNodeSelected = true;\r\n }\r\n else if (this.allowMultiSelection) {\r\n this.setMultiSelect();\r\n }\r\n }\r\n var eventArgs = this.getEventArgs(args);\r\n this.trigger('select', eventArgs);\r\n if (this.isValueChange && !this.changeOnBlur) {\r\n this.triggerChangeEvent(this.keyEventArgs);\r\n this.isValueChange = false;\r\n }\r\n };\r\n DropDownTree.prototype.onNodeClicked = function (args) {\r\n if (!this.changeOnBlur && this.isNodeSelected) {\r\n this.triggerChangeEvent(args.event);\r\n this.isNodeSelected = false;\r\n }\r\n var target = args.event.target;\r\n if ((target.classList.contains('e-fullrow') || target.classList.contains('e-list-text')) && this.showCheckBox) {\r\n this.isClicked = true;\r\n // eslint-disable-next-line\r\n var getNodeDetails = this.treeObj.getNode(args.node);\r\n if (getNodeDetails.isChecked === 'true') {\r\n this.treeObj.uncheckAll([args.node]);\r\n }\r\n else {\r\n this.treeObj.checkAll([args.node]);\r\n }\r\n this.isClicked = false;\r\n this.setMultiSelect();\r\n this.ensurePlaceHolder();\r\n }\r\n if (!this.changeOnBlur && (this.allowMultiSelection || this.showCheckBox)) {\r\n this.triggerChangeEvent(args.event);\r\n }\r\n };\r\n DropDownTree.prototype.onNodeChecked = function (args) {\r\n var eventArgs = this.getEventArgs(args);\r\n this.trigger('select', eventArgs);\r\n if (this.isFilteredData && args.action === 'uncheck') {\r\n var id = getValue('id', args.data[0]).toString();\r\n this.removeSelectedData(id, true);\r\n }\r\n if (!this.isChipDelete && args.isInteracted) {\r\n this.setMultiSelect();\r\n this.ensurePlaceHolder();\r\n }\r\n if (this.showSelectAll && this.checkBoxElement) {\r\n var nodes = this.treeObj.element.querySelectorAll('li');\r\n var checkedNodes = this.treeObj.element.querySelectorAll('li .e-checkbox-wrapper[aria-checked=true]');\r\n var wrap = closest(this.checkBoxElement, '.' + CHECKBOXWRAP);\r\n if (wrap && args.action === 'uncheck') {\r\n this.isReverseUpdate = true;\r\n this.changeState(wrap, 'uncheck');\r\n this.isReverseUpdate = false;\r\n }\r\n else if (wrap && args.action === 'check' && checkedNodes.length === nodes.length) {\r\n this.isReverseUpdate = true;\r\n this.changeState(wrap, 'check');\r\n this.isReverseUpdate = false;\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.beforeCheck = function (args) {\r\n if (args.isInteracted) {\r\n this.oldValue = this.value ? this.value.slice() : this.value;\r\n }\r\n };\r\n DropDownTree.prototype.updateClearButton = function (state) {\r\n if (state) {\r\n if (!this.inputWrapper.contains(this.overAllClear)) {\r\n this.inputEle.parentElement.insertBefore(this.overAllClear, this.inputEle.nextSibling);\r\n }\r\n else {\r\n removeClass([this.overAllClear], HIDEICON);\r\n addClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n }\r\n else {\r\n addClass([this.overAllClear], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CLEAR);\r\n }\r\n if ((this.allowMultiSelection || this.showCheckBox) && this.chipWrapper) {\r\n var chipClose = selectAll('.' + CHIP_CLOSE, this.chipWrapper);\r\n for (var i = 0; i < chipClose.length; i++) {\r\n if (!state) {\r\n addClass([chipClose[i]], HIDEICON);\r\n }\r\n else {\r\n removeClass([chipClose[i]], HIDEICON);\r\n }\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateDropDownIconState = function (state) {\r\n var spinIcon = select('.' + DDTICON, this.inputWrapper);\r\n if (state) {\r\n if (!spinIcon) {\r\n Input.appendSpan(DROPDOWNICON, this.inputWrapper, this.createElement);\r\n }\r\n else {\r\n removeClass([spinIcon], HIDEICON);\r\n }\r\n addClass([this.inputWrapper], SHOW_DD_ICON);\r\n }\r\n else {\r\n addClass([spinIcon], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_DD_ICON);\r\n }\r\n };\r\n DropDownTree.prototype.updateMode = function () {\r\n if (this.mode === 'Custom') {\r\n return;\r\n }\r\n if (this.mode !== 'Delimiter') {\r\n if (!this.inputWrapper.contains(this.chipWrapper)) {\r\n this.createChip();\r\n }\r\n var isValid = this.getValidMode();\r\n if (this.chipWrapper.classList.contains(HIDEICON) && isValid) {\r\n removeClass([this.chipWrapper], HIDEICON);\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n else if (!isValid) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n var isValue = this.value !== null ? (this.value.length !== 0 ? true : false) : false;\r\n if (isValid && isValue) {\r\n addClass([this.inputEle], CHIP_INPUT);\r\n }\r\n else {\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n }\r\n }\r\n else if (this.inputEle.classList.contains(CHIP_INPUT)) {\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n if (this.chipWrapper) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.ensurePlaceHolder = function () {\r\n if (this.value && this.value.length === 0) {\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n if (this.chipWrapper) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.ensureClearIconPosition = function (floatLabelType) {\r\n if (floatLabelType !== 'Never') {\r\n this.inputWrapper.insertBefore(this.overAllClear, this.inputObj.buttons[0]);\r\n }\r\n };\r\n DropDownTree.prototype.setMultiSelectValue = function (newValues) {\r\n if (!this.isFilteredData) {\r\n this.setProperties({ value: newValues }, true);\r\n if (newValues && newValues.length !== 0 && !this.showCheckBox) {\r\n this.treeObj.selectedNodes = this.value.slice();\r\n this.treeObj.dataBind();\r\n }\r\n }\r\n else {\r\n var selectedValues = isNOU(this.value) ? [] : this.value;\r\n for (var i = 0; i < newValues.length; i++) {\r\n if (isNOU(this.value) || this.value.indexOf(newValues[i]) === -1) {\r\n selectedValues.push(newValues[i]);\r\n }\r\n }\r\n this.setProperties({ value: selectedValues }, true);\r\n }\r\n };\r\n DropDownTree.prototype.setMultiSelect = function () {\r\n if (this.showCheckBox && !this.isDynamicChange) {\r\n this.setMultiSelectValue(this.treeObj.checkedNodes.slice());\r\n }\r\n else {\r\n var ddtValue = this.allowMultiSelection ? (this.showCheckBox ? this.treeObj.checkedNodes\r\n : this.treeObj.selectedNodes) : (this.value ? (this.showCheckBox ? this.value : [this.value[0]]) : null);\r\n this.setMultiSelectValue(ddtValue);\r\n if (this.showCheckBox && this.value !== null) {\r\n this.treeObj.checkedNodes = this.value;\r\n this.treeObj.dataBind();\r\n }\r\n }\r\n this.selectedText = [];\r\n var checkSelection = this.allowMultiSelection ? true : (this.showCheckBox ? true : false);\r\n if (this.inputWrapper.contains(this.chipWrapper) && !checkSelection) {\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n detach(this.chipWrapper);\r\n }\r\n var isValid = this.getValidMode();\r\n if (isValid && this.value !== null) {\r\n addClass([this.inputEle], CHIP_INPUT);\r\n if (this.chipWrapper) {\r\n removeClass([this.chipWrapper], HIDEICON);\r\n }\r\n }\r\n var isValue = this.value ? (this.value.length ? true : false) : false;\r\n if (this.chipWrapper && (this.mode === 'Box' && !isValue)) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n }\r\n this.updateSelectedValues();\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.getSelectedData = function (value) {\r\n // eslint-disable-next-line\r\n var data = null;\r\n if (this.isFilteredData) {\r\n for (var i = 0; i < this.selectedData.length; i++) {\r\n if (getValue(this.treeSettings.loadOnDemand ? this.fields.value : 'id', this.selectedData[i]).toString() === value) {\r\n data = this.selectedData[i];\r\n break;\r\n }\r\n }\r\n }\r\n if (isNOU(data)) {\r\n if (this.treeSettings.loadOnDemand) {\r\n data = this.getNodeData(value);\r\n }\r\n else {\r\n data = this.treeObj.getNode(value);\r\n }\r\n if (!isNOU(data)) {\r\n this.selectedData.push(data);\r\n }\r\n }\r\n return data;\r\n };\r\n DropDownTree.prototype.getNodeData = function (id) {\r\n var childItems;\r\n if (isNOU(id)) {\r\n return childItems;\r\n }\r\n else if (this.treeDataType === 1) {\r\n for (var i = 0, objlen = this.treeItems.length; i < objlen; i++) {\r\n var dataId = getValue(this.fields.value, this.treeItems[i]);\r\n if (!isNOU(this.treeItems[i]) && !isNOU(dataId) && dataId.toString() === id) {\r\n return this.treeItems[i];\r\n }\r\n }\r\n }\r\n else {\r\n return this.getChildNodeData(this.treeItems, this.fields, id);\r\n }\r\n return childItems;\r\n };\r\n DropDownTree.prototype.getChildNodeData = function (obj, mapper, id) {\r\n var newChildItems;\r\n if (isNOU(obj)) {\r\n return newChildItems;\r\n }\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var dataValue = getValue(mapper.value, obj[i]);\r\n if (obj[i] && dataValue && dataValue.toString() === id) {\r\n return obj[i];\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n var childNodeData = getValue(mapper.child, obj[i]);\r\n newChildItems = this.getChildNodeData(childNodeData, this.getChildMapperFields(mapper), id);\r\n if (newChildItems !== undefined) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\r\n var child = 'child';\r\n newChildItems = this.getChildNodeData(getValue(child, obj[i]), this.getChildMapperFields(mapper), id);\r\n if (newChildItems !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return newChildItems;\r\n };\r\n DropDownTree.prototype.getChildMapperFields = function (mapper) {\r\n return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;\r\n };\r\n DropDownTree.prototype.removeSelectedData = function (value, muteOnChange) {\r\n var selectedValues = isNOU(this.value) ? [] : this.value.slice();\r\n selectedValues.splice(selectedValues.indexOf(value), 1);\r\n this.setProperties({ value: selectedValues }, muteOnChange);\r\n for (var i = 0; i < this.selectedData.length; i++) {\r\n if (getValue(this.treeSettings.loadOnDemand ? this.fields.value : 'id', this.selectedData[i]).toString() === value) {\r\n this.selectedData.splice(i, 1);\r\n break;\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateSelectedValues = function () {\r\n this.dataValue = '';\r\n var temp;\r\n var text;\r\n var textValue = '';\r\n // eslint-disable-next-line\r\n var selectedData;\r\n this.hiddenElement.innerHTML = '';\r\n var hiddenInputValue = '';\r\n if ((!this.isChipDelete || this.treeSettings.autoCheck) && (this.inputWrapper.contains(this.chipWrapper))) {\r\n this.chipCollection.innerHTML = '';\r\n }\r\n if (!this.isFilteredData) {\r\n this.selectedData = [];\r\n }\r\n if (!isNOU(this.value)) {\r\n for (var i = 0, len = this.value.length; i < len; i++) {\r\n selectedData = this.getSelectedData(this.value[i]);\r\n text = getValue(this.treeSettings.loadOnDemand ? this.fields.text : 'text', selectedData);\r\n this.selectedText.push(text);\r\n temp = this.selectedText[this.selectedText.length - 1];\r\n if (this.selectedText.length > 1) {\r\n this.dataValue += (this.delimiterChar + ' ' + temp);\r\n textValue += (',' + temp);\r\n }\r\n else {\r\n this.dataValue += temp;\r\n textValue += temp;\r\n }\r\n if (this.mode !== 'Custom' && this.mode !== 'Delimiter' && (!this.isChipDelete || this.treeSettings.autoCheck) &&\r\n (this.allowMultiSelection || this.showCheckBox)) {\r\n this.setChipValues(temp, this.value[i]);\r\n }\r\n hiddenInputValue += '';\r\n }\r\n if (this.selectedText.length >= 1) {\r\n this.setProperties({ text: textValue }, true);\r\n }\r\n this.hiddenElement.innerHTML = hiddenInputValue;\r\n if (this.mode === 'Custom' && (this.allowMultiSelection || this.showCheckBox)) {\r\n this.setTagValues();\r\n }\r\n }\r\n var isValid = this.getValidMode();\r\n if (this.mode !== 'Custom' && this.mode !== 'Box' && (this.allowMultiSelection || this.showCheckBox) && !isValid) {\r\n if (this.chipWrapper) {\r\n addClass([this.chipWrapper], HIDEICON);\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n }\r\n Input.setValue(this.dataValue, this.inputEle, this.floatLabelType);\r\n if (textValue === '') {\r\n this.setProperties({ text: null }, true);\r\n }\r\n else {\r\n this.setProperties({ text: textValue }, true);\r\n }\r\n if (this.showClearButton && this.inputFocus) {\r\n this.showOverAllClear();\r\n }\r\n if ((this.allowMultiSelection || this.showCheckBox) && this.popupObj) {\r\n this.popupObj.refreshPosition();\r\n }\r\n this.currentText = this.text;\r\n this.currentValue = this.value;\r\n };\r\n DropDownTree.prototype.setChipValues = function (text, value) {\r\n if (!this.inputWrapper.contains(this.chipWrapper)) {\r\n this.createChip();\r\n }\r\n var chip = this.createElement('span', {\r\n className: CHIP,\r\n attrs: { 'data-value': value }\r\n });\r\n var chipContent = this.createElement('span', { className: CHIP_CONTENT });\r\n var chipClose = this.createElement('span', { className: CHIP_CLOSE + ' ' + ICONS });\r\n chipContent.innerHTML = text;\r\n chip.appendChild(chipContent);\r\n this.chipCollection.appendChild(chip);\r\n if (this.showClearButton) {\r\n chip.appendChild(chipClose);\r\n EventHandler.add(chipClose, 'mousedown', this.removeChip, this);\r\n }\r\n };\r\n DropDownTree.prototype.setTagValues = function () {\r\n if (this.value === null || this.text == null) {\r\n return;\r\n }\r\n if (!this.inputWrapper.contains(this.chipWrapper)) {\r\n this.createChip();\r\n }\r\n if (!this.inputWrapper.classList.contains(SHOW_CHIP)) {\r\n addClass([this.inputWrapper], SHOW_CHIP);\r\n }\r\n var chip = this.createElement('span', {\r\n className: CHIP,\r\n });\r\n if (!this.inputEle.classList.contains(CHIP_INPUT)) {\r\n addClass([this.inputEle], CHIP_INPUT);\r\n }\r\n if (this.chipWrapper.classList.contains(HIDEICON)) {\r\n removeClass([this.chipWrapper], HIDEICON);\r\n }\r\n var chipContent = this.createElement('span', { className: CHIP_CONTENT });\r\n var template = this.customTemplate;\r\n var templateId = this.customTemplateId;\r\n var templatestring = 'customTemplate';\r\n var compiledString = this.templateComplier(template);\r\n var tempArr = compiledString({ 'value': this.value, 'text': this.text }, this, templatestring, templateId, this.isStringTemplate, undefined, chipContent);\r\n if (tempArr) {\r\n tempArr = Array.prototype.slice.call(tempArr);\r\n append(tempArr, chipContent);\r\n }\r\n chip.appendChild(chipContent);\r\n this.chipCollection.appendChild(chip);\r\n };\r\n DropDownTree.prototype.setSelectAllWrapper = function (state) {\r\n if (this.isFirstRender) {\r\n return;\r\n }\r\n if (state && !this.popupEle.contains(this.checkAllParent) && this.showCheckBox) {\r\n this.createSelectAllWrapper();\r\n this.popupEle.insertBefore(this.checkAllParent, this.popupDiv);\r\n }\r\n else if (this.popupEle.contains(this.checkAllParent)) {\r\n detach(this.checkAllParent);\r\n this.checkAllParent = null;\r\n }\r\n };\r\n DropDownTree.prototype.setHeaderTemplate = function () {\r\n if (this.header) {\r\n this.header.innerHTML = '';\r\n }\r\n else {\r\n this.header = this.createElement('div');\r\n addClass([this.header], HEADER);\r\n }\r\n // eslint-disable-next-line\r\n var compiledString = this.templateComplier(this.headerTemplate);\r\n var tempArr = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, undefined, this.header);\r\n if (tempArr) {\r\n tempArr = Array.prototype.slice.call(tempArr);\r\n append(tempArr, this.header);\r\n }\r\n this.popupEle.insertBefore(this.header, this.checkAllParent ? this.checkAllParent : this.popupDiv);\r\n };\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.templateComplier = function (template) {\r\n if (template) {\r\n // eslint-disable-next-line\r\n var e = void 0;\r\n try {\r\n if (document.querySelectorAll(template).length) {\r\n return compile(document.querySelector(template).innerHTML.trim());\r\n }\r\n }\r\n catch (e) {\r\n return compile(template);\r\n }\r\n }\r\n return compile(template);\r\n };\r\n DropDownTree.prototype.setFooterTemplate = function () {\r\n if (this.footer) {\r\n this.footer.innerHTML = '';\r\n }\r\n else {\r\n this.footer = this.createElement('div');\r\n addClass([this.footer], FOOTER);\r\n }\r\n // eslint-disable-next-line\r\n var compiledString = this.templateComplier(this.footerTemplate);\r\n var tempArr = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, undefined, this.footer);\r\n if (tempArr) {\r\n tempArr = Array.prototype.slice.call(tempArr);\r\n append(tempArr, this.footer);\r\n }\r\n append([this.footer], this.popupEle);\r\n };\r\n DropDownTree.prototype.clearAll = function (e) {\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n this.resetValue();\r\n this.showOverAllClear();\r\n if ((this.allowMultiSelection || this.showCheckBox)) {\r\n if (this.popupObj) {\r\n this.popupObj.refreshPosition();\r\n }\r\n if (!this.wrapText) {\r\n this.updateOverflowWrapper(true);\r\n }\r\n }\r\n if (e) {\r\n this.isClearButtonClick = true;\r\n }\r\n if (!this.changeOnBlur) {\r\n this.triggerChangeEvent(e);\r\n }\r\n };\r\n DropDownTree.prototype.removeChip = function (e) {\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n var element = e.target.parentElement;\r\n var value = element.getAttribute('data-value');\r\n if (this.chipCollection) {\r\n if (element) {\r\n remove(element);\r\n }\r\n }\r\n this.isChipDelete = true;\r\n this.isClearButtonClick = true;\r\n this.removeSelectedData(value, true);\r\n this.selectedText = [];\r\n if (this.allowMultiSelection) {\r\n this.treeObj.selectedNodes = this.value.slice();\r\n this.updateSelectedValues();\r\n }\r\n if (this.showCheckBox) {\r\n this.treeObj.uncheckAll([value]);\r\n this.clearCheckAll();\r\n this.setMultiSelect();\r\n }\r\n this.triggerChangeEvent(e);\r\n this.isChipDelete = false;\r\n this.ensurePlaceHolder();\r\n };\r\n DropDownTree.prototype.resetValue = function (isDynamicChange) {\r\n if (this.value == [] && this.text == null) {\r\n return;\r\n }\r\n Input.setValue(null, this.inputEle, this.floatLabelType);\r\n if (!isDynamicChange) {\r\n this.oldValue = this.value;\r\n this.setProperties({ value: [] }, true);\r\n }\r\n this.dataValue = null;\r\n this.setProperties({ text: null }, true);\r\n this.selectedData = [];\r\n setValue('selectedNodes', [], this.treeObj);\r\n this.hiddenElement.innerHTML = '';\r\n if (this.showCheckBox) {\r\n this.treeObj.checkedNodes = [];\r\n this.treeObj.dataBind();\r\n this.setMultiSelect();\r\n this.clearCheckAll();\r\n }\r\n if (this.oldValue === null && !isDynamicChange) {\r\n this.removeValue = true;\r\n }\r\n else if (isDynamicChange) {\r\n this.triggerChangeEvent();\r\n }\r\n if ((this.allowMultiSelection || this.showCheckBox) && this.chipWrapper) {\r\n this.chipCollection.innerHTML = '';\r\n if (!this.wrapText) {\r\n this.updateOverflowWrapper(true);\r\n }\r\n this.ensurePlaceHolder();\r\n }\r\n };\r\n DropDownTree.prototype.clearCheckAll = function () {\r\n if (this.showSelectAll && this.value && this.value.length === 0) {\r\n this.setLocale(false);\r\n }\r\n };\r\n DropDownTree.prototype.selectAllItems = function (state) {\r\n if (this.showCheckBox) {\r\n if (state) {\r\n this.treeObj.checkAll();\r\n }\r\n else {\r\n this.treeObj.uncheckAll();\r\n }\r\n this.checkSelectAll = true;\r\n }\r\n else if (this.allowMultiSelection) {\r\n if (!state) {\r\n this.treeObj.selectedNodes = [];\r\n }\r\n else {\r\n var li = selectAll('li', this.treeObj.element);\r\n var id = void 0;\r\n var arr = [];\r\n for (var i = 0; i < li.length; i++) {\r\n id = li[i].getAttribute('data-uid').toString();\r\n arr.push(id);\r\n }\r\n this.treeObj.selectedNodes = arr;\r\n }\r\n }\r\n this.updateMode();\r\n this.setMultiSelect();\r\n if (!this.wrapText) {\r\n if (state) {\r\n this.updateView();\r\n }\r\n else {\r\n this.updateOverflowWrapper(true);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateTreeSettings = function (prop) {\r\n var value = Object.keys(prop.treeSettings)[0];\r\n if (value === 'autoCheck') {\r\n this.ensureAutoCheck();\r\n this.treeObj.autoCheck = this.treeSettings.autoCheck;\r\n }\r\n else if (value === 'loadOnDemand') {\r\n this.treeObj.loadOnDemand = this.treeSettings.loadOnDemand;\r\n }\r\n else if (value === 'expandOn') {\r\n this.treeObj.expandOn = this.treeSettings.expandOn;\r\n this.treeObj.dataBind();\r\n return;\r\n }\r\n this.treeObj.dataBind();\r\n this.setMultiSelect();\r\n this.updateValue(this.value);\r\n };\r\n DropDownTree.prototype.updateCheckBoxState = function (checkBox) {\r\n if (this.hasTemplate) {\r\n this.updateTemplate();\r\n }\r\n if (!this.wrapText) {\r\n this.updateOverflowWrapper(false);\r\n }\r\n this.treeObj.showCheckBox = checkBox;\r\n this.treeObj.dataBind();\r\n this.isDynamicChange = true;\r\n this.setSelectAllWrapper(this.showSelectAll);\r\n if (this.showSelectAll) {\r\n this.setLocale();\r\n }\r\n if (this.showCheckBox) {\r\n this.updateMode();\r\n }\r\n this.setMultiSelect();\r\n this.isDynamicChange = false;\r\n };\r\n DropDownTree.prototype.updateTemplate = function () {\r\n if (this.popupObj) {\r\n this.clearTemplate();\r\n /* eslint-disable */\r\n this.portals = [];\r\n /* eslint-enable */\r\n this.popupObj.destroy();\r\n if (this.isPopupOpen) {\r\n this.hidePopup();\r\n this.isFirstRender = true;\r\n this.renderPopup();\r\n }\r\n else {\r\n this.isFirstRender = true;\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.l10nUpdate = function (actionFailure) {\r\n if (this.noRecord) {\r\n this.noRecord.innerHTML = '';\r\n }\r\n else {\r\n this.noRecord = this.createElement('div');\r\n addClass([this.noRecord], NODATACONTAINER);\r\n prepend([this.noRecord], this.popupDiv);\r\n }\r\n if (this.noRecordsTemplate !== 'No Records Found' || this.actionFailureTemplate !== 'The Request Failed') {\r\n var template = actionFailure ? this.actionFailureTemplate : this.noRecordsTemplate;\r\n var templateId = actionFailure ? this.actionFailureTemplateId : this.noRecordsTemplateId;\r\n var templatestring = actionFailure ? 'actionFailureTemplate' : 'noRecordsTemplate';\r\n // eslint-disable-next-line\r\n var compiledString = this.templateComplier(template);\r\n var tempArr = compiledString({}, this, templatestring, templateId, this.isStringTemplate, undefined, this.noRecord);\r\n if (tempArr) {\r\n tempArr = Array.prototype.slice.call(tempArr);\r\n append(tempArr, this.noRecord);\r\n }\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n var l10nLocale = { noRecordsTemplate: 'No Records Found', actionFailureTemplate: 'The Request Failed' };\r\n this.l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\r\n this.noRecord.innerHTML = actionFailure ?\r\n this.l10n.getConstant('actionFailureTemplate') : this.l10n.getConstant('noRecordsTemplate');\r\n }\r\n };\r\n DropDownTree.prototype.updateRecordTemplate = function (action) {\r\n if (this.treeItems && this.treeItems.length <= 0) {\r\n this.l10nUpdate(action);\r\n if (this.hasTemplate) {\r\n this.updateTemplate();\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateOverflowWrapper = function (state) {\r\n if (!state) {\r\n if (!this.inputWrapper.contains(this.overFlowWrapper)) {\r\n this.overFlowWrapper = this.createElement('span', { className: OVERFLOW_VIEW + ' ' + HIDEICON });\r\n this.inputWrapper.insertBefore(this.overFlowWrapper, this.hiddenElement);\r\n }\r\n }\r\n else if (this.inputWrapper.contains(this.overFlowWrapper) && state) {\r\n this.overFlowWrapper.innerHTML = '';\r\n }\r\n };\r\n DropDownTree.prototype.updateMultiSelection = function (state) {\r\n if (!this.wrapText) {\r\n this.updateOverflowWrapper(false);\r\n }\r\n this.treeObj.allowMultiSelection = state;\r\n this.treeObj.dataBind();\r\n this.updateOption();\r\n if (this.allowMultiSelection) {\r\n this.updateMode();\r\n }\r\n this.setMultiSelect();\r\n };\r\n DropDownTree.prototype.updateAllowFiltering = function (state) {\r\n if (!this.isFirstRender) {\r\n if (state) {\r\n this.renderFilter();\r\n }\r\n else {\r\n this.destroyFilter();\r\n }\r\n }\r\n this.ensureAutoCheck();\r\n };\r\n DropDownTree.prototype.updateFilterPlaceHolder = function () {\r\n if (this.filterObj) {\r\n this.filterObj.placeholder = this.filterBarPlaceholder;\r\n this.filterObj.element.setAttribute('aria-label', this.filterBarPlaceholder);\r\n }\r\n };\r\n DropDownTree.prototype.updateValue = function (value) {\r\n this.isDynamicChange = true;\r\n if (isNOU(value) || value.length === 0) {\r\n this.resetValue(true);\r\n }\r\n else {\r\n this.setTreeValue();\r\n if ((this.allowMultiSelection || this.showCheckBox) && !this.wrapText) {\r\n this.updateOverflowWrapper(false);\r\n this.updateView();\r\n }\r\n }\r\n this.updateHiddenValue();\r\n this.isDynamicChange = false;\r\n };\r\n DropDownTree.prototype.updateText = function (text) {\r\n if (isNOU(text)) {\r\n this.resetValue();\r\n }\r\n else {\r\n this.setTreeText();\r\n if ((this.allowMultiSelection || this.showCheckBox) && !this.wrapText) {\r\n this.updateOverflowWrapper(false);\r\n this.updateView();\r\n }\r\n }\r\n this.updateHiddenValue();\r\n };\r\n DropDownTree.prototype.updateModelMode = function () {\r\n var validMode = this.allowMultiSelection ? true : (this.showCheckBox ? true : false);\r\n if (!validMode) {\r\n return;\r\n }\r\n if (!this.wrapText) {\r\n var overFlow = select('.' + OVERFLOW_VIEW, this.inputWrapper);\r\n if (overFlow) {\r\n overFlow.innerHTML = '';\r\n }\r\n }\r\n this.updateMode();\r\n this.setMultiSelect();\r\n if (!this.wrapText && (this.value && this.value.length !== 0)) {\r\n this.updateOverFlowView();\r\n addClass([this.inputEle], CHIP_INPUT);\r\n if (this.mode === 'Box') {\r\n removeClass([this.overFlowWrapper, this.inputWrapper], SHOW_TEXT);\r\n }\r\n else {\r\n addClass([this.overFlowWrapper, this.inputWrapper], SHOW_TEXT);\r\n }\r\n }\r\n };\r\n DropDownTree.prototype.updateOption = function () {\r\n if (!this.hiddenElement.hasAttribute('multiple') && (this.allowMultiSelection || this.showCheckBox)) {\r\n this.hiddenElement.setAttribute('multiple', '');\r\n }\r\n else if (this.hiddenElement.hasAttribute('multiple') && (!this.allowMultiSelection && !this.showCheckBox)) {\r\n this.hiddenElement.removeAttribute('multiple');\r\n }\r\n };\r\n /**\r\n * Dynamically change the value of properties.\r\n *\r\n * @param {DropDownTreeModel} newProp - specifies the newProp value.\r\n * @param {DropDownTreeModel} oldProp - specifies the newProp value.\r\n * @returns {void}\r\n * @private\r\n */\r\n DropDownTree.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'width':\r\n this.setElementWidth(newProp.width);\r\n if (this.popupObj) {\r\n this.popupObj.element.style.width = this.setWidth();\r\n }\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.inputEle);\r\n break;\r\n case 'cssClass':\r\n this.setCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRTL(this.enableRtl);\r\n break;\r\n case 'fields':\r\n this.setFields();\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(newProp.readonly, this.inputEle);\r\n break;\r\n case 'enabled':\r\n this.setEnable();\r\n break;\r\n case 'floatLabelType':\r\n Input.removeFloating(this.inputObj);\r\n Input.addFloating(this.inputEle, newProp.floatLabelType, this.placeholder, this.createElement);\r\n this.ensureClearIconPosition(newProp.floatLabelType);\r\n break;\r\n case 'showClearButton':\r\n this.updateClearButton(newProp.showClearButton);\r\n break;\r\n case 'allowFiltering':\r\n this.updateAllowFiltering(newProp.allowFiltering);\r\n break;\r\n case 'filterBarPlaceholder':\r\n this.updateFilterPlaceHolder();\r\n break;\r\n case 'value':\r\n this.oldValue = oldProp.value;\r\n this.updateValue(newProp.value);\r\n break;\r\n case 'text':\r\n this.updateText(newProp.text);\r\n break;\r\n case 'allowMultiSelection':\r\n this.updateMultiSelection(newProp.allowMultiSelection);\r\n break;\r\n case 'mode':\r\n if (!this.showCheckBox && !this.allowMultiSelection) {\r\n return;\r\n }\r\n if (this.mode === 'Custom') {\r\n if (this.overFlowWrapper) {\r\n detach(this.overFlowWrapper);\r\n }\r\n if (this.chipWrapper) {\r\n detach(this.chipWrapper);\r\n }\r\n this.setTagValues();\r\n }\r\n else {\r\n if (oldProp.mode === 'Custom') {\r\n this.updateOverflowWrapper(this.wrapText);\r\n }\r\n this.updateModelMode();\r\n }\r\n break;\r\n case 'delimiterChar':\r\n if (this.mode === 'Box') {\r\n return;\r\n }\r\n if (this.showCheckBox || this.allowMultiSelection) {\r\n this.setMultiSelect();\r\n }\r\n break;\r\n case 'selectAllText':\r\n if (this.showCheckBox && this.showSelectAll) {\r\n this.setLocale();\r\n }\r\n break;\r\n case 'unSelectAllText':\r\n if (this.showCheckBox && this.showSelectAll) {\r\n this.setLocale(false);\r\n }\r\n break;\r\n case 'showSelectAll':\r\n if (this.showCheckBox) {\r\n this.setSelectAllWrapper(newProp.showSelectAll);\r\n this.updatePopupHeight();\r\n }\r\n break;\r\n case 'showCheckBox':\r\n this.updateCheckBoxState(newProp.showCheckBox);\r\n if (!this.wrapText) {\r\n this.updateOverflowWrapper(true);\r\n }\r\n this.updatePopupHeight();\r\n this.updateOption();\r\n break;\r\n case 'treeSettings':\r\n this.updateTreeSettings(newProp);\r\n break;\r\n case 'customTemplate':\r\n if (this.mode !== \"Custom\") {\r\n return;\r\n }\r\n this.chipCollection.innerHTML = \"\";\r\n this.setTagValues();\r\n break;\r\n case 'sortOrder':\r\n if (this.hasTemplate) {\r\n this.updateTemplate();\r\n }\r\n this.treeObj.sortOrder = newProp.sortOrder;\r\n this.treeObj.dataBind();\r\n this.updateValue(this.value);\r\n break;\r\n case 'showDropDownIcon':\r\n this.updateDropDownIconState(newProp.showDropDownIcon);\r\n break;\r\n case 'popupWidth':\r\n if (this.popupObj) {\r\n this.popupObj.element.style.width = this.setWidth();\r\n }\r\n break;\r\n case 'popupHeight':\r\n if (this.popupObj) {\r\n this.updatePopupHeight();\r\n }\r\n break;\r\n case 'zIndex':\r\n if (this.popupObj) {\r\n this.popupObj.zIndex = newProp.zIndex;\r\n this.popupObj.dataBind();\r\n }\r\n break;\r\n case 'headerTemplate':\r\n this.updateTemplate();\r\n break;\r\n case 'footerTemplate':\r\n this.updateTemplate();\r\n break;\r\n case 'itemTemplate':\r\n this.updateTemplate();\r\n this.treeObj.nodeTemplate = newProp.itemTemplate;\r\n this.treeObj.dataBind();\r\n break;\r\n case 'noRecordsTemplate':\r\n this.updateRecordTemplate();\r\n break;\r\n case 'actionFailureTemplate':\r\n this.updateRecordTemplate(true);\r\n break;\r\n case 'htmlAttributes':\r\n this.setHTMLAttributes();\r\n break;\r\n case 'wrapText':\r\n this.updateOverflowWrapper(this.wrapText);\r\n if ((this.allowMultiSelection || this.showCheckBox) && !this.wrapText) {\r\n this.updateView();\r\n }\r\n else {\r\n addClass([this.overFlowWrapper], HIDEICON);\r\n if (this.chipWrapper && this.mode === 'Box') {\r\n removeClass([this.chipWrapper], HIDEICON);\r\n }\r\n else {\r\n removeClass([this.inputWrapper], SHOW_CHIP);\r\n removeClass([this.inputEle], CHIP_INPUT);\r\n }\r\n this.ensurePlaceHolder();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Allows you to clear the selected values from the Dropdown Tree component.\r\n *\r\n * @method clear\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.clear = function () {\r\n this.clearAll();\r\n if (this.inputFocus) {\r\n this.onFocusOut();\r\n }\r\n else {\r\n if (this.changeOnBlur) {\r\n this.triggerChangeEvent();\r\n }\r\n this.removeValue = false;\r\n }\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. Also, it removes the attributes and classes.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.destroy = function () {\r\n this.clearTemplate();\r\n this.unWireEvents();\r\n this.setCssClass(null, this.cssClass);\r\n this.setProperties({ value: [] }, true);\r\n this.setProperties({ text: null }, true);\r\n this.treeObj.destroy();\r\n this.destroyFilter();\r\n if (this.popupObj) {\r\n this.popupObj.destroy();\r\n detach(this.popupObj.element);\r\n }\r\n if (this.element.tagName !== this.getDirective()) {\r\n this.inputWrapper.parentElement.insertBefore(this.element, this.inputWrapper);\r\n }\r\n Input.setValue(null, this.inputEle, this.floatLabelType);\r\n detach(this.inputWrapper);\r\n detach(this.popupDiv);\r\n this.element.classList.remove('e-input');\r\n if (this.showCheckBox || this.allowMultiSelection) {\r\n this.element.classList.remove(CHIP_INPUT);\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n DropDownTree.prototype.destroyFilter = function () {\r\n if (this.filterObj) {\r\n this.filterObj.destroy();\r\n detach(this.filterObj.element);\r\n detach(this.filterContainer);\r\n this.filterObj = null;\r\n }\r\n };\r\n /**\r\n * Ensures visibility of the Dropdown Tree item by using item value or item element.\r\n * If many Dropdown Tree items are present, and we are in need to find a particular item, then the `ensureVisible` property\r\n * helps you to bring the item to visibility by expanding the Dropdown Tree and scrolling to the specific item.\r\n *\r\n * @param {string | Element} item - Specifies the value of Dropdown Tree item/ Dropdown Tree item element.\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.ensureVisible = function (item) {\r\n this.treeObj.ensureVisible(item);\r\n };\r\n /**\r\n * To get the updated data source of the Dropdown Tree.\r\n *\r\n * @param {string | Element} item - Specifies the value of Dropdown Tree item/ Dropdown Tree item element\r\n * @returns {'{[key: string]: Object }[]'} - returns the updated data source of the Dropdown Tree.\r\n */\r\n // eslint-disable-next-line\r\n DropDownTree.prototype.getData = function (item) {\r\n return this.treeObj.getTreeData(item);\r\n };\r\n /**\r\n * Close the Dropdown tree pop-up.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.hidePopup = function () {\r\n var eventArgs = { popup: this.popupObj };\r\n this.inputWrapper.classList.remove(ICONANIMATION);\r\n if (this.popupEle) {\r\n addClass([this.popupEle], DDTHIDEICON);\r\n }\r\n attributes(this.inputWrapper, { 'aria-expanded': 'false' });\r\n if (this.popupObj && this.isPopupOpen) {\r\n this.popupObj.hide();\r\n if (this.inputFocus) {\r\n this.inputWrapper.focus();\r\n if (this.allowFiltering) {\r\n addClass([this.inputWrapper], [INPUTFOCUS]);\r\n }\r\n }\r\n this.trigger('close', eventArgs);\r\n }\r\n };\r\n /**\r\n * Based on the state parameter, entire list item will be selected or deselected.\r\n *\r\n * @param {boolean} state - Unselects/Selects entire Dropdown Tree items.\r\n * @returns {void}\r\n *\r\n */\r\n DropDownTree.prototype.selectAll = function (state) {\r\n this.selectAllItems(state);\r\n };\r\n /**\r\n * Opens the popup that displays the Dropdown Tree items.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownTree.prototype.showPopup = function () {\r\n if (!this.enabled || this.readonly || this.isPopupOpen) {\r\n return;\r\n }\r\n this.renderPopup();\r\n this.focusIn();\r\n };\r\n /**\r\n * Return the module name.\r\n *\r\n * @private\r\n * @returns {string} - returns the module name.\r\n */\r\n DropDownTree.prototype.getModuleName = function () {\r\n return 'dropdowntree';\r\n };\r\n __decorate([\r\n Property('The Request Failed')\r\n ], DropDownTree.prototype, \"actionFailureTemplate\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"allowMultiSelection\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownTree.prototype, \"changeOnBlur\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DropDownTree.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(\"${value.length} item(s) selected\")\r\n ], DropDownTree.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Property(',')\r\n ], DropDownTree.prototype, \"delimiterChar\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownTree.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Complex({}, Fields)\r\n ], DropDownTree.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Property('StartsWith')\r\n ], DropDownTree.prototype, \"filterType\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], DropDownTree.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"footerTemplate\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"ignoreAccent\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownTree.prototype, \"ignoreCase\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property({})\r\n ], DropDownTree.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"itemTemplate\", void 0);\r\n __decorate([\r\n Property('Default')\r\n ], DropDownTree.prototype, \"mode\", void 0);\r\n __decorate([\r\n Property('No Records Found')\r\n ], DropDownTree.prototype, \"noRecordsTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property('300px')\r\n ], DropDownTree.prototype, \"popupHeight\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], DropDownTree.prototype, \"popupWidth\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"showSelectAll\", void 0);\r\n __decorate([\r\n Property('Select All')\r\n ], DropDownTree.prototype, \"selectAllText\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"showCheckBox\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownTree.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], DropDownTree.prototype, \"showDropDownIcon\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], DropDownTree.prototype, \"sortOrder\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"text\", void 0);\r\n __decorate([\r\n Complex({}, TreeSettings)\r\n ], DropDownTree.prototype, \"treeSettings\", void 0);\r\n __decorate([\r\n Property('Unselect All')\r\n ], DropDownTree.prototype, \"unSelectAllText\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], DropDownTree.prototype, \"value\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], DropDownTree.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], DropDownTree.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownTree.prototype, \"wrapText\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"actionFailure\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"dataBound\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"keyPress\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownTree.prototype, \"select\", void 0);\r\n DropDownTree = __decorate([\r\n NotifyPropertyChanges\r\n ], DropDownTree);\r\n return DropDownTree;\r\n}(Component));\r\nexport { DropDownTree };\r\n","/**\n * export all modules from current location\n */\nexport * from './drop-down-tree';\n","/**\n * export all modules from current location\n */\nexport * from './common/index';\nexport * from './drop-down-base/index';\nexport * from './drop-down-list/index';\nexport * from './drop-down-tree/index';\nexport * from './combo-box/index';\nexport * from './auto-complete/index';\nexport * from './multi-select/index';\nexport * from './list-box/index';\n","/**\n * export all modules from current location\n */\nexport * from './list-box';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\r\nimport { EventHandler, closest, removeClass, addClass, Complex, Property, ChildProperty, L10n } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, getComponent, Event, extend, detach, attributes } from '@syncfusion/ej2-base';\r\nimport { getUniqueID, Browser, formatUnit, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';\r\nimport { prepend, append } from '@syncfusion/ej2-base';\r\nimport { cssClass, Sortable, moveTo } from '@syncfusion/ej2-lists';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { createSpinner, showSpinner, hideSpinner, getZindexPartial } from '@syncfusion/ej2-popups';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\nvar ITEMTEMPLATE_PROPERTY = 'ItemTemplate';\r\n/**\r\n * Defines the Selection settings of List Box.\r\n */\r\nvar SelectionSettings = /** @class */ (function (_super) {\r\n __extends(SelectionSettings, _super);\r\n function SelectionSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('Multiple')\r\n ], SelectionSettings.prototype, \"mode\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], SelectionSettings.prototype, \"showCheckbox\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], SelectionSettings.prototype, \"showSelectAll\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], SelectionSettings.prototype, \"checkboxPosition\", void 0);\r\n return SelectionSettings;\r\n}(ChildProperty));\r\nexport { SelectionSettings };\r\n/**\r\n * Defines the toolbar settings of List Box.\r\n */\r\nvar ToolbarSettings = /** @class */ (function (_super) {\r\n __extends(ToolbarSettings, _super);\r\n function ToolbarSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property([])\r\n ], ToolbarSettings.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('Right')\r\n ], ToolbarSettings.prototype, \"position\", void 0);\r\n return ToolbarSettings;\r\n}(ChildProperty));\r\nexport { ToolbarSettings };\r\n/**\r\n * The ListBox is a graphical user interface component used to display a list of items.\r\n * Users can select one or more items in the list using a checkbox or by keyboard selection.\r\n * It supports sorting, grouping, reordering and drag and drop of items.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar ListBox = /** @class */ (function (_super) {\r\n __extends(ListBox, _super);\r\n /**\r\n * Constructor for creating the ListBox component.\r\n *\r\n * @param {ListBoxModel} options - Specifies ListBox model\r\n * @param {string | HTMLElement} element - Specifies the element.\r\n */\r\n function ListBox(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isValidKey = false;\r\n _this.isDataSourceUpdate = false;\r\n _this.keyDownStatus = false;\r\n return _this;\r\n }\r\n ListBox_1 = ListBox;\r\n /**\r\n * Adds a new item to the popup list. By default, new item appends to the list as the last item,\r\n * but you can insert based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\r\n * @returns {void}.\r\n * @private\r\n */\r\n ListBox.prototype.addItem = function (items, itemIndex) {\r\n _super.prototype.addItem.call(this, items, itemIndex);\r\n };\r\n /**\r\n * Build and render the component.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ListBox.prototype.render = function () {\r\n this.inputString = '';\r\n this.initLoad = true;\r\n this.isCustomFiltering = false;\r\n this.initialSelectedOptions = this.value;\r\n _super.prototype.render.call(this);\r\n this.renderComplete();\r\n };\r\n ListBox.prototype.initWrapper = function () {\r\n var hiddenSelect = this.createElement('select', { className: 'e-hidden-select', attrs: { 'multiple': '' } });\r\n this.list.classList.add('e-listbox-wrapper');\r\n if (this.itemTemplate) {\r\n this.list.classList.add('e-list-template');\r\n }\r\n this.list.classList.add('e-wrapper');\r\n this.list.classList.add('e-lib');\r\n if (this.element.tagName === 'EJS-LISTBOX') {\r\n this.element.setAttribute('tabindex', '0');\r\n if (this.initLoad) {\r\n this.element.appendChild(this.list);\r\n }\r\n }\r\n else {\r\n if (this.initLoad) {\r\n this.element.parentElement.insertBefore(this.list, this.element);\r\n }\r\n this.list.insertBefore(this.element, this.list.firstChild);\r\n this.element.style.display = 'none';\r\n }\r\n this.list.insertBefore(hiddenSelect, this.list.firstChild);\r\n if (this.list.getElementsByClassName('e-list-item')[0]) {\r\n this.list.getElementsByClassName('e-list-item')[0].classList.remove(dropDownBaseClasses.focus);\r\n }\r\n if (this.itemTemplate) {\r\n this.renderReactTemplates();\r\n }\r\n removeClass([this.list], [dropDownBaseClasses.content, dropDownBaseClasses.root]);\r\n this.validationAttribute(this.element, hiddenSelect);\r\n this.list.setAttribute('role', 'listbox');\r\n attributes(this.list, { 'role': 'listbox', 'aria-multiselectable': this.selectionSettings.mode === 'Multiple' ? 'true' : 'false' });\r\n this.updateSelectionSettings();\r\n };\r\n ListBox.prototype.updateSelectionSettings = function () {\r\n if (this.selectionSettings.showCheckbox && this.selectionSettings.showSelectAll && this.liCollections.length) {\r\n var l10nSelect = new L10n(this.getModuleName(), { selectAllText: 'Select All', unSelectAllText: 'Unselect All' }, this.locale);\r\n this.showSelectAll = true;\r\n this.selectAllText = l10nSelect.getConstant('selectAllText');\r\n this.unSelectAllText = l10nSelect.getConstant('unSelectAllText');\r\n this.popupWrapper = this.list;\r\n this.checkBoxSelectionModule.checkAllParent = null;\r\n this.notify('selectAll', {});\r\n }\r\n };\r\n ListBox.prototype.initDraggable = function () {\r\n var _this = this;\r\n if (this.ulElement) {\r\n this.ulElement.id = this.element.id + '_parent';\r\n }\r\n if (this.allowDragAndDrop) {\r\n new Sortable(this.ulElement, {\r\n scope: this.scope,\r\n itemClass: 'e-list-item',\r\n dragStart: this.triggerDragStart.bind(this),\r\n drag: this.triggerDrag.bind(this),\r\n beforeDrop: this.beforeDragEnd.bind(this),\r\n drop: this.dragEnd.bind(this),\r\n placeHolder: function () { return _this.createElement('span', { className: 'e-placeholder' }); },\r\n helper: function (e) {\r\n var wrapper = _this.list.cloneNode();\r\n var ele = e.sender.cloneNode(true);\r\n wrapper.appendChild(ele);\r\n var refEle = _this.getItems()[0];\r\n wrapper.style.width = refEle.offsetWidth + 'px';\r\n wrapper.style.height = refEle.offsetHeight + 'px';\r\n if ((_this.value && _this.value.length) > 1 && _this.isSelected(ele)) {\r\n ele.appendChild(_this.createElement('span', {\r\n className: 'e-list-badge', innerHTML: _this.value.length + ''\r\n }));\r\n }\r\n wrapper.style.zIndex = getZindexPartial(_this.element) + '';\r\n return wrapper;\r\n }\r\n });\r\n }\r\n };\r\n ListBox.prototype.updateActionCompleteData = function (li, item) {\r\n this.jsonData.push(item);\r\n };\r\n ListBox.prototype.initToolbar = function () {\r\n var pos = this.toolbarSettings.position;\r\n var prevScope = this.element.getAttribute('data-value');\r\n if (this.toolbarSettings.items.length) {\r\n var toolElem = this.createElement('div', { className: 'e-listbox-tool', attrs: { 'role': 'toolbar' } });\r\n var wrapper = this.createElement('div', {\r\n className: 'e-listboxtool-wrapper e-lib e-' + pos.toLowerCase()\r\n });\r\n this.list.parentElement.insertBefore(wrapper, this.list);\r\n wrapper.appendChild(pos === 'Right' ? this.list : toolElem);\r\n wrapper.appendChild(pos === 'Right' ? toolElem : this.list);\r\n this.createButtons(toolElem);\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('e-' + this.getModuleName());\r\n }\r\n if (this.scope) {\r\n document.querySelector(this.scope).setAttribute('data-value', this.element.id);\r\n }\r\n else {\r\n this.updateToolBarState();\r\n }\r\n }\r\n var scope = this.element.getAttribute('data-value');\r\n if (prevScope && scope && (prevScope !== scope)) {\r\n this.tBListBox = getComponent(document.getElementById(prevScope), this.getModuleName());\r\n this.tBListBox.updateToolBarState();\r\n }\r\n else if (scope) {\r\n this.tBListBox = getComponent(document.getElementById(scope), this.getModuleName());\r\n this.tBListBox.updateToolBarState();\r\n }\r\n };\r\n ListBox.prototype.createButtons = function (toolElem) {\r\n var _this = this;\r\n var btn;\r\n var ele;\r\n var title;\r\n var l10n = new L10n(this.getModuleName(), {\r\n moveUp: 'Move Up', moveDown: 'Move Down', moveTo: 'Move To',\r\n moveFrom: 'Move From', moveAllTo: 'Move All To', moveAllFrom: 'Move All From'\r\n }, this.locale);\r\n this.toolbarSettings.items.forEach(function (value) {\r\n title = l10n.getConstant(value);\r\n ele = _this.createElement('button', {\r\n attrs: {\r\n 'type': 'button',\r\n 'data-value': value,\r\n 'title': title,\r\n 'aria-label': title\r\n }\r\n });\r\n toolElem.appendChild(ele);\r\n btn = new Button({ iconCss: 'e-icons e-' + value.toLowerCase() }, ele);\r\n btn.createElement = _this.createElement;\r\n });\r\n };\r\n ListBox.prototype.validationAttribute = function (input, hiddenSelect) {\r\n _super.prototype.validationAttribute.call(this, input, hiddenSelect);\r\n hiddenSelect.required = input.required;\r\n input.required = false;\r\n };\r\n ListBox.prototype.setHeight = function () {\r\n var ele = this.toolbarSettings.items.length ? this.list.parentElement : this.list;\r\n ele.style.height = formatUnit(this.height);\r\n if (this.allowFiltering && this.height.toString().indexOf('%') < 0) {\r\n addClass([this.list], 'e-filter-list');\r\n }\r\n else {\r\n removeClass([this.list], 'e-filter-list');\r\n }\r\n };\r\n ListBox.prototype.setCssClass = function () {\r\n var wrap = this.toolbarSettings.items.length ? this.list.parentElement : this.list;\r\n if (this.cssClass) {\r\n addClass([wrap], this.cssClass.split(' '));\r\n }\r\n if (this.enableRtl) {\r\n addClass([this.list], 'e-rtl');\r\n }\r\n };\r\n ListBox.prototype.setEnable = function () {\r\n var ele = this.toolbarSettings.items.length ? this.list.parentElement : this.list;\r\n if (this.enabled) {\r\n removeClass([ele], cssClass.disabled);\r\n }\r\n else {\r\n addClass([ele], cssClass.disabled);\r\n }\r\n };\r\n ListBox.prototype.showSpinner = function () {\r\n if (!this.spinner) {\r\n this.spinner = this.createElement('div', { className: 'e-listbox-wrapper' });\r\n }\r\n this.spinner.style.height = formatUnit(this.height);\r\n this.element.parentElement.insertBefore(this.spinner, this.element.nextSibling);\r\n createSpinner({ target: this.spinner }, this.createElement);\r\n showSpinner(this.spinner);\r\n };\r\n ListBox.prototype.hideSpinner = function () {\r\n if (this.spinner.querySelector('.e-spinner-pane')) {\r\n hideSpinner(this.spinner);\r\n }\r\n if (this.spinner.parentElement) {\r\n detach(this.spinner);\r\n }\r\n };\r\n ListBox.prototype.onInput = function () {\r\n this.isDataSourceUpdate = false;\r\n if (this.keyDownStatus) {\r\n this.isValidKey = true;\r\n }\r\n else {\r\n this.isValidKey = false;\r\n }\r\n this.keyDownStatus = false;\r\n this.refreshClearIcon();\r\n };\r\n ListBox.prototype.clearText = function () {\r\n this.filterInput.value = '';\r\n this.refreshClearIcon();\r\n var event = document.createEvent('KeyboardEvent');\r\n this.isValidKey = true;\r\n this.KeyUp(event);\r\n };\r\n ListBox.prototype.refreshClearIcon = function () {\r\n if (this.filterInput.parentElement.querySelector('.' + listBoxClasses.clearIcon)) {\r\n var clearElement = this.filterInput.parentElement.querySelector('.' + listBoxClasses.clearIcon);\r\n clearElement.style.visibility = this.filterInput.value === '' ? 'hidden' : 'visible';\r\n }\r\n };\r\n ListBox.prototype.onActionComplete = function (ulElement, list, e) {\r\n var searchEle;\r\n if (this.allowFiltering && this.list.getElementsByClassName('e-filter-parent')[0]) {\r\n searchEle = this.list.getElementsByClassName('e-filter-parent')[0].cloneNode(true);\r\n }\r\n if (list.length === 0) {\r\n var noRecElem = ulElement.childNodes[0];\r\n if (noRecElem) {\r\n ulElement.removeChild(noRecElem);\r\n }\r\n }\r\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\r\n if (this.allowFiltering && !isNullOrUndefined(searchEle)) {\r\n this.list.insertBefore(searchEle, this.list.firstElementChild);\r\n this.filterParent = this.list.getElementsByClassName('e-filter-parent')[0];\r\n this.filterWireEvents(searchEle);\r\n }\r\n this.initWrapper();\r\n this.setSelection();\r\n this.initDraggable();\r\n this.mainList = this.ulElement;\r\n if (this.initLoad) {\r\n this.jsonData = [];\r\n extend(this.jsonData, list, []);\r\n this.initToolbarAndStyles();\r\n this.wireEvents();\r\n if (this.showCheckbox) {\r\n this.setCheckboxPosition();\r\n }\r\n if (this.allowFiltering) {\r\n this.setFiltering();\r\n }\r\n }\r\n else {\r\n if (this.isDataSourceUpdate) {\r\n this.jsonData = [];\r\n extend(this.jsonData, list, []);\r\n this.isDataSourceUpdate = false;\r\n }\r\n if (this.allowFiltering) {\r\n var filterElem = this.list.getElementsByClassName('e-input-filter')[0];\r\n var txtLength = this.filterInput.value.length;\r\n filterElem.selectionStart = txtLength;\r\n filterElem.selectionEnd = txtLength;\r\n filterElem.focus();\r\n }\r\n }\r\n if (this.toolbarSettings.items.length && this.scope && this.scope.indexOf('#') > -1 && !isNullOrUndefined(e)) {\r\n var scope = this.scope.replace('#', '');\r\n var scopedLB = getComponent(document.getElementById(scope), this.getModuleName());\r\n scopedLB.initToolbar();\r\n }\r\n this.initLoad = false;\r\n };\r\n ListBox.prototype.initToolbarAndStyles = function () {\r\n this.initToolbar();\r\n this.setCssClass();\r\n this.setEnable();\r\n this.setHeight();\r\n };\r\n ListBox.prototype.triggerDragStart = function (args) {\r\n var _this = this;\r\n var badge;\r\n args = extend(this.getDragArgs(args), { dragSelected: true });\r\n if (Browser.isIos) {\r\n this.list.style.overflow = 'hidden';\r\n }\r\n this.trigger('dragStart', args, function (dragEventArgs) {\r\n _this.allowDragAll = dragEventArgs.dragSelected;\r\n if (!_this.allowDragAll) {\r\n badge = _this.ulElement.getElementsByClassName('e-list-badge')[0];\r\n if (badge) {\r\n detach(badge);\r\n }\r\n }\r\n });\r\n };\r\n ListBox.prototype.triggerDrag = function (args) {\r\n this.trigger('drag', this.getDragArgs(args));\r\n var listObj = this.getComponent(args.target);\r\n if (listObj && listObj.listData.length === 0) {\r\n var noRecElem = listObj.ulElement.childNodes[0];\r\n if (noRecElem) {\r\n listObj.ulElement.removeChild(noRecElem);\r\n }\r\n }\r\n };\r\n ListBox.prototype.beforeDragEnd = function (args) {\r\n var dragValue = this.getFormattedValue(args.droppedElement.getAttribute('data-value'));\r\n if (this.value.indexOf(dragValue) > -1) {\r\n args.items = this.getDataByValues(this.value);\r\n }\r\n else {\r\n args.items = this.getDataByValues([dragValue]);\r\n }\r\n this.trigger('beforeDrop', args);\r\n if (args.isDragAll !== null) {\r\n this.allowDragAll = args.isDragAll;\r\n }\r\n };\r\n ListBox.prototype.dragEnd = function (args) {\r\n var _this = this;\r\n var listData;\r\n var liColl;\r\n var jsonData;\r\n var droppedData;\r\n var selectedOptions;\r\n var sortedData;\r\n var dropValue = this.getFormattedValue(args.droppedElement.getAttribute('data-value'));\r\n var listObj = this.getComponent(args.droppedElement);\r\n var getArgs = this.getDragArgs({ target: args.droppedElement }, true);\r\n var sourceArgs = { previousData: this.dataSource };\r\n var destArgs = { previousData: listObj.dataSource };\r\n var dragArgs = extend({}, getArgs, { target: args.target, source: { previousData: this.dataSource }, previousIndex: args.previousIndex, currentIndex: args.currentIndex });\r\n if (listObj !== this) {\r\n var sourceArgs1 = extend(sourceArgs, { currentData: this.listData });\r\n dragArgs = extend(dragArgs, { source: sourceArgs1, destination: destArgs });\r\n }\r\n if (Browser.isIos) {\r\n this.list.style.overflow = '';\r\n }\r\n if (listObj === this) {\r\n var ul_1 = this.ulElement;\r\n listData = [].slice.call(this.listData);\r\n liColl = [].slice.call(this.liCollections);\r\n jsonData = [].slice.call(this.jsonData);\r\n sortedData = [].slice.call(this.sortedData);\r\n var toSortIdx_1 = args.currentIndex;\r\n var toIdx_1 = args.currentIndex = this.getCurIdx(this, args.currentIndex);\r\n var rIdx = listData.indexOf(this.getDataByValue(dropValue));\r\n var jsonIdx = jsonData.indexOf(this.getDataByValue(dropValue));\r\n var sIdx = sortedData.indexOf(this.getDataByValue(dropValue));\r\n listData.splice(toIdx_1, 0, listData.splice(rIdx, 1)[0]);\r\n sortedData.splice(toSortIdx_1, 0, sortedData.splice(sIdx, 1)[0]);\r\n jsonData.splice(toIdx_1, 0, jsonData.splice(jsonIdx, 1)[0]);\r\n liColl.splice(toIdx_1, 0, liColl.splice(rIdx, 1)[0]);\r\n if (this.allowDragAll) {\r\n selectedOptions = this.value && Array.prototype.indexOf.call(this.value, dropValue) > -1 ? this.value : [dropValue];\r\n selectedOptions.forEach(function (value) {\r\n if (value !== dropValue) {\r\n var idx = listData.indexOf(_this.getDataByValue(value));\r\n var jsonIdx_1 = jsonData.indexOf(_this.getDataByValue(value));\r\n var sIdx_1 = sortedData.indexOf(_this.getDataByValue(value));\r\n if (idx > toIdx_1) {\r\n toIdx_1++;\r\n }\r\n jsonData.splice(toIdx_1, 0, jsonData.splice(jsonIdx_1, 1)[0]);\r\n listData.splice(toIdx_1, 0, listData.splice(idx, 1)[0]);\r\n sortedData.splice(toSortIdx_1, 0, sortedData.splice(sIdx_1, 1)[0]);\r\n liColl.splice(toIdx_1, 0, liColl.splice(idx, 1)[0]);\r\n ul_1.insertBefore(_this.getItems()[_this.getIndexByValue(value)], ul_1.getElementsByClassName('e-placeholder')[0]);\r\n }\r\n });\r\n }\r\n this.listData = listData;\r\n this.jsonData = jsonData;\r\n this.sortedData = sortedData;\r\n this.liCollections = liColl;\r\n }\r\n else {\r\n var li_1;\r\n var fLiColl_1 = [].slice.call(this.liCollections);\r\n var currIdx_1 = args.currentIndex = this.getCurIdx(listObj, args.currentIndex);\r\n var ul_2 = listObj.ulElement;\r\n listData = [].slice.call(listObj.listData);\r\n liColl = [].slice.call(listObj.liCollections);\r\n jsonData = [].slice.call(listObj.jsonData);\r\n sortedData = [].slice.call(listObj.sortedData);\r\n selectedOptions = (this.value && Array.prototype.indexOf.call(this.value, dropValue) > -1 && this.allowDragAll)\r\n ? this.value : [dropValue];\r\n var fListData_1 = [].slice.call(this.listData);\r\n var fSortData_1 = [].slice.call(this.sortedData);\r\n selectedOptions.forEach(function (value, index) {\r\n droppedData = _this.getDataByValue(value);\r\n var srcIdx = _this.listData.indexOf(droppedData);\r\n var jsonSrcIdx = _this.jsonData.indexOf(droppedData);\r\n var sortIdx = _this.sortedData.indexOf(droppedData);\r\n fListData_1.splice(srcIdx, 1);\r\n _this.jsonData.splice(jsonSrcIdx, 1);\r\n fSortData_1.splice(sortIdx, 1);\r\n _this.listData = fListData_1;\r\n _this.sortedData = fSortData_1;\r\n var destIdx = value === dropValue ? args.currentIndex : currIdx_1;\r\n listData.splice(destIdx, 0, droppedData);\r\n jsonData.splice(destIdx, 0, droppedData);\r\n sortedData.splice(destIdx, 0, droppedData);\r\n liColl.splice(destIdx, 0, fLiColl_1.splice(srcIdx, 1)[0]);\r\n if (!value) {\r\n var liCollElem = _this.getItems();\r\n for (var i = 0; i < liCollElem.length; i++) {\r\n if (liCollElem[i].getAttribute('data-value') === null && liCollElem[i].classList.contains('e-list-item')) {\r\n li_1 = liCollElem[i];\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n li_1 = _this.getItems()[_this.getIndexByValue(value)];\r\n }\r\n if (!li_1) {\r\n li_1 = args.helper;\r\n }\r\n _this.removeSelected(_this, value === dropValue ? [args.droppedElement] : [li_1]);\r\n ul_2.insertBefore(li_1, ul_2.getElementsByClassName('e-placeholder')[0]);\r\n currIdx_1++;\r\n });\r\n if (this.fields.groupBy) {\r\n var sourceElem = this.renderItems(this.listData, this.fields);\r\n this.updateListItems(sourceElem, this.ulElement);\r\n this.setSelection();\r\n }\r\n if (listObj.sortOrder !== 'None' || this.selectionSettings.showCheckbox\r\n !== listObj.selectionSettings.showCheckbox || listObj.fields.groupBy || listObj.itemTemplate || this.itemTemplate) {\r\n var sortable = getComponent(ul_2, 'sortable');\r\n var sourceElem = listObj.renderItems(listData, listObj.fields);\r\n listObj.updateListItems(sourceElem, ul_2);\r\n this.setSelection();\r\n if (sortable.placeHolderElement) {\r\n ul_2.appendChild(sortable.placeHolderElement);\r\n }\r\n ul_2.appendChild(args.helper);\r\n listObj.setSelection();\r\n }\r\n this.liCollections = fLiColl_1;\r\n listObj.liCollections = liColl;\r\n listObj.jsonData = extend([], [], jsonData, false);\r\n listObj.listData = extend([], [], listData, false);\r\n listObj.sortedData = extend([], [], sortedData, false);\r\n if (this.listData.length === 0) {\r\n this.l10nUpdate();\r\n }\r\n }\r\n if (this === listObj) {\r\n var sourceArgs1 = extend(sourceArgs, { currentData: listData });\r\n dragArgs = extend(dragArgs, { source: sourceArgs1 });\r\n }\r\n else {\r\n var dragArgs1 = extend(destArgs, { currentData: listData });\r\n dragArgs = extend(dragArgs, { destination: dragArgs1 });\r\n }\r\n this.trigger('drop', dragArgs);\r\n };\r\n ListBox.prototype.updateListItems = function (sourceElem, destElem) {\r\n var i = 0;\r\n destElem.innerHTML = \"\";\r\n while (i < sourceElem.childNodes.length) {\r\n destElem.appendChild(sourceElem.childNodes[i]);\r\n }\r\n };\r\n ListBox.prototype.removeSelected = function (listObj, elems) {\r\n if (listObj.selectionSettings.showCheckbox) {\r\n elems.forEach(function (ele) { ele.getElementsByClassName('e-frame')[0].classList.remove('e-check'); });\r\n }\r\n else {\r\n removeClass(elems, cssClass.selected);\r\n }\r\n };\r\n ListBox.prototype.getCurIdx = function (listObj, idx) {\r\n if (listObj.fields.groupBy) {\r\n idx -= [].slice.call(listObj.ulElement.children).slice(0, idx)\r\n .filter(function (ele) { return ele.classList.contains(cssClass.group); }).length;\r\n }\r\n return idx;\r\n };\r\n ListBox.prototype.getComponent = function (li) {\r\n var listObj;\r\n var ele = (this.element.tagName === 'EJS-LISTBOX' ? closest(li, '.e-listbox')\r\n : closest(li, '.e-listbox-wrapper') && closest(li, '.e-listbox-wrapper').querySelector('.e-listbox'));\r\n if (ele) {\r\n listObj = getComponent(ele, this.getModuleName());\r\n }\r\n return listObj;\r\n };\r\n ListBox.prototype.listOption = function (dataSource, fields) {\r\n this.listCurrentOptions = _super.prototype.listOption.call(this, dataSource, fields);\r\n this.listCurrentOptions = extend({}, this.listCurrentOptions, { itemCreated: this.triggerBeforeItemRender.bind(this) }, true);\r\n this.notify('listoption', { module: 'CheckBoxSelection' });\r\n return this.listCurrentOptions;\r\n };\r\n ListBox.prototype.triggerBeforeItemRender = function (e) {\r\n e.item.setAttribute('tabindex', '-1');\r\n this.trigger('beforeItemRender', { element: e.item, item: e.curData });\r\n };\r\n ListBox.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this.selectionSettings.showCheckbox) {\r\n modules.push({\r\n member: 'CheckBoxSelection',\r\n args: [this]\r\n });\r\n }\r\n return modules;\r\n };\r\n /**\r\n * This method is used to enable or disable the items in the ListBox based on the items and enable argument.\r\n *\r\n * @param {string[]} items - Text items that needs to be enabled/disabled.\r\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\r\n * @param {boolean} isValue - Set `true` if `items` parameter is a array of unique values.\r\n * @returns {void}\r\n */\r\n ListBox.prototype.enableItems = function (items, enable, isValue) {\r\n var _this = this;\r\n if (enable === void 0) { enable = true; }\r\n var li;\r\n items.forEach(function (item) {\r\n var text = item;\r\n li = _this.findListElement(_this.list, 'li', 'data-value', isValue ? text : _this.getValueByText(text));\r\n if (!li) {\r\n return;\r\n }\r\n if (enable) {\r\n removeClass([li], cssClass.disabled);\r\n li.removeAttribute('aria-disabled');\r\n }\r\n else {\r\n addClass([li], cssClass.disabled);\r\n li.setAttribute('aria-disabled', 'true');\r\n }\r\n });\r\n };\r\n /**\r\n * Based on the state parameter, specified list item will be selected/deselected.\r\n *\r\n * @param {string[]} items - Array of text value of the item.\r\n * @param {boolean} state - Set `true`/`false` to select/un select the list items.\r\n * @param {boolean} isValue - Set `true` if `items` parameter is a array of unique values.\r\n * @returns {void}\r\n */\r\n ListBox.prototype.selectItems = function (items, state, isValue) {\r\n if (state === void 0) { state = true; }\r\n this.setSelection(items, state, !isValue);\r\n this.updateSelectedOptions();\r\n };\r\n /**\r\n * Based on the state parameter, entire list item will be selected/deselected.\r\n *\r\n * @param {boolean} state - Set `true`/`false` to select/un select the entire list items.\r\n * @returns {void}\r\n */\r\n ListBox.prototype.selectAll = function (state) {\r\n if (state === void 0) { state = true; }\r\n this.selectAllItems(state);\r\n };\r\n /**\r\n * Adds a new item to the list. By default, new item appends to the list as the last item,\r\n * but you can insert based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to place the newly added item in the list.\r\n * @returns {void}.\r\n */\r\n ListBox.prototype.addItems = function (items, itemIndex) {\r\n _super.prototype.addItem.call(this, items, itemIndex);\r\n };\r\n /**\r\n * Removes a item from the list. By default, removed the last item in the list,\r\n * but you can remove based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to remove the item from the list.\r\n * @returns {void}.\r\n */\r\n ListBox.prototype.removeItems = function (items, itemIndex) {\r\n this.removeItem(items, itemIndex);\r\n };\r\n /**\r\n * Removes a item from the list. By default, removed the last item in the list,\r\n * but you can remove based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to remove the item from the list.\r\n * @returns {void}.\r\n */\r\n ListBox.prototype.removeItem = function (items, itemIndex) {\r\n var liCollections = [];\r\n var liElement = this.list.querySelectorAll('.' + dropDownBaseClasses.li);\r\n if (items) {\r\n items = (items instanceof Array ? items : [items]);\r\n var fields = this.fields;\r\n var dataValue = void 0;\r\n var objValue = void 0;\r\n var dupData = [];\r\n var itemIdx = void 0;\r\n extend(dupData, [], this.listData);\r\n var removeIdxes = [];\r\n var removeLiIdxes = [];\r\n for (var j = 0; j < items.length; j++) {\r\n if (items[j] instanceof Object) {\r\n dataValue = getValue(fields.value, items[j]);\r\n }\r\n else {\r\n dataValue = items[j].toString();\r\n }\r\n for (var i = 0, len = dupData.length; i < len; i++) {\r\n if (dupData[i] instanceof Object) {\r\n objValue = getValue(fields.value, dupData[i]);\r\n }\r\n else {\r\n objValue = dupData[i].toString();\r\n }\r\n if (objValue === dataValue) {\r\n itemIdx = this.getIndexByValue(dataValue);\r\n liCollections.push(liElement[itemIdx]);\r\n removeIdxes.push(i);\r\n removeLiIdxes.push(itemIdx);\r\n }\r\n }\r\n }\r\n for (var k = removeIdxes.length - 1; k >= 0; k--) {\r\n this.listData.splice(removeIdxes[k], 1);\r\n }\r\n for (var k = removeIdxes.length - 1; k >= 0; k--) {\r\n this.jsonData.splice(removeIdxes[k], 1);\r\n }\r\n for (var k = removeLiIdxes.length - 1; k >= 0; k--) {\r\n this.updateLiCollection(removeLiIdxes[k]);\r\n }\r\n }\r\n else {\r\n itemIndex = itemIndex ? itemIndex : 0;\r\n liCollections.push(liElement[itemIndex]);\r\n this.listData.splice(itemIndex, 1);\r\n this.jsonData.splice(itemIndex, 1);\r\n this.updateLiCollection(itemIndex);\r\n }\r\n for (var i = 0; i < liCollections.length; i++) {\r\n this.ulElement.removeChild(liCollections[i]);\r\n }\r\n if (this.listData.length === 0) {\r\n this.l10nUpdate();\r\n }\r\n };\r\n /**\r\n * Gets the array of data Object that matches the given array of values.\r\n *\r\n * @param { string[] | number[] | boolean[] } value - Specifies the array value of the list item.\r\n * @returns {object[]}.\r\n */\r\n ListBox.prototype.getDataByValues = function (value) {\r\n var data = [];\r\n for (var i = 0; i < value.length; i++) {\r\n data.push(this.getDataByValue(value[i]));\r\n }\r\n return data;\r\n };\r\n /**\r\n * Moves the given value(s) / selected value(s) upwards.\r\n *\r\n * @param { string[] | number[] | boolean[] } value - Specifies the value(s).\r\n * @returns {void}\r\n */\r\n ListBox.prototype.moveUp = function (value) {\r\n var elem = (value) ? this.getElemByValue(value) : this.getSelectedItems();\r\n this.moveUpDown(true, false, elem);\r\n };\r\n /**\r\n * Moves the given value(s) / selected value(s) downwards.\r\n *\r\n * @param { string[] | number[] | boolean[] } value - Specifies the value(s).\r\n * @returns {void}\r\n */\r\n ListBox.prototype.moveDown = function (value) {\r\n var elem = (value) ? this.getElemByValue(value) : this.getSelectedItems();\r\n this.moveUpDown(false, false, elem);\r\n };\r\n /**\r\n * Moves the given value(s) / selected value(s) to the given / default scoped ListBox.\r\n *\r\n * @param { string[] | number[] | boolean[] } value - Specifies the value or array value of the list item.\r\n * @param {number} index - Specifies the index.\r\n * @param {string} targetId - Specifies the target id.\r\n * @returns {void}\r\n */\r\n ListBox.prototype.moveTo = function (value, index, targetId) {\r\n var elem = (value) ? this.getElemByValue(value) : this.getSelectedItems();\r\n var tlistbox = (targetId) ? getComponent(targetId, ListBox_1) : this.getScopedListBox();\r\n this.moveData(this, tlistbox, false, elem, index);\r\n };\r\n /**\r\n * Moves all the values from one ListBox to the scoped ListBox.\r\n *\r\n * @param { string } targetId - Specifies the scoped ListBox ID.\r\n * @param { string } index - Specifies the index to where the items moved.\r\n * @returns {void}\r\n */\r\n ListBox.prototype.moveAllTo = function (targetId, index) {\r\n if (this.listData.length > 0) {\r\n var tlistbox = (targetId) ? getComponent(targetId, ListBox_1) : this.getScopedListBox();\r\n this.moveAllData(this, tlistbox, false, index);\r\n }\r\n };\r\n /* eslint-disable */\r\n /**\r\n * Gets the updated dataSource in ListBox.\r\n *\r\n * @returns {{ [key: string]: Object }[] | string[] | boolean[] | number[]} - Updated DataSource.\r\n */\r\n /* eslint-enable */\r\n ListBox.prototype.getDataList = function () {\r\n return this.jsonData;\r\n };\r\n /* eslint-disable */\r\n /**\r\n * Returns the sorted Data in ListBox.\r\n *\r\n * @returns {{ [key: string]: Object }[] | string[] | boolean[] | number[]} - Sorted data\r\n */\r\n /* eslint-enable */\r\n ListBox.prototype.getSortedList = function () {\r\n var sortData;\r\n var tempData;\r\n sortData = tempData = this.sortedData;\r\n if (this.fields.groupBy) {\r\n sortData = [];\r\n for (var i = 0; i < tempData.length; i++) {\r\n if (tempData[i].isHeader) {\r\n continue;\r\n }\r\n sortData.push(tempData[i]);\r\n }\r\n }\r\n return sortData;\r\n };\r\n ListBox.prototype.getElemByValue = function (value) {\r\n var elem = [];\r\n for (var i = 0; i < value.length; i++) {\r\n elem.push(this.ulElement.querySelector('[data-value =\"' + value[i] + '\"]'));\r\n }\r\n return elem;\r\n };\r\n ListBox.prototype.updateLiCollection = function (index) {\r\n var tempLi = [].slice.call(this.liCollections);\r\n tempLi.splice(index, 1);\r\n this.liCollections = tempLi;\r\n };\r\n ListBox.prototype.selectAllItems = function (state, event) {\r\n var _this = this;\r\n [].slice.call(this.getItems()).forEach(function (li) {\r\n if (!li.classList.contains(cssClass.disabled)) {\r\n if (_this.selectionSettings.showCheckbox) {\r\n var ele = li.getElementsByClassName('e-check')[0];\r\n if ((!ele && state) || (ele && !state)) {\r\n _this.notify('updatelist', { li: li, module: 'listbox' });\r\n if (_this.maximumSelectionLength >= _this.list.querySelectorAll('.e-list-item span.e-check').length) {\r\n _this.checkMaxSelection();\r\n }\r\n }\r\n }\r\n else {\r\n if (state) {\r\n li.classList.add(cssClass.selected);\r\n }\r\n else {\r\n li.classList.remove(cssClass.selected);\r\n }\r\n }\r\n }\r\n });\r\n this.updateSelectedOptions();\r\n if (this.allowFiltering && this.selectionSettings.showCheckbox) {\r\n var liEle = this.list.getElementsByTagName('li');\r\n var index = 0;\r\n if (state) {\r\n var _loop_1 = function () {\r\n var dataValue1 = this_1.getFormattedValue(liEle[index].getAttribute('data-value'));\r\n if (!this_1.value.some(function (e) { return e === dataValue1; })) {\r\n this_1.value.push(this_1.getFormattedValue(liEle[index].getAttribute('data-value')));\r\n }\r\n };\r\n var this_1 = this;\r\n for (index = 0; index < liEle.length; index++) {\r\n _loop_1();\r\n }\r\n }\r\n else {\r\n var _loop_2 = function () {\r\n var dataValue2 = this_2.getFormattedValue(liEle[index].getAttribute('data-value'));\r\n this_2.value = this_2.value.filter(function (e) { return e !== dataValue2; });\r\n };\r\n var this_2 = this;\r\n for (index = 0; index < liEle.length; index++) {\r\n _loop_2();\r\n }\r\n }\r\n if (document.querySelectorAll('ul').length < 2) {\r\n this.updateMainList();\r\n }\r\n }\r\n this.triggerChange(this.getSelectedItems(), event);\r\n };\r\n ListBox.prototype.updateMainList = function () {\r\n var mainList = this.mainList.querySelectorAll('.e-list-item');\r\n var ulList = this.ulElement.querySelectorAll('.e-list-item');\r\n var mainCount = mainList.length;\r\n var ulEleCount = ulList.length;\r\n if (this.selectionSettings.showCheckbox || (document.querySelectorAll('ul').length > 1 || mainCount !== ulEleCount)) {\r\n var listindex = 0;\r\n var valueindex = 0;\r\n var count = 0;\r\n for (listindex; listindex < mainCount;) {\r\n if (this.value) {\r\n for (valueindex; valueindex < this.value.length; valueindex++) {\r\n if (mainList[listindex].getAttribute('data-value') === this.value[valueindex]) {\r\n count++;\r\n }\r\n }\r\n }\r\n if (!count && this.selectionSettings.showCheckbox) {\r\n mainList[listindex].getElementsByClassName('e-frame')[0].classList.remove('e-check');\r\n }\r\n if (document.querySelectorAll('ul').length > 1 && count && mainCount !== ulEleCount) {\r\n this.mainList.removeChild(this.mainList.getElementsByTagName('li')[listindex]);\r\n listindex = 0;\r\n }\r\n else {\r\n listindex++;\r\n }\r\n count = 0;\r\n valueindex = 0;\r\n }\r\n }\r\n };\r\n ListBox.prototype.wireEvents = function () {\r\n var form = closest(this.element, 'form');\r\n var wrapper = this.element.tagName === 'EJS-LISTBOX' ? this.element : this.list;\r\n EventHandler.add(this.list, 'click', this.clickHandler, this);\r\n EventHandler.add(wrapper, 'keydown', this.keyDownHandler, this);\r\n EventHandler.add(wrapper, 'focusout', this.focusOutHandler, this);\r\n this.wireToolbarEvent();\r\n if (this.selectionSettings.showCheckbox) {\r\n EventHandler.remove(document, 'mousedown', this.checkBoxSelectionModule.onDocumentClick);\r\n }\r\n if (this.fields.groupBy || this.element.querySelector('select>optgroup')) {\r\n EventHandler.remove(this.list, 'scroll', this.setFloatingHeader);\r\n }\r\n if (form) {\r\n EventHandler.add(form, 'reset', this.formResetHandler, this);\r\n }\r\n };\r\n ListBox.prototype.wireToolbarEvent = function () {\r\n if (this.toolbarSettings.items.length) {\r\n EventHandler.add(this.getToolElem(), 'click', this.toolbarClickHandler, this);\r\n }\r\n };\r\n ListBox.prototype.unwireEvents = function () {\r\n var form = closest(this.element, 'form');\r\n var wrapper = this.element.tagName === 'EJS-LISTBOX' ? this.element : this.list;\r\n EventHandler.remove(this.list, 'click', this.clickHandler);\r\n EventHandler.remove(wrapper, 'keydown', this.keyDownHandler);\r\n EventHandler.remove(wrapper, 'focusout', this.focusOutHandler);\r\n if (this.allowFiltering && this.clearFilterIconElem) {\r\n EventHandler.remove(this.clearFilterIconElem, 'click', this.clearText);\r\n }\r\n if (this.toolbarSettings.items.length) {\r\n EventHandler.remove(this.getToolElem(), 'click', this.toolbarClickHandler);\r\n }\r\n if (form) {\r\n EventHandler.remove(form, 'reset', this.formResetHandler);\r\n }\r\n };\r\n ListBox.prototype.clickHandler = function (e) {\r\n this.selectHandler(e);\r\n };\r\n ListBox.prototype.checkSelectAll = function () {\r\n var searchCount = 0;\r\n var liItems = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\r\n for (var i = 0; i < liItems.length; i++) {\r\n if (!liItems[i].classList.contains('e-disabled')) {\r\n searchCount++;\r\n }\r\n }\r\n var len = this.getSelectedItems().length;\r\n if (this.showSelectAll && searchCount) {\r\n this.notify('checkSelectAll', { module: 'CheckBoxSelection',\r\n value: (searchCount === len) ? 'check' : (len === 0) ? 'uncheck' : 'indeterminate' });\r\n }\r\n };\r\n ListBox.prototype.getQuery = function (query) {\r\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\r\n if (this.allowFiltering) {\r\n var filterType = this.inputString === '' ? 'contains' : this.filterType;\r\n var dataType = this.typeOfData(this.dataSource).typeof;\r\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\r\n filterQuery.where('', filterType, this.inputString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n else {\r\n var fields = (this.fields.text) ? this.fields.text : '';\r\n filterQuery.where(fields, filterType, this.inputString, this.ignoreCase, this.ignoreAccent);\r\n }\r\n }\r\n else {\r\n filterQuery = query ? query : this.query ? this.query : new Query();\r\n }\r\n return filterQuery;\r\n };\r\n ListBox.prototype.setFiltering = function () {\r\n var filterInputObj;\r\n if (this.initLoad || isNullOrUndefined(this.filterParent)) {\r\n this.filterParent = this.createElement('span', {\r\n className: listBoxClasses.filterParent\r\n });\r\n this.filterInput = this.createElement('input', {\r\n attrs: { type: 'text' },\r\n className: listBoxClasses.filterInput\r\n });\r\n this.element.parentNode.insertBefore(this.filterInput, this.element);\r\n filterInputObj = Input.createInput({\r\n element: this.filterInput,\r\n buttons: [listBoxClasses.filterBarClearIcon],\r\n properties: { placeholder: this.filterBarPlaceholder }\r\n }, this.createElement);\r\n append([filterInputObj.container], this.filterParent);\r\n prepend([this.filterParent], this.list);\r\n attributes(this.filterInput, {\r\n 'aria-disabled': 'false',\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-activedescendant': null,\r\n 'autocomplete': 'off',\r\n 'autocorrect': 'off',\r\n 'autocapitalize': 'off',\r\n 'spellcheck': 'false'\r\n });\r\n if (this.height.toString().indexOf('%') < 0) {\r\n addClass([this.list], 'e-filter-list');\r\n }\r\n this.inputString = this.filterInput.value;\r\n this.filterWireEvents();\r\n return filterInputObj;\r\n }\r\n };\r\n ListBox.prototype.filterWireEvents = function (filterElem) {\r\n if (filterElem) {\r\n this.filterInput = filterElem.querySelector('.e-input-filter');\r\n }\r\n this.clearFilterIconElem = this.filterInput.parentElement.querySelector('.' + listBoxClasses.clearIcon);\r\n if (this.clearFilterIconElem) {\r\n EventHandler.add(this.clearFilterIconElem, 'click', this.clearText, this);\r\n if (!filterElem) {\r\n this.clearFilterIconElem.style.visibility = 'hidden';\r\n }\r\n }\r\n EventHandler.add(this.filterInput, 'input', this.onInput, this);\r\n EventHandler.add(this.filterInput, 'keyup', this.KeyUp, this);\r\n EventHandler.add(this.filterInput, 'keydown', this.onKeyDown, this);\r\n };\r\n ListBox.prototype.selectHandler = function (e, isKey) {\r\n var isSelect = true;\r\n var currSelIdx;\r\n var li = closest(e.target, '.' + 'e-list-item');\r\n var selectedLi = [li];\r\n if (li && li.parentElement) {\r\n currSelIdx = [].slice.call(li.parentElement.children).indexOf(li);\r\n if (!this.selectionSettings.showCheckbox) {\r\n if ((e.ctrlKey || Browser.isDevice) && this.isSelected(li)) {\r\n li.classList.remove(cssClass.selected);\r\n li.removeAttribute('aria-selected');\r\n isSelect = false;\r\n }\r\n else if (!(this.selectionSettings.mode === 'Multiple' && (e.ctrlKey || Browser.isDevice))) {\r\n this.getSelectedItems().forEach(function (ele) {\r\n ele.removeAttribute('aria-selected');\r\n });\r\n removeClass(this.getSelectedItems(), cssClass.selected);\r\n }\r\n }\r\n else {\r\n isSelect = !li.getElementsByClassName('e-frame')[0].classList.contains('e-check');\r\n }\r\n if (e.shiftKey && !this.selectionSettings.showCheckbox && this.selectionSettings.mode !== 'Single') {\r\n selectedLi = [].slice.call(li.parentElement.children)\r\n .slice(Math.min(currSelIdx, this.prevSelIdx), Math.max(currSelIdx, this.prevSelIdx) + 1)\r\n .filter(function (ele) { return ele.classList.contains('e-list-item'); });\r\n }\r\n else {\r\n this.prevSelIdx = [].slice.call(li.parentElement.children).indexOf(li);\r\n }\r\n if (isSelect) {\r\n if (!this.selectionSettings.showCheckbox) {\r\n addClass(selectedLi, cssClass.selected);\r\n }\r\n selectedLi.forEach(function (ele) {\r\n ele.setAttribute('aria-selected', 'true');\r\n });\r\n this.list.setAttribute('aria-activedescendant', li.id);\r\n }\r\n if (!isKey && (this.maximumSelectionLength > (this.value && this.value.length) || !isSelect) &&\r\n (this.maximumSelectionLength >= (this.value && this.value.length) || !isSelect) &&\r\n !(this.maximumSelectionLength < (this.value && this.value.length))) {\r\n this.notify('updatelist', { li: li, e: e, module: 'listbox' });\r\n }\r\n if (this.allowFiltering && !isKey) {\r\n var liDataValue_1 = this.getFormattedValue(li.getAttribute('data-value'));\r\n if (!isSelect) {\r\n this.value = this.value.filter(function (value1) {\r\n return value1 !== liDataValue_1;\r\n });\r\n }\r\n else {\r\n var values = [];\r\n extend(values, this.value);\r\n values.push(liDataValue_1);\r\n this.value = values;\r\n }\r\n if (document.querySelectorAll('ul').length < 2) {\r\n this.updateMainList();\r\n }\r\n }\r\n this.updateSelectedOptions();\r\n this.triggerChange(this.getSelectedItems(), e);\r\n this.checkMaxSelection();\r\n }\r\n };\r\n ListBox.prototype.triggerChange = function (selectedLis, event) {\r\n this.trigger('change', { elements: selectedLis, items: this.getDataByElements(selectedLis), value: this.value, event: event });\r\n };\r\n ListBox.prototype.getDataByElems = function (elems) {\r\n var data = [];\r\n for (var i = 0, len = elems.length; i < len; i++) {\r\n data.push(this.getDataByValue(this.getFormattedValue(elems[i].getAttribute('data-value'))));\r\n }\r\n return data;\r\n };\r\n ListBox.prototype.getDataByElements = function (elems) {\r\n var data = [];\r\n var value;\r\n var sIdx = 0;\r\n if (!isNullOrUndefined(this.listData)) {\r\n var type = this.typeOfData(this.listData).typeof;\r\n if (type === 'string' || type === 'number' || type === 'boolean') {\r\n for (var _i = 0, _a = this.listData; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n for (var i = sIdx, len = elems.length; i < len; i++) {\r\n value = this.getFormattedValue(elems[i].getAttribute('data-value'));\r\n if (!isNullOrUndefined(item) && item === value) {\r\n sIdx = i;\r\n data.push(item);\r\n break;\r\n }\r\n }\r\n if (elems.length === data.length) {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n for (var _b = 0, _c = this.listData; _b < _c.length; _b++) {\r\n var item = _c[_b];\r\n for (var i = sIdx, len = elems.length; i < len; i++) {\r\n value = this.getFormattedValue(elems[i].getAttribute('data-value'));\r\n if (!isNullOrUndefined(item) && getValue((this.fields.value ? this.fields.value : 'value'), item) === value) {\r\n sIdx = i;\r\n data.push(item);\r\n break;\r\n }\r\n }\r\n if (elems.length === data.length) {\r\n break;\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n return null;\r\n };\r\n ListBox.prototype.checkMaxSelection = function () {\r\n var limit = this.list.querySelectorAll('.e-list-item span.e-check').length;\r\n if (this.selectionSettings.showCheckbox) {\r\n var index = 0;\r\n var liCollElem = this.list.getElementsByClassName('e-list-item');\r\n for (index; index < liCollElem.length; index++) {\r\n if (!liCollElem[index].querySelector('.e-frame.e-check')) {\r\n if (limit === this.maximumSelectionLength) {\r\n liCollElem[index].classList.add('e-disable');\r\n }\r\n else if (liCollElem[index].classList.contains('e-disable')) {\r\n liCollElem[index].classList.remove('e-disable');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ListBox.prototype.toolbarClickHandler = function (e) {\r\n var btn = closest(e.target, 'button');\r\n if (btn) {\r\n this.toolbarAction = btn.getAttribute('data-value');\r\n if (btn.disabled) {\r\n return;\r\n }\r\n switch (this.toolbarAction) {\r\n case 'moveUp':\r\n this.moveUpDown(true);\r\n break;\r\n case 'moveDown':\r\n this.moveUpDown();\r\n break;\r\n case 'moveTo':\r\n this.moveItemTo();\r\n break;\r\n case 'moveFrom':\r\n this.moveItemFrom();\r\n break;\r\n case 'moveAllTo':\r\n this.moveAllItemTo();\r\n break;\r\n case 'moveAllFrom':\r\n this.moveAllItemFrom();\r\n break;\r\n default:\r\n this.trigger('actionBegin', { cancel: false, items: this.getDataByElems(this.getSelectedItems()),\r\n eventName: this.toolbarAction });\r\n break;\r\n }\r\n }\r\n };\r\n ListBox.prototype.moveUpDown = function (isUp, isKey, value) {\r\n var _this = this;\r\n var elems = this.getSelectedItems();\r\n if (value) {\r\n elems = value;\r\n }\r\n if (((isUp && this.isSelected(this.ulElement.firstElementChild))\r\n || (!isUp && this.isSelected(this.ulElement.lastElementChild))) && !value) {\r\n return;\r\n }\r\n var tempItems = this.getDataByElems(elems);\r\n var localDataArgs = { cancel: false, items: tempItems, eventName: this.toolbarAction };\r\n this.trigger('actionBegin', localDataArgs);\r\n if (localDataArgs.cancel) {\r\n return;\r\n }\r\n (isUp ? elems : elems.reverse()).forEach(function (ele) {\r\n var jsonToIdx = Array.prototype.indexOf.call(_this.ulElement.querySelectorAll('.e-list-item'), ele);\r\n var idx = Array.prototype.indexOf.call(_this.ulElement.children, ele);\r\n moveTo(_this.ulElement, _this.ulElement, [idx], isUp ? idx - 1 : idx + 2);\r\n _this.changeData(idx, isUp ? idx - 1 : idx + 1, isUp ? jsonToIdx - 1 : jsonToIdx + 1, ele);\r\n });\r\n this.trigger('actionComplete', { items: tempItems, eventName: this.toolbarAction });\r\n elems[0].focus();\r\n if (!isKey && this.toolbarSettings.items.length) {\r\n this.getToolElem().querySelector('[data-value=' + (isUp ? 'moveUp' : 'moveDown') + ']').focus();\r\n }\r\n this.updateToolBarState();\r\n };\r\n ListBox.prototype.moveItemTo = function () {\r\n this.moveData(this, this.getScopedListBox());\r\n };\r\n ListBox.prototype.moveItemFrom = function () {\r\n this.moveData(this.getScopedListBox(), this);\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {ListBox} fListBox - Specifies the from listbox.\r\n * @param {ListBox} tListBox - Specifies the to listbox.\r\n * @param {boolean} isKey - Specifies the key.\r\n * @param {Element[]} value - Specifies the value.\r\n * @param {number} index - Specifies the index.\r\n * @returns {void}\r\n * @private\r\n */\r\n ListBox.prototype.moveData = function (fListBox, tListBox, isKey, value, index) {\r\n var idx = [];\r\n var dataIdx = [];\r\n var jsonIdx = [];\r\n var sortIdx = [];\r\n var listData = [].slice.call(fListBox.listData);\r\n var tListData = [].slice.call(tListBox.listData);\r\n var sortData = [].slice.call(fListBox.sortedData);\r\n var tSortData = [].slice.call(tListBox.sortedData);\r\n var fliCollections = [].slice.call(fListBox.liCollections);\r\n var dataLiIdx = [];\r\n var tliCollections = [].slice.call(tListBox.liCollections);\r\n var tempItems = [];\r\n var data = [];\r\n var elems = fListBox.getSelectedItems();\r\n if (value) {\r\n elems = value;\r\n }\r\n var isRefresh = tListBox.sortOrder !== 'None' || (tListBox.selectionSettings.showCheckbox !==\r\n fListBox.selectionSettings.showCheckbox) || tListBox.fields.groupBy || tListBox.itemTemplate || fListBox.itemTemplate;\r\n fListBox.value = [];\r\n if (elems.length) {\r\n this.removeSelected(fListBox, elems);\r\n elems.forEach(function (ele) {\r\n idx.push(Array.prototype.indexOf.call(fListBox.ulElement.children, ele)); // update sortable elem\r\n // To update lb view data\r\n dataLiIdx.push(Array.prototype.indexOf.call(fListBox.ulElement.querySelectorAll('.e-list-item'), ele));\r\n // To update lb listdata data\r\n dataIdx.push(Array.prototype.indexOf.call(fListBox.listData, fListBox.getDataByElems([ele])[0]));\r\n // To update lb sorted data\r\n sortIdx.push(Array.prototype.indexOf.call(fListBox.sortedData, fListBox.getDataByElems([ele])[0]));\r\n // To update lb original data\r\n jsonIdx.push(Array.prototype.indexOf.call(fListBox.jsonData, fListBox.getDataByElems([ele])[0]));\r\n });\r\n if (this.sortOrder !== 'None') {\r\n sortIdx.forEach(function (i) {\r\n tempItems.push(fListBox.sortedData[i]);\r\n });\r\n }\r\n else {\r\n jsonIdx.forEach(function (i) {\r\n tempItems.push(fListBox.jsonData[i]);\r\n });\r\n }\r\n var localDataArgs = { cancel: false, items: tempItems, eventName: this.toolbarAction };\r\n fListBox.trigger('actionBegin', localDataArgs);\r\n if (localDataArgs.cancel) {\r\n return;\r\n }\r\n var rLiCollection_1 = [];\r\n dataLiIdx.sort(function (n1, n2) { return n1 - n2; }).reverse().forEach(function (i) {\r\n rLiCollection_1.push(fliCollections.splice(i, 1)[0]);\r\n });\r\n fListBox.liCollections = fliCollections;\r\n if (index) {\r\n var toColl = tliCollections.splice(0, index);\r\n tListBox.liCollections = toColl.concat(rLiCollection_1.reverse()).concat(tliCollections);\r\n }\r\n else {\r\n tListBox.liCollections = tliCollections.concat(rLiCollection_1.reverse());\r\n }\r\n if (tListBox.listData.length === 0) {\r\n var noRecElem = tListBox.ulElement.childNodes[0];\r\n if (noRecElem) {\r\n tListBox.ulElement.removeChild(noRecElem);\r\n }\r\n }\r\n dataIdx.sort(function (n1, n2) { return n2 - n1; }).forEach(function (i) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n listData.splice(i, 1)[0];\r\n });\r\n sortIdx.sort(function (n1, n2) { return n2 - n1; }).forEach(function (i) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\r\n sortData.splice(i, 1)[0];\r\n });\r\n jsonIdx.slice().reverse().forEach(function (i) {\r\n data.push(fListBox.jsonData.splice(i, 1)[0]);\r\n });\r\n if (isRefresh) {\r\n if (fListBox.fields.groupBy) {\r\n var sourceElem = fListBox.renderItems(listData, fListBox.fields);\r\n fListBox.updateListItems(sourceElem, fListBox.ulElement);\r\n }\r\n else {\r\n elems.forEach(function (ele) { detach(ele); });\r\n }\r\n }\r\n else {\r\n moveTo(fListBox.ulElement, tListBox.ulElement, idx, index);\r\n fListBox.trigger('actionComplete', { items: tempItems, eventName: this.toolbarAction });\r\n }\r\n if (tListBox.mainList.childElementCount !== tListBox.jsonData.length) {\r\n tListBox.mainList = tListBox.ulElement;\r\n }\r\n fListBox.updateMainList();\r\n var tJsonData = [].slice.call(tListBox.jsonData);\r\n tSortData = [].slice.call(tListBox.sortedData);\r\n this.selectNextList(elems, dataLiIdx, dataIdx, fListBox);\r\n if (isKey) {\r\n this.list.focus();\r\n }\r\n fListBox.listData = listData;\r\n fListBox.sortedData = sortData;\r\n index = (index) ? index : tListData.length;\r\n for (var i = tempItems.length - 1; i >= 0; i--) {\r\n tListData.splice(index, 0, tempItems[i]);\r\n tJsonData.splice(index, 0, tempItems[i]);\r\n tSortData.splice(index, 0, tempItems[i]);\r\n }\r\n tListBox.listData = tListData;\r\n tListBox.jsonData = tJsonData;\r\n tListBox.sortedData = tSortData;\r\n if (isRefresh) {\r\n var sourceElem = tListBox.renderItems(tListData, tListBox.fields);\r\n tListBox.updateListItems(sourceElem, tListBox.ulElement);\r\n tListBox.setSelection();\r\n fListBox.trigger('actionComplete', { items: tempItems, eventName: this.toolbarAction });\r\n }\r\n fListBox.updateSelectedOptions();\r\n if (fListBox.listData.length === 0) {\r\n fListBox.l10nUpdate();\r\n }\r\n }\r\n if (fListBox.value.length === 1 && fListBox.getSelectedItems().length) {\r\n fListBox.value[0] = fListBox.getFormattedValue(fListBox.getSelectedItems()[0].getAttribute('data-value'));\r\n }\r\n };\r\n ListBox.prototype.selectNextList = function (elems, dataLiIdx, dataIdx, inst) {\r\n var childCnt = inst.ulElement.querySelectorAll('.e-list-item').length;\r\n var ele;\r\n var liIdx;\r\n var validIdx = -1;\r\n if (elems.length === 1 && childCnt && !inst.selectionSettings.showCheckbox) {\r\n liIdx = childCnt <= dataLiIdx[0] ? childCnt - 1 : dataLiIdx[0];\r\n ele = inst.ulElement.querySelectorAll('.e-list-item')[liIdx];\r\n validIdx = inst.getValidIndex(ele, liIdx, childCnt === dataIdx[0] ? 38 : 40);\r\n if (validIdx > -1) {\r\n (inst.ulElement.querySelectorAll('.e-list-item')[validIdx].classList.add(cssClass.selected));\r\n }\r\n }\r\n };\r\n ListBox.prototype.moveAllItemTo = function () {\r\n this.moveAllData(this, this.getScopedListBox());\r\n };\r\n ListBox.prototype.moveAllItemFrom = function () {\r\n this.moveAllData(this.getScopedListBox(), this);\r\n };\r\n ListBox.prototype.moveAllData = function (fListBox, tListBox, isKey, index) {\r\n var listData = [].slice.call(tListBox.listData);\r\n var jsonData = [].slice.call(tListBox.jsonData);\r\n var isRefresh = tListBox.sortOrder !== 'None' || (tListBox.selectionSettings.showCheckbox !==\r\n fListBox.selectionSettings.showCheckbox) || tListBox.fields.groupBy || tListBox.itemTemplate || fListBox.itemTemplate;\r\n this.removeSelected(fListBox, fListBox.getSelectedItems());\r\n var tempItems = [].slice.call(fListBox.jsonData);\r\n var localDataArgs = { cancel: false, items: tempItems, eventName: this.toolbarAction };\r\n fListBox.trigger('actionBegin', localDataArgs);\r\n if (localDataArgs.cancel) {\r\n return;\r\n }\r\n if (tListBox.listData.length === 0) {\r\n var noRecElem = tListBox.ulElement.childNodes[0];\r\n if (noRecElem) {\r\n tListBox.ulElement.removeChild(noRecElem);\r\n }\r\n }\r\n if (isRefresh) {\r\n var noRecElem = fListBox.ulElement.childNodes[0];\r\n if (noRecElem) {\r\n fListBox.ulElement.removeChild(noRecElem);\r\n }\r\n }\r\n moveTo(fListBox.ulElement, tListBox.ulElement, \r\n // eslint-disable-next-line prefer-spread\r\n Array.apply(null, { length: fListBox.ulElement.childElementCount }).map(Number.call, Number), index);\r\n this.trigger('actionComplete', { items: tempItems, eventName: this.toolbarAction });\r\n if (isKey) {\r\n this.list.focus();\r\n }\r\n index = (index) ? index : listData.length;\r\n for (var i = 0; i < fListBox.listData.length; i++) {\r\n listData.splice(index + i, 0, fListBox.listData[i]);\r\n }\r\n for (var i = 0; i < fListBox.jsonData.length; i++) {\r\n jsonData.splice(index + i, 0, fListBox.jsonData[i]);\r\n }\r\n var fliCollections = [].slice.call(fListBox.liCollections);\r\n var tliCollections = [].slice.call(tListBox.liCollections);\r\n fListBox.liCollections = [];\r\n if (index) {\r\n var toColl = tliCollections.splice(0, index);\r\n tListBox.liCollections = toColl.concat(fliCollections).concat(tliCollections);\r\n }\r\n else {\r\n tListBox.liCollections = tliCollections.concat(fliCollections);\r\n }\r\n fListBox.value = [];\r\n listData = listData\r\n .filter(function (data) { return data.isHeader !== true; });\r\n tListBox.listData = listData;\r\n tListBox.jsonData = jsonData;\r\n fListBox.listData = fListBox.sortedData = fListBox.jsonData = [];\r\n if (isRefresh) {\r\n var sourceElem = tListBox.renderItems(listData, tListBox.fields);\r\n tListBox.updateListItems(sourceElem, tListBox.ulElement);\r\n this.trigger('actionComplete', { items: tempItems, eventName: this.toolbarAction });\r\n }\r\n else {\r\n tListBox.sortedData = listData;\r\n }\r\n fListBox.updateSelectedOptions();\r\n if (fListBox.listData.length === 0) {\r\n fListBox.l10nUpdate();\r\n }\r\n };\r\n ListBox.prototype.changeData = function (fromIdx, toIdx, jsonToIdx, ele) {\r\n var listData = [].slice.call(this.listData);\r\n var jsonData = [].slice.call(this.jsonData);\r\n var sortData = [].slice.call(this.sortedData);\r\n var jsonIdx = Array.prototype.indexOf.call(this.jsonData, this.getDataByElems([ele])[0]);\r\n var sortIdx = Array.prototype.indexOf.call(this.sortedData, this.getDataByElems([ele])[0]);\r\n var liColl = [].slice.call(this.liCollections);\r\n listData.splice(toIdx, 0, listData.splice(fromIdx, 1)[0]);\r\n jsonData.splice(jsonToIdx, 0, jsonData.splice(jsonIdx, 1)[0]);\r\n sortData.splice(toIdx, 0, sortData.splice(sortIdx, 1)[0]);\r\n liColl.splice(toIdx, 0, liColl.splice(fromIdx, 1)[0]);\r\n this.listData = listData;\r\n this.jsonData = jsonData;\r\n this.liCollections = liColl;\r\n this.sortedData = sortData;\r\n };\r\n ListBox.prototype.getSelectedItems = function () {\r\n var ele = [];\r\n if (this.selectionSettings.showCheckbox) {\r\n [].slice.call(this.ulElement.getElementsByClassName('e-check')).forEach(function (cbox) {\r\n ele.push(closest(cbox, '.' + 'e-list-item'));\r\n });\r\n }\r\n else {\r\n ele = [].slice.call(this.ulElement.getElementsByClassName(cssClass.selected));\r\n }\r\n return ele;\r\n };\r\n ListBox.prototype.getScopedListBox = function () {\r\n var _this = this;\r\n var listObj;\r\n if (this.scope) {\r\n [].slice.call(document.querySelectorAll(this.scope)).forEach(function (ele) {\r\n if (getComponent(ele, _this.getModuleName())) {\r\n listObj = getComponent(ele, _this.getModuleName());\r\n }\r\n });\r\n }\r\n return listObj;\r\n };\r\n ListBox.prototype.getGrabbedItems = function () {\r\n var elems = Array.prototype.slice.call(this.element.querySelectorAll('.e-grabbed'));\r\n return elems;\r\n };\r\n ListBox.prototype.getDragArgs = function (args, isDragEnd) {\r\n var elems = this.getGrabbedItems();\r\n if (elems.length) {\r\n if (isDragEnd) {\r\n elems.push(args.target);\r\n }\r\n }\r\n else {\r\n elems = [args.target];\r\n }\r\n return { elements: elems, items: this.getDataByElems(elems) };\r\n };\r\n ListBox.prototype.onKeyDown = function (e) {\r\n this.keyDownHandler(e);\r\n e.stopPropagation();\r\n };\r\n ListBox.prototype.keyDownHandler = function (e) {\r\n if ([32, 35, 36, 37, 38, 39, 40, 65].indexOf(e.keyCode) > -1 && !this.allowFiltering) {\r\n if (e.target && e.target.className.indexOf('e-edit-template') > -1) {\r\n return;\r\n }\r\n e.preventDefault();\r\n if (e.keyCode === 32 && this.ulElement.children.length) {\r\n this.selectHandler({\r\n target: this.ulElement.getElementsByClassName('e-focused')[0],\r\n ctrlKey: e.ctrlKey, shiftKey: e.shiftKey\r\n });\r\n }\r\n else if (e.keyCode === 65 && e.ctrlKey) {\r\n this.selectAll();\r\n }\r\n else if ((e.keyCode === 38 || e.keyCode === 40) && e.ctrlKey && e.shiftKey) {\r\n this.moveUpDown(e.keyCode === 38 ? true : false, true);\r\n }\r\n else if ((this.toolbarSettings.items.length || this.tBListBox) && (e.keyCode === 39 || e.keyCode === 37) && e.ctrlKey) {\r\n var listObj = this.tBListBox || this.getScopedListBox();\r\n if (e.keyCode === 39) {\r\n if (e.shiftKey) {\r\n this.moveAllData(this, listObj, true);\r\n }\r\n else {\r\n this.moveData(this, listObj, true);\r\n }\r\n }\r\n else {\r\n if (e.shiftKey) {\r\n this.moveAllData(listObj, this, true);\r\n }\r\n else {\r\n this.moveData(listObj, this, true);\r\n }\r\n }\r\n }\r\n else if (e.keyCode !== 37 && e.keyCode !== 39) {\r\n this.upDownKeyHandler(e);\r\n }\r\n }\r\n else if (this.allowFiltering) {\r\n if (e.keyCode === 40 || e.keyCode === 38) {\r\n this.upDownKeyHandler(e);\r\n }\r\n }\r\n };\r\n ListBox.prototype.upDownKeyHandler = function (e) {\r\n var ul = this.ulElement;\r\n var defaultIdx = (e.keyCode === 40 || e.keyCode === 36) ? 0 : ul.childElementCount - 1;\r\n var fliIdx = defaultIdx;\r\n var fli = ul.getElementsByClassName('e-focused')[0] || ul.getElementsByClassName(cssClass.selected)[0];\r\n if (fli) {\r\n if (e.keyCode !== 35 && e.keyCode !== 36) {\r\n fliIdx = Array.prototype.indexOf.call(ul.children, fli);\r\n if (e.keyCode === 40) {\r\n fliIdx++;\r\n }\r\n else {\r\n fliIdx--;\r\n }\r\n if (fliIdx < 0 || fliIdx > ul.childElementCount - 1) {\r\n return;\r\n }\r\n }\r\n removeClass([fli], 'e-focused');\r\n }\r\n var cli = ul.children[fliIdx];\r\n if (cli) {\r\n fliIdx = this.getValidIndex(cli, fliIdx, e.keyCode);\r\n if (fliIdx === -1) {\r\n addClass([fli], 'e-focused');\r\n return;\r\n }\r\n ul.children[fliIdx].focus();\r\n ul.children[fliIdx].classList.add('e-focused');\r\n if (!e.ctrlKey) {\r\n this.selectHandler({ target: ul.children[fliIdx], ctrlKey: e.ctrlKey, shiftKey: e.shiftKey }, true);\r\n }\r\n }\r\n };\r\n ListBox.prototype.KeyUp = function (e) {\r\n var _this = this;\r\n var char = String.fromCharCode(e.keyCode);\r\n var isWordCharacter = char.match(/\\w/);\r\n if (!isNullOrUndefined(isWordCharacter)) {\r\n this.isValidKey = true;\r\n }\r\n this.isValidKey = (e.keyCode === 8) || (e.keyCode === 46) || this.isValidKey;\r\n if (this.isValidKey) {\r\n this.isValidKey = false;\r\n switch (e.keyCode) {\r\n default:\r\n if (this.allowFiltering) {\r\n var eventArgsData_1 = {\r\n preventDefaultAction: false,\r\n text: this.targetElement(),\r\n updateData: function (dataSource, query, fields) {\r\n if (eventArgsData_1.cancel) {\r\n return;\r\n }\r\n _this.isFiltered = true;\r\n _this.remoteFilterAction = true;\r\n _this.dataUpdater(dataSource, query, fields);\r\n },\r\n event: e,\r\n cancel: false\r\n };\r\n this.trigger('filtering', eventArgsData_1, function (args) {\r\n _this.isDataFetched = false;\r\n if (args.cancel || (_this.filterInput.value !== '' && _this.isFiltered)) {\r\n return;\r\n }\r\n if (!args.cancel && !_this.isCustomFiltering && !args.preventDefaultAction) {\r\n _this.inputString = _this.filterInput.value;\r\n _this.filteringAction(_this.jsonData, new Query(), _this.fields);\r\n }\r\n if (!_this.isFiltered && !_this.isCustomFiltering && !args.preventDefaultAction) {\r\n _this.dataUpdater(_this.jsonData, new Query(), _this.fields);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To filter the data from given data source by using query.\r\n *\r\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\r\n * @param {Query} query - Specify the query to filter the data.\r\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\r\n * @returns {void}.\r\n */\r\n ListBox.prototype.filter = function (dataSource, query, fields) {\r\n this.isCustomFiltering = true;\r\n this.filteringAction(dataSource, query, fields);\r\n };\r\n ListBox.prototype.filteringAction = function (dataSource, query, fields) {\r\n this.resetList(dataSource, fields, query);\r\n };\r\n ListBox.prototype.targetElement = function () {\r\n this.targetInputElement = this.list.getElementsByClassName('e-input-filter')[0];\r\n return this.targetInputElement.value;\r\n };\r\n ListBox.prototype.dataUpdater = function (dataSource, query, fields) {\r\n this.isDataFetched = false;\r\n var backCommand = true;\r\n if (this.targetElement().trim() === '') {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n if (backCommand) {\r\n this.remoteCustomValue = false;\r\n this.onActionComplete(list, this.jsonData);\r\n this.notify('reOrder', { module: 'CheckBoxSelection', enable: this.selectionSettings.showCheckbox, e: this });\r\n }\r\n }\r\n else {\r\n this.resetList(dataSource, fields, query);\r\n }\r\n };\r\n ListBox.prototype.focusOutHandler = function () {\r\n var ele = this.list.getElementsByClassName('e-focused')[0];\r\n if (ele) {\r\n ele.classList.remove('e-focused');\r\n }\r\n if (this.allowFiltering) {\r\n this.refreshClearIcon();\r\n }\r\n };\r\n ListBox.prototype.getValidIndex = function (cli, index, keyCode) {\r\n var cul = this.ulElement;\r\n if (cli.classList.contains('e-disabled') || cli.classList.contains(cssClass.group)) {\r\n if (keyCode === 40 || keyCode === 36) {\r\n index++;\r\n }\r\n else {\r\n index--;\r\n }\r\n }\r\n if (index < 0 || index === cul.childElementCount) {\r\n return -1;\r\n }\r\n cli = cul.querySelectorAll('.e-list-item')[index];\r\n if (cli.classList.contains('e-disabled') || cli.classList.contains(cssClass.group)) {\r\n index = this.getValidIndex(cli, index, keyCode);\r\n }\r\n return index;\r\n };\r\n ListBox.prototype.updateSelectedOptions = function () {\r\n var _this = this;\r\n var selectedOptions = [];\r\n var values = [];\r\n extend(values, this.value);\r\n this.getSelectedItems().forEach(function (ele) {\r\n if (!ele.classList.contains('e-grabbed')) {\r\n selectedOptions.push(_this.getFormattedValue(ele.getAttribute('data-value')));\r\n }\r\n });\r\n if (this.mainList.childElementCount === this.ulElement.childElementCount) {\r\n if (this.allowFiltering && this.selectionSettings.showCheckbox) {\r\n for (var i = 0; i < selectedOptions.length; i++) {\r\n if (values.indexOf(selectedOptions[i]) > -1) {\r\n continue;\r\n }\r\n else {\r\n values.push(selectedOptions[i]);\r\n }\r\n }\r\n this.setProperties({ value: values }, true);\r\n }\r\n else {\r\n this.setProperties({ value: selectedOptions }, true);\r\n }\r\n }\r\n this.updateSelectTag();\r\n this.updateToolBarState();\r\n if (this.tBListBox) {\r\n this.tBListBox.updateToolBarState();\r\n }\r\n };\r\n ListBox.prototype.clearSelection = function (values) {\r\n var _this = this;\r\n if (values === void 0) { values = this.value; }\r\n if (this.selectionSettings.showCheckbox) {\r\n var dvalue_1;\r\n this.getSelectedItems().forEach(function (li) {\r\n dvalue_1 = _this.getFormattedValue(li.getAttribute('data-value'));\r\n if (values.indexOf(dvalue_1) < 0) {\r\n li.getElementsByClassName('e-check')[0].classList.remove('e-check');\r\n li.getElementsByClassName('e-checkbox-wrapper')[0].removeAttribute('aria-checked');\r\n li.removeAttribute('aria-selected');\r\n }\r\n });\r\n }\r\n };\r\n ListBox.prototype.setSelection = function (values, isSelect, isText) {\r\n var _this = this;\r\n if (values === void 0) { values = this.value; }\r\n if (isSelect === void 0) { isSelect = true; }\r\n if (isText === void 0) { isText = false; }\r\n var li;\r\n var liselect;\r\n if (values) {\r\n values.forEach(function (value) {\r\n var text;\r\n if (isText) {\r\n text = _this.getValueByText(value);\r\n }\r\n else {\r\n text = value;\r\n }\r\n li = _this.list.querySelector('[data-value=\"' + text + '\"]');\r\n if (li) {\r\n if (_this.selectionSettings.showCheckbox) {\r\n liselect = li.getElementsByClassName('e-frame')[0].classList.contains('e-check');\r\n }\r\n else {\r\n liselect = li.classList.contains('e-selected');\r\n }\r\n if (!isSelect && liselect || isSelect && !liselect && li) {\r\n if (_this.selectionSettings.showCheckbox) {\r\n _this.notify('updatelist', { li: li, module: 'listbox' });\r\n }\r\n else {\r\n if (isSelect) {\r\n li.classList.add(cssClass.selected);\r\n li.setAttribute('aria-selected', 'true');\r\n }\r\n else {\r\n li.classList.remove(cssClass.selected);\r\n li.removeAttribute('aria-selected');\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.updateSelectTag();\r\n };\r\n ListBox.prototype.updateSelectTag = function () {\r\n var ele = this.getSelectTag();\r\n var innerHTML = '';\r\n ele.innerHTML = '';\r\n if (this.value) {\r\n for (var i = 0, len = this.value.length; i < len; i++) {\r\n innerHTML += '';\r\n }\r\n ele.innerHTML += innerHTML;\r\n }\r\n this.checkSelectAll();\r\n };\r\n ListBox.prototype.checkDisabledState = function (inst) {\r\n return inst.ulElement.querySelectorAll('.' + cssClass.li).length === 0;\r\n };\r\n ListBox.prototype.updateToolBarState = function () {\r\n var _this = this;\r\n if (this.toolbarSettings.items.length) {\r\n var listObj_1 = this.getScopedListBox();\r\n var wrap_1 = this.list.parentElement.getElementsByClassName('e-listbox-tool')[0];\r\n this.toolbarSettings.items.forEach(function (value) {\r\n var btn = wrap_1.querySelector('[data-value=\"' + value + '\"]');\r\n switch (value) {\r\n case 'moveAllTo':\r\n btn.disabled = _this.checkDisabledState(_this);\r\n break;\r\n case 'moveAllFrom':\r\n btn.disabled = _this.checkDisabledState(listObj_1);\r\n break;\r\n case 'moveFrom':\r\n btn.disabled = listObj_1.value && listObj_1.value.length ? false : true;\r\n break;\r\n case 'moveUp':\r\n btn.disabled = _this.value && _this.value.length\r\n && !_this.isSelected(_this.ulElement.children[0]) ? false : true;\r\n break;\r\n case 'moveDown':\r\n btn.disabled = _this.value && _this.value.length\r\n && !_this.isSelected(_this.ulElement.children[_this.ulElement.childElementCount - 1]) ? false : true;\r\n break;\r\n default:\r\n btn.disabled = _this.value && _this.value.length ? false : true;\r\n break;\r\n }\r\n });\r\n }\r\n };\r\n ListBox.prototype.setCheckboxPosition = function () {\r\n var listWrap = this.list;\r\n if (!this.initLoad && this.selectionSettings.checkboxPosition === 'Left') {\r\n listWrap.classList.remove('e-right');\r\n }\r\n if (this.selectionSettings.checkboxPosition === 'Right') {\r\n listWrap.classList.add('e-right');\r\n }\r\n };\r\n ListBox.prototype.showCheckbox = function (showCheckbox) {\r\n var index = 0;\r\n var liColl = this.list.lastElementChild.querySelectorAll('li');\r\n var liCollLen = this.list.lastElementChild.getElementsByClassName('e-list-item').length;\r\n if (showCheckbox) {\r\n this.ulElement = this.renderItems(this.listData, this.fields);\r\n this.mainList = this.ulElement;\r\n this.list.removeChild(this.list.getElementsByTagName('ul')[0]);\r\n this.list.appendChild(this.ulElement);\r\n if (this.selectionSettings.showSelectAll && !this.list.getElementsByClassName('e-selectall-parent')[0]) {\r\n var l10nShow = new L10n(this.getModuleName(), { selectAllText: 'Select All', unSelectAllText: 'Unselect All' }, this.locale);\r\n this.showSelectAll = true;\r\n this.selectAllText = l10nShow.getConstant('selectAllText');\r\n this.unSelectAllText = l10nShow.getConstant('unSelectAllText');\r\n this.popupWrapper = this.list;\r\n this.checkBoxSelectionModule.checkAllParent = null;\r\n this.notify('selectAll', {});\r\n this.checkSelectAll();\r\n }\r\n }\r\n else {\r\n if (this.list.getElementsByClassName('e-selectall-parent')[0]) {\r\n this.list.removeChild(this.list.getElementsByClassName('e-selectall-parent')[0]);\r\n }\r\n for (index; index < liCollLen; index++) {\r\n if (liColl[index].classList.contains('e-list-item')) {\r\n liColl[index].removeChild(liColl[index].getElementsByClassName('e-checkbox-wrapper')[0]);\r\n }\r\n if (liColl[index].hasAttribute('aria-selected')) {\r\n liColl[index].removeAttribute('aria-selected');\r\n }\r\n }\r\n this.mainList = this.ulElement;\r\n }\r\n this.value = [];\r\n };\r\n ListBox.prototype.isSelected = function (ele) {\r\n if (!isNullOrUndefined(ele)) {\r\n return ele.classList.contains(cssClass.selected) || ele.querySelector('.e-check') !== null;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n ListBox.prototype.getSelectTag = function () {\r\n return this.list.getElementsByClassName('e-hidden-select')[0];\r\n };\r\n ListBox.prototype.getToolElem = function () {\r\n return this.list.parentElement.getElementsByClassName('e-listbox-tool')[0];\r\n };\r\n ListBox.prototype.formResetHandler = function () {\r\n this.value = this.initialSelectedOptions;\r\n };\r\n /**\r\n * Return the module name.\r\n *\r\n * @private\r\n * @returns {string} - Module name\r\n */\r\n ListBox.prototype.getModuleName = function () {\r\n return 'listbox';\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist data\r\n */\r\n ListBox.prototype.getPersistData = function () {\r\n return this.addOnPersist(['value']);\r\n };\r\n ListBox.prototype.getLocaleName = function () {\r\n return 'listbox';\r\n };\r\n ListBox.prototype.destroy = function () {\r\n this.unwireEvents();\r\n if (this.element.tagName === 'EJS-LISTBOX') {\r\n this.element.innerHTML = '';\r\n }\r\n else {\r\n this.element.style.display = 'inline-block';\r\n if (this.toolbarSettings.items.length) {\r\n this.list.parentElement.parentElement.insertBefore(this.list, this.list.parentElement);\r\n detach(this.list.nextElementSibling);\r\n }\r\n this.list.parentElement.insertBefore(this.element, this.list);\r\n }\r\n _super.prototype.destroy.call(this);\r\n if (this.itemTemplate) {\r\n this.clearTemplate();\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {ListBoxModel} newProp - Specifies the new properties.\r\n * @param {ListBoxModel} oldProp - Specifies the old properties.\r\n * @returns {void}\r\n * @private\r\n */\r\n ListBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var wrap = this.toolbarSettings.items.length ? this.list.parentElement : this.list;\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([wrap], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([wrap], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n this.list.classList.add('e-rtl');\r\n }\r\n else {\r\n this.list.classList.remove('e-rtl');\r\n }\r\n break;\r\n case 'value':\r\n removeClass(this.list.querySelectorAll('.' + cssClass.selected), cssClass.selected);\r\n this.clearSelection(this.value);\r\n this.setSelection();\r\n break;\r\n case 'height':\r\n this.setHeight();\r\n break;\r\n case 'enabled':\r\n this.setEnable();\r\n break;\r\n case 'allowDragAndDrop':\r\n if (newProp.allowDragAndDrop) {\r\n this.initDraggable();\r\n }\r\n else {\r\n getComponent(this.ulElement, 'sortable').destroy();\r\n }\r\n break;\r\n case 'allowFiltering':\r\n if (this.allowFiltering) {\r\n this.setFiltering();\r\n }\r\n else {\r\n this.list.removeChild(this.list.getElementsByClassName('e-filter-parent')[0]);\r\n this.filterParent = null;\r\n removeClass([this.list], 'e-filter-list');\r\n }\r\n break;\r\n case 'filterBarPlaceholder':\r\n if (this.allowFiltering) {\r\n if (this.filterInput) {\r\n Input.setPlaceholder(newProp.filterBarPlaceholder, this.filterInput);\r\n }\r\n }\r\n break;\r\n case 'scope':\r\n if (this.allowDragAndDrop) {\r\n getComponent(this.ulElement, 'sortable').scope = newProp.scope;\r\n }\r\n if (this.toolbarSettings.items.length) {\r\n if (oldProp.scope) {\r\n getComponent(document.querySelector(oldProp.scope), this.getModuleName())\r\n .tBListBox = null;\r\n }\r\n if (newProp.scope) {\r\n getComponent(document.querySelector(newProp.scope), this.getModuleName())\r\n .tBListBox = this;\r\n }\r\n }\r\n break;\r\n case 'toolbarSettings': {\r\n var ele = void 0;\r\n var pos = newProp.toolbarSettings.position;\r\n var toolElem = this.getToolElem();\r\n if (pos) {\r\n removeClass([wrap], ['e-right', 'e-left']);\r\n wrap.classList.add('e-' + pos.toLowerCase());\r\n if (pos === 'Left') {\r\n wrap.insertBefore(toolElem, this.list);\r\n }\r\n else {\r\n wrap.appendChild(toolElem);\r\n }\r\n }\r\n if (newProp.toolbarSettings.items) {\r\n if (oldProp.toolbarSettings && oldProp.toolbarSettings.items.length) {\r\n ele = this.list.parentElement;\r\n ele.parentElement.insertBefore(this.list, ele);\r\n detach(ele);\r\n }\r\n this.initToolbarAndStyles();\r\n this.wireToolbarEvent();\r\n }\r\n break;\r\n }\r\n case 'selectionSettings': {\r\n var showSelectAll = newProp.selectionSettings.showSelectAll;\r\n var showCheckbox = newProp.selectionSettings.showCheckbox;\r\n if (!isNullOrUndefined(showSelectAll)) {\r\n this.showSelectAll = showSelectAll;\r\n if (this.showSelectAll) {\r\n var l10nSel = new L10n(this.getModuleName(), { selectAllText: 'Select All', unSelectAllText: 'Unselect All' }, this.locale);\r\n this.checkBoxSelectionModule.checkAllParent = null;\r\n this.showSelectAll = true;\r\n this.selectAllText = l10nSel.getConstant('selectAllText');\r\n this.unSelectAllText = l10nSel.getConstant('selectAllText');\r\n this.popupWrapper = this.list;\r\n }\r\n this.notify('selectAll', {});\r\n this.checkSelectAll();\r\n }\r\n if (!isNullOrUndefined(showCheckbox)) {\r\n this.showCheckbox(showCheckbox);\r\n }\r\n if (this.selectionSettings.showCheckbox) {\r\n this.setCheckboxPosition();\r\n }\r\n break;\r\n }\r\n case 'dataSource':\r\n this.isDataSourceUpdate = true;\r\n this.jsonData = [].slice.call(this.dataSource);\r\n break;\r\n }\r\n }\r\n };\r\n var ListBox_1;\r\n __decorate([\r\n Property('')\r\n ], ListBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property([])\r\n ], ListBox.prototype, \"value\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ListBox.prototype, \"height\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListBox.prototype, \"allowDragAndDrop\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], ListBox.prototype, \"maximumSelectionLength\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListBox.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ListBox.prototype, \"scope\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ListBox.prototype, \"ignoreCase\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ListBox.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"beforeItemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"beforeDrop\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"dragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"drag\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"drop\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListBox.prototype, \"dataBound\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ListBox.prototype, \"groupTemplate\", void 0);\r\n __decorate([\r\n Property('Request failed')\r\n ], ListBox.prototype, \"actionFailureTemplate\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], ListBox.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListBox.prototype, \"ignoreAccent\", void 0);\r\n __decorate([\r\n Complex({}, ToolbarSettings)\r\n ], ListBox.prototype, \"toolbarSettings\", void 0);\r\n __decorate([\r\n Complex({}, SelectionSettings)\r\n ], ListBox.prototype, \"selectionSettings\", void 0);\r\n ListBox = ListBox_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], ListBox);\r\n return ListBox;\r\n}(DropDownBase));\r\nexport { ListBox };\r\nvar listBoxClasses = {\r\n backIcon: 'e-input-group-icon e-back-icon e-icons',\r\n filterBarClearIcon: 'e-input-group-icon e-clear-icon e-icons',\r\n filterInput: 'e-input-filter',\r\n filterParent: 'e-filter-parent',\r\n clearIcon: 'e-clear-icon'\r\n};\r\n","import { createCheckBox } from '@syncfusion/ej2-buttons';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { EventHandler, select, removeClass, addClass, detach, compile, L10n } from '@syncfusion/ej2-base';\r\nimport { Browser, attributes, isNullOrUndefined, append, closest, prepend } from '@syncfusion/ej2-base';\r\nimport { dropDownBaseClasses } from '../drop-down-base/drop-down-base';\r\nvar ICON = 'e-icons';\r\nvar CHECKBOXFRAME = 'e-frame';\r\nvar CHECK = 'e-check';\r\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\r\nvar INDETERMINATE = 'e-stop';\r\nvar checkAllParent = 'e-selectall-parent';\r\nvar searchBackIcon = 'e-input-group-icon e-back-icon e-icons';\r\nvar filterBarClearIcon = 'e-input-group-icon e-clear-icon e-icons';\r\nvar filterInput = 'e-input-filter';\r\nvar filterParent = 'e-filter-parent';\r\nvar mobileFilter = 'e-ddl-device-filter';\r\nvar clearIcon = 'e-clear-icon';\r\nvar popupFullScreen = 'e-popup-full-page';\r\nvar device = 'e-ddl-device';\r\nvar FOCUS = 'e-input-focus';\r\n/**\r\n * The Multiselect enable CheckBoxSelection call this inject module.\r\n */\r\nvar CheckBoxSelection = /** @class */ (function () {\r\n function CheckBoxSelection(parent) {\r\n this.activeLi = [];\r\n this.activeEle = [];\r\n this.parent = parent;\r\n this.removeEventListener();\r\n this.addEventListener();\r\n }\r\n CheckBoxSelection.prototype.getModuleName = function () {\r\n return 'CheckBoxSelection';\r\n };\r\n CheckBoxSelection.prototype.addEventListener = function () {\r\n if (this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.on('updatelist', this.listSelection, this);\r\n this.parent.on('listoption', this.listOption, this);\r\n this.parent.on('selectAll', this.setSelectAll, this);\r\n this.parent.on('checkSelectAll', this.checkSelectAll, this);\r\n this.parent.on('searchBox', this.setSearchBox, this);\r\n this.parent.on('blur', this.onBlurHandler, this);\r\n this.parent.on('targetElement', this.targetElement, this);\r\n this.parent.on('deviceSearchBox', this.setDeviceSearchBox, this);\r\n this.parent.on('inputFocus', this.getFocus, this);\r\n this.parent.on('reOrder', this.setReorder, this);\r\n this.parent.on('activeList', this.getActiveList, this);\r\n this.parent.on('selectAllText', this.setLocale, this);\r\n this.parent.on('filterBarPlaceholder', this.setPlaceholder, this);\r\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\r\n this.parent.on('addItem', this.checboxCreate, this);\r\n this.parent.on('popupFullScreen', this.setPopupFullScreen, this);\r\n };\r\n CheckBoxSelection.prototype.removeEventListener = function () {\r\n if (this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.off('updatelist', this.listSelection);\r\n this.parent.off('listoption', this.listOption);\r\n this.parent.off('selectAll', this.setSelectAll);\r\n this.parent.off('checkSelectAll', this.checkSelectAll);\r\n this.parent.off('searchBox', this.setSearchBox);\r\n this.parent.off('blur', this.onBlurHandler);\r\n this.parent.off('targetElement', this.targetElement);\r\n this.parent.off('deviceSearchBox', this.setDeviceSearchBox);\r\n this.parent.off('inputFocus', this.getFocus);\r\n this.parent.off('reOrder', this.setReorder);\r\n this.parent.off('activeList', this.getActiveList);\r\n this.parent.off('selectAllText', this.setLocale);\r\n this.parent.off('filterBarPlaceholder', this.setPlaceholder);\r\n this.parent.off('addItem', this.checboxCreate);\r\n this.parent.off('popupFullScreen', this.setPopupFullScreen);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CheckBoxSelection.prototype.listOption = function (args) {\r\n var _this = this;\r\n if (isNullOrUndefined(this.parent.listCurrentOptions.itemCreated)) {\r\n this.parent.listCurrentOptions.itemCreated = function (e) {\r\n _this.checboxCreate(e);\r\n };\r\n }\r\n else {\r\n var itemCreated_1 = this.parent.listCurrentOptions.itemCreated;\r\n this.parent.listCurrentOptions.itemCreated = function (e) {\r\n _this.checboxCreate(e);\r\n itemCreated_1.apply(_this, [e]);\r\n };\r\n }\r\n };\r\n CheckBoxSelection.prototype.setPlaceholder = function (props) {\r\n Input.setPlaceholder(props.filterBarPlaceholder, this.filterInput);\r\n };\r\n CheckBoxSelection.prototype.checboxCreate = function (e) {\r\n var item;\r\n if (!isNullOrUndefined(e.item)) {\r\n item = e.item;\r\n }\r\n else {\r\n item = e;\r\n }\r\n if (this.parent.enableGroupCheckBox || (item.className !== 'e-list-group-item '\r\n && item.className !== 'e-list-group-item')) {\r\n var checkboxEle = createCheckBox(this.parent.createElement, true);\r\n var icon = select('div.' + ICON, item);\r\n item.insertBefore(checkboxEle, item.childNodes[isNullOrUndefined(icon) ? 0 : 1]);\r\n select('.' + CHECKBOXFRAME, checkboxEle);\r\n if (this.parent.enableGroupCheckBox) {\r\n this.parent.popupWrapper.classList.add('e-multiselect-group');\r\n }\r\n return item;\r\n }\r\n else {\r\n return item;\r\n }\r\n };\r\n CheckBoxSelection.prototype.setSelectAll = function () {\r\n if (this.parent.showSelectAll) {\r\n if (isNullOrUndefined(this.checkAllParent)) {\r\n this.checkAllParent = this.parent.createElement('div', {\r\n className: checkAllParent\r\n });\r\n this.selectAllSpan = this.parent.createElement('span', {\r\n className: 'e-all-text'\r\n });\r\n this.selectAllSpan.textContent = '';\r\n this.checkAllParent.appendChild(this.selectAllSpan);\r\n this.setLocale();\r\n this.checboxCreate(this.checkAllParent);\r\n if (this.parent.headerTemplate) {\r\n if (!isNullOrUndefined(this.parent.filterParent)) {\r\n append([this.checkAllParent], this.parent.filterParent);\r\n }\r\n else {\r\n append([this.checkAllParent], this.parent.popupWrapper);\r\n }\r\n }\r\n if (!this.parent.headerTemplate) {\r\n if (!isNullOrUndefined(this.parent.filterParent)) {\r\n this.parent.filterParent.parentNode.insertBefore(this.checkAllParent, this.parent.filterParent.nextSibling);\r\n }\r\n else {\r\n prepend([this.checkAllParent], this.parent.popupWrapper);\r\n }\r\n }\r\n EventHandler.add(this.checkAllParent, 'mousedown', this.clickHandler, this);\r\n }\r\n if (this.parent.list.classList.contains('e-nodata') || (this.parent.listData && this.parent.listData.length <= 1 &&\r\n !(this.parent.isDynamicDataChange)) || (this.parent.isDynamicDataChange &&\r\n this.parent.listData && this.parent.listData.length <= 1)) {\r\n this.checkAllParent.style.display = 'none';\r\n }\r\n else {\r\n this.checkAllParent.style.display = 'block';\r\n }\r\n this.parent.selectAllHeight = this.checkAllParent.getBoundingClientRect().height;\r\n }\r\n else if (!isNullOrUndefined(this.checkAllParent)) {\r\n this.checkAllParent.parentElement.removeChild(this.checkAllParent);\r\n this.checkAllParent = null;\r\n }\r\n };\r\n CheckBoxSelection.prototype.destroy = function () {\r\n this.removeEventListener();\r\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\r\n };\r\n CheckBoxSelection.prototype.listSelection = function (args) {\r\n var target;\r\n if (!isNullOrUndefined(args.e)) {\r\n var frameElm = args.li.querySelector('.e-checkbox-wrapper .e-frame');\r\n target = !isNullOrUndefined(args.e.target) ?\r\n (args.e.target.classList.contains('e-frame')\r\n && (!this.parent.showSelectAll\r\n || (this.checkAllParent && !this.checkAllParent.contains(args.e.target)))) ?\r\n args.e.target : args.li.querySelector('.e-checkbox-wrapper').childNodes[1]\r\n : args.li.querySelector('.e-checkbox-wrapper').childNodes[1];\r\n }\r\n else {\r\n var checkboxWrapper = args.li.querySelector('.e-checkbox-wrapper');\r\n target = checkboxWrapper ? checkboxWrapper.childNodes[1] : args.li.lastElementChild.childNodes[1];\r\n }\r\n if (this.parent.itemTemplate || this.parent.enableGroupCheckBox) {\r\n target = args.li.firstElementChild.childNodes[1];\r\n }\r\n if (!isNullOrUndefined(target)) {\r\n this.checkWrapper = closest(target, '.' + CHECKBOXWRAP);\r\n }\r\n if (!isNullOrUndefined(this.checkWrapper)) {\r\n var checkElement = select('.' + CHECKBOXFRAME, this.checkWrapper);\r\n var selectAll = false;\r\n this.validateCheckNode(this.checkWrapper, checkElement.classList.contains(CHECK), args.li, args.e, selectAll);\r\n }\r\n };\r\n CheckBoxSelection.prototype.validateCheckNode = function (checkWrap, isCheck, li, e, selectAll) {\r\n this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true, selectAll);\r\n };\r\n CheckBoxSelection.prototype.clickHandler = function (e) {\r\n var target;\r\n if (e.currentTarget.classList.contains(this.checkAllParent.className)) {\r\n target = e.currentTarget.firstElementChild.lastElementChild;\r\n }\r\n else {\r\n target = e.currentTarget;\r\n }\r\n this.checkWrapper = closest(target, '.' + CHECKBOXWRAP);\r\n var selectAll = true;\r\n if (!isNullOrUndefined(this.checkWrapper)) {\r\n var checkElement = select('.' + CHECKBOXFRAME, this.checkWrapper);\r\n this.validateCheckNode(this.checkWrapper, checkElement.classList.contains(CHECK), null, e, selectAll);\r\n }\r\n e.preventDefault();\r\n };\r\n CheckBoxSelection.prototype.changeState = function (wrapper, state, e, isPrevent, selectAll) {\r\n var ariaState;\r\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\r\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\r\n frameSpan.classList.remove(INDETERMINATE);\r\n frameSpan.classList.add(CHECK);\r\n ariaState = 'true';\r\n if (selectAll) {\r\n this.parent.selectAllItems(true, e);\r\n this.setLocale(true);\r\n }\r\n }\r\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) {\r\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\r\n ariaState = 'false';\r\n if (selectAll) {\r\n this.parent.selectAllItems(false, e);\r\n this.setLocale();\r\n }\r\n }\r\n else if (state === 'indeterminate' && !(frameSpan.classList.contains(INDETERMINATE))) {\r\n removeClass([frameSpan], [CHECK]);\r\n frameSpan.classList.add(INDETERMINATE);\r\n ariaState = 'false';\r\n if (selectAll) {\r\n this.parent.selectAllItems(false, e);\r\n this.setLocale();\r\n }\r\n }\r\n ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState;\r\n if (!isNullOrUndefined(ariaState)) {\r\n wrapper.setAttribute('aria-checked', ariaState);\r\n }\r\n };\r\n CheckBoxSelection.prototype.setSearchBox = function (args) {\r\n if (isNullOrUndefined(this.parent.filterParent)) {\r\n this.parent.filterParent = this.parent.createElement('span', {\r\n className: filterParent\r\n });\r\n this.filterInput = this.parent.createElement('input', {\r\n attrs: { type: 'text' },\r\n className: filterInput\r\n });\r\n this.parent.element.parentNode.insertBefore(this.filterInput, this.parent.element);\r\n var backIcon = false;\r\n if (Browser.isDevice) {\r\n backIcon = true;\r\n this.parent.mobFilter = false;\r\n }\r\n this.filterInputObj = Input.createInput({\r\n element: this.filterInput,\r\n buttons: backIcon ? [searchBackIcon, filterBarClearIcon] : [filterBarClearIcon],\r\n properties: { placeholder: this.parent.filterBarPlaceholder }\r\n }, this.parent.createElement);\r\n if (!isNullOrUndefined(this.parent.cssClass)) {\r\n if (this.parent.cssClass.split(' ').indexOf('e-outline') !== -1) {\r\n addClass([this.filterInputObj.container], 'e-outline');\r\n }\r\n else if (this.parent.cssClass.split(' ').indexOf('e-filled') !== -1) {\r\n addClass([this.filterInputObj.container], 'e-filled');\r\n }\r\n }\r\n append([this.filterInputObj.container], this.parent.filterParent);\r\n prepend([this.parent.filterParent], args.popupElement);\r\n attributes(this.filterInput, {\r\n 'aria-disabled': 'false',\r\n 'aria-owns': this.parent.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-activedescendant': null,\r\n 'autocomplete': 'off',\r\n 'autocorrect': 'off',\r\n 'autocapitalize': 'off',\r\n 'spellcheck': 'false'\r\n });\r\n this.clearIconElement = this.filterInput.parentElement.querySelector('.' + clearIcon);\r\n if (!Browser.isDevice && this.clearIconElement) {\r\n EventHandler.add(this.clearIconElement, 'mousedown', this.clearText, this);\r\n this.clearIconElement.style.visibility = 'hidden';\r\n }\r\n EventHandler.add(this.filterInput, 'input', this.parent.onInput, this.parent);\r\n EventHandler.add(this.filterInput, 'keyup', this.parent.keyUp, this.parent);\r\n EventHandler.add(this.filterInput, 'keydown', this.parent.onKeyDown, this.parent);\r\n EventHandler.add(this.filterInput, 'blur', this.onBlurHandler, this);\r\n EventHandler.add(this.filterInput, 'paste', this.parent.pasteHandler, this.parent);\r\n this.parent.searchBoxHeight = (this.filterInputObj.container.parentElement).getBoundingClientRect().height;\r\n return this.filterInputObj;\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CheckBoxSelection.prototype.clickOnBackIcon = function (e) {\r\n this.parent.hidePopup();\r\n removeClass([document.body, this.parent.popupObj.element], popupFullScreen);\r\n this.parent.inputElement.focus();\r\n };\r\n CheckBoxSelection.prototype.clearText = function (e) {\r\n this.parent.targetInputElement.value = '';\r\n if (this.parent.allowFiltering && this.parent.targetInputElement.value === '') {\r\n this.parent.search(null);\r\n }\r\n this.parent.refreshPopup();\r\n this.parent.refreshListItems(null);\r\n this.clearIconElement.style.visibility = 'hidden';\r\n this.filterInput.focus();\r\n this.setReorder(e);\r\n e.preventDefault();\r\n };\r\n CheckBoxSelection.prototype.setDeviceSearchBox = function () {\r\n this.parent.popupObj.element.classList.add(device);\r\n this.parent.popupObj.element.classList.add(mobileFilter);\r\n this.parent.popupObj.position = { X: 0, Y: 0 };\r\n this.parent.popupObj.dataBind();\r\n this.setSearchBoxPosition();\r\n this.backIconElement = this.filterInputObj.container.querySelector('.e-back-icon');\r\n this.clearIconElement = this.filterInputObj.container.querySelector('.' + clearIcon);\r\n this.clearIconElement.style.visibility = 'hidden';\r\n EventHandler.add(this.backIconElement, 'click', this.clickOnBackIcon, this);\r\n EventHandler.add(this.clearIconElement, 'click', this.clearText, this);\r\n };\r\n CheckBoxSelection.prototype.setSearchBoxPosition = function () {\r\n var searchBoxHeight = this.filterInput.parentElement.getBoundingClientRect().height;\r\n var selectAllHeight = 0;\r\n if (this.checkAllParent) {\r\n selectAllHeight = this.checkAllParent.getBoundingClientRect().height;\r\n }\r\n this.parent.popupObj.element.style.maxHeight = '100%';\r\n this.parent.popupObj.element.style.width = '100%';\r\n this.parent.list.style.maxHeight = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';\r\n this.parent.list.style.height = (window.innerHeight - searchBoxHeight - selectAllHeight) + 'px';\r\n var clearElement = this.filterInput.parentElement.querySelector('.' + clearIcon);\r\n detach(this.filterInput);\r\n clearElement.parentElement.insertBefore(this.filterInput, clearElement);\r\n };\r\n CheckBoxSelection.prototype.setPopupFullScreen = function () {\r\n attributes(this.parent.popupObj.element, { style: 'left:0px;right:0px;top:0px;bottom:0px;' });\r\n addClass([document.body, this.parent.popupObj.element], popupFullScreen);\r\n this.parent.popupObj.element.style.maxHeight = '100%';\r\n this.parent.popupObj.element.style.width = '100%';\r\n };\r\n CheckBoxSelection.prototype.targetElement = function () {\r\n if (!isNullOrUndefined(this.clearIconElement)) {\r\n this.parent.targetInputElement = this.filterInput;\r\n this.clearIconElement.style.visibility = this.parent.targetInputElement.value === '' ? 'hidden' : 'visible';\r\n }\r\n return this.parent.targetInputElement.value;\r\n };\r\n CheckBoxSelection.prototype.onBlurHandler = function (e) {\r\n if (!this.parent.element.classList.contains('e-listbox')) {\r\n var target = void 0;\r\n if (this.parent.keyAction) {\r\n return;\r\n }\r\n if (Browser.isIE) {\r\n target = !isNullOrUndefined(e) && e.target;\r\n }\r\n if (!Browser.isIE) {\r\n target = !isNullOrUndefined(e) && e.relatedTarget;\r\n }\r\n // eslint-disable-next-line max-len\r\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) && this.parent.popupObj.element.contains(target)\r\n && !Browser.isIE && this.filterInput) {\r\n this.filterInput.focus();\r\n return;\r\n }\r\n if (this.parent.scrollFocusStatus && this.filterInput) {\r\n e.preventDefault();\r\n this.filterInput.focus();\r\n this.parent.scrollFocusStatus = false;\r\n return;\r\n }\r\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element)\r\n && !this.parent.popupObj.element.classList.contains('e-popup-close')) {\r\n this.parent.inputFocus = false;\r\n this.parent.updateValueState(e, this.parent.value, this.parent.tempValues);\r\n this.parent.dispatchEvent(this.parent.hiddenElement, 'change');\r\n }\r\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) &&\r\n !this.parent.popupObj.element.classList.contains('e-popup-close')) {\r\n this.parent.inputFocus = false;\r\n this.parent.overAllWrapper.classList.remove(FOCUS);\r\n this.parent.trigger('blur');\r\n this.parent.focused = true;\r\n }\r\n if (this.parent.popupObj && document.body.contains(this.parent.popupObj.element) &&\r\n !this.parent.popupObj.element.classList.contains('e-popup-close') && !Browser.isDevice) {\r\n this.parent.hidePopup();\r\n }\r\n }\r\n };\r\n CheckBoxSelection.prototype.onDocumentClick = function (e) {\r\n if (this.parent.getLocaleName() !== 'listbox') {\r\n var target = e.target;\r\n if (!isNullOrUndefined(this.parent.popupObj) && closest(target, '[id=\"' + this.parent.popupObj.element.id + '\"]')) {\r\n if (!(this.filterInput && this.filterInput.value !== '')) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (!(!isNullOrUndefined(this.parent.popupObj) && closest(target, '[id=\"' + this.parent.popupObj.element.id + '\"]')) &&\r\n !this.parent.overAllWrapper.contains(e.target)) {\r\n if (this.parent.overAllWrapper.classList.contains(dropDownBaseClasses.focus) || this.parent.isPopupOpen()) {\r\n this.parent.inputFocus = false;\r\n this.parent.scrollFocusStatus = false;\r\n this.parent.hidePopup();\r\n this.parent.onBlurHandler(e, true);\r\n this.parent.focused = true;\r\n }\r\n }\r\n else {\r\n this.parent.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') &&\r\n (document.activeElement === this.filterInput);\r\n }\r\n if (!this.parent.overAllWrapper.contains(e.target) && this.parent.overAllWrapper.classList.contains('e-input-focus') &&\r\n !this.parent.isPopupOpen()) {\r\n if (Browser.isIE) {\r\n this.parent.onBlurHandler();\r\n }\r\n else {\r\n this.parent.onBlurHandler(e);\r\n }\r\n }\r\n if (this.filterInput === target) {\r\n this.filterInput.focus();\r\n }\r\n }\r\n };\r\n CheckBoxSelection.prototype.getFocus = function (e) {\r\n this.parent.overAllWrapper.classList.remove(FOCUS);\r\n if (this.parent.keyAction && e.value !== 'clear' && e.value !== 'focus') {\r\n this.parent.keyAction = false;\r\n return;\r\n }\r\n if (e.value === 'focus') {\r\n this.filterInput.focus();\r\n this.parent.removeFocus();\r\n EventHandler.remove(this.parent.list, 'keydown', this.parent.onKeyDown);\r\n }\r\n if (e.value === 'clear') {\r\n this.filterInput.value = '';\r\n this.clearIconElement.style.visibility = 'hidden';\r\n }\r\n };\r\n CheckBoxSelection.prototype.checkSelectAll = function (e) {\r\n if (e.value === 'check' && this.checkAllParent.getAttribute('aria-checked') !== 'true') {\r\n this.changeState(this.checkAllParent, e.value, null, null, false);\r\n this.setLocale(true);\r\n }\r\n if (e.value === 'uncheck') {\r\n this.changeState(this.checkAllParent, e.value, null, null, false);\r\n this.setLocale();\r\n }\r\n if (e.value === 'indeterminate') {\r\n this.changeState(this.checkAllParent, e.value, null, null, false);\r\n this.setLocale();\r\n }\r\n };\r\n CheckBoxSelection.prototype.setLocale = function (unSelect) {\r\n if (this.parent.selectAllText !== 'Select All' || this.parent.unSelectAllText !== 'Unselect All') {\r\n var template = unSelect ? this.parent.unSelectAllText : this.parent.selectAllText;\r\n this.selectAllSpan.textContent = '';\r\n var compiledString = compile(template);\r\n var templateName = unSelect ? 'unSelectAllText' : 'selectAllText';\r\n for (var _i = 0, _a = compiledString({}, this.parent, templateName, null, !this.parent.isStringTemplate); _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n this.selectAllSpan.textContent = item.textContent;\r\n }\r\n }\r\n else {\r\n var l10nLocale = { selectAllText: 'Select All', unSelectAllText: 'Unselect All' };\r\n var l10n = new L10n(this.parent.getLocaleName(), {}, this.parent.locale);\r\n if (l10n.getConstant('selectAllText') === '') {\r\n l10n = new L10n('dropdowns', l10nLocale, this.parent.locale);\r\n }\r\n this.selectAllSpan.textContent = unSelect ? l10n.getConstant('unSelectAllText') : l10n.getConstant('selectAllText');\r\n }\r\n };\r\n CheckBoxSelection.prototype.getActiveList = function (args) {\r\n if (args.li.classList.contains('e-active')) {\r\n this.activeLi.push(args.li.cloneNode(true));\r\n }\r\n else {\r\n this.activeLi.splice(args.index, 1);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n CheckBoxSelection.prototype.setReorder = function (args) {\r\n if (this.parent.enableSelectionOrder && !isNullOrUndefined(this.parent.value)) {\r\n var activeLiCount = this.parent.ulElement.querySelectorAll('li.e-active').length;\r\n var remLi = void 0;\r\n var ulEle = this.parent.createElement('ul', {\r\n className: 'e-list-parent e-ul e-reorder'\r\n });\r\n if (activeLiCount > 0) {\r\n append(this.parent.ulElement.querySelectorAll('li.e-active'), ulEle);\r\n remLi = this.parent.ulElement.querySelectorAll('li.e-active');\r\n addClass(remLi, 'e-reorder-hide');\r\n prepend([ulEle], this.parent.list);\r\n }\r\n this.parent.focusAtFirstListItem();\r\n }\r\n };\r\n return CheckBoxSelection;\r\n}());\r\nexport { CheckBoxSelection };\r\n","/**\r\n * FloatLable Moduel\r\n * Specifies whether to display the floating label above the input element.\r\n */\r\nimport { removeClass, addClass, detach } from '@syncfusion/ej2-base';\r\nimport { attributes, isNullOrUndefined, createElement } from '@syncfusion/ej2-base';\r\nvar FLOATLINE = 'e-float-line';\r\nvar FLOATTEXT = 'e-float-text';\r\nvar LABELTOP = 'e-label-top';\r\nvar LABELBOTTOM = 'e-label-bottom';\r\n/* eslint-disable valid-jsdoc */\r\n/**\r\n * Function to create Float Label element.\r\n *\r\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\r\n * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.\r\n * @param {HTMLElement} element - The given html element.\r\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\r\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\r\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\r\n * @param {string} placeholder - Specify the PlaceHolder text.\r\n */\r\nexport function createFloatLabel(overAllWrapper, searchWrapper, element, inputElement, value, floatLabelType, placeholder) {\r\n var floatLinelement = createElement('span', { className: FLOATLINE });\r\n var floatLabelElement = createElement('label', { className: FLOATTEXT });\r\n if (!isNullOrUndefined(element.id) && element.id !== '') {\r\n floatLabelElement.id = 'label_' + element.id.replace(/ /g, '_');\r\n attributes(element, { 'aria-labelledby': floatLabelElement.id });\r\n }\r\n if (!isNullOrUndefined(inputElement.placeholder) && inputElement.placeholder !== '') {\r\n floatLabelElement.innerText = encodePlaceholder(inputElement.placeholder);\r\n inputElement.removeAttribute('placeholder');\r\n }\r\n floatLabelElement.innerText = encodePlaceholder(placeholder);\r\n searchWrapper.appendChild(floatLinelement);\r\n searchWrapper.appendChild(floatLabelElement);\r\n overAllWrapper.classList.add('e-float-input');\r\n updateFloatLabelState(value, floatLabelElement);\r\n if (floatLabelType === 'Always') {\r\n if (floatLabelElement.classList.contains(LABELBOTTOM)) {\r\n removeClass([floatLabelElement], LABELBOTTOM);\r\n }\r\n addClass([floatLabelElement], LABELTOP);\r\n }\r\n}\r\n/**\r\n * Function to update status of the Float Label element.\r\n *\r\n * @param {string[] | number[] | boolean[]} value - Value of the MultiSelect.\r\n * @param {HTMLElement} label - Float label element.\r\n */\r\nexport function updateFloatLabelState(value, label) {\r\n if (value && value.length > 0) {\r\n addClass([label], LABELTOP);\r\n removeClass([label], LABELBOTTOM);\r\n }\r\n else {\r\n removeClass([label], LABELTOP);\r\n addClass([label], LABELBOTTOM);\r\n }\r\n}\r\n/**\r\n * Function to remove Float Label element.\r\n *\r\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\r\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\r\n * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.\r\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\r\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\r\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\r\n * @param {string} placeholder - Specify the PlaceHolder text.\r\n */\r\nexport function removeFloating(overAllWrapper, componentWrapper, searchWrapper, inputElement, value, floatLabelType, placeholder) {\r\n var placeholderElement = componentWrapper.querySelector('.' + FLOATTEXT);\r\n var floatLine = componentWrapper.querySelector('.' + FLOATLINE);\r\n var placeholderText;\r\n if (!isNullOrUndefined(placeholderElement)) {\r\n placeholderText = placeholderElement.innerText;\r\n detach(searchWrapper.querySelector('.' + FLOATTEXT));\r\n setPlaceHolder(value, inputElement, placeholderText);\r\n if (!isNullOrUndefined(floatLine)) {\r\n detach(searchWrapper.querySelector('.' + FLOATLINE));\r\n }\r\n }\r\n else {\r\n placeholderText = (placeholder !== null) ? placeholder : '';\r\n setPlaceHolder(value, inputElement, placeholderText);\r\n }\r\n overAllWrapper.classList.remove('e-float-input');\r\n}\r\n/**\r\n * Function to set the placeholder to the element.\r\n *\r\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\r\n * @param {HTMLInputElement} inputElement - Specify the input wrapper.\r\n * @param {string} placeholder - Specify the PlaceHolder text.\r\n */\r\nexport function setPlaceHolder(value, inputElement, placeholder) {\r\n if (value && value.length) {\r\n inputElement.placeholder = '';\r\n }\r\n else {\r\n inputElement.placeholder = placeholder;\r\n }\r\n}\r\n/**\r\n * Function for focusing the Float Element.\r\n *\r\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\r\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\r\n */\r\nexport function floatLabelFocus(overAllWrapper, componentWrapper) {\r\n overAllWrapper.classList.add('e-input-focus');\r\n var label = componentWrapper.querySelector('.' + FLOATTEXT);\r\n if (!isNullOrUndefined(label)) {\r\n addClass([label], LABELTOP);\r\n if (label.classList.contains(LABELBOTTOM)) {\r\n removeClass([label], LABELBOTTOM);\r\n }\r\n }\r\n}\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/**\r\n * Function to focus the Float Label element.\r\n *\r\n * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.\r\n * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.\r\n * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.\r\n * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.\r\n * @param {string} placeholder - Specify the PlaceHolder text.\r\n */\r\nexport function floatLabelBlur(overAllWrapper, componentWrapper, value, floatLabelType, placeholder) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n overAllWrapper.classList.remove('e-input-focus');\r\n var label = componentWrapper.querySelector('.' + FLOATTEXT);\r\n if (value && value.length <= 0 && floatLabelType === 'Auto' && !isNullOrUndefined(label)) {\r\n if (label.classList.contains(LABELTOP)) {\r\n removeClass([label], LABELTOP);\r\n }\r\n addClass([label], LABELBOTTOM);\r\n }\r\n}\r\nexport function encodePlaceholder(placeholder) {\r\n var result = '';\r\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\r\n var spanElement = document.createElement('span');\r\n spanElement.innerHTML = '';\r\n var hiddenInput = (spanElement.children[0]);\r\n result = hiddenInput.placeholder;\r\n }\r\n return result;\r\n}\r\n/* eslint-enable valid-jsdoc */\r\n","/**\r\n * export all modules from current location\r\n */\r\nexport * from './multi-select';\r\nexport * from './checkbox-selection';\r\nexport * from './float-label';\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { DropDownBase, dropDownBaseClasses } from '../drop-down-base/drop-down-base';\r\nimport { FieldSettings } from '../drop-down-base/drop-down-base';\r\nimport { Popup, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { attributes, setValue, SanitizeHtmlHelper, getValue } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, extend } from '@syncfusion/ej2-base';\r\nimport { EventHandler, Property, Event, compile, L10n } from '@syncfusion/ej2-base';\r\nimport { Animation, Browser, prepend, Complex } from '@syncfusion/ej2-base';\r\nimport { Search } from '../common/incremental-search';\r\nimport { append, addClass, removeClass, closest, detach, remove, select, selectAll } from '@syncfusion/ej2-base';\r\nimport { getUniqueID, formatUnit, isNullOrUndefined, isUndefined } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\r\nimport { createFloatLabel, removeFloating, floatLabelFocus, floatLabelBlur, encodePlaceholder } from './float-label';\r\nvar FOCUS = 'e-input-focus';\r\nvar DISABLED = 'e-disabled';\r\nvar OVER_ALL_WRAPPER = 'e-multiselect e-input-group e-control-wrapper';\r\nvar ELEMENT_WRAPPER = 'e-multi-select-wrapper';\r\nvar ELEMENT_MOBILE_WRAPPER = 'e-mob-wrapper';\r\nvar HIDE_LIST = 'e-hide-listitem';\r\nvar DELIMITER_VIEW = 'e-delim-view';\r\nvar CHIP_WRAPPER = 'e-chips-collection';\r\nvar CHIP = 'e-chips';\r\nvar CHIP_CONTENT = 'e-chipcontent';\r\nvar CHIP_CLOSE = 'e-chips-close';\r\nvar CHIP_SELECTED = 'e-chip-selected';\r\nvar SEARCHBOX_WRAPPER = 'e-searcher';\r\nvar DELIMITER_VIEW_WRAPPER = 'e-delimiter';\r\nvar ZERO_SIZE = 'e-zero-size';\r\nvar REMAIN_WRAPPER = 'e-remain';\r\nvar CLOSEICON_CLASS = 'e-chips-close e-close-hooker';\r\nvar DELIMITER_WRAPPER = 'e-delim-values';\r\nvar POPUP_WRAPPER = 'e-ddl e-popup e-multi-select-list-wrapper';\r\nvar INPUT_ELEMENT = 'e-dropdownbase';\r\nvar RTL_CLASS = 'e-rtl';\r\nvar CLOSE_ICON_HIDE = 'e-close-icon-hide';\r\nvar MOBILE_CHIP = 'e-mob-chip';\r\nvar FOOTER = 'e-ddl-footer';\r\nvar HEADER = 'e-ddl-header';\r\nvar DISABLE_ICON = 'e-ddl-disable-icon';\r\nvar SPINNER_CLASS = 'e-ms-spinner-icon';\r\nvar HIDDEN_ELEMENT = 'e-multi-hidden';\r\nvar destroy = 'destroy';\r\nvar dropdownIcon = 'e-input-group-icon e-ddl-icon';\r\nvar iconAnimation = 'e-icon-anim';\r\nvar TOTAL_COUNT_WRAPPER = 'e-delim-total';\r\nvar BOX_ELEMENT = 'e-multiselect-box';\r\nvar FILTERPARENT = 'e-filter-parent';\r\nvar CUSTOM_WIDTH = 'e-search-custom-width';\r\nvar FILTERINPUT = 'e-input-filter';\r\n/**\r\n * The Multiselect allows the user to pick a more than one value from list of predefined values.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar MultiSelect = /** @class */ (function (_super) {\r\n __extends(MultiSelect, _super);\r\n /**\r\n * Constructor for creating the DropDownList widget.\r\n *\r\n * @param {MultiSelectModel} option - Specifies the MultiSelect model.\r\n * @param {string | HTMLElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function MultiSelect(option, element) {\r\n var _this = _super.call(this, option, element) || this;\r\n _this.clearIconWidth = 0;\r\n _this.isValidKey = false;\r\n _this.selectAllEventData = [];\r\n _this.selectAllEventEle = [];\r\n _this.scrollFocusStatus = false;\r\n _this.keyDownStatus = false;\r\n return _this;\r\n }\r\n MultiSelect.prototype.enableRTL = function (state) {\r\n if (state) {\r\n this.overAllWrapper.classList.add(RTL_CLASS);\r\n }\r\n else {\r\n this.overAllWrapper.classList.remove(RTL_CLASS);\r\n }\r\n if (this.popupObj) {\r\n this.popupObj.enableRtl = state;\r\n this.popupObj.dataBind();\r\n }\r\n };\r\n MultiSelect.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this.mode === 'CheckBox') {\r\n this.isGroupChecking = this.enableGroupCheckBox;\r\n if (this.enableGroupCheckBox) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.enableSelectionOrder = false;\r\n this.isProtectedOnChange = prevOnChange;\r\n }\r\n this.allowCustomValue = false;\r\n this.hideSelectedItem = false;\r\n this.closePopupOnSelect = false;\r\n modules.push({\r\n member: 'CheckBoxSelection',\r\n args: [this]\r\n });\r\n }\r\n return modules;\r\n };\r\n MultiSelect.prototype.updateHTMLAttribute = function () {\r\n if (Object.keys(this.htmlAttributes).length) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var htmlAttr = _a[_i];\r\n switch (htmlAttr) {\r\n case 'class': {\r\n var updatedClassValue = (this.htmlAttributes[htmlAttr].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValue !== '') {\r\n addClass([this.overAllWrapper], updatedClassValue.split(' '));\r\n addClass([this.popupWrapper], updatedClassValue.split(' '));\r\n }\r\n break;\r\n }\r\n case 'disabled':\r\n this.enable(false);\r\n break;\r\n case 'placeholder':\r\n if (!this.placeholder) {\r\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n this.setProperties({ placeholder: this.inputElement.placeholder }, true);\r\n this.refreshPlaceHolder();\r\n }\r\n break;\r\n default: {\r\n var defaultAttr = ['id'];\r\n var validateAttr = ['name', 'required', 'aria-required', 'form'];\r\n var containerAttr = ['title', 'role', 'style', 'class'];\r\n if (defaultAttr.indexOf(htmlAttr) > -1) {\r\n this.element.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n else if (htmlAttr.indexOf('data') === 0 || validateAttr.indexOf(htmlAttr) > -1) {\r\n this.hiddenElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n else if (containerAttr.indexOf(htmlAttr) > -1) {\r\n this.overAllWrapper.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n else {\r\n this.inputElement.setAttribute(htmlAttr, this.htmlAttributes[htmlAttr]);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.updateReadonly = function (state) {\r\n if (state || this.mode === 'CheckBox') {\r\n this.inputElement.setAttribute('readonly', 'true');\r\n }\r\n else {\r\n this.inputElement.removeAttribute('readonly');\r\n }\r\n };\r\n MultiSelect.prototype.updateClearButton = function (state) {\r\n if (state) {\r\n if (this.overAllClear.parentNode) {\r\n this.overAllClear.style.display = '';\r\n }\r\n else {\r\n this.componentWrapper.appendChild(this.overAllClear);\r\n }\r\n this.componentWrapper.classList.remove(CLOSE_ICON_HIDE);\r\n }\r\n else {\r\n this.overAllClear.style.display = 'none';\r\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\r\n }\r\n };\r\n MultiSelect.prototype.updateCssClass = function () {\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n var updatedCssClassValues = this.cssClass;\r\n updatedCssClassValues = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n if (updatedCssClassValues !== '') {\r\n addClass([this.overAllWrapper], updatedCssClassValues.split(' '));\r\n addClass([this.popupWrapper], updatedCssClassValues.split(' '));\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.updateOldPropCssClass = function (oldClass) {\r\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\r\n oldClass = (oldClass.replace(/\\s+/g, ' ')).trim();\r\n if (oldClass !== '') {\r\n removeClass([this.overAllWrapper], oldClass.split(' '));\r\n removeClass([this.popupWrapper], oldClass.split(' '));\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.onPopupShown = function () {\r\n var _this = this;\r\n if (Browser.isDevice && (this.mode === 'CheckBox' && this.allowFiltering)) {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var proxy_1 = this;\r\n window.onpopstate = function () {\r\n proxy_1.hidePopup();\r\n proxy_1.inputElement.focus();\r\n };\r\n history.pushState({}, '');\r\n }\r\n var animModel = { name: 'FadeIn', duration: 100 };\r\n var eventArgs = { popup: this.popupObj, cancel: false, animation: animModel };\r\n this.trigger('open', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.focusAtFirstListItem();\r\n document.body.appendChild(_this.popupObj.element);\r\n if (_this.mode === 'CheckBox' && _this.enableGroupCheckBox && !isNullOrUndefined(_this.fields.groupBy)) {\r\n _this.updateListItems(_this.list.querySelectorAll('li.e-list-item'), _this.mainList.querySelectorAll('li.e-list-item'));\r\n }\r\n if (_this.mode === 'CheckBox' || _this.showDropDownIcon) {\r\n addClass([_this.overAllWrapper], [iconAnimation]);\r\n }\r\n _this.refreshPopup();\r\n _this.renderReactTemplates();\r\n _this.popupObj.show(eventArgs.animation, (_this.zIndex === 1000) ? _this.element : null);\r\n attributes(_this.inputElement, { 'aria-expanded': 'true' });\r\n if (_this.isFirstClick) {\r\n _this.loadTemplate();\r\n }\r\n }\r\n });\r\n };\r\n MultiSelect.prototype.updateListItems = function (listItems, mainListItems) {\r\n for (var i = 0; i < listItems.length; i++) {\r\n this.findGroupStart(listItems[i]);\r\n this.findGroupStart(mainListItems[i]);\r\n }\r\n this.deselectHeader();\r\n };\r\n MultiSelect.prototype.loadTemplate = function () {\r\n this.refreshListItems(null);\r\n if (this.mode === 'CheckBox') {\r\n this.removeFocus();\r\n }\r\n this.notify('reOrder', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', e: this });\r\n };\r\n MultiSelect.prototype.setScrollPosition = function () {\r\n if (((!this.hideSelectedItem && this.mode !== 'CheckBox') || (this.mode === 'CheckBox' && !this.enableSelectionOrder)) &&\r\n (!isNullOrUndefined(this.value) && (this.value.length > 0))) {\r\n var valueEle = this.findListElement((this.hideSelectedItem ? this.ulElement : this.list), 'li', 'data-value', this.value[this.value.length - 1]);\r\n if (!isNullOrUndefined(valueEle)) {\r\n this.scrollBottom(valueEle);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.focusAtFirstListItem = function () {\r\n if (this.ulElement && this.ulElement.querySelector('li.'\r\n + dropDownBaseClasses.li)) {\r\n var element = void 0;\r\n if (this.mode === 'CheckBox') {\r\n this.removeFocus();\r\n return;\r\n }\r\n else {\r\n element = this.ulElement.querySelector('li.'\r\n + dropDownBaseClasses.li + ':not(.'\r\n + HIDE_LIST + ')');\r\n }\r\n if (element !== null) {\r\n this.removeFocus();\r\n this.addListFocus(element);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.focusAtLastListItem = function (data) {\r\n var activeElement;\r\n if (data) {\r\n activeElement = Search(data, this.liCollections, 'StartsWith', this.ignoreCase);\r\n }\r\n else {\r\n if (this.value && this.value.length) {\r\n Search(this.value[this.value.length - 1], this.liCollections, 'StartsWith', this.ignoreCase);\r\n }\r\n else {\r\n activeElement = null;\r\n }\r\n }\r\n if (activeElement && activeElement.item !== null) {\r\n this.addListFocus(activeElement.item);\r\n this.scrollBottom(activeElement.item, activeElement.index);\r\n }\r\n };\r\n MultiSelect.prototype.getAriaAttributes = function () {\r\n var ariaAttributes = {\r\n 'aria-disabled': 'false',\r\n 'aria-owns': this.element.id + '_options',\r\n 'role': 'listbox',\r\n 'aria-multiselectable': 'true',\r\n 'aria-activedescendant': 'null',\r\n 'aria-haspopup': 'true',\r\n 'aria-expanded': 'false'\r\n };\r\n return ariaAttributes;\r\n };\r\n MultiSelect.prototype.updateListARIA = function () {\r\n attributes(this.ulElement, { 'id': this.element.id + '_options', 'role': 'listbox', 'aria-hidden': 'false' });\r\n var disableStatus = (this.inputElement.disabled) ? true : false;\r\n attributes(this.inputElement, this.getAriaAttributes());\r\n if (disableStatus) {\r\n attributes(this.inputElement, { 'aria-disabled': 'true' });\r\n }\r\n this.ensureAriaDisabled((disableStatus) ? 'true' : 'false');\r\n };\r\n MultiSelect.prototype.ensureAriaDisabled = function (status) {\r\n if (this.htmlAttributes && this.htmlAttributes['aria-disabled']) {\r\n var attr = this.htmlAttributes;\r\n extend(attr, { 'aria-disabled': status }, attr);\r\n this.setProperties({ htmlAttributes: attr }, true);\r\n }\r\n };\r\n MultiSelect.prototype.removelastSelection = function (e) {\r\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\r\n var value = elements[elements.length - 1].getAttribute('data-value');\r\n if (!isNullOrUndefined(this.value)) {\r\n this.tempValues = this.value.slice();\r\n }\r\n var customValue = this.getFormattedValue(value);\r\n if (this.allowCustomValue && (value !== 'false' && customValue === false || (!isNullOrUndefined(customValue) &&\r\n customValue.toString() === 'NaN'))) {\r\n customValue = value;\r\n }\r\n this.removeValue(customValue, e);\r\n this.removeChipSelection();\r\n this.updateDelimeter(this.delimiterChar, e);\r\n this.makeTextBoxEmpty();\r\n if (this.mainList && this.listData) {\r\n this.refreshSelection();\r\n }\r\n this.checkPlaceholderSize();\r\n };\r\n MultiSelect.prototype.onActionFailure = function (e) {\r\n _super.prototype.onActionFailure.call(this, e);\r\n this.renderPopup();\r\n this.onPopupShown();\r\n };\r\n MultiSelect.prototype.targetElement = function () {\r\n this.targetInputElement = this.inputElement;\r\n if (this.mode === 'CheckBox' && this.allowFiltering) {\r\n this.notify('targetElement', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n }\r\n return this.targetInputElement.value;\r\n };\r\n MultiSelect.prototype.getForQuery = function (valuecheck) {\r\n var predicate;\r\n var field = isNullOrUndefined(this.fields.value) ? this.fields.text : this.fields.value;\r\n for (var i = 0; i < valuecheck.length; i++) {\r\n if (i === 0) {\r\n predicate = new Predicate(field, 'equal', valuecheck[i]);\r\n }\r\n else {\r\n predicate = predicate.or(field, 'equal', valuecheck[i]);\r\n }\r\n }\r\n return this.getQuery(this.query).where(predicate);\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n MultiSelect.prototype.onActionComplete = function (ulElement, list, e, isUpdated) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n _super.prototype.onActionComplete.call(this, ulElement, list, e);\r\n this.updateSelectElementData(this.allowFiltering);\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var proxy = this;\r\n if (!isNullOrUndefined(this.value) && !this.allowCustomValue) {\r\n for (var i = 0; i < this.value.length; i++) {\r\n var checkEle = this.findListElement(((this.allowFiltering && !isNullOrUndefined(this.mainList)) ? this.mainList : ulElement), 'li', 'data-value', proxy.value[i]);\r\n if (!checkEle) {\r\n this.value.splice(i, 1);\r\n i -= 1;\r\n }\r\n }\r\n }\r\n this.updateActionList(ulElement, list, e);\r\n if (this.dataSource instanceof DataManager && this.mode === 'CheckBox' && this.allowFiltering) {\r\n this.removeFocus();\r\n }\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n MultiSelect.prototype.updateActionList = function (ulElement, list, e, isUpdated) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n if (this.mode === 'CheckBox' && this.showSelectAll) {\r\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n }\r\n if (!this.mainList && !this.mainData) {\r\n this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\r\n this.mainData = list;\r\n this.mainListCollection = this.liCollections;\r\n }\r\n else if (!isNullOrUndefined(this.mainData) && this.mainData.length === 0) {\r\n this.mainData = list;\r\n }\r\n if ((this.remoteCustomValue || list.length <= 0) && this.allowCustomValue && this.inputFocus && this.allowFiltering &&\r\n this.inputElement.value && this.inputElement.value !== '') {\r\n this.checkForCustomValue(this.tempQuery, this.fields);\r\n return;\r\n }\r\n if (this.value && this.value.length && ((this.mode !== 'CheckBox' && this.inputElement.value.trim() !== '') ||\r\n this.mode === 'CheckBox' || ((this.keyCode === 8 || this.keyCode === 46) && this.allowFiltering &&\r\n this.allowCustomValue && this.dataSource instanceof DataManager && this.inputElement.value === ''))) {\r\n this.refreshSelection();\r\n }\r\n this.updateListARIA();\r\n this.unwireListEvents();\r\n this.wireListEvents();\r\n if (!isNullOrUndefined(this.setInitialValue)) {\r\n this.setInitialValue();\r\n }\r\n if (!isNullOrUndefined(this.selectAllAction)) {\r\n this.selectAllAction();\r\n }\r\n if (this.setDynValue) {\r\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\r\n this.initialTextUpdate();\r\n }\r\n this.initialValueUpdate();\r\n this.initialUpdate();\r\n this.refreshPlaceHolder();\r\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\r\n this.updateValueState(null, this.value, null);\r\n }\r\n }\r\n this.renderPopup();\r\n if (this.beforePopupOpen) {\r\n this.beforePopupOpen = false;\r\n this.onPopupShown();\r\n }\r\n };\r\n MultiSelect.prototype.refreshSelection = function () {\r\n var value;\r\n var element;\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n if (!isNullOrUndefined(this.value)) {\r\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\r\n value = this.value[index];\r\n element = this.findListElement(this.list, 'li', 'data-value', value);\r\n if (element) {\r\n addClass([element], className);\r\n if (this.hideSelectedItem && element.previousSibling\r\n && element.previousElementSibling.classList.contains(dropDownBaseClasses.group)\r\n && (!element.nextElementSibling ||\r\n element.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\r\n addClass([element.previousElementSibling], className);\r\n }\r\n if (this.hideSelectedItem && this.fields.groupBy && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\r\n this.hideGroupItem(value);\r\n }\r\n if (this.hideSelectedItem && element.classList.contains(dropDownBaseClasses.focus)) {\r\n removeClass([element], dropDownBaseClasses.focus);\r\n var listEle = element.parentElement.querySelectorAll('.' +\r\n dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\r\n if (listEle.length > 0) {\r\n addClass([listEle[0]], dropDownBaseClasses.focus);\r\n }\r\n else {\r\n this.ulElement = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;\r\n if (!(this.list && this.list.querySelectorAll('.' + dropDownBaseClasses.li).length > 0)) {\r\n this.l10nUpdate();\r\n addClass([this.list], dropDownBaseClasses.noData);\r\n }\r\n }\r\n }\r\n element.setAttribute('aria-selected', 'true');\r\n if (this.mode === 'CheckBox' && element.classList.contains('e-active')) {\r\n var ariaValue = element.firstElementChild.getAttribute('aria-checked');\r\n if (isNullOrUndefined(ariaValue) || ariaValue === 'false') {\r\n var args = {\r\n module: 'CheckBoxSelection',\r\n enable: this.mode === 'CheckBox',\r\n li: element,\r\n e: null\r\n };\r\n this.notify('updatelist', args);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.checkSelectAll();\r\n this.checkMaxSelection();\r\n };\r\n MultiSelect.prototype.hideGroupItem = function (value) {\r\n var element;\r\n var element1;\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n element1 = element = this.findListElement(this.ulElement, 'li', 'data-value', value);\r\n var i = 0;\r\n var j = 0;\r\n var temp = true;\r\n var temp1 = true;\r\n do {\r\n if (element && element.previousElementSibling\r\n && (!element.previousElementSibling.classList.contains(HIDE_LIST) &&\r\n element.previousElementSibling.classList.contains(dropDownBaseClasses.li))) {\r\n temp = false;\r\n }\r\n if (!temp || !element || (element.previousElementSibling\r\n && element.previousElementSibling.classList.contains(dropDownBaseClasses.group))) {\r\n i = 10;\r\n }\r\n else {\r\n element = element.previousElementSibling;\r\n }\r\n if (element1 && element1.nextElementSibling\r\n && (!element1.nextElementSibling.classList.contains(HIDE_LIST) &&\r\n element1.nextElementSibling.classList.contains(dropDownBaseClasses.li))) {\r\n temp1 = false;\r\n }\r\n if (!temp1 || !element1 || (element1.nextElementSibling\r\n && element1.nextElementSibling.classList.contains(dropDownBaseClasses.group))) {\r\n j = 10;\r\n }\r\n else {\r\n element1 = element1.nextElementSibling;\r\n }\r\n } while (i < 10 || j < 10);\r\n if (temp && temp1 && !element.previousElementSibling.classList.contains(HIDE_LIST)) {\r\n addClass([element.previousElementSibling], className);\r\n }\r\n else if (temp && temp1 && element.previousElementSibling.classList.contains(HIDE_LIST)) {\r\n removeClass([element.previousElementSibling], className);\r\n }\r\n };\r\n MultiSelect.prototype.getValidLi = function () {\r\n var liElement = this.ulElement.querySelector('li.' + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')');\r\n return (!isNullOrUndefined(liElement) ? liElement : this.liCollections[0]);\r\n };\r\n MultiSelect.prototype.checkSelectAll = function () {\r\n var groupItemLength = this.list.querySelectorAll('li.e-list-group-item.e-active').length;\r\n var listItem = this.list.querySelectorAll('li.e-list-item');\r\n var searchCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.li).length;\r\n var searchActiveCount = this.list.querySelectorAll('li.' + dropDownBaseClasses.selected).length;\r\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\r\n searchActiveCount = searchActiveCount - groupItemLength;\r\n }\r\n if ((searchCount === searchActiveCount || searchActiveCount === this.maximumSelectionLength)\r\n && (this.mode === 'CheckBox' && this.showSelectAll)) {\r\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'check' });\r\n }\r\n else if ((searchCount !== searchActiveCount) && (this.mode === 'CheckBox' && this.showSelectAll)) {\r\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });\r\n }\r\n if (this.enableGroupCheckBox && this.fields.groupBy && !this.enableSelectionOrder) {\r\n for (var i = 0; i < listItem.length; i++) {\r\n this.findGroupStart(listItem[i]);\r\n }\r\n this.deselectHeader();\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MultiSelect.prototype.openClick = function (e) {\r\n if (!this.openOnClick && this.mode !== 'CheckBox') {\r\n if (this.targetElement() !== '') {\r\n this.showPopup();\r\n }\r\n else {\r\n this.hidePopup();\r\n }\r\n }\r\n else if (!this.openOnClick && this.mode === 'CheckBox' && !this.isPopupOpen()) {\r\n this.showPopup();\r\n }\r\n };\r\n MultiSelect.prototype.keyUp = function (e) {\r\n if (this.mode === 'CheckBox' && !this.openOnClick) {\r\n var char = String.fromCharCode(e.keyCode);\r\n var isWordCharacter = char.match(/\\w/);\r\n if (!isNullOrUndefined(isWordCharacter)) {\r\n this.isValidKey = true;\r\n }\r\n }\r\n this.isValidKey = (this.isPopupOpen() && e.keyCode === 8) || this.isValidKey;\r\n this.isValidKey = e.ctrlKey && e.keyCode === 86 ? false : this.isValidKey;\r\n if (this.isValidKey) {\r\n this.isValidKey = false;\r\n this.expandTextbox();\r\n this.showOverAllClear();\r\n switch (e.keyCode) {\r\n default:\r\n // For filtering works in mobile firefox\r\n this.search(e);\r\n }\r\n }\r\n };\r\n /**\r\n * To filter the multiselect data from given data source by using query\r\n *\r\n * @param {Object[] | DataManager } dataSource - Set the data source to filter.\r\n * @param {Query} query - Specify the query to filter the data.\r\n * @param {FieldSettingsModel} fields - Specify the fields to map the column in the data table.\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.filter = function (dataSource, query, fields) {\r\n this.isFiltered = true;\r\n this.remoteFilterAction = true;\r\n this.dataUpdater(dataSource, query, fields);\r\n };\r\n MultiSelect.prototype.getQuery = function (query) {\r\n var filterQuery = query ? query.clone() : this.query ? this.query.clone() : new Query();\r\n if (this.filterAction) {\r\n if (this.targetElement() !== null) {\r\n var dataType = this.typeOfData(this.dataSource).typeof;\r\n if (!(this.dataSource instanceof DataManager) && dataType === 'string' || dataType === 'number') {\r\n filterQuery.where('', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\r\n }\r\n else {\r\n var fields = this.fields;\r\n filterQuery.where(!isNullOrUndefined(fields.text) ? fields.text : '', this.filterType, this.targetElement(), this.ignoreCase, this.ignoreAccent);\r\n }\r\n }\r\n return filterQuery;\r\n }\r\n else {\r\n return query ? query : this.query ? this.query : new Query();\r\n }\r\n };\r\n MultiSelect.prototype.dataUpdater = function (dataSource, query, fields) {\r\n this.isDataFetched = false;\r\n if (this.targetElement().trim() === '') {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n if (this.backCommand) {\r\n this.remoteCustomValue = false;\r\n if (this.allowCustomValue && list.querySelectorAll('li').length == 0 && this.mainData.length > 0) {\r\n this.mainData = [];\r\n }\r\n this.onActionComplete(list, this.mainData);\r\n if (this.value && this.value.length) {\r\n this.refreshSelection();\r\n }\r\n if (this.keyCode !== 8) {\r\n this.focusAtFirstListItem();\r\n }\r\n this.notify('reOrder', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', e: this });\r\n }\r\n }\r\n else {\r\n this.resetList(dataSource, fields, query);\r\n if (this.allowCustomValue) {\r\n if (!(dataSource instanceof DataManager)) {\r\n this.checkForCustomValue(query, fields);\r\n }\r\n else {\r\n this.remoteCustomValue = true;\r\n this.tempQuery = query;\r\n }\r\n }\r\n }\r\n this.refreshPopup();\r\n if (this.mode === 'CheckBox') {\r\n this.removeFocus();\r\n }\r\n };\r\n MultiSelect.prototype.checkForCustomValue = function (query, fields) {\r\n var dataChecks = !this.getValueByText(this.inputElement.value, this.ignoreCase);\r\n if (this.allowCustomValue && dataChecks) {\r\n var value = this.inputElement.value;\r\n var field = fields ? fields : this.fields;\r\n var customData = (!isNullOrUndefined(this.mainData) && this.mainData.length > 0) ?\r\n this.mainData[0] : this.mainData;\r\n if (typeof (customData) !== 'string' && typeof (customData) !== 'number' && typeof (customData) !== 'boolean') {\r\n var dataItem = {};\r\n setValue(field.text, value, dataItem);\r\n if (typeof getValue((this.fields.value ? this.fields.value : 'value'), customData)\r\n === 'number') {\r\n setValue(field.value, Math.random(), dataItem);\r\n }\r\n else {\r\n setValue(field.value, value, dataItem);\r\n }\r\n var tempData = JSON.parse(JSON.stringify(this.listData));\r\n tempData.splice(0, 0, dataItem);\r\n this.resetList(tempData, field, query);\r\n }\r\n else {\r\n var tempData = [this.inputElement.value];\r\n tempData[0] = (typeof customData === 'number' && !isNaN(parseFloat(tempData[0]))) ?\r\n parseFloat(tempData[0]) : tempData[0];\r\n tempData[0] = (typeof customData === 'boolean') ?\r\n (tempData[0] === 'true' ? true : (tempData[0] === 'false' ? false : tempData[0])) : tempData[0];\r\n this.resetList(tempData, field);\r\n }\r\n }\r\n if (this.value && this.value.length) {\r\n this.refreshSelection();\r\n }\r\n };\r\n MultiSelect.prototype.getNgDirective = function () {\r\n return 'EJS-MULTISELECT';\r\n };\r\n MultiSelect.prototype.wrapperClick = function (e) {\r\n this.setDynValue = false;\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (e.target === this.overAllClear) {\r\n e.preventDefault();\r\n return;\r\n }\r\n if (!this.inputFocus) {\r\n this.inputElement.focus();\r\n }\r\n if (!this.readonly) {\r\n if (e.target && e.target.classList.toString().indexOf(CHIP_CLOSE) !== -1) {\r\n if (this.isPopupOpen()) {\r\n this.refreshPopup();\r\n }\r\n return;\r\n }\r\n if (!this.isPopupOpen() &&\r\n (this.openOnClick || (this.showDropDownIcon && e.target && e.target.className === dropdownIcon))) {\r\n this.showPopup();\r\n }\r\n else {\r\n this.hidePopup();\r\n if (this.mode === 'CheckBox') {\r\n this.showOverAllClear();\r\n this.inputFocus = true;\r\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\r\n this.overAllWrapper.classList.add(FOCUS);\r\n }\r\n }\r\n }\r\n }\r\n if (!(this.targetElement() && this.targetElement() !== '')) {\r\n e.preventDefault();\r\n }\r\n };\r\n MultiSelect.prototype.enable = function (state) {\r\n if (state) {\r\n this.overAllWrapper.classList.remove(DISABLED);\r\n this.inputElement.removeAttribute('disabled');\r\n attributes(this.inputElement, { 'aria-disabled': 'false' });\r\n this.ensureAriaDisabled('false');\r\n }\r\n else {\r\n this.overAllWrapper.classList.add(DISABLED);\r\n this.inputElement.setAttribute('disabled', 'true');\r\n attributes(this.inputElement, { 'aria-disabled': 'true' });\r\n this.ensureAriaDisabled('true');\r\n }\r\n if (this.enabled !== state) {\r\n this.enabled = state;\r\n }\r\n this.hidePopup();\r\n };\r\n MultiSelect.prototype.onBlurHandler = function (eve, isDocClickFromCheck) {\r\n var target;\r\n if (!isNullOrUndefined(eve)) {\r\n target = eve.relatedTarget;\r\n }\r\n if (this.popupObj && document.body.contains(this.popupObj.element) && this.popupObj.element.contains(target)) {\r\n if (this.mode !== 'CheckBox') {\r\n this.inputElement.focus();\r\n }\r\n else if ((this.floatLabelType === 'Auto' &&\r\n ((this.overAllWrapper.classList.contains('e-outline')) || (this.overAllWrapper.classList.contains('e-filled'))))) {\r\n addClass([this.overAllWrapper], 'e-valid-input');\r\n }\r\n return;\r\n }\r\n if (this.floatLabelType === 'Auto' && (this.overAllWrapper.classList.contains('e-outline')) && this.mode === 'CheckBox' &&\r\n ((isNullOrUndefined(this.value)) || this.value.length === 0)) {\r\n removeClass([this.overAllWrapper], 'e-valid-input');\r\n }\r\n if (this.mode === 'CheckBox' && Browser.isIE && !isNullOrUndefined(eve) && !isDocClickFromCheck) {\r\n this.inputFocus = false;\r\n this.overAllWrapper.classList.remove(FOCUS);\r\n return;\r\n }\r\n if (this.scrollFocusStatus) {\r\n if (!isNullOrUndefined(eve)) {\r\n eve.preventDefault();\r\n }\r\n this.inputElement.focus();\r\n this.scrollFocusStatus = false;\r\n return;\r\n }\r\n this.inputFocus = false;\r\n this.overAllWrapper.classList.remove(FOCUS);\r\n if (this.addTagOnBlur) {\r\n var dataChecks = this.getValueByText(this.inputElement.value, this.ignoreCase, this.ignoreAccent);\r\n var listLiElement = this.findListElement(this.list, 'li', 'data-value', dataChecks);\r\n var className = this.hideSelectedItem ? HIDE_LIST : dropDownBaseClasses.selected;\r\n var allowChipAddition = (listLiElement && !listLiElement.classList.contains(className)) ? true : false;\r\n if (allowChipAddition) {\r\n this.updateListSelection(listLiElement, eve);\r\n if (this.mode === 'Delimiter') {\r\n this.updateDelimeter(this.delimiterChar);\r\n }\r\n }\r\n }\r\n this.refreshListItems(null);\r\n if (this.mode !== 'Box' && this.mode !== 'CheckBox') {\r\n this.updateDelimView();\r\n }\r\n if (this.changeOnBlur) {\r\n this.updateValueState(eve, this.value, this.tempValues);\r\n this.dispatchEvent(this.hiddenElement, 'change');\r\n }\r\n this.overAllClear.style.display = 'none';\r\n if (this.isPopupOpen()) {\r\n this.hidePopup();\r\n }\r\n this.makeTextBoxEmpty();\r\n this.trigger('blur');\r\n this.focused = true;\r\n if (Browser.isDevice && this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\r\n this.removeChipFocus();\r\n }\r\n this.removeChipSelection();\r\n this.refreshInputHight();\r\n floatLabelBlur(this.overAllWrapper, this.componentWrapper, this.value, this.floatLabelType, this.placeholder);\r\n this.refreshPlaceHolder();\r\n if ((this.allowFiltering || (this.enableSelectionOrder === true && this.mode === 'CheckBox'))\r\n && !isNullOrUndefined(this.mainList)) {\r\n this.ulElement = this.mainList;\r\n }\r\n this.checkPlaceholderSize();\r\n };\r\n MultiSelect.prototype.checkPlaceholderSize = function () {\r\n if (this.showDropDownIcon) {\r\n var downIconWidth = this.dropIcon.offsetWidth +\r\n parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\r\n this.setPlaceholderSize(downIconWidth);\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.dropIcon)) {\r\n this.setPlaceholderSize(this.showDropDownIcon ? this.dropIcon.offsetWidth : 0);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.setPlaceholderSize = function (downIconWidth) {\r\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\r\n if (this.dropIcon.offsetWidth !== 0) {\r\n this.searchWrapper.style.width = ('calc(100% - ' + (downIconWidth + 10)) + 'px';\r\n }\r\n else {\r\n addClass([this.searchWrapper], CUSTOM_WIDTH);\r\n }\r\n }\r\n else if (!isNullOrUndefined(this.value)) {\r\n this.searchWrapper.removeAttribute('style');\r\n removeClass([this.searchWrapper], CUSTOM_WIDTH);\r\n }\r\n };\r\n MultiSelect.prototype.refreshInputHight = function () {\r\n if ((!this.value || !this.value.length) && (isNullOrUndefined(this.text) || this.text === '')) {\r\n this.searchWrapper.classList.remove(ZERO_SIZE);\r\n }\r\n else {\r\n this.searchWrapper.classList.add(ZERO_SIZE);\r\n }\r\n };\r\n MultiSelect.prototype.validateValues = function (newValue, oldValue) {\r\n return JSON.stringify(newValue.slice().sort()) !== JSON.stringify(oldValue.slice().sort());\r\n };\r\n MultiSelect.prototype.updateValueState = function (event, newVal, oldVal) {\r\n var newValue = newVal ? newVal : [];\r\n var oldValue = oldVal ? oldVal : [];\r\n if (this.initStatus && this.validateValues(newValue, oldValue)) {\r\n var eventArgs = {\r\n e: event,\r\n oldValue: oldVal,\r\n value: newVal,\r\n isInteracted: event ? true : false,\r\n element: this.element,\r\n event: event\r\n };\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', eventArgs);\r\n }\r\n this.updateTempValue();\r\n if (!this.changeOnBlur) {\r\n this.dispatchEvent(this.hiddenElement, 'change');\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.updateTempValue = function () {\r\n if (!this.value) {\r\n this.tempValues = this.value;\r\n }\r\n else {\r\n this.tempValues = this.value.slice();\r\n }\r\n };\r\n MultiSelect.prototype.getPagingCount = function () {\r\n var height = this.list.classList.contains(dropDownBaseClasses.noData) ? null :\r\n getComputedStyle(this.getItems()[0], null).getPropertyValue('height');\r\n return Math.round(this.list.offsetHeight / parseInt(height, 10));\r\n };\r\n MultiSelect.prototype.pageUpSelection = function (steps) {\r\n var collection = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n var previousItem = steps >= 0 ? collection[steps + 1] : collection[0];\r\n this.addListFocus(previousItem);\r\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')));\r\n };\r\n MultiSelect.prototype.pageDownSelection = function (steps) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n var list = this.getItems();\r\n var collection = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n var previousItem = steps <= collection.length ? collection[steps - 1] : collection[collection.length - 1];\r\n this.addListFocus(previousItem);\r\n this.scrollBottom(previousItem, this.getIndexByValue(previousItem.getAttribute('data-value')));\r\n };\r\n MultiSelect.prototype.getItems = function () {\r\n if (!this.list) {\r\n _super.prototype.render.call(this);\r\n }\r\n return this.ulElement && this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li).length > 0 ?\r\n this.ulElement.querySelectorAll('.' + dropDownBaseClasses.li\r\n + ':not(.' + HIDE_LIST + ')') : [];\r\n };\r\n MultiSelect.prototype.focusInHandler = function (e) {\r\n if (this.enabled) {\r\n this.showOverAllClear();\r\n this.inputFocus = true;\r\n if (this.value && this.value.length) {\r\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\r\n this.chipCollectionWrapper.style.display = '';\r\n }\r\n else {\r\n this.showDelimWrapper();\r\n }\r\n if (this.mode !== 'CheckBox') {\r\n this.viewWrapper.style.display = 'none';\r\n }\r\n }\r\n if (this.mode !== 'CheckBox') {\r\n this.searchWrapper.classList.remove(ZERO_SIZE);\r\n }\r\n this.checkPlaceholderSize();\r\n if (this.focused) {\r\n var args = { isInteracted: e ? true : false, event: e };\r\n this.trigger('focus', args);\r\n this.focused = false;\r\n }\r\n if (!this.overAllWrapper.classList.contains(FOCUS)) {\r\n this.overAllWrapper.classList.add(FOCUS);\r\n }\r\n floatLabelFocus(this.overAllWrapper, this.componentWrapper);\r\n if (this.isPopupOpen()) {\r\n this.refreshPopup();\r\n }\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n MultiSelect.prototype.showDelimWrapper = function () {\r\n if (this.mode === 'CheckBox') {\r\n this.viewWrapper.style.display = '';\r\n }\r\n else {\r\n this.delimiterWrapper.style.display = '';\r\n }\r\n this.componentWrapper.classList.add(DELIMITER_VIEW_WRAPPER);\r\n };\r\n MultiSelect.prototype.hideDelimWrapper = function () {\r\n this.delimiterWrapper.style.display = 'none';\r\n this.componentWrapper.classList.remove(DELIMITER_VIEW_WRAPPER);\r\n };\r\n MultiSelect.prototype.expandTextbox = function () {\r\n var size = 5;\r\n if (this.placeholder) {\r\n size = size > this.inputElement.placeholder.length ? size : this.inputElement.placeholder.length;\r\n }\r\n if (this.inputElement.value.length > size) {\r\n this.inputElement.size = this.inputElement.value.length;\r\n }\r\n else {\r\n this.inputElement.size = size;\r\n }\r\n };\r\n MultiSelect.prototype.isPopupOpen = function () {\r\n return ((this.popupWrapper !== null) && (this.popupWrapper.parentElement !== null));\r\n };\r\n MultiSelect.prototype.refreshPopup = function () {\r\n if (this.popupObj && this.mobFilter) {\r\n this.popupObj.setProperties({ width: this.calcPopupWidth() });\r\n this.popupObj.refreshPosition(this.overAllWrapper);\r\n this.popupObj.resolveCollision();\r\n }\r\n };\r\n MultiSelect.prototype.checkTextLength = function () {\r\n return this.targetElement().length < 1;\r\n };\r\n MultiSelect.prototype.popupKeyActions = function (e) {\r\n switch (e.keyCode) {\r\n case 38:\r\n this.hidePopup();\r\n if (this.mode === 'CheckBox') {\r\n this.inputElement.focus();\r\n }\r\n e.preventDefault();\r\n break;\r\n case 40:\r\n if (!this.isPopupOpen()) {\r\n this.showPopup();\r\n e.preventDefault();\r\n }\r\n break;\r\n }\r\n };\r\n MultiSelect.prototype.updateAriaAttribute = function () {\r\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\r\n if (!isNullOrUndefined(focusedItem)) {\r\n this.inputElement.setAttribute('aria-activedescendant', focusedItem.id);\r\n if (this.allowFiltering) {\r\n var filterInput = this.popupWrapper.querySelector('.' + FILTERINPUT);\r\n filterInput && filterInput.setAttribute('aria-activedescendant', focusedItem.id);\r\n }\r\n else if (this.mode == \"CheckBox\") {\r\n this.overAllWrapper.setAttribute('aria-activedescendant', focusedItem.id);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.homeNavigation = function (isHome) {\r\n this.removeFocus();\r\n var scrollEle = this.ulElement.querySelectorAll('li.' + dropDownBaseClasses.li\r\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n if (scrollEle.length > 0) {\r\n var element = scrollEle[(isHome) ? 0 : (scrollEle.length - 1)];\r\n element.classList.add(dropDownBaseClasses.focus);\r\n this.scrollBottom(element);\r\n }\r\n };\r\n MultiSelect.prototype.onKeyDown = function (e) {\r\n if (this.readonly || !this.enabled && this.mode !== 'CheckBox') {\r\n return;\r\n }\r\n this.keyCode = e.keyCode;\r\n this.keyDownStatus = true;\r\n if (e.keyCode > 111 && e.keyCode < 124) {\r\n return;\r\n }\r\n if (e.altKey) {\r\n this.popupKeyActions(e);\r\n return;\r\n }\r\n else if (this.isPopupOpen()) {\r\n var focusedItem = this.list.querySelector('.' + dropDownBaseClasses.focus);\r\n var activeIndex = void 0;\r\n switch (e.keyCode) {\r\n case 36:\r\n case 35:\r\n this.homeNavigation((e.keyCode === 36) ? true : false);\r\n break;\r\n case 33:\r\n e.preventDefault();\r\n if (focusedItem) {\r\n this.getIndexByValue(focusedItem.getAttribute('data-value'));\r\n this.pageUpSelection(activeIndex - this.getPagingCount());\r\n this.updateAriaAttribute();\r\n }\r\n return;\r\n case 34:\r\n e.preventDefault();\r\n if (focusedItem) {\r\n this.getIndexByValue(focusedItem.getAttribute('data-value'));\r\n this.pageDownSelection(activeIndex + this.getPagingCount());\r\n this.updateAriaAttribute();\r\n }\r\n return;\r\n case 38:\r\n this.arrowUp(e);\r\n break;\r\n case 40:\r\n this.arrowDown(e);\r\n break;\r\n case 27:\r\n e.preventDefault();\r\n this.hidePopup();\r\n if (this.mode === 'CheckBox') {\r\n this.inputElement.focus();\r\n }\r\n return;\r\n case 13:\r\n e.preventDefault();\r\n if (this.mode !== 'CheckBox') {\r\n this.selectByKey(e);\r\n }\r\n this.checkPlaceholderSize();\r\n return;\r\n case 32:\r\n this.spaceKeySelection(e);\r\n return;\r\n case 9:\r\n e.preventDefault();\r\n this.hidePopup();\r\n this.inputElement.focus();\r\n this.overAllWrapper.classList.add(FOCUS);\r\n }\r\n }\r\n else {\r\n switch (e.keyCode) {\r\n case 13:\r\n case 9:\r\n case 16:\r\n case 17:\r\n case 20:\r\n return;\r\n case 40:\r\n if (this.openOnClick) {\r\n this.showPopup();\r\n }\r\n break;\r\n case 27:\r\n e.preventDefault();\r\n this.escapeAction();\r\n return;\r\n }\r\n }\r\n if (this.checkTextLength()) {\r\n this.keyNavigation(e);\r\n }\r\n if (this.mode === 'CheckBox' && this.enableSelectionOrder) {\r\n this.checkBackCommand(e);\r\n }\r\n this.expandTextbox();\r\n if (!(this.mode === 'CheckBox' && this.showSelectAll)) {\r\n this.refreshPopup();\r\n }\r\n };\r\n MultiSelect.prototype.arrowDown = function (e) {\r\n e.preventDefault();\r\n this.moveByList(1);\r\n this.keyAction = true;\r\n if (document.activeElement.classList.contains(FILTERINPUT)\r\n || (this.mode === 'CheckBox' && !this.allowFiltering && document.activeElement !== this.list)) {\r\n EventHandler.add(this.list, 'keydown', this.onKeyDown, this);\r\n }\r\n this.updateAriaAttribute();\r\n };\r\n MultiSelect.prototype.arrowUp = function (e) {\r\n e.preventDefault();\r\n this.keyAction = true;\r\n var list = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li\r\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\r\n list = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group\r\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n }\r\n var focuseElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\r\n var index = Array.prototype.slice.call(list).indexOf(focuseElem);\r\n if (index <= 0 && (this.mode === 'CheckBox' && this.allowFiltering)) {\r\n this.keyAction = false;\r\n this.notify('inputFocus', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'focus' });\r\n }\r\n this.moveByList(-1);\r\n this.updateAriaAttribute();\r\n };\r\n MultiSelect.prototype.spaceKeySelection = function (e) {\r\n if (this.mode === 'CheckBox') {\r\n if (!document.activeElement.classList.contains(FILTERINPUT)) {\r\n e.preventDefault();\r\n this.keyAction = true;\r\n this.list.focus();\r\n }\r\n this.selectByKey(e);\r\n }\r\n this.checkPlaceholderSize();\r\n };\r\n MultiSelect.prototype.checkBackCommand = function (e) {\r\n if (e.keyCode === 8 && this.targetElement() === '') {\r\n this.backCommand = false;\r\n }\r\n else {\r\n this.backCommand = true;\r\n }\r\n };\r\n MultiSelect.prototype.keyNavigation = function (e) {\r\n if ((this.mode !== 'Delimiter' && this.mode !== 'CheckBox') && this.value && this.value.length) {\r\n switch (e.keyCode) {\r\n case 37: //left arrow\r\n e.preventDefault();\r\n this.moveBy(-1, e);\r\n break;\r\n case 39: //right arrow\r\n e.preventDefault();\r\n this.moveBy(1, e);\r\n break;\r\n case 8:\r\n this.removelastSelection(e);\r\n break;\r\n case 46: //del\r\n this.removeSelectedChip(e);\r\n break;\r\n }\r\n }\r\n else if (e.keyCode === 8 && this.mode === 'Delimiter') {\r\n if (this.value && this.value.length) {\r\n e.preventDefault();\r\n var temp = this.value[this.value.length - 1];\r\n this.removeValue(temp, e);\r\n this.updateDelimeter(this.delimiterChar, e);\r\n this.focusAtLastListItem(temp);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.selectByKey = function (e) {\r\n this.removeChipSelection();\r\n this.selectListByKey(e);\r\n if (this.hideSelectedItem) {\r\n this.focusAtFirstListItem();\r\n }\r\n };\r\n MultiSelect.prototype.escapeAction = function () {\r\n var temp = this.tempValues ? this.tempValues.slice() : [];\r\n if (this.value && this.validateValues(this.value, temp)) {\r\n if (this.mode !== 'CheckBox') {\r\n this.value = temp;\r\n this.initialValueUpdate();\r\n }\r\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\r\n this.chipCollectionWrapper.style.display = '';\r\n }\r\n else {\r\n this.showDelimWrapper();\r\n }\r\n this.refreshPlaceHolder();\r\n if (this.value.length) {\r\n this.showOverAllClear();\r\n }\r\n else {\r\n this.hideOverAllClear();\r\n }\r\n }\r\n this.makeTextBoxEmpty();\r\n };\r\n MultiSelect.prototype.scrollBottom = function (selectedLI, activeIndex) {\r\n var currentOffset = this.list.offsetHeight;\r\n var nextBottom = selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop;\r\n var nextOffset = this.list.scrollTop + nextBottom - currentOffset;\r\n var boxRange = (selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop);\r\n boxRange = this.fields.groupBy && !isNullOrUndefined(this.fixedHeaderElement) ?\r\n boxRange - this.fixedHeaderElement.offsetHeight : boxRange;\r\n if (activeIndex === 0) {\r\n this.list.scrollTop = 0;\r\n }\r\n else if (nextBottom > currentOffset) {\r\n this.list.scrollTop = nextOffset;\r\n }\r\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\r\n this.list.scrollTop = nextOffset;\r\n }\r\n };\r\n MultiSelect.prototype.scrollTop = function (selectedLI, activeIndex) {\r\n var nextOffset = selectedLI.offsetTop - this.list.scrollTop;\r\n nextOffset = this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ?\r\n nextOffset - this.fixedHeaderElement.offsetHeight : nextOffset;\r\n var boxRange = (selectedLI.offsetTop + selectedLI.offsetHeight - this.list.scrollTop);\r\n if (activeIndex === 0) {\r\n this.list.scrollTop = 0;\r\n }\r\n else if (nextOffset < 0) {\r\n this.list.scrollTop = this.list.scrollTop + nextOffset;\r\n }\r\n else if (!(boxRange > 0 && this.list.offsetHeight > boxRange)) {\r\n this.list.scrollTop = selectedLI.offsetTop - (this.fields.groupBy && !isUndefined(this.fixedHeaderElement) ?\r\n this.fixedHeaderElement.offsetHeight : 0);\r\n }\r\n };\r\n MultiSelect.prototype.selectListByKey = function (e) {\r\n var li = this.list.querySelector('li.' + dropDownBaseClasses.focus);\r\n var limit = this.value && this.value.length ? this.value.length : 0;\r\n var target;\r\n if (li !== null) {\r\n if (li.classList.contains('e-active')) {\r\n limit = limit - 1;\r\n }\r\n if (this.isValidLI(li) && limit < this.maximumSelectionLength) {\r\n this.updateListSelection(li, e);\r\n this.addListFocus(li);\r\n if (this.mode === 'CheckBox') {\r\n this.updateDelimView();\r\n this.updateDelimeter(this.delimiterChar, e);\r\n this.refreshInputHight();\r\n this.checkPlaceholderSize();\r\n if (this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\r\n target = li.firstElementChild.lastElementChild;\r\n this.findGroupStart(target);\r\n this.deselectHeader();\r\n }\r\n }\r\n else {\r\n this.updateDelimeter(this.delimiterChar, e);\r\n }\r\n this.makeTextBoxEmpty();\r\n if (this.mode !== 'CheckBox') {\r\n this.refreshListItems(li.textContent);\r\n }\r\n if (!this.changeOnBlur) {\r\n this.updateValueState(e, this.value, this.tempValues);\r\n }\r\n this.refreshPopup();\r\n }\r\n else {\r\n if (!this.isValidLI(li) && limit < this.maximumSelectionLength) {\r\n target = li.firstElementChild.lastElementChild;\r\n if (target.classList.contains('e-check')) {\r\n this.selectAllItem(false, e, li);\r\n }\r\n else {\r\n this.selectAllItem(true, e, li);\r\n }\r\n }\r\n }\r\n this.refreshSelection();\r\n if (this.closePopupOnSelect) {\r\n this.hidePopup();\r\n }\r\n }\r\n this.refreshPlaceHolder();\r\n };\r\n MultiSelect.prototype.refreshListItems = function (data) {\r\n if ((this.allowFiltering || (this.mode === 'CheckBox' && this.enableSelectionOrder === true)\r\n || this.allowCustomValue) && this.mainList && this.listData) {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n this.onActionComplete(list, this.mainData);\r\n this.focusAtLastListItem(data);\r\n if (this.value && this.value.length) {\r\n this.refreshSelection();\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.removeSelectedChip = function (e) {\r\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\r\n var temp;\r\n if (selectedElem !== null) {\r\n if (!isNullOrUndefined(this.value)) {\r\n this.tempValues = this.value.slice();\r\n }\r\n temp = selectedElem.nextElementSibling;\r\n if (temp !== null) {\r\n this.removeChipSelection();\r\n this.addChipSelection(temp, e);\r\n }\r\n this.removeValue(selectedElem.getAttribute('data-value'), e);\r\n this.makeTextBoxEmpty();\r\n }\r\n if (this.closePopupOnSelect) {\r\n this.hidePopup();\r\n }\r\n this.checkPlaceholderSize();\r\n };\r\n MultiSelect.prototype.moveByTop = function (state) {\r\n var elements = this.list.querySelectorAll('li.' + dropDownBaseClasses.li);\r\n var index;\r\n if (elements.length > 1) {\r\n this.removeFocus();\r\n index = state ? 0 : (elements.length - 1);\r\n this.addListFocus(elements[index]);\r\n this.scrollBottom(elements[index], index);\r\n }\r\n this.updateAriaAttribute();\r\n };\r\n MultiSelect.prototype.moveByList = function (position) {\r\n if (this.list) {\r\n var elements = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li\r\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\r\n elements = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ',li.' + dropDownBaseClasses.group\r\n + ':not(.' + HIDE_LIST + ')' + ':not(.e-reorder-hide)');\r\n }\r\n var selectedElem = this.list.querySelector('li.' + dropDownBaseClasses.focus);\r\n var temp = -1;\r\n if (elements.length) {\r\n for (var index = 0; index < elements.length; index++) {\r\n if (elements[index] === selectedElem) {\r\n temp = index;\r\n break;\r\n }\r\n }\r\n if (position > 0) {\r\n if (temp < (elements.length - 1)) {\r\n this.removeFocus();\r\n this.addListFocus(elements[++temp]);\r\n this.updateCheck(elements[temp]);\r\n this.scrollBottom(elements[temp], temp);\r\n }\r\n }\r\n else {\r\n if (temp > 0) {\r\n this.removeFocus();\r\n this.addListFocus(elements[--temp]);\r\n this.updateCheck(elements[temp]);\r\n this.scrollTop(elements[temp], temp);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.updateCheck = function (element) {\r\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox &&\r\n !isNullOrUndefined(this.fields.groupBy)) {\r\n var checkElement = element.firstElementChild.lastElementChild;\r\n if (checkElement.classList.contains('e-check')) {\r\n element.classList.add('e-active');\r\n }\r\n else {\r\n element.classList.remove('e-active');\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.moveBy = function (position, e) {\r\n var temp;\r\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\r\n var selectedElem = this.chipCollectionWrapper.querySelector('span.' + CHIP_SELECTED);\r\n if (selectedElem === null) {\r\n if (position < 0) {\r\n this.addChipSelection(elements[elements.length - 1], e);\r\n }\r\n }\r\n else {\r\n if (position < 0) {\r\n temp = selectedElem.previousElementSibling;\r\n if (temp !== null) {\r\n this.removeChipSelection();\r\n this.addChipSelection(temp, e);\r\n }\r\n }\r\n else {\r\n temp = selectedElem.nextElementSibling;\r\n this.removeChipSelection();\r\n if (temp !== null) {\r\n this.addChipSelection(temp, e);\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.chipClick = function (e) {\r\n if (this.enabled) {\r\n var elem = closest(e.target, '.' + CHIP);\r\n this.removeChipSelection();\r\n this.addChipSelection(elem, e);\r\n }\r\n };\r\n MultiSelect.prototype.removeChipSelection = function () {\r\n if (this.chipCollectionWrapper) {\r\n this.removeChipFocus();\r\n }\r\n };\r\n MultiSelect.prototype.addChipSelection = function (element, e) {\r\n addClass([element], CHIP_SELECTED);\r\n this.trigger('chipSelection', e);\r\n };\r\n MultiSelect.prototype.onChipRemove = function (e) {\r\n if (e.which === 3 || e.button === 2) {\r\n return;\r\n }\r\n if (this.enabled && !this.readonly) {\r\n var element = e.target.parentElement;\r\n var customVal = element.getAttribute('data-value');\r\n var value = this.getFormattedValue(customVal);\r\n if (this.allowCustomValue && ((customVal !== 'false' && value === false) ||\r\n (!isNullOrUndefined(value) && value.toString() === 'NaN'))) {\r\n value = customVal;\r\n }\r\n if (this.isPopupOpen() && this.mode !== 'CheckBox') {\r\n this.hidePopup();\r\n }\r\n if (!this.inputFocus) {\r\n this.inputElement.focus();\r\n }\r\n this.removeValue(value, e);\r\n if (isNullOrUndefined(this.findListElement(this.list, 'li', 'data-value', value)) && this.mainList && this.listData) {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n this.onActionComplete(list, this.mainData);\r\n }\r\n this.updateDelimeter(this.delimiterChar, e);\r\n if (this.placeholder && this.floatLabelType === 'Never') {\r\n this.makeTextBoxEmpty();\r\n this.checkPlaceholderSize();\r\n }\r\n else {\r\n this.inputElement.value = '';\r\n }\r\n e.preventDefault();\r\n }\r\n };\r\n MultiSelect.prototype.makeTextBoxEmpty = function () {\r\n this.inputElement.value = '';\r\n this.refreshPlaceHolder();\r\n };\r\n MultiSelect.prototype.refreshPlaceHolder = function () {\r\n if (this.placeholder && this.floatLabelType === 'Never') {\r\n if ((this.value && this.value.length) || (!isNullOrUndefined(this.text) && this.text !== '')) {\r\n this.inputElement.placeholder = '';\r\n }\r\n else {\r\n this.inputElement.placeholder = encodePlaceholder(this.placeholder);\r\n }\r\n }\r\n else {\r\n this.setFloatLabelType();\r\n }\r\n this.expandTextbox();\r\n };\r\n MultiSelect.prototype.removeAllItems = function (value, eve, isClearAll, element, mainElement) {\r\n var index = this.value.indexOf(value);\r\n var removeVal = this.value.slice(0);\r\n removeVal.splice(index, 1);\r\n this.setProperties({ value: [].concat([], removeVal) }, true);\r\n element.setAttribute('aria-selected', 'false');\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n removeClass([element], className);\r\n this.notify('activeList', {\r\n module: 'CheckBoxSelection',\r\n enable: this.mode === 'CheckBox', li: element,\r\n e: this, index: index\r\n });\r\n this.invokeCheckboxSelection(element, eve, isClearAll);\r\n this.updateMainList(true, value, mainElement);\r\n this.updateChipStatus();\r\n };\r\n MultiSelect.prototype.invokeCheckboxSelection = function (element, eve, isClearAll) {\r\n this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: eve });\r\n attributes(this.inputElement, { 'aria-activedescendant': element.id });\r\n if ((this.value && this.value.length !== this.mainData.length)\r\n && (this.mode === 'CheckBox' && this.showSelectAll && !(this.isSelectAll || isClearAll))) {\r\n this.notify('checkSelectAll', {\r\n module: 'CheckBoxSelection',\r\n enable: this.mode === 'CheckBox',\r\n value: 'uncheck'\r\n });\r\n }\r\n };\r\n MultiSelect.prototype.removeValue = function (value, eve, length, isClearAll) {\r\n var _this = this;\r\n var index = this.value.indexOf(this.getFormattedValue(value));\r\n if (index === -1 && this.allowCustomValue && !isNullOrUndefined(value)) {\r\n index = this.value.indexOf(value.toString());\r\n }\r\n var targetEle = eve && eve.target;\r\n isClearAll = (isClearAll || targetEle && targetEle.classList.contains('e-close-hooker')) ? true : null;\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n if (index !== -1) {\r\n var element_1 = this.findListElement(this.list, 'li', 'data-value', value);\r\n var val_1 = this.getDataByValue(value);\r\n var eventArgs = {\r\n e: eve,\r\n item: element_1,\r\n itemData: val_1,\r\n isInteracted: eve ? true : false,\r\n cancel: false\r\n };\r\n this.trigger('removing', eventArgs, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n _this.removeIndex++;\r\n }\r\n else {\r\n var removeVal = _this.value.slice(0);\r\n removeVal.splice(index, 1);\r\n _this.setProperties({ value: [].concat([], removeVal) }, true);\r\n if (element_1 !== null) {\r\n var hideElement = _this.findListElement(_this.mainList, 'li', 'data-value', value);\r\n element_1.setAttribute('aria-selected', 'false');\r\n removeClass([element_1], className);\r\n if (hideElement) {\r\n hideElement.setAttribute('aria-selected', 'false');\r\n removeClass([element_1, hideElement], className);\r\n }\r\n _this.notify('activeList', {\r\n module: 'CheckBoxSelection',\r\n enable: _this.mode === 'CheckBox', li: element_1,\r\n e: _this, index: index\r\n });\r\n _this.invokeCheckboxSelection(element_1, eve, isClearAll);\r\n }\r\n if (_this.hideSelectedItem && _this.fields.groupBy) {\r\n _this.hideGroupItem(value);\r\n }\r\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox' &&\r\n _this.isPopupOpen()) {\r\n _super.prototype.scrollStop.call(_this);\r\n }\r\n _this.updateMainList(true, value);\r\n _this.removeChip(value);\r\n _this.updateChipStatus();\r\n var limit = _this.value && _this.value.length ? _this.value.length : 0;\r\n if (limit < _this.maximumSelectionLength) {\r\n var collection = _this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ':not(.e-active)');\r\n removeClass(collection, 'e-disable');\r\n }\r\n _this.trigger('removed', eventArgs);\r\n var targetEle_1 = eve && eve.currentTarget;\r\n var isSelectAll = (targetEle_1 && targetEle_1.classList.contains('e-selectall-parent')) ? true : null;\r\n if (!_this.changeOnBlur && !isClearAll && (eve && length && !isSelectAll)) {\r\n _this.updateValueState(eve, _this.value, _this.tempValues);\r\n }\r\n if (length) {\r\n _this.selectAllEventData.push(val_1);\r\n _this.selectAllEventEle.push(element_1);\r\n }\r\n if (length === 1) {\r\n if (!_this.changeOnBlur) {\r\n _this.updateValueState(eve, _this.value, _this.tempValues);\r\n }\r\n var args = {\r\n event: eve,\r\n items: _this.selectAllEventEle,\r\n itemData: _this.selectAllEventData,\r\n isInteracted: eve ? true : false,\r\n isChecked: false\r\n };\r\n _this.trigger('selectedAll', args);\r\n _this.selectAllEventData = [];\r\n _this.selectAllEventEle = [];\r\n }\r\n if (isClearAll && (length === 1 || length === null)) {\r\n _this.clearAllCallback(eve, isClearAll);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n MultiSelect.prototype.updateMainList = function (state, value, mainElement) {\r\n if (this.allowFiltering || this.mode === 'CheckBox') {\r\n var element2 = mainElement ? mainElement :\r\n this.findListElement(this.mainList, 'li', 'data-value', value);\r\n if (element2) {\r\n if (state) {\r\n element2.setAttribute('aria-selected', 'false');\r\n removeClass([element2], this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected);\r\n if (this.mode === 'CheckBox') {\r\n element2.firstElementChild.setAttribute('aria-checked', 'false');\r\n removeClass([element2.firstElementChild.lastElementChild], 'e-check');\r\n }\r\n }\r\n else {\r\n element2.setAttribute('aria-selected', 'true');\r\n addClass([element2], this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected);\r\n if (this.mode === 'CheckBox') {\r\n element2.firstElementChild.setAttribute('aria-checked', 'true');\r\n addClass([element2.firstElementChild.lastElementChild], 'e-check');\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.removeChip = function (value) {\r\n if (this.chipCollectionWrapper) {\r\n var element = this.findListElement(this.chipCollectionWrapper, 'span', 'data-value', value);\r\n if (element) {\r\n remove(element);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.setWidth = function (width) {\r\n if (!isNullOrUndefined(width)) {\r\n if (typeof width === 'number') {\r\n this.overAllWrapper.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n this.overAllWrapper.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.updateChipStatus = function () {\r\n if (this.value && this.value.length) {\r\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\r\n (this.chipCollectionWrapper.style.display = '');\r\n }\r\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\r\n this.showDelimWrapper();\r\n }\r\n this.showOverAllClear();\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.chipCollectionWrapper)) {\r\n this.chipCollectionWrapper.style.display = 'none';\r\n }\r\n if (!isNullOrUndefined(this.delimiterWrapper)) {\r\n (this.delimiterWrapper.style.display = 'none');\r\n }\r\n this.hideOverAllClear();\r\n }\r\n };\r\n MultiSelect.prototype.addValue = function (value, text, eve) {\r\n if (!this.value) {\r\n this.value = [];\r\n }\r\n if (this.value.indexOf(value) < 0) {\r\n this.setProperties({ value: [].concat([], this.value, [value]) }, true);\r\n }\r\n var element = this.findListElement(this.list, 'li', 'data-value', value);\r\n this.removeFocus();\r\n if (element) {\r\n this.addListFocus(element);\r\n this.addListSelection(element);\r\n }\r\n if (this.mode !== 'Delimiter' && this.mode !== 'CheckBox') {\r\n this.addChip(text, value, eve);\r\n }\r\n if (this.hideSelectedItem && this.fields.groupBy) {\r\n this.hideGroupItem(value);\r\n }\r\n this.updateChipStatus();\r\n this.checkMaxSelection();\r\n };\r\n MultiSelect.prototype.checkMaxSelection = function () {\r\n var limit = this.value && this.value.length ? this.value.length : 0;\r\n if (limit === this.maximumSelectionLength) {\r\n var collection = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ':not(.e-active)');\r\n addClass(collection, 'e-disable');\r\n }\r\n };\r\n MultiSelect.prototype.dispatchSelect = function (value, eve, element, isNotTrigger, length) {\r\n var _this = this;\r\n var list = this.listData;\r\n if (this.initStatus && !isNotTrigger) {\r\n var val_2 = this.getDataByValue(value);\r\n var eventArgs = {\r\n e: eve,\r\n item: element,\r\n itemData: val_2,\r\n isInteracted: eve ? true : false,\r\n cancel: false\r\n };\r\n this.trigger('select', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n if (length) {\r\n _this.selectAllEventData.push(val_2);\r\n _this.selectAllEventEle.push(element);\r\n }\r\n if (length === 1) {\r\n var args = {\r\n event: eve,\r\n items: _this.selectAllEventEle,\r\n itemData: _this.selectAllEventData,\r\n isInteracted: eve ? true : false,\r\n isChecked: true\r\n };\r\n _this.trigger('selectedAll', args);\r\n _this.selectAllEventData = [];\r\n }\r\n if (_this.allowCustomValue && _this.isServerRendered && _this.listData !== list) {\r\n _this.listData = list;\r\n }\r\n _this.updateListSelectEventCallback(value, element, eve);\r\n if (_this.hideSelectedItem && _this.fixedHeaderElement && _this.fields.groupBy && _this.mode !== 'CheckBox') {\r\n _super.prototype.scrollStop.call(_this);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n MultiSelect.prototype.addChip = function (text, value, e) {\r\n if (this.chipCollectionWrapper) {\r\n this.getChip(text, value, e);\r\n }\r\n };\r\n MultiSelect.prototype.removeChipFocus = function () {\r\n var elements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP);\r\n var closeElements = this.chipCollectionWrapper.querySelectorAll('span.' + CHIP_CLOSE.split(' ')[0]);\r\n removeClass(elements, CHIP_SELECTED);\r\n if (Browser.isDevice) {\r\n for (var index = 0; index < closeElements.length; index++) {\r\n closeElements[index].style.display = 'none';\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.onMobileChipInteraction = function (e) {\r\n var chipElem = closest(e.target, '.' + CHIP);\r\n var chipClose = chipElem.querySelector('span.' + CHIP_CLOSE.split(' ')[0]);\r\n if (this.enabled && !this.readonly) {\r\n if (!chipElem.classList.contains(CHIP_SELECTED)) {\r\n this.removeChipFocus();\r\n chipClose.style.display = '';\r\n chipElem.classList.add(CHIP_SELECTED);\r\n }\r\n this.refreshPopup();\r\n e.preventDefault();\r\n }\r\n };\r\n MultiSelect.prototype.multiCompiler = function (multiselectTemplate) {\r\n var checkTemplate = false;\r\n if (multiselectTemplate) {\r\n try {\r\n checkTemplate = (selectAll(multiselectTemplate, document).length) ? true : false;\r\n }\r\n catch (exception) {\r\n checkTemplate = false;\r\n }\r\n }\r\n return checkTemplate;\r\n };\r\n MultiSelect.prototype.getChip = function (data, value, e) {\r\n var _this = this;\r\n var itemData = { text: value, value: value };\r\n var chip = this.createElement('span', {\r\n className: CHIP,\r\n attrs: { 'data-value': value, 'title': data }\r\n });\r\n var compiledString;\r\n var chipContent = this.createElement('span', { className: CHIP_CONTENT });\r\n var chipClose = this.createElement('span', { className: CHIP_CLOSE });\r\n if (this.mainData) {\r\n itemData = this.getDataByValue(value);\r\n }\r\n if (this.valueTemplate && !isNullOrUndefined(itemData)) {\r\n var valuecheck = this.multiCompiler(this.valueTemplate);\r\n if (valuecheck) {\r\n compiledString = compile(select(this.valueTemplate, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.valueTemplate);\r\n }\r\n // eslint-disable-next-line\r\n var valueCompTemp = compiledString(itemData, this, 'valueTemplate', this.valueTemplateId, this.isStringTemplate, null, chipContent);\r\n if (valueCompTemp && valueCompTemp.length > 0) {\r\n for (var i = 0; i < valueCompTemp.length; i++) {\r\n chipContent.appendChild(valueCompTemp[i]);\r\n }\r\n }\r\n this.renderReactTemplates();\r\n }\r\n else if (this.enableHtmlSanitizer) {\r\n chipContent.innerText = data;\r\n }\r\n else {\r\n chipContent.innerHTML = data;\r\n }\r\n chip.appendChild(chipContent);\r\n var eventArgs = {\r\n isInteracted: e ? true : false,\r\n itemData: itemData,\r\n e: e,\r\n setClass: function (classes) {\r\n addClass([chip], classes);\r\n },\r\n cancel: false\r\n };\r\n this.isPreventChange = this.isAngular && this.preventChange;\r\n this.trigger('tagging', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n if (Browser.isDevice) {\r\n chip.classList.add(MOBILE_CHIP);\r\n append([chipClose], chip);\r\n chipClose.style.display = 'none';\r\n EventHandler.add(chip, 'click', _this.onMobileChipInteraction, _this);\r\n }\r\n else {\r\n EventHandler.add(chip, 'mousedown', _this.chipClick, _this);\r\n if (_this.showClearButton) {\r\n chip.appendChild(chipClose);\r\n }\r\n }\r\n EventHandler.add(chipClose, 'mousedown', _this.onChipRemove, _this);\r\n _this.chipCollectionWrapper.appendChild(chip);\r\n if (!_this.changeOnBlur && e) {\r\n _this.updateValueState(e, _this.value, _this.tempValues);\r\n }\r\n }\r\n });\r\n };\r\n MultiSelect.prototype.calcPopupWidth = function () {\r\n var width = formatUnit(this.popupWidth);\r\n if (width.indexOf('%') > -1) {\r\n var inputWidth = (this.componentWrapper.offsetWidth) * parseFloat(width) / 100;\r\n width = inputWidth.toString() + 'px';\r\n }\r\n return width;\r\n };\r\n MultiSelect.prototype.mouseIn = function () {\r\n if (this.enabled && !this.readonly) {\r\n this.showOverAllClear();\r\n }\r\n };\r\n MultiSelect.prototype.mouseOut = function () {\r\n if (!this.inputFocus) {\r\n this.overAllClear.style.display = 'none';\r\n }\r\n };\r\n MultiSelect.prototype.listOption = function (dataSource, fields) {\r\n var iconCss = isNullOrUndefined(fields.iconCss) ? false : true;\r\n var fieldProperty = isNullOrUndefined(fields.properties) ? fields :\r\n fields.properties;\r\n this.listCurrentOptions = (fields.text !== null || fields.value !== null) ? {\r\n fields: fieldProperty, showIcon: iconCss, ariaAttributes: { groupItemRole: 'presentation' }\r\n } : { fields: { value: 'text' } };\r\n extend(this.listCurrentOptions, this.listCurrentOptions, fields, true);\r\n if (this.mode === 'CheckBox') {\r\n this.notify('listoption', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', dataSource: dataSource, fieldProperty: fieldProperty });\r\n }\r\n return this.listCurrentOptions;\r\n };\r\n MultiSelect.prototype.renderPopup = function () {\r\n var _this = this;\r\n if (!this.list) {\r\n _super.prototype.render.call(this);\r\n }\r\n if (!this.popupObj) {\r\n document.body.appendChild(this.popupWrapper);\r\n var checkboxFilter = this.popupWrapper.querySelector('.' + FILTERPARENT);\r\n if (this.mode === 'CheckBox' && !this.allowFiltering && checkboxFilter && this.filterParent) {\r\n checkboxFilter.remove();\r\n this.filterParent = null;\r\n }\r\n var overAllHeight = parseInt(this.popupHeight, 10);\r\n this.popupWrapper.style.visibility = 'hidden';\r\n if (this.headerTemplate) {\r\n this.setHeaderTemplate();\r\n overAllHeight -= this.header.offsetHeight;\r\n }\r\n append([this.list], this.popupWrapper);\r\n if (this.footerTemplate) {\r\n this.setFooterTemplate();\r\n overAllHeight -= this.footer.offsetHeight;\r\n }\r\n if (this.mode === 'CheckBox' && this.showSelectAll) {\r\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n overAllHeight -= this.selectAllHeight;\r\n }\r\n else if (this.mode === 'CheckBox' && !this.showSelectAll && (!this.headerTemplate && !this.footerTemplate)) {\r\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n overAllHeight = parseInt(this.popupHeight, 10);\r\n }\r\n else if (this.mode === 'CheckBox' && !this.showSelectAll) {\r\n this.notify('selectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n overAllHeight = parseInt(this.popupHeight, 10);\r\n if (this.headerTemplate && this.header) {\r\n overAllHeight -= this.header.offsetHeight;\r\n }\r\n if (this.footerTemplate && this.footer) {\r\n overAllHeight -= this.footer.offsetHeight;\r\n }\r\n }\r\n if (this.mode === 'CheckBox') {\r\n var args = {\r\n module: 'CheckBoxSelection',\r\n enable: this.mode === 'CheckBox',\r\n popupElement: this.popupWrapper\r\n };\r\n if (this.allowFiltering) {\r\n this.notify('searchBox', args);\r\n overAllHeight -= this.searchBoxHeight;\r\n }\r\n addClass([this.popupWrapper], 'e-checkbox');\r\n }\r\n if (this.popupHeight !== 'auto') {\r\n this.list.style.maxHeight = formatUnit(overAllHeight);\r\n this.popupWrapper.style.maxHeight = formatUnit(this.popupHeight);\r\n }\r\n else {\r\n this.list.style.maxHeight = formatUnit(this.popupHeight);\r\n }\r\n this.popupObj = new Popup(this.popupWrapper, {\r\n width: this.calcPopupWidth(), targetType: 'relative', position: { X: 'left', Y: 'bottom' },\r\n relateTo: this.overAllWrapper, collision: { X: 'flip', Y: 'flip' }, offsetY: 1,\r\n enableRtl: this.enableRtl, zIndex: this.zIndex,\r\n close: function () {\r\n if (_this.popupObj.element.parentElement) {\r\n _this.popupObj.unwireScrollEvents();\r\n // For restrict the page scrolling in safari browser\r\n var checkboxFilterInput = _this.popupWrapper.querySelector('.' + FILTERINPUT);\r\n if (_this.mode === 'CheckBox' && checkboxFilterInput && document.activeElement === checkboxFilterInput) {\r\n checkboxFilterInput.blur();\r\n }\r\n detach(_this.popupObj.element);\r\n }\r\n },\r\n open: function () {\r\n _this.popupObj.resolveCollision();\r\n if (!_this.isFirstClick) {\r\n var ulElement = _this.list.querySelector('ul');\r\n if (ulElement) {\r\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&\r\n _this.targetElement().trim() !== '')) {\r\n _this.mainList = ulElement.cloneNode ? ulElement.cloneNode(true) : ulElement;\r\n }\r\n }\r\n _this.isFirstClick = true;\r\n }\r\n _this.popupObj.wireScrollEvents();\r\n if (!(_this.mode !== 'CheckBox' && (_this.allowFiltering || _this.allowCustomValue) &&\r\n _this.targetElement().trim() !== '')) {\r\n _this.loadTemplate();\r\n }\r\n _this.setScrollPosition();\r\n if (_this.allowFiltering) {\r\n _this.notify('inputFocus', {\r\n module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'focus'\r\n });\r\n }\r\n }, targetExitViewport: function () {\r\n if (!Browser.isDevice) {\r\n _this.hidePopup();\r\n }\r\n }\r\n });\r\n if (this.mode === 'CheckBox' && Browser.isDevice && this.allowFiltering) {\r\n this.notify('deviceSearchBox', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox' });\r\n }\r\n this.popupObj.close();\r\n this.popupWrapper.style.visibility = '';\r\n }\r\n };\r\n MultiSelect.prototype.setHeaderTemplate = function () {\r\n var compiledString;\r\n if (this.header) {\r\n this.header.remove();\r\n }\r\n this.header = this.createElement('div');\r\n addClass([this.header], HEADER);\r\n var headercheck = this.multiCompiler(this.headerTemplate);\r\n if (headercheck) {\r\n compiledString = compile(select(this.headerTemplate, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.headerTemplate);\r\n }\r\n // eslint-disable-next-line\r\n var elements = compiledString({}, this, 'headerTemplate', this.headerTemplateId, this.isStringTemplate, null, this.header);\r\n if (elements && elements.length > 0) {\r\n for (var temp = 0; temp < elements.length; temp++) {\r\n this.header.appendChild(elements[temp]);\r\n }\r\n }\r\n if (this.mode === 'CheckBox' && this.showSelectAll) {\r\n prepend([this.header], this.popupWrapper);\r\n }\r\n else {\r\n append([this.header], this.popupWrapper);\r\n }\r\n EventHandler.add(this.header, 'mousedown', this.onListMouseDown, this);\r\n };\r\n MultiSelect.prototype.setFooterTemplate = function () {\r\n var compiledString;\r\n if (this.footer) {\r\n this.footer.remove();\r\n }\r\n this.footer = this.createElement('div');\r\n addClass([this.footer], FOOTER);\r\n var footercheck = this.multiCompiler(this.footerTemplate);\r\n if (footercheck) {\r\n compiledString = compile(select(this.footerTemplate, document).innerHTML.trim());\r\n }\r\n else {\r\n compiledString = compile(this.footerTemplate);\r\n }\r\n // eslint-disable-next-line\r\n var elements = compiledString({}, this, 'footerTemplate', this.footerTemplateId, this.isStringTemplate, null, this.footer);\r\n if (elements && elements.length > 0) {\r\n for (var temp = 0; temp < elements.length; temp++) {\r\n this.footer.appendChild(elements[temp]);\r\n }\r\n }\r\n append([this.footer], this.popupWrapper);\r\n EventHandler.add(this.footer, 'mousedown', this.onListMouseDown, this);\r\n };\r\n MultiSelect.prototype.clearAll = function (e) {\r\n if (this.enabled && !this.readonly) {\r\n var temp = void 0;\r\n if (this.value && this.value.length > 0) {\r\n var liElement = this.list && this.list.querySelectorAll('li.e-list-item');\r\n if (liElement && liElement.length > 0) {\r\n this.selectAllItems(false, e);\r\n }\r\n else {\r\n this.removeIndex = 0;\r\n for (temp = this.value[this.removeIndex]; this.removeIndex < this.value.length; temp = this.value[this.removeIndex]) {\r\n this.removeValue(temp, e, null, true);\r\n }\r\n }\r\n }\r\n else {\r\n this.clearAllCallback(e);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.clearAllCallback = function (e, isClearAll) {\r\n var tempValues = this.value ? this.value.slice() : [];\r\n if (this.mainList && this.listData && ((this.allowFiltering && this.mode !== 'CheckBox') || this.allowCustomValue)) {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n this.onActionComplete(list, this.mainData);\r\n }\r\n this.focusAtFirstListItem();\r\n this.updateDelimeter(this.delimiterChar, e);\r\n if (this.mode !== 'Box' && (!this.inputFocus || this.mode === 'CheckBox')) {\r\n this.updateDelimView();\r\n }\r\n if (this.inputElement.value !== '') {\r\n this.makeTextBoxEmpty();\r\n this.search(null);\r\n }\r\n this.checkPlaceholderSize();\r\n if (this.isPopupOpen()) {\r\n this.refreshPopup();\r\n }\r\n if (!this.inputFocus) {\r\n if (this.changeOnBlur) {\r\n this.updateValueState(e, this.value, tempValues);\r\n }\r\n if (this.mode !== 'CheckBox') {\r\n this.inputElement.focus();\r\n }\r\n }\r\n if (this.mode === 'CheckBox') {\r\n this.refreshPlaceHolder();\r\n this.refreshInputHight();\r\n if (this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\r\n this.updateValueState(e, this.value, this.tempValues);\r\n }\r\n }\r\n if (!this.changeOnBlur && isClearAll && (isNullOrUndefined(this.value) || this.value.length === 0)) {\r\n this.updateValueState(e, this.value, this.tempValues);\r\n }\r\n if (this.mode === 'CheckBox' && this.enableGroupCheckBox && !isNullOrUndefined(this.fields.groupBy)) {\r\n this.updateListItems(this.list.querySelectorAll('li.e-list-item'), this.mainList.querySelectorAll('li.e-list-item'));\r\n }\r\n e.preventDefault();\r\n };\r\n MultiSelect.prototype.windowResize = function () {\r\n this.refreshPopup();\r\n if ((!this.inputFocus || this.mode === 'CheckBox') && this.viewWrapper && this.viewWrapper.parentElement) {\r\n this.updateDelimView();\r\n }\r\n };\r\n MultiSelect.prototype.resetValueHandler = function (e) {\r\n var formElement = closest(this.inputElement, 'form');\r\n if (formElement && e.target === formElement) {\r\n var textVal = (this.element.tagName === this.getNgDirective()) ?\r\n null : this.element.getAttribute('data-initial-value');\r\n this.text = textVal;\r\n }\r\n };\r\n MultiSelect.prototype.wireEvent = function () {\r\n EventHandler.add(this.componentWrapper, 'mousedown', this.wrapperClick, this);\r\n EventHandler.add(window, 'resize', this.windowResize, this);\r\n EventHandler.add(this.inputElement, 'focus', this.focusInHandler, this);\r\n EventHandler.add(this.inputElement, 'keydown', this.onKeyDown, this);\r\n EventHandler.add(this.inputElement, 'keyup', this.keyUp, this);\r\n if (this.mode !== 'CheckBox') {\r\n EventHandler.add(this.inputElement, 'input', this.onInput, this);\r\n }\r\n EventHandler.add(this.inputElement, 'blur', this.onBlurHandler, this);\r\n EventHandler.add(this.componentWrapper, 'mouseover', this.mouseIn, this);\r\n var formElement = closest(this.inputElement, 'form');\r\n if (formElement) {\r\n EventHandler.add(formElement, 'reset', this.resetValueHandler, this);\r\n }\r\n EventHandler.add(this.componentWrapper, 'mouseout', this.mouseOut, this);\r\n EventHandler.add(this.overAllClear, 'mouseup', this.clearAll, this);\r\n EventHandler.add(this.inputElement, 'paste', this.pasteHandler, this);\r\n };\r\n MultiSelect.prototype.onInput = function (e) {\r\n if (this.keyDownStatus) {\r\n this.isValidKey = true;\r\n }\r\n else {\r\n this.isValidKey = false;\r\n }\r\n this.keyDownStatus = false;\r\n // For Filtering works in mobile firefox\r\n if (Browser.isDevice && Browser.info.name === 'mozilla') {\r\n this.search(e);\r\n }\r\n };\r\n MultiSelect.prototype.pasteHandler = function (event) {\r\n var _this = this;\r\n setTimeout(function () {\r\n _this.expandTextbox();\r\n _this.search(event);\r\n });\r\n };\r\n MultiSelect.prototype.search = function (e) {\r\n var _this = this;\r\n if (!isNullOrUndefined(e)) {\r\n this.keyCode = e.keyCode;\r\n }\r\n if (!this.isPopupOpen() && this.openOnClick) {\r\n this.showPopup();\r\n }\r\n this.openClick(e);\r\n if (this.checkTextLength() && !this.allowFiltering && !isNullOrUndefined(e) && (e.keyCode !== 8)) {\r\n this.focusAtFirstListItem();\r\n }\r\n else {\r\n var text = this.targetElement();\r\n if (this.allowFiltering) {\r\n var eventArgs_1 = {\r\n preventDefaultAction: false,\r\n text: this.targetElement(),\r\n updateData: function (dataSource, query, fields) {\r\n if (eventArgs_1.cancel) {\r\n return;\r\n }\r\n _this.isFiltered = true;\r\n _this.remoteFilterAction = true;\r\n _this.dataUpdater(dataSource, query, fields);\r\n },\r\n event: e,\r\n cancel: false\r\n };\r\n this.trigger('filtering', eventArgs_1, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n if (!_this.isFiltered && !eventArgs.preventDefaultAction) {\r\n _this.filterAction = true;\r\n _this.dataUpdater(_this.dataSource, null, _this.fields);\r\n }\r\n }\r\n });\r\n }\r\n else if (this.allowCustomValue) {\r\n var query = new Query();\r\n query = (text !== '') ? query.where(this.fields.text, 'startswith', text, this.ignoreCase, this.ignoreAccent) : query;\r\n this.dataUpdater(this.mainData, query, this.fields);\r\n }\r\n else {\r\n var liCollections = this.list.querySelectorAll('li.' + dropDownBaseClasses.li + ':not(.e-hide-listitem)');\r\n var activeElement = Search(this.targetElement(), liCollections, 'StartsWith', this.ignoreCase);\r\n if (activeElement && activeElement.item !== null) {\r\n this.addListFocus(activeElement.item);\r\n this.list.scrollTop =\r\n activeElement.item.offsetHeight * activeElement.index;\r\n }\r\n else if (this.targetElement() !== '') {\r\n this.removeFocus();\r\n }\r\n else {\r\n this.focusAtFirstListItem();\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.preRender = function () {\r\n if (this.allowFiltering === null) {\r\n this.allowFiltering = (this.mode === 'CheckBox') ? true : false;\r\n }\r\n this.initializeData();\r\n this.updateDataAttribute(this.htmlAttributes);\r\n _super.prototype.preRender.call(this);\r\n };\r\n MultiSelect.prototype.getLocaleName = function () {\r\n return 'multi-select';\r\n };\r\n MultiSelect.prototype.initializeData = function () {\r\n this.mainListCollection = [];\r\n this.beforePopupOpen = false;\r\n this.filterAction = false;\r\n this.remoteFilterAction = false;\r\n this.isFirstClick = false;\r\n this.mobFilter = true;\r\n this.isFiltered = false;\r\n this.focused = true;\r\n this.initial = true;\r\n this.backCommand = true;\r\n };\r\n MultiSelect.prototype.updateData = function (delimiterChar, e) {\r\n var data = '';\r\n var delim = this.mode === 'Delimiter' || this.mode === 'CheckBox';\r\n var text = [];\r\n var temp;\r\n var tempData = this.listData;\r\n this.listData = this.mainData;\r\n this.hiddenElement.innerHTML = '';\r\n if (!isNullOrUndefined(this.value)) {\r\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\r\n var listValue = this.findListElement(((!isNullOrUndefined(this.mainList)) ? this.mainList : this.ulElement), 'li', 'data-value', this.value[index]);\r\n if (isNullOrUndefined(listValue) && !this.allowCustomValue) {\r\n this.value.splice(index, 1);\r\n index -= 1;\r\n }\r\n else {\r\n if (this.listData) {\r\n temp = this.getTextByValue(this.value[index]);\r\n }\r\n else {\r\n temp = this.value[index];\r\n }\r\n data += temp + delimiterChar + ' ';\r\n text.push(temp);\r\n }\r\n this.hiddenElement.innerHTML += '';\r\n }\r\n }\r\n this.setProperties({ text: text.toString() }, true);\r\n if (delim) {\r\n this.updateWrapperText(this.delimiterWrapper, data);\r\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\r\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\r\n this.inputElement.setAttribute('aria-labelledby', this.delimiterWrapper.id);\r\n }\r\n var targetEle = e && e.target;\r\n var isClearAll = (targetEle && targetEle.classList.contains('e-close-hooker')) ? true : null;\r\n if (!this.changeOnBlur && ((e && !isClearAll)) || this.isSelectAll) {\r\n this.isSelectAll = false;\r\n this.updateValueState(e, this.value, this.tempValues);\r\n }\r\n this.listData = tempData;\r\n this.addValidInputClass();\r\n };\r\n MultiSelect.prototype.initialTextUpdate = function () {\r\n if (!isNullOrUndefined(this.text)) {\r\n var textArr = this.text.split(this.delimiterChar);\r\n var textVal = [];\r\n for (var index = 0; textArr.length > index; index++) {\r\n var val = this.getValueByText(textArr[index]);\r\n if (!isNullOrUndefined(val)) {\r\n textVal.push(val);\r\n }\r\n else if (this.allowCustomValue) {\r\n textVal.push(textArr[index]);\r\n }\r\n }\r\n if (textVal && textVal.length) {\r\n this.setProperties({ value: textVal }, true);\r\n }\r\n }\r\n else {\r\n this.setProperties({ value: null }, true);\r\n }\r\n };\r\n MultiSelect.prototype.renderList = function (isEmptyData) {\r\n if (!isEmptyData && this.allowCustomValue && this.list && (this.list.textContent === this.noRecordsTemplate\r\n || this.list.querySelector('.e-ul') && this.list.querySelector('.e-ul').childElementCount === 0)) {\r\n isEmptyData = true;\r\n }\r\n _super.prototype.render.call(this, isEmptyData);\r\n this.unwireListEvents();\r\n this.wireListEvents();\r\n };\r\n MultiSelect.prototype.initialValueUpdate = function () {\r\n if (this.list) {\r\n var text = void 0;\r\n var element = void 0;\r\n var value = void 0;\r\n if (this.chipCollectionWrapper) {\r\n this.chipCollectionWrapper.innerHTML = '';\r\n }\r\n this.removeListSelection();\r\n if (!isNullOrUndefined(this.value)) {\r\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\r\n value = this.value[index];\r\n element = this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\r\n text = this.getTextByValue(value);\r\n if ((element && (element.getAttribute('aria-selected') !== 'true')) ||\r\n (element && (element.getAttribute('aria-selected') === 'true' && this.hideSelectedItem) &&\r\n (this.mode === 'Box' || this.mode === 'Default'))) {\r\n this.addChip(text, value);\r\n this.addListSelection(element);\r\n }\r\n else if (value && this.allowCustomValue) {\r\n var indexItem = this.listData.length;\r\n var newValue = {};\r\n setValue(this.fields.text, value, newValue);\r\n setValue(this.fields.value, value, newValue);\r\n var noDataEle = this.popupWrapper.querySelector('.' + dropDownBaseClasses.noData);\r\n this.addItem(newValue, indexItem);\r\n element = element ? element : this.findListElement(this.hideSelectedItem ? this.ulElement : this.list, 'li', 'data-value', value);\r\n if (this.popupWrapper.contains(noDataEle)) {\r\n this.list.setAttribute('style', noDataEle.getAttribute('style'));\r\n this.popupWrapper.replaceChild(this.list, noDataEle);\r\n this.wireListEvents();\r\n }\r\n this.addChip(text, value);\r\n this.addListSelection(element);\r\n }\r\n }\r\n }\r\n if (this.mode === 'CheckBox') {\r\n this.updateDelimView();\r\n if (this.changeOnBlur) {\r\n this.updateValueState(null, this.value, this.tempValues);\r\n }\r\n this.updateDelimeter(this.delimiterChar);\r\n this.refreshInputHight();\r\n }\r\n else {\r\n this.updateDelimeter(this.delimiterChar);\r\n }\r\n if (this.mode === 'CheckBox' && this.showSelectAll && (isNullOrUndefined(this.value) || !this.value.length)) {\r\n this.notify('checkSelectAll', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', value: 'uncheck' });\r\n }\r\n if (this.mode === 'Box' || (this.mode === 'Default' && this.inputFocus)) {\r\n this.chipCollectionWrapper.style.display = '';\r\n }\r\n else if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\r\n this.showDelimWrapper();\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MultiSelect.prototype.updateActionCompleteData = function (li, item) {\r\n if (this.value && this.value.indexOf(li.getAttribute('data-value')) > -1) {\r\n this.mainList = this.ulElement;\r\n addClass([li], HIDE_LIST);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MultiSelect.prototype.updateAddItemList = function (list, itemCount) {\r\n if (this.popupObj && this.popupObj.element && this.popupObj.element.querySelector('.' + dropDownBaseClasses.noData) && list) {\r\n this.list = list;\r\n this.mainList = this.ulElement = list.querySelector('ul');\r\n remove(this.popupWrapper.querySelector('.e-content'));\r\n this.popupObj = null;\r\n this.renderPopup();\r\n }\r\n else if (this.allowCustomValue) {\r\n this.list = list;\r\n this.mainList = this.ulElement = list.querySelector('ul');\r\n }\r\n };\r\n MultiSelect.prototype.updateDataList = function () {\r\n if (this.mainList && this.ulElement && this.mainList.childElementCount < this.ulElement.childElementCount) {\r\n this.mainList = this.ulElement.cloneNode ? this.ulElement.cloneNode(true) : this.ulElement;\r\n }\r\n };\r\n MultiSelect.prototype.isValidLI = function (li) {\r\n return (li && !li.classList.contains(dropDownBaseClasses.disabled) && !li.classList.contains(dropDownBaseClasses.group) &&\r\n li.classList.contains(dropDownBaseClasses.li));\r\n };\r\n MultiSelect.prototype.updateListSelection = function (li, e, length) {\r\n var customVal = li.getAttribute('data-value');\r\n var value = this.getFormattedValue(customVal);\r\n if (this.allowCustomValue && ((customVal !== 'false' && value === false) ||\r\n (!isNullOrUndefined(value) && value.toString() === 'NaN'))) {\r\n value = customVal;\r\n }\r\n this.removeHover();\r\n if (!this.value || this.value.indexOf(value) === -1) {\r\n this.dispatchSelect(value, e, li, (li.getAttribute('aria-selected') === 'true'), length);\r\n }\r\n else {\r\n this.removeValue(value, e, length);\r\n }\r\n };\r\n MultiSelect.prototype.updateListSelectEventCallback = function (value, li, e) {\r\n var _this = this;\r\n var text = this.getTextByValue(value);\r\n if ((this.allowCustomValue || this.allowFiltering) && !this.findListElement(this.mainList, 'li', 'data-value', value)) {\r\n var temp_1 = li.cloneNode(true);\r\n var fieldValue = this.fields.value ? this.fields.value : 'value';\r\n if (this.allowCustomValue && this.mainData.length && typeof getValue(fieldValue, this.mainData[0]) === 'number') {\r\n value = !isNaN(parseFloat(value.toString())) ? parseFloat(value.toString()) : value;\r\n }\r\n var data_1 = this.getDataByValue(value);\r\n var eventArgs = {\r\n newData: data_1,\r\n cancel: false\r\n };\r\n this.trigger('customValueSelection', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n append([temp_1], _this.mainList);\r\n _this.mainData.push(data_1);\r\n _this.remoteCustomValue = false;\r\n _this.addValue(value, text, e);\r\n }\r\n });\r\n }\r\n else {\r\n this.remoteCustomValue = false;\r\n this.addValue(value, text, e);\r\n }\r\n };\r\n MultiSelect.prototype.removeListSelection = function () {\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n var selectedItems = this.list.querySelectorAll('.' + className);\r\n var temp = selectedItems.length;\r\n if (selectedItems && selectedItems.length) {\r\n removeClass(selectedItems, className);\r\n while (temp > 0) {\r\n selectedItems[temp - 1].setAttribute('aria-selected', 'false');\r\n temp--;\r\n }\r\n }\r\n if (!isNullOrUndefined(this.mainList)) {\r\n var selectItems = this.mainList.querySelectorAll('.' + className);\r\n var temp1 = selectItems.length;\r\n if (selectItems && selectItems.length) {\r\n removeClass(selectItems, className);\r\n while (temp1 > 0) {\r\n selectItems[temp1 - 1].setAttribute('aria-selected', 'false');\r\n if (this.mode === 'CheckBox') {\r\n if (selectedItems && (selectedItems.length > (temp1 - 1))) {\r\n selectedItems[temp1 - 1].firstElementChild.setAttribute('aria-checked', 'false');\r\n removeClass([selectedItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\r\n }\r\n selectItems[temp1 - 1].firstElementChild.setAttribute('aria-checked', 'false');\r\n removeClass([selectItems[temp1 - 1].firstElementChild.lastElementChild], 'e-check');\r\n }\r\n temp1--;\r\n }\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.removeHover = function () {\r\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.hover);\r\n if (hoveredItem && hoveredItem.length) {\r\n removeClass(hoveredItem, dropDownBaseClasses.hover);\r\n }\r\n };\r\n MultiSelect.prototype.removeFocus = function () {\r\n if (this.list && this.mainList) {\r\n var hoveredItem = this.list.querySelectorAll('.' + dropDownBaseClasses.focus);\r\n var mainlist = this.mainList.querySelectorAll('.' + dropDownBaseClasses.focus);\r\n if (hoveredItem && hoveredItem.length) {\r\n removeClass(hoveredItem, dropDownBaseClasses.focus);\r\n removeClass(mainlist, dropDownBaseClasses.focus);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.addListHover = function (li) {\r\n if (this.enabled && this.isValidLI(li)) {\r\n this.removeHover();\r\n addClass([li], dropDownBaseClasses.hover);\r\n }\r\n else {\r\n if ((li !== null && li.classList.contains('e-list-group-item')) && this.enableGroupCheckBox && this.mode === 'CheckBox'\r\n && !isNullOrUndefined(this.fields.groupBy)) {\r\n this.removeHover();\r\n addClass([li], dropDownBaseClasses.hover);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.addListFocus = function (element) {\r\n if (this.enabled && this.isValidLI(element)) {\r\n this.removeFocus();\r\n addClass([element], dropDownBaseClasses.focus);\r\n }\r\n else {\r\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\r\n addClass([element], dropDownBaseClasses.focus);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.addListSelection = function (element, mainElement) {\r\n var className = this.hideSelectedItem ?\r\n HIDE_LIST :\r\n dropDownBaseClasses.selected;\r\n if (this.isValidLI(element) && !element.classList.contains(dropDownBaseClasses.hover)) {\r\n addClass([element], className);\r\n this.updateMainList(false, element.getAttribute('data-value'), mainElement);\r\n element.setAttribute('aria-selected', 'true');\r\n if (this.mode === 'CheckBox') {\r\n var ariaCheck = element.firstElementChild.getAttribute('aria-checked');\r\n if (ariaCheck === 'false' || isNullOrUndefined(ariaCheck)) {\r\n this.notify('updatelist', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: this });\r\n }\r\n }\r\n this.notify('activeList', { module: 'CheckBoxSelection', enable: this.mode === 'CheckBox', li: element, e: this });\r\n if (this.chipCollectionWrapper) {\r\n this.removeChipSelection();\r\n }\r\n attributes(this.inputElement, { 'aria-activedescendant': element.id });\r\n }\r\n };\r\n MultiSelect.prototype.updateDelimeter = function (delimChar, e) {\r\n this.updateData(delimChar, e);\r\n };\r\n MultiSelect.prototype.onMouseClick = function (e) {\r\n var _this = this;\r\n this.keyCode = null;\r\n this.scrollFocusStatus = false;\r\n var target = e.target;\r\n var li = closest(target, '.' + dropDownBaseClasses.li);\r\n var headerLi = closest(target, '.' + dropDownBaseClasses.group);\r\n if (headerLi && this.enableGroupCheckBox && this.mode === 'CheckBox' && this.fields.groupBy) {\r\n target = target.classList.contains('e-list-group-item') ? target.firstElementChild.lastElementChild\r\n : e.target;\r\n if (target.classList.contains('e-check')) {\r\n this.selectAllItem(false, e);\r\n target.classList.remove('e-check');\r\n target.classList.remove('e-stop');\r\n closest(target, '.' + 'e-list-group-item').classList.remove('e-active');\r\n target.setAttribute('aria-selected', 'false');\r\n }\r\n else {\r\n this.selectAllItem(true, e);\r\n target.classList.remove('e-stop');\r\n target.classList.add('e-check');\r\n closest(target, '.' + 'e-list-group-item').classList.add('e-active');\r\n target.setAttribute('aria-selected', 'true');\r\n }\r\n this.refreshSelection();\r\n this.checkSelectAll();\r\n }\r\n else {\r\n if (this.isValidLI(li)) {\r\n var limit = this.value && this.value.length ? this.value.length : 0;\r\n if (li.classList.contains('e-active')) {\r\n limit = limit - 1;\r\n }\r\n if (limit < this.maximumSelectionLength) {\r\n this.updateListSelection(li, e);\r\n this.checkPlaceholderSize();\r\n this.addListFocus(li);\r\n if ((this.allowCustomValue || this.allowFiltering) && this.mainList && this.listData) {\r\n if (this.mode !== 'CheckBox') {\r\n this.focusAtLastListItem(li.getAttribute('data-value'));\r\n this.refreshSelection();\r\n }\r\n }\r\n else {\r\n this.makeTextBoxEmpty();\r\n }\r\n }\r\n if (this.mode === 'CheckBox') {\r\n this.updateDelimView();\r\n if (this.value && this.value.length > 50) {\r\n setTimeout(function () {\r\n _this.updateDelimeter(_this.delimiterChar, e);\r\n }, 0);\r\n }\r\n else {\r\n this.updateDelimeter(this.delimiterChar, e);\r\n }\r\n this.refreshInputHight();\r\n }\r\n else {\r\n this.updateDelimeter(this.delimiterChar, e);\r\n }\r\n this.checkSelectAll();\r\n this.refreshPopup();\r\n if (this.hideSelectedItem) {\r\n this.focusAtFirstListItem();\r\n }\r\n if (this.closePopupOnSelect) {\r\n this.hidePopup();\r\n }\r\n else {\r\n e.preventDefault();\r\n }\r\n this.makeTextBoxEmpty();\r\n this.findGroupStart(target);\r\n if (this.mode !== 'CheckBox') {\r\n this.refreshListItems(isNullOrUndefined(li) ? null : li.textContent);\r\n }\r\n }\r\n else {\r\n e.preventDefault();\r\n }\r\n this.refreshPlaceHolder();\r\n this.deselectHeader();\r\n }\r\n };\r\n MultiSelect.prototype.findGroupStart = function (target) {\r\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\r\n var count = 0;\r\n var liChecked = 0;\r\n var liUnchecked = 0;\r\n var groupValues = void 0;\r\n if (this.itemTemplate && !target.getElementsByClassName('e-frame').length) {\r\n while (!target.getElementsByClassName('e-frame').length) {\r\n target = target.parentElement;\r\n }\r\n }\r\n if (target.classList.contains('e-frame')) {\r\n target = target.parentElement.parentElement;\r\n }\r\n groupValues = this.findGroupAttrtibutes(target, liChecked, liUnchecked, count, 0);\r\n groupValues = this.findGroupAttrtibutes(target, groupValues[0], groupValues[1], groupValues[2], 1);\r\n while (!target.classList.contains('e-list-group-item')) {\r\n if (target.classList.contains('e-list-icon')) {\r\n target = target.parentElement;\r\n }\r\n target = target.previousElementSibling;\r\n if (target == null) {\r\n break;\r\n }\r\n }\r\n this.updateCheckBox(target, groupValues[0], groupValues[1], groupValues[2]);\r\n }\r\n };\r\n MultiSelect.prototype.findGroupAttrtibutes = function (listElement, checked, unChecked, count, position) {\r\n while (!listElement.classList.contains('e-list-group-item')) {\r\n if (listElement.classList.contains('e-list-icon')) {\r\n listElement = listElement.parentElement;\r\n }\r\n if (listElement.getElementsByClassName('e-frame')[0].classList.contains('e-check') &&\r\n listElement.classList.contains('e-list-item')) {\r\n checked++;\r\n }\r\n else if (listElement.classList.contains('e-list-item')) {\r\n unChecked++;\r\n }\r\n count++;\r\n listElement = position ? listElement.nextElementSibling : listElement.previousElementSibling;\r\n if (listElement == null) {\r\n break;\r\n }\r\n }\r\n return [checked, unChecked, count];\r\n };\r\n MultiSelect.prototype.updateCheckBox = function (groupHeader, checked, unChecked, count) {\r\n if (groupHeader === null) {\r\n return;\r\n }\r\n var checkBoxElement = groupHeader.getElementsByClassName('e-frame')[0];\r\n if (count === checked) {\r\n checkBoxElement.classList.remove('e-stop');\r\n checkBoxElement.classList.add('e-check');\r\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\r\n groupHeader.setAttribute('aria-selected', 'true');\r\n }\r\n else if (count === unChecked) {\r\n checkBoxElement.classList.remove('e-check');\r\n checkBoxElement.classList.remove('e-stop');\r\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.remove('e-active');\r\n groupHeader.setAttribute('aria-selected', 'false');\r\n }\r\n else if (this.maximumSelectionLength === checked - 1) {\r\n checkBoxElement.classList.remove('e-stop');\r\n groupHeader.setAttribute('aria-selected', 'true');\r\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\r\n checkBoxElement.classList.add('e-check');\r\n }\r\n else {\r\n checkBoxElement.classList.remove('e-check');\r\n checkBoxElement.classList.add('e-stop');\r\n closest(checkBoxElement, '.' + 'e-list-group-item').classList.add('e-active');\r\n groupHeader.setAttribute('aria-selected', 'false');\r\n }\r\n };\r\n MultiSelect.prototype.deselectHeader = function () {\r\n var limit = this.value && this.value.length ? this.value.length : 0;\r\n var collection = this.list.querySelectorAll('li.e-list-group-item:not(.e-active)');\r\n if (limit < this.maximumSelectionLength) {\r\n removeClass(collection, 'e-disable');\r\n }\r\n if (limit === this.maximumSelectionLength) {\r\n addClass(collection, 'e-disable');\r\n }\r\n };\r\n MultiSelect.prototype.onMouseOver = function (e) {\r\n var currentLi = closest(e.target, '.' + dropDownBaseClasses.li);\r\n if (currentLi === null && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)\r\n && this.enableGroupCheckBox) {\r\n currentLi = closest(e.target, '.' + dropDownBaseClasses.group);\r\n }\r\n this.addListHover(currentLi);\r\n };\r\n MultiSelect.prototype.onMouseLeave = function () {\r\n this.removeHover();\r\n };\r\n MultiSelect.prototype.onListMouseDown = function (e) {\r\n e.preventDefault();\r\n this.scrollFocusStatus = true;\r\n };\r\n MultiSelect.prototype.onDocumentClick = function (e) {\r\n if (this.mode !== 'CheckBox') {\r\n var target = e.target;\r\n if (!(!isNullOrUndefined(this.popupObj) && closest(target, '[id=\"' + this.popupObj.element.id + '\"]')) &&\r\n !this.overAllWrapper.contains(e.target)) {\r\n this.scrollFocusStatus = false;\r\n }\r\n else {\r\n this.scrollFocusStatus = (Browser.isIE || Browser.info.name === 'edge') && (document.activeElement === this.inputElement);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.wireListEvents = function () {\r\n EventHandler.add(document, 'mousedown', this.onDocumentClick, this);\r\n EventHandler.add(this.list, 'mousedown', this.onListMouseDown, this);\r\n EventHandler.add(this.list, 'mouseup', this.onMouseClick, this);\r\n EventHandler.add(this.list, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.list, 'mouseout', this.onMouseLeave, this);\r\n };\r\n MultiSelect.prototype.unwireListEvents = function () {\r\n EventHandler.remove(document, 'mousedown', this.onDocumentClick);\r\n if (this.list) {\r\n EventHandler.remove(this.list, 'mousedown', this.onListMouseDown);\r\n EventHandler.remove(this.list, 'mouseup', this.onMouseClick);\r\n EventHandler.remove(this.list, 'mouseover', this.onMouseOver);\r\n EventHandler.remove(this.list, 'mouseout', this.onMouseLeave);\r\n }\r\n };\r\n MultiSelect.prototype.hideOverAllClear = function () {\r\n if (!this.value || !this.value.length || this.inputElement.value === '') {\r\n this.overAllClear.style.display = 'none';\r\n }\r\n };\r\n MultiSelect.prototype.showOverAllClear = function () {\r\n if (((this.value && this.value.length) || this.inputElement.value !== '') && this.showClearButton && this.readonly !== true) {\r\n this.overAllClear.style.display = '';\r\n }\r\n else {\r\n this.overAllClear.style.display = 'none';\r\n }\r\n };\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.focusIn = function () {\r\n if (document.activeElement !== this.inputElement && this.enabled) {\r\n this.inputElement.focus();\r\n }\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.focusOut = function () {\r\n if (document.activeElement === this.inputElement && this.enabled) {\r\n this.inputElement.blur();\r\n }\r\n };\r\n /**\r\n * Shows the spinner loader.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.showSpinner = function () {\r\n if (isNullOrUndefined(this.spinnerElement)) {\r\n var filterClear = this.filterParent && this.filterParent.querySelector('.e-clear-icon.e-icons');\r\n if (this.overAllClear.style.display !== 'none' || filterClear) {\r\n this.spinnerElement = filterClear ? filterClear : this.overAllClear;\r\n }\r\n else {\r\n this.spinnerElement = this.createElement('span', { className: CLOSEICON_CLASS + ' ' + SPINNER_CLASS });\r\n this.componentWrapper.appendChild(this.spinnerElement);\r\n }\r\n createSpinner({ target: this.spinnerElement, width: Browser.isDevice ? '16px' : '14px' }, this.createElement);\r\n addClass([this.spinnerElement], DISABLE_ICON);\r\n showSpinner(this.spinnerElement);\r\n }\r\n };\r\n /**\r\n * Hides the spinner loader.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.hideSpinner = function () {\r\n if (!isNullOrUndefined(this.spinnerElement)) {\r\n hideSpinner(this.spinnerElement);\r\n removeClass([this.spinnerElement], DISABLE_ICON);\r\n if (this.spinnerElement.classList.contains(SPINNER_CLASS)) {\r\n detach(this.spinnerElement);\r\n }\r\n else {\r\n this.spinnerElement.innerHTML = '';\r\n }\r\n this.spinnerElement = null;\r\n }\r\n };\r\n MultiSelect.prototype.updateWrapperText = function (wrapperType, wrapperData) {\r\n if (this.valueTemplate || !this.enableHtmlSanitizer) {\r\n wrapperType.innerHTML = wrapperData;\r\n }\r\n else {\r\n wrapperType.innerText = SanitizeHtmlHelper.sanitize(wrapperData);\r\n }\r\n };\r\n MultiSelect.prototype.updateDelimView = function () {\r\n if (this.delimiterWrapper) {\r\n this.hideDelimWrapper();\r\n }\r\n if (this.chipCollectionWrapper) {\r\n this.chipCollectionWrapper.style.display = 'none';\r\n }\r\n this.viewWrapper.style.display = '';\r\n this.viewWrapper.style.width = '';\r\n this.viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\r\n if (this.value && this.value.length) {\r\n var data = '';\r\n var temp = void 0;\r\n var tempData = void 0;\r\n var tempIndex = 1;\r\n var wrapperleng = void 0;\r\n var remaining = void 0;\r\n var downIconWidth = 0;\r\n var overAllContainer = void 0;\r\n this.updateWrapperText(this.viewWrapper, data);\r\n var l10nLocale = {\r\n noRecordsTemplate: 'No records found',\r\n actionFailureTemplate: 'Request failed',\r\n overflowCountTemplate: '+${count} more..',\r\n totalCountTemplate: '${count} selected'\r\n };\r\n var l10n = new L10n(this.getLocaleName(), l10nLocale, this.locale);\r\n if (l10n.getConstant('actionFailureTemplate') === '') {\r\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\r\n }\r\n if (l10n.getConstant('noRecordsTemplate') === '') {\r\n l10n = new L10n('dropdowns', l10nLocale, this.locale);\r\n }\r\n var remainContent = l10n.getConstant('overflowCountTemplate');\r\n var totalContent = l10n.getConstant('totalCountTemplate');\r\n var raminElement = this.createElement('span', {\r\n className: REMAIN_WRAPPER\r\n });\r\n var remainCompildTemp = remainContent.replace('${count}', this.value.length.toString());\r\n raminElement.innerText = remainCompildTemp;\r\n this.viewWrapper.appendChild(raminElement);\r\n this.renderReactTemplates();\r\n var remainSize = raminElement.offsetWidth;\r\n remove(raminElement);\r\n if (this.showDropDownIcon) {\r\n downIconWidth = this.dropIcon.offsetWidth + parseInt(window.getComputedStyle(this.dropIcon).marginRight, 10);\r\n }\r\n this.checkClearIconWidth();\r\n if (!isNullOrUndefined(this.value)) {\r\n for (var index = 0; !isNullOrUndefined(this.value[index]); index++) {\r\n data += (index === 0) ? '' : this.delimiterChar + ' ';\r\n temp = this.getOverflowVal(index);\r\n data += temp;\r\n temp = this.viewWrapper.innerHTML;\r\n this.updateWrapperText(this.viewWrapper, data);\r\n wrapperleng = this.viewWrapper.offsetWidth +\r\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\r\n overAllContainer = this.componentWrapper.offsetWidth -\r\n parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -\r\n parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\r\n if ((wrapperleng + downIconWidth + this.clearIconWidth) > overAllContainer) {\r\n if (tempData !== undefined && tempData !== '') {\r\n temp = tempData;\r\n index = tempIndex + 1;\r\n }\r\n this.updateWrapperText(this.viewWrapper, temp);\r\n remaining = this.value.length - index;\r\n wrapperleng = this.viewWrapper.offsetWidth +\r\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\r\n while (((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) > overAllContainer) && wrapperleng !== 0\r\n && this.viewWrapper.innerHTML !== '') {\r\n var textArr = [];\r\n this.viewWrapper.innerHTML = textArr.join(this.delimiterChar);\r\n remaining = this.value.length;\r\n wrapperleng = this.viewWrapper.offsetWidth +\r\n parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\r\n }\r\n break;\r\n }\r\n else if ((wrapperleng + remainSize + downIconWidth + this.clearIconWidth) <= overAllContainer) {\r\n tempData = data;\r\n tempIndex = index;\r\n }\r\n else if (index === 0) {\r\n tempData = '';\r\n tempIndex = -1;\r\n }\r\n }\r\n }\r\n if (remaining > 0) {\r\n var totalWidth = overAllContainer - downIconWidth - this.clearIconWidth;\r\n this.viewWrapper.appendChild(this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth));\r\n this.updateRemainWidth(this.viewWrapper, totalWidth);\r\n this.updateRemainingText(raminElement, downIconWidth, remaining, remainContent, totalContent);\r\n }\r\n }\r\n else {\r\n this.viewWrapper.innerHTML = '';\r\n this.viewWrapper.style.display = 'none';\r\n }\r\n };\r\n MultiSelect.prototype.checkClearIconWidth = function () {\r\n if (this.showClearButton) {\r\n this.clearIconWidth = this.overAllClear.offsetWidth;\r\n }\r\n };\r\n MultiSelect.prototype.updateRemainWidth = function (viewWrapper, totalWidth) {\r\n if (viewWrapper.classList.contains(TOTAL_COUNT_WRAPPER) && totalWidth < (viewWrapper.offsetWidth +\r\n parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10)\r\n + parseInt(window.getComputedStyle(viewWrapper).paddingLeft, 10))) {\r\n viewWrapper.style.width = totalWidth + 'px';\r\n }\r\n };\r\n MultiSelect.prototype.updateRemainTemplate = function (raminElement, viewWrapper, remaining, remainContent, totalContent, totalWidth) {\r\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3 && viewWrapper.firstChild.nodeValue === '') {\r\n viewWrapper.removeChild(viewWrapper.firstChild);\r\n }\r\n raminElement.innerHTML = '';\r\n var remainTemp = remainContent.replace('${count}', remaining.toString());\r\n var totalTemp = totalContent.replace('${count}', remaining.toString());\r\n raminElement.innerText = (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) ? remainTemp : totalTemp;\r\n if (viewWrapper.firstChild && viewWrapper.firstChild.nodeType === 3) {\r\n viewWrapper.classList.remove(TOTAL_COUNT_WRAPPER);\r\n }\r\n else {\r\n viewWrapper.classList.add(TOTAL_COUNT_WRAPPER);\r\n this.updateRemainWidth(viewWrapper, totalWidth);\r\n }\r\n return raminElement;\r\n };\r\n MultiSelect.prototype.updateRemainingText = function (raminElement, downIconWidth, remaining, remainContent, totalContent) {\r\n var overAllContainer = this.componentWrapper.offsetWidth -\r\n parseInt(window.getComputedStyle(this.componentWrapper).paddingLeft, 10) -\r\n parseInt(window.getComputedStyle(this.componentWrapper).paddingRight, 10);\r\n var wrapperleng = this.viewWrapper.offsetWidth + parseInt(window.getComputedStyle(this.viewWrapper).paddingRight, 10);\r\n if (((wrapperleng + downIconWidth) >= overAllContainer) && wrapperleng !== 0 && this.viewWrapper.firstChild &&\r\n this.viewWrapper.firstChild.nodeType === 3) {\r\n while (((wrapperleng + downIconWidth) > overAllContainer) && wrapperleng !== 0 && this.viewWrapper.firstChild &&\r\n this.viewWrapper.firstChild.nodeType === 3) {\r\n var textArr = this.viewWrapper.firstChild.nodeValue.split(this.delimiterChar);\r\n textArr.pop();\r\n this.viewWrapper.firstChild.nodeValue = textArr.join(this.delimiterChar);\r\n if (this.viewWrapper.firstChild.nodeValue === '') {\r\n this.viewWrapper.removeChild(this.viewWrapper.firstChild);\r\n }\r\n remaining++;\r\n wrapperleng = this.viewWrapper.offsetWidth;\r\n }\r\n var totalWidth = overAllContainer - downIconWidth;\r\n this.updateRemainTemplate(raminElement, this.viewWrapper, remaining, remainContent, totalContent, totalWidth);\r\n }\r\n };\r\n MultiSelect.prototype.getOverflowVal = function (index) {\r\n var temp;\r\n if (this.mainData && this.mainData.length) {\r\n if (this.mode === 'CheckBox') {\r\n var newTemp = this.listData;\r\n this.listData = this.mainData;\r\n temp = this.getTextByValue(this.value[index]);\r\n this.listData = newTemp;\r\n }\r\n else {\r\n temp = this.getTextByValue(this.value[index]);\r\n }\r\n }\r\n else {\r\n temp = this.value[index];\r\n }\r\n return temp;\r\n };\r\n MultiSelect.prototype.unWireEvent = function () {\r\n EventHandler.remove(this.componentWrapper, 'mousedown', this.wrapperClick);\r\n EventHandler.remove(window, 'resize', this.windowResize);\r\n EventHandler.remove(this.inputElement, 'focus', this.focusInHandler);\r\n EventHandler.remove(this.inputElement, 'keydown', this.onKeyDown);\r\n if (this.mode !== 'CheckBox') {\r\n EventHandler.remove(this.inputElement, 'input', this.onInput);\r\n }\r\n EventHandler.remove(this.inputElement, 'keyup', this.keyUp);\r\n var formElement = closest(this.inputElement, 'form');\r\n if (formElement) {\r\n EventHandler.remove(formElement, 'reset', this.resetValueHandler);\r\n }\r\n EventHandler.remove(this.inputElement, 'blur', this.onBlurHandler);\r\n EventHandler.remove(this.componentWrapper, 'mouseover', this.mouseIn);\r\n EventHandler.remove(this.componentWrapper, 'mouseout', this.mouseOut);\r\n EventHandler.remove(this.overAllClear, 'mousedown', this.clearAll);\r\n EventHandler.remove(this.inputElement, 'paste', this.pasteHandler);\r\n };\r\n MultiSelect.prototype.selectAllItem = function (state, event, list) {\r\n var li;\r\n li = this.list.querySelectorAll(state ?\r\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\r\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)');\r\n if (this.value && this.value.length && event && event.target\r\n && closest(event.target, '.e-close-hooker') && this.allowFiltering) {\r\n li = this.mainList.querySelectorAll(state ?\r\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\r\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)');\r\n }\r\n if (this.enableGroupCheckBox && this.mode === 'CheckBox' && !isNullOrUndefined(this.fields.groupBy)) {\r\n var target = (event ? event.target : null);\r\n target = (event && event.keyCode === 32) ? list : target;\r\n target = (target && target.classList.contains('e-frame')) ? target.parentElement.parentElement : target;\r\n if (target && target.classList.contains('e-list-group-item')) {\r\n var listElement = target.nextElementSibling;\r\n if (isNullOrUndefined(listElement)) {\r\n return;\r\n }\r\n while (listElement.classList.contains('e-list-item')) {\r\n if (state) {\r\n if (!listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\r\n var selectionLimit = this.value && this.value.length ? this.value.length : 0;\r\n if (listElement.classList.contains('e-active')) {\r\n selectionLimit -= 1;\r\n }\r\n if (selectionLimit < this.maximumSelectionLength) {\r\n this.updateListSelection(listElement, event);\r\n }\r\n }\r\n }\r\n else {\r\n if (listElement.firstElementChild.lastElementChild.classList.contains('e-check')) {\r\n this.updateListSelection(listElement, event);\r\n }\r\n }\r\n listElement = listElement.nextElementSibling;\r\n if (listElement == null) {\r\n break;\r\n }\r\n }\r\n if (target.classList.contains('e-list-group-item')) {\r\n var focusedElement = this.list.getElementsByClassName('e-item-focus')[0];\r\n if (focusedElement) {\r\n focusedElement.classList.remove('e-item-focus');\r\n }\r\n if (state) {\r\n target.classList.add('e-active');\r\n }\r\n else {\r\n target.classList.remove('e-active');\r\n }\r\n target.classList.add('e-item-focus');\r\n }\r\n this.textboxValueUpdate();\r\n this.checkPlaceholderSize();\r\n if (!this.changeOnBlur && event) {\r\n this.updateValueState(event, this.value, this.tempValues);\r\n }\r\n }\r\n else {\r\n this.updateValue(event, li, state);\r\n }\r\n }\r\n else {\r\n this.updateValue(event, li, state);\r\n }\r\n };\r\n MultiSelect.prototype.updateValue = function (event, li, state) {\r\n var _this = this;\r\n var length = li.length;\r\n var beforeSelectArgs = {\r\n event: event,\r\n items: state ? li : [],\r\n itemData: state ? this.listData : [],\r\n isInteracted: event ? true : false,\r\n isChecked: state,\r\n preventSelectEvent: false\r\n };\r\n this.trigger('beforeSelectAll', beforeSelectArgs);\r\n if (li && li.length) {\r\n var index_1 = 0;\r\n var count_1 = 0;\r\n if (this.enableGroupCheckBox) {\r\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : li.length;\r\n }\r\n else {\r\n count_1 = state ? this.maximumSelectionLength - (this.value ? this.value.length : 0) : this.maximumSelectionLength;\r\n }\r\n if (!beforeSelectArgs.preventSelectEvent) {\r\n while (index_1 < length && index_1 <= 50 && index_1 < count_1) {\r\n this.updateListSelection(li[index_1], event, length - index_1);\r\n if (this.enableGroupCheckBox) {\r\n this.findGroupStart(li[index_1]);\r\n }\r\n index_1++;\r\n }\r\n if (length > 50) {\r\n setTimeout(function () {\r\n while (index_1 < length && index_1 < count_1) {\r\n _this.updateListSelection(li[index_1], event, length - index_1);\r\n if (_this.enableGroupCheckBox) {\r\n _this.findGroupStart(li[index_1]);\r\n }\r\n index_1++;\r\n }\r\n _this.updatedataValueItems(event);\r\n if (!_this.changeOnBlur) {\r\n _this.updateValueState(event, _this.value, _this.tempValues);\r\n _this.isSelectAll = _this.isSelectAll ? !_this.isSelectAll : _this.isSelectAll;\r\n }\r\n _this.updateHiddenElement();\r\n }, 0);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < li.length && i < count_1; i++) {\r\n this.removeHover();\r\n var customVal = li[i].getAttribute('data-value');\r\n var value = this.getFormattedValue(customVal);\r\n var mainElement = this.mainList ? this.mainList.querySelectorAll(state ?\r\n 'li.e-list-item:not([aria-selected=\"true\"]):not(.e-reorder-hide)' :\r\n 'li.e-list-item[aria-selected=\"true\"]:not(.e-reorder-hide)')[i] : null;\r\n if (state) {\r\n this.value = !this.value ? [] : this.value;\r\n if (this.value.indexOf(value) < 0) {\r\n this.setProperties({ value: [].concat([], this.value, [value]) }, true);\r\n }\r\n this.removeFocus();\r\n this.addListSelection(li[i], mainElement);\r\n this.updateChipStatus();\r\n this.checkMaxSelection();\r\n }\r\n else {\r\n this.removeAllItems(value, event, false, li[i], mainElement);\r\n }\r\n if (this.enableGroupCheckBox) {\r\n this.findGroupStart(li[i]);\r\n }\r\n }\r\n if (!state) {\r\n var limit = this.value && this.value.length ? this.value.length : 0;\r\n if (limit < this.maximumSelectionLength) {\r\n var collection = this.list.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + ':not(.e-active)');\r\n removeClass(collection, 'e-disable');\r\n }\r\n }\r\n var args = {\r\n event: event,\r\n items: state ? li : [],\r\n itemData: state ? this.listData : [],\r\n isInteracted: event ? true : false,\r\n isChecked: state\r\n };\r\n this.trigger('selectedAll', args);\r\n }\r\n }\r\n this.updatedataValueItems(event);\r\n this.checkPlaceholderSize();\r\n if (length <= 50 && !beforeSelectArgs.preventSelectEvent) {\r\n if (!this.changeOnBlur) {\r\n this.updateValueState(event, this.value, this.tempValues);\r\n this.isSelectAll = this.isSelectAll ? !this.isSelectAll : this.isSelectAll;\r\n }\r\n this.updateHiddenElement();\r\n }\r\n };\r\n MultiSelect.prototype.updateHiddenElement = function () {\r\n var _this = this;\r\n var hiddenValue = '';\r\n var wrapperText = '';\r\n var data = '';\r\n var text = [];\r\n if (this.mode === 'CheckBox') {\r\n this.value.map(function (value, index) {\r\n hiddenValue += '';\r\n if (_this.listData) {\r\n data = _this.getTextByValue(value);\r\n }\r\n else {\r\n data = value;\r\n }\r\n wrapperText += data + _this.delimiterChar + ' ';\r\n text.push(data);\r\n });\r\n this.hiddenElement.innerHTML = hiddenValue;\r\n this.updateWrapperText(this.delimiterWrapper, wrapperText);\r\n this.delimiterWrapper.setAttribute('id', getUniqueID('delim_val'));\r\n this.inputElement.setAttribute('aria-describedby', this.delimiterWrapper.id);\r\n this.inputElement.setAttribute('aria-labelledby', this.delimiterWrapper.id);\r\n this.setProperties({ text: text.toString() }, true);\r\n this.refreshInputHight();\r\n this.refreshPlaceHolder();\r\n }\r\n };\r\n MultiSelect.prototype.updatedataValueItems = function (event) {\r\n this.deselectHeader();\r\n this.textboxValueUpdate(event);\r\n };\r\n MultiSelect.prototype.textboxValueUpdate = function (event) {\r\n var isRemoveAll = event && event.target && (closest(event.target, '.e-selectall-parent')\r\n || closest(event.target, '.e-close-hooker'));\r\n if (this.mode !== 'Box' && !this.isPopupOpen() && !(this.mode === 'CheckBox' && (this.isSelectAll || isRemoveAll))) {\r\n this.updateDelimView();\r\n }\r\n else {\r\n this.searchWrapper.classList.remove(ZERO_SIZE);\r\n }\r\n if (this.mode === 'CheckBox') {\r\n this.updateDelimView();\r\n if (!(isRemoveAll || this.isSelectAll)) {\r\n this.updateDelimeter(this.delimiterChar, event);\r\n }\r\n this.refreshInputHight();\r\n }\r\n else {\r\n this.updateDelimeter(this.delimiterChar, event);\r\n }\r\n this.refreshPlaceHolder();\r\n };\r\n MultiSelect.prototype.setZIndex = function () {\r\n if (this.popupObj) {\r\n this.popupObj.setProperties({ 'zIndex': this.zIndex });\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MultiSelect.prototype.updateDataSource = function (prop) {\r\n if (isNullOrUndefined(this.list)) {\r\n this.renderPopup();\r\n }\r\n else {\r\n this.resetList(this.dataSource);\r\n }\r\n if (this.value && this.value.length) {\r\n this.setProperties({ 'value': this.value });\r\n this.refreshSelection();\r\n }\r\n };\r\n MultiSelect.prototype.onLoadSelect = function () {\r\n this.setDynValue = true;\r\n this.renderPopup();\r\n };\r\n MultiSelect.prototype.selectAllItems = function (state, event) {\r\n var _this = this;\r\n if (isNullOrUndefined(this.list)) {\r\n this.selectAllAction = function () {\r\n if (_this.mode === 'CheckBox' && _this.showSelectAll) {\r\n var args = {\r\n module: 'CheckBoxSelection',\r\n enable: _this.mode === 'CheckBox',\r\n value: state ? 'check' : 'uncheck'\r\n };\r\n _this.notify('checkSelectAll', args);\r\n }\r\n _this.selectAllItem(state, event);\r\n _this.selectAllAction = null;\r\n };\r\n _super.prototype.render.call(this);\r\n }\r\n else {\r\n this.selectAllAction = null;\r\n if (this.mode === 'CheckBox' && this.showSelectAll) {\r\n var args = {\r\n value: state ? 'check' : 'uncheck',\r\n enable: this.mode === 'CheckBox',\r\n module: 'CheckBoxSelection'\r\n };\r\n this.notify('checkSelectAll', args);\r\n }\r\n this.selectAllItem(state, event);\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} Returns the persisted data of the component.\r\n */\r\n MultiSelect.prototype.getPersistData = function () {\r\n return this.addOnPersist(['value']);\r\n };\r\n /**\r\n * Dynamically change the value of properties.\r\n *\r\n * @param {MultiSelectModel} newProp - Returns the dynamic property value of the component.\r\n * @param {MultiSelectModel} oldProp - Returns the previous property value of the component.\r\n * @private\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (newProp.dataSource && !isNullOrUndefined(Object.keys(newProp.dataSource))\r\n || newProp.query && !isNullOrUndefined(Object.keys(newProp.query))) {\r\n this.mainList = null;\r\n this.mainData = null;\r\n this.isFirstClick = false;\r\n this.isDynamicDataChange = true;\r\n }\r\n if (this.getModuleName() === 'multiselect') {\r\n this.filterAction = false;\r\n this.setUpdateInitial(['fields', 'query', 'dataSource'], newProp);\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'query':\r\n case 'dataSource':\r\n if (this.mode === 'CheckBox' && this.showSelectAll) {\r\n if (!isNullOrUndefined(this.popupObj)) {\r\n this.popupObj.destroy();\r\n this.popupObj = null;\r\n }\r\n this.renderPopup();\r\n }\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHTMLAttribute();\r\n break;\r\n case 'showClearButton':\r\n this.updateClearButton(newProp.showClearButton);\r\n break;\r\n case 'text':\r\n this.updateVal(this.value, this.value, 'text');\r\n break;\r\n case 'value':\r\n this.updateVal(this.value, oldProp.value, 'value');\r\n this.addValidInputClass();\r\n if (!this.closePopupOnSelect && this.isPopupOpen()) {\r\n this.refreshPopup();\r\n }\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n break;\r\n case 'width':\r\n this.setWidth(newProp.width);\r\n this.popupObj.setProperties({ width: this.calcPopupWidth() });\r\n break;\r\n case 'placeholder':\r\n this.refreshPlaceHolder();\r\n break;\r\n case 'filterBarPlaceholder':\r\n if (this.allowFiltering) {\r\n this.notify('filterBarPlaceholder', { filterBarPlaceholder: newProp.filterBarPlaceholder });\r\n }\r\n break;\r\n case 'delimiterChar':\r\n if (this.mode !== 'Box') {\r\n this.updateDelimView();\r\n }\r\n this.updateData(newProp.delimiterChar);\r\n break;\r\n case 'cssClass':\r\n this.updateOldPropCssClass(oldProp.cssClass);\r\n this.updateCssClass();\r\n break;\r\n case 'enableRtl':\r\n this.enableRTL(newProp.enableRtl);\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n break;\r\n case 'readonly':\r\n this.updateReadonly(newProp.readonly);\r\n this.hidePopup();\r\n break;\r\n case 'enabled':\r\n this.hidePopup();\r\n this.enable(newProp.enabled);\r\n break;\r\n case 'showSelectAll':\r\n if (this.popupObj) {\r\n this.popupObj.destroy();\r\n this.popupObj = null;\r\n }\r\n this.renderPopup();\r\n break;\r\n case 'showDropDownIcon':\r\n this.dropDownIcon();\r\n break;\r\n case 'floatLabelType':\r\n this.setFloatLabelType();\r\n this.addValidInputClass();\r\n break;\r\n case 'enableSelectionOrder':\r\n break;\r\n case 'selectAllText':\r\n this.notify('selectAllText', false);\r\n break;\r\n case 'popupHeight':\r\n case 'headerTemplate':\r\n case 'footerTemplate':\r\n this.reInitializePoup();\r\n break;\r\n case 'allowFiltering':\r\n if (this.mode === 'CheckBox' && this.popupObj) {\r\n this.reInitializePoup();\r\n }\r\n this.updateSelectElementData(this.allowFiltering);\r\n break;\r\n default:\r\n {\r\n // eslint-disable-next-line max-len\r\n var msProps = this.getPropObject(prop, newProp, oldProp);\r\n _super.prototype.onPropertyChanged.call(this, msProps.newProperty, msProps.oldProperty);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.reInitializePoup = function () {\r\n if (this.popupObj) {\r\n this.popupObj.destroy();\r\n this.popupObj = null;\r\n }\r\n this.renderPopup();\r\n };\r\n MultiSelect.prototype.updateVal = function (newProp, oldProp, prop) {\r\n if (!this.list) {\r\n this.onLoadSelect();\r\n }\r\n else if ((this.dataSource instanceof DataManager) && (!this.listData || !(this.mainList && this.mainData))) {\r\n this.onLoadSelect();\r\n }\r\n else {\r\n if (prop === 'text') {\r\n this.initialTextUpdate();\r\n newProp = this.value;\r\n }\r\n if (isNullOrUndefined(this.value) || this.value.length === 0) {\r\n this.tempValues = oldProp;\r\n }\r\n // eslint-disable-next-line\r\n if (this.allowCustomValue && (this.mode === 'Default' || this.mode === 'Box') && this.isReact && this.inputFocus\r\n && this.isPopupOpen() && this.mainData !== this.listData) {\r\n var list = this.mainList.cloneNode ? this.mainList.cloneNode(true) : this.mainList;\r\n this.onActionComplete(list, this.mainData);\r\n }\r\n this.initialValueUpdate();\r\n if (this.mode !== 'Box' && !this.inputFocus) {\r\n this.updateDelimView();\r\n }\r\n if (!this.inputFocus) {\r\n this.refreshInputHight();\r\n }\r\n this.refreshPlaceHolder();\r\n if (this.mode !== 'CheckBox' && this.changeOnBlur) {\r\n this.updateValueState(null, newProp, oldProp);\r\n }\r\n this.checkPlaceholderSize();\r\n }\r\n if (!this.changeOnBlur) {\r\n this.updateValueState(null, newProp, oldProp);\r\n }\r\n };\r\n /**\r\n * Adds a new item to the multiselect popup list. By default, new item appends to the list as the last item,\r\n * but you can insert based on the index parameter.\r\n *\r\n * @param { Object[] } items - Specifies an array of JSON data or a JSON data.\r\n * @param { number } itemIndex - Specifies the index to place the newly added item in the popup list.\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.addItem = function (items, itemIndex) {\r\n _super.prototype.addItem.call(this, items, itemIndex);\r\n };\r\n /**\r\n * Hides the popup, if the popup in a open state.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.hidePopup = function () {\r\n var _this = this;\r\n var delay = 100;\r\n if (this.isPopupOpen()) {\r\n var animModel = {\r\n name: 'FadeOut',\r\n duration: 100,\r\n delay: delay ? delay : 0\r\n };\r\n var eventArgs = { popup: this.popupObj, cancel: false, animation: animModel };\r\n this.trigger('close', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n if (_this.fields.groupBy && _this.mode !== 'CheckBox' && _this.fixedHeaderElement) {\r\n remove(_this.fixedHeaderElement);\r\n _this.fixedHeaderElement = null;\r\n }\r\n _this.beforePopupOpen = false;\r\n _this.overAllWrapper.classList.remove(iconAnimation);\r\n _this.popupObj.hide(new Animation(eventArgs.animation));\r\n attributes(_this.inputElement, { 'aria-expanded': 'false' });\r\n if (_this.allowFiltering) {\r\n _this.notify('inputFocus', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox', value: 'clear' });\r\n }\r\n _this.popupObj.hide();\r\n removeClass([document.body, _this.popupObj.element], 'e-popup-full-page');\r\n EventHandler.remove(_this.list, 'keydown', _this.onKeyDown);\r\n }\r\n });\r\n }\r\n };\r\n /**\r\n * Shows the popup, if the popup in a closed state.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.showPopup = function () {\r\n var _this = this;\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var args = { cancel: false };\r\n this.trigger('beforeOpen', args, function (args) {\r\n if (!args.cancel) {\r\n if (!_this.ulElement) {\r\n _this.beforePopupOpen = true;\r\n _super.prototype.render.call(_this);\r\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering) {\r\n _this.notify('popupFullScreen', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox' });\r\n }\r\n return;\r\n }\r\n if (_this.mode === 'CheckBox' && Browser.isDevice && _this.allowFiltering) {\r\n _this.notify('popupFullScreen', { module: 'CheckBoxSelection', enable: _this.mode === 'CheckBox' });\r\n }\r\n var mainLiLength = _this.ulElement.querySelectorAll('li.' + 'e-list-item').length;\r\n var liLength = _this.ulElement.querySelectorAll('li.'\r\n + dropDownBaseClasses.li + '.' + HIDE_LIST).length;\r\n if (mainLiLength > 0 && (mainLiLength === liLength) && (liLength === _this.mainData.length)) {\r\n _this.beforePopupOpen = false;\r\n return;\r\n }\r\n _this.onPopupShown();\r\n }\r\n });\r\n };\r\n /**\r\n * Based on the state parameter, entire list item will be selected/deselected.\r\n * parameter\r\n * `true` - Selects entire list items.\r\n * `false` - Un Selects entire list items.\r\n *\r\n * @param {boolean} state - if it’s true then Selects the entire list items. If it’s false the Unselects entire list items.\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.selectAll = function (state) {\r\n this.isSelectAll = true;\r\n this.selectAllItems(state);\r\n };\r\n /**\r\n * Return the module name of this component.\r\n *\r\n * @private\r\n * @returns {string} Return the module name of this component.\r\n */\r\n MultiSelect.prototype.getModuleName = function () {\r\n return 'multiselect';\r\n };\r\n /**\r\n * Allows you to clear the selected values from the Multiselect component.\r\n *\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.clear = function () {\r\n var _this = this;\r\n this.selectAll(false);\r\n if (this.value && this.value.length) {\r\n setTimeout(function () {\r\n _this.setProperties({ value: null }, true);\r\n }, 0);\r\n }\r\n else {\r\n this.setProperties({ value: null }, true);\r\n }\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.render = function () {\r\n this.setDynValue = this.initStatus = false;\r\n this.isSelectAll = false;\r\n this.searchWrapper = this.createElement('span', { className: SEARCHBOX_WRAPPER + ' ' + ((this.mode === 'Box') ? BOX_ELEMENT : '') });\r\n this.viewWrapper = this.createElement('span', { className: DELIMITER_VIEW + ' ' + DELIMITER_WRAPPER, styles: 'display:none;' });\r\n this.overAllClear = this.createElement('span', {\r\n className: CLOSEICON_CLASS, styles: 'display:none;'\r\n });\r\n this.componentWrapper = this.createElement('div', { className: ELEMENT_WRAPPER });\r\n this.overAllWrapper = this.createElement('div', { className: OVER_ALL_WRAPPER });\r\n if (this.mode === 'CheckBox') {\r\n addClass([this.overAllWrapper], 'e-checkbox');\r\n }\r\n if (Browser.isDevice) {\r\n this.componentWrapper.classList.add(ELEMENT_MOBILE_WRAPPER);\r\n }\r\n this.setWidth(this.width);\r\n this.overAllWrapper.appendChild(this.componentWrapper);\r\n this.popupWrapper = this.createElement('div', { id: this.element.id + '_popup', className: POPUP_WRAPPER });\r\n if (this.mode === 'Delimiter' || this.mode === 'CheckBox') {\r\n this.delimiterWrapper = this.createElement('span', { className: DELIMITER_WRAPPER, styles: 'display:none' });\r\n this.componentWrapper.appendChild(this.delimiterWrapper);\r\n }\r\n else {\r\n this.chipCollectionWrapper = this.createElement('span', {\r\n className: CHIP_WRAPPER,\r\n styles: 'display:none'\r\n });\r\n if (this.mode === 'Default') {\r\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_default'));\r\n }\r\n else if (this.mode === 'Box') {\r\n this.chipCollectionWrapper.setAttribute('id', getUniqueID('chip_box'));\r\n }\r\n this.componentWrapper.appendChild(this.chipCollectionWrapper);\r\n }\r\n if (this.mode !== 'Box') {\r\n this.componentWrapper.appendChild(this.viewWrapper);\r\n }\r\n this.componentWrapper.appendChild(this.searchWrapper);\r\n if (this.showClearButton && !Browser.isDevice) {\r\n this.componentWrapper.appendChild(this.overAllClear);\r\n }\r\n else {\r\n this.componentWrapper.classList.add(CLOSE_ICON_HIDE);\r\n }\r\n this.dropDownIcon();\r\n this.inputElement = this.createElement('input', {\r\n className: INPUT_ELEMENT,\r\n attrs: {\r\n spellcheck: 'false',\r\n type: 'text',\r\n autocomplete: 'off',\r\n tabindex: '0'\r\n }\r\n });\r\n if (this.mode === 'Default' || this.mode === 'Box') {\r\n this.inputElement.setAttribute('aria-describedby', this.chipCollectionWrapper.id);\r\n this.inputElement.setAttribute('aria-labelledby', this.chipCollectionWrapper.id);\r\n }\r\n if (this.element.tagName !== this.getNgDirective()) {\r\n this.element.style.display = 'none';\r\n }\r\n if (this.element.tagName === this.getNgDirective()) {\r\n this.element.appendChild(this.overAllWrapper);\r\n this.searchWrapper.appendChild(this.inputElement);\r\n }\r\n else {\r\n this.element.parentElement.insertBefore(this.overAllWrapper, this.element);\r\n this.searchWrapper.appendChild(this.inputElement);\r\n this.searchWrapper.appendChild(this.element);\r\n this.element.removeAttribute('tabindex');\r\n }\r\n if (this.floatLabelType !== 'Never') {\r\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\r\n }\r\n else if (this.floatLabelType === 'Never') {\r\n this.refreshPlaceHolder();\r\n }\r\n this.addValidInputClass();\r\n this.element.style.opacity = '';\r\n var id = this.element.getAttribute('id') ? this.element.getAttribute('id') : getUniqueID('ej2_dropdownlist');\r\n this.element.id = id;\r\n this.hiddenElement = this.createElement('select', {\r\n attrs: { 'aria-hidden': 'true', 'class': HIDDEN_ELEMENT, 'tabindex': '-1', 'multiple': '' }\r\n });\r\n this.componentWrapper.appendChild(this.hiddenElement);\r\n this.validationAttribute(this.element, this.hiddenElement);\r\n if (this.mode !== 'CheckBox') {\r\n this.hideOverAllClear();\r\n }\r\n this.wireEvent();\r\n this.enable(this.enabled);\r\n this.enableRTL(this.enableRtl);\r\n this.checkInitialValue();\r\n if (this.element.hasAttribute('data-val')) {\r\n this.element.setAttribute('data-val', 'false');\r\n }\r\n this.renderComplete();\r\n };\r\n MultiSelect.prototype.checkInitialValue = function () {\r\n var _this = this;\r\n var isData = this.dataSource instanceof Array ? (this.dataSource.length > 0)\r\n : !isNullOrUndefined(this.dataSource);\r\n if (!(this.value && this.value.length) &&\r\n isNullOrUndefined(this.text) &&\r\n !isData &&\r\n this.element.tagName === 'SELECT' &&\r\n this.element.options.length > 0) {\r\n var optionsElement = this.element.options;\r\n var valueCol = [];\r\n var textCol = '';\r\n for (var index = 0, optionsLen = optionsElement.length; index < optionsLen; index++) {\r\n var opt = optionsElement[index];\r\n if (!isNullOrUndefined(opt.getAttribute('selected'))) {\r\n if (opt.getAttribute('value')) {\r\n valueCol.push(opt.getAttribute('value'));\r\n }\r\n else {\r\n textCol += (opt.text + this.delimiterChar);\r\n }\r\n }\r\n }\r\n if (valueCol.length > 0) {\r\n this.setProperties({ value: valueCol }, true);\r\n }\r\n else if (textCol !== '') {\r\n this.setProperties({ text: textCol }, true);\r\n }\r\n if (valueCol.length > 0 || textCol !== '') {\r\n this.refreshInputHight();\r\n this.refreshPlaceHolder();\r\n }\r\n }\r\n if ((this.value && this.value.length) || !isNullOrUndefined(this.text)) {\r\n if (!this.list) {\r\n _super.prototype.render.call(this);\r\n }\r\n }\r\n if (!isNullOrUndefined(this.text) && (isNullOrUndefined(this.value) || this.value.length === 0)) {\r\n this.initialTextUpdate();\r\n }\r\n if (this.value && this.value.length) {\r\n if (!(this.dataSource instanceof DataManager)) {\r\n this.initialValueUpdate();\r\n this.initialUpdate();\r\n }\r\n else {\r\n this.setInitialValue = function () {\r\n _this.initStatus = false;\r\n _this.initialValueUpdate();\r\n _this.initialUpdate();\r\n _this.setInitialValue = null;\r\n _this.initStatus = true;\r\n };\r\n }\r\n this.updateTempValue();\r\n }\r\n else {\r\n this.initialUpdate();\r\n }\r\n this.initStatus = true;\r\n this.checkAutoFocus();\r\n if (!isNullOrUndefined(this.text)) {\r\n this.element.setAttribute('data-initial-value', this.text);\r\n }\r\n };\r\n MultiSelect.prototype.checkAutoFocus = function () {\r\n if (this.element.hasAttribute('autofocus')) {\r\n this.inputElement.focus();\r\n }\r\n };\r\n MultiSelect.prototype.setFloatLabelType = function () {\r\n removeFloating(this.overAllWrapper, this.componentWrapper, this.searchWrapper, this.inputElement, this.value, this.floatLabelType, this.placeholder);\r\n if (this.floatLabelType !== 'Never') {\r\n createFloatLabel(this.overAllWrapper, this.searchWrapper, this.element, this.inputElement, this.value, this.floatLabelType, this.placeholder);\r\n }\r\n };\r\n MultiSelect.prototype.addValidInputClass = function () {\r\n if ((!isNullOrUndefined(this.value) && this.value.length) || this.floatLabelType === 'Always') {\r\n addClass([this.overAllWrapper], 'e-valid-input');\r\n }\r\n else {\r\n removeClass([this.overAllWrapper], 'e-valid-input');\r\n }\r\n };\r\n MultiSelect.prototype.dropDownIcon = function () {\r\n if (this.showDropDownIcon) {\r\n this.dropIcon = this.createElement('span', { className: dropdownIcon });\r\n this.componentWrapper.appendChild(this.dropIcon);\r\n addClass([this.componentWrapper], ['e-down-icon']);\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.dropIcon)) {\r\n this.dropIcon.parentElement.removeChild(this.dropIcon);\r\n removeClass([this.componentWrapper], ['e-down-icon']);\r\n }\r\n }\r\n };\r\n MultiSelect.prototype.initialUpdate = function () {\r\n if (this.mode !== 'Box' && !(this.setDynValue && this.mode === 'Default' && this.inputFocus)) {\r\n this.updateDelimView();\r\n }\r\n this.updateCssClass();\r\n this.updateHTMLAttribute();\r\n this.updateReadonly(this.readonly);\r\n this.refreshInputHight();\r\n this.checkPlaceholderSize();\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n MultiSelect.prototype.destroy = function () {\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n if (this.popupObj) {\r\n this.popupObj.hide();\r\n }\r\n this.notify(destroy, {});\r\n this.unwireListEvents();\r\n this.unWireEvent();\r\n this.list = null;\r\n this.popupObj = null;\r\n this.mainList = null;\r\n this.mainData = null;\r\n this.filterParent = null;\r\n this.ulElement = null;\r\n _super.prototype.destroy.call(this);\r\n var temp = ['readonly', 'aria-disabled', 'aria-placeholder', 'placeholder'];\r\n var length = temp.length;\r\n while (length > 0) {\r\n this.inputElement.removeAttribute(temp[length - 1]);\r\n length--;\r\n }\r\n this.element.removeAttribute('data-initial-value');\r\n this.element.style.display = 'block';\r\n if (this.overAllWrapper.parentElement) {\r\n if (this.overAllWrapper.parentElement.tagName === this.getNgDirective()) {\r\n remove(this.overAllWrapper);\r\n }\r\n else {\r\n this.overAllWrapper.parentElement.insertBefore(this.element, this.overAllWrapper);\r\n remove(this.overAllWrapper);\r\n }\r\n }\r\n };\r\n __decorate([\r\n Complex({ text: null, value: null, iconCss: null, groupBy: null }, FieldSettings)\r\n ], MultiSelect.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"groupTemplate\", void 0);\r\n __decorate([\r\n Property('No records found')\r\n ], MultiSelect.prototype, \"noRecordsTemplate\", void 0);\r\n __decorate([\r\n Property('Request failed')\r\n ], MultiSelect.prototype, \"actionFailureTemplate\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], MultiSelect.prototype, \"sortOrder\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property([])\r\n ], MultiSelect.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"query\", void 0);\r\n __decorate([\r\n Property('StartsWith')\r\n ], MultiSelect.prototype, \"filterType\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], MultiSelect.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"ignoreAccent\", void 0);\r\n __decorate([\r\n Property()\r\n ], MultiSelect.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"enableGroupCheckBox\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], MultiSelect.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('300px')\r\n ], MultiSelect.prototype, \"popupHeight\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], MultiSelect.prototype, \"popupWidth\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"filterBarPlaceholder\", void 0);\r\n __decorate([\r\n Property({})\r\n ], MultiSelect.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"valueTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"footerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"itemTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"allowFiltering\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"changeOnBlur\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"allowCustomValue\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], MultiSelect.prototype, \"maximumSelectionLength\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"text\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MultiSelect.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"hideSelectedItem\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"closePopupOnSelect\", void 0);\r\n __decorate([\r\n Property('Default')\r\n ], MultiSelect.prototype, \"mode\", void 0);\r\n __decorate([\r\n Property(',')\r\n ], MultiSelect.prototype, \"delimiterChar\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"ignoreCase\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"showDropDownIcon\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], MultiSelect.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"showSelectAll\", void 0);\r\n __decorate([\r\n Property('Select All')\r\n ], MultiSelect.prototype, \"selectAllText\", void 0);\r\n __decorate([\r\n Property('Unselect All')\r\n ], MultiSelect.prototype, \"unSelectAllText\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"enableSelectionOrder\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MultiSelect.prototype, \"openOnClick\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MultiSelect.prototype, \"addTagOnBlur\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"removing\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"removed\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"beforeSelectAll\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"selectedAll\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"chipSelection\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"filtering\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"tagging\", void 0);\r\n __decorate([\r\n Event()\r\n ], MultiSelect.prototype, \"customValueSelection\", void 0);\r\n MultiSelect = __decorate([\r\n NotifyPropertyChanges\r\n ], MultiSelect);\r\n return MultiSelect;\r\n}(DropDownBase));\r\nexport { MultiSelect };\r\n","/**\n * index\n */\nexport * from './src/index';\n","/**\r\n * AutoFilters class\r\n * @private\r\n */\r\nvar AutoFilters = /** @class */ (function () {\r\n function AutoFilters() {\r\n }\r\n return AutoFilters;\r\n}());\r\nexport { AutoFilters };\r\n","/**\n * BlobHelper class\n * @private\n */\nvar BlobHelper = /** @class */ (function () {\n function BlobHelper() {\n /* tslint:disable:no-any */\n this.parts = [];\n }\n /* tslint:disable:no-any */\n BlobHelper.prototype.append = function (part) {\n this.parts.push(part);\n this.blob = undefined; // Invalidate the blob\n };\n BlobHelper.prototype.getBlob = function () {\n return new Blob(this.parts, { type: 'text/plain' });\n };\n return BlobHelper;\n}());\nexport { BlobHelper };\n","/**\r\n * CellStyle class\r\n * @private\r\n */\r\nvar CellStyle = /** @class */ (function () {\r\n function CellStyle() {\r\n this.numFmtId = 0;\r\n this.backColor = 'none';\r\n this.fontName = 'Calibri';\r\n this.fontSize = 10.5;\r\n this.fontColor = '#000000';\r\n this.italic = false;\r\n this.bold = false;\r\n this.underline = false;\r\n this.wrapText = false;\r\n this.hAlign = 'general';\r\n this.vAlign = 'bottom';\r\n this.indent = 0;\r\n this.rotation = 0;\r\n this.numberFormat = 'GENERAL';\r\n this.type = 'datetime';\r\n this.borders = new Borders();\r\n this.isGlobalStyle = false;\r\n }\r\n return CellStyle;\r\n}());\r\nexport { CellStyle };\r\n/**\r\n * Font Class\r\n * @private\r\n */\r\nvar Font = /** @class */ (function () {\r\n function Font() {\r\n this.sz = 10.5;\r\n this.name = 'Calibri';\r\n this.u = false;\r\n this.b = false;\r\n this.i = false;\r\n this.color = 'FF000000';\r\n }\r\n return Font;\r\n}());\r\nexport { Font };\r\n/**\r\n * CellXfs class\r\n * @private\r\n */\r\nvar CellXfs = /** @class */ (function () {\r\n function CellXfs() {\r\n }\r\n return CellXfs;\r\n}());\r\nexport { CellXfs };\r\n/**\r\n * Alignment class\r\n * @private\r\n */\r\nvar Alignment = /** @class */ (function () {\r\n function Alignment() {\r\n }\r\n return Alignment;\r\n}());\r\nexport { Alignment };\r\n/**\r\n * CellStyleXfs class\r\n * @private\r\n */\r\nvar CellStyleXfs = /** @class */ (function () {\r\n function CellStyleXfs() {\r\n }\r\n return CellStyleXfs;\r\n}());\r\nexport { CellStyleXfs };\r\n/**\r\n * CellStyles class\r\n * @private\r\n */\r\nvar CellStyles = /** @class */ (function () {\r\n function CellStyles() {\r\n this.name = 'Normal';\r\n this.xfId = 0;\r\n }\r\n return CellStyles;\r\n}());\r\nexport { CellStyles };\r\n/**\r\n * NumFmt class\r\n * @private\r\n */\r\nvar NumFmt = /** @class */ (function () {\r\n function NumFmt(id, code) {\r\n this.numFmtId = id;\r\n this.formatCode = code;\r\n }\r\n return NumFmt;\r\n}());\r\nexport { NumFmt };\r\n/**\r\n * Border class\r\n * @private\r\n */\r\nvar Border = /** @class */ (function () {\r\n function Border(mLine, mColor) {\r\n this.lineStyle = mLine;\r\n this.color = mColor;\r\n }\r\n return Border;\r\n}());\r\nexport { Border };\r\n/**\r\n * Borders class\r\n * @private\r\n */\r\nvar Borders = /** @class */ (function () {\r\n function Borders() {\r\n this.left = new Border('none', '#FFFFFF');\r\n this.right = new Border('none', '#FFFFFF');\r\n this.top = new Border('none', '#FFFFFF');\r\n this.bottom = new Border('none', '#FFFFFF');\r\n this.all = new Border('none', '#FFFFFF');\r\n }\r\n return Borders;\r\n}());\r\nexport { Borders };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/**\r\n * Worksheet class\r\n * @private\r\n */\r\nvar Cell = /** @class */ (function () {\r\n function Cell() {\r\n }\r\n return Cell;\r\n}());\r\nexport { Cell };\r\n/**\r\n * Cells class\r\n * @private\r\n */\r\nvar Cells = /** @class */ (function (_super) {\r\n __extends(Cells, _super);\r\n function Cells() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.add = function (cell) {\r\n var inserted = false;\r\n var count = 0;\r\n for (var _i = 0, _a = _this; _i < _a.length; _i++) {\r\n var c = _a[_i];\r\n if (c.index === cell.index) {\r\n _this[count] = cell;\r\n inserted = true;\r\n }\r\n count++;\r\n }\r\n if (!inserted) {\r\n _this.push(cell);\r\n }\r\n };\r\n return _this;\r\n }\r\n return Cells;\r\n}(Array));\r\nexport { Cells };\r\n","/**\n * Column class\n * @private\n */\nvar Column = /** @class */ (function () {\n function Column() {\n }\n return Column;\n}());\nexport { Column };\n","import { ValueFormatter } from './value-formatter';\r\n/**\r\n * CsvHelper class\r\n * @private\r\n */\r\nvar CsvHelper = /** @class */ (function () {\r\n /* tslint:disable:no-any */\r\n function CsvHelper(json, separator) {\r\n this.csvStr = '';\r\n if (separator === null || separator === undefined) {\r\n this.separator = ',';\r\n }\r\n else {\r\n this.separator = separator;\r\n }\r\n this.formatter = new ValueFormatter();\r\n this.isMicrosoftBrowser = !(!navigator.msSaveBlob);\r\n if (json.isServerRendered !== null && json.isServerRendered !== undefined) {\r\n this.isServerRendered = json.isServerRendered;\r\n }\r\n if (json.styles !== null && json.styles !== undefined) {\r\n this.globalStyles = new Map();\r\n for (var i = 0; i < json.styles.length; i++) {\r\n if (json.styles[i].name !== undefined && json.styles[i].numberFormat !== undefined) {\r\n this.globalStyles.set(json.styles[i].name, json.styles[i].numberFormat);\r\n }\r\n }\r\n }\r\n // Parses Worksheets data to DOM. \r\n if (json.worksheets !== null && json.worksheets !== undefined) {\r\n this.parseWorksheet(json.worksheets[0]);\r\n }\r\n //this.csvStr = 'a1,a2,a3\\nb1,b2,b3';\r\n }\r\n CsvHelper.prototype.parseWorksheet = function (json) {\r\n //Rows\r\n if (json.rows !== null && json.rows !== undefined) {\r\n this.parseRows(json.rows);\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n CsvHelper.prototype.parseRows = function (rows) {\r\n var count = 1;\r\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\r\n var row = rows_1[_i];\r\n //Row index\r\n if (row.index !== null && row.index !== undefined) {\r\n while (count < row.index) {\r\n this.csvStr += '\\n';\r\n count++;\r\n }\r\n this.parseRow(row);\r\n }\r\n else {\r\n throw Error('Row index is missing.');\r\n }\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n CsvHelper.prototype.parseRow = function (row) {\r\n if (row.cells !== null && row.cells !== undefined) {\r\n var count = 1;\r\n for (var _i = 0, _a = row.cells; _i < _a.length; _i++) {\r\n var cell = _a[_i];\r\n //cell index\r\n if (cell.index !== null && cell.index !== undefined) {\r\n while (count < cell.index) {\r\n this.csvStr += this.separator;\r\n count++;\r\n }\r\n this.parseCell(cell);\r\n }\r\n else {\r\n throw Error('Cell index is missing.');\r\n }\r\n }\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n CsvHelper.prototype.parseCell = function (cell) {\r\n var csv = this.csvStr;\r\n if (cell.value !== undefined) {\r\n if (cell.value instanceof Date) {\r\n if (cell.style !== undefined && cell.style.numberFormat !== undefined) {\r\n /* tslint:disable-next-line:max-line-length */\r\n try {\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', skeleton: cell.style.numberFormat }, this.isServerRendered));\r\n }\r\n catch (error) {\r\n /* tslint:disable-next-line:max-line-length */\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', format: cell.style.numberFormat }, this.isServerRendered));\r\n }\r\n }\r\n else if (cell.style !== undefined && cell.style.name !== undefined && this.globalStyles.has(cell.style.name)) {\r\n /* tslint:disable-next-line:max-line-length */\r\n try {\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', skeleton: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\r\n }\r\n catch (error) {\r\n /* tslint:disable-next-line:max-line-length */\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { type: 'dateTime', format: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\r\n }\r\n }\r\n else {\r\n csv += cell.value;\r\n }\r\n }\r\n else if (typeof (cell.value) === 'boolean') {\r\n csv += cell.value ? 'TRUE' : 'FALSE';\r\n }\r\n else if (typeof (cell.value) === 'number') {\r\n if (cell.style !== undefined && cell.style.numberFormat !== undefined) {\r\n /* tslint:disable-next-line:max-line-length */\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { format: cell.style.numberFormat }, this.isServerRendered));\r\n }\r\n else if (cell.style !== undefined && cell.style.name !== undefined && this.globalStyles.has(cell.style.name)) {\r\n /* tslint:disable-next-line:max-line-length */\r\n csv += this.parseCellValue(this.formatter.displayText(cell.value, { format: this.globalStyles.get(cell.style.name) }, this.isServerRendered));\r\n }\r\n else {\r\n csv += cell.value;\r\n }\r\n }\r\n else {\r\n csv += this.parseCellValue(cell.value);\r\n }\r\n }\r\n this.csvStr = csv;\r\n };\r\n CsvHelper.prototype.parseCellValue = function (value) {\r\n var val = '';\r\n var length = value.length;\r\n for (var start = 0; start < length; start++) {\r\n if (value[start] === '\\\"') {\r\n val += value[start].replace('\\\"', '\\\"\\\"');\r\n }\r\n else {\r\n val += value[start];\r\n }\r\n }\r\n value = val;\r\n if (value.indexOf(this.separator) !== -1 || value.indexOf('\\n') !== -1) {\r\n return value = '\\\"' + value + '\\\"';\r\n }\r\n else {\r\n return value;\r\n }\r\n };\r\n /**\r\n * Saves the file with specified name and sends the file to client browser\r\n * @param {string} fileName- file name to save.\r\n * @param {Blob} buffer- the content to write in file\r\n */\r\n CsvHelper.prototype.save = function (fileName) {\r\n this.buffer = new Blob(['\\ufeff' + this.csvStr], { type: 'text/csv;charset=UTF-8' });\r\n if (this.isMicrosoftBrowser) {\r\n navigator.msSaveBlob(this.buffer, fileName);\r\n }\r\n else {\r\n var dataUrl_1 = window.URL.createObjectURL(this.buffer);\r\n var dwlLink = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\r\n dwlLink.download = fileName;\r\n dwlLink.href = dataUrl_1;\r\n var event_1 = document.createEvent('MouseEvent');\r\n event_1.initEvent('click', true, true);\r\n dwlLink.dispatchEvent(event_1);\r\n setTimeout(function () {\r\n window.URL.revokeObjectURL(dataUrl_1);\r\n });\r\n }\r\n };\r\n CsvHelper.prototype.saveAsBlob = function () {\r\n return new Blob(['\\ufeff' + this.csvStr], { type: 'text/csv;charset=UTF-8' });\r\n };\r\n return CsvHelper;\r\n}());\r\nexport { CsvHelper };\r\n","/**\n * Image class\n * @private\n */\nvar Image = /** @class */ (function () {\n function Image() {\n }\n return Image;\n}());\nexport { Image };\n","/**\n * index class\n */\nexport * from './cell-style';\nexport * from './cell';\nexport * from './column';\nexport * from './row';\nexport * from './workbook';\nexport * from './worksheet';\nexport * from './worksheets';\nexport * from './csv-helper';\nexport * from './value-formatter';\nexport * from './blob-helper';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/**\r\n * Row class\r\n * @private\r\n */\r\nvar Row = /** @class */ (function () {\r\n function Row() {\r\n }\r\n return Row;\r\n}());\r\nexport { Row };\r\n/**\r\n * Rows class\r\n * @private\r\n */\r\nvar Rows = /** @class */ (function (_super) {\r\n __extends(Rows, _super);\r\n function Rows() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.add = function (row) {\r\n _this.push(row);\r\n };\r\n return _this;\r\n }\r\n return Rows;\r\n}(Array));\r\nexport { Rows };\r\n","import { isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Internationalization } from '@syncfusion/ej2-base';\n// import { IValueFormatter } from '../base/interface';\n/**\n * ValueFormatter class to globalize the value.\n * @private\n */\nvar ValueFormatter = /** @class */ (function () {\n function ValueFormatter(cultureName) {\n this.intl = new Internationalization();\n // if (!isNullOrUndefined(cultureName)) {\n // this.intl.culture = cultureName;\n // }\n }\n ValueFormatter.prototype.getFormatFunction = function (format, isServerRendered) {\n if (format.type) {\n if (isServerRendered) {\n format.isServerRendered = true;\n }\n return this.intl.getDateFormat(format);\n }\n else {\n return this.intl.getNumberFormat(format);\n }\n };\n // public getParserFunction(format: NumberFormatOptions | DateFormatOptions): Function {\n // if ((format).type) {\n // return this.intl.getDateParser(format);\n // } else {\n // return this.intl.getNumberParser(format);\n // }\n // }\n // public fromView(value: string, format: Function, type?: string): string | number | Date {\n // if (type === 'date' || type === 'datetime' || type === 'number') {\n // return format(value);\n // } else {\n // return value;\n // }\n // }\n ValueFormatter.prototype.toView = function (value, format) {\n var result = value;\n if (!isNullOrUndefined(format) && !isNullOrUndefined(value)) {\n result = format(value);\n }\n return result;\n };\n // public setCulture(cultureName: string): void {\n // if (!isNullOrUndefined(cultureName)) {\n // setCulture(cultureName);\n // }\n // }\n /* tslint:disable:no-any */\n ValueFormatter.prototype.displayText = function (value, format, isServerRendered) {\n return this.toView(value, this.getFormatFunction(format, isServerRendered));\n };\n return ValueFormatter;\n}());\nexport { ValueFormatter };\n","import { Worksheets } from './worksheets';\r\nimport { Worksheet, FreezePane, MergeCell, MergeCells, HyperLink, Grouping } from './worksheet';\r\nimport { CellStyle, Font, Borders, CellXfs, Alignment, NumFmt, CellStyleXfs, CellStyles } from './cell-style';\r\nimport { Column } from './column';\r\nimport { Row, Rows } from './row';\r\nimport { Image } from './image';\r\nimport { Cell, Cells } from './cell';\r\nimport { ZipArchive, ZipArchiveItem } from '@syncfusion/ej2-compression';\r\nimport { CsvHelper } from './csv-helper';\r\nimport { Internationalization, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { BlobHelper } from './blob-helper';\r\nimport { AutoFilters } from './auto-filters';\r\n/**\r\n * Workbook class\r\n */\r\nvar Workbook = /** @class */ (function () {\r\n /* tslint:disable:no-any */\r\n function Workbook(json, saveType, culture, currencyString, separator) {\r\n this.sharedStringCount = 0;\r\n this.unitsProportions = [\r\n 96 / 75.0,\r\n 96 / 300.0,\r\n 96,\r\n 96 / 25.4,\r\n 96 / 2.54,\r\n 1,\r\n 96 / 72.0,\r\n 96 / 72.0 / 12700,\r\n ];\r\n /* tslint:disable:no-any */\r\n this.hyperlinkStyle = { fontColor: '#0000FF', underline: true };\r\n if (culture !== undefined) {\r\n this.culture = culture;\r\n }\r\n else {\r\n this.culture = 'en-US';\r\n }\r\n if (currencyString !== undefined) {\r\n this.currency = currencyString;\r\n }\r\n else {\r\n this.currency = 'USD';\r\n }\r\n this.intl = new Internationalization(this.culture);\r\n this.mSaveType = saveType;\r\n if (saveType === 'xlsx') {\r\n this.mArchive = new ZipArchive();\r\n this.sharedString = [];\r\n this.mFonts = [];\r\n this.mBorders = [];\r\n this.mStyles = [];\r\n this.printTitles = new Map();\r\n this.cellStyles = new Map();\r\n this.mNumFmt = new Map();\r\n this.mFills = new Map();\r\n this.mStyles.push(new CellStyle());\r\n this.mFonts.push(new Font());\r\n /* tslint:disable */\r\n this.cellStyles.set('Normal', new CellStyles());\r\n /* tslint:enable */\r\n this.mCellXfs = [];\r\n this.mCellStyleXfs = [];\r\n this.drawingCount = 0;\r\n this.imageCount = 0;\r\n if (json.styles !== null && json.styles !== undefined) {\r\n /* tslint:disable-next-line:no-any */\r\n this.globalStyles = new Map();\r\n for (var i = 0; i < json.styles.length; i++) {\r\n if (json.styles[i].name !== undefined) {\r\n if (!this.cellStyles.has(json.styles[i].name)) {\r\n var cellStyle = new CellStyle();\r\n cellStyle.isGlobalStyle = true;\r\n this.parserCellStyle(json.styles[i], cellStyle, 'none');\r\n var cellStylesIn = new CellStyles();\r\n cellStylesIn.name = cellStyle.name;\r\n cellStylesIn.xfId = (cellStyle.index - 1);\r\n this.cellStyles.set(cellStylesIn.name, cellStylesIn);\r\n /* tslint:disable-next-line:no-any */\r\n var tFormat = {};\r\n if (json.styles[i].numberFormat !== undefined) {\r\n tFormat.format = json.styles[i].numberFormat;\r\n }\r\n if (json.styles[i].type !== undefined) {\r\n tFormat.type = json.styles[i].type;\r\n }\r\n else {\r\n tFormat.type = 'datetime';\r\n }\r\n if (tFormat.format !== undefined) {\r\n this.globalStyles.set(json.styles[i].name, tFormat);\r\n }\r\n }\r\n else {\r\n throw Error('Style name ' + json.styles[i].name + ' is already existed');\r\n }\r\n }\r\n }\r\n }\r\n // Parses Worksheets data to DOM. \r\n if (json.worksheets !== null && json.worksheets !== undefined) {\r\n this.parserWorksheets(json.worksheets);\r\n }\r\n else {\r\n throw Error('Worksheet is expected.');\r\n }\r\n // Parses the BuiltInProperties data to DOM. \r\n if (json.builtInProperties !== null && json.builtInProperties !== undefined) {\r\n this.builtInProperties = new BuiltInProperties();\r\n this.parserBuiltInProperties(json.builtInProperties, this.builtInProperties);\r\n }\r\n }\r\n else {\r\n this.csvHelper = new CsvHelper(json, separator);\r\n }\r\n }\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserBuiltInProperties = function (jsonBuiltInProperties, builtInProperties) {\r\n //Author\r\n if (jsonBuiltInProperties.author !== null && jsonBuiltInProperties.author !== undefined) {\r\n builtInProperties.author = jsonBuiltInProperties.author;\r\n }\r\n //Comments\r\n if (jsonBuiltInProperties.comments !== null && jsonBuiltInProperties.comments !== undefined) {\r\n builtInProperties.comments = jsonBuiltInProperties.comments;\r\n }\r\n //Category\r\n if (jsonBuiltInProperties.category !== null && jsonBuiltInProperties.category !== undefined) {\r\n builtInProperties.category = jsonBuiltInProperties.category;\r\n }\r\n //Company\r\n if (jsonBuiltInProperties.company !== null && jsonBuiltInProperties.company !== undefined) {\r\n builtInProperties.company = jsonBuiltInProperties.company;\r\n }\r\n //Manager\r\n if (jsonBuiltInProperties.manager !== null && jsonBuiltInProperties.manager !== undefined) {\r\n builtInProperties.manager = jsonBuiltInProperties.manager;\r\n }\r\n //Subject\r\n if (jsonBuiltInProperties.subject !== null && jsonBuiltInProperties.subject !== undefined) {\r\n builtInProperties.subject = jsonBuiltInProperties.subject;\r\n }\r\n //Title\r\n if (jsonBuiltInProperties.title !== null && jsonBuiltInProperties.title !== undefined) {\r\n builtInProperties.title = jsonBuiltInProperties.title;\r\n }\r\n //Creation date\r\n if (jsonBuiltInProperties.createdDate !== null && jsonBuiltInProperties.createdDate !== undefined) {\r\n builtInProperties.createdDate = jsonBuiltInProperties.createdDate;\r\n }\r\n //Modified date\r\n if (jsonBuiltInProperties.modifiedDate !== null && jsonBuiltInProperties.modifiedDate !== undefined) {\r\n builtInProperties.modifiedDate = jsonBuiltInProperties.modifiedDate;\r\n }\r\n //Tags\r\n if (jsonBuiltInProperties.tags !== null && jsonBuiltInProperties.tags !== undefined) {\r\n builtInProperties.tags = jsonBuiltInProperties.tags;\r\n }\r\n //Status\r\n if (jsonBuiltInProperties.status !== null && jsonBuiltInProperties.status !== undefined) {\r\n builtInProperties.status = jsonBuiltInProperties.status;\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserWorksheets = function (json) {\r\n this.worksheets = new Worksheets();\r\n var length = json.length;\r\n for (var i = 0; i < length; i++) {\r\n var jsonSheet = json[i];\r\n var sheet = new Worksheet();\r\n this.mergeCells = new MergeCells();\r\n this.mergedCellsStyle = new Map();\r\n this.mHyperLinks = [];\r\n //Name\r\n if (jsonSheet.name !== null && jsonSheet.name !== undefined) {\r\n sheet.name = jsonSheet.name;\r\n }\r\n else {\r\n sheet.name = 'Sheet' + (i + 1).toString();\r\n }\r\n if (jsonSheet.enableRtl !== null && jsonSheet.enableRtl !== undefined) {\r\n sheet.enableRtl = jsonSheet.enableRtl;\r\n }\r\n sheet.index = (i + 1);\r\n //Columns\r\n if (jsonSheet.columns !== null && jsonSheet.columns !== undefined) {\r\n this.parserColumns(jsonSheet.columns, sheet);\r\n }\r\n //Rows\r\n if (jsonSheet.rows !== null && jsonSheet.rows !== undefined) {\r\n this.parserRows(jsonSheet.rows, sheet);\r\n }\r\n //showGridLines\r\n if (jsonSheet.showGridLines !== null && jsonSheet.showGridLines !== undefined) {\r\n sheet.showGridLines = jsonSheet.showGridLines;\r\n }\r\n //FreezePanes\r\n if (jsonSheet.freeze !== null && jsonSheet.freeze !== undefined) {\r\n this.parserFreezePanes(jsonSheet.freeze, sheet);\r\n }\r\n //Print Title\r\n if (jsonSheet.printTitle !== null && jsonSheet.printTitle !== undefined) {\r\n this.parserPrintTitle(jsonSheet.printTitle, sheet);\r\n }\r\n if (jsonSheet.pageSetup !== undefined) {\r\n if (jsonSheet.pageSetup.isSummaryRowBelow !== undefined) {\r\n sheet.isSummaryRowBelow = jsonSheet.pageSetup.isSummaryRowBelow;\r\n }\r\n }\r\n if (jsonSheet.images !== undefined) {\r\n this.parserImages(jsonSheet.images, sheet);\r\n }\r\n if (jsonSheet.autoFilters !== null && jsonSheet.autoFilters !== undefined) {\r\n this.parseFilters(jsonSheet.autoFilters, sheet);\r\n }\r\n sheet.index = (i + 1);\r\n sheet.mergeCells = this.mergeCells;\r\n sheet.hyperLinks = this.mHyperLinks;\r\n this.worksheets.push(sheet);\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.mergeOptions = function (fromJson, toJson) {\r\n /* tslint:disable:no-any */\r\n var result = {};\r\n this.applyProperties(fromJson, result);\r\n this.applyProperties(toJson, result);\r\n return result;\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.applyProperties = function (sourceJson, destJson) {\r\n var keys = Object.keys(sourceJson);\r\n for (var index = 0; index < keys.length; index++) {\r\n if (keys[index] !== 'name') {\r\n destJson[keys[index]] = sourceJson[keys[index]];\r\n }\r\n }\r\n };\r\n Workbook.prototype.getCellName = function (row, column) {\r\n return this.getColumnName(column) + row.toString();\r\n };\r\n Workbook.prototype.getColumnName = function (col) {\r\n col--;\r\n var strColumnName = '';\r\n do {\r\n var iCurrentDigit = col % 26;\r\n col = col / 26 - 1;\r\n strColumnName = String.fromCharCode(65 + iCurrentDigit) + strColumnName;\r\n } while (col >= 0);\r\n return strColumnName;\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserPrintTitle = function (json, sheet) {\r\n var printTitleName = '';\r\n var titleRowName;\r\n if (json.fromRow !== null && json.fromRow !== undefined) {\r\n var fromRow = json.fromRow;\r\n var toRow = void 0;\r\n if (json.toRow !== null && json.toRow !== undefined) {\r\n toRow = json.toRow;\r\n }\r\n else {\r\n toRow = json.fromRow;\r\n }\r\n titleRowName = '$' + fromRow + ':$' + toRow;\r\n }\r\n var titleColName;\r\n if (json.fromColumn !== null && json.fromColumn !== undefined) {\r\n var fromColumn = json.fromColumn;\r\n var toColumn = void 0;\r\n if (json.toColumn !== null && json.toColumn !== undefined) {\r\n toColumn = json.toColumn;\r\n }\r\n else {\r\n toColumn = json.fromColumn;\r\n }\r\n titleColName = '$' + this.getColumnName(fromColumn) + ':$' + this.getColumnName(toColumn);\r\n }\r\n if (titleRowName !== undefined) {\r\n printTitleName += (sheet.name + '!' + titleRowName);\r\n }\r\n if (titleColName !== undefined && titleRowName !== undefined) {\r\n printTitleName += ',' + (sheet.name + '!' + titleColName);\r\n }\r\n else if (titleColName !== undefined) {\r\n printTitleName += (sheet.name + '!' + titleColName);\r\n }\r\n if (printTitleName !== '') {\r\n this.printTitles.set(sheet.index - 1, printTitleName);\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserFreezePanes = function (json, sheet) {\r\n sheet.freezePanes = new FreezePane();\r\n if (json.row !== null && json.row !== undefined) {\r\n sheet.freezePanes.row = json.row;\r\n }\r\n else {\r\n sheet.freezePanes.row = 0;\r\n }\r\n if (json.column !== null && json.column !== undefined) {\r\n sheet.freezePanes.column = json.column;\r\n }\r\n else {\r\n sheet.freezePanes.column = 0;\r\n }\r\n sheet.freezePanes.leftCell = this.getCellName(sheet.freezePanes.row + 1, sheet.freezePanes.column + 1);\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserColumns = function (json, sheet) {\r\n var columnsLength = json.length;\r\n sheet.columns = [];\r\n for (var column = 0; column < columnsLength; column++) {\r\n var col = new Column();\r\n if (json[column].index !== null && json[column].index !== undefined) {\r\n col.index = json[column].index;\r\n }\r\n else {\r\n throw Error('Column index is missing.');\r\n }\r\n if (json[column].width !== null && json[column].width !== undefined) {\r\n col.width = json[column].width;\r\n }\r\n sheet.columns.push(col);\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserRows = function (json, sheet) {\r\n var rowsLength = json.length;\r\n sheet.rows = new Rows();\r\n var rowId = 0;\r\n for (var r = 0; r < rowsLength; r++) {\r\n var row = this.parserRow(json[r], rowId);\r\n rowId = row.index;\r\n sheet.rows.add(row);\r\n }\r\n this.insertMergedCellsStyle(sheet);\r\n };\r\n Workbook.prototype.insertMergedCellsStyle = function (sheet) {\r\n var _this = this;\r\n if (this.mergeCells.length > 0) {\r\n this.mergedCellsStyle.forEach(function (value, key) {\r\n var row = sheet.rows.filter(function (item) {\r\n return item.index === value.y;\r\n })[0];\r\n if (!isNullOrUndefined(row)) {\r\n var cell = row.cells.filter(function (item) {\r\n return item.index === value.x;\r\n })[0];\r\n if (!isNullOrUndefined(cell)) {\r\n cell.styleIndex = value.styleIndex;\r\n }\r\n else {\r\n var cells = row.cells.filter(function (item) {\r\n return item.index <= value.x;\r\n });\r\n var insertIndex = 0;\r\n if (cells.length > 0) {\r\n insertIndex = row.cells.indexOf(cells[cells.length - 1]) + 1;\r\n }\r\n row.cells.splice(insertIndex, 0, _this.createCell(value, key));\r\n }\r\n }\r\n else {\r\n var rows = sheet.rows.filter(function (item) {\r\n return item.index <= value.y;\r\n });\r\n var rowToInsert = new Row();\r\n rowToInsert.index = value.y;\r\n rowToInsert.cells = new Cells();\r\n rowToInsert.cells.add(_this.createCell(value, key));\r\n var insertIndex = 0;\r\n if (rows.length > 0) {\r\n insertIndex = sheet.rows.indexOf(rows[rows.length - 1]) + 1;\r\n }\r\n sheet.rows.splice(insertIndex, 0, rowToInsert);\r\n }\r\n });\r\n }\r\n };\r\n Workbook.prototype.createCell = function (value, key) {\r\n var cellToInsert = new Cell();\r\n cellToInsert.refName = key;\r\n cellToInsert.index = value.x;\r\n cellToInsert.cellStyle = new CellStyle();\r\n cellToInsert.styleIndex = value.styleIndex;\r\n return cellToInsert;\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserRow = function (json, rowIndex) {\r\n var row = new Row();\r\n //Row Height\r\n if (json.height !== null && json.height !== undefined) {\r\n row.height = json.height;\r\n }\r\n //Row index\r\n if (json.index !== null && json.index !== undefined) {\r\n row.index = json.index;\r\n }\r\n else {\r\n throw Error('Row index is missing.');\r\n }\r\n if (json.grouping !== null && json.grouping !== undefined) {\r\n this.parseGrouping(json.grouping, row);\r\n }\r\n this.parseCells(json.cells, row);\r\n return row;\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parseGrouping = function (json, row) {\r\n row.grouping = new Grouping();\r\n if (json.outlineLevel !== undefined) {\r\n row.grouping.outlineLevel = json.outlineLevel;\r\n }\r\n if (json.isCollapsed !== undefined) {\r\n row.grouping.isCollapsed = json.isCollapsed;\r\n }\r\n if (json.isHidden !== undefined) {\r\n row.grouping.isHidden = json.isHidden;\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parseCells = function (json, row) {\r\n row.cells = new Cells();\r\n var cellsLength = json !== undefined ? json.length : 0;\r\n var spanMin = 1;\r\n var spanMax = 1;\r\n var curCellIndex = 0;\r\n for (var cellId = 0; cellId < cellsLength; cellId++) {\r\n /* tslint:disable:no-any */\r\n var jsonCell = json[cellId];\r\n var cell = new Cell();\r\n //cell index\r\n if (jsonCell.index !== null && jsonCell.index !== undefined) {\r\n cell.index = jsonCell.index;\r\n }\r\n else {\r\n throw Error('Cell index is missing.');\r\n }\r\n if (cell.index < spanMin) {\r\n spanMin = cell.index;\r\n }\r\n else if (cell.index > spanMax) {\r\n spanMax = cell.index;\r\n }\r\n //Update the Cell name\r\n cell.refName = this.getCellName(row.index, cell.index);\r\n //Row span\r\n if (jsonCell.rowSpan !== null && jsonCell.rowSpan !== undefined) {\r\n cell.rowSpan = jsonCell.rowSpan - 1;\r\n }\r\n else {\r\n cell.rowSpan = 0;\r\n }\r\n //Column span\r\n if (jsonCell.colSpan !== null && jsonCell.colSpan !== undefined) {\r\n cell.colSpan = jsonCell.colSpan - 1;\r\n }\r\n else {\r\n cell.colSpan = 0;\r\n }\r\n //Hyperlink\r\n if (jsonCell.hyperlink !== null && jsonCell.hyperlink !== undefined) {\r\n var hyperLink = new HyperLink();\r\n if (jsonCell.hyperlink.target !== undefined) {\r\n hyperLink.target = jsonCell.hyperlink.target;\r\n if (jsonCell.hyperlink.displayText !== undefined) {\r\n cell.value = jsonCell.hyperlink.displayText;\r\n }\r\n else {\r\n cell.value = jsonCell.hyperlink.target;\r\n }\r\n cell.type = this.getCellValueType(cell.value);\r\n hyperLink.ref = cell.refName;\r\n hyperLink.rId = (this.mHyperLinks.length + 1);\r\n this.mHyperLinks.push(hyperLink);\r\n cell.cellStyle = new CellStyle();\r\n /* tslint:disable-next-line:max-line-length */\r\n this.parserCellStyle((jsonCell.style !== undefined ? this.mergeOptions(jsonCell.style, this.hyperlinkStyle) : this.hyperlinkStyle), cell.cellStyle, 'string');\r\n cell.styleIndex = cell.cellStyle.index;\r\n }\r\n }\r\n // formulas\r\n if (jsonCell.formula !== null && jsonCell.formula !== undefined) {\r\n cell.formula = jsonCell.formula;\r\n cell.type = 'formula';\r\n }\r\n //Cell value\r\n if (jsonCell.value !== null && jsonCell.value !== undefined) {\r\n if (cell.formula !== undefined) {\r\n cell.value = 0;\r\n }\r\n else {\r\n cell.value = jsonCell.value;\r\n cell.type = this.getCellValueType(cell.value);\r\n }\r\n }\r\n if (jsonCell.style !== null && jsonCell.style !== undefined && cell.styleIndex === undefined) {\r\n cell.cellStyle = new CellStyle();\r\n if (cell.value instanceof Date) {\r\n this.parserCellStyle(jsonCell.style, cell.cellStyle, cell.type, 14);\r\n }\r\n else {\r\n this.parserCellStyle(jsonCell.style, cell.cellStyle, cell.type);\r\n }\r\n cell.styleIndex = cell.cellStyle.index;\r\n }\r\n else if (cell.value instanceof Date) {\r\n cell.cellStyle = new CellStyle();\r\n this.parserCellStyle({}, cell.cellStyle, cell.type, 14);\r\n cell.styleIndex = cell.cellStyle.index;\r\n }\r\n this.parseCellType(cell);\r\n this.mergeCells = this.processMergeCells(cell, row.index, this.mergeCells);\r\n row.cells.add(cell);\r\n curCellIndex = (cell.index + 1);\r\n }\r\n row.spans = (spanMin) + ':' + (spanMax);\r\n };\r\n Workbook.prototype.GetColors = function () {\r\n var colors;\r\n colors = new Map();\r\n /* tslint:disable */\r\n colors.set('WHITE', 'FFFFFFFF');\r\n /* tslint:disable */\r\n colors.set('SILVER', 'FFC0C0C0');\r\n /* tslint:disable */\r\n colors.set('GRAY', 'FF808080');\r\n /* tslint:disable */\r\n colors.set('BLACK', 'FF000000');\r\n /* tslint:disable */\r\n colors.set('RED', 'FFFF0000');\r\n /* tslint:disable */\r\n colors.set('MAROON', 'FF800000');\r\n /* tslint:disable */\r\n colors.set('YELLOW', 'FFFFFF00');\r\n /* tslint:disable */\r\n colors.set('OLIVE', 'FF808000');\r\n /* tslint:disable */\r\n colors.set('LIME', 'FF00FF00');\r\n /* tslint:disable */\r\n colors.set('GREEN', 'FF008000');\r\n /* tslint:disable */\r\n colors.set('AQUA', 'FF00FFFF');\r\n /* tslint:disable */\r\n colors.set('TEAL', 'FF008080');\r\n /* tslint:disable */\r\n colors.set('BLUE', 'FF0000FF');\r\n /* tslint:disable */\r\n colors.set('NAVY', 'FF000080');\r\n /* tslint:disable */\r\n colors.set('FUCHSIA', 'FFFF00FF');\r\n /* tslint:disable */\r\n colors.set('PURPLE', 'FF800080');\r\n return colors;\r\n };\r\n Workbook.prototype.processColor = function (colorVal) {\r\n if (colorVal.indexOf('#') === 0) {\r\n return colorVal.replace('#', 'FF');\r\n }\r\n colorVal = colorVal.toUpperCase();\r\n this.rgbColors = this.GetColors();\r\n if (this.rgbColors.has(colorVal)) {\r\n colorVal = this.rgbColors.get(colorVal);\r\n }\r\n else {\r\n colorVal = 'FF000000';\r\n }\r\n return colorVal;\r\n };\r\n Workbook.prototype.processCellValue = function (value, cell) {\r\n var cellValue = value;\r\n if (value.indexOf(\"\") !== -1 ||\r\n value.indexOf(\"\") !== -1 || value.indexOf(\"\") !== -1) {\r\n var processedVal = '';\r\n var startindex = value.indexOf('<', 0);\r\n var endIndex = value.indexOf('>', startindex + 1);\r\n if (startindex >= 0 && endIndex >= 0) {\r\n if (startindex !== 0) {\r\n processedVal += '' + this.processString(value.substring(0, startindex)) + '';\r\n }\r\n while (startindex >= 0 && endIndex >= 0) {\r\n endIndex = value.indexOf('>', startindex + 1);\r\n if (endIndex >= 0) {\r\n var subString = value.substring(startindex + 1, endIndex);\r\n startindex = value.indexOf('<', endIndex + 1);\r\n if (startindex < 0) {\r\n startindex = cellValue.length;\r\n }\r\n var text = cellValue.substring(endIndex + 1, startindex);\r\n if (text.length !== 0) {\r\n var subSplit = subString.split(' ');\r\n if (subSplit.length > 0) {\r\n processedVal += '';\r\n }\r\n if (subSplit.length > 1) {\r\n for (var _i = 0, subSplit_1 = subSplit; _i < subSplit_1.length; _i++) {\r\n var element = subSplit_1[_i];\r\n var start = element.trim().substring(0, 5);\r\n switch (start) {\r\n case 'size=':\r\n processedVal += '';\r\n break;\r\n case 'face=':\r\n processedVal += '';\r\n break;\r\n case 'color':\r\n processedVal += '';\r\n break;\r\n case 'href=':\r\n var hyperLink = new HyperLink();\r\n hyperLink.target = element.substring(6, element.length - 1).trim();\r\n hyperLink.ref = cell.refName;\r\n hyperLink.rId = (this.mHyperLinks.length + 1);\r\n this.mHyperLinks.push(hyperLink);\r\n processedVal += '';\r\n break;\r\n }\r\n }\r\n }\r\n else if (subSplit.length === 1) {\r\n var style = subSplit[0].trim();\r\n switch (style) {\r\n case 'b':\r\n processedVal += '';\r\n break;\r\n case 'i':\r\n processedVal += '';\r\n break;\r\n case 'u':\r\n processedVal += '';\r\n break;\r\n }\r\n }\r\n processedVal += '' + this.processString(text) + '';\r\n }\r\n }\r\n }\r\n if (processedVal === '') {\r\n return cellValue;\r\n }\r\n return processedVal;\r\n }\r\n else {\r\n return cellValue;\r\n }\r\n }\r\n else {\r\n return cellValue;\r\n }\r\n };\r\n Workbook.prototype.applyGlobalStyle = function (json, cellStyle) {\r\n var index = 0;\r\n if (this.cellStyles.has(json.name)) {\r\n cellStyle.index = this.mStyles.filter(function (a) { return (a.name === json.name); })[0].index;\r\n cellStyle.name = json.name;\r\n }\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserCellStyle = function (json, cellStyle, cellType, defStyleIndex) {\r\n //name\r\n if (json.name !== null && json.name !== undefined) {\r\n if (cellStyle.isGlobalStyle) {\r\n cellStyle.name = json.name;\r\n }\r\n else {\r\n this.applyGlobalStyle(json, cellStyle);\r\n return;\r\n }\r\n }\r\n //background color\r\n if (json.backColor !== null && json.backColor !== undefined) {\r\n cellStyle.backColor = json.backColor;\r\n }\r\n //borders\r\n //leftBorder\r\n cellStyle.borders = new Borders();\r\n //AllBorder\r\n if (json.borders !== null && json.borders !== undefined) {\r\n this.parserBorder(json.borders, cellStyle.borders.all);\r\n }\r\n //leftborder\r\n if (json.leftBorder !== null && json.leftBorder !== undefined) {\r\n this.parserBorder(json.leftBorder, cellStyle.borders.left);\r\n }\r\n //rightBorder\r\n if (json.rightBorder !== null && json.rightBorder !== undefined) {\r\n this.parserBorder(json.rightBorder, cellStyle.borders.right);\r\n }\r\n //topBorder\r\n if (json.topBorder !== null && json.topBorder !== undefined) {\r\n this.parserBorder(json.topBorder, cellStyle.borders.top);\r\n }\r\n //bottomBorder\r\n if (json.bottomBorder !== null && json.bottomBorder !== undefined) {\r\n this.parserBorder(json.bottomBorder, cellStyle.borders.bottom);\r\n }\r\n //fontName\r\n if (json.fontName !== null && json.fontName !== undefined) {\r\n cellStyle.fontName = json.fontName;\r\n }\r\n //fontSize\r\n if (json.fontSize !== null && json.fontSize !== undefined) {\r\n cellStyle.fontSize = json.fontSize;\r\n }\r\n //fontColor\r\n if (json.fontColor !== null && json.fontColor !== undefined) {\r\n cellStyle.fontColor = json.fontColor;\r\n }\r\n //italic\r\n if (json.italic !== null && json.italic !== undefined) {\r\n cellStyle.italic = json.italic;\r\n }\r\n //bold\r\n if (json.bold !== null && json.bold !== undefined) {\r\n cellStyle.bold = json.bold;\r\n }\r\n //hAlign\r\n if (json.hAlign !== null && json.hAlign !== undefined) {\r\n cellStyle.hAlign = json.hAlign.toLowerCase();\r\n }\r\n //indent\r\n if (json.indent !== null && json.indent !== undefined) {\r\n cellStyle.indent = json.indent;\r\n if (!(cellStyle.hAlign === 'left' || cellStyle.hAlign === 'right')) {\r\n cellStyle.hAlign = 'left';\r\n }\r\n }\r\n if (json.rotation !== null && json.rotation !== undefined) {\r\n cellStyle.rotation = json.rotation;\r\n }\r\n //vAlign\r\n if (json.vAlign !== null && json.vAlign !== undefined) {\r\n cellStyle.vAlign = json.vAlign.toLowerCase();\r\n }\r\n //underline\r\n if (json.underline !== null && json.underline !== undefined) {\r\n cellStyle.underline = json.underline;\r\n }\r\n //wrapText\r\n if (json.wrapText !== null && json.wrapText !== undefined) {\r\n cellStyle.wrapText = json.wrapText;\r\n }\r\n //numberFormat\r\n if (json.numberFormat !== null && json.numberFormat !== undefined) {\r\n if (json.type !== null && json.type !== undefined) {\r\n cellStyle.numberFormat = this.getNumberFormat(json.numberFormat, json.type);\r\n }\r\n else {\r\n cellStyle.numberFormat = this.getNumberFormat(json.numberFormat, cellType);\r\n }\r\n }\r\n else if (defStyleIndex !== undefined) {\r\n cellStyle.numFmtId = 14;\r\n cellStyle.numberFormat = 'GENERAL';\r\n }\r\n else {\r\n cellStyle.numberFormat = 'GENERAL';\r\n }\r\n cellStyle.index = this.processCellStyle(cellStyle);\r\n };\r\n Workbook.prototype.switchNumberFormat = function (numberFormat, type) {\r\n var format = this.getNumberFormat(numberFormat, type);\r\n if (format !== numberFormat) {\r\n var numFmt = this.mNumFmt.get(numberFormat);\r\n if (numFmt !== undefined) {\r\n numFmt.formatCode = format;\r\n if (this.mNumFmt.has(format)) {\r\n for (var _i = 0, _a = this.mCellStyleXfs; _i < _a.length; _i++) {\r\n var cellStyleXfs = _a[_i];\r\n if (cellStyleXfs.numFmtId === numFmt.numFmtId) {\r\n cellStyleXfs.numFmtId = this.mNumFmt.get(format).numFmtId;\r\n }\r\n }\r\n for (var _b = 0, _c = this.mCellXfs; _b < _c.length; _b++) {\r\n var cellXfs = _c[_b];\r\n if (cellXfs.numFmtId === numFmt.numFmtId) {\r\n cellXfs.numFmtId = this.mNumFmt.get(format).numFmtId;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Workbook.prototype.getNumberFormat = function (numberFormat, type) {\r\n var returnFormat;\r\n switch (type) {\r\n case 'number':\r\n try {\r\n returnFormat = this.intl.getNumberPattern({ format: numberFormat, currency: this.currency, useGrouping: true }, true);\r\n }\r\n catch (error) {\r\n returnFormat = numberFormat;\r\n }\r\n break;\r\n case 'datetime':\r\n try {\r\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'dateTime' }, true);\r\n }\r\n catch (error) {\r\n try {\r\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'dateTime' }, true);\r\n }\r\n catch (error) {\r\n returnFormat = numberFormat;\r\n }\r\n }\r\n break;\r\n case 'date':\r\n try {\r\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'date' }, true);\r\n }\r\n catch (error) {\r\n try {\r\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'date' }, true);\r\n }\r\n catch (error) {\r\n returnFormat = numberFormat;\r\n }\r\n }\r\n break;\r\n case 'time':\r\n try {\r\n returnFormat = this.intl.getDatePattern({ skeleton: numberFormat, type: 'time' }, true);\r\n }\r\n catch (error) {\r\n try {\r\n returnFormat = this.intl.getDatePattern({ format: numberFormat, type: 'time' }, true);\r\n }\r\n catch (error) {\r\n returnFormat = numberFormat;\r\n }\r\n }\r\n break;\r\n default:\r\n returnFormat = numberFormat;\r\n break;\r\n }\r\n return returnFormat;\r\n };\r\n /* tslint:disable:no-any */\r\n Workbook.prototype.parserBorder = function (json, border) {\r\n if (json.color !== null && json.color !== undefined) {\r\n border.color = json.color;\r\n }\r\n else {\r\n border.color = '#000000';\r\n }\r\n if (json.lineStyle !== null && json.lineStyle !== undefined) {\r\n border.lineStyle = json.lineStyle;\r\n }\r\n else {\r\n border.lineStyle = 'thin';\r\n }\r\n };\r\n Workbook.prototype.processCellStyle = function (style) {\r\n if (style.isGlobalStyle) {\r\n this.processNumFormatId(style);\r\n this.mStyles.push(style);\r\n return this.mStyles.length;\r\n }\r\n else {\r\n var compareResult = this.compareStyle(style);\r\n if (!compareResult.result) {\r\n this.processNumFormatId(style);\r\n this.mStyles.push(style);\r\n return this.mStyles.length;\r\n }\r\n else {\r\n //Return the index of the already existing style.\r\n return compareResult.index;\r\n }\r\n }\r\n };\r\n Workbook.prototype.processNumFormatId = function (style) {\r\n if (style.numberFormat !== 'GENERAL' && !this.mNumFmt.has(style.numberFormat)) {\r\n var id = this.mNumFmt.size + 164;\r\n this.mNumFmt.set(style.numberFormat, new NumFmt(id, style.numberFormat));\r\n }\r\n };\r\n Workbook.prototype.isNewFont = function (toCompareStyle) {\r\n var result = false;\r\n var index = 0;\r\n for (var _i = 0, _a = this.mFonts; _i < _a.length; _i++) {\r\n var font = _a[_i];\r\n index++;\r\n var fontColor = undefined;\r\n if (toCompareStyle.fontColor !== undefined) {\r\n fontColor = ('FF' + toCompareStyle.fontColor.replace('#', ''));\r\n }\r\n result = font.color === fontColor &&\r\n font.b === toCompareStyle.bold &&\r\n font.i === toCompareStyle.italic &&\r\n font.u === toCompareStyle.underline &&\r\n font.name === toCompareStyle.fontName &&\r\n font.sz === toCompareStyle.fontSize;\r\n if (result) {\r\n break;\r\n }\r\n }\r\n index = index - 1;\r\n return { index: index, result: result };\r\n };\r\n Workbook.prototype.isNewBorder = function (toCompareStyle) {\r\n var bStyle = new CellStyle();\r\n if (this.isAllBorder(toCompareStyle.borders)) {\r\n return (bStyle.borders.all.color === toCompareStyle.borders.all.color &&\r\n bStyle.borders.all.lineStyle === toCompareStyle.borders.all.lineStyle);\r\n }\r\n else {\r\n return (bStyle.borders.left.color === toCompareStyle.borders.left.color &&\r\n bStyle.borders.left.lineStyle === toCompareStyle.borders.left.lineStyle &&\r\n bStyle.borders.right.color === toCompareStyle.borders.right.color &&\r\n bStyle.borders.right.lineStyle === toCompareStyle.borders.right.lineStyle &&\r\n bStyle.borders.top.color === toCompareStyle.borders.top.color &&\r\n bStyle.borders.top.lineStyle === toCompareStyle.borders.top.lineStyle &&\r\n bStyle.borders.bottom.color === toCompareStyle.borders.bottom.color &&\r\n bStyle.borders.bottom.lineStyle === toCompareStyle.borders.bottom.lineStyle);\r\n }\r\n };\r\n Workbook.prototype.isAllBorder = function (toCompareBorder) {\r\n var allBorderStyle = new CellStyle();\r\n return allBorderStyle.borders.all.color !== toCompareBorder.all.color &&\r\n allBorderStyle.borders.all.lineStyle !== toCompareBorder.all.lineStyle;\r\n };\r\n Workbook.prototype.compareStyle = function (toCompareStyle) {\r\n var result = true;\r\n var index = 0;\r\n var globalStyleIndex = 0;\r\n for (var _i = 0, _a = this.mStyles; _i < _a.length; _i++) {\r\n var baseStyle = _a[_i];\r\n result = baseStyle.isGlobalStyle ? false : (baseStyle.backColor === toCompareStyle.backColor &&\r\n baseStyle.bold === toCompareStyle.bold &&\r\n baseStyle.numFmtId === toCompareStyle.numFmtId &&\r\n baseStyle.numberFormat === toCompareStyle.numberFormat &&\r\n baseStyle.type === toCompareStyle.type &&\r\n baseStyle.fontColor === toCompareStyle.fontColor &&\r\n baseStyle.fontName === toCompareStyle.fontName &&\r\n baseStyle.fontSize === toCompareStyle.fontSize &&\r\n baseStyle.hAlign === toCompareStyle.hAlign &&\r\n baseStyle.italic === toCompareStyle.italic &&\r\n baseStyle.underline === toCompareStyle.underline &&\r\n baseStyle.vAlign === toCompareStyle.vAlign &&\r\n baseStyle.indent === toCompareStyle.indent &&\r\n baseStyle.rotation === toCompareStyle.rotation &&\r\n baseStyle.wrapText === toCompareStyle.wrapText &&\r\n (baseStyle.borders.all.color === toCompareStyle.borders.all.color &&\r\n baseStyle.borders.all.lineStyle === toCompareStyle.borders.all.lineStyle) &&\r\n (baseStyle.borders.left.color === toCompareStyle.borders.left.color &&\r\n baseStyle.borders.left.lineStyle === toCompareStyle.borders.left.lineStyle &&\r\n baseStyle.borders.right.color === toCompareStyle.borders.right.color &&\r\n baseStyle.borders.right.lineStyle === toCompareStyle.borders.right.lineStyle &&\r\n baseStyle.borders.top.color === toCompareStyle.borders.top.color &&\r\n baseStyle.borders.top.lineStyle === toCompareStyle.borders.top.lineStyle &&\r\n baseStyle.borders.bottom.color === toCompareStyle.borders.bottom.color &&\r\n baseStyle.borders.bottom.lineStyle === toCompareStyle.borders.bottom.lineStyle));\r\n if (result) {\r\n index = baseStyle.index;\r\n break;\r\n }\r\n }\r\n return { index: index, result: result };\r\n };\r\n Workbook.prototype.contains = function (array, item) {\r\n var index = array.indexOf(item);\r\n return index > -1 && index < array.length;\r\n };\r\n Workbook.prototype.getCellValueType = function (value) {\r\n if (value instanceof Date) {\r\n return 'datetime';\r\n }\r\n else if (typeof (value) === 'boolean') {\r\n return 'boolean';\r\n }\r\n else if (typeof (value) === 'number') {\r\n return 'number';\r\n }\r\n else {\r\n return 'string';\r\n }\r\n };\r\n Workbook.prototype.parseCellType = function (cell) {\r\n var type = cell.type;\r\n var saveType;\r\n var value = cell.value;\r\n switch (type) {\r\n case 'datetime':\r\n value = this.toOADate(value);\r\n if (cell.cellStyle !== undefined && cell.cellStyle.name !== undefined) {\r\n if (this.globalStyles.has(cell.cellStyle.name)) {\r\n var value_1 = this.globalStyles.get(cell.cellStyle.name);\r\n this.switchNumberFormat(value_1.format, value_1.type);\r\n }\r\n }\r\n saveType = 'n';\r\n break;\r\n //TODO: Update the number format index and style\r\n case 'boolean':\r\n value = value ? 1 : 0;\r\n saveType = 'b';\r\n break;\r\n case 'number':\r\n saveType = 'n';\r\n if (cell.cellStyle !== undefined && cell.cellStyle.name !== undefined) {\r\n if (this.globalStyles.has(cell.cellStyle.name)) {\r\n this.switchNumberFormat(this.globalStyles.get(cell.cellStyle.name).format, 'number');\r\n }\r\n }\r\n break;\r\n case 'string':\r\n this.sharedStringCount++;\r\n saveType = 's';\r\n var sstvalue = this.processCellValue(value, cell);\r\n if (!this.contains(this.sharedString, sstvalue)) {\r\n this.sharedString.push(sstvalue);\r\n }\r\n value = this.sharedString.indexOf(sstvalue);\r\n break;\r\n default:\r\n break;\r\n }\r\n cell.saveType = saveType;\r\n cell.value = value;\r\n };\r\n Workbook.prototype.parserImages = function (json, sheet) {\r\n var imagesLength = json.length;\r\n sheet.images = [];\r\n var imageId = 0;\r\n for (var p = 0; p < imagesLength; p++) {\r\n var image = this.parserImage(json[p]);\r\n sheet.images.push(image);\r\n }\r\n };\r\n Workbook.prototype.parseFilters = function (json, sheet) {\r\n sheet.autoFilters = new AutoFilters();\r\n if (json.row !== null && json.row !== undefined)\r\n sheet.autoFilters.row = json.row;\r\n else\r\n throw new Error('Argument Null Exception: row null or empty');\r\n if (json.lastRow !== null && json.lastRow !== undefined)\r\n sheet.autoFilters.lastRow = json.lastRow;\r\n else\r\n throw new Error('Argument Null Exception: lastRow cannot be null or empty');\r\n if (json.column !== null && json.column !== undefined)\r\n sheet.autoFilters.column = json.column;\r\n else\r\n throw new Error('Argument Null Exception: column cannot be null or empty');\r\n if (json.lastColumn !== null && json.row !== undefined)\r\n sheet.autoFilters.lastColumn = json.lastColumn;\r\n else\r\n throw new Error('Argument Null Exception: lastColumn cannot be null or empty');\r\n };\r\n Workbook.prototype.parserImage = function (json) {\r\n var image = new Image();\r\n if (json.image !== null && json.image !== undefined) {\r\n image.image = json.image;\r\n }\r\n if (json.row !== null && json.row !== undefined) {\r\n image.row = json.row;\r\n }\r\n if (json.column !== null && json.column !== undefined) {\r\n image.column = json.column;\r\n }\r\n if (json.lastRow !== null && json.lastRow !== undefined) {\r\n image.lastRow = json.lastRow;\r\n }\r\n if (json.lastColumn !== null && json.lastColumn !== undefined) {\r\n image.lastColumn = json.lastColumn;\r\n }\r\n if (json.width !== null && json.width !== undefined) {\r\n image.width = json.width;\r\n }\r\n if (json.height !== null && json.height !== undefined) {\r\n image.height = json.height;\r\n }\r\n if (json.horizontalFlip !== null && json.horizontalFlip !== undefined) {\r\n image.horizontalFlip = json.horizontalFlip;\r\n }\r\n if (json.verticalFlip !== null && json.verticalFlip !== undefined) {\r\n image.verticalFlip = json.verticalFlip;\r\n }\r\n if (json.rotation !== null && json.rotation !== undefined) {\r\n image.rotation = json.rotation;\r\n }\r\n return image;\r\n };\r\n Workbook.prototype.saveAsBlob = function (blobSaveType) {\r\n var _this = this;\r\n switch (blobSaveType) {\r\n case 'text/csv':\r\n return new Promise(function (resolve, reject) {\r\n var obj = {};\r\n obj.blobData = _this.csvHelper.saveAsBlob();\r\n resolve(obj);\r\n });\r\n default:\r\n return new Promise(function (resolve, reject) {\r\n _this.saveInternal();\r\n _this.mArchive.saveAsBlob().then(function (blob) {\r\n var obj = {};\r\n obj.blobData = new Blob([blob], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });\r\n resolve(obj);\r\n });\r\n });\r\n }\r\n };\r\n Workbook.prototype.save = function (fileName, proxyUrl) {\r\n var _this = this;\r\n if (fileName === null || fileName === undefined || fileName === '') {\r\n throw new Error('Argument Null Exception: fileName cannot be null or empty');\r\n }\r\n var xlsxMatch = fileName.match('.xlsx$');\r\n var csvMatch = fileName.match('.csv$');\r\n if (xlsxMatch !== null && xlsxMatch[0] === ('.' + this.mSaveType)) {\r\n this.saveInternal();\r\n this.mArchive.save(fileName).then(function () {\r\n _this.mArchive.destroy();\r\n });\r\n }\r\n else if (csvMatch !== null && csvMatch[0] === ('.' + this.mSaveType)) {\r\n this.csvHelper.save(fileName);\r\n }\r\n else {\r\n throw Error('Save type and file extension is different.');\r\n }\r\n };\r\n Workbook.prototype.saveInternal = function () {\r\n this.saveWorkbook();\r\n this.saveWorksheets();\r\n this.saveSharedString();\r\n this.saveStyles();\r\n this.saveApp(this.builtInProperties);\r\n this.saveCore(this.builtInProperties);\r\n this.saveContentType();\r\n this.saveTopLevelRelation();\r\n this.saveWorkbookRelation();\r\n };\r\n Workbook.prototype.saveWorkbook = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var workbookTemp = '';\r\n var sheets = '';\r\n var length = this.worksheets.length;\r\n for (var i = 0; i < length; i++) {\r\n /* tslint:disable-next-line:max-line-length */\r\n var sheetName = this.worksheets[i].name;\r\n sheetName = sheetName.replace(\"&\", \"&\");\r\n sheetName = sheetName.replace(\"<\", \"<\");\r\n sheetName = sheetName.replace(\">\", \">\");\r\n sheetName = sheetName.replace(\"\\\"\", \""\");\r\n sheets += '';\r\n }\r\n sheets += '';\r\n workbookTemp += sheets;\r\n if (this.printTitles.size > 0) {\r\n var printTitle_1 = '';\r\n this.printTitles.forEach(function (value, key) {\r\n printTitle_1 += '' + value + '';\r\n });\r\n printTitle_1 += '';\r\n workbookTemp += printTitle_1;\r\n }\r\n this.addToArchive(workbookTemp + '', 'xl/workbook.xml');\r\n };\r\n Workbook.prototype.saveWorksheets = function () {\r\n var length = this.worksheets.length;\r\n for (var i = 0; i < length; i++) {\r\n this.saveWorksheet(this.worksheets[i], i);\r\n }\r\n };\r\n Workbook.prototype.saveWorksheet = function (sheet, index) {\r\n var sheetBlob = new BlobHelper();\r\n /* tslint:disable-next-line:max-line-length */\r\n var sheetString = '';\r\n if (!sheet.isSummaryRowBelow) {\r\n sheetString += ('' + '' + '' + '');\r\n }\r\n else {\r\n sheetString += ('');\r\n }\r\n sheetString += this.saveSheetView(sheet);\r\n if (sheet.columns !== undefined) {\r\n var colString = '';\r\n for (var _i = 0, _a = sheet.columns; _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n /* tslint:disable-next-line:max-line-length */\r\n if (column.width !== undefined) {\r\n colString += '';\r\n }\r\n else {\r\n colString += '';\r\n }\r\n }\r\n sheetString += (colString + '');\r\n }\r\n sheetString += ('');\r\n sheetBlob.append(sheetString);\r\n sheetString = '';\r\n if (sheet.rows !== undefined) {\r\n for (var _b = 0, _c = sheet.rows; _b < _c.length; _b++) {\r\n var row = _c[_b];\r\n var rowString = '');\r\n for (var _d = 0, _e = row.cells; _d < _e.length; _d++) {\r\n var cell = _e[_d];\r\n if (cell !== undefined && (cell.value !== undefined || cell.cellStyle !== undefined)) {\r\n rowString += ('');\r\n if (cell.formula !== undefined) {\r\n rowString += ('' + cell.formula + '');\r\n }\r\n if (cell.value !== undefined) {\r\n rowString += ('' + cell.value + '');\r\n }\r\n else {\r\n rowString += ('');\r\n }\r\n }\r\n }\r\n rowString += ('');\r\n sheetBlob.append(rowString);\r\n }\r\n }\r\n sheetString += ('');\r\n /* tslint:disable-next-line:max-line-length */\r\n if (sheet.autoFilters !== null && sheet.autoFilters !== undefined)\r\n sheetString += ('');\r\n if (sheet.mergeCells.length > 0) {\r\n sheetString += ('');\r\n for (var _f = 0, _g = sheet.mergeCells; _f < _g.length; _f++) {\r\n var mCell = _g[_f];\r\n sheetString += ('');\r\n }\r\n sheetString += ('');\r\n }\r\n if (sheet.hyperLinks.length > 0) {\r\n sheetString += ('');\r\n for (var _h = 0, _j = sheet.hyperLinks; _h < _j.length; _h++) {\r\n var hLink = _j[_h];\r\n sheetString += ('');\r\n }\r\n sheetString += ('');\r\n }\r\n /* tslint:disable-next-line:max-line-length */\r\n sheetString += ('');\r\n if (sheet.images != undefined && sheet.images.length > 0) {\r\n this.drawingCount++;\r\n this.saveDrawings(sheet, sheet.index);\r\n sheetString += '';\r\n }\r\n this.addToArchive(this.saveSheetRelations(sheet), ('xl/worksheets/_rels/sheet' + sheet.index + '.xml.rels'));\r\n sheetBlob.append(sheetString + '');\r\n this.addToArchive(sheetBlob.getBlob(), 'xl/worksheets' + '/sheet' + (index + 1) + '.xml');\r\n };\r\n Workbook.prototype.saveDrawings = function (sheet, index) {\r\n var drawings = new BlobHelper();\r\n /* tslint:disable-next-line:max-line-length */\r\n var sheetDrawingString = '';\r\n if (sheet.images !== undefined) {\r\n var imgId = 0;\r\n for (var _i = 0, _a = sheet.images; _i < _a.length; _i++) {\r\n var pic = _a[_i];\r\n if (pic.height !== undefined && pic.width !== undefined) {\r\n this.updatelastRowOffset(sheet, pic);\r\n this.updatelastColumnOffSet(sheet, pic);\r\n }\r\n else if (pic.lastRow !== undefined && pic.lastColumn !== undefined) {\r\n pic.lastRowOffset = 0;\r\n pic.lastColOffset = 0;\r\n }\r\n imgId++;\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n //col\r\n sheetDrawingString += pic.column - 1;\r\n sheetDrawingString += '';\r\n //colOff\r\n sheetDrawingString += 0;\r\n sheetDrawingString += '';\r\n //row\r\n sheetDrawingString += pic.row - 1;\r\n sheetDrawingString += '';\r\n //rowOff\r\n sheetDrawingString += 0;\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n //col\r\n sheetDrawingString += pic.lastColumn;\r\n sheetDrawingString += '';\r\n //colOff\r\n sheetDrawingString += pic.lastColOffset;\r\n sheetDrawingString += '';\r\n //row\r\n sheetDrawingString += pic.lastRow;\r\n sheetDrawingString += '';\r\n //rowOff\r\n sheetDrawingString += pic.lastRowOffset;\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n sheetDrawingString += ' ';\r\n sheetDrawingString += ' ';\r\n sheetDrawingString += '';\r\n /* tslint:disable-next-line:max-line-length */\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n sheetDrawingString += '= -3600) {\r\n sheetDrawingString += ' rot=\"' + (pic.rotation * 60000) + '\"';\r\n }\r\n if (pic.verticalFlip != undefined && pic.verticalFlip != false) {\r\n sheetDrawingString += ' flipV=\"1\"';\r\n }\r\n if (pic.horizontalFlip != undefined && pic.horizontalFlip != false) {\r\n sheetDrawingString += ' flipH=\"1\"';\r\n }\r\n sheetDrawingString += '/>';\r\n sheetDrawingString += '';\r\n sheetDrawingString += '';\r\n var imageFile = new BlobHelper();\r\n var imageData = this.convertBase64toImage(pic.image);\r\n this.imageCount += 1;\r\n this.addToArchive(imageData, 'xl/media/image' + this.imageCount + '.png');\r\n }\r\n drawings.append(sheetDrawingString);\r\n drawings.append('');\r\n this.saveDrawingRelations(sheet);\r\n this.addToArchive(drawings.getBlob(), 'xl/drawings/drawing' + this.drawingCount + '.xml');\r\n }\r\n };\r\n Workbook.prototype.updatelastRowOffset = function (sheet, picture) {\r\n var iCurHeight = picture.height;\r\n var iCurRow = picture.row;\r\n var iCurOffset = 0;\r\n while (iCurHeight >= 0) {\r\n var iRowHeight = 0;\r\n if (sheet.rows !== undefined && sheet.rows[iCurRow - 1] !== undefined)\r\n iRowHeight = this.convertToPixels(sheet.rows[iCurRow - 1].height === undefined ? 15 : sheet.rows[iCurRow - 1].height);\r\n else\r\n iRowHeight = this.convertToPixels(15);\r\n var iSpaceInCell = iRowHeight - (iCurOffset * iRowHeight / 256);\r\n if (iSpaceInCell > iCurHeight) {\r\n picture.lastRow = iCurRow;\r\n picture.lastRowOffset = iCurOffset + (iCurHeight * 256 / iRowHeight);\r\n var rowHiddenHeight = 0;\r\n if (sheet.rows !== undefined && sheet.rows[iCurRow - 1] !== undefined)\r\n rowHiddenHeight = this.convertToPixels(sheet.rows[iCurRow - 1].height === undefined ? 15 : sheet.rows[iCurRow - 1].height);\r\n else\r\n rowHiddenHeight = this.convertToPixels(15);\r\n picture.lastRowOffset = (rowHiddenHeight * picture.lastRowOffset) / 256;\r\n picture.lastRowOffset = Math.round(picture.lastRowOffset / this.unitsProportions[7]);\r\n break;\r\n }\r\n else {\r\n iCurHeight -= iSpaceInCell;\r\n iCurRow++;\r\n iCurOffset = 0;\r\n }\r\n }\r\n };\r\n Workbook.prototype.updatelastColumnOffSet = function (sheet, picture) {\r\n var iCurWidth = picture.width;\r\n var iCurCol = picture.column;\r\n var iCurOffset = 0;\r\n while (iCurWidth >= 0) {\r\n var iColWidth = 0;\r\n if (sheet.columns !== undefined && sheet.columns[iCurCol - 1] !== undefined)\r\n iColWidth = this.ColumnWidthToPixels(sheet.columns[iCurCol - 1].width === undefined ? 8.43 : sheet.columns[iCurCol - 1].width);\r\n else\r\n iColWidth = this.ColumnWidthToPixels(8.43);\r\n var iSpaceInCell = iColWidth - (iCurOffset * iColWidth / 1024);\r\n if (iSpaceInCell > iCurWidth) {\r\n picture.lastColumn = iCurCol;\r\n picture.lastColOffset = iCurOffset + (iCurWidth * 1024 / iColWidth);\r\n var colHiddenWidth = 0;\r\n if (sheet.columns !== undefined && sheet.columns[iCurCol - 1] !== undefined)\r\n colHiddenWidth = this.ColumnWidthToPixels(sheet.columns[iCurCol - 1].width === undefined ? 8.43 : sheet.columns[iCurCol].width);\r\n else\r\n colHiddenWidth = this.ColumnWidthToPixels(8.43);\r\n picture.lastColOffset = (colHiddenWidth * picture.lastColOffset) / 1024;\r\n picture.lastColOffset = Math.round(picture.lastColOffset / this.unitsProportions[7]);\r\n break;\r\n }\r\n else {\r\n iCurWidth -= iSpaceInCell;\r\n iCurCol++;\r\n iCurOffset = 0;\r\n }\r\n }\r\n };\r\n Workbook.prototype.convertToPixels = function (value) {\r\n return value * this.unitsProportions[6];\r\n };\r\n Workbook.prototype.convertBase64toImage = function (img) {\r\n var byteStr = window.atob(img);\r\n var buffer = new ArrayBuffer(byteStr.length);\r\n var data = new Uint8Array(buffer);\r\n for (var i = 0; i < byteStr.length; i++) {\r\n data[i] = byteStr.charCodeAt(i);\r\n }\r\n var blob = new Blob([data], { type: 'image/png' });\r\n return blob;\r\n };\r\n Workbook.prototype.saveDrawingRelations = function (sheet) {\r\n /* tslint:disable-next-line:max-line-length */\r\n var drawingRelation = '';\r\n var length = sheet.images.length;\r\n var id = this.imageCount - sheet.images.length;\r\n for (var i = 1; i <= length; i++) {\r\n id++;\r\n /* tslint:disable-next-line:max-line-length */\r\n drawingRelation += '';\r\n }\r\n this.addToArchive((drawingRelation + ''), 'xl/drawings/_rels/drawing' + this.drawingCount + '.xml.rels');\r\n };\r\n Workbook.prototype.pixelsToColumnWidth = function (pixels) {\r\n var dDigitWidth = 7;\r\n var val = (pixels > dDigitWidth + 5) ?\r\n this.trunc((pixels - 5) / dDigitWidth * 100 + 0.5) / 100 :\r\n pixels / (dDigitWidth + 5);\r\n return (val > 1) ?\r\n ((val * dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0 :\r\n (val * (dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0;\r\n };\r\n Workbook.prototype.ColumnWidthToPixels = function (val) {\r\n var dDigitWidth = 7;\r\n var fileWidth = (val > 1) ?\r\n ((val * dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0 :\r\n (val * (dDigitWidth + 5) / dDigitWidth * 256.0) / 256.0;\r\n return this.trunc(((256 * fileWidth + this.trunc(128 / dDigitWidth)) / 256) * dDigitWidth);\r\n };\r\n Workbook.prototype.trunc = function (x) {\r\n var n = x - x % 1;\r\n return n === 0 && (x < 0 || (x === 0 && (1 / x !== 1 / 0))) ? -0 : n;\r\n };\r\n Workbook.prototype.pixelsToRowHeight = function (pixels) {\r\n return (pixels * this.unitsProportions[5] / this.unitsProportions[6]);\r\n };\r\n Workbook.prototype.saveSheetRelations = function (sheet) {\r\n /* tslint:disable-next-line:max-line-length */\r\n var relStr = '';\r\n for (var _i = 0, _a = sheet.hyperLinks; _i < _a.length; _i++) {\r\n var hLink = _a[_i];\r\n /* tslint:disable-next-line:max-line-length */\r\n relStr += '';\r\n }\r\n if (sheet.images != undefined && sheet.images.length > 0) {\r\n /* tslint:disable-next-line:max-line-length */\r\n relStr += '';\r\n }\r\n relStr += '';\r\n return relStr;\r\n };\r\n Workbook.prototype.saveSheetView = function (sheet) {\r\n var paneString = ' 0) {\r\n /* tslint:disable-next-line:max-line-length */\r\n var sstStart = '';\r\n var si = '';\r\n for (var i = 0; i < length; i++) {\r\n if (this.sharedString[i].indexOf('') !== 0) {\r\n si += '';\r\n si += this.processString(this.sharedString[i]);\r\n si += '';\r\n }\r\n else {\r\n si += '';\r\n si += this.sharedString[i];\r\n si += '';\r\n }\r\n }\r\n si += '';\r\n this.addToArchive(sstStart + si, 'xl/sharedStrings.xml');\r\n }\r\n };\r\n Workbook.prototype.processString = function (value) {\r\n if (value.indexOf('&') !== -1) {\r\n value = value.replace(/&/g, '&');\r\n }\r\n if (value.indexOf('<') !== -1) {\r\n value = value.replace(/') !== -1) {\r\n value = value.replace(/>/g, '>');\r\n }\r\n return value;\r\n };\r\n Workbook.prototype.saveStyles = function () {\r\n this.updateCellXfsStyleXfs();\r\n /* tslint:disable-next-line:max-line-length */\r\n var styleTemp = '';\r\n styleTemp += this.saveNumberFormats();\r\n styleTemp += this.saveFonts();\r\n styleTemp += this.saveFills();\r\n styleTemp += this.saveBorders();\r\n styleTemp += this.saveCellStyleXfs();\r\n styleTemp += this.saveCellXfs();\r\n styleTemp += this.saveCellStyles();\r\n this.addToArchive(styleTemp + '', 'xl/styles.xml');\r\n };\r\n Workbook.prototype.updateCellXfsStyleXfs = function () {\r\n for (var _i = 0, _a = this.mStyles; _i < _a.length; _i++) {\r\n var style = _a[_i];\r\n var cellXfs = undefined;\r\n if (style.isGlobalStyle) {\r\n cellXfs = new CellStyleXfs();\r\n cellXfs.xfId = (style.index - 1);\r\n }\r\n else {\r\n cellXfs = new CellXfs();\r\n cellXfs.xfId = 0;\r\n }\r\n //Add font\r\n var compareFontResult = this.isNewFont(style);\r\n if (!compareFontResult.result) {\r\n var font = new Font();\r\n font.b = style.bold;\r\n font.i = style.italic;\r\n font.name = style.fontName;\r\n font.sz = style.fontSize;\r\n font.u = style.underline;\r\n font.color = ('FF' + style.fontColor.replace('#', ''));\r\n this.mFonts.push(font);\r\n cellXfs.fontId = this.mFonts.length - 1;\r\n }\r\n else {\r\n cellXfs.fontId = compareFontResult.index;\r\n }\r\n //Add fill\r\n if (style.backColor !== 'none') {\r\n var backColor = 'FF' + style.backColor.replace('#', '');\r\n if (this.mFills.has(backColor)) {\r\n var fillId = this.mFills.get(backColor);\r\n cellXfs.fillId = fillId;\r\n }\r\n else {\r\n var fillId = this.mFills.size + 2;\r\n this.mFills.set(backColor, fillId);\r\n cellXfs.fillId = (fillId);\r\n }\r\n }\r\n else {\r\n cellXfs.fillId = 0;\r\n }\r\n //Add border \r\n if (!this.isNewBorder(style)) {\r\n this.mBorders.push(style.borders);\r\n cellXfs.borderId = this.mBorders.length;\r\n }\r\n else {\r\n cellXfs.borderId = 0;\r\n }\r\n //Add Number Format \r\n if (style.numberFormat !== 'GENERAL') {\r\n if (this.mNumFmt.has(style.numberFormat)) {\r\n var numFmt = this.mNumFmt.get(style.numberFormat);\r\n cellXfs.numFmtId = numFmt.numFmtId;\r\n }\r\n else {\r\n var id = this.mNumFmt.size + 164;\r\n this.mNumFmt.set(style.numberFormat, new NumFmt(id, style.numberFormat));\r\n cellXfs.numFmtId = id;\r\n }\r\n }\r\n else {\r\n if (style.numberFormat === 'GENERAL' && style.numFmtId === 14) {\r\n cellXfs.numFmtId = 14;\r\n }\r\n else {\r\n cellXfs.numFmtId = 0;\r\n }\r\n }\r\n //Add alignment \r\n if (!style.isGlobalStyle) {\r\n cellXfs.applyAlignment = 1;\r\n }\r\n cellXfs.alignment = new Alignment();\r\n cellXfs.alignment.indent = style.indent;\r\n cellXfs.alignment.horizontal = style.hAlign;\r\n cellXfs.alignment.vertical = style.vAlign;\r\n cellXfs.alignment.wrapText = style.wrapText ? 1 : 0;\r\n cellXfs.alignment.rotation = style.rotation;\r\n if (style.isGlobalStyle) {\r\n this.mCellStyleXfs.push(cellXfs);\r\n this.mCellXfs.push(cellXfs);\r\n }\r\n else {\r\n //Add cellxfs\r\n this.mCellXfs.push(cellXfs);\r\n }\r\n }\r\n };\r\n Workbook.prototype.saveNumberFormats = function () {\r\n if (this.mNumFmt.size >= 1) {\r\n var numFmtStyle_1 = '';\r\n this.mNumFmt.forEach(function (value, key) {\r\n numFmtStyle_1 += '';\r\n });\r\n return (numFmtStyle_1 += '');\r\n }\r\n else {\r\n return '';\r\n }\r\n };\r\n Workbook.prototype.saveFonts = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var fontStyle = '';\r\n if (this.mFonts.length >= 1) {\r\n for (var _i = 0, _a = this.mFonts; _i < _a.length; _i++) {\r\n var font = _a[_i];\r\n fontStyle += '';\r\n if (font.b) {\r\n fontStyle += '';\r\n }\r\n if (font.i) {\r\n fontStyle += '';\r\n }\r\n if (font.u) {\r\n fontStyle += '';\r\n }\r\n fontStyle += '';\r\n fontStyle += '';\r\n fontStyle += '';\r\n }\r\n }\r\n return fontStyle + '';\r\n };\r\n Workbook.prototype.saveFills = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var fillsStyle = '';\r\n if (this.mFills.size >= 1) {\r\n this.mFills.forEach(function (value, key) {\r\n /* tslint:disable-next-line:max-line-length */\r\n fillsStyle += '';\r\n });\r\n }\r\n return fillsStyle + '';\r\n };\r\n Workbook.prototype.saveBorders = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var bordersStyle = '';\r\n if (this.mBorders.length >= 1) {\r\n for (var _i = 0, _a = this.mBorders; _i < _a.length; _i++) {\r\n var borders = _a[_i];\r\n if (this.isAllBorder(borders)) {\r\n var color = borders.all.color.replace('#', '');\r\n var lineStyle = borders.all.lineStyle;\r\n /* tslint:disable-next-line:max-line-length */\r\n bordersStyle += '';\r\n }\r\n else {\r\n /* tslint:disable-next-line:max-line-length */\r\n bordersStyle += '';\r\n }\r\n }\r\n }\r\n return bordersStyle + '';\r\n };\r\n Workbook.prototype.saveCellStyles = function () {\r\n var _this = this;\r\n var cellStyleString = '';\r\n this.cellStyles.forEach(function (value, key) {\r\n cellStyleString += '';\r\n if (this.mCellStyleXfs.length >= 1) {\r\n for (var _i = 0, _a = this.mCellStyleXfs; _i < _a.length; _i++) {\r\n var cellStyleXf = _a[_i];\r\n /* tslint:disable-next-line:max-line-length */\r\n cellXfsStyle += '';\r\n }\r\n else {\r\n cellXfsStyle += ' />';\r\n }\r\n }\r\n }\r\n return cellXfsStyle + '';\r\n };\r\n Workbook.prototype.saveCellXfs = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var cellXfsStyle = '';\r\n if (this.mCellXfs.length >= 1) {\r\n for (var _i = 0, _a = this.mCellXfs; _i < _a.length; _i++) {\r\n var cellXf = _a[_i];\r\n /* tslint:disable-next-line:max-line-length */\r\n cellXfsStyle += '';\r\n }\r\n }\r\n return cellXfsStyle + '';\r\n };\r\n Workbook.prototype.saveAlignment = function (cellXf) {\r\n var alignString = '';\r\n return alignString;\r\n };\r\n Workbook.prototype.saveApp = function (builtInProperties) {\r\n /* tslint:disable-next-line:max-line-length */\r\n var appString = 'Essential XlsIO';\r\n if (builtInProperties !== undefined) {\r\n if (builtInProperties.manager !== undefined) {\r\n appString += '' + builtInProperties.manager + '';\r\n }\r\n if (builtInProperties.company !== undefined) {\r\n appString += '' + builtInProperties.company + '';\r\n }\r\n }\r\n this.addToArchive((appString + ''), 'docProps/app.xml');\r\n };\r\n Workbook.prototype.saveCore = function (builtInProperties) {\r\n var createdDate = new Date();\r\n /* tslint:disable-next-line:max-line-length */\r\n var coreString = '';\r\n if (this.builtInProperties !== undefined) {\r\n if (builtInProperties.author !== undefined) {\r\n coreString += '' + builtInProperties.author + '';\r\n }\r\n if (builtInProperties.subject !== undefined) {\r\n coreString += '' + builtInProperties.subject + '';\r\n }\r\n if (builtInProperties.category !== undefined) {\r\n coreString += '' + builtInProperties.category + '';\r\n }\r\n if (builtInProperties.comments !== undefined) {\r\n coreString += '' + builtInProperties.comments + '';\r\n }\r\n if (builtInProperties.title !== undefined) {\r\n coreString += '' + builtInProperties.title + '';\r\n }\r\n if (builtInProperties.tags !== undefined) {\r\n coreString += '' + builtInProperties.tags + '';\r\n }\r\n if (builtInProperties.status !== undefined) {\r\n coreString += '' + builtInProperties.status + '';\r\n }\r\n if (builtInProperties.createdDate !== undefined) {\r\n /* tslint:disable-next-line:max-line-length */\r\n coreString += '' + builtInProperties.createdDate.toISOString() + '';\r\n }\r\n else {\r\n coreString += '' + createdDate.toISOString() + '';\r\n }\r\n if (builtInProperties.modifiedDate !== undefined) {\r\n /* tslint:disable-next-line:max-line-length */\r\n coreString += '' + builtInProperties.modifiedDate.toISOString() + '';\r\n }\r\n else {\r\n coreString += '' + createdDate.toISOString() + '';\r\n }\r\n }\r\n else {\r\n coreString += '' + createdDate.toISOString() + '';\r\n coreString += '' + createdDate.toISOString() + '';\r\n }\r\n /* tslint:disable-next-line:max-line-length */\r\n coreString += '';\r\n this.addToArchive(coreString, 'docProps/core.xml');\r\n };\r\n Workbook.prototype.saveTopLevelRelation = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var topRelation = '';\r\n this.addToArchive(topRelation, '_rels/.rels');\r\n };\r\n Workbook.prototype.saveWorkbookRelation = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var wbRelation = '';\r\n var length = this.worksheets.length;\r\n var count = 0;\r\n for (var i = 0; i < length; i++, count++) {\r\n /* tslint:disable-next-line:max-line-length */\r\n wbRelation += '';\r\n }\r\n /* tslint:disable-next-line:max-line-length */\r\n wbRelation += '';\r\n if (this.sharedStringCount > 0) {\r\n /* tslint:disable-next-line:max-line-length */\r\n wbRelation += '';\r\n }\r\n this.addToArchive((wbRelation + ''), 'xl/_rels/workbook.xml.rels');\r\n };\r\n Workbook.prototype.saveContentType = function () {\r\n /* tslint:disable-next-line:max-line-length */\r\n var contentTypeString = '';\r\n var sheetsOverride = '';\r\n var length = this.worksheets.length;\r\n for (var i = 0; i < length; i++) {\r\n /* tslint:disable-next-line:max-line-length */\r\n sheetsOverride += '';\r\n if (this.worksheets[i].images != undefined && this.worksheets[i].images.length > 0) {\r\n /* tslint:disable-next-line:max-line-length */\r\n sheetsOverride += '';\r\n }\r\n }\r\n if (this.imageCount > 0)\r\n sheetsOverride += '';\r\n if (this.sharedStringCount > 0) {\r\n /* tslint:disable-next-line:max-line-length */\r\n contentTypeString += '';\r\n }\r\n this.addToArchive((contentTypeString + sheetsOverride + ''), '[Content_Types].xml');\r\n };\r\n Workbook.prototype.addToArchive = function (xmlString, itemName) {\r\n if (typeof (xmlString) === 'string') {\r\n var blob = new Blob([xmlString], { type: 'text/plain' });\r\n var archiveItem = new ZipArchiveItem(blob, itemName);\r\n this.mArchive.addItem(archiveItem);\r\n }\r\n else {\r\n var archiveItem = new ZipArchiveItem(xmlString, itemName);\r\n this.mArchive.addItem(archiveItem);\r\n }\r\n };\r\n Workbook.prototype.processMergeCells = function (cell, rowIndex, mergeCells) {\r\n if (cell.rowSpan !== 0 || cell.colSpan !== 0) {\r\n var mCell = new MergeCell();\r\n mCell.x = cell.index;\r\n mCell.width = cell.colSpan;\r\n mCell.y = rowIndex;\r\n mCell.height = cell.rowSpan;\r\n var startCell = this.getCellName(mCell.y, mCell.x);\r\n var endCell = this.getCellName(rowIndex + mCell.height, cell.index + mCell.width);\r\n mCell.ref = startCell + ':' + endCell;\r\n var mergedCell = mergeCells.add(mCell);\r\n var start = { x: mCell.x, y: mCell.y };\r\n var end = {\r\n x: (cell.index + mCell.width), y: (rowIndex + mCell.height)\r\n };\r\n this.updatedMergedCellStyles(start, end, cell);\r\n }\r\n return mergeCells;\r\n };\r\n Workbook.prototype.updatedMergedCellStyles = function (sCell, eCell, cell) {\r\n for (var x = sCell.x; x <= eCell.x; x++) {\r\n for (var y = sCell.y; y <= eCell.y; y++) {\r\n this.mergedCellsStyle.set(this.getCellName(y, x), { x: x, y: y, styleIndex: cell.styleIndex });\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the tick count corresponding to the given year, month, and day.\r\n * @param year number value of year\r\n * @param month number value of month\r\n * @param day number value of day\r\n */\r\n Workbook.prototype.dateToTicks = function (year, month, day) {\r\n var ticksPerDay = 10000 * 1000 * 60 * 60 * 24;\r\n var daysToMonth365 = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365];\r\n var daysToMonth366 = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366];\r\n if (year >= 1 && year <= 9999 && month >= 1 && month <= 12) {\r\n var days = this.isLeapYear(year) ? daysToMonth366 : daysToMonth365;\r\n var y = year - 1;\r\n var n = y * 365 + ((y / 4) | 0) - ((y / 100) | 0) + ((y / 400) | 0) + days[month - 1] + day - 1;\r\n return n * ticksPerDay;\r\n }\r\n throw new Error('Not a valid date');\r\n };\r\n /**\r\n * Return the tick count corresponding to the given hour, minute, second.\r\n * @param hour number value of hour\r\n * @param minute number value if minute\r\n * @param second number value of second\r\n */\r\n Workbook.prototype.timeToTicks = function (hour, minute, second) {\r\n if (hour >= 0 && hour < 24 && minute >= 0 && minute < 60 && second >= 0 && second < 60) {\r\n var totalSeconds = hour * 3600 + minute * 60 + second;\r\n return totalSeconds * 10000 * 1000;\r\n }\r\n throw new Error('Not valid time');\r\n };\r\n /**\r\n * Checks if given year is a leap year.\r\n * @param year Year value.\r\n */\r\n Workbook.prototype.isLeapYear = function (year) {\r\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\r\n };\r\n /**\r\n * Converts `DateTime` to the equivalent OLE Automation date.\r\n */\r\n Workbook.prototype.toOADate = function (date) {\r\n var ticks = 0;\r\n /* tslint:disable-next-line:max-line-length */\r\n ticks = this.dateToTicks(date.getFullYear(), (date.getMonth() + 1), date.getDate()) + this.timeToTicks(date.getHours(), date.getMinutes(), date.getSeconds());\r\n if (ticks === 0) {\r\n return 0.0;\r\n }\r\n var ticksPerDay = 10000 * 1000 * 60 * 60 * 24;\r\n var daysTo1899 = (((365 * 4 + 1) * 25 - 1) * 4 + 1) * 4 + ((365 * 4 + 1) * 25 - 1) * 3 - 367;\r\n var doubleDateOffset = daysTo1899 * ticksPerDay;\r\n var oaDateMinAsTicks = (((365 * 4 + 1) * 25 - 1) - 365) * ticksPerDay;\r\n if (ticks < oaDateMinAsTicks) {\r\n throw new Error('Arg_OleAutDateInvalid');\r\n }\r\n var millisPerDay = 1000 * 60 * 60 * 24;\r\n return ((ticks - doubleDateOffset) / 10000) / millisPerDay;\r\n };\r\n return Workbook;\r\n}());\r\nexport { Workbook };\r\n/**\r\n * BuiltInProperties Class\r\n * @private\r\n */\r\nvar BuiltInProperties = /** @class */ (function () {\r\n function BuiltInProperties() {\r\n }\r\n return BuiltInProperties;\r\n}());\r\nexport { BuiltInProperties };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/**\r\n * Worksheet class\r\n * @private\r\n */\r\nvar Worksheet = /** @class */ (function () {\r\n function Worksheet() {\r\n this.isSummaryRowBelow = true;\r\n this.showGridLines = true;\r\n this.enableRtl = false;\r\n }\r\n return Worksheet;\r\n}());\r\nexport { Worksheet };\r\n/**\r\n * Hyperlink class\r\n * @private\r\n */\r\nvar HyperLink = /** @class */ (function () {\r\n function HyperLink() {\r\n }\r\n return HyperLink;\r\n}());\r\nexport { HyperLink };\r\n/**\r\n * Grouping class\r\n * @private\r\n */\r\nvar Grouping = /** @class */ (function () {\r\n function Grouping() {\r\n }\r\n return Grouping;\r\n}());\r\nexport { Grouping };\r\n/**\r\n * FreezePane class\r\n * @private\r\n */\r\nvar FreezePane = /** @class */ (function () {\r\n function FreezePane() {\r\n }\r\n return FreezePane;\r\n}());\r\nexport { FreezePane };\r\n/**\r\n * MergeCell\r\n * @private\r\n */\r\nvar MergeCell = /** @class */ (function () {\r\n function MergeCell() {\r\n }\r\n return MergeCell;\r\n}());\r\nexport { MergeCell };\r\n/**\r\n * MergeCells class\r\n * @private\r\n */\r\nvar MergeCells = /** @class */ (function (_super) {\r\n __extends(MergeCells, _super);\r\n function MergeCells() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.add = function (mergeCell) {\r\n var inserted = false;\r\n var count = 0;\r\n for (var _i = 0, _a = _this; _i < _a.length; _i++) {\r\n var mCell = _a[_i];\r\n if (MergeCells.isIntersecting(mCell, mergeCell)) {\r\n var intersectingCell = new MergeCell();\r\n intersectingCell.x = Math.min(mCell.x, mergeCell.x);\r\n intersectingCell.y = Math.min(mCell.Y, mergeCell.y);\r\n intersectingCell.width = Math.max(mCell.Width + mCell.X, mergeCell.width + mergeCell.x);\r\n intersectingCell.height = Math.max(mCell.Height + mCell.Y, mergeCell.height + mergeCell.y);\r\n intersectingCell.ref = (_this[count].ref.split(':')[0]) + ':' + (mergeCell.ref.split(':')[1]);\r\n _this[count] = intersectingCell;\r\n mergeCell = intersectingCell;\r\n inserted = true;\r\n }\r\n count++;\r\n }\r\n if (!inserted) {\r\n _this.push(mergeCell);\r\n }\r\n return mergeCell;\r\n };\r\n return _this;\r\n }\r\n MergeCells.isIntersecting = function (base, compare) {\r\n return (base.x <= compare.x + compare.width)\r\n && (compare.x <= base.x + base.width)\r\n && (base.y <= compare.y + compare.height)\r\n && (compare.y <= base.y + base.height);\r\n };\r\n return MergeCells;\r\n}(Array));\r\nexport { MergeCells };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/**\r\n * Worksheets class\r\n * @private\r\n */\r\nvar Worksheets = /** @class */ (function (_super) {\r\n __extends(Worksheets, _super);\r\n function Worksheets() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return Worksheets;\r\n}(Array));\r\nexport { Worksheets };\r\n","/**\n * index\n */\nexport * from './src/index';\n","/**\n * Encoding class: Contains the details about encoding type, whether to write a Unicode byte order mark (BOM).\n * ```typescript\n * let encoding : Encoding = new Encoding();\n * encoding.type = 'Utf8';\n * encoding.getBytes('Encoding', 0, 5);\n * ```\n */\nvar Encoding = /** @class */ (function () {\n /**\n * Initializes a new instance of the Encoding class. A parameter specifies whether to write a Unicode byte order mark\n * @param {boolean} includeBom?-true to specify that a Unicode byte order mark is written; otherwise, false.\n */\n function Encoding(includeBom) {\n this.emitBOM = true;\n this.encodingType = 'Ansi';\n this.initBOM(includeBom);\n }\n Object.defineProperty(Encoding.prototype, \"includeBom\", {\n /**\n * Gets a value indicating whether to write a Unicode byte order mark\n * @returns boolean- true to specify that a Unicode byte order mark is written; otherwise, false\n */\n get: function () {\n return this.emitBOM;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Encoding.prototype, \"type\", {\n /**\n * Gets the encoding type.\n * @returns EncodingType\n */\n get: function () {\n return this.encodingType;\n },\n /**\n * Sets the encoding type.\n * @param {EncodingType} value\n */\n set: function (value) {\n this.encodingType = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Initialize the includeBom to emit BOM or Not\n * @param {boolean} includeBom\n */\n Encoding.prototype.initBOM = function (includeBom) {\n if (includeBom === undefined || includeBom === null) {\n this.emitBOM = true;\n }\n else {\n this.emitBOM = includeBom;\n }\n };\n /**\n * Calculates the number of bytes produced by encoding the characters in the specified string\n * @param {string} chars - The string containing the set of characters to encode\n * @returns {number} - The number of bytes produced by encoding the specified characters\n */\n Encoding.prototype.getByteCount = function (chars) {\n var byteCount = 0;\n validateNullOrUndefined(chars, 'string');\n if (chars === '') {\n var byte = this.utf8Len(chars.charCodeAt(0));\n return byte;\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n return this.getByteCountInternal(chars, 0, chars.length);\n };\n /**\n * Return the Byte of character\n * @param {number} codePoint\n * @returns {number}\n */\n Encoding.prototype.utf8Len = function (codePoint) {\n var bytes = codePoint <= 0x7F ? 1 :\n codePoint <= 0x7FF ? 2 :\n codePoint <= 0xFFFF ? 3 :\n codePoint <= 0x1FFFFF ? 4 : 0;\n return bytes;\n };\n /**\n * for 4 byte character return surrogate pair true, otherwise false\n * @param {number} codeUnit\n * @returns {boolean}\n */\n Encoding.prototype.isHighSurrogate = function (codeUnit) {\n return codeUnit >= 0xD800 && codeUnit <= 0xDBFF;\n };\n /**\n * for 4byte character generate the surrogate pair\n * @param {number} highCodeUnit\n * @param {number} lowCodeUnit\n */\n Encoding.prototype.toCodepoint = function (highCodeUnit, lowCodeUnit) {\n highCodeUnit = (0x3FF & highCodeUnit) << 10;\n var u = highCodeUnit | (0x3FF & lowCodeUnit);\n return u + 0x10000;\n };\n /**\n * private method to get the byte count for specific charindex and count\n * @param {string} chars\n * @param {number} charIndex\n * @param {number} charCount\n */\n Encoding.prototype.getByteCountInternal = function (chars, charIndex, charCount) {\n var byteCount = 0;\n if (this.encodingType === 'Utf8' || this.encodingType === 'Unicode') {\n var isUtf8 = this.encodingType === 'Utf8';\n for (var i = 0; i < charCount; i++) {\n var charCode = chars.charCodeAt(isUtf8 ? charIndex : charIndex++);\n if (this.isHighSurrogate(charCode)) {\n if (isUtf8) {\n var high = charCode;\n var low = chars.charCodeAt(++charIndex);\n byteCount += this.utf8Len(this.toCodepoint(high, low));\n }\n else {\n byteCount += 4;\n ++i;\n }\n }\n else {\n if (isUtf8) {\n byteCount += this.utf8Len(charCode);\n }\n else {\n byteCount += 2;\n }\n }\n if (isUtf8) {\n charIndex++;\n }\n }\n return byteCount;\n }\n else {\n byteCount = charCount;\n return byteCount;\n }\n };\n /**\n * Encodes a set of characters from the specified string into the ArrayBuffer.\n * @param {string} s- The string containing the set of characters to encode\n * @param {number} charIndex-The index of the first character to encode.\n * @param {number} charCount- The number of characters to encode.\n * @returns {ArrayBuffer} - The ArrayBuffer that contains the resulting sequence of bytes.\n */\n Encoding.prototype.getBytes = function (s, charIndex, charCount) {\n validateNullOrUndefined(s, 'string');\n validateNullOrUndefined(charIndex, 'charIndex');\n validateNullOrUndefined(charCount, 'charCount');\n if (charIndex < 0 || charCount < 0) {\n throw new RangeError('Argument Out Of Range Exception: charIndex or charCount is less than zero');\n }\n if (s.length - charIndex < charCount) {\n throw new RangeError('Argument Out Of Range Exception: charIndex and charCount do not denote a valid range in string');\n }\n var bytes;\n if (s === '') {\n bytes = new ArrayBuffer(0);\n return bytes;\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n var byteCount = this.getByteCountInternal(s, charIndex, charCount);\n switch (this.type) {\n case 'Utf8':\n bytes = this.getBytesOfUtf8Encoding(byteCount, s, charIndex, charCount);\n return bytes;\n case 'Unicode':\n bytes = this.getBytesOfUnicodeEncoding(byteCount, s, charIndex, charCount);\n return bytes;\n default:\n bytes = this.getBytesOfAnsiEncoding(byteCount, s, charIndex, charCount);\n return bytes;\n }\n };\n /**\n * Decodes a sequence of bytes from the specified ArrayBuffer into the string.\n * @param {ArrayBuffer} bytes- The ArrayBuffer containing the sequence of bytes to decode.\n * @param {number} index- The index of the first byte to decode.\n * @param {number} count- The number of bytes to decode.\n * @returns {string} - The string that contains the resulting set of characters.\n */\n Encoding.prototype.getString = function (bytes, index, count) {\n validateNullOrUndefined(bytes, 'bytes');\n validateNullOrUndefined(index, 'index');\n validateNullOrUndefined(count, 'count');\n if (index < 0 || count < 0) {\n throw new RangeError('Argument Out Of Range Exception: index or count is less than zero');\n }\n if (bytes.byteLength - index < count) {\n throw new RangeError('Argument Out Of Range Exception: index and count do not denote a valid range in bytes');\n }\n if (bytes.byteLength === 0 || count === 0) {\n return '';\n }\n if (this.type === null || this.type === undefined) {\n this.type = 'Ansi';\n }\n var out = '';\n var byteCal = new Uint8Array(bytes);\n switch (this.type) {\n case 'Utf8':\n var s = this.getStringOfUtf8Encoding(byteCal, index, count);\n return s;\n case 'Unicode':\n var byteUnicode = new Uint16Array(bytes);\n out = this.getStringofUnicodeEncoding(byteUnicode, index, count);\n return out;\n default:\n var j = index;\n for (var i = 0; i < count; i++) {\n var c = byteCal[j];\n out += String.fromCharCode(c); // 1 byte(ASCII) character \n j++;\n }\n return out;\n }\n };\n Encoding.prototype.getBytesOfAnsiEncoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var bufview = new Uint8Array(bytes);\n var k = 0;\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(charIndex++);\n if (charcode < 0x800) {\n bufview[k] = charcode;\n }\n else {\n bufview[k] = 63; //replacement character '?'\n }\n k++;\n }\n return bytes;\n };\n Encoding.prototype.getBytesOfUtf8Encoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var uint = new Uint8Array(bytes);\n var index = charIndex;\n var j = 0;\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(index);\n if (charcode <= 0x7F) { // 1 byte character 2^7\n uint[j] = charcode;\n }\n else if (charcode < 0x800) { // 2 byte character 2^11\n uint[j] = 0xc0 | (charcode >> 6);\n uint[++j] = 0x80 | (charcode & 0x3f);\n }\n else if ((charcode < 0xd800 || charcode >= 0xe000)) { // 3 byte character 2^16 \n uint[j] = 0xe0 | (charcode >> 12);\n uint[++j] = 0x80 | ((charcode >> 6) & 0x3f);\n uint[++j] = 0x80 | (charcode & 0x3f);\n }\n else {\n uint[j] = 0xef;\n uint[++j] = 0xbf;\n uint[++j] = 0xbd; // U+FFFE \"replacement character\"\n }\n ++j;\n ++index;\n }\n return bytes;\n };\n Encoding.prototype.getBytesOfUnicodeEncoding = function (byteCount, s, charIndex, charCount) {\n var bytes = new ArrayBuffer(byteCount);\n var uint16 = new Uint16Array(bytes);\n for (var i = 0; i < charCount; i++) {\n var charcode = s.charCodeAt(i);\n uint16[i] = charcode;\n }\n return bytes;\n };\n Encoding.prototype.getStringOfUtf8Encoding = function (byteCal, index, count) {\n var j = 0;\n var i = index;\n var s = '';\n for (j; j < count; j++) {\n var c = byteCal[i++];\n while (i > byteCal.length) {\n return s;\n }\n if (c > 127) {\n if (c > 191 && c < 224 && i < count) {\n c = (c & 31) << 6 | byteCal[i] & 63;\n }\n else if (c > 223 && c < 240 && i < byteCal.byteLength) {\n c = (c & 15) << 12 | (byteCal[i] & 63) << 6 | byteCal[++i] & 63;\n }\n else if (c > 239 && c < 248 && i < byteCal.byteLength) {\n c = (c & 7) << 18 | (byteCal[i] & 63) << 12 | (byteCal[++i] & 63) << 6 | byteCal[++i] & 63;\n }\n ++i;\n }\n s += String.fromCharCode(c); // 1 byte(ASCII) character \n }\n return s;\n };\n Encoding.prototype.getStringofUnicodeEncoding = function (byteUni, index, count) {\n if (count > byteUni.length) {\n throw new RangeError('ArgumentOutOfRange_Count');\n }\n var byte16 = new Uint16Array(count);\n var out = '';\n for (var i = 0; i < count && i < byteUni.length; i++) {\n byte16[i] = byteUni[index++];\n }\n out = String.fromCharCode.apply(null, byte16);\n return out;\n };\n /**\n * To clear the encoding instance\n * @return {void}\n */\n Encoding.prototype.destroy = function () {\n this.emitBOM = undefined;\n this.encodingType = undefined;\n };\n return Encoding;\n}());\nexport { Encoding };\n/**\n * To check the object is null or undefined and throw error if it is null or undefined\n * @param {Object} value - object to check is null or undefined\n * @return {boolean}\n * @throws {ArgumentException} - if the value is null or undefined\n * @private\n */\nexport function validateNullOrUndefined(value, message) {\n if (value === null || value === undefined) {\n throw new Error('ArgumentException: ' + message + ' cannot be null or undefined');\n }\n}\n","// export all modules from current location\n// example: export * from './module'\n/**\n * file utils modules\n */\nexport * from './xml-writer';\nexport * from './stream-writer';\nexport * from './encoding';\nexport * from './save';\n","/**\n * Save class provide method to save file\n * ```typescript\n * let blob : Blob = new Blob([''], { type: 'text/plain' });\n * Save.save('fileName.txt',blob);\n */\nvar Save = /** @class */ (function () {\n /**\n * Initialize new instance of {save}\n */\n function Save() {\n // tslint:disable\n }\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName- file name to save.\n * @param {Blob} buffer- the content to write in file\n * @param {boolean} isMicrosoftBrowser- specify whether microsoft browser or not\n * @returns {void}\n */\n Save.save = function (fileName, buffer) {\n if (fileName === null || fileName === undefined || fileName === '') {\n throw new Error('ArgumentException: fileName cannot be undefined, null or empty');\n }\n var extension = fileName.substring(fileName.lastIndexOf('.') + 1, fileName.length);\n var mimeType = this.getMimeType(extension);\n if (mimeType !== '') {\n buffer = new Blob([buffer], { type: mimeType });\n }\n if (this.isMicrosoftBrowser) {\n navigator.msSaveBlob(buffer, fileName);\n }\n else {\n var downloadLink = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n this.saveInternal(fileName, extension, buffer, downloadLink, 'download' in downloadLink);\n }\n };\n Save.saveInternal = function (fileName, extension, buffer, downloadLink, hasDownloadAttribute) {\n if (hasDownloadAttribute) {\n downloadLink.download = fileName;\n var dataUrl_1 = window.URL.createObjectURL(buffer);\n downloadLink.href = dataUrl_1;\n var event_1 = document.createEvent('MouseEvent');\n event_1.initEvent('click', true, true);\n downloadLink.dispatchEvent(event_1);\n setTimeout(function () {\n window.URL.revokeObjectURL(dataUrl_1);\n dataUrl_1 = undefined;\n });\n }\n else {\n if (extension !== 'docx' && extension !== 'xlsx') {\n var url = window.URL.createObjectURL(buffer);\n var isPopupBlocked = window.open(url, '_blank');\n if (!isPopupBlocked) {\n window.location.href = url;\n }\n }\n else {\n var reader_1 = new FileReader();\n reader_1.onloadend = function () {\n var isPopupBlocked = window.open(reader_1.result, '_blank');\n if (!isPopupBlocked) {\n window.location.href = reader_1.result;\n }\n };\n reader_1.readAsDataURL(buffer);\n }\n }\n };\n /**\n *\n * @param {string} extension - get mime type of the specified extension\n * @private\n */\n Save.getMimeType = function (extension) {\n var mimeType = '';\n switch (extension) {\n case 'html':\n mimeType = 'text/html';\n break;\n case 'pdf':\n mimeType = 'application/pdf';\n break;\n case 'docx':\n mimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';\n break;\n case 'xlsx':\n mimeType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n break;\n case 'txt':\n mimeType = 'text/plain';\n break;\n }\n return mimeType;\n };\n return Save;\n}());\nexport { Save };\n","import { Encoding, validateNullOrUndefined } from './encoding';\nimport { Save } from './save';\n/**\n * StreamWriter class contains the implementation for writing characters to a file in a particular encoding\n * ```typescript\n * let writer = new StreamWriter();\n * writer.write('Hello World');\n * writer.save('Sample.txt');\n * writer.dispose();\n * ```\n */\nvar StreamWriter = /** @class */ (function () {\n /**\n * Initializes a new instance of the StreamWriter class by using the specified encoding.\n * @param {Encoding} encoding?- The character encoding to use.\n */\n function StreamWriter(encoding) {\n this.bufferBlob = new Blob(['']);\n this.bufferText = '';\n this.init(encoding);\n Save.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n }\n Object.defineProperty(StreamWriter.prototype, \"buffer\", {\n /**\n * Gets the content written to the StreamWriter as Blob.\n * @returns Blob\n */\n get: function () {\n this.flush();\n return this.bufferBlob;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(StreamWriter.prototype, \"encoding\", {\n /**\n * Gets the encoding.\n * @returns Encoding\n */\n get: function () {\n return this.enc;\n },\n enumerable: true,\n configurable: true\n });\n StreamWriter.prototype.init = function (encoding) {\n if (encoding === null || encoding === undefined) {\n this.enc = new Encoding(false);\n this.enc.type = 'Utf8';\n }\n else {\n this.enc = encoding;\n this.setBomByte();\n }\n };\n /**\n * Private method to set Byte Order Mark(BOM) value based on EncodingType\n */\n StreamWriter.prototype.setBomByte = function () {\n if (this.encoding.includeBom) {\n switch (this.encoding.type) {\n case 'Unicode':\n var arrayUnicode = new ArrayBuffer(2);\n var uint8 = new Uint8Array(arrayUnicode);\n uint8[0] = 255;\n uint8[1] = 254;\n this.bufferBlob = new Blob([arrayUnicode]);\n break;\n case 'Utf8':\n var arrayUtf8 = new ArrayBuffer(3);\n var utf8 = new Uint8Array(arrayUtf8);\n utf8[0] = 239;\n utf8[1] = 187;\n utf8[2] = 191;\n this.bufferBlob = new Blob([arrayUtf8]);\n break;\n default:\n this.bufferBlob = new Blob(['']);\n break;\n }\n }\n };\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName - The file name to save\n * @returns {void}\n */\n StreamWriter.prototype.save = function (fileName) {\n if (this.bufferText !== '') {\n this.flush();\n }\n Save.save(fileName, this.buffer);\n };\n /**\n * Writes the specified string.\n * @param {string} value - The string to write. If value is null or undefined, nothing is written.\n * @returns {void}\n */\n StreamWriter.prototype.write = function (value) {\n if (this.encoding === undefined) {\n throw new Error('Object Disposed Exception: current writer is disposed');\n }\n validateNullOrUndefined(value, 'string');\n this.bufferText += value;\n if (this.bufferText.length >= 10240) {\n this.flush();\n }\n };\n StreamWriter.prototype.flush = function () {\n if (this.bufferText === undefined || this.bufferText === null || this.bufferText.length === 0) {\n return;\n }\n var bufferArray = this.encoding.getBytes(this.bufferText, 0, this.bufferText.length);\n this.bufferText = '';\n this.bufferBlob = new Blob([this.bufferBlob, bufferArray]);\n };\n /**\n * Writes the specified string followed by a line terminator\n * @param {string} value - The string to write. If value is null or undefined, nothing is written\n * @returns {void}\n */\n StreamWriter.prototype.writeLine = function (value) {\n if (this.encoding === undefined) {\n throw new Error('Object Disposed Exception: current writer is disposed');\n }\n validateNullOrUndefined(value, 'string');\n this.bufferText = this.bufferText + value + '\\r\\n';\n if (this.bufferText.length >= 10240) {\n this.flush();\n }\n };\n /**\n * Releases the resources used by the StreamWriter\n * @returns {void}\n */\n StreamWriter.prototype.destroy = function () {\n this.bufferBlob = undefined;\n this.bufferText = undefined;\n if (this.enc instanceof Encoding) {\n this.enc.destroy();\n }\n this.enc = undefined;\n };\n return StreamWriter;\n}());\nexport { StreamWriter };\n","import { Save } from './save';\n/**\n * XmlWriter class provide method to create XML data\n */\nvar XmlWriter = /** @class */ (function () {\n /**\n * Initialize new instance of {XmlWriter}\n */\n function XmlWriter() {\n this.contentPos = 0;\n this.bufferText = '';\n this.bufferBlob = new Blob([''], { type: 'text/plain' });\n this.currentState = 'Initial';\n this.namespaceStack = [];\n this.namespaceStack.push(new Namespace());\n this.namespaceStack[0].set('xmlns', 'http://www.w3.org/2000/xmlns/', 'Special');\n this.namespaceStack.push(new Namespace());\n this.namespaceStack[1].set('xml', 'http://www.w3.org/XML/1998/namespace', 'Special');\n this.namespaceStack.push(new Namespace());\n this.namespaceStack[2].set('', '', 'Implied');\n this.elementStack = [];\n this.elementStack.push(new XmlElement());\n this.elementStack[0].set('', '', '', this.namespaceStack.length - 1);\n this.attributeStack = [];\n Save.isMicrosoftBrowser = !(!navigator.msSaveBlob);\n }\n Object.defineProperty(XmlWriter.prototype, \"buffer\", {\n /**\n * Gets the content written to the {XmlWriter} as Blob.\n * @returns {Blob}\n */\n get: function () {\n this.flush();\n return this.bufferBlob;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Writes processing instruction with a space between the name and text\n * @param {string} name - name of the processing instruction\n * @param {string} text - text to write in the processing instruction\n * @throws ArgumentException\n * @throws InvalidArgumentException\n * @throws InvalidOperationException\n */\n XmlWriter.prototype.writeProcessingInstruction = function (name, text) {\n if (name === undefined || name === null || name.length === 0) {\n throw new Error('ArgumentException: name should not be undefined, null or empty');\n }\n this.checkName(name);\n if (text === undefined || text === null) {\n text = '';\n }\n if (name.length === 3 && name === 'xml') {\n if (this.currentState !== 'Initial') {\n // tslint:disable-next-line:max-line-length\n throw new Error('InvalidArgumentException: Cannot write XML declaration.WriteStartDocument method has already written it');\n }\n }\n if (this.currentState !== 'Initial' || this.bufferBlob === undefined) {\n throw new Error('InvalidOperationException: Wrong Token');\n }\n else {\n this.writeStartDocument();\n this.writeProcessingInstructionInternal(name, text);\n }\n };\n /**\n * Writes Xml declaration with version and standalone attribute\n * @param {boolean} standalone - if true it write standalone=yes else standalone=no\n * @throws InvalidOperation\n */\n XmlWriter.prototype.writeStartDocument = function (standalone) {\n if (this.currentState !== 'Initial' || this.bufferBlob === undefined) {\n throw new Error('InvalidOperationException: Wrong Token');\n }\n this.currentState = 'StartDocument';\n this.rawText('');\n };\n /**\n * Closes any open tag or attribute and write the state back to start\n */\n XmlWriter.prototype.writeEndDocument = function () {\n while (this.elementStack.length - 1 > 0) {\n this.writeEndElement();\n }\n this.currentState = 'EndDocument';\n this.flush();\n };\n /**\n * Writes the specified start tag and associates it with the given namespace and prefix.\n * @param {string} prefix - namespace prefix of element\n * @param {string} localName -localName of element\n * @param {string} namespace - namespace URI associate with element\n * @throws ArgumentException\n * @throws InvalidOperationException\n */\n XmlWriter.prototype.writeStartElement = function (prefix, localName, namespace) {\n if (this.bufferBlob === undefined) {\n throw new Error('InvalidOperationException: Wrong Token');\n }\n if (localName === undefined || localName === null || localName.length === 0) {\n throw new Error('ArgumentException: localName cannot be undefined, null or empty');\n }\n this.checkName(localName);\n if (this.currentState === 'Initial') {\n this.writeStartDocument();\n }\n if (this.currentState === 'StartElement') {\n this.startElementContent();\n }\n this.currentState = 'StartElement';\n if (prefix === undefined || prefix === null) {\n if (namespace !== undefined && namespace !== null) {\n prefix = this.lookupPrefix(namespace);\n }\n if (prefix === undefined || prefix === null) {\n prefix = '';\n }\n }\n else if (prefix.length > 0) {\n if (namespace === undefined || namespace === null) {\n namespace = this.lookupNamespace(prefix);\n }\n if (namespace === undefined || namespace === null || (namespace !== undefined && namespace.length === 0)) {\n throw new Error('ArgumentException: Cannot use a prefix with an empty namespace');\n }\n }\n if (namespace === undefined || namespace === null) {\n namespace = this.lookupNamespace(prefix);\n }\n this.writeStartElementInternal(prefix, localName, namespace);\n };\n /**\n * Closes one element and pop corresponding namespace scope\n */\n XmlWriter.prototype.writeEndElement = function () {\n if (this.currentState === 'StartElement') {\n this.startElementContent();\n this.currentState = 'ElementContent';\n }\n else if (this.currentState === 'ElementContent') {\n this.currentState = 'ElementContent';\n }\n this.currentState = 'EndElement';\n var top = this.elementStack.length - 1;\n this.writeEndElementInternal(this.elementStack[top].prefix, this.elementStack[top].localName);\n this.namespaceStack.splice(this.elementStack[top].previousTop + 1);\n this.elementStack.splice(top);\n if (this.bufferText.length > 10240) {\n this.flush();\n }\n };\n /**\n * Writes an element with the specified prefix, local name, namespace URI, and value.\n * @param {string} prefix - namespace prefix of element\n * @param {string} localName - localName of element\n * @param {string} namespace - namespace URI associate with element\n * @param {string} value - value of element\n */\n XmlWriter.prototype.writeElementString = function (prefix, localName, namespace, value) {\n this.writeStartElement(prefix, localName, namespace);\n if (value !== undefined && value !== null && value.length !== 0) {\n this.writeString(value);\n }\n this.writeEndElement();\n };\n /**\n * Writes out the attribute with the specified prefix, local name, namespace URI, and value\n * @param {string} prefix - namespace prefix of element\n * @param {string} localName - localName of element\n * @param {string} namespace - namespace URI associate with element\n * @param {string} value - value of element\n */\n XmlWriter.prototype.writeAttributeString = function (prefix, localName, namespace, value) {\n this.writeStartAttribute(prefix, localName, namespace, value);\n this.writeStringInternal(value, true);\n this.writeEndAttribute();\n };\n /**\n * Writes the given text content\n * @param {string} text - text to write\n * @throws InvalidOperationException\n */\n XmlWriter.prototype.writeString = function (text) {\n this.writeInternal(text, false);\n };\n /**\n * Write given text as raw data\n * @param {string} text - text to write\n * @throws InvalidOperationException\n */\n XmlWriter.prototype.writeRaw = function (text) {\n this.writeInternal(text, true);\n };\n XmlWriter.prototype.writeInternal = function (text, isRawString) {\n if (text === undefined || text === null) {\n return;\n }\n else {\n if (this.currentState !== 'StartElement' && this.currentState !== 'ElementContent') {\n throw new Error('InvalidOperationException: Wrong Token');\n }\n if (this.currentState === 'StartElement') {\n this.startElementContent();\n }\n this.currentState = 'ElementContent';\n if (isRawString) {\n this.rawText(text);\n }\n else {\n this.writeStringInternal(text, false);\n }\n }\n };\n /**\n * Saves the file with specified name and sends the file to client browser\n * @param {string} fileName - file name\n */\n XmlWriter.prototype.save = function (fileName) {\n while (this.elementStack.length - 1 > 0) {\n this.writeEndElement();\n }\n if (this.bufferText !== '') {\n this.flush();\n }\n Save.save(fileName, this.buffer);\n };\n /**\n * Releases the resources used by XmlWriter.\n */\n XmlWriter.prototype.destroy = function () {\n this.bufferBlob = undefined;\n for (var i = 0; i < this.namespaceStack.length; i++) {\n this.namespaceStack[i].destroy();\n }\n this.namespaceStack = [];\n for (var i = 0; i < this.elementStack.length; i++) {\n this.elementStack[i].destroy();\n }\n this.elementStack = [];\n this.bufferText = '';\n this.contentPos = 0;\n };\n XmlWriter.prototype.flush = function () {\n if (this.bufferBlob === undefined) {\n return;\n }\n this.bufferBlob = new Blob([this.bufferBlob, this.bufferText], { type: 'text/plain' });\n this.bufferText = '';\n };\n XmlWriter.prototype.writeProcessingInstructionInternal = function (name, text) {\n this.bufferText += ' 0) {\n this.bufferText += ' ';\n text = text.replace(/\\?\\>/g, '? >');\n this.bufferText += text;\n }\n this.bufferText += '?';\n this.bufferText += '>';\n };\n XmlWriter.prototype.writeStartAttribute = function (prefix, localName, namespace, value) {\n if (localName === undefined || localName === null || localName.length === 0) {\n if (prefix === 'xmlns') {\n localName = 'xmlns';\n prefix = '';\n }\n else {\n throw new Error('ArgumentException: localName cannot be undefined, null or empty');\n }\n }\n if (this.currentState !== 'StartElement') {\n throw new Error('InvalidOperationException: Wrong Token');\n }\n this.checkName(localName);\n this.writeStartAttributePrefixAndNameSpace(prefix, localName, namespace, value);\n };\n XmlWriter.prototype.writeStartAttributePrefixAndNameSpace = function (prefix, localName, namespace, value) {\n if (prefix === undefined || prefix === null) {\n if (namespace !== undefined && namespace !== null) {\n if (!(localName === 'xmlns' && namespace === 'http://www.w3.org/2000/xmlns/')) {\n prefix = this.lookupPrefix(namespace);\n }\n }\n if (prefix === undefined || prefix === null) {\n prefix = '';\n }\n }\n if (namespace === undefined || namespace === null) {\n if (prefix !== undefined && prefix !== null && prefix.length > 0) {\n namespace = this.lookupNamespace(prefix);\n }\n if (namespace === undefined || namespace === null) {\n namespace = '';\n }\n }\n this.writeStartAttributeSpecialAttribute(prefix, localName, namespace, value);\n };\n XmlWriter.prototype.writeStartAttributeSpecialAttribute = function (prefix, localName, namespace, value) {\n if (prefix.length === 0) {\n if (localName[0] === 'x' && localName === 'xmlns') {\n this.skipPushAndWrite(prefix, localName, namespace);\n this.pushNamespaceExplicit('', value);\n return;\n }\n else if (namespace.length > 0) {\n prefix = this.lookupPrefix(namespace);\n }\n }\n else {\n if (prefix[0] === 'x') {\n if (prefix === 'xmlns') {\n this.skipPushAndWrite(prefix, localName, namespace);\n this.pushNamespaceExplicit(localName, value);\n return;\n }\n else if (prefix === 'xml') {\n if (localName === 'space' || localName === 'lang') {\n this.skipPushAndWrite(prefix, localName, namespace);\n return;\n }\n }\n }\n if (namespace.length === 0) {\n prefix = '';\n }\n }\n if (prefix !== undefined && prefix !== null && prefix.length !== 0) {\n this.pushNamespaceImplicit(prefix, namespace);\n }\n this.skipPushAndWrite(prefix, localName, namespace);\n };\n XmlWriter.prototype.writeEndAttribute = function () {\n this.currentState = 'StartElement';\n this.bufferText += '\"';\n };\n XmlWriter.prototype.writeStartElementInternal = function (prefix, localName, namespace) {\n this.bufferText += '<';\n if (prefix.length > 0) {\n this.rawText(prefix);\n this.bufferText += ':';\n }\n this.rawText(localName);\n var top = this.elementStack.length;\n this.elementStack.push(new XmlElement());\n this.elementStack[top].set(prefix, localName, namespace, this.namespaceStack.length - 1);\n this.pushNamespaceImplicit(prefix, namespace);\n for (var i = 0; i < this.attributeStack.length; i++) {\n this.attributeStack[i].destroy();\n }\n this.attributeStack = [];\n };\n XmlWriter.prototype.writeEndElementInternal = function (prefix, localName) {\n if (this.contentPos !== this.bufferText.length + 1) {\n this.bufferText += '';\n }\n else {\n this.bufferText = this.bufferText.substring(0, this.bufferText.length - 1);\n this.bufferText += ' />';\n }\n };\n XmlWriter.prototype.writeStartAttributeInternal = function (prefix, localName, namespaceName) {\n this.bufferText += ' ';\n if (prefix !== undefined && prefix !== null && prefix.length > 0) {\n this.rawText(prefix);\n this.bufferText += ':';\n }\n this.rawText(localName);\n this.bufferText += '=';\n this.bufferText += '\"';\n };\n XmlWriter.prototype.writeNamespaceDeclaration = function (prefix, namespaceUri) {\n this.writeStartNamespaceDeclaration(prefix);\n this.writeStringInternal(namespaceUri, true);\n this.bufferText += '\"';\n };\n XmlWriter.prototype.writeStartNamespaceDeclaration = function (prefix) {\n if (prefix === undefined || prefix === null || prefix.length === 0) {\n this.rawText(' xmlns=\\\"');\n }\n else {\n this.rawText(' xmlns:');\n this.rawText(prefix);\n this.bufferText += '=';\n this.bufferText += '\"';\n }\n };\n XmlWriter.prototype.writeStringInternal = function (text, inAttributeValue) {\n if (text === null || text === undefined) {\n text = '';\n }\n var tempText = '';\n text = text.replace(/\\&/g, '&');\n text = text.replace(/\\/g, '>');\n if (inAttributeValue) {\n text = text.replace(/\\\"/g, '"');\n }\n this.bufferText += text;\n if (!inAttributeValue) {\n this.contentPos = 0;\n }\n };\n XmlWriter.prototype.startElementContent = function () {\n var start = this.elementStack[this.elementStack.length - 1].previousTop;\n for (var i = this.namespaceStack.length - 1; i > start; i--) {\n if (this.namespaceStack[i].kind === 'NeedToWrite') {\n this.writeNamespaceDeclaration(this.namespaceStack[i].prefix, this.namespaceStack[i].namespaceUri);\n }\n }\n this.bufferText += '>';\n this.contentPos = this.bufferText.length + 1;\n };\n XmlWriter.prototype.rawText = function (text) {\n this.bufferText += text;\n };\n XmlWriter.prototype.addNamespace = function (prefix, ns, kind) {\n var top = this.namespaceStack.length;\n this.namespaceStack.push(new Namespace());\n this.namespaceStack[top].set(prefix, ns, kind);\n };\n XmlWriter.prototype.lookupPrefix = function (namespace) {\n for (var i = this.namespaceStack.length - 1; i >= 0; i--) {\n if (this.namespaceStack[i].namespaceUri === namespace) {\n return this.namespaceStack[i].prefix;\n }\n }\n return undefined;\n };\n XmlWriter.prototype.lookupNamespace = function (prefix) {\n for (var i = this.namespaceStack.length - 1; i >= 0; i--) {\n if (this.namespaceStack[i].prefix === prefix) {\n return this.namespaceStack[i].namespaceUri;\n }\n }\n return undefined;\n };\n XmlWriter.prototype.lookupNamespaceIndex = function (prefix) {\n for (var i = this.namespaceStack.length - 1; i >= 0; i--) {\n if (this.namespaceStack[i].prefix === prefix) {\n return i;\n }\n }\n return -1;\n };\n XmlWriter.prototype.pushNamespaceImplicit = function (prefix, ns) {\n var kind;\n var existingNsIndex = this.lookupNamespaceIndex(prefix);\n if (existingNsIndex !== -1) {\n if (existingNsIndex > this.elementStack[this.elementStack.length - 1].previousTop) {\n if (this.namespaceStack[existingNsIndex].namespaceUri !== ns) {\n throw new Error('XmlException namespace Uri needs to be the same as the one that is already declared');\n }\n return;\n }\n else {\n if (this.namespaceStack[existingNsIndex].kind === 'Special') {\n if (prefix === 'xml') {\n if (ns !== this.namespaceStack[existingNsIndex].namespaceUri) {\n throw new Error('InvalidArgumentException: Xml String');\n }\n else {\n kind = 'Implied';\n }\n }\n else {\n throw new Error('InvalidArgumentException: Prefix \"xmlns\" is reserved for use by XML.');\n }\n }\n else {\n kind = (this.namespaceStack[existingNsIndex].namespaceUri === ns) ? 'Implied' : 'NeedToWrite';\n }\n }\n }\n else {\n if ((ns === 'http://www.w3.org/XML/1998/namespace' && prefix !== 'xml') ||\n (ns === 'http://www.w3.org/2000/xmlns/' && prefix !== 'xmlns')) {\n throw new Error('InvalidArgumentException');\n }\n kind = 'NeedToWrite';\n }\n this.addNamespace(prefix, ns, kind);\n };\n XmlWriter.prototype.pushNamespaceExplicit = function (prefix, ns) {\n var existingNsIndex = this.lookupNamespaceIndex(prefix);\n if (existingNsIndex !== -1) {\n if (existingNsIndex > this.elementStack[this.elementStack.length - 1].previousTop) {\n this.namespaceStack[existingNsIndex].kind = 'Written';\n return;\n }\n }\n this.addNamespace(prefix, ns, 'Written');\n return;\n };\n XmlWriter.prototype.addAttribute = function (prefix, localName, namespaceName) {\n var top = this.attributeStack.length;\n this.attributeStack.push(new XmlAttribute());\n this.attributeStack[top].set(prefix, localName, namespaceName);\n for (var i = 0; i < top; i++) {\n if (this.attributeStack[i].isDuplicate(prefix, localName, namespaceName)) {\n throw new Error('XmlException: duplicate attribute name');\n }\n }\n };\n XmlWriter.prototype.skipPushAndWrite = function (prefix, localName, namespace) {\n this.addAttribute(prefix, localName, namespace);\n this.writeStartAttributeInternal(prefix, localName, namespace);\n };\n XmlWriter.prototype.checkName = function (text) {\n var format = /[ !@#$%^&*()+\\=\\[\\]{};':\"\\\\|,<>\\/?]/;\n if (format.test(text)) {\n throw new Error('InvalidArgumentException: invalid name character');\n }\n };\n return XmlWriter;\n}());\nexport { XmlWriter };\n/**\n * class for managing namespace collection\n */\nvar Namespace = /** @class */ (function () {\n function Namespace() {\n }\n /**\n * set value for current namespace instance\n * @param {string} prefix namespace's prefix\n * @param {string} namespaceUri namespace URI\n * @param {string} kind namespace kind\n */\n Namespace.prototype.set = function (prefix, namespaceUri, kind) {\n this.prefix = prefix;\n this.namespaceUri = namespaceUri;\n this.kind = kind;\n };\n /**\n * Releases the resources used by Namespace\n */\n Namespace.prototype.destroy = function () {\n this.prefix = undefined;\n this.namespaceUri = undefined;\n this.kind = undefined;\n };\n return Namespace;\n}());\nexport { Namespace };\n/**\n * class for managing element collection\n */\nvar XmlElement = /** @class */ (function () {\n function XmlElement() {\n }\n /**\n * set value of current element\n * @param {string} prefix - element prefix\n * @param {string} localName - element local name\n * @param {string} namespaceUri -namespace URI\n * @param {string} previousTop - previous namespace top\n */\n XmlElement.prototype.set = function (prefix, localName, namespaceUri, previousTop) {\n this.previousTop = previousTop;\n this.prefix = prefix;\n this.namespaceUri = namespaceUri;\n this.localName = localName;\n };\n /**\n * Releases the resources used by XmlElement\n */\n XmlElement.prototype.destroy = function () {\n this.previousTop = undefined;\n this.prefix = undefined;\n this.localName = undefined;\n this.namespaceUri = undefined;\n };\n return XmlElement;\n}());\nexport { XmlElement };\n/**\n * class for managing attribute collection\n */\nvar XmlAttribute = /** @class */ (function () {\n function XmlAttribute() {\n }\n /**\n * set value of current attribute\n * @param {string} prefix - namespace's prefix\n * @param {string} namespaceUri - namespace URI\n * @param {string} localName - attribute localName\n */\n XmlAttribute.prototype.set = function (prefix, localName, namespaceUri) {\n this.prefix = prefix;\n this.namespaceUri = namespaceUri;\n this.localName = localName;\n };\n /**\n * get whether the attribute is duplicate or not\n * @param {string} prefix - namespace's prefix\n * @param {string} namespaceUri - namespace URI\n * @param {string} localName - attribute localName\n */\n XmlAttribute.prototype.isDuplicate = function (prefix, localName, namespaceUri) {\n return ((this.localName === localName) && ((this.prefix === prefix) || (this.namespaceUri === namespaceUri)));\n };\n /**\n * Releases the resources used by XmlAttribute\n */\n XmlAttribute.prototype.destroy = function () {\n this.prefix = undefined;\n this.namespaceUri = undefined;\n this.localName = undefined;\n };\n return XmlAttribute;\n}());\nexport { XmlAttribute };\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable prefer-spread */\r\nimport { Component, Event, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { Browser, closest, detach, EventHandler, getInstance, select, selectAll, formatUnit } from '@syncfusion/ej2-base';\r\nimport { addClass, attributes, classList, isNullOrUndefined, L10n } from '@syncfusion/ej2-base';\r\nimport { remove, removeClass, rippleEffect } from '@syncfusion/ej2-base';\r\nimport { SplitButton, getModel } from '@syncfusion/ej2-splitbuttons';\r\nimport { Deferred } from '@syncfusion/ej2-splitbuttons';\r\nimport { Tooltip, getZindexPartial, Popup } from '@syncfusion/ej2-popups';\r\nimport { Input } from './../input/index';\r\nimport { NumericTextBox } from './../numerictextbox/index';\r\nimport { Slider } from './../slider/slider';\r\nvar APPLY = 'e-apply';\r\nvar CANCEL = 'e-cancel';\r\nvar CURRENT = 'e-current';\r\nvar CONTAINER = 'e-container';\r\nvar CTRLBTN = 'e-ctrl-btn';\r\nvar CTRLSWITCH = 'e-switch-ctrl-btn';\r\nvar DISABLED = 'e-disabled';\r\nvar FORMATSWITCH = 'e-value-switch-btn';\r\nvar HANDLER = 'e-handler';\r\nvar HEX = 'e-hex';\r\nvar HIDEHEX = 'e-hide-hex-value';\r\nvar HIDEOPACITY = 'e-hide-opacity';\r\nvar HIDERGBA = 'e-hide-switchable-value';\r\nvar HIDEVALUE = 'e-hide-value';\r\nvar HIDEVALUESWITCH = 'e-hide-valueswitcher';\r\nvar HSVAREA = 'e-hsv-color';\r\nvar HSVCONTAINER = 'e-hsv-container';\r\nvar INPUTWRAPPER = 'e-selected-value';\r\nvar MODESWITCH = 'e-mode-switch-btn';\r\nvar NOCOLOR = 'e-nocolor-item';\r\nvar OPACITY = 'e-opacity-value';\r\nvar PALETTES = 'e-palette';\r\nvar PALETTECONTENT = 'e-color-palette';\r\nvar PICKERCONTENT = 'e-color-picker';\r\nvar PREVIEW = 'e-preview-container';\r\nvar PREVIOUS = 'e-previous';\r\nvar RTL = 'e-rtl';\r\nvar SHOWVALUE = 'e-show-value';\r\nvar SELECT = 'e-selected';\r\nvar SPLITPREVIEW = 'e-split-preview';\r\nvar TILE = 'e-tile';\r\nvar presets = {\r\n default: ['#000000', '#f44336', '#e91e63', '#9c27b0', '#673ab7', '#2196f3', '#03a9f4', '#00bcd4', '#009688', '#ffeb3b',\r\n '#ffffff', '#ffebee', '#fce4ec', '#f3e5f5', '#ede7f6', '#e3f2fd', '#e1f5fe', '#e0f7fa', '#e0f2f1', '#fffde7',\r\n '#f2f2f2', '#ffcdd2', '#f8bbd0', '#e1bee7', '#d1c4e9', '#bbdefb', '#b3e5fc', '#b2ebf2', '#b2dfdb', '#fff9c4',\r\n '#e6e6e6', '#ef9a9a', '#f48fb1', '#ce93d8', '#b39ddb', '#90caf9', '#81d4fa', '#80deea', '#80cbc4', '#fff59d',\r\n '#cccccc', '#e57373', '#f06292', '#ba68c8', '#9575cd', '#64b5f6', '#4fc3f7', '#4dd0e1', '#4db6ac', '#fff176',\r\n '#b3b3b3', '#ef5350', '#ec407a', '#ab47bc', '#7e57c2', '#42a5f5', '#29b6f6', '#26c6da', '#26a69a', '#ffee58',\r\n '#999999', '#e53935', '#d81b60', '#8e24aa', '#5e35b1', '#1e88e5', '#039be5', '#00acc1', '#00897b', '#fdd835',\r\n '#808080', '#d32f2f', '#c2185b', '#7b1fa2', '#512da8', '#1976d2', '#0288d1', '#0097a7', '#00796b', '#fbc02d',\r\n '#666666', '#c62828', '#ad1457', '#6a1b9a', '#4527a0', '#1565c0', '#0277bd', '#00838f', '#00695c', '#f9a825',\r\n '#4d4d4d', '#b71c1c', '#880e4f', '#4a148c', '#311b92', '#0d47a1', '#01579b', '#006064', '#004d40', '#f57f17']\r\n};\r\n/**\r\n * ColorPicker component is a user interface to select and adjust color values. It provides supports for various\r\n * color specification like Red Green Blue, Hue Saturation Value and Hex codes.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar ColorPicker = /** @class */ (function (_super) {\r\n __extends(ColorPicker, _super);\r\n function ColorPicker(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n ColorPicker.prototype.preRender = function () {\r\n var ele = this.element;\r\n this.formElement = closest(this.element, 'form');\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n var localeText = { Apply: 'Apply', Cancel: 'Cancel', ModeSwitcher: 'Switch Mode' };\r\n this.l10n = new L10n('colorpicker', localeText, this.locale);\r\n if (ele.getAttribute('ejs-for') && !ele.getAttribute('name')) {\r\n ele.setAttribute('name', ele.id);\r\n }\r\n };\r\n /**\r\n * To Initialize the component rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ColorPicker.prototype.render = function () {\r\n this.initWrapper();\r\n if (this.inline) {\r\n this.createWidget();\r\n }\r\n else {\r\n this.createSplitBtn();\r\n }\r\n if (!this.enableOpacity) {\r\n addClass([this.container.parentElement], HIDEOPACITY);\r\n }\r\n this.renderComplete();\r\n };\r\n ColorPicker.prototype.initWrapper = function () {\r\n var wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\r\n this.element.parentNode.insertBefore(wrapper, this.element);\r\n wrapper.appendChild(this.element);\r\n attributes(this.element, { 'tabindex': '-1', 'spellcheck': 'false' });\r\n this.container = this.createElement('div', { className: CONTAINER });\r\n this.getWrapper().appendChild(this.container);\r\n var value = this.value ? this.roundValue(this.value).toLowerCase() : '#008000ff';\r\n if (this.noColor && this.mode === 'Palette' && this.value === '') {\r\n value = '';\r\n }\r\n var slicedValue = value.slice(0, 7);\r\n if (isNullOrUndefined(this.initialInputValue)) {\r\n this.initialInputValue = slicedValue;\r\n }\r\n this.element.value = slicedValue;\r\n if (this.enableOpacity) {\r\n this.setProperties({ 'value': value }, true);\r\n }\r\n else {\r\n this.setProperties({ 'value': slicedValue }, true);\r\n }\r\n if (this.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n if (this.cssClass) {\r\n addClass([wrapper], this.cssClass.split(' '));\r\n }\r\n this.tileRipple = rippleEffect(this.container, { selector: '.' + TILE });\r\n this.ctrlBtnRipple = rippleEffect(this.container, { selector: '.e-btn' });\r\n };\r\n ColorPicker.prototype.getWrapper = function () {\r\n return this.element.parentElement;\r\n };\r\n ColorPicker.prototype.createWidget = function () {\r\n if (this.mode === 'Palette') {\r\n this.createPalette();\r\n if (!this.inline) {\r\n this.firstPaletteFocus();\r\n }\r\n }\r\n else {\r\n this.createPicker();\r\n if (!this.inline) {\r\n this.getDragHandler().focus();\r\n }\r\n }\r\n this.isRgb = true;\r\n this.createInput();\r\n this.createCtrlBtn();\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n if (this.inline && this.disabled) {\r\n this.toggleDisabled(true);\r\n }\r\n if (Browser.isDevice) {\r\n this.refreshPopupPos();\r\n }\r\n };\r\n ColorPicker.prototype.createSplitBtn = function () {\r\n var _this = this;\r\n var splitButton = this.createElement('button', { className: 'e-split-colorpicker' });\r\n this.getWrapper().appendChild(splitButton);\r\n this.splitBtn = new SplitButton({\r\n iconCss: 'e-selected-color',\r\n target: this.container,\r\n disabled: this.disabled,\r\n enableRtl: this.enableRtl,\r\n createPopupOnClick: this.createPopupOnClick,\r\n open: this.onOpen.bind(this),\r\n click: function () {\r\n _this.trigger('change', {\r\n currentValue: { hex: _this.value.slice(0, 7), rgba: _this.convertToRgbString(_this.hexToRgb(_this.value)) },\r\n previousValue: { hex: null, rgba: null }, value: _this.value\r\n });\r\n }\r\n });\r\n this.splitBtn.createElement = this.createElement;\r\n this.splitBtn.appendTo(splitButton);\r\n var preview = this.createElement('span', { className: SPLITPREVIEW });\r\n select('.e-selected-color', splitButton).appendChild(preview);\r\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(this.value));\r\n var popupEle = this.getPopupEle();\r\n addClass([popupEle], 'e-colorpicker-popup');\r\n if (this.cssClass) {\r\n addClass([popupEle], this.cssClass.split(' '));\r\n }\r\n if (Browser.isDevice) {\r\n var popupInst = this.getPopupInst();\r\n popupInst.relateTo = document.body;\r\n popupInst.position = { X: 'center', Y: 'center' };\r\n popupInst.targetType = 'container';\r\n popupInst.collision = { X: 'fit', Y: 'fit' };\r\n popupInst.offsetY = 4;\r\n popupEle.style.zIndex = getZindexPartial(this.splitBtn.element).toString();\r\n }\r\n this.bindCallBackEvent();\r\n };\r\n ColorPicker.prototype.onOpen = function () {\r\n this.trigger('open', { element: this.container });\r\n };\r\n ColorPicker.prototype.getPopupInst = function () {\r\n return getInstance(this.getPopupEle(), Popup);\r\n };\r\n ColorPicker.prototype.bindCallBackEvent = function () {\r\n var _this = this;\r\n this.splitBtn.beforeOpen = function (args) {\r\n var callBackPromise = new Deferred();\r\n _this.trigger('beforeOpen', args, function (observeOpenArgs) {\r\n if (!observeOpenArgs.cancel) {\r\n var popupEle = _this.getPopupEle();\r\n popupEle.style.top = formatUnit(0 + pageYOffset);\r\n popupEle.style.left = formatUnit(0 + pageXOffset);\r\n popupEle.style.display = 'block';\r\n _this.createWidget();\r\n popupEle.style.display = '';\r\n if (Browser.isDevice) {\r\n _this.modal = _this.createElement('div');\r\n _this.modal.className = 'e-' + _this.getModuleName() + ' e-modal';\r\n _this.modal.style.display = 'none';\r\n document.body.insertBefore(_this.modal, popupEle);\r\n document.body.className += ' e-colorpicker-overflow';\r\n _this.modal.style.display = 'block';\r\n _this.modal.style.zIndex = (Number(popupEle.style.zIndex) - 1).toString();\r\n }\r\n }\r\n args.cancel = observeOpenArgs.cancel;\r\n callBackPromise.resolve(observeOpenArgs);\r\n });\r\n return callBackPromise;\r\n };\r\n this.splitBtn.beforeClose = function (args) {\r\n var callBackPromise = new Deferred();\r\n if (!isNullOrUndefined(args.event)) {\r\n var beforeCloseArgs = { element: _this.container, event: args.event, cancel: false };\r\n _this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\r\n if (Browser.isDevice && args.event.target === _this.modal) {\r\n observedCloseArgs.cancel = true;\r\n }\r\n if (!observedCloseArgs.cancel) {\r\n _this.onPopupClose();\r\n }\r\n args.cancel = observedCloseArgs.cancel;\r\n callBackPromise.resolve(observedCloseArgs);\r\n });\r\n }\r\n else {\r\n callBackPromise.resolve(args);\r\n }\r\n return callBackPromise;\r\n };\r\n };\r\n ColorPicker.prototype.onPopupClose = function () {\r\n this.unWireEvents();\r\n this.destroyOtherComp();\r\n this.container.style.width = '';\r\n select('.' + SPLITPREVIEW, this.splitBtn.element).style.backgroundColor\r\n = this.convertToRgbString(this.hexToRgb(this.value));\r\n this.container.innerHTML = '';\r\n removeClass([this.container], [PICKERCONTENT, PALETTECONTENT]);\r\n if (Browser.isDevice && this.modal) {\r\n removeClass([document.body], 'e-colorpicker-overflow');\r\n this.modal.style.display = 'none';\r\n this.modal.outerHTML = '';\r\n this.modal = null;\r\n }\r\n };\r\n ColorPicker.prototype.createPalette = function () {\r\n classList(this.container, [PALETTECONTENT], [PICKERCONTENT]);\r\n if (this.presetColors) {\r\n var paletteGroup = this.createElement('div', { className: 'e-custom-palette' });\r\n this.appendElement(paletteGroup);\r\n var keys = Object.keys(this.presetColors);\r\n if (keys.length === 1) {\r\n this.appendPalette(this.presetColors[keys[0]], keys[0], paletteGroup);\r\n }\r\n else {\r\n for (var i = 0, len = keys.length; i < len; i++) {\r\n this.appendPalette(this.presetColors[keys[i]], keys[i], paletteGroup);\r\n }\r\n }\r\n if (selectAll('.e-row', paletteGroup).length > 10) {\r\n addClass([paletteGroup], 'e-palette-group');\r\n }\r\n }\r\n else {\r\n this.appendPalette(presets.default, 'default');\r\n }\r\n if (this.mode === 'Palette' && !this.modeSwitcher && this.noColor) {\r\n this.setNoColor();\r\n }\r\n var width = parseInt(getComputedStyle(this.container).borderBottomWidth, 10);\r\n this.container.style.width = formatUnit(this.container.children[0].offsetWidth + width + width);\r\n this.rgb = this.hexToRgb(this.roundValue(this.value));\r\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\r\n };\r\n ColorPicker.prototype.firstPaletteFocus = function () {\r\n if (!select('.' + SELECT, this.container.children[0])) {\r\n selectAll('.' + PALETTES, this.container)[0].focus();\r\n }\r\n };\r\n ColorPicker.prototype.appendPalette = function (colors, key, refEle) {\r\n var palette = this.createElement('div', { className: PALETTES, attrs: { 'tabindex': '0' } });\r\n if (refEle) {\r\n refEle.appendChild(palette);\r\n }\r\n else {\r\n this.appendElement(palette);\r\n }\r\n var row;\r\n var tile;\r\n var roundedColor;\r\n for (var i = 0, len = colors.length; i < len; i++) {\r\n if (i === 0 || i % this.columns === 0) {\r\n row = this.createElement('div', {\r\n className: 'e-row', attrs: { 'role': 'presentation' }\r\n });\r\n palette.appendChild(row);\r\n }\r\n roundedColor = this.roundValue(colors[i]).toLowerCase();\r\n tile = this.createElement('span', {\r\n className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false' }\r\n });\r\n this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });\r\n row.appendChild(tile);\r\n if (this.value === roundedColor) {\r\n this.addTileSelection(tile);\r\n palette.focus();\r\n }\r\n tile.style.backgroundColor = this.convertToRgbString(this.hexToRgb(roundedColor));\r\n }\r\n };\r\n ColorPicker.prototype.setNoColor = function () {\r\n var noColorEle = this.container.querySelector('.e-row').children[0];\r\n noColorEle.classList.add(NOCOLOR);\r\n if (!this.value) {\r\n noColorEle.classList.add(SELECT);\r\n closest(noColorEle, '.' + PALETTES).focus();\r\n }\r\n ['aria-selected', 'aria-label'].forEach(function (attr) { noColorEle.removeAttribute(attr); });\r\n noColorEle.style.backgroundColor = '';\r\n };\r\n ColorPicker.prototype.appendElement = function (ele, insertPos) {\r\n if (insertPos === void 0) { insertPos = 0; }\r\n var refEle = this.container.children[insertPos];\r\n if (refEle) {\r\n this.container.insertBefore(ele, refEle);\r\n }\r\n else {\r\n this.container.appendChild(ele);\r\n }\r\n };\r\n ColorPicker.prototype.addTileSelection = function (ele) {\r\n ele.classList.add(SELECT);\r\n ele.setAttribute('aria-selected', 'true');\r\n };\r\n ColorPicker.prototype.createPicker = function () {\r\n classList(this.container, [PICKERCONTENT], [PALETTECONTENT]);\r\n var hsvContainer = this.createElement('div', { className: HSVCONTAINER });\r\n this.appendElement(hsvContainer);\r\n hsvContainer.appendChild(this.createElement('div', { className: HSVAREA }));\r\n var dragHandler = this.createElement('span', { className: HANDLER, attrs: { 'tabindex': '0' } });\r\n hsvContainer.appendChild(dragHandler);\r\n this.rgb = this.hexToRgb(this.value);\r\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\r\n this.setHsvContainerBg();\r\n this.setHandlerPosition();\r\n this.createSlider();\r\n this.createDragTooltip();\r\n };\r\n ColorPicker.prototype.setHsvContainerBg = function (h) {\r\n if (h === void 0) { h = this.hsv[0]; }\r\n this.getHsvContainer().style.backgroundColor = this.convertToRgbString(this.hsvToRgb(h, 100, 100, 1));\r\n };\r\n ColorPicker.prototype.getHsvContainer = function () {\r\n return select('.' + HSVCONTAINER, this.container);\r\n };\r\n ColorPicker.prototype.setHandlerPosition = function () {\r\n var dragHandler = this.getDragHandler();\r\n var hsvArea = select('.' + HSVAREA, this.container);\r\n if (this.enableRtl) {\r\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * Math.abs(100 - this.hsv[1]) / 100);\r\n }\r\n else {\r\n dragHandler.style.left = formatUnit(hsvArea.offsetWidth * this.hsv[1] / 100);\r\n }\r\n dragHandler.style.top = formatUnit(hsvArea.offsetHeight * (100 - this.hsv[2]) / 100);\r\n };\r\n ColorPicker.prototype.createSlider = function () {\r\n var sliderPreviewWrapper = this.createElement('div', { className: 'e-slider-preview' });\r\n this.appendElement(sliderPreviewWrapper, 1);\r\n this.createPreview(sliderPreviewWrapper);\r\n var sliderWrapper = this.createElement('div', { className: 'e-colorpicker-slider' });\r\n sliderPreviewWrapper.insertBefore(sliderWrapper, sliderPreviewWrapper.children[0]);\r\n var slider = this.createElement('div', { className: 'e-hue-slider' });\r\n sliderWrapper.appendChild(slider);\r\n this.hueSlider = new Slider({\r\n value: this.hsv[0],\r\n min: 0,\r\n max: 359,\r\n enableRtl: this.enableRtl,\r\n enabled: !this.disabled,\r\n change: this.hueChange.bind(this)\r\n });\r\n this.hueSlider.createElement = this.createElement;\r\n this.hueSlider.appendTo(slider);\r\n if (this.enableOpacity) {\r\n slider = this.createElement('div', { className: 'e-opacity-slider' });\r\n sliderWrapper.appendChild(slider);\r\n this.createOpacitySlider(slider);\r\n }\r\n };\r\n ColorPicker.prototype.createOpacitySlider = function (slider) {\r\n this.opacitySlider = new Slider({\r\n value: this.rgb[3] * 100,\r\n min: 0,\r\n max: 100,\r\n enableRtl: this.enableRtl,\r\n enabled: !this.disabled,\r\n change: this.opacityChange.bind(this)\r\n });\r\n this.opacitySlider.createElement = this.createElement;\r\n this.opacitySlider.appendTo(slider);\r\n var opacityBgTrack = this.createElement('div', { className: 'e-opacity-empty-track' });\r\n slider.appendChild(opacityBgTrack);\r\n this.updateOpacitySliderBg();\r\n };\r\n ColorPicker.prototype.updateOpacitySliderBg = function () {\r\n var direction = this.enableRtl ? 'to left' : 'to right';\r\n var opacityEle = select('.e-opacity-empty-track', this.opacitySlider.element);\r\n if (opacityEle) {\r\n opacityEle.style.background =\r\n 'linear-gradient(' + direction + ', rgba(' + this.rgb.slice(0, 3) + ', 0) 0%, ' +\r\n this.convertToRgbString(this.rgb.slice(0, 3)) + ' 100%)';\r\n }\r\n };\r\n ColorPicker.prototype.hueChange = function (args) {\r\n this.hsv[0] = args.value;\r\n this.setHsvContainerBg();\r\n this.convertToOtherFormat();\r\n };\r\n ColorPicker.prototype.opacityChange = function (args) {\r\n var value = args.value;\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.hsv[3] = value / 100;\r\n this.rgb[3] = value / 100;\r\n var cValue = this.rgbToHex(this.rgb);\r\n this.updateOpacityInput(value);\r\n var rgb = this.convertToRgbString(this.rgb);\r\n this.updatePreview(rgb);\r\n this.triggerEvent(cValue, pValue, rgb);\r\n };\r\n ColorPicker.prototype.updateOpacityInput = function (value) {\r\n if (this.enableOpacity && !this.getWrapper().classList.contains(HIDEVALUE)) {\r\n var opacityTextBoxInst = getInstance(select('.' + OPACITY, this.container), NumericTextBox);\r\n opacityTextBoxInst.value = value;\r\n opacityTextBoxInst.dataBind();\r\n }\r\n };\r\n ColorPicker.prototype.createPreview = function (parentEle) {\r\n var previewContainer = this.createElement('div', { className: PREVIEW });\r\n parentEle.appendChild(previewContainer);\r\n var preview = this.createElement('span', { className: 'e-preview ' + CURRENT });\r\n previewContainer.appendChild(preview);\r\n var colorValue = this.convertToRgbString(this.rgb);\r\n preview.style.backgroundColor = colorValue;\r\n preview = this.createElement('span', { className: 'e-preview ' + PREVIOUS });\r\n previewContainer.appendChild(preview);\r\n preview.style.backgroundColor = colorValue;\r\n };\r\n ColorPicker.prototype.isPicker = function () {\r\n return !this.container.classList.contains(PALETTECONTENT);\r\n };\r\n ColorPicker.prototype.getPopupEle = function () {\r\n return this.container.parentElement;\r\n };\r\n ColorPicker.prototype.createNumericInput = function (element, value, label, max) {\r\n var _this = this;\r\n var numericInput = new NumericTextBox({\r\n value: value,\r\n placeholder: label,\r\n min: 0,\r\n max: max,\r\n format: '###.##',\r\n showSpinButton: false,\r\n floatLabelType: 'Always',\r\n enableRtl: this.enableRtl,\r\n enabled: !this.disabled,\r\n readonly: this.isPicker() ? false : true,\r\n change: function (args) {\r\n if (args.event) {\r\n _this.inputHandler(args.event);\r\n }\r\n }\r\n });\r\n numericInput.createElement = this.createElement;\r\n numericInput.appendTo(element);\r\n };\r\n ColorPicker.prototype.createInput = function () {\r\n var isPicker = this.isPicker();\r\n var wrapper = this.getWrapper();\r\n if ((isPicker && !wrapper.classList.contains(HIDEVALUE)) || (!isPicker && wrapper.classList.contains(SHOWVALUE))) {\r\n var inputWrap = this.createElement('div', { className: INPUTWRAPPER });\r\n if (isPicker) {\r\n this.appendElement(inputWrap, 2);\r\n }\r\n else {\r\n this.appendElement(inputWrap, 1);\r\n }\r\n var container = this.createElement('div', { className: 'e-input-container' });\r\n inputWrap.appendChild(container);\r\n if (!wrapper.classList.contains(HIDEVALUESWITCH)) {\r\n this.appendValueSwitchBtn(inputWrap);\r\n }\r\n if (!wrapper.classList.contains(HIDEHEX)) {\r\n var hexInput = this.createElement('input', {\r\n className: HEX,\r\n attrs: { 'maxlength': '7', 'spellcheck': 'false' }\r\n });\r\n container.appendChild(hexInput);\r\n Input.createInput({\r\n element: hexInput,\r\n floatLabelType: 'Always',\r\n properties: {\r\n placeholder: 'HEX',\r\n enableRtl: this.enableRtl,\r\n enabled: !this.disabled,\r\n readonly: this.isPicker() ? false : true\r\n }\r\n }, this.createElement);\r\n Input.setValue(this.value.slice(0, 7), hexInput);\r\n hexInput.addEventListener('input', this.inputHandler.bind(this));\r\n }\r\n if (!wrapper.classList.contains(HIDERGBA)) {\r\n var label = void 0;\r\n var value = void 0;\r\n if (this.isRgb) {\r\n label = 'RGB';\r\n value = this.rgb;\r\n }\r\n else {\r\n label = 'HSV';\r\n value = this.hsv;\r\n }\r\n var clsName = ['rh', 'gs', 'bv'];\r\n for (var i = 0; i < 3; i++) {\r\n this.createNumericInput(container.appendChild(this.createElement('input', { className: 'e-' + clsName[i] + '-value' })), value[i], label[i], 255);\r\n }\r\n if (this.enableOpacity) {\r\n this.appendOpacityValue(container);\r\n }\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.appendOpacityValue = function (container) {\r\n this.createNumericInput(container.appendChild(this.createElement('input', { className: OPACITY })), this.rgb[3] * 100, 'A', 100);\r\n };\r\n ColorPicker.prototype.appendValueSwitchBtn = function (targetEle) {\r\n var valueSwitchBtn = this.createElement('button', {\r\n className: 'e-icons e-css e-btn e-flat e-icon-btn ' + FORMATSWITCH\r\n });\r\n targetEle.appendChild(valueSwitchBtn);\r\n if (this.isPicker() && !this.getWrapper().classList.contains(HIDERGBA)) {\r\n valueSwitchBtn.addEventListener('click', this.formatSwitchHandler.bind(this));\r\n }\r\n };\r\n ColorPicker.prototype.createCtrlBtn = function () {\r\n if (this.modeSwitcher || this.showButtons) {\r\n this.l10n.setLocale(this.locale);\r\n var btnWrapper = this.createElement('div', { className: CTRLSWITCH });\r\n this.container.appendChild(btnWrapper);\r\n if (this.showButtons) {\r\n var controlBtnWrapper = this.createElement('div', { className: CTRLBTN });\r\n btnWrapper.appendChild(controlBtnWrapper);\r\n var apply = this.l10n.getConstant('Apply');\r\n controlBtnWrapper.appendChild(this.createElement('button', {\r\n innerHTML: apply,\r\n className: 'e-btn e-css e-flat e-primary e-small ' + APPLY,\r\n attrs: { 'title': apply }\r\n }));\r\n var cancel = this.l10n.getConstant('Cancel');\r\n controlBtnWrapper.appendChild(this.createElement('button', {\r\n innerHTML: cancel,\r\n className: 'e-btn e-css e-flat e-small ' + CANCEL,\r\n attrs: { 'title': cancel }\r\n }));\r\n }\r\n if (this.modeSwitcher) {\r\n this.appendModeSwitchBtn();\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.appendModeSwitchBtn = function () {\r\n var modeSwitcher = this.createElement('button', {\r\n className: 'e-icons e-btn e-flat e-icon-btn ' + MODESWITCH, attrs: { title: this.l10n.getConstant('ModeSwitcher') }\r\n });\r\n select('.' + CTRLSWITCH, this.container).insertBefore(modeSwitcher, select('.' + CTRLBTN, this.container));\r\n };\r\n ColorPicker.prototype.createDragTooltip = function () {\r\n var _this = this;\r\n var tooltip = new Tooltip({\r\n opensOn: 'Custom',\r\n showTipPointer: false,\r\n cssClass: 'e-color-picker-tooltip',\r\n beforeOpen: function (args) {\r\n _this.tooltipEle = args.element;\r\n },\r\n animation: { open: { effect: 'None' }, close: { effect: 'None' } }\r\n });\r\n tooltip.createElement = this.createElement;\r\n tooltip.appendTo(this.container);\r\n tooltip.open(this.container);\r\n this.tooltipEle.style.zIndex = getZindexPartial(this.tooltipEle).toString();\r\n select('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' }));\r\n };\r\n ColorPicker.prototype.getTooltipInst = function () {\r\n return getInstance(this.container, Tooltip);\r\n };\r\n ColorPicker.prototype.setTooltipOffset = function (value) {\r\n this.getTooltipInst().offsetY = value;\r\n };\r\n ColorPicker.prototype.toggleDisabled = function (enable) {\r\n if (enable) {\r\n this.getWrapper().classList.add(DISABLED);\r\n }\r\n else {\r\n this.getWrapper().classList.remove(DISABLED);\r\n }\r\n if (this.showButtons) {\r\n ([].slice.call(selectAll('.e-btn', this.container))).forEach(function (ele) {\r\n if (enable) {\r\n attributes(ele, { 'disabled': '' });\r\n }\r\n else {\r\n ele.removeAttribute('disabled');\r\n }\r\n });\r\n }\r\n };\r\n ColorPicker.prototype.convertToRgbString = function (rgb) {\r\n return rgb.length ? rgb.length === 4 ? 'rgba(' + rgb.join() + ')' : 'rgb(' + rgb.join() + ')' : '';\r\n };\r\n ColorPicker.prototype.convertToHsvString = function (hsv) {\r\n return hsv.length === 4 ? 'hsva(' + hsv.join() + ')' : 'hsv(' + hsv.join() + ')';\r\n };\r\n ColorPicker.prototype.updateHsv = function () {\r\n this.hsv[1] = this.hsv[1] > 100 ? 100 : this.hsv[1];\r\n this.hsv[2] = this.hsv[2] > 100 ? 100 : this.hsv[2];\r\n this.setHandlerPosition();\r\n };\r\n ColorPicker.prototype.convertToOtherFormat = function (isKey) {\r\n if (isKey === void 0) { isKey = false; }\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.rgb = this.hsvToRgb.apply(this, this.hsv);\r\n var cValue = this.rgbToHex(this.rgb);\r\n var rgba = this.convertToRgbString(this.rgb);\r\n this.updatePreview(rgba);\r\n this.updateInput(cValue);\r\n this.triggerEvent(cValue, pValue, rgba, isKey);\r\n };\r\n ColorPicker.prototype.updateInput = function (value) {\r\n var wrapper = this.getWrapper();\r\n if (!wrapper.classList.contains(HIDEVALUE)) {\r\n if (!wrapper.classList.contains(HIDEHEX)) {\r\n Input.setValue(value.substr(0, 7), select('.' + HEX, this.container));\r\n }\r\n if (!wrapper.classList.contains(HIDERGBA)) {\r\n if (this.isRgb) {\r\n this.updateValue(this.rgb, false);\r\n }\r\n else {\r\n this.updateValue(this.hsv, false);\r\n }\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.updatePreview = function (value) {\r\n if (this.enableOpacity) {\r\n this.updateOpacitySliderBg();\r\n }\r\n select('.e-tip-transparent', this.tooltipEle).style.backgroundColor = value;\r\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = value;\r\n select('.' + PREVIEW + ' .' + PREVIOUS, this.container).style.backgroundColor\r\n = this.convertToRgbString(this.hexToRgb(this.value));\r\n };\r\n ColorPicker.prototype.getDragHandler = function () {\r\n return select('.' + HANDLER, this.container);\r\n };\r\n ColorPicker.prototype.removeTileSelection = function () {\r\n var selectedEle = [].slice.call(selectAll('.' + SELECT, this.container.children[0]));\r\n selectedEle.forEach(function (ele) {\r\n ele.classList.remove(SELECT);\r\n ele.setAttribute('aria-selected', 'false');\r\n });\r\n };\r\n ColorPicker.prototype.convertRgbToNumberArray = function (value) {\r\n return (value.slice(value.indexOf('(') + 1, value.indexOf(')'))).split(',').map(function (n, i) {\r\n return (i !== 3) ? parseInt(n, 10) : parseFloat(n);\r\n });\r\n };\r\n /**\r\n * To get color value in specified type.\r\n *\r\n * @param {string} value - Specify the color value.\r\n * @param {string} type - Specify the type to which the specified color needs to be converted.\r\n * @method getValue\r\n * @returns {string} - Color value\r\n */\r\n ColorPicker.prototype.getValue = function (value, type) {\r\n if (!value) {\r\n value = this.value;\r\n }\r\n type = !type ? 'hex' : type.toLowerCase();\r\n if (value[0] === 'r') {\r\n var cValue = this.convertRgbToNumberArray(value);\r\n if (type === 'hex' || type === 'hexa') {\r\n var hex = this.rgbToHex(cValue);\r\n return type === 'hex' ? hex.slice(0, 7) : hex;\r\n }\r\n else {\r\n if (type === 'hsv') {\r\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue.slice(0, 3)));\r\n }\r\n else {\r\n if (type === 'hsva') {\r\n return this.convertToHsvString(this.rgbToHsv.apply(this, cValue));\r\n }\r\n else {\r\n return 'null';\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (value[0] === 'h') {\r\n var cValue = this.hsvToRgb.apply(this, this.convertRgbToNumberArray(value));\r\n if (type === 'rgba') {\r\n return this.convertToRgbString(cValue);\r\n }\r\n else {\r\n if (type === 'hex' || type === 'hexa') {\r\n var hex = this.rgbToHex(cValue);\r\n return type === 'hex' ? hex.slice(0, 7) : hex;\r\n }\r\n else {\r\n if (type === 'rgb') {\r\n return this.convertToRgbString(cValue.slice(0, 3));\r\n }\r\n else {\r\n return 'null';\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n value = this.roundValue(value);\r\n var rgb = this.hexToRgb(value);\r\n if (type === 'rgb' || type === 'hsv') {\r\n rgb = rgb.slice(0, 3);\r\n }\r\n if (type === 'rgba' || type === 'rgb') {\r\n return this.convertToRgbString(rgb);\r\n }\r\n else {\r\n if (type === 'hsva' || type === 'hsv') {\r\n return this.convertToHsvString(this.rgbToHsv.apply(this, rgb));\r\n }\r\n else {\r\n if (type === 'hex') {\r\n return value.slice(0, 7);\r\n }\r\n else {\r\n if (type === 'a') {\r\n return rgb[3].toString();\r\n }\r\n else {\r\n return 'null';\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To show/hide ColorPicker popup based on current state of the SplitButton.\r\n *\r\n * @method toggle\r\n * @returns {void}\r\n */\r\n ColorPicker.prototype.toggle = function () {\r\n if (this.container.parentElement.classList.contains('e-popup-close')) {\r\n this.splitBtn.toggle();\r\n }\r\n else {\r\n this.closePopup(null);\r\n }\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - Module Name\r\n * @private\r\n */\r\n ColorPicker.prototype.getModuleName = function () {\r\n return 'colorpicker';\r\n };\r\n /**\r\n * Gets the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist data\r\n */\r\n ColorPicker.prototype.getPersistData = function () {\r\n return this.addOnPersist(['value']);\r\n };\r\n ColorPicker.prototype.wireEvents = function () {\r\n if (this.isPicker()) {\r\n var dragHandler = this.getDragHandler();\r\n EventHandler.add(dragHandler, 'keydown', this.pickerKeyDown, this);\r\n EventHandler.add(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown, this);\r\n if (this.modeSwitcher || this.showButtons) {\r\n this.addCtrlSwitchEvent();\r\n }\r\n EventHandler.add(select('.' + PREVIOUS, this.container), 'click', this.previewHandler, this);\r\n }\r\n else {\r\n EventHandler.add(this.container, 'click', this.paletteClickHandler, this);\r\n EventHandler.add(this.container, 'keydown', this.paletteKeyDown, this);\r\n }\r\n };\r\n ColorPicker.prototype.formResetHandler = function () {\r\n this.value = this.initialInputValue;\r\n attributes(this.element, { 'value': this.initialInputValue });\r\n };\r\n ColorPicker.prototype.addCtrlSwitchEvent = function () {\r\n var ctrlSwitchBtn = select('.' + CTRLSWITCH, this.container);\r\n if (ctrlSwitchBtn) {\r\n EventHandler.add(ctrlSwitchBtn, 'click', this.btnClickHandler, this);\r\n }\r\n };\r\n ColorPicker.prototype.pickerKeyDown = function (e) {\r\n switch (e.keyCode) {\r\n case 39:\r\n this.handlerDragPosition(1, this.enableRtl ? -1 : 1, e);\r\n break;\r\n case 37:\r\n this.handlerDragPosition(1, this.enableRtl ? 1 : -1, e);\r\n break;\r\n case 38:\r\n this.handlerDragPosition(2, 1, e);\r\n break;\r\n case 40:\r\n this.handlerDragPosition(2, -1, e);\r\n break;\r\n case 13: {\r\n e.preventDefault();\r\n var cValue = this.rgbToHex(this.rgb);\r\n this.enterKeyHandler(cValue, e);\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.enterKeyHandler = function (value, e) {\r\n this.triggerChangeEvent(value);\r\n if (!this.inline) {\r\n this.closePopup(e);\r\n this.splitBtn.element.focus();\r\n }\r\n };\r\n ColorPicker.prototype.closePopup = function (e) {\r\n var _this = this;\r\n var beforeCloseArgs = { element: this.container, event: e, cancel: false };\r\n this.trigger('beforeClose', beforeCloseArgs, function (observedcloseArgs) {\r\n if (!observedcloseArgs.cancel) {\r\n _this.splitBtn.toggle();\r\n _this.onPopupClose();\r\n }\r\n });\r\n };\r\n ColorPicker.prototype.triggerChangeEvent = function (value) {\r\n var hex = value.slice(0, 7);\r\n this.trigger('change', {\r\n currentValue: { hex: hex, rgba: this.convertToRgbString(this.rgb) },\r\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) },\r\n value: this.enableOpacity ? value : hex\r\n });\r\n if (this.enableOpacity) {\r\n this.setProperties({ 'value': value }, true);\r\n }\r\n else {\r\n this.setProperties({ 'value': hex }, true);\r\n }\r\n this.element.value = hex ? hex : '#000000';\r\n };\r\n ColorPicker.prototype.handlerDragPosition = function (prob, value, e) {\r\n e.preventDefault();\r\n this.hsv[prob] += value * (e.ctrlKey ? 1 : 3);\r\n if (this.hsv[prob] < 0) {\r\n this.hsv[prob] = 0;\r\n }\r\n this.updateHsv();\r\n this.convertToOtherFormat(true);\r\n };\r\n ColorPicker.prototype.handlerDown = function (e) {\r\n e.preventDefault();\r\n if (e.type === 'mousedown') {\r\n this.clientX = Math.abs(e.pageX - pageXOffset);\r\n this.clientY = Math.abs(e.pageY - pageYOffset);\r\n this.setTooltipOffset(8);\r\n }\r\n else {\r\n this.clientX = Math.abs(e.changedTouches[0].pageX - pageXOffset);\r\n this.clientY = Math.abs(e.changedTouches[0].pageY - pageYOffset);\r\n this.setTooltipOffset(-8);\r\n }\r\n this.setHsv(this.clientX, this.clientY);\r\n this.getDragHandler().style.transition = 'left .4s cubic-bezier(.25, .8, .25, 1), top .4s cubic-bezier(.25, .8, .25, 1)';\r\n this.updateHsv();\r\n this.convertToOtherFormat();\r\n this.getDragHandler().focus();\r\n EventHandler.add(document, 'mousemove touchmove', this.handlerMove, this);\r\n EventHandler.add(document, 'mouseup touchend', this.handlerEnd, this);\r\n };\r\n ColorPicker.prototype.handlerMove = function (e) {\r\n if (e.type !== 'touchmove') {\r\n e.preventDefault();\r\n }\r\n var x;\r\n var y;\r\n if (e.type === 'mousemove') {\r\n x = Math.abs(e.pageX - pageXOffset);\r\n y = Math.abs(e.pageY - pageYOffset);\r\n }\r\n else {\r\n x = Math.abs(e.changedTouches[0].pageX - pageXOffset);\r\n y = Math.abs(e.changedTouches[0].pageY - pageYOffset);\r\n }\r\n this.setHsv(x, y);\r\n var dragHandler = this.getDragHandler();\r\n this.updateHsv();\r\n this.convertToOtherFormat();\r\n this.getTooltipInst().refresh(dragHandler);\r\n if (!this.tooltipEle.style.transform) {\r\n if (Math.abs(this.clientX - x) > 8 || Math.abs(this.clientY - y) > 8) {\r\n select('.' + HSVAREA, this.container).style.cursor = 'pointer';\r\n dragHandler.style.transition = 'none';\r\n if (!this.inline) {\r\n this.tooltipEle.style.zIndex = (parseInt(this.getPopupEle().style.zIndex, 10) + 1).toString();\r\n }\r\n this.tooltipEle.style.transform = 'rotate(45deg)';\r\n dragHandler.classList.add('e-hide-handler');\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.setHsv = function (clientX, clientY) {\r\n var ele = select('.' + HSVAREA, this.container);\r\n var position = ele.getBoundingClientRect();\r\n if (this.enableRtl) {\r\n clientX = clientX > position.right ? 0 : Math.abs(clientX - position.right);\r\n }\r\n else {\r\n clientX = clientX > position.left ? Math.abs(clientX - position.left) : 0;\r\n }\r\n clientY = clientY > position.top ? Math.abs(clientY - position.top) : 0;\r\n this.hsv[2] = Math.round(Number(100 * (ele.offsetHeight -\r\n Math.max(0, Math.min(ele.offsetHeight, (clientY - ele.offsetTop)))) / ele.offsetHeight) * 10) / 10;\r\n this.hsv[1] =\r\n Math.round(Number(100 * (Math.max(0, Math.min(ele.offsetWidth, (clientX - ele.offsetLeft)))) / ele.offsetWidth) * 10) / 10;\r\n };\r\n ColorPicker.prototype.handlerEnd = function (e) {\r\n if (e.type !== 'touchend') {\r\n e.preventDefault();\r\n }\r\n EventHandler.remove(document, 'mousemove touchmove', this.handlerMove);\r\n EventHandler.remove(document, 'mouseup touchend', this.handlerEnd);\r\n var dragHandler = this.getDragHandler();\r\n select('.' + HSVAREA, this.container).style.cursor = '';\r\n if (this.tooltipEle.style.transform) {\r\n this.tooltipEle.style.transform = '';\r\n dragHandler.classList.remove('e-hide-handler');\r\n }\r\n if (!this.inline && !this.showButtons) {\r\n this.closePopup(e);\r\n }\r\n };\r\n ColorPicker.prototype.btnClickHandler = function (e) {\r\n var target = e.target;\r\n if (closest(target, '.' + MODESWITCH)) {\r\n e.stopPropagation();\r\n this.switchToPalette();\r\n }\r\n else {\r\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\r\n this.ctrlBtnClick(target, e);\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.switchToPalette = function () {\r\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Palette' });\r\n this.unWireEvents();\r\n this.destroyOtherComp();\r\n detach(select('.e-slider-preview', this.container));\r\n if (!this.getWrapper().classList.contains(HIDEVALUE)) {\r\n remove(select('.' + INPUTWRAPPER, this.container));\r\n }\r\n detach(this.getHsvContainer());\r\n this.createPalette();\r\n this.firstPaletteFocus();\r\n this.createInput();\r\n this.refreshPopupPos();\r\n this.wireEvents();\r\n this.trigger('onModeSwitch', { element: this.container, mode: 'Palette' });\r\n };\r\n ColorPicker.prototype.refreshPopupPos = function () {\r\n if (!this.inline) {\r\n var popupEle = this.getPopupEle();\r\n popupEle.style.left = formatUnit(0 + pageXOffset);\r\n popupEle.style.top = formatUnit(0 + pageYOffset);\r\n this.getPopupInst().refreshPosition(this.splitBtn.element.parentElement);\r\n }\r\n };\r\n ColorPicker.prototype.formatSwitchHandler = function () {\r\n if (this.isRgb) {\r\n this.updateValue(this.hsv, true, 3, [360, 100, 100]);\r\n this.isRgb = false;\r\n }\r\n else {\r\n this.updateValue(this.rgb, true, 2);\r\n this.isRgb = true;\r\n }\r\n };\r\n ColorPicker.prototype.updateValue = function (value, format, idx, max) {\r\n var clsName = ['e-rh-value', 'e-gs-value', 'e-bv-value'];\r\n var inst;\r\n for (var i = 0, len = clsName.length; i < len; i++) {\r\n inst = getInstance(select('.' + clsName[i], this.container), NumericTextBox);\r\n inst.value = Math.round(value[i]);\r\n if (format) {\r\n inst.placeholder = clsName[i].substr(idx, 1).toUpperCase();\r\n inst.max = max ? max[i] : 255;\r\n }\r\n inst.dataBind();\r\n }\r\n };\r\n ColorPicker.prototype.previewHandler = function (e) {\r\n var target = e.target;\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.rgb = this.convertRgbToNumberArray(target.style.backgroundColor);\r\n if (!this.rgb[3]) {\r\n this.rgb[3] = 1;\r\n }\r\n var cValue = this.rgbToHex(this.rgb);\r\n var hsv = this.rgbToHsv.apply(this, this.rgb);\r\n if (hsv[0] !== this.hsv[0]) {\r\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\r\n this.hueSlider.refresh();\r\n }\r\n this.setHsvContainerBg(hsv[0]);\r\n if (this.enableOpacity && hsv[3] !== this.hsv[3]) {\r\n this.opacitySlider.setProperties({ 'value': hsv[3] * 100 }, true);\r\n this.opacitySlider.refresh();\r\n this.updateOpacitySliderBg();\r\n }\r\n this.hsv = hsv;\r\n this.setHandlerPosition();\r\n this.updateInput(cValue);\r\n select('.' + PREVIEW + ' .' + CURRENT, this.container).style.backgroundColor = this.convertToRgbString(this.rgb);\r\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\r\n };\r\n ColorPicker.prototype.paletteClickHandler = function (e) {\r\n e.preventDefault();\r\n var target = e.target;\r\n if (target.classList.contains(TILE)) {\r\n this.removeTileSelection();\r\n this.addTileSelection(target);\r\n if (target.classList.contains(NOCOLOR)) {\r\n this.noColorTile();\r\n }\r\n else {\r\n var cValue = target.getAttribute('aria-label');\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.rgb = this.hexToRgb(this.roundValue(cValue));\r\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\r\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\r\n this.updateInput(cValue);\r\n }\r\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb));\r\n }\r\n if (!this.inline && !this.showButtons) {\r\n this.closePopup(e);\r\n }\r\n }\r\n else {\r\n if (closest(target, '.' + MODESWITCH)) {\r\n this.switchToPicker();\r\n }\r\n else {\r\n if (target.classList.contains(APPLY) || target.classList.contains(CANCEL)) {\r\n this.ctrlBtnClick(target, e);\r\n }\r\n else {\r\n if (this.getWrapper().classList.contains(SHOWVALUE) && closest(target, '.' + FORMATSWITCH)) {\r\n this.formatSwitchHandler();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.noColorTile = function (isKey) {\r\n if (isKey === void 0) { isKey = false; }\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.rgb = [];\r\n this.hsv = [];\r\n this.triggerEvent('', pValue, '', isKey);\r\n };\r\n ColorPicker.prototype.switchToPicker = function () {\r\n var wrapper = this.getWrapper();\r\n this.trigger('beforeModeSwitch', { element: this.container, mode: 'Picker' });\r\n this.unWireEvents();\r\n ([].slice.call(selectAll('.' + PALETTES, this.container))).forEach(function (ele) {\r\n detach(ele);\r\n });\r\n if (wrapper.classList.contains(SHOWVALUE)) {\r\n detach(select('.' + INPUTWRAPPER, this.container));\r\n }\r\n this.container.style.width = '';\r\n var grpEle = select('.e-custom-palette', this.container);\r\n if (this.presetColors) {\r\n remove(grpEle);\r\n }\r\n this.createPicker();\r\n this.getDragHandler().focus();\r\n this.createInput();\r\n this.refreshPopupPos();\r\n this.wireEvents();\r\n this.trigger('onModeSwitch', { element: this.container, mode: 'Picker' });\r\n };\r\n ColorPicker.prototype.ctrlBtnClick = function (ele, e) {\r\n if (ele.classList.contains(APPLY)) {\r\n var cValue = this.rgbToHex(this.rgb);\r\n this.triggerChangeEvent(cValue);\r\n }\r\n if (!this.inline) {\r\n this.closePopup(e);\r\n this.splitBtn.element.focus();\r\n }\r\n };\r\n ColorPicker.prototype.paletteKeyDown = function (e) {\r\n var target = e.target;\r\n if (!target.classList.contains(PALETTES)) {\r\n return;\r\n }\r\n var selectedEle;\r\n var idx;\r\n var tiles = [].slice.call(selectAll('.' + TILE, target));\r\n var prevSelectedEle = (tiles.filter(function (tile) { return tile.classList.contains('e-selected'); })).pop();\r\n switch (!e.altKey && e.keyCode) {\r\n case 39:\r\n e.preventDefault();\r\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? -1 : 1)]\r\n : tiles[this.enableRtl ? tiles.length - 1 : 0];\r\n this.keySelectionChanges(selectedEle);\r\n break;\r\n case 37:\r\n e.preventDefault();\r\n selectedEle = prevSelectedEle ? tiles[this.tilePosition(tiles, prevSelectedEle, this.enableRtl ? 1 : -1)]\r\n : tiles[this.enableRtl ? 0 : tiles.length - 1];\r\n this.keySelectionChanges(selectedEle);\r\n break;\r\n case 38:\r\n e.preventDefault();\r\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, -this.columns) : 0;\r\n selectedEle = tiles[idx] ? tiles[idx] : tiles[idx - this.columns];\r\n this.keySelectionChanges(selectedEle);\r\n break;\r\n case 40:\r\n e.preventDefault();\r\n idx = prevSelectedEle ? this.tilePosition(tiles, prevSelectedEle, this.columns) : tiles.length - 1;\r\n if (tiles[idx]) {\r\n selectedEle = tiles[idx];\r\n }\r\n else {\r\n idx %= tiles.length;\r\n idx += tiles[tiles.length - 1].parentElement.childElementCount;\r\n selectedEle = tiles[idx];\r\n }\r\n this.keySelectionChanges(selectedEle);\r\n break;\r\n case 13:\r\n e.preventDefault();\r\n if (prevSelectedEle) {\r\n var cValue = prevSelectedEle.getAttribute('aria-label');\r\n this.enterKeyHandler(cValue ? cValue : '', e);\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.keySelectionChanges = function (newEle) {\r\n this.removeTileSelection();\r\n this.addTileSelection(newEle);\r\n if (newEle.classList.contains(NOCOLOR)) {\r\n this.noColorTile(true);\r\n }\r\n else {\r\n var cValue = newEle.getAttribute('aria-label');\r\n var pValue = this.rgbToHex(this.rgb);\r\n this.rgb = this.hexToRgb(cValue);\r\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\r\n if (this.getWrapper().classList.contains(SHOWVALUE)) {\r\n this.updateInput(cValue);\r\n }\r\n this.triggerEvent(cValue, pValue, this.convertToRgbString(this.rgb), true);\r\n }\r\n };\r\n ColorPicker.prototype.tilePosition = function (items, element, cIdx) {\r\n items = Array.prototype.slice.call(items);\r\n var n = items.length;\r\n var emptyCount = this.columns - items[n - 1].parentElement.childElementCount;\r\n var idx = items.indexOf(element);\r\n idx += cIdx;\r\n if (idx < 0) {\r\n idx += n + emptyCount;\r\n }\r\n else {\r\n idx %= n + emptyCount;\r\n }\r\n return idx;\r\n };\r\n ColorPicker.prototype.inputHandler = function (e) {\r\n var target = e.target;\r\n if (!target.value.length) {\r\n return;\r\n }\r\n var hsv;\r\n var pValue;\r\n var label = select('.e-float-text', target.parentElement).textContent;\r\n switch (label) {\r\n case 'HEX': {\r\n var value = '';\r\n if ((target.value[0] === '#' && target.value.length !== 5) || (target.value[0] !== '#' && target.value.length !== 4)) {\r\n value = this.roundValue(target.value);\r\n }\r\n if (value.length === 9) {\r\n pValue = this.rgbToHex(this.rgb);\r\n this.rgb = this.hexToRgb(value + value.substr(-2));\r\n this.inputValueChange(this.rgbToHsv.apply(this, this.rgb), pValue, target.value);\r\n }\r\n else {\r\n return;\r\n }\r\n break;\r\n }\r\n case 'R':\r\n if (this.rgb[0] !== Number(target.value)) {\r\n pValue = this.rgbToHex(this.rgb);\r\n this.rgb[0] = Number(target.value);\r\n hsv = this.rgbToHsv.apply(this, this.rgb);\r\n this.inputValueChange(hsv, pValue);\r\n }\r\n break;\r\n case 'G':\r\n if (this.rgb[1] !== Number(target.value)) {\r\n pValue = this.rgbToHex(this.rgb);\r\n this.rgb[1] = Number(target.value);\r\n hsv = this.rgbToHsv.apply(this, this.rgb);\r\n this.inputValueChange(hsv, pValue);\r\n }\r\n break;\r\n case 'B':\r\n if (this.rgb[2] !== Number(target.value)) {\r\n pValue = this.rgbToHex(this.rgb);\r\n this.rgb[2] = Number(target.value);\r\n hsv = this.rgbToHsv.apply(this, this.rgb);\r\n this.inputValueChange(hsv, pValue);\r\n }\r\n break;\r\n case 'H':\r\n this.hueSlider.value = Number(target.value);\r\n break;\r\n case 'S':\r\n if (this.hsv[1] !== Number(target.value)) {\r\n this.hsv[1] = Number(target.value);\r\n this.updateHsv();\r\n this.convertToOtherFormat();\r\n }\r\n break;\r\n case 'V':\r\n if (this.hsv[2] !== Number(target.value)) {\r\n this.hsv[2] = Number(target.value);\r\n this.updateHsv();\r\n this.convertToOtherFormat();\r\n }\r\n break;\r\n case 'A':\r\n this.opacitySlider.value = Number(target.value);\r\n break;\r\n }\r\n };\r\n ColorPicker.prototype.inputValueChange = function (hsv, pValue, value) {\r\n if (hsv[0] !== this.hsv[0]) {\r\n this.hueSlider.setProperties({ 'value': hsv[0] }, true);\r\n this.hueSlider.refresh();\r\n this.setHsvContainerBg(hsv[0]);\r\n }\r\n this.hsv = hsv;\r\n var cValue = this.rgbToHex(this.rgb);\r\n this.setHandlerPosition();\r\n this.updateInput(value ? value : cValue);\r\n var rgba = this.convertToRgbString(this.rgb);\r\n this.updatePreview(rgba);\r\n this.triggerEvent(cValue, pValue, rgba);\r\n };\r\n ColorPicker.prototype.triggerEvent = function (cValue, pValue, rgba, isKey) {\r\n if (isKey === void 0) { isKey = false; }\r\n var hex = cValue.slice(0, 7);\r\n if (!this.showButtons && !isKey) {\r\n this.trigger('change', { currentValue: { hex: hex, rgba: rgba },\r\n previousValue: { hex: this.value.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(this.value)) }, value: cValue });\r\n if (this.enableOpacity) {\r\n this.setProperties({ 'value': cValue }, true);\r\n }\r\n else {\r\n this.setProperties({ 'value': hex }, true);\r\n }\r\n this.element.value = hex ? hex : '#000000';\r\n }\r\n else {\r\n this.trigger('select', {\r\n currentValue: { hex: hex, rgba: rgba },\r\n previousValue: { hex: pValue.slice(0, 7), rgba: this.convertToRgbString(this.hexToRgb(pValue)) }\r\n });\r\n }\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers.\r\n * Also it maintains the initial input element from the DOM.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n ColorPicker.prototype.destroy = function () {\r\n var _this = this;\r\n var wrapper = this.getWrapper();\r\n _super.prototype.destroy.call(this);\r\n ['tabindex', 'spellcheck'].forEach(function (attr) { _this.element.removeAttribute(attr); });\r\n if (this.inline) {\r\n this.unWireEvents();\r\n this.destroyOtherComp();\r\n }\r\n else {\r\n if (this.isPopupOpen()) {\r\n this.unWireEvents();\r\n this.destroyOtherComp();\r\n }\r\n this.splitBtn.destroy();\r\n this.splitBtn = null;\r\n }\r\n this.tileRipple();\r\n this.tileRipple = null;\r\n this.ctrlBtnRipple();\r\n this.ctrlBtnRipple = null;\r\n if (this.element.nextElementSibling) {\r\n detach(this.element.nextElementSibling);\r\n }\r\n if (wrapper) {\r\n wrapper.parentElement.insertBefore(this.element, wrapper);\r\n detach(wrapper);\r\n }\r\n this.container = null;\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\r\n }\r\n };\r\n ColorPicker.prototype.destroyOtherComp = function () {\r\n if (this.isPicker()) {\r\n this.hueSlider.destroy();\r\n if (this.enableOpacity) {\r\n this.opacitySlider.destroy();\r\n this.opacitySlider = null;\r\n }\r\n this.hueSlider = null;\r\n var tooltipInst = this.getTooltipInst();\r\n tooltipInst.close();\r\n tooltipInst.destroy();\r\n this.tooltipEle = null;\r\n }\r\n };\r\n ColorPicker.prototype.isPopupOpen = function () {\r\n return this.getPopupEle().classList.contains('e-popup-open');\r\n };\r\n ColorPicker.prototype.unWireEvents = function () {\r\n if (this.isPicker()) {\r\n var dragHandler = this.getDragHandler();\r\n EventHandler.remove(dragHandler, 'keydown', this.pickerKeyDown);\r\n EventHandler.remove(this.getHsvContainer(), 'mousedown touchstart', this.handlerDown);\r\n if (this.modeSwitcher || this.showButtons) {\r\n EventHandler.remove(select('.' + CTRLSWITCH, this.container), 'click', this.btnClickHandler);\r\n }\r\n EventHandler.remove(select('.' + PREVIOUS, this.container), 'click', this.previewHandler);\r\n }\r\n else {\r\n EventHandler.remove(this.container, 'click', this.paletteClickHandler);\r\n EventHandler.remove(this.container, 'keydown', this.paletteKeyDown);\r\n }\r\n };\r\n ColorPicker.prototype.roundValue = function (value) {\r\n if (!value) {\r\n return '';\r\n }\r\n if (value[0] !== '#') {\r\n value = '#' + value;\r\n }\r\n var len = value.length;\r\n if (len === 4) {\r\n value += 'f';\r\n len = 5;\r\n }\r\n if (len === 5) {\r\n var tempValue = '';\r\n for (var i = 1, len_1 = value.length; i < len_1; i++) {\r\n tempValue += (value.charAt(i) + value.charAt(i));\r\n }\r\n value = '#' + tempValue;\r\n len = 9;\r\n }\r\n if (len === 7) {\r\n value += 'ff';\r\n }\r\n return value;\r\n };\r\n ColorPicker.prototype.hexToRgb = function (hex) {\r\n if (!hex) {\r\n return [];\r\n }\r\n hex = hex.trim();\r\n if (hex.length !== 9) {\r\n hex = this.roundValue(hex);\r\n }\r\n var opacity = Number((parseInt(hex.slice(-2), 16) / 255).toFixed(2));\r\n hex = hex.slice(1, 7);\r\n var bigInt = parseInt(hex, 16);\r\n var h = [];\r\n h.push((bigInt >> 16) & 255);\r\n h.push((bigInt >> 8) & 255);\r\n h.push(bigInt & 255);\r\n h.push(opacity);\r\n return h;\r\n };\r\n ColorPicker.prototype.rgbToHsv = function (r, g, b, opacity) {\r\n if (this.rgb && !this.rgb.length) {\r\n return [];\r\n }\r\n r /= 255;\r\n g /= 255;\r\n b /= 255;\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var v = max;\r\n var d = max - min;\r\n var s = max === 0 ? 0 : d / max;\r\n if (max === min) {\r\n h = 0;\r\n }\r\n else {\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n }\r\n h /= 6;\r\n }\r\n var hsv = [Math.round(h * 360), Math.round(s * 1000) / 10, Math.round(v * 1000) / 10];\r\n if (!isNullOrUndefined(opacity)) {\r\n hsv.push(opacity);\r\n }\r\n return hsv;\r\n };\r\n ColorPicker.prototype.hsvToRgb = function (h, s, v, opacity) {\r\n var r;\r\n var g;\r\n var b;\r\n s /= 100;\r\n v /= 100;\r\n if (s === 0) {\r\n r = g = b = v;\r\n return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255), opacity];\r\n }\r\n h /= 60;\r\n var i = Math.floor(h);\r\n var f = h - i;\r\n var p = v * (1 - s);\r\n var q = v * (1 - s * f);\r\n var t = v * (1 - s * (1 - f));\r\n switch (i) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n default:\r\n r = v;\r\n g = p;\r\n b = q;\r\n }\r\n var rgb = [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)];\r\n if (!isNullOrUndefined(opacity)) {\r\n rgb.push(opacity);\r\n }\r\n return rgb;\r\n };\r\n ColorPicker.prototype.rgbToHex = function (rgb) {\r\n return rgb.length ? ('#' + this.hex(rgb[0]) + this.hex(rgb[1]) + this.hex(rgb[2]) +\r\n (!isNullOrUndefined(rgb[3]) ? (rgb[3] !== 0 ? (Math.round(rgb[3] * 255) + 0x10000).toString(16).substr(-2) : '00') : '')) : '';\r\n };\r\n ColorPicker.prototype.hex = function (x) {\r\n return ('0' + x.toString(16)).slice(-2);\r\n };\r\n ColorPicker.prototype.changeModeSwitcherProp = function (prop) {\r\n var ctrlSwitchWrapper = select('.' + CTRLSWITCH, this.container);\r\n if (prop) {\r\n if (ctrlSwitchWrapper) {\r\n this.appendModeSwitchBtn();\r\n }\r\n else {\r\n this.createCtrlBtn();\r\n if (this.isPicker() && !this.disabled) {\r\n this.addCtrlSwitchEvent();\r\n }\r\n }\r\n }\r\n else {\r\n if (ctrlSwitchWrapper) {\r\n if (this.showButtons) {\r\n detach(select('.' + MODESWITCH, ctrlSwitchWrapper));\r\n }\r\n else {\r\n remove(ctrlSwitchWrapper);\r\n }\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.changeShowBtnProps = function (prop) {\r\n var ctrlBtnWrapper = select('.' + CTRLSWITCH, this.container);\r\n if (prop) {\r\n if (ctrlBtnWrapper) {\r\n remove(ctrlBtnWrapper);\r\n }\r\n this.createCtrlBtn();\r\n if (this.isPicker() && !this.disabled) {\r\n this.addCtrlSwitchEvent();\r\n }\r\n }\r\n else {\r\n if (this.modeSwitcher) {\r\n detach(select('.' + CTRLBTN, ctrlBtnWrapper));\r\n }\r\n else {\r\n remove(ctrlBtnWrapper);\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.changeValueProp = function (newProp) {\r\n if (this.isPicker()) {\r\n this.rgb = this.hexToRgb(newProp);\r\n this.hsv = this.rgbToHsv.apply(this, this.rgb);\r\n this.setHandlerPosition();\r\n detach(closest(this.hueSlider.element, '.e-slider-preview'));\r\n this.createSlider();\r\n this.setHsvContainerBg();\r\n this.updateInput(newProp);\r\n if (this.rgb.length === 4) {\r\n this.updateOpacityInput(this.rgb[3] * 100);\r\n }\r\n }\r\n else {\r\n this.removeTileSelection();\r\n var ele = this.container.querySelector('span[aria-label=\"' + this.roundValue(newProp) + '\"]');\r\n if (ele) {\r\n this.addTileSelection(ele);\r\n }\r\n }\r\n };\r\n ColorPicker.prototype.setInputEleProps = function () {\r\n remove(select('.' + INPUTWRAPPER, this.container));\r\n this.createInput();\r\n };\r\n ColorPicker.prototype.changeDisabledProp = function (newProp) {\r\n if (this.isPicker()) {\r\n this.hueSlider.enabled = !newProp;\r\n this.opacitySlider.enabled = !newProp;\r\n this.setInputEleProps();\r\n }\r\n if (newProp) {\r\n this.toggleDisabled(true);\r\n this.unWireEvents();\r\n }\r\n else {\r\n this.toggleDisabled(false);\r\n this.wireEvents();\r\n }\r\n };\r\n ColorPicker.prototype.changeCssClassProps = function (newProp, oldProp) {\r\n var wrapper = this.getWrapper();\r\n var popupWrapper = this.getPopupEle();\r\n if (oldProp) {\r\n removeClass([wrapper, popupWrapper], oldProp.split(' '));\r\n }\r\n if (newProp) {\r\n addClass([wrapper, popupWrapper], newProp.split(' '));\r\n }\r\n };\r\n ColorPicker.prototype.changeRtlProps = function (newProp) {\r\n if (newProp) {\r\n addClass([this.getWrapper()], 'e-rtl');\r\n }\r\n else {\r\n removeClass([this.getWrapper()], 'e-rtl');\r\n }\r\n };\r\n ColorPicker.prototype.changePaletteProps = function () {\r\n detach(this.container.children[0]);\r\n this.container.style.width = '';\r\n this.createPalette();\r\n };\r\n ColorPicker.prototype.changeOpacityProps = function (newProp) {\r\n var wrapper = this.getWrapper();\r\n if (newProp) {\r\n removeClass([this.container.parentElement], HIDEOPACITY);\r\n this.createOpacitySlider(select('.e-colorpicker-slider', this.container).appendChild(this.createElement('div', { className: 'e-opacity-slider' })));\r\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\r\n this.appendOpacityValue(select('.e-input-container', this.container));\r\n }\r\n }\r\n else {\r\n addClass([this.container.parentElement], HIDEOPACITY);\r\n this.opacitySlider.destroy();\r\n remove(this.opacitySlider.element);\r\n this.opacitySlider = null;\r\n if (!wrapper.classList.contains(HIDEVALUE) && !wrapper.classList.contains(HIDERGBA)) {\r\n remove(select('.' + OPACITY, this.container).parentElement);\r\n }\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {ColorPickerModel} newProp - Specifies new properties\r\n * @param {ColorPickerModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n * @private\r\n */\r\n ColorPicker.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var _this = this;\r\n if (!isNullOrUndefined(newProp.value)) {\r\n var value = this.roundValue(newProp.value);\r\n if (value.length === 9) {\r\n this.element.value = this.roundValue(value).slice(0, 7);\r\n var preview = this.splitBtn && select('.' + SPLITPREVIEW, this.splitBtn.element);\r\n if (preview) {\r\n preview.style.backgroundColor = this.convertToRgbString(this.hexToRgb(newProp.value));\r\n }\r\n }\r\n else {\r\n this.value = oldProp.value;\r\n }\r\n }\r\n if (!this.inline && isNullOrUndefined(newProp.inline)) {\r\n var otherCompModel = ['disabled', 'enableRtl'];\r\n this.splitBtn.setProperties(getModel(newProp, otherCompModel));\r\n if (!this.isPopupOpen()) {\r\n this.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\r\n this.changeRtlProps(newProp.enableRtl);\r\n return;\r\n }\r\n }\r\n var _loop_1 = function (prop) {\r\n switch (prop) {\r\n case 'inline':\r\n if (newProp.inline) {\r\n this_1.getWrapper().appendChild(this_1.container);\r\n this_1.splitBtn.destroy();\r\n detach(this_1.element.nextElementSibling);\r\n if (!this_1.container.children.length) {\r\n this_1.createWidget();\r\n }\r\n }\r\n else {\r\n this_1.destroyOtherComp();\r\n this_1.unWireEvents();\r\n this_1.container.innerHTML = '';\r\n this_1.createSplitBtn();\r\n }\r\n break;\r\n case 'cssClass': {\r\n this_1.changeCssClassProps(newProp.cssClass, oldProp.cssClass);\r\n var props = newProp.cssClass.split(' ').concat(oldProp.cssClass.split(' '));\r\n props = props.reduce(function (a, b) { if (a.indexOf(b) < 0) {\r\n a.push(b);\r\n } return a; }, []);\r\n var count_1 = 0;\r\n props.forEach(function (cls) {\r\n if (count_1 === 0 &&\r\n (cls === HIDEVALUE || cls === HIDEVALUESWITCH || cls === SHOWVALUE || cls === HIDEHEX || cls === HIDERGBA)) {\r\n var inputWrap = select('.' + INPUTWRAPPER, _this.container);\r\n if (inputWrap) {\r\n remove(select('.' + INPUTWRAPPER, _this.container));\r\n }\r\n _this.createInput();\r\n count_1++;\r\n }\r\n });\r\n break;\r\n }\r\n case 'enableRtl':\r\n if (this_1.isPicker()) {\r\n this_1.hueSlider.enableRtl = newProp.enableRtl;\r\n if (this_1.enableOpacity) {\r\n this_1.opacitySlider.enableRtl = newProp.enableRtl;\r\n }\r\n this_1.setInputEleProps();\r\n }\r\n this_1.changeRtlProps(newProp.enableRtl);\r\n break;\r\n case 'disabled':\r\n this_1.changeDisabledProp(newProp.disabled);\r\n break;\r\n case 'value':\r\n if (this_1.value !== oldProp.value) {\r\n this_1.changeValueProp(newProp.value);\r\n }\r\n break;\r\n case 'showButtons':\r\n this_1.changeShowBtnProps(newProp.showButtons);\r\n break;\r\n case 'mode':\r\n if (newProp.mode === 'Picker') {\r\n this_1.switchToPicker();\r\n }\r\n else {\r\n this_1.switchToPalette();\r\n }\r\n break;\r\n case 'modeSwitcher':\r\n this_1.changeModeSwitcherProp(newProp.modeSwitcher);\r\n break;\r\n case 'columns':\r\n case 'presetColors':\r\n if (!this_1.isPicker()) {\r\n this_1.changePaletteProps();\r\n }\r\n break;\r\n case 'noColor':\r\n if (newProp.noColor) {\r\n if (this_1.mode === 'Palette' && !this_1.modeSwitcher) {\r\n this_1.setNoColor();\r\n }\r\n }\r\n else {\r\n this_1.changePaletteProps();\r\n }\r\n break;\r\n case 'enableOpacity':\r\n this_1.changeOpacityProps(newProp.enableOpacity);\r\n break;\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n _loop_1(prop);\r\n }\r\n };\r\n /**\r\n * Sets the focus to Colorpicker\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n ColorPicker.prototype.focusIn = function () {\r\n this.element.parentElement.focus();\r\n };\r\n __decorate([\r\n Property('#008000ff')\r\n ], ColorPicker.prototype, \"value\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ColorPicker.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ColorPicker.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('Picker')\r\n ], ColorPicker.prototype, \"mode\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ColorPicker.prototype, \"modeSwitcher\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ColorPicker.prototype, \"presetColors\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ColorPicker.prototype, \"showButtons\", void 0);\r\n __decorate([\r\n Property(10)\r\n ], ColorPicker.prototype, \"columns\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ColorPicker.prototype, \"inline\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ColorPicker.prototype, \"noColor\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ColorPicker.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ColorPicker.prototype, \"enableOpacity\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ColorPicker.prototype, \"createPopupOnClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"beforeTileRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"beforeModeSwitch\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"onModeSwitch\", void 0);\r\n __decorate([\r\n Event()\r\n ], ColorPicker.prototype, \"created\", void 0);\r\n ColorPicker = __decorate([\r\n NotifyPropertyChanges\r\n ], ColorPicker);\r\n return ColorPicker;\r\n}(Component));\r\nexport { ColorPicker };\r\n","/**\n * ColorPicker modules\n */\nexport * from './color-picker';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { selectAll, select, createElement, Base, detach } from '@syncfusion/ej2-base';\r\nimport { extend, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\r\nimport { Property, NotifyPropertyChanges, Event, onIntlChange } from '@syncfusion/ej2-base';\r\nimport { L10n } from '@syncfusion/ej2-base';\r\n/**\r\n * global declarations\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport var regex = {\r\n /* eslint-disable no-useless-escape */\r\n EMAIL: new RegExp('^[A-Za-z0-9._%+-]{1,}@[A-Za-z0-9._%+-]{1,}([.]{1}[a-zA-Z0-9]{2,}' +\r\n '|[.]{1}[a-zA-Z0-9]{2,4}[.]{1}[a-zA-Z0-9]{2,4})$'),\r\n URL: /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$/m,\r\n DATE_ISO: new RegExp('^([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$'),\r\n DIGITS: new RegExp('^[0-9]*$'),\r\n PHONE: new RegExp('^[+]?[0-9]{9,13}$'),\r\n CREDITCARD: new RegExp('^\\\\d{13,16}$')\r\n /* eslint-enable no-useless-escape */\r\n};\r\n/**\r\n * ErrorOption values\r\n *\r\n * @private\r\n */\r\nexport var ErrorOption;\r\n(function (ErrorOption) {\r\n /**\r\n * Defines the error message.\r\n */\r\n ErrorOption[ErrorOption[\"Message\"] = 0] = \"Message\";\r\n /**\r\n * Defines the error element type.\r\n */\r\n ErrorOption[ErrorOption[\"Label\"] = 1] = \"Label\";\r\n})(ErrorOption || (ErrorOption = {}));\r\n/**\r\n * FormValidator class enables you to validate the form fields based on your defined rules\r\n * ```html\r\n *
    \r\n * \r\n * \r\n *
    \r\n * \r\n * ```\r\n */\r\nvar FormValidator = /** @class */ (function (_super) {\r\n __extends(FormValidator, _super);\r\n /**\r\n * Initializes the FormValidator.\r\n *\r\n * @param {string | HTMLFormElement} element - Specifies the element to render as component.\r\n * @param {FormValidatorModel} options - Specifies the FormValidator model.\r\n * @private\r\n */\r\n function FormValidator(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.validated = [];\r\n _this.errorRules = [];\r\n _this.allowSubmit = false;\r\n _this.required = 'required';\r\n _this.infoElement = null;\r\n _this.inputElement = null;\r\n _this.selectQuery = 'input:not([type=reset]):not([type=button]), select, textarea';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n _this.localyMessage = {};\r\n /**\r\n * Specifies the default messages for validation rules.\r\n *\r\n * @default { List of validation message }\r\n */\r\n _this.defaultMessages = {\r\n required: 'This field is required.',\r\n email: 'Please enter a valid email address.',\r\n url: 'Please enter a valid URL.',\r\n date: 'Please enter a valid date.',\r\n dateIso: 'Please enter a valid date ( ISO ).',\r\n creditcard: 'Please enter valid card number',\r\n number: 'Please enter a valid number.',\r\n digits: 'Please enter only digits.',\r\n maxLength: 'Please enter no more than {0} characters.',\r\n minLength: 'Please enter at least {0} characters.',\r\n rangeLength: 'Please enter a value between {0} and {1} characters long.',\r\n range: 'Please enter a value between {0} and {1}.',\r\n max: 'Please enter a value less than or equal to {0}.',\r\n min: 'Please enter a value greater than or equal to {0}.',\r\n regex: 'Please enter a correct value.',\r\n tel: 'Please enter a valid phone number.',\r\n pattern: 'Please enter a correct pattern value.',\r\n equalTo: 'Please enter the valid match text'\r\n };\r\n if (typeof _this.rules === 'undefined') {\r\n _this.rules = {};\r\n }\r\n _this.l10n = new L10n('formValidator', _this.defaultMessages, _this.locale);\r\n if (_this.locale) {\r\n _this.localeFunc();\r\n }\r\n onIntlChange.on('notifyExternalChange', _this.afterLocalization, _this);\r\n element = typeof element === 'string' ? select(element, document) : element;\r\n // Set novalidate to prevent default HTML5 form validation\r\n if (_this.element != null) {\r\n _this.element.setAttribute('novalidate', '');\r\n _this.inputElements = selectAll(_this.selectQuery, _this.element);\r\n _this.createHTML5Rules();\r\n _this.wireEvents();\r\n }\r\n else {\r\n return undefined;\r\n }\r\n return _this;\r\n }\r\n FormValidator_1 = FormValidator;\r\n /* eslint-enable @typescript-eslint/no-explicit-any */\r\n /**\r\n * Add validation rules to the corresponding input element based on `name` attribute.\r\n *\r\n * @param {string} name `name` of form field.\r\n * @param {Object} rules Validation rules for the corresponding element.\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.addRules = function (name, rules) {\r\n if (name) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (this.rules.hasOwnProperty(name)) {\r\n extend(this.rules[name], rules, {});\r\n }\r\n else {\r\n this.rules[name] = rules;\r\n }\r\n }\r\n };\r\n /**\r\n * Remove validation to the corresponding field based on name attribute.\r\n * When no parameter is passed, remove all the validations in the form.\r\n *\r\n * @param {string} name Input name attribute value.\r\n * @param {string[]} rules List of validation rules need to be remove from the corresponding element.\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.removeRules = function (name, rules) {\r\n if (!name && !rules) {\r\n this.rules = {};\r\n }\r\n else if (this.rules[name] && !rules) {\r\n delete this.rules[name];\r\n }\r\n else if (!isNullOrUndefined(this.rules[name] && rules)) {\r\n for (var i = 0; i < rules.length; i++) {\r\n delete this.rules[name][rules[i]];\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Validate the current form values using defined rules.\r\n * Returns `true` when the form is valid otherwise `false`\r\n *\r\n * @param {string} selected - Optional parameter to validate specified element.\r\n * @returns {boolean}\r\n */\r\n FormValidator.prototype.validate = function (selected) {\r\n var rules = Object.keys(this.rules);\r\n if (selected && rules.length) {\r\n this.validateRules(selected);\r\n //filter the selected element it don't have any valid input element\r\n return rules.indexOf(selected) !== -1 && this.errorRules.filter(function (data) {\r\n return data.name === selected;\r\n }).length === 0;\r\n }\r\n else {\r\n this.errorRules = [];\r\n for (var _i = 0, rules_1 = rules; _i < rules_1.length; _i++) {\r\n var name_1 = rules_1[_i];\r\n this.validateRules(name_1);\r\n }\r\n return this.errorRules.length === 0;\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Reset the value of all the fields in form.\r\n *\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.reset = function () {\r\n this.element.reset();\r\n this.clearForm();\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Get input element by name.\r\n *\r\n * @param {string} name - Input element name attribute value.\r\n * @returns {HTMLInputElement}\r\n */\r\n FormValidator.prototype.getInputElement = function (name) {\r\n this.inputElement = (select('[name=\"' + name + '\"]', this.element));\r\n return this.inputElement;\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Destroy the form validator object and error elements.\r\n *\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.destroy = function () {\r\n this.reset();\r\n this.unwireEvents();\r\n this.rules = {};\r\n var elements = selectAll('.' + this.errorClass + ', .' + this.validClass, this.element);\r\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\r\n var element = elements_1[_i];\r\n detach(element);\r\n }\r\n _super.prototype.destroy.call(this);\r\n onIntlChange.off('notifyExternalChange', this.afterLocalization);\r\n };\r\n /**\r\n * @param {FormValidatorModel} newProp - Returns the dynamic property value of the component.\r\n * @param {FormValidatorModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n FormValidator.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'locale':\r\n this.localeFunc();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * @private\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.localeFunc = function () {\r\n for (var _i = 0, _a = Object.keys(this.defaultMessages); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n this.l10n.setLocale(this.locale);\r\n var value = this.l10n.getConstant(key);\r\n this.localyMessage[key] = value;\r\n }\r\n };\r\n /**\r\n * @private\r\n * @returns {string} - Returns the component name.\r\n */\r\n FormValidator.prototype.getModuleName = function () {\r\n return 'formValidator';\r\n };\r\n /**\r\n * @param {any} args - Specifies the culture name.\r\n * @private\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n FormValidator.prototype.afterLocalization = function (args) {\r\n this.locale = args.locale;\r\n this.localeFunc();\r\n };\r\n /**\r\n * Allows you to refresh the form validator base events to the elements inside the form.\r\n *\r\n * @returns {void}\r\n */\r\n FormValidator.prototype.refresh = function () {\r\n this.unwireEvents();\r\n this.inputElements = selectAll(this.selectQuery, this.element);\r\n this.wireEvents();\r\n };\r\n FormValidator.prototype.clearForm = function () {\r\n this.errorRules = [];\r\n this.validated = [];\r\n var elements = selectAll(this.selectQuery, this.element);\r\n for (var _i = 0, elements_2 = elements; _i < elements_2.length; _i++) {\r\n var element = elements_2[_i];\r\n var input = element;\r\n input.removeAttribute('aria-invalid');\r\n input.classList.remove(this.errorClass);\r\n if (input.name.length > 0) {\r\n this.getInputElement(input.name);\r\n this.getErrorElement(input.name);\r\n this.hideMessage(input.name);\r\n }\r\n input.classList.remove(this.validClass);\r\n }\r\n };\r\n FormValidator.prototype.createHTML5Rules = function () {\r\n var defRules = ['required', 'validateHidden', 'regex', 'rangeLength', 'maxLength', 'minLength', 'dateIso', 'digits',\r\n 'pattern', 'data-val-required', 'type', 'data-validation', 'min', 'max', 'range', 'equalTo', 'data-val-minlength-min',\r\n 'data-val-equalto-other', 'data-val-maxlength-max', 'data-val-range-min', 'data-val-regex-pattern', 'data-val-length-max',\r\n 'data-val-creditcard', 'data-val-phone'];\r\n var acceptedTypes = ['hidden', 'email', 'url', 'date', 'number', 'tel'];\r\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\r\n var input = _a[_i];\r\n // Default attribute rules\r\n var allRule = {};\r\n for (var _b = 0, defRules_1 = defRules; _b < defRules_1.length; _b++) {\r\n var rule = defRules_1[_b];\r\n if (input.getAttribute(rule) !== null) {\r\n switch (rule) {\r\n case 'required':\r\n this.defRule(input, allRule, rule, input.required);\r\n break;\r\n case 'data-validation':\r\n rule = input.getAttribute(rule);\r\n this.defRule(input, allRule, rule, true);\r\n break;\r\n case 'type':\r\n if (acceptedTypes.indexOf(input.type) !== -1) {\r\n this.defRule(input, allRule, input.type, true);\r\n }\r\n break;\r\n case 'rangeLength':\r\n case 'range':\r\n this.defRule(input, allRule, rule, JSON.parse(input.getAttribute(rule)));\r\n break;\r\n case 'equalTo':\r\n {\r\n var id = input.getAttribute(rule);\r\n this.defRule(input, allRule, rule, id);\r\n }\r\n break;\r\n default:\r\n if (input.getAttribute('data-val') === 'true') {\r\n this.annotationRule(input, allRule, rule, input.getAttribute(rule));\r\n }\r\n else {\r\n this.defRule(input, allRule, rule, input.getAttribute(rule));\r\n }\r\n }\r\n }\r\n }\r\n //adding pattern type validation\r\n if (Object.keys(allRule).length !== 0) {\r\n this.addRules(input.name, allRule);\r\n }\r\n }\r\n };\r\n FormValidator.prototype.annotationRule = function (input, ruleCon, ruleName, value) {\r\n var annotationRule = ruleName.split('-');\r\n var rulesList = ['required', 'creditcard', 'phone', 'maxlength', 'minlength', 'range', 'regex', 'equalto'];\r\n var ruleFirstName = annotationRule[annotationRule.length - 1];\r\n var ruleSecondName = annotationRule[annotationRule.length - 2];\r\n if (rulesList.indexOf(ruleFirstName) !== -1) {\r\n switch (ruleFirstName) {\r\n case 'required':\r\n this.defRule(input, ruleCon, 'required', value);\r\n break;\r\n case 'creditcard':\r\n this.defRule(input, ruleCon, 'creditcard', value);\r\n break;\r\n case 'phone':\r\n this.defRule(input, ruleCon, 'tel', value);\r\n break;\r\n }\r\n }\r\n else if (rulesList.indexOf(ruleSecondName) !== -1) {\r\n switch (ruleSecondName) {\r\n case 'maxlength':\r\n this.defRule(input, ruleCon, 'maxLength', value);\r\n break;\r\n case 'minlength':\r\n this.defRule(input, ruleCon, 'minLength', value);\r\n break;\r\n case 'range':\r\n {\r\n var minvalue = input.getAttribute('data-val-range-min');\r\n var maxvalue = input.getAttribute('data-val-range-max');\r\n this.defRule(input, ruleCon, 'range', [minvalue, maxvalue]);\r\n }\r\n break;\r\n case 'equalto':\r\n {\r\n var id = input.getAttribute(ruleName).split('.');\r\n this.defRule(input, ruleCon, 'equalTo', id[id.length - 1]);\r\n }\r\n break;\r\n case 'regex':\r\n this.defRule(input, ruleCon, 'regex', value);\r\n break;\r\n }\r\n }\r\n };\r\n FormValidator.prototype.defRule = function (input, ruleCon, ruleName, value) {\r\n var message = input.getAttribute('data-' + ruleName + '-message');\r\n var annotationMessage = input.getAttribute('data-val-' + ruleName);\r\n var customMessage;\r\n if (this.rules[input.name] && ruleName !== 'validateHidden' && ruleName !== 'hidden') {\r\n this.getInputElement(input.name);\r\n customMessage = this.getErrorMessage(this.rules[input.name][ruleName], ruleName);\r\n }\r\n if (message) {\r\n value = [value, message];\r\n }\r\n else if (annotationMessage) {\r\n value = [value, annotationMessage];\r\n }\r\n else if (customMessage) {\r\n value = [value, customMessage];\r\n }\r\n ruleCon[ruleName] = value;\r\n };\r\n // Wire events to the form elements\r\n FormValidator.prototype.wireEvents = function () {\r\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\r\n var input = _a[_i];\r\n if (FormValidator_1.isCheckable(input)) {\r\n EventHandler.add(input, 'click', this.clickHandler, this);\r\n }\r\n else if (input.tagName === 'SELECT') {\r\n EventHandler.add(input, 'change', this.changeHandler, this);\r\n }\r\n else {\r\n EventHandler.add(input, 'focusout', this.focusOutHandler, this);\r\n EventHandler.add(input, 'keyup', this.keyUpHandler, this);\r\n }\r\n }\r\n EventHandler.add(this.element, 'submit', this.submitHandler, this);\r\n EventHandler.add(this.element, 'reset', this.resetHandler, this);\r\n };\r\n // UnWire events to the form elements\r\n FormValidator.prototype.unwireEvents = function () {\r\n for (var _i = 0, _a = (this.inputElements); _i < _a.length; _i++) {\r\n var input = _a[_i];\r\n EventHandler.clearEvents(input);\r\n }\r\n EventHandler.remove(this.element, 'submit', this.submitHandler);\r\n EventHandler.remove(this.element, 'reset', this.resetHandler);\r\n };\r\n // Handle input element focusout event\r\n FormValidator.prototype.focusOutHandler = function (e) {\r\n this.trigger('focusout', e);\r\n //FormValidator.triggerCallback(this.focusout, e);\r\n var element = e.target;\r\n if (this.rules[element.name]) {\r\n if (this.rules[element.name][this.required] || element.value.length > 0) {\r\n this.validate(element.name);\r\n }\r\n else if (this.validated.indexOf(element.name) === -1) {\r\n this.validated.push(element.name);\r\n }\r\n }\r\n };\r\n // Handle input element keyup event\r\n FormValidator.prototype.keyUpHandler = function (e) {\r\n this.trigger('keyup', e);\r\n var element = e.target;\r\n // List of keys need to prevent while validation\r\n var excludeKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];\r\n if (e.which === 9 && (!this.rules[element.name] || (this.rules[element.name] && !this.rules[element.name][this.required]))) {\r\n return;\r\n }\r\n if (this.validated.indexOf(element.name) !== -1 && this.rules[element.name] && excludeKeys.indexOf(e.which) === -1) {\r\n this.validate(element.name);\r\n }\r\n };\r\n // Handle input click event\r\n FormValidator.prototype.clickHandler = function (e) {\r\n this.trigger('click', e);\r\n var element = e.target;\r\n // If element type is not submit allow validation\r\n if (element.type !== 'submit') {\r\n this.validate(element.name);\r\n }\r\n else if (element.getAttribute('formnovalidate') !== null) {\r\n // Prevent form validation, if submit button has formnovalidate attribute\r\n this.allowSubmit = true;\r\n }\r\n };\r\n // Handle input change event\r\n FormValidator.prototype.changeHandler = function (e) {\r\n this.trigger('change', e);\r\n var element = e.target;\r\n this.validate(element.name);\r\n };\r\n // Handle form submit event\r\n FormValidator.prototype.submitHandler = function (e) {\r\n this.trigger('submit', e);\r\n //FormValidator.triggerCallback(this.submit, e);\r\n // Prevent form submit if validation failed\r\n if (!this.allowSubmit && !this.validate()) {\r\n e.preventDefault();\r\n }\r\n else {\r\n this.allowSubmit = false;\r\n }\r\n };\r\n // Handle form reset\r\n FormValidator.prototype.resetHandler = function () {\r\n this.clearForm();\r\n };\r\n // Validate each rule based on input element name\r\n FormValidator.prototype.validateRules = function (name) {\r\n if (!this.rules[name]) {\r\n return;\r\n }\r\n var rules = Object.keys(this.rules[name]);\r\n var hiddenType = false;\r\n var validateHiddenType = false;\r\n var vhPos = rules.indexOf('validateHidden');\r\n var hPos = rules.indexOf('hidden');\r\n this.getInputElement(name);\r\n if (hPos !== -1) {\r\n hiddenType = true;\r\n }\r\n if (vhPos !== -1) {\r\n validateHiddenType = true;\r\n }\r\n if (!hiddenType || (hiddenType && validateHiddenType)) {\r\n if (vhPos !== -1) {\r\n rules.splice(vhPos, 1);\r\n }\r\n if (hPos !== -1) {\r\n rules.splice((hPos - 1), 1);\r\n }\r\n this.getErrorElement(name);\r\n for (var _i = 0, rules_2 = rules; _i < rules_2.length; _i++) {\r\n var rule = rules_2[_i];\r\n var errorMessage = this.getErrorMessage(this.rules[name][rule], rule);\r\n var errorRule = { name: name, message: errorMessage };\r\n var eventArgs = {\r\n inputName: name,\r\n element: this.inputElement,\r\n message: errorMessage\r\n };\r\n if (!this.isValid(name, rule) && !this.inputElement.classList.contains(this.ignore)) {\r\n this.removeErrorRules(name);\r\n this.errorRules.push(errorRule);\r\n // Set aria attributes to invalid elements\r\n this.inputElement.setAttribute('aria-invalid', 'true');\r\n this.inputElement.setAttribute('aria-describedby', this.inputElement.id + '-info');\r\n this.inputElement.classList.add(this.errorClass);\r\n this.inputElement.classList.remove(this.validClass);\r\n if (!this.infoElement) {\r\n this.createErrorElement(name, errorRule.message, this.inputElement);\r\n }\r\n else {\r\n this.showMessage(errorRule);\r\n }\r\n eventArgs.errorElement = this.infoElement;\r\n eventArgs.status = 'failure';\r\n this.inputElement.classList.add(this.errorClass);\r\n this.inputElement.classList.remove(this.validClass);\r\n this.optionalValidationStatus(name, eventArgs);\r\n this.trigger('validationComplete', eventArgs);\r\n // Set aria-required to required rule elements\r\n if (rule === 'required') {\r\n this.inputElement.setAttribute('aria-required', 'true');\r\n }\r\n break;\r\n }\r\n else {\r\n this.hideMessage(name);\r\n eventArgs.status = 'success';\r\n this.trigger('validationComplete', eventArgs);\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n // Update the optional validation status\r\n FormValidator.prototype.optionalValidationStatus = function (name, refer) {\r\n if (!this.rules[name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\r\n this.infoElement.innerHTML = this.inputElement.value;\r\n this.infoElement.setAttribute('aria-invalid', 'false');\r\n refer.status = '';\r\n this.hideMessage(name);\r\n }\r\n };\r\n // Check the input element whether it's value satisfy the validation rule or not\r\n FormValidator.prototype.isValid = function (name, rule) {\r\n var params = this.rules[name][rule];\r\n var param = (params instanceof Array && typeof params[1] === 'string') ? params[0] : params;\r\n var currentRule = this.rules[name][rule];\r\n var args = { value: this.inputElement.value, param: param, element: this.inputElement, formElement: this.element };\r\n this.trigger('validationBegin', args);\r\n if (!args.param && rule === 'required') {\r\n return true;\r\n }\r\n if (currentRule && typeof currentRule[0] === 'function') {\r\n var fn = currentRule[0];\r\n return fn.call(this, { element: this.inputElement, value: this.inputElement.value });\r\n }\r\n else if (FormValidator_1.isCheckable(this.inputElement)) {\r\n if (rule !== 'required') {\r\n return true;\r\n }\r\n return selectAll('input[name=\"' + name + '\"]:checked', this.element).length > 0;\r\n }\r\n else {\r\n return FormValidator_1.checkValidator[rule](args);\r\n }\r\n };\r\n // Return default error message or custom error message\r\n FormValidator.prototype.getErrorMessage = function (ruleValue, rule) {\r\n var message = this.inputElement.getAttribute('data-' + rule + '-message') ?\r\n this.inputElement.getAttribute('data-' + rule + '-message') :\r\n (ruleValue instanceof Array && typeof ruleValue[1] === 'string') ? ruleValue[1] :\r\n (Object.keys(this.localyMessage).length !== 0) ? this.localyMessage[rule] : this.defaultMessages[rule];\r\n var formats = message.match(/{(\\d)}/g);\r\n if (!isNullOrUndefined(formats)) {\r\n for (var i = 0; i < formats.length; i++) {\r\n var value = ruleValue instanceof Array ? ruleValue[i] : ruleValue;\r\n message = message.replace(formats[i], value);\r\n }\r\n }\r\n return message;\r\n };\r\n // Create error element based on name and error message\r\n FormValidator.prototype.createErrorElement = function (name, message, input) {\r\n var errorElement = createElement(this.errorElement, {\r\n className: this.errorClass,\r\n innerHTML: message,\r\n attrs: { for: name }\r\n });\r\n // Create message design if errorOption is message\r\n if (this.errorOption === ErrorOption.Message) {\r\n errorElement.classList.remove(this.errorClass);\r\n errorElement.classList.add('e-message');\r\n errorElement = createElement(this.errorContainer, { className: this.errorClass, innerHTML: errorElement.outerHTML });\r\n }\r\n errorElement.id = this.inputElement.name + '-info';\r\n // Append error message into MVC error message element\r\n if (this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]')) {\r\n this.element.querySelector('[data-valmsg-for=\"' + input.id + '\"]').appendChild(errorElement);\r\n }\r\n else if (input.hasAttribute('data-msg-containerid') === true) {\r\n // Append error message into custom div element\r\n var containerId = input.getAttribute('data-msg-containerid');\r\n var divElement = select('#' + containerId, this.element);\r\n divElement.appendChild(errorElement);\r\n }\r\n else if (this.customPlacement != null) {\r\n // Call custom placement function if customPlacement is not null\r\n this.customPlacement.call(this, this.inputElement, errorElement);\r\n }\r\n else {\r\n this.inputElement.parentNode.insertBefore(errorElement, this.inputElement.nextSibling);\r\n }\r\n errorElement.style.display = 'block';\r\n this.getErrorElement(name);\r\n this.validated.push(name);\r\n this.checkRequired(name);\r\n };\r\n // Get error element by name\r\n FormValidator.prototype.getErrorElement = function (name) {\r\n this.infoElement = select(this.errorElement + '.' + this.errorClass, this.inputElement.parentElement);\r\n if (!this.infoElement) {\r\n this.infoElement = select(this.errorElement + '.' + this.errorClass + '[for=\"' + name + '\"]', this.element);\r\n }\r\n return this.infoElement;\r\n };\r\n // Remove existing rule from errorRules object\r\n FormValidator.prototype.removeErrorRules = function (name) {\r\n for (var i = 0; i < this.errorRules.length; i++) {\r\n var rule = this.errorRules[i];\r\n if (rule.name === name) {\r\n this.errorRules.splice(i, 1);\r\n }\r\n }\r\n };\r\n // Show error message to the input element\r\n FormValidator.prototype.showMessage = function (errorRule) {\r\n this.infoElement.style.display = 'block';\r\n this.infoElement.innerHTML = errorRule.message;\r\n this.checkRequired(errorRule.name);\r\n };\r\n // Hide error message based on input name\r\n FormValidator.prototype.hideMessage = function (name) {\r\n if (this.infoElement) {\r\n this.infoElement.style.display = 'none';\r\n this.removeErrorRules(name);\r\n this.inputElement.classList.add(this.validClass);\r\n this.inputElement.classList.remove(this.errorClass);\r\n this.inputElement.setAttribute('aria-invalid', 'false');\r\n }\r\n };\r\n // Check whether the input element have required rule and its value is not empty\r\n FormValidator.prototype.checkRequired = function (name) {\r\n if (!this.rules[name][this.required] && !this.inputElement.value.length && !isNullOrUndefined(this.infoElement)) {\r\n this.infoElement.innerHTML = this.inputElement.value;\r\n this.infoElement.setAttribute('aria-invalid', 'false');\r\n this.hideMessage(name);\r\n }\r\n };\r\n // Return boolean result if the input have chekcable or submit types\r\n FormValidator.isCheckable = function (input) {\r\n var inputType = input.getAttribute('type');\r\n return inputType && (inputType === 'checkbox' || inputType === 'radio' || inputType === 'submit');\r\n };\r\n var FormValidator_1;\r\n // List of function to validate the rules\r\n FormValidator.checkValidator = {\r\n required: function (option) {\r\n return !isNaN(Date.parse(option.value)) ? !isNaN(new Date(option.value).getTime()) : option.value.toString().length > 0;\r\n },\r\n email: function (option) {\r\n return regex.EMAIL.test(option.value);\r\n },\r\n url: function (option) {\r\n return regex.URL.test(option.value);\r\n },\r\n dateIso: function (option) {\r\n return regex.DATE_ISO.test(option.value);\r\n },\r\n tel: function (option) {\r\n return regex.PHONE.test(option.value);\r\n },\r\n creditcard: function (option) {\r\n return regex.CREDITCARD.test(option.value);\r\n },\r\n number: function (option) {\r\n return !isNaN(Number(option.value)) && option.value.indexOf(' ') === -1;\r\n },\r\n digits: function (option) {\r\n return regex.DIGITS.test(option.value);\r\n },\r\n maxLength: function (option) {\r\n return option.value.length <= option.param;\r\n },\r\n minLength: function (option) {\r\n return option.value.length >= option.param;\r\n },\r\n rangeLength: function (option) {\r\n var param = option.param;\r\n return option.value.length >= param[0] && option.value.length <= param[1];\r\n },\r\n range: function (option) {\r\n var param = option.param;\r\n return !isNaN(Number(option.value)) && Number(option.value) >= param[0] && Number(option.value) <= param[1];\r\n },\r\n date: function (option) {\r\n return !isNaN(new Date(option.value).getTime());\r\n },\r\n max: function (option) {\r\n if (!isNaN(Number(option.value))) {\r\n // Maximum rule validation for number\r\n return +option.value <= option.param;\r\n }\r\n // Maximum rule validation for date\r\n return new Date(option.value).getTime() <= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\r\n },\r\n min: function (option) {\r\n if (!isNaN(Number(option.value))) {\r\n // Minimum rule validation for number\r\n return +option.value >= option.param;\r\n }\r\n else if ((option.value).indexOf(',') !== -1) {\r\n var uNum = (option.value).replace(/,/g, '');\r\n return parseFloat(uNum) >= option.param;\r\n }\r\n else {\r\n // Minimum rule validation for date\r\n return new Date(option.value).getTime() >= new Date(JSON.parse(JSON.stringify(option.param))).getTime();\r\n }\r\n },\r\n regex: function (option) {\r\n return new RegExp(option.param).test(option.value);\r\n },\r\n equalTo: function (option) {\r\n var compareTo = option.formElement.querySelector('#' + option.param);\r\n option.param = compareTo.value;\r\n return option.param === option.value;\r\n }\r\n };\r\n __decorate([\r\n Property('')\r\n ], FormValidator.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property('e-hidden')\r\n ], FormValidator.prototype, \"ignore\", void 0);\r\n __decorate([\r\n Property()\r\n ], FormValidator.prototype, \"rules\", void 0);\r\n __decorate([\r\n Property('e-error')\r\n ], FormValidator.prototype, \"errorClass\", void 0);\r\n __decorate([\r\n Property('e-valid')\r\n ], FormValidator.prototype, \"validClass\", void 0);\r\n __decorate([\r\n Property('label')\r\n ], FormValidator.prototype, \"errorElement\", void 0);\r\n __decorate([\r\n Property('div')\r\n ], FormValidator.prototype, \"errorContainer\", void 0);\r\n __decorate([\r\n Property(ErrorOption.Label)\r\n ], FormValidator.prototype, \"errorOption\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"focusout\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"keyup\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"click\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"submit\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"validationBegin\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"validationComplete\", void 0);\r\n __decorate([\r\n Event()\r\n ], FormValidator.prototype, \"customPlacement\", void 0);\r\n FormValidator = FormValidator_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], FormValidator);\r\n return FormValidator;\r\n}(Base));\r\nexport { FormValidator };\r\n","/**\n * Input box Component\n */\nexport * from './form-validator';\n","/**\n * NumericTextBox all modules\n */\nexport * from './numerictextbox/index';\nexport * from './maskedtextbox/index';\nexport * from './input/index';\nexport * from './slider/index';\nexport * from './form-validator/index';\nexport * from './uploader/index';\nexport * from './color-picker/index';\nexport * from './textbox/index';\n","/**\n * Input box Component\n */\nexport * from './input';\n","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\r\nimport { createElement, attributes, addClass, removeClass, detach, classList } from '@syncfusion/ej2-base';\r\nimport { closest, formatUnit, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\r\nvar CLASSNAMES = {\r\n RTL: 'e-rtl',\r\n DISABLE: 'e-disabled',\r\n INPUT: 'e-input',\r\n TEXTAREA: 'e-multi-line-input',\r\n INPUTGROUP: 'e-input-group',\r\n FLOATINPUT: 'e-float-input',\r\n FLOATLINE: 'e-float-line',\r\n FLOATTEXT: 'e-float-text',\r\n CLEARICON: 'e-clear-icon',\r\n CLEARICONHIDE: 'e-clear-icon-hide',\r\n LABELTOP: 'e-label-top',\r\n LABELBOTTOM: 'e-label-bottom',\r\n NOFLOATLABEL: 'e-no-float-label',\r\n INPUTCUSTOMTAG: 'e-input-custom-tag',\r\n FLOATCUSTOMTAG: 'e-float-custom-tag'\r\n};\r\n/**\r\n * Base for Input creation through util methods.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport var Input;\r\n(function (Input) {\r\n var privateInputObj = {\r\n container: null,\r\n buttons: [],\r\n clearButton: null\r\n };\r\n var floatType;\r\n var isBindClearAction = true;\r\n /**\r\n * Create a wrapper to input element with multiple span elements and set the basic properties to input based components.\r\n * ```\r\n * E.g : Input.createInput({ element: element, floatLabelType : \"Auto\", properties: { placeholder: 'Search' } });\r\n * ```\r\n *\r\n */\r\n function createInput(args, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var inputObject = { container: null, buttons: [], clearButton: null };\r\n floatType = args.floatLabelType;\r\n isBindClearAction = args.bindClearAction;\r\n if (isNullOrUndefined(args.floatLabelType) || args.floatLabelType === 'Never') {\r\n inputObject.container = createInputContainer(args, CLASSNAMES.INPUTGROUP, CLASSNAMES.INPUTCUSTOMTAG, 'span', makeElement);\r\n args.element.parentNode.insertBefore(inputObject.container, args.element);\r\n addClass([args.element], CLASSNAMES.INPUT);\r\n inputObject.container.appendChild(args.element);\r\n }\r\n else {\r\n createFloatingInput(args, inputObject, makeElement);\r\n }\r\n bindInitialEvent(args);\r\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.showClearButton) &&\r\n args.properties.showClearButton && args.element.tagName !== 'TEXTAREA') {\r\n setClearButton(args.properties.showClearButton, args.element, inputObject, true, makeElement);\r\n inputObject.clearButton.setAttribute('role', 'button');\r\n if (inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n addClass([inputObject.container], CLASSNAMES.INPUTGROUP);\r\n }\r\n }\r\n if (!isNullOrUndefined(args.buttons) && args.element.tagName !== 'TEXTAREA') {\r\n for (var i = 0; i < args.buttons.length; i++) {\r\n inputObject.buttons.push(appendSpan(args.buttons[i], inputObject.container, makeElement));\r\n }\r\n }\r\n if (!isNullOrUndefined(args.element) && args.element.tagName === 'TEXTAREA') {\r\n addClass([inputObject.container], CLASSNAMES.TEXTAREA);\r\n }\r\n validateInputType(inputObject.container, args.element);\r\n inputObject = setPropertyValue(args, inputObject);\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n privateInputObj = inputObject;\r\n return inputObject;\r\n }\r\n Input.createInput = createInput;\r\n function bindInitialEvent(args) {\r\n checkInputValue(args.floatLabelType, args.element);\r\n args.element.addEventListener('focus', function () {\r\n var parent = getParentNode(this);\r\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\r\n || parent.classList.contains('e-filled')) {\r\n parent.classList.add('e-input-focus');\r\n }\r\n });\r\n args.element.addEventListener('blur', function () {\r\n var parent = getParentNode(this);\r\n if (parent.classList.contains('e-input-group') || parent.classList.contains('e-outline')\r\n || parent.classList.contains('e-filled')) {\r\n parent.classList.remove('e-input-focus');\r\n }\r\n });\r\n args.element.addEventListener('input', function () {\r\n checkInputValue(floatType, args.element);\r\n });\r\n }\r\n Input.bindInitialEvent = bindInitialEvent;\r\n function checkInputValue(floatLabelType, inputElement) {\r\n var inputValue = inputElement.value;\r\n if (inputValue !== '' && !isNullOrUndefined(inputValue) && inputElement.parentElement) {\r\n inputElement.parentElement.classList.add('e-valid-input');\r\n }\r\n else if (floatLabelType !== 'Always' && inputElement.parentElement) {\r\n inputElement.parentElement.classList.remove('e-valid-input');\r\n }\r\n }\r\n function _focusFn() {\r\n var label = getParentNode(this).getElementsByClassName('e-float-text')[0];\r\n if (!isNullOrUndefined(label)) {\r\n addClass([label], CLASSNAMES.LABELTOP);\r\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\r\n removeClass([label], CLASSNAMES.LABELBOTTOM);\r\n }\r\n }\r\n }\r\n function _blurFn() {\r\n var parent = getParentNode(this);\r\n if ((parent.getElementsByTagName('textarea')[0]) ? parent.getElementsByTagName('textarea')[0].value === '' :\r\n parent.getElementsByTagName('input')[0].value === '') {\r\n var label = parent.getElementsByClassName('e-float-text')[0];\r\n if (!isNullOrUndefined(label)) {\r\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\r\n removeClass([label], CLASSNAMES.LABELTOP);\r\n }\r\n addClass([label], CLASSNAMES.LABELBOTTOM);\r\n }\r\n }\r\n }\r\n function wireFloatingEvents(element) {\r\n element.addEventListener('focus', _focusFn);\r\n element.addEventListener('blur', _blurFn);\r\n }\r\n Input.wireFloatingEvents = wireFloatingEvents;\r\n function unwireFloatingEvents(element) {\r\n element.removeEventListener('focus', _focusFn);\r\n element.removeEventListener('blur', _blurFn);\r\n }\r\n function createFloatingInput(args, inputObject, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n if (args.floatLabelType === 'Auto') {\r\n wireFloatingEvents(args.element);\r\n }\r\n if (isNullOrUndefined(inputObject.container)) {\r\n inputObject.container = createInputContainer(args, CLASSNAMES.FLOATINPUT, CLASSNAMES.FLOATCUSTOMTAG, 'div', makeElement);\r\n if (args.element.parentNode) {\r\n args.element.parentNode.insertBefore(inputObject.container, args.element);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(args.customTag)) {\r\n inputObject.container.classList.add(CLASSNAMES.FLOATCUSTOMTAG);\r\n }\r\n inputObject.container.classList.add(CLASSNAMES.FLOATINPUT);\r\n }\r\n var floatLinelement = makeElement('span', { className: CLASSNAMES.FLOATLINE });\r\n var floatLabelElement = makeElement('label', { className: CLASSNAMES.FLOATTEXT });\r\n if (!isNullOrUndefined(args.element.id) && args.element.id !== '') {\r\n floatLabelElement.id = 'label_' + args.element.id.replace(/ /g, '_');\r\n attributes(args.element, { 'aria-labelledby': floatLabelElement.id });\r\n }\r\n if (!isNullOrUndefined(args.element.placeholder) && args.element.placeholder !== '') {\r\n floatLabelElement.innerText = encodePlaceHolder(args.element.placeholder);\r\n args.element.removeAttribute('placeholder');\r\n }\r\n if (!isNullOrUndefined(args.properties) && !isNullOrUndefined(args.properties.placeholder) &&\r\n args.properties.placeholder !== '') {\r\n floatLabelElement.innerText = encodePlaceHolder(args.properties.placeholder);\r\n }\r\n if (!floatLabelElement.innerText) {\r\n inputObject.container.classList.add(CLASSNAMES.NOFLOATLABEL);\r\n }\r\n if (inputObject.container.classList.contains('e-float-icon-left')) {\r\n var inputWrap = inputObject.container.querySelector('.e-input-in-wrap');\r\n inputWrap.appendChild(args.element);\r\n inputWrap.appendChild(floatLinelement);\r\n inputWrap.appendChild(floatLabelElement);\r\n }\r\n else {\r\n inputObject.container.appendChild(args.element);\r\n inputObject.container.appendChild(floatLinelement);\r\n inputObject.container.appendChild(floatLabelElement);\r\n }\r\n updateLabelState(args.element.value, floatLabelElement);\r\n if (args.floatLabelType === 'Always') {\r\n if (floatLabelElement.classList.contains(CLASSNAMES.LABELBOTTOM)) {\r\n removeClass([floatLabelElement], CLASSNAMES.LABELBOTTOM);\r\n }\r\n addClass([floatLabelElement], CLASSNAMES.LABELTOP);\r\n }\r\n if (args.floatLabelType === 'Auto') {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n args.element.addEventListener('input', function (event) {\r\n updateLabelState(args.element.value, floatLabelElement);\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n args.element.addEventListener('blur', function (event) {\r\n updateLabelState(args.element.value, floatLabelElement);\r\n });\r\n }\r\n if (!isNullOrUndefined(args.element.getAttribute('id'))) {\r\n floatLabelElement.setAttribute('for', args.element.getAttribute('id'));\r\n }\r\n }\r\n function checkFloatLabelType(type, container) {\r\n if (type === 'Always' && container.classList.contains('e-outline')) {\r\n container.classList.add('e-valid-input');\r\n }\r\n }\r\n function setPropertyValue(args, inputObject) {\r\n if (!isNullOrUndefined(args.properties)) {\r\n for (var _i = 0, _a = Object.keys(args.properties); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'cssClass':\r\n setCssClass(args.properties.cssClass, [inputObject.container]);\r\n checkFloatLabelType(args.floatLabelType, inputObject.container);\r\n break;\r\n case 'enabled':\r\n setEnabled(args.properties.enabled, args.element, args.floatLabelType, inputObject.container);\r\n break;\r\n case 'enableRtl':\r\n setEnableRtl(args.properties.enableRtl, [inputObject.container]);\r\n break;\r\n case 'placeholder':\r\n setPlaceholder(args.properties.placeholder, args.element);\r\n break;\r\n case 'readonly':\r\n setReadonly(args.properties.readonly, args.element);\r\n break;\r\n }\r\n }\r\n }\r\n return inputObject;\r\n }\r\n function updateIconState(value, button) {\r\n if (value) {\r\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }\r\n else {\r\n addClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }\r\n }\r\n function updateLabelState(value, label) {\r\n if (value) {\r\n addClass([label], CLASSNAMES.LABELTOP);\r\n if (label.classList.contains(CLASSNAMES.LABELBOTTOM)) {\r\n removeClass([label], CLASSNAMES.LABELBOTTOM);\r\n }\r\n }\r\n else {\r\n if (label.classList.contains(CLASSNAMES.LABELTOP)) {\r\n removeClass([label], CLASSNAMES.LABELTOP);\r\n }\r\n addClass([label], CLASSNAMES.LABELBOTTOM);\r\n }\r\n }\r\n function getParentNode(element) {\r\n var parentNode = isNullOrUndefined(element.parentNode) ? element\r\n : element.parentNode;\r\n if (parentNode && parentNode.classList.contains('e-input-in-wrap')) {\r\n parentNode = parentNode.parentNode;\r\n }\r\n return parentNode;\r\n }\r\n /**\r\n * To create clear button.\r\n */\r\n function createClearButton(element, inputObject, initial, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var button = makeElement('span', { className: CLASSNAMES.CLEARICON });\r\n var container = inputObject.container;\r\n if (!isNullOrUndefined(initial)) {\r\n container.appendChild(button);\r\n }\r\n else {\r\n var baseElement = inputObject.container.classList.contains(CLASSNAMES.FLOATINPUT) ?\r\n inputObject.container.querySelector('.' + CLASSNAMES.FLOATTEXT) : element;\r\n baseElement.insertAdjacentElement('afterend', button);\r\n }\r\n if (!isNullOrUndefined(container) &&\r\n container.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n addClass([container], CLASSNAMES.INPUTGROUP);\r\n }\r\n addClass([button], CLASSNAMES.CLEARICONHIDE);\r\n wireClearBtnEvents(element, button, container);\r\n button.setAttribute('aria-label', 'close');\r\n return button;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n function wireClearBtnEvents(element, button, container) {\r\n if (isBindClearAction == undefined || isBindClearAction) {\r\n button.addEventListener('click', function (event) {\r\n if (!(element.classList.contains(CLASSNAMES.DISABLE) || element.readOnly)) {\r\n event.preventDefault();\r\n if (element !== document.activeElement) {\r\n element.focus();\r\n }\r\n element.value = '';\r\n addClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }\r\n });\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n element.addEventListener('input', function (event) {\r\n updateIconState(element.value, button);\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n element.addEventListener('focus', function (event) {\r\n updateIconState(element.value, button);\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n element.addEventListener('blur', function (event) {\r\n setTimeout(function () {\r\n addClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }, 200);\r\n });\r\n }\r\n Input.wireClearBtnEvents = wireClearBtnEvents;\r\n function validateLabel(element, floatLabelType) {\r\n var parent = getParentNode(element);\r\n if (parent.classList.contains(CLASSNAMES.FLOATINPUT) && floatLabelType === 'Auto') {\r\n var label = getParentNode(element).getElementsByClassName('e-float-text')[0];\r\n updateLabelState(element.value, label);\r\n }\r\n }\r\n /**\r\n * To create input box contianer.\r\n */\r\n function createInputContainer(args, className, tagClass, tag, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var container;\r\n if (!isNullOrUndefined(args.customTag)) {\r\n container = makeElement(args.customTag, { className: className });\r\n container.classList.add(tagClass);\r\n }\r\n else {\r\n container = makeElement(tag, { className: className });\r\n }\r\n container.classList.add('e-control-wrapper');\r\n return container;\r\n }\r\n function encodePlaceHolder(placeholder) {\r\n var result = '';\r\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\r\n var spanEle = document.createElement('span');\r\n spanEle.innerHTML = '';\r\n var hiddenInput = (spanEle.children[0]);\r\n result = hiddenInput.placeholder;\r\n }\r\n return result;\r\n }\r\n /**\r\n * Sets the value to the input element.\r\n * ```\r\n * E.g : Input.setValue('content', element, \"Auto\", true );\r\n * ```\r\n *\r\n * @param {string} value - Specify the value of the input element.\r\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the specified value is updated.\r\n * @param {string} floatLabelType - Specify the float label type of the input element.\r\n * @param {boolean} clearButton - Boolean value to specify whether the clear icon is enabled / disabled on the input.\r\n */\r\n function setValue(value, element, floatLabelType, clearButton) {\r\n element.value = value;\r\n if ((!isNullOrUndefined(floatLabelType)) && floatLabelType === 'Auto') {\r\n validateLabel(element, floatLabelType);\r\n }\r\n if (!isNullOrUndefined(clearButton) && clearButton) {\r\n var parentElement = getParentNode(element);\r\n if (!isNullOrUndefined(parentElement)) {\r\n var button = parentElement.getElementsByClassName(CLASSNAMES.CLEARICON)[0];\r\n if (!isNullOrUndefined(button)) {\r\n if (element.value && parentElement.classList.contains('e-input-focus')) {\r\n removeClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }\r\n else {\r\n addClass([button], CLASSNAMES.CLEARICONHIDE);\r\n }\r\n }\r\n }\r\n }\r\n checkInputValue(floatLabelType, element);\r\n }\r\n Input.setValue = setValue;\r\n /**\r\n * Sets the single or multiple cssClass to wrapper of input element.\r\n * ```\r\n * E.g : Input.setCssClass('e-custom-class', [element]);\r\n * ```\r\n *\r\n * @param {string} cssClass - Css class names which are needed to add.\r\n * @param {Element[] | NodeList} elements - The elements which are needed to add / remove classes.\r\n * @param {string} oldClass\r\n * - Css class names which are needed to remove. If old classes are need to remove, can give this optional parameter.\r\n */\r\n function setCssClass(cssClass, elements, oldClass) {\r\n if (!isNullOrUndefined(oldClass) && oldClass !== '') {\r\n removeClass(elements, oldClass.split(' '));\r\n }\r\n if (!isNullOrUndefined(cssClass) && cssClass !== '') {\r\n addClass(elements, cssClass.split(' '));\r\n }\r\n }\r\n Input.setCssClass = setCssClass;\r\n /**\r\n * Set the width to the wrapper of input element.\r\n * ```\r\n * E.g : Input.setWidth('200px', container);\r\n * ```\r\n *\r\n * @param {number | string} width - Width value which is need to add.\r\n * @param {HTMLElement} container - The element on which the width is need to add.\r\n */\r\n function setWidth(width, container) {\r\n if (typeof width === 'number') {\r\n container.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n }\r\n }\r\n Input.setWidth = setWidth;\r\n /**\r\n * Set the placeholder attribute to the input element.\r\n * ```\r\n * E.g : Input.setPlaceholder('Search here', element);\r\n * ```\r\n *\r\n * @param {string} placeholder - Placeholder value which is need to add.\r\n * @param {HTMLInputElement | HTMLTextAreaElement} element - The element on which the placeholder is need to add.\r\n */\r\n function setPlaceholder(placeholder, element) {\r\n placeholder = encodePlaceHolder(placeholder);\r\n var parentElement = getParentNode(element);\r\n if (parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\r\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = placeholder;\r\n parentElement.classList.remove(CLASSNAMES.NOFLOATLABEL);\r\n element.removeAttribute('placeholder');\r\n }\r\n else {\r\n parentElement.classList.add(CLASSNAMES.NOFLOATLABEL);\r\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(placeholder) && placeholder !== '') {\r\n attributes(element, { 'placeholder': placeholder, 'aria-placeholder': placeholder });\r\n }\r\n else {\r\n element.removeAttribute('placeholder');\r\n element.removeAttribute('aria-placeholder');\r\n }\r\n }\r\n }\r\n Input.setPlaceholder = setPlaceholder;\r\n /**\r\n * Set the read only attribute to the input element\r\n * ```\r\n * E.g : Input.setReadonly(true, element);\r\n * ```\r\n *\r\n * @param {boolean} isReadonly\r\n * - Boolean value to specify whether to set read only. Setting \"True\" value enables read only.\r\n * @param {HTMLInputElement | HTMLTextAreaElement} element\r\n * - The element which is need to enable read only.\r\n */\r\n function setReadonly(isReadonly, element, floatLabelType) {\r\n if (isReadonly) {\r\n attributes(element, { readonly: '' });\r\n }\r\n else {\r\n element.removeAttribute('readonly');\r\n }\r\n if (!isNullOrUndefined(floatLabelType)) {\r\n validateLabel(element, floatLabelType);\r\n }\r\n }\r\n Input.setReadonly = setReadonly;\r\n /**\r\n * Displays the element direction from right to left when its enabled.\r\n * ```\r\n * E.g : Input.setEnableRtl(true, [inputObj.container]);\r\n * ```\r\n *\r\n * @param {boolean} isRtl\r\n * - Boolean value to specify whether to set RTL. Setting \"True\" value enables the RTL mode.\r\n * @param {Element[] | NodeList} elements\r\n * - The elements that are needed to enable/disable RTL.\r\n */\r\n function setEnableRtl(isRtl, elements) {\r\n if (isRtl) {\r\n addClass(elements, CLASSNAMES.RTL);\r\n }\r\n else {\r\n removeClass(elements, CLASSNAMES.RTL);\r\n }\r\n }\r\n Input.setEnableRtl = setEnableRtl;\r\n /**\r\n * Enables or disables the given input element.\r\n * ```\r\n * E.g : Input.setEnabled(false, element);\r\n * ```\r\n *\r\n * @param {boolean} isEnable\r\n * - Boolean value to specify whether to enable or disable.\r\n * @param {HTMLInputElement | HTMLTextAreaElement} element\r\n * - Element to be enabled or disabled.\r\n */\r\n function setEnabled(isEnable, element, floatLabelType, inputContainer) {\r\n var disabledAttrs = { 'disabled': 'disabled', 'aria-disabled': 'true' };\r\n var considerWrapper = isNullOrUndefined(inputContainer) ? false : true;\r\n if (isEnable) {\r\n element.classList.remove(CLASSNAMES.DISABLE);\r\n removeAttributes(disabledAttrs, element);\r\n if (considerWrapper) {\r\n removeClass([inputContainer], CLASSNAMES.DISABLE);\r\n }\r\n }\r\n else {\r\n element.classList.add(CLASSNAMES.DISABLE);\r\n addAttributes(disabledAttrs, element);\r\n if (considerWrapper) {\r\n addClass([inputContainer], CLASSNAMES.DISABLE);\r\n }\r\n }\r\n if (!isNullOrUndefined(floatLabelType)) {\r\n validateLabel(element, floatLabelType);\r\n }\r\n }\r\n Input.setEnabled = setEnabled;\r\n function setClearButton(isClear, element, inputObject, initial, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n if (isClear) {\r\n inputObject.clearButton = createClearButton(element, inputObject, initial, makeElement);\r\n }\r\n else {\r\n remove(inputObject.clearButton);\r\n inputObject.clearButton = null;\r\n }\r\n }\r\n Input.setClearButton = setClearButton;\r\n /**\r\n * Removing the multiple attributes from the given element such as \"disabled\",\"id\" , etc.\r\n * ```\r\n * E.g : Input.removeAttributes({ 'disabled': 'disabled', 'aria-disabled': 'true' }, element);\r\n * ```\r\n *\r\n * @param {string} attrs\r\n * - Array of attributes which are need to removed from the element.\r\n * @param {HTMLInputElement | HTMLElement} element\r\n * - Element on which the attributes are needed to be removed.\r\n */\r\n function removeAttributes(attrs, element) {\r\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var parentElement = getParentNode(element);\r\n if (key === 'disabled') {\r\n element.classList.remove(CLASSNAMES.DISABLE);\r\n }\r\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\r\n parentElement.classList.remove(CLASSNAMES.DISABLE);\r\n }\r\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = '';\r\n }\r\n else {\r\n element.removeAttribute(key);\r\n }\r\n }\r\n }\r\n Input.removeAttributes = removeAttributes;\r\n /**\r\n * Adding the multiple attributes to the given element such as \"disabled\",\"id\" , etc.\r\n * ```\r\n * E.g : Input.addAttributes({ 'id': 'inputpopup' }, element);\r\n * ```\r\n *\r\n * @param {string} attrs\r\n * - Array of attributes which is added to element.\r\n * @param {HTMLInputElement | HTMLElement} element\r\n * - Element on which the attributes are needed to be added.\r\n */\r\n function addAttributes(attrs, element) {\r\n for (var _i = 0, _a = Object.keys(attrs); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n var parentElement = getParentNode(element);\r\n if (key === 'disabled') {\r\n element.classList.add(CLASSNAMES.DISABLE);\r\n }\r\n if (key === 'disabled' && parentElement.classList.contains(CLASSNAMES.INPUTGROUP)) {\r\n parentElement.classList.add(CLASSNAMES.DISABLE);\r\n }\r\n if (key === 'placeholder' && parentElement.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n parentElement.getElementsByClassName(CLASSNAMES.FLOATTEXT)[0].textContent = attrs[key];\r\n }\r\n else {\r\n element.setAttribute(key, attrs[key]);\r\n }\r\n }\r\n }\r\n Input.addAttributes = addAttributes;\r\n function removeFloating(input) {\r\n var container = input.container;\r\n if (!isNullOrUndefined(container) && container.classList.contains(CLASSNAMES.FLOATINPUT)) {\r\n var inputEle = container.querySelector('textarea') ? container.querySelector('textarea') :\r\n container.querySelector('input');\r\n var placeholder = container.querySelector('.' + CLASSNAMES.FLOATTEXT).textContent;\r\n var clearButton = container.querySelector('.e-clear-icon') !== null;\r\n detach(container.querySelector('.' + CLASSNAMES.FLOATLINE));\r\n detach(container.querySelector('.' + CLASSNAMES.FLOATTEXT));\r\n classList(container, [CLASSNAMES.INPUTGROUP], [CLASSNAMES.FLOATINPUT]);\r\n unwireFloatingEvents(inputEle);\r\n attributes(inputEle, { 'placeholder': placeholder });\r\n inputEle.classList.add(CLASSNAMES.INPUT);\r\n if (!clearButton && inputEle.tagName === 'INPUT') {\r\n inputEle.removeAttribute('required');\r\n }\r\n }\r\n }\r\n Input.removeFloating = removeFloating;\r\n function addFloating(input, type, placeholder, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var container = closest(input, '.' + CLASSNAMES.INPUTGROUP);\r\n floatType = type;\r\n if (type !== 'Never') {\r\n var customTag = container.tagName;\r\n customTag = customTag !== 'DIV' && customTag !== 'SPAN' ? customTag : null;\r\n var args = { element: input, floatLabelType: type,\r\n customTag: customTag, properties: { placeholder: placeholder } };\r\n var iconEle = container.querySelector('.e-clear-icon');\r\n var inputObj = { container: container };\r\n input.classList.remove(CLASSNAMES.INPUT);\r\n createFloatingInput(args, inputObj, makeElement);\r\n var isPrependIcon = container.classList.contains('e-float-icon-left');\r\n if (isNullOrUndefined(iconEle)) {\r\n if (isPrependIcon) {\r\n var inputWrap = container.querySelector('.e-input-in-wrap');\r\n iconEle = inputWrap.querySelector('.e-input-group-icon');\r\n }\r\n else {\r\n iconEle = container.querySelector('.e-input-group-icon');\r\n }\r\n }\r\n if (isNullOrUndefined(iconEle)) {\r\n if (isPrependIcon) {\r\n iconEle = container.querySelector('.e-input-group-icon');\r\n }\r\n if (isNullOrUndefined(iconEle)) {\r\n container.classList.remove(CLASSNAMES.INPUTGROUP);\r\n }\r\n }\r\n else {\r\n var floatLine = container.querySelector('.' + CLASSNAMES.FLOATLINE);\r\n var floatText = container.querySelector('.' + CLASSNAMES.FLOATTEXT);\r\n var wrapper = isPrependIcon ? container.querySelector('.e-input-in-wrap') : container;\r\n wrapper.insertBefore(input, iconEle);\r\n wrapper.insertBefore(floatLine, iconEle);\r\n wrapper.insertBefore(floatText, iconEle);\r\n }\r\n }\r\n checkFloatLabelType(type, input.parentElement);\r\n }\r\n Input.addFloating = addFloating;\r\n /**\r\n * Enable or Disable the ripple effect on the icons inside the Input. Ripple effect is only applicable for material theme.\r\n * ```\r\n * E.g : Input.setRipple(true, [inputObjects]);\r\n * ```\r\n *\r\n * @param {boolean} isRipple\r\n * - Boolean value to specify whether to enable the ripple effect.\r\n * @param {InputObject[]} inputObj\r\n * - Specify the collection of input objects.\r\n */\r\n function setRipple(isRipple, inputObj) {\r\n for (var i = 0; i < inputObj.length; i++) {\r\n _internalRipple(isRipple, inputObj[i].container);\r\n }\r\n }\r\n Input.setRipple = setRipple;\r\n function _internalRipple(isRipple, container, button) {\r\n var argsButton = [];\r\n argsButton.push(button);\r\n var buttons = isNullOrUndefined(button) ?\r\n container.querySelectorAll('.e-input-group-icon') : argsButton;\r\n if (isRipple && buttons.length > 0) {\r\n for (var index = 0; index < buttons.length; index++) {\r\n buttons[index].addEventListener('mousedown', _onMouseDownRipple, false);\r\n buttons[index].addEventListener('mouseup', _onMouseUpRipple, false);\r\n }\r\n }\r\n else if (buttons.length > 0) {\r\n for (var index = 0; index < buttons.length; index++) {\r\n buttons[index].removeEventListener('mousedown', _onMouseDownRipple, this);\r\n buttons[index].removeEventListener('mouseup', _onMouseUpRipple, this);\r\n }\r\n }\r\n }\r\n function _onMouseRipple(container, button) {\r\n if (!container.classList.contains('e-disabled') && !container.querySelector('input').readOnly) {\r\n button.classList.add('e-input-btn-ripple');\r\n }\r\n }\r\n function _onMouseDownRipple() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var ele = this;\r\n var parentEle = this.parentElement;\r\n while (!parentEle.classList.contains('e-input-group')) {\r\n parentEle = parentEle.parentElement;\r\n }\r\n _onMouseRipple(parentEle, ele);\r\n }\r\n function _onMouseUpRipple() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var ele = this;\r\n setTimeout(function () {\r\n ele.classList.remove('e-input-btn-ripple');\r\n }, 500);\r\n }\r\n function createIconEle(iconClass, makeElement) {\r\n var button = makeElement('span', { className: iconClass });\r\n button.classList.add('e-input-group-icon');\r\n return button;\r\n }\r\n /**\r\n * Creates a new span element with the given icons added and append it in container element.\r\n * ```\r\n * E.g : Input.addIcon('append', 'e-icon-spin', inputObj.container, inputElement);\r\n * ```\r\n *\r\n * @param {string} position - Specify the icon placement on the input.Possible values are append and prepend.\r\n * @param {string | string[]} icons - Icon classes which are need to add to the span element which is going to created.\r\n * Span element acts as icon or button element for input.\r\n * @param {HTMLElement} container - The container on which created span element is going to append.\r\n * @param {HTMLElement} input - The inputElement on which created span element is going to prepend.\r\n */\r\n /* eslint-disable @typescript-eslint/indent */\r\n function addIcon(position, icons, container, input, internalCreate) {\r\n /* eslint-enable @typescript-eslint/indent */\r\n var result = typeof (icons) === 'string' ? icons.split(',')\r\n : icons;\r\n if (position.toLowerCase() === 'append') {\r\n for (var _i = 0, result_1 = result; _i < result_1.length; _i++) {\r\n var icon = result_1[_i];\r\n appendSpan(icon, container, internalCreate);\r\n }\r\n }\r\n else {\r\n for (var _a = 0, result_2 = result; _a < result_2.length; _a++) {\r\n var icon = result_2[_a];\r\n prependSpan(icon, container, input, internalCreate);\r\n }\r\n }\r\n }\r\n Input.addIcon = addIcon;\r\n /**\r\n * Creates a new span element with the given icons added and prepend it in input element.\r\n * ```\r\n * E.g : Input.prependSpan('e-icon-spin', inputObj.container, inputElement);\r\n * ```\r\n *\r\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\r\n * Span element acts as icon or button element for input.\r\n * @param {HTMLElement} container - The container on which created span element is going to append.\r\n * @param {HTMLElement} inputElement - The inputElement on which created span element is going to prepend.\r\n */\r\n /* eslint-disable @typescript-eslint/indent */\r\n function prependSpan(iconClass, container, inputElement, internalCreateElement) {\r\n /* eslint-enable @typescript-eslint/indent */\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var button = createIconEle(iconClass, makeElement);\r\n container.classList.add('e-float-icon-left');\r\n var innerWrapper = container.querySelector('.e-input-in-wrap');\r\n if (isNullOrUndefined(innerWrapper)) {\r\n innerWrapper = makeElement('span', { className: 'e-input-in-wrap' });\r\n inputElement.parentNode.insertBefore(innerWrapper, inputElement);\r\n var result = container.querySelectorAll(inputElement.tagName + ' ~ *');\r\n innerWrapper.appendChild(inputElement);\r\n for (var i = 0; i < result.length; i++) {\r\n innerWrapper.appendChild(result[i]);\r\n }\r\n }\r\n innerWrapper.parentNode.insertBefore(button, innerWrapper);\r\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\r\n container.classList.add(CLASSNAMES.INPUTGROUP);\r\n }\r\n _internalRipple(true, container, button);\r\n return button;\r\n }\r\n Input.prependSpan = prependSpan;\r\n /**\r\n * Creates a new span element with the given icons added and append it in container element.\r\n * ```\r\n * E.g : Input.appendSpan('e-icon-spin', inputObj.container);\r\n * ```\r\n *\r\n * @param {string} iconClass - Icon classes which are need to add to the span element which is going to created.\r\n * Span element acts as icon or button element for input.\r\n * @param {HTMLElement} container - The container on which created span element is going to append.\r\n */\r\n function appendSpan(iconClass, container, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n var button = createIconEle(iconClass, makeElement);\r\n if (!container.classList.contains(CLASSNAMES.INPUTGROUP)) {\r\n container.classList.add(CLASSNAMES.INPUTGROUP);\r\n }\r\n var wrap = (container.classList.contains('e-float-icon-left')) ? container.querySelector('.e-input-in-wrap') :\r\n container;\r\n wrap.appendChild(button);\r\n _internalRipple(true, container, button);\r\n return button;\r\n }\r\n Input.appendSpan = appendSpan;\r\n function validateInputType(containerElement, input) {\r\n if (input.type === 'hidden') {\r\n containerElement.classList.add('e-hidden');\r\n }\r\n else if (containerElement.classList.contains('e-hidden')) {\r\n containerElement.classList.remove('e-hidden');\r\n }\r\n }\r\n Input.validateInputType = validateInputType;\r\n})(Input || (Input = {}));\r\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\r\n","/**\n * MaskedTextbox base modules\n */\nexport * from './mask-base';\n","/* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\r\n/**\r\n * MaskedTextBox base module\r\n */\r\nimport { EventHandler, isNullOrUndefined, merge, attributes, addClass, removeClass, Browser, extend } from '@syncfusion/ej2-base';\r\nimport { Input } from '../../input/input';\r\nvar ERROR = 'e-error';\r\nvar INPUTGROUP = 'e-input-group';\r\nvar FLOATINPUT = 'e-float-input';\r\nvar UTILMASK = 'e-utility-mask';\r\nvar TOPLABEL = 'e-label-top';\r\nvar BOTTOMLABEL = 'e-label-bottom';\r\n/**\r\n * @hidden\r\n * Built-in masking elements collection.\r\n */\r\nexport var regularExpressions = {\r\n '0': '[0-9]',\r\n '9': '[0-9 ]',\r\n '#': '[0-9 +-]',\r\n 'L': '[A-Za-z]',\r\n '?': '[A-Za-z ]',\r\n '&': '[^\\x7f ]+',\r\n 'C': '[^\\x7f]+',\r\n 'A': '[A-Za-z0-9]',\r\n 'a': '[A-Za-z0-9 ]'\r\n};\r\n/**\r\n * Generate required masking elements to the MaskedTextBox from user mask input.\r\n *\r\n * @hidden\r\n */\r\nexport function createMask() {\r\n attributes(this.element, {\r\n 'role': 'textbox', 'autocomplete': 'off', 'autocorrect': 'off', 'autocapitalize': 'off',\r\n 'spellcheck': 'false', 'aria-live': 'assertive', 'aria-valuenow': ''\r\n });\r\n if (this.mask) {\r\n var splitMask = this.mask.split(']');\r\n for (var i = 0; i < splitMask.length; i++) {\r\n if (splitMask[i][splitMask[i].length - 1] === '\\\\') {\r\n splitMask[i] = splitMask[i] + ']';\r\n var splitInnerMask = splitMask[i].split('[');\r\n for (var j = 0; j < splitInnerMask.length; j++) {\r\n if (splitInnerMask[j][splitInnerMask[j].length - 1] === '\\\\') {\r\n splitInnerMask[j] = splitInnerMask[j] + '[';\r\n }\r\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\r\n }\r\n }\r\n else {\r\n var splitInnerMask = splitMask[i].split('[');\r\n if (splitInnerMask.length > 1) {\r\n var chkSpace = false;\r\n for (var j = 0; j < splitInnerMask.length; j++) {\r\n if (splitInnerMask[j] === '\\\\') {\r\n this.customRegExpCollec.push('[');\r\n this.hiddenMask += splitInnerMask[j] + '[';\r\n }\r\n else if (splitInnerMask[j] === '') {\r\n chkSpace = true;\r\n }\r\n else if ((splitInnerMask[j] !== '' && chkSpace) || j === splitInnerMask.length - 1) {\r\n this.customRegExpCollec.push('[' + splitInnerMask[j] + ']');\r\n this.hiddenMask += this.promptChar;\r\n chkSpace = false;\r\n }\r\n else {\r\n pushIntoRegExpCollec.call(this, splitInnerMask[j]);\r\n }\r\n }\r\n }\r\n else {\r\n pushIntoRegExpCollec.call(this, splitInnerMask[0]);\r\n }\r\n }\r\n }\r\n this.escapeMaskValue = this.hiddenMask;\r\n this.promptMask = this.hiddenMask.replace(/[09?LCAa#&]/g, this.promptChar);\r\n if (!isNullOrUndefined(this.customCharacters)) {\r\n for (var i = 0; i < this.promptMask.length; i++) {\r\n if (!isNullOrUndefined(this.customCharacters[this.promptMask[i]])) {\r\n this.promptMask = this.promptMask.replace(new RegExp(this.promptMask[i], 'g'), this.promptChar);\r\n }\r\n }\r\n }\r\n var escapeNumber = 0;\r\n if (this.hiddenMask.match(new RegExp(/\\\\/))) {\r\n for (var i = 0; i < this.hiddenMask.length; i++) {\r\n var j = 0;\r\n if (i >= 1) {\r\n j = i;\r\n }\r\n escapeNumber = this.hiddenMask.length - this.promptMask.length;\r\n j = j - escapeNumber;\r\n if ((i > 0 && this.hiddenMask[i - 1] !== '\\\\') && (this.hiddenMask[i] === '>' ||\r\n this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|')) {\r\n this.promptMask = this.promptMask.substring(0, j) +\r\n this.promptMask.substring((i + 1) - escapeNumber, this.promptMask.length);\r\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) +\r\n this.escapeMaskValue.substring((i + 1) - escapeNumber, this.escapeMaskValue.length);\r\n }\r\n if (this.hiddenMask[i] === '\\\\') {\r\n this.promptMask = this.promptMask.substring(0, j) + this.hiddenMask[i + 1] +\r\n this.promptMask.substring((i + 2) - escapeNumber, this.promptMask.length);\r\n this.escapeMaskValue = this.escapeMaskValue.substring(0, j) + this.escapeMaskValue[i + 1] +\r\n this.escapeMaskValue.substring((i + 2) - escapeNumber, this.escapeMaskValue.length);\r\n }\r\n }\r\n }\r\n else {\r\n this.promptMask = this.promptMask.replace(/[>|<]/g, '');\r\n this.escapeMaskValue = this.hiddenMask.replace(/[>|<]/g, '');\r\n }\r\n attributes(this.element, { 'aria-invalid': 'false' });\r\n }\r\n}\r\n/**\r\n * Apply mask ability with masking elements to the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function applyMask() {\r\n setElementValue.call(this, this.promptMask);\r\n setMaskValue.call(this, this.value);\r\n}\r\n/**\r\n * To wire required events to the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function wireEvents() {\r\n EventHandler.add(this.element, 'keydown', maskInputKeyDownHandler, this);\r\n EventHandler.add(this.element, 'keypress', maskInputKeyPressHandler, this);\r\n EventHandler.add(this.element, 'keyup', maskInputKeyUpHandler, this);\r\n EventHandler.add(this.element, 'input', maskInputHandler, this);\r\n EventHandler.add(this.element, 'focus', maskInputFocusHandler, this);\r\n EventHandler.add(this.element, 'blur', maskInputBlurHandler, this);\r\n EventHandler.add(this.element, 'paste', maskInputPasteHandler, this);\r\n EventHandler.add(this.element, 'cut', maskInputCutHandler, this);\r\n EventHandler.add(this.element, 'drop', maskInputDropHandler, this);\r\n EventHandler.add(this.element, 'mousedown', maskInputMouseDownHandler, this);\r\n EventHandler.add(this.element, 'mouseup', maskInputMouseUpHandler, this);\r\n if (this.enabled) {\r\n bindClearEvent.call(this);\r\n if (this.formElement) {\r\n EventHandler.add(this.formElement, 'reset', resetFormHandler, this);\r\n }\r\n }\r\n}\r\n/**\r\n * To unwire events attached to the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function unwireEvents() {\r\n EventHandler.remove(this.element, 'keydown', maskInputKeyDownHandler);\r\n EventHandler.remove(this.element, 'keypress', maskInputKeyPressHandler);\r\n EventHandler.remove(this.element, 'keyup', maskInputKeyUpHandler);\r\n EventHandler.remove(this.element, 'input', maskInputHandler);\r\n EventHandler.remove(this.element, 'focus', maskInputFocusHandler);\r\n EventHandler.remove(this.element, 'blur', maskInputBlurHandler);\r\n EventHandler.remove(this.element, 'paste', maskInputPasteHandler);\r\n EventHandler.remove(this.element, 'cut', maskInputCutHandler);\r\n EventHandler.remove(this.element, 'mousedown', maskInputMouseDownHandler);\r\n EventHandler.remove(this.element, 'mouseup', maskInputMouseUpHandler);\r\n if (this.formElement) {\r\n EventHandler.remove(this.formElement, 'reset', resetFormHandler);\r\n }\r\n}\r\n/**\r\n * To bind required events to the MaskedTextBox clearButton.\r\n *\r\n * @hidden\r\n */\r\nexport function bindClearEvent() {\r\n if (this.showClearButton) {\r\n EventHandler.add(this.inputObj.clearButton, 'mousedown touchstart', resetHandler, this);\r\n }\r\n}\r\nfunction resetHandler(e) {\r\n e.preventDefault();\r\n if (!this.inputObj.clearButton.classList.contains('e-clear-icon-hide') || (this.inputObj.container.classList.contains('e-static-clear'))) {\r\n clear.call(this, e);\r\n this.value = '';\r\n }\r\n}\r\nfunction clear(event) {\r\n var value = this.element.value;\r\n setElementValue.call(this, this.promptMask);\r\n this.redoCollec.unshift({\r\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\r\n });\r\n triggerMaskChangeEvent.call(this, event, value);\r\n this.element.setSelectionRange(0, 0);\r\n}\r\nfunction resetFormHandler() {\r\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\r\n setElementValue.call(this, this.promptMask);\r\n }\r\n else {\r\n this.value = this.initInputValue;\r\n }\r\n}\r\n/**\r\n * To get masked value from the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function unstrippedValue(element) {\r\n return element.value;\r\n}\r\n/**\r\n * To extract raw value from the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function strippedValue(element, maskValues) {\r\n var value = '';\r\n var k = 0;\r\n var checkMask = false;\r\n var maskValue = (!isNullOrUndefined(maskValues)) ? maskValues : (!isNullOrUndefined(element) &&\r\n !isNullOrUndefined(this)) ? element.value : maskValues;\r\n if (maskValue !== this.promptMask) {\r\n for (var i = 0; i < this.customRegExpCollec.length; i++) {\r\n if (checkMask) {\r\n checkMask = false;\r\n }\r\n if (this.customRegExpCollec[k] === '>' || this.customRegExpCollec[k] === '<' ||\r\n this.customRegExpCollec[k] === '|' || this.customRegExpCollec[k] === '\\\\') {\r\n --i;\r\n checkMask = true;\r\n }\r\n if (!checkMask) {\r\n if ((maskValue[i] !== this.promptChar) && (!isNullOrUndefined(this.customRegExpCollec[k]) &&\r\n ((this._callPasteHandler || !isNullOrUndefined(this.regExpCollec[this.customRegExpCollec[k]])) ||\r\n (this.customRegExpCollec[k].length > 2 && this.customRegExpCollec[k][0] === '[' &&\r\n this.customRegExpCollec[k][this.customRegExpCollec[k].length - 1] === ']') ||\r\n (!isNullOrUndefined(this.customCharacters) &&\r\n (!isNullOrUndefined(this.customCharacters[this.customRegExpCollec[k]]))))) && (maskValue !== '')) {\r\n value += maskValue[i];\r\n }\r\n }\r\n ++k;\r\n }\r\n }\r\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\r\n value = maskValue;\r\n }\r\n return value;\r\n}\r\nfunction pushIntoRegExpCollec(value) {\r\n for (var k = 0; k < value.length; k++) {\r\n this.hiddenMask += value[k];\r\n if (value[k] !== '\\\\') {\r\n this.customRegExpCollec.push(value[k]);\r\n }\r\n }\r\n}\r\nexport function maskInputMouseDownHandler() {\r\n this.isClicked = true;\r\n}\r\nexport function maskInputMouseUpHandler() {\r\n this.isClicked = false;\r\n}\r\nexport function maskInputFocusHandler(event) {\r\n var _this = this;\r\n var inputElement = this.element;\r\n var startIndex = 0;\r\n var modelValue = strippedValue.call(this, inputElement);\r\n var toAllowForward = false;\r\n var toAllowBackward = false;\r\n var eventArgs = {\r\n selectionStart: inputElement.selectionStart,\r\n event: event,\r\n value: this.value,\r\n maskedValue: inputElement.value,\r\n container: this.inputObj.container,\r\n selectionEnd: inputElement.selectionEnd\r\n };\r\n if (!this.isClicked) {\r\n triggerFocus.call(this, eventArgs, inputElement);\r\n }\r\n if (this.mask) {\r\n if (!(!(modelValue === null || modelValue === '') || this.floatLabelType === 'Always' ||\r\n this.placeholder === null || this.placeholder === '')) {\r\n inputElement.value = this.promptMask;\r\n }\r\n setTimeout(function () {\r\n if (inputElement.selectionStart === _this.promptMask.length ||\r\n inputElement.value[inputElement.selectionStart] === _this.promptChar) {\r\n toAllowForward = true;\r\n }\r\n else {\r\n for (var i = inputElement.selectionStart; i < _this.promptMask.length; i++) {\r\n if (inputElement.value[i] !== _this.promptChar) {\r\n if ((inputElement.value[i] !== _this.promptMask[i])) {\r\n toAllowForward = false;\r\n break;\r\n }\r\n }\r\n else {\r\n toAllowForward = true;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n setTimeout(function () {\r\n var backSelectionStart = inputElement.selectionStart - 1;\r\n if (backSelectionStart === _this.promptMask.length - 1 ||\r\n inputElement.value[backSelectionStart] === _this.promptChar) {\r\n toAllowBackward = true;\r\n }\r\n else {\r\n for (var i = backSelectionStart; i >= 0; i--) {\r\n if (inputElement.value[i] !== _this.promptChar) {\r\n if ((inputElement.value[i] !== _this.promptMask[i])) {\r\n toAllowBackward = false;\r\n break;\r\n }\r\n }\r\n else {\r\n toAllowBackward = true;\r\n break;\r\n }\r\n }\r\n }\r\n });\r\n if ((this.isClicked || (this.floatLabelType !== 'Always' &&\r\n ((modelValue === null || modelValue === '') &&\r\n (this.placeholder !== null && this.placeholder !== ''))))) {\r\n for (startIndex = 0; startIndex < this.promptMask.length; startIndex++) {\r\n if (inputElement.value[startIndex] === this.promptChar) {\r\n setTimeout(function () {\r\n if (toAllowForward || toAllowBackward) {\r\n inputElement.selectionEnd = startIndex;\r\n inputElement.selectionStart = startIndex;\r\n }\r\n eventArgs = {\r\n selectionStart: inputElement.selectionStart,\r\n event: event,\r\n value: _this.value,\r\n maskedValue: inputElement.value,\r\n container: _this.inputObj.container,\r\n selectionEnd: inputElement.selectionEnd\r\n };\r\n triggerFocus.call(_this, eventArgs, inputElement);\r\n });\r\n break;\r\n }\r\n }\r\n if (isNullOrUndefined(inputElement.value.match(this.promptChar))) {\r\n eventArgs = {\r\n selectionStart: inputElement.selectionStart,\r\n event: event,\r\n value: this.value,\r\n maskedValue: inputElement.value,\r\n container: this.inputObj.container,\r\n selectionEnd: inputElement.selectionEnd\r\n };\r\n triggerFocus.call(this, eventArgs, inputElement);\r\n }\r\n this.isClicked = false;\r\n }\r\n }\r\n}\r\nexport function triggerFocus(eventArgs, inputElement) {\r\n this.trigger('focus', eventArgs, function (eventArgs) {\r\n inputElement.selectionStart = eventArgs.selectionStart;\r\n inputElement.selectionEnd = eventArgs.selectionEnd;\r\n });\r\n}\r\nexport function maskInputBlurHandler(event) {\r\n this.blurEventArgs = {\r\n event: event,\r\n value: this.value,\r\n maskedValue: this.element.value,\r\n container: this.inputObj.container\r\n };\r\n this.trigger('blur', this.blurEventArgs);\r\n if (this.mask) {\r\n this.isFocus = false;\r\n if (this.placeholder && this.element.value === this.promptMask && this.floatLabelType !== 'Always') {\r\n setElementValue.call(this, '');\r\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\r\n if (this.floatLabelType === 'Auto' && !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL)) {\r\n removeClass([labelElement], TOPLABEL);\r\n }\r\n }\r\n }\r\n}\r\nfunction maskInputPasteHandler(event) {\r\n var _this = this;\r\n if (this.mask && !this.readonly) {\r\n var sIndex_1 = this.element.selectionStart;\r\n var eIndex_1 = this.element.selectionEnd;\r\n var oldValue_1 = this.element.value;\r\n setElementValue.call(this, '');\r\n this._callPasteHandler = true;\r\n setTimeout(function () {\r\n var value = _this.element.value.replace(/ /g, '');\r\n if (_this.redoCollec.length > 0 && _this.redoCollec[0].value === _this.element.value) {\r\n value = strippedValue.call(_this, _this.element);\r\n }\r\n setElementValue.call(_this, oldValue_1);\r\n _this.element.selectionStart = sIndex_1;\r\n _this.element.selectionEnd = eIndex_1;\r\n var i = 0;\r\n _this.maskKeyPress = true;\r\n do {\r\n validateValue.call(_this, value[i], false, null);\r\n ++i;\r\n } while (i < value.length);\r\n _this.maskKeyPress = false;\r\n _this._callPasteHandler = false;\r\n if (_this.element.value === oldValue_1) {\r\n var i_1 = 0;\r\n _this.maskKeyPress = true;\r\n do {\r\n validateValue.call(_this, value[i_1], false, null);\r\n ++i_1;\r\n } while (i_1 < value.length);\r\n _this.maskKeyPress = false;\r\n }\r\n else {\r\n triggerMaskChangeEvent.call(_this, event, oldValue_1);\r\n }\r\n }, 1);\r\n }\r\n}\r\nfunction maskInputCutHandler(event) {\r\n var _this = this;\r\n if (this.mask && !this.readonly) {\r\n var preValue_1 = this.element.value;\r\n var sIndex_2 = this.element.selectionStart;\r\n var eIndex = this.element.selectionEnd;\r\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd });\r\n var value_1 = this.element.value.substring(0, sIndex_2) + this.promptMask.substring(sIndex_2, eIndex) +\r\n this.element.value.substring(eIndex);\r\n setTimeout(function () {\r\n setElementValue.call(_this, value_1);\r\n _this.element.selectionStart = _this.element.selectionEnd = sIndex_2;\r\n if (_this.element.value !== preValue_1) {\r\n triggerMaskChangeEvent.call(_this, event, null);\r\n }\r\n }, 0);\r\n }\r\n}\r\nexport function maskInputDropHandler(event) {\r\n event.preventDefault();\r\n}\r\nfunction maskInputHandler(event) {\r\n if (Browser.isIE === true && this.element.value === '' && this.floatLabelType === 'Never') {\r\n return;\r\n }\r\n var eventArgs = { ctrlKey: false, keyCode: 229 };\r\n extend(event, eventArgs);\r\n if (this.mask) {\r\n if (this.element.value === '') {\r\n this.redoCollec.unshift({\r\n value: this.promptMask, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\r\n });\r\n }\r\n if (this.element.value.length === 1) {\r\n this.element.value = this.element.value + this.promptMask;\r\n this.element.setSelectionRange(1, 1);\r\n }\r\n if (!this._callPasteHandler) {\r\n removeMaskInputValues.call(this, event);\r\n }\r\n if (this.element.value.length > this.promptMask.length) {\r\n var startIndex = this.element.selectionStart;\r\n var addedValues = this.element.value.length - this.promptMask.length;\r\n var value = this.element.value.substring(startIndex - addedValues, startIndex);\r\n this.maskKeyPress = false;\r\n var i = 0;\r\n do {\r\n validateValue.call(this, value[i], event.ctrlKey, event);\r\n ++i;\r\n } while (i < value.length);\r\n if (this.element.value !== this.preEleVal) {\r\n triggerMaskChangeEvent.call(this, event, null);\r\n }\r\n }\r\n var val = strippedValue.call(this, this.element);\r\n this.prevValue = val;\r\n this.value = val;\r\n if (val === '') {\r\n setElementValue.call(this, this.promptMask);\r\n this.element.setSelectionRange(0, 0);\r\n }\r\n }\r\n}\r\nfunction maskInputKeyDownHandler(event) {\r\n if (this.mask && !this.readonly) {\r\n if (event.keyCode !== 229) {\r\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\r\n event.preventDefault();\r\n }\r\n removeMaskInputValues.call(this, event);\r\n }\r\n var startValue = this.element.value;\r\n if (event.ctrlKey && (event.keyCode === 89 || event.keyCode === 90)) {\r\n var collec = void 0;\r\n if (event.keyCode === 90 && this.undoCollec.length > 0 && startValue !== this.undoCollec[this.undoCollec.length - 1].value) {\r\n collec = this.undoCollec[this.undoCollec.length - 1];\r\n this.redoCollec.unshift({\r\n value: this.element.value, startIndex: this.element.selectionStart,\r\n endIndex: this.element.selectionEnd\r\n });\r\n setElementValue.call(this, collec.value);\r\n this.element.selectionStart = collec.startIndex;\r\n this.element.selectionEnd = collec.endIndex;\r\n this.undoCollec.splice(this.undoCollec.length - 1, 1);\r\n }\r\n else if (event.keyCode === 89 && this.redoCollec.length > 0 && startValue !== this.redoCollec[0].value) {\r\n collec = this.redoCollec[0];\r\n this.undoCollec.push({\r\n value: this.element.value, startIndex: this.element.selectionStart,\r\n endIndex: this.element.selectionEnd\r\n });\r\n setElementValue.call(this, collec.value);\r\n this.element.selectionStart = collec.startIndex;\r\n this.element.selectionEnd = collec.endIndex;\r\n this.redoCollec.splice(0, 1);\r\n }\r\n }\r\n }\r\n}\r\nexport function mobileRemoveFunction() {\r\n var collec;\r\n var sIndex = this.element.selectionStart;\r\n var eIndex = this.element.selectionEnd;\r\n if (this.redoCollec.length > 0) {\r\n collec = this.redoCollec[0];\r\n setElementValue.call(this, collec.value);\r\n if ((collec.startIndex - sIndex) === 1) {\r\n this.element.selectionStart = collec.startIndex;\r\n this.element.selectionEnd = collec.endIndex;\r\n }\r\n else {\r\n this.element.selectionStart = sIndex + 1;\r\n this.element.selectionEnd = eIndex + 1;\r\n }\r\n }\r\n else {\r\n setElementValue.call(this, this.promptMask);\r\n this.element.selectionStart = this.element.selectionEnd = sIndex;\r\n }\r\n}\r\nfunction autoFillMaskInputValues(isRemove, oldEventVal, event) {\r\n if (event.type === 'input') {\r\n isRemove = false;\r\n oldEventVal = this.element.value;\r\n setElementValue.call(this, this.promptMask);\r\n setMaskValue.call(this, oldEventVal);\r\n }\r\n return isRemove;\r\n}\r\nfunction removeMaskInputValues(event) {\r\n var isRemove = false;\r\n var oldEventVal;\r\n var isDeleted = false;\r\n if (this.element.value.length < this.promptMask.length) {\r\n isRemove = true;\r\n oldEventVal = this.element.value;\r\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\r\n mobileRemoveFunction.call(this);\r\n }\r\n if (this.element.value.length >= this.promptMask.length && event.type === 'input') {\r\n isRemove = autoFillMaskInputValues.call(this, isRemove, oldEventVal, event);\r\n }\r\n var initStartIndex = this.element.selectionStart;\r\n var initEndIndex = this.element.selectionEnd;\r\n var startIndex = this.element.selectionStart;\r\n var endIndex = this.element.selectionEnd;\r\n var maskValue = this.hiddenMask.replace(/[>|\\\\<]/g, '');\r\n var curMask = maskValue[startIndex - 1];\r\n var deleteEndIndex = this.element.selectionEnd;\r\n if (isRemove || event.keyCode === 8 || event.keyCode === 46) {\r\n this.undoCollec.push({ value: this.element.value, startIndex: this.element.selectionStart, endIndex: endIndex });\r\n var multipleDel = false;\r\n var preValue = this.element.value;\r\n if (startIndex > 0 || ((event.keyCode === 8 || event.keyCode === 46) && startIndex < this.element.value.length\r\n && ((this.element.selectionEnd - startIndex) !== this.element.value.length))) {\r\n var index = startIndex;\r\n if (startIndex !== endIndex) {\r\n startIndex = endIndex;\r\n if (event.keyCode === 46) {\r\n multipleDel = true;\r\n }\r\n }\r\n else if (event.keyCode === 46) {\r\n ++index;\r\n }\r\n else {\r\n --index;\r\n }\r\n for (var k = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? k > index : k < index; (event.keyCode === 8 || isRemove || multipleDel) ? k-- : k++) {\r\n for (var i = startIndex; (event.keyCode === 8 || isRemove || multipleDel) ? i > 0 : i < this.element.value.length; (event.keyCode === 8 || isRemove || multipleDel) ? i-- : i++) {\r\n var sIndex = void 0;\r\n if (((event.keyCode === 8 || multipleDel) && ((initStartIndex !== initEndIndex && initStartIndex !== startIndex) ||\r\n (initStartIndex === initEndIndex))) || isRemove) {\r\n curMask = maskValue[i - 1];\r\n sIndex = startIndex - 1;\r\n }\r\n else {\r\n curMask = maskValue[i];\r\n sIndex = startIndex;\r\n ++startIndex;\r\n }\r\n var oldValue = this.element.value[sIndex];\r\n if ((isNullOrUndefined(this.regExpCollec[curMask]) && (!isNullOrUndefined(this.customCharacters)\r\n && isNullOrUndefined(this.customCharacters[curMask]))\r\n && ((this.hiddenMask[sIndex] !== this.promptChar && this.customRegExpCollec[sIndex][0] !== '['\r\n && this.customRegExpCollec[sIndex][this.customRegExpCollec[sIndex].length - 1] !== ']')))\r\n || (this.promptMask[sIndex] !== this.promptChar && isNullOrUndefined(this.customCharacters))) {\r\n this.element.selectionStart = this.element.selectionEnd = sIndex;\r\n event.preventDefault();\r\n if (event.keyCode === 46 && !multipleDel) {\r\n ++this.element.selectionStart;\r\n }\r\n }\r\n else {\r\n var value = this.element.value;\r\n var prompt_1 = this.promptChar;\r\n var elementValue = value.substring(0, sIndex) + prompt_1 + value.substring(startIndex, value.length);\r\n setElementValue.call(this, elementValue);\r\n event.preventDefault();\r\n if (event.keyCode === 46 && !multipleDel) {\r\n sIndex++;\r\n }\r\n this.element.selectionStart = this.element.selectionEnd = sIndex;\r\n isDeleted = true;\r\n }\r\n startIndex = this.element.selectionStart;\r\n if ((!isDeleted && event.keyCode === 8) || multipleDel || (!isDeleted && !(event.keyCode === 46))) {\r\n sIndex = startIndex - 1;\r\n }\r\n else {\r\n sIndex = startIndex;\r\n isDeleted = false;\r\n }\r\n oldValue = this.element.value[sIndex];\r\n if (((initStartIndex !== initEndIndex) && (this.element.selectionStart === initStartIndex))\r\n || (this.promptMask[sIndex] === this.promptChar) || ((oldValue !== this.promptMask[sIndex]) &&\r\n (this.promptMask[sIndex] !== this.promptChar) && !isNullOrUndefined(this.customCharacters))) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (event.keyCode === 46 && multipleDel && isDeleted) {\r\n this.element.selectionStart = this.element.selectionEnd = deleteEndIndex;\r\n }\r\n if (this.element.selectionStart === 0 && (this.element.selectionEnd === this.element.value.length)) {\r\n setElementValue.call(this, this.promptMask);\r\n event.preventDefault();\r\n this.element.selectionStart = this.element.selectionEnd = startIndex;\r\n }\r\n this.redoCollec.unshift({\r\n value: this.element.value, startIndex: this.element.selectionStart,\r\n endIndex: this.element.selectionEnd\r\n });\r\n if (this.element.value !== preValue) {\r\n triggerMaskChangeEvent.call(this, event, oldEventVal);\r\n }\r\n }\r\n}\r\nfunction maskInputKeyPressHandler(event) {\r\n if (this.mask && !this.readonly) {\r\n var oldValue = this.element.value;\r\n if ((!event.ctrlKey) || (event.ctrlKey && event.code !== 'KeyA' && event.code !== 'KeyY'\r\n && event.code !== 'KeyZ' && event.code !== 'KeyX' && event.code !== 'KeyC' && event.code !== 'KeyV')) {\r\n this.maskKeyPress = true;\r\n var key = event.key;\r\n if (key === 'Spacebar') {\r\n key = String.fromCharCode(event.keyCode);\r\n }\r\n if (!key) {\r\n this.isIosInvalid = true;\r\n validateValue.call(this, String.fromCharCode(event.keyCode), event.ctrlKey, event);\r\n event.preventDefault();\r\n this.isIosInvalid = false;\r\n }\r\n else if (key && key.length === 1) {\r\n validateValue.call(this, key, event.ctrlKey, event);\r\n event.preventDefault();\r\n }\r\n if (event.keyCode === 32 && key === ' ' && this.promptChar === ' ') {\r\n this.element.selectionStart = this.element.selectionEnd = this.element.selectionStart - key.length;\r\n }\r\n }\r\n if (this.element.value !== oldValue) {\r\n triggerMaskChangeEvent.call(this, event, oldValue);\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nfunction triggerMaskChangeEvent(event, oldValue) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n if (!isNullOrUndefined(this.changeEventArgs) && !this.isInitial) {\r\n var eventArgs = {};\r\n this.changeEventArgs = { value: this.element.value, maskedValue: this.element.value, isInteraction: false, isInteracted: false };\r\n if (this.mask) {\r\n this.changeEventArgs.value = strippedValue.call(this, this.element);\r\n }\r\n if (!isNullOrUndefined(event)) {\r\n this.changeEventArgs.isInteracted = true;\r\n this.changeEventArgs.isInteraction = true;\r\n this.changeEventArgs.event = event;\r\n }\r\n this.isProtectedOnChange = true;\r\n this.value = this.changeEventArgs.value;\r\n this.isProtectedOnChange = prevOnChange;\r\n merge(eventArgs, this.changeEventArgs);\r\n /* istanbul ignore next */\r\n if (this.isAngular && this.preventChange) {\r\n this.preventChange = false;\r\n }\r\n else {\r\n this.trigger('change', eventArgs);\r\n }\r\n }\r\n this.preEleVal = this.element.value;\r\n this.prevValue = strippedValue.call(this, this.element);\r\n attributes(this.element, { 'aria-valuenow': this.element.value });\r\n}\r\nfunction maskInputKeyUpHandler(event) {\r\n if (this.mask && !this.readonly) {\r\n var collec = void 0;\r\n if (!this.maskKeyPress && event.keyCode === 229) {\r\n var oldEventVal = void 0;\r\n if (this.element.value.length === 1) {\r\n this.element.value = this.element.value + this.promptMask;\r\n this.element.setSelectionRange(1, 1);\r\n }\r\n if (this.element.value.length > this.promptMask.length) {\r\n var startIndex = this.element.selectionStart;\r\n var addedValues = this.element.value.length - this.promptMask.length;\r\n var val_1 = this.element.value.substring(startIndex - addedValues, startIndex);\r\n if (this.undoCollec.length > 0) {\r\n collec = this.undoCollec[this.undoCollec.length - 1];\r\n var startIndex_1 = this.element.selectionStart;\r\n oldEventVal = collec.value;\r\n var oldVal = collec.value.substring(startIndex_1 - addedValues, startIndex_1);\r\n collec = this.redoCollec[0];\r\n val_1 = val_1.trim();\r\n var isSpace = Browser.isAndroid && val_1 === '';\r\n if (!isSpace && oldVal !== val_1 && collec.value.substring(startIndex_1 - addedValues, startIndex_1) !== val_1) {\r\n validateValue.call(this, val_1, event.ctrlKey, event);\r\n }\r\n else if (isSpace) {\r\n preventUnsupportedValues.call(this, event, startIndex_1 - 1, this.element.selectionEnd - 1, val_1, event.ctrlKey, false);\r\n }\r\n }\r\n else {\r\n oldEventVal = this.promptMask;\r\n validateValue.call(this, val_1, event.ctrlKey, event);\r\n }\r\n this.maskKeyPress = false;\r\n triggerMaskChangeEvent.call(this, event, oldEventVal);\r\n }\r\n }\r\n else {\r\n removeMaskError.call(this);\r\n }\r\n var val = strippedValue.call(this, this.element);\r\n if (!((this.element.selectionStart === 0) && (this.promptMask === this.element.value) && val === '')\r\n || (val === '' && this.value !== val)) {\r\n this.prevValue = val;\r\n this.value = val;\r\n }\r\n }\r\n else {\r\n triggerMaskChangeEvent.call(this, event);\r\n }\r\n if (this.element.selectionStart === 0 && this.element.selectionEnd === 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var temp_1 = this.element;\r\n setTimeout(function () {\r\n temp_1.setSelectionRange(0, 0);\r\n }, 0);\r\n }\r\n}\r\nfunction mobileSwipeCheck(key) {\r\n if (key.length > 1 && ((this.promptMask.length + key.length) < this.element.value.length)) {\r\n var elementValue = this.redoCollec[0].value.substring(0, this.redoCollec[0].startIndex) + key +\r\n this.redoCollec[0].value.substring(this.redoCollec[0].startIndex, this.redoCollec[0].value.length);\r\n setElementValue.call(this, elementValue);\r\n this.element.selectionStart = this.element.selectionEnd = this.redoCollec[0].startIndex + key.length;\r\n }\r\n this.element.selectionStart = this.element.selectionStart - key.length;\r\n this.element.selectionEnd = this.element.selectionEnd - key.length;\r\n}\r\nfunction mobileValidation(key) {\r\n if (!this.maskKeyPress) {\r\n mobileSwipeCheck.call(this, key);\r\n }\r\n}\r\nfunction validateValue(key, isCtrlKey, event) {\r\n mobileValidation.call(this, key);\r\n if (isNullOrUndefined(this) || isNullOrUndefined(key)) {\r\n return;\r\n }\r\n var startIndex = this.element.selectionStart;\r\n var initStartIndex = startIndex;\r\n var curMask;\r\n var allowText = false;\r\n var value = this.element.value;\r\n var eventOldVal;\r\n var prevSupport = false;\r\n var isEqualVal = false;\r\n for (var k = 0; k < key.length; k++) {\r\n var keyValue = key[k];\r\n startIndex = this.element.selectionStart;\r\n if (!this.maskKeyPress && initStartIndex === startIndex) {\r\n startIndex = startIndex + k;\r\n }\r\n if ((!this.maskKeyPress || startIndex < this.promptMask.length)) {\r\n for (var i = startIndex; i < this.promptMask.length; i++) {\r\n var maskValue = this.escapeMaskValue;\r\n curMask = maskValue[startIndex];\r\n if (this.hiddenMask[startIndex] === '\\\\' && this.hiddenMask[startIndex + 1] === key) {\r\n isEqualVal = true;\r\n }\r\n if ((isNullOrUndefined(this.regExpCollec[curMask]) && (isNullOrUndefined(this.customCharacters)\r\n || (!isNullOrUndefined(this.customCharacters) && isNullOrUndefined(this.customCharacters[curMask])))\r\n && ((this.hiddenMask[startIndex] !== this.promptChar && this.customRegExpCollec[startIndex][0] !== '['\r\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] !== ']')))\r\n || ((this.promptMask[startIndex] !== this.promptChar) && isNullOrUndefined(this.customCharacters))\r\n || (this.promptChar === curMask && this.escapeMaskValue === this.mask)) {\r\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\r\n startIndex = this.element.selectionStart;\r\n curMask = this.hiddenMask[startIndex];\r\n }\r\n }\r\n if (!isNullOrUndefined(this.customCharacters) && !isNullOrUndefined(this.customCharacters[curMask])) {\r\n var customValStr = this.customCharacters[curMask];\r\n var customValArr = customValStr.split(',');\r\n for (var i = 0; i < customValArr.length; i++) {\r\n if (keyValue.match(new RegExp('[' + customValArr[i] + ']'))) {\r\n allowText = true;\r\n break;\r\n }\r\n }\r\n }\r\n else if (!isNullOrUndefined(this.regExpCollec[curMask]) && keyValue.match(new RegExp(this.regExpCollec[curMask]))\r\n && this.promptMask[startIndex] === this.promptChar) {\r\n allowText = true;\r\n }\r\n else if (this.promptMask[startIndex] === this.promptChar && this.customRegExpCollec[startIndex][0] === '['\r\n && this.customRegExpCollec[startIndex][this.customRegExpCollec[startIndex].length - 1] === ']'\r\n && keyValue.match(new RegExp(this.customRegExpCollec[startIndex]))) {\r\n allowText = true;\r\n }\r\n if ((!this.maskKeyPress || startIndex < this.hiddenMask.length) && allowText) {\r\n if (k === 0) {\r\n if (this.maskKeyPress) {\r\n this.undoCollec.push({ value: value, startIndex: startIndex, endIndex: startIndex });\r\n }\r\n else {\r\n var sIndex = this.element.selectionStart;\r\n var eIndex = this.element.selectionEnd;\r\n if (this.redoCollec.length > 0) {\r\n eventOldVal = this.redoCollec[0].value;\r\n setElementValue.call(this, eventOldVal);\r\n this.undoCollec.push(this.redoCollec[0]);\r\n }\r\n else {\r\n this.undoCollec.push({ value: this.promptMask, startIndex: startIndex, endIndex: startIndex });\r\n eventOldVal = this.promptMask;\r\n setElementValue.call(this, eventOldVal);\r\n }\r\n this.element.selectionStart = sIndex;\r\n this.element.selectionEnd = eIndex;\r\n }\r\n }\r\n startIndex = this.element.selectionStart;\r\n applySupportedValues.call(this, event, startIndex, keyValue, eventOldVal, isEqualVal);\r\n prevSupport = true;\r\n if (k === key.length - 1) {\r\n this.redoCollec.unshift({\r\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\r\n });\r\n }\r\n allowText = false;\r\n }\r\n else {\r\n startIndex = this.element.selectionStart;\r\n preventUnsupportedValues.call(this, event, startIndex, initStartIndex, key, isCtrlKey, prevSupport);\r\n }\r\n if (k === key.length - 1 && !allowText) {\r\n if (!Browser.isAndroid || (Browser.isAndroid && startIndex < this.promptMask.length)) {\r\n this.redoCollec.unshift({\r\n value: this.element.value, startIndex: this.element.selectionStart, endIndex: this.element.selectionEnd\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n if (key.length === 1 && !isCtrlKey && !isNullOrUndefined(event)) {\r\n addMaskErrorClass.call(this);\r\n }\r\n }\r\n }\r\n}\r\nfunction applySupportedValues(event, startIndex, keyValue, eventOldVal, isEqualVal) {\r\n if (this.hiddenMask.length > this.promptMask.length) {\r\n keyValue = changeToLowerUpperCase.call(this, keyValue, this.element.value);\r\n }\r\n if (!isEqualVal) {\r\n var value = this.element.value;\r\n var elementValue = value.substring(0, startIndex) + keyValue + value.substring(startIndex + 1, value.length);\r\n setElementValue.call(this, elementValue);\r\n this.element.selectionStart = this.element.selectionEnd = startIndex + 1;\r\n }\r\n}\r\nfunction preventUnsupportedValues(event, sIdx, idx, key, ctrl, chkSupport) {\r\n if (!this.maskKeyPress) {\r\n var value = this.element.value;\r\n if (sIdx >= this.promptMask.length) {\r\n setElementValue.call(this, value.substring(0, sIdx));\r\n }\r\n else {\r\n if (idx === sIdx) {\r\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx + 1, value.length));\r\n }\r\n else {\r\n if (this.promptMask.length === this.element.value.length) {\r\n setElementValue.call(this, value.substring(0, sIdx) + value.substring(sIdx, value.length));\r\n }\r\n else {\r\n setElementValue.call(this, value.substring(0, idx) + value.substring(idx + 1, value.length));\r\n }\r\n }\r\n this.element.selectionStart = this.element.selectionEnd = (chkSupport ||\r\n this.element.value[idx] !== this.promptChar) ? sIdx : idx;\r\n }\r\n addMaskErrorClass.call(this);\r\n }\r\n if (key.length === 1 && !ctrl && !isNullOrUndefined(event)) {\r\n addMaskErrorClass.call(this);\r\n }\r\n}\r\nfunction addMaskErrorClass() {\r\n var _this = this;\r\n var parentElement = this.element.parentNode;\r\n var timer = 200;\r\n if (parentElement.classList.contains(INPUTGROUP) || parentElement.classList.contains(FLOATINPUT)) {\r\n addClass([parentElement], ERROR);\r\n }\r\n else {\r\n addClass([this.element], ERROR);\r\n }\r\n if (this.isIosInvalid === true) {\r\n timer = 400;\r\n }\r\n attributes(this.element, { 'aria-invalid': 'true' });\r\n setTimeout(function () {\r\n if (!_this.maskKeyPress) {\r\n removeMaskError.call(_this);\r\n }\r\n }, timer);\r\n}\r\nfunction removeMaskError() {\r\n var parentElement = this.element.parentNode;\r\n if (!isNullOrUndefined(parentElement)) {\r\n removeClass([parentElement], ERROR);\r\n }\r\n removeClass([this.element], ERROR);\r\n attributes(this.element, { 'aria-invalid': 'false' });\r\n}\r\n/**\r\n * Validates user input using masking elements '<' , '>' and '|'.\r\n *\r\n * @hidden\r\n */\r\nfunction changeToLowerUpperCase(key, value) {\r\n var promptMask;\r\n var i;\r\n var curVal = value;\r\n var caseCount = 0;\r\n for (i = 0; i < this.hiddenMask.length; i++) {\r\n if (this.hiddenMask[i] === '\\\\') {\r\n promptMask = curVal.substring(0, i) + '\\\\' + curVal.substring(i, curVal.length);\r\n }\r\n if (this.hiddenMask[i] === '>' || this.hiddenMask[i] === '<' || this.hiddenMask[i] === '|') {\r\n if (this.hiddenMask[i] !== curVal[i]) {\r\n promptMask = curVal.substring(0, i) + this.hiddenMask[i] + curVal.substring(i, curVal.length);\r\n }\r\n ++caseCount;\r\n }\r\n if (promptMask) {\r\n if (((promptMask[i] === this.promptChar) && (i > this.element.selectionStart)) ||\r\n (this.element.value.indexOf(this.promptChar) < 0 && (this.element.selectionStart + caseCount) === i)) {\r\n caseCount = 0;\r\n break;\r\n }\r\n curVal = promptMask;\r\n }\r\n }\r\n while (i >= 0 && promptMask) {\r\n if (i === 0 || promptMask[i - 1] !== '\\\\') {\r\n if (promptMask[i] === '>') {\r\n key = key.toUpperCase();\r\n break;\r\n }\r\n else if (promptMask[i] === '<') {\r\n key = key.toLowerCase();\r\n break;\r\n }\r\n else if (promptMask[i] === '|') {\r\n break;\r\n }\r\n }\r\n --i;\r\n }\r\n return key;\r\n}\r\n/**\r\n * To set updated values in the MaskedTextBox.\r\n *\r\n * @hidden\r\n */\r\nexport function setMaskValue(val) {\r\n if (this.mask && val !== undefined && (this.prevValue === undefined || this.prevValue !== val)) {\r\n this.maskKeyPress = true;\r\n setElementValue.call(this, this.promptMask);\r\n if (val !== '' && !(val === null && this.floatLabelType === 'Never' && this.placeholder)) {\r\n this.element.selectionStart = 0;\r\n this.element.selectionEnd = 0;\r\n }\r\n if (val !== null) {\r\n for (var i = 0; i < val.length; i++) {\r\n validateValue.call(this, val[i], false, null);\r\n }\r\n }\r\n var newVal = strippedValue.call(this, this.element);\r\n this.prevValue = newVal;\r\n this.value = newVal;\r\n triggerMaskChangeEvent.call(this, null, null);\r\n this.maskKeyPress = false;\r\n var labelElement = this.element.parentNode.querySelector('.e-float-text');\r\n if (this.element.value === this.promptMask && this.floatLabelType === 'Auto' && this.placeholder &&\r\n !isNullOrUndefined(labelElement) && labelElement.classList.contains(TOPLABEL) && !this.isFocus) {\r\n removeClass([labelElement], TOPLABEL);\r\n addClass([labelElement], BOTTOMLABEL);\r\n setElementValue.call(this, '');\r\n }\r\n }\r\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\r\n setElementValue.call(this, this.value);\r\n }\r\n}\r\n/**\r\n * To set updated values in the input element.\r\n *\r\n * @hidden\r\n */\r\nexport function setElementValue(val, element) {\r\n if (!this.isFocus && this.floatLabelType === 'Auto' && this.placeholder && isNullOrUndefined(this.value)) {\r\n val = '';\r\n }\r\n var value = strippedValue.call(this, (element ? element : this.element), val);\r\n if (value === null || value === '') {\r\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, false);\r\n if (this.showClearButton) {\r\n this.inputObj.clearButton.classList.add('e-clear-icon-hide');\r\n }\r\n }\r\n else {\r\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\r\n }\r\n}\r\n/**\r\n * Provide mask support to input textbox through utility method.\r\n *\r\n * @hidden\r\n */\r\nexport function maskInput(args) {\r\n var inputEle = getMaskInput(args);\r\n applyMask.call(inputEle);\r\n var val = strippedValue.call(this, this.element);\r\n this.prevValue = val;\r\n this.value = val;\r\n if (args.mask) {\r\n unwireEvents.call(inputEle);\r\n wireEvents.call(inputEle);\r\n }\r\n}\r\nfunction getMaskInput(args) {\r\n addClass([args.element], UTILMASK);\r\n var inputEle = {\r\n element: args.element,\r\n mask: args.mask,\r\n promptMask: '',\r\n hiddenMask: '',\r\n escapeMaskValue: '',\r\n promptChar: args.promptChar ? (args.promptChar.length > 1) ? args.promptChar = args.promptChar[0]\r\n : args.promptChar : '_',\r\n value: args.value ? args.value : null,\r\n regExpCollec: regularExpressions,\r\n customRegExpCollec: [],\r\n customCharacters: args.customCharacters,\r\n undoCollec: [],\r\n redoCollec: [],\r\n maskKeyPress: false,\r\n prevValue: ''\r\n };\r\n createMask.call(inputEle);\r\n return inputEle;\r\n}\r\n/**\r\n * Gets raw value of the textbox which has been masked through utility method.\r\n *\r\n * @hidden\r\n */\r\nexport function getVal(args) {\r\n return strippedValue.call(getUtilMaskEle(args), args.element);\r\n}\r\n/**\r\n * Gets masked value of the textbox which has been masked through utility method.\r\n *\r\n * @hidden\r\n */\r\nexport function getMaskedVal(args) {\r\n return unstrippedValue.call(getUtilMaskEle(args), args.element);\r\n}\r\nfunction getUtilMaskEle(args) {\r\n var inputEle;\r\n if (!isNullOrUndefined(args) && args.element.classList.contains(UTILMASK)) {\r\n inputEle = getMaskInput(args);\r\n }\r\n return inputEle;\r\n}\r\n/**\r\n * Arguments to perform undo and redo functionalities.\r\n *\r\n * @hidden\r\n */\r\nvar MaskUndo = /** @class */ (function () {\r\n function MaskUndo() {\r\n }\r\n return MaskUndo;\r\n}());\r\nexport { MaskUndo };\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nvar maskUndo = new MaskUndo();\r\n/* eslint-enable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */\r\n","/**\n * MaskedTextbox modules\n */\nexport * from './base/index';\nexport * from './maskedtextbox/index';\n","/**\n * MaskedTextbox modules\n */\nexport * from './maskedtextbox';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Event, Property, NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, formatUnit, getValue, setValue, addClass, detach } from '@syncfusion/ej2-base';\r\nimport { removeClass, Browser, closest } from '@syncfusion/ej2-base';\r\nimport { Input } from '../../input/input';\r\nimport { regularExpressions, createMask, applyMask, wireEvents, unwireEvents, unstrippedValue, strippedValue } from '../base/index';\r\nimport { setMaskValue, setElementValue, bindClearEvent } from '../base/index';\r\nvar ROOT = 'e-control-wrapper e-mask';\r\nvar INPUT = 'e-input';\r\nvar COMPONENT = 'e-maskedtextbox';\r\nvar CONTROL = 'e-control';\r\nvar MASKINPUT_FOCUS = 'e-input-focus';\r\nvar wrapperAttr = ['title', 'style', 'class'];\r\n/**\r\n * The MaskedTextBox allows the user to enter the valid input only based on the provided mask.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar MaskedTextBox = /** @class */ (function (_super) {\r\n __extends(MaskedTextBox, _super);\r\n /**\r\n *\r\n * @param {MaskedTextBoxModel} options - Specifies the MaskedTextBox model.\r\n * @param {string | HTMLElement | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function MaskedTextBox(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.initInputValue = '';\r\n _this.isAngular = false;\r\n _this.preventChange = false;\r\n _this.isClicked = false;\r\n _this.maskOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * Gets the component name.\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n MaskedTextBox.prototype.getModuleName = function () {\r\n return 'maskedtextbox';\r\n };\r\n /**\r\n * Initializes the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n MaskedTextBox.prototype.preRender = function () {\r\n this.promptMask = '';\r\n this.hiddenMask = '';\r\n this.escapeMaskValue = '';\r\n this.regExpCollec = regularExpressions;\r\n this.customRegExpCollec = [];\r\n this.undoCollec = [];\r\n this.redoCollec = [];\r\n this.changeEventArgs = {};\r\n this.focusEventArgs = {};\r\n this.blurEventArgs = {};\r\n this.maskKeyPress = false;\r\n this.isFocus = false;\r\n this.isInitial = false;\r\n this.isIosInvalid = false;\r\n var ejInstance = getValue('ej2_instances', this.element);\r\n this.cloneElement = this.element.cloneNode(true);\r\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\r\n this.angularTagName = null;\r\n this.formElement = closest(this.element, 'form');\r\n if (this.element.tagName === 'EJS-MASKEDTEXTBOX') {\r\n this.angularTagName = this.element.tagName;\r\n var input = this.createElement('input');\r\n for (var i = 0; i < this.element.attributes.length; i++) {\r\n input.setAttribute(this.element.attributes[i].nodeName, this.element.attributes[i].nodeValue);\r\n input.innerHTML = this.element.innerHTML;\r\n }\r\n if (this.element.hasAttribute('id')) {\r\n this.element.removeAttribute('id');\r\n }\r\n this.element.classList.remove('e-control', 'e-maskedtextbox');\r\n this.element.classList.add('e-mask-container');\r\n this.element.appendChild(input);\r\n this.element = input;\r\n setValue('ej2_instances', ejInstance, this.element);\r\n }\r\n this.updateHTMLAttrToElement();\r\n this.checkHtmlAttributes(false);\r\n if (this.formElement) {\r\n this.initInputValue = this.value;\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string}\r\n */\r\n MaskedTextBox.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Initializes the component rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n MaskedTextBox.prototype.render = function () {\r\n if (this.element.tagName.toLowerCase() === 'input') {\r\n if (this.floatLabelType === 'Never') {\r\n addClass([this.element], INPUT);\r\n }\r\n this.createWrapper();\r\n this.updateHTMLAttrToWrapper();\r\n if (this.element.name === '') {\r\n this.element.setAttribute('name', this.element.id);\r\n }\r\n this.isInitial = true;\r\n this.resetMaskedTextBox();\r\n this.isInitial = false;\r\n this.setMaskPlaceholder(true, false);\r\n this.setWidth(this.width);\r\n this.preEleVal = this.element.value;\r\n if (!Browser.isDevice && (Browser.info.version === '11.0' || Browser.info.name === 'edge')) {\r\n this.element.blur();\r\n }\r\n if (Browser.isDevice && Browser.isIos) {\r\n this.element.blur();\r\n }\r\n if (this.element.getAttribute('value') || this.value) {\r\n this.element.setAttribute('value', this.element.value);\r\n }\r\n this.renderComplete();\r\n }\r\n };\r\n MaskedTextBox.prototype.updateHTMLAttrToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttr.indexOf(key) < 0) {\r\n this.element.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n };\r\n MaskedTextBox.prototype.updateCssClass = function (newClass, oldClass) {\r\n Input.setCssClass(this.getValidClassList(newClass), [this.inputObj.container], this.getValidClassList(oldClass));\r\n };\r\n MaskedTextBox.prototype.getValidClassList = function (maskClassName) {\r\n var result = maskClassName;\r\n if (!isNullOrUndefined(maskClassName) && maskClassName !== '') {\r\n result = (maskClassName.replace(/\\s+/g, ' ')).trim();\r\n }\r\n return result;\r\n };\r\n MaskedTextBox.prototype.updateHTMLAttrToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (wrapperAttr.indexOf(key) > -1) {\r\n if (key === 'class') {\r\n var updatedClassValues = (this.htmlAttributes[key].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValues !== '') {\r\n addClass([this.inputObj.container], updatedClassValues.split(' '));\r\n }\r\n }\r\n else if (key === 'style') {\r\n var maskStyle = this.inputObj.container.getAttribute(key);\r\n maskStyle = !isNullOrUndefined(maskStyle) ? (maskStyle + this.htmlAttributes[key]) :\r\n this.htmlAttributes[key];\r\n this.inputObj.container.setAttribute(key, maskStyle);\r\n }\r\n else {\r\n this.inputObj.container.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MaskedTextBox.prototype.resetMaskedTextBox = function () {\r\n this.promptMask = '';\r\n this.hiddenMask = '';\r\n this.escapeMaskValue = '';\r\n this.customRegExpCollec = [];\r\n this.undoCollec = [];\r\n this.redoCollec = [];\r\n if (this.promptChar.length > 1) {\r\n this.promptChar = this.promptChar[0];\r\n }\r\n createMask.call(this);\r\n applyMask.call(this);\r\n if (this.mask === null || this.mask === '' && this.value !== undefined) {\r\n setElementValue.call(this, this.value);\r\n }\r\n var val = strippedValue.call(this, this.element);\r\n this.prevValue = val;\r\n this.value = val;\r\n if (!this.isInitial) {\r\n unwireEvents.call(this);\r\n }\r\n wireEvents.call(this);\r\n };\r\n MaskedTextBox.prototype.setMaskPlaceholder = function (setVal, dynamicPlaceholder) {\r\n if (dynamicPlaceholder || this.placeholder) {\r\n Input.setPlaceholder(this.placeholder, this.element);\r\n if ((this.element.value === this.promptMask && setVal && this.floatLabelType !== 'Always') ||\r\n this.element.value === this.promptMask && this.floatLabelType === 'Never') {\r\n setElementValue.call(this, '');\r\n }\r\n }\r\n };\r\n MaskedTextBox.prototype.setWidth = function (width) {\r\n if (!isNullOrUndefined(width)) {\r\n if (typeof width === 'number') {\r\n this.inputObj.container.style.width = formatUnit(width);\r\n this.element.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n var elementWidth = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n this.inputObj.container.style.width = elementWidth;\r\n this.element.style.width = elementWidth;\r\n }\r\n }\r\n };\r\n MaskedTextBox.prototype.checkHtmlAttributes = function (isDynamic) {\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes)\r\n : ['placeholder', 'disabled', 'value', 'readonly'];\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var key = attributes_1[_i];\r\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\r\n switch (key) {\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\r\n }\r\n break;\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['enabled'] === undefined)) || isDynamic) {\r\n var isEnabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\r\n this.element.getAttribute(key) === 'true' ? false : true;\r\n this.setProperties({ enabled: isEnabled }, !isDynamic);\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['value'] === undefined)) || isDynamic) {\r\n this.setProperties({ value: this.element.value }, !isDynamic);\r\n }\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.maskOptions) || (this.maskOptions['readonly'] === undefined)) || isDynamic) {\r\n var isReadonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\r\n || this.element.getAttribute(key) === 'true' ? true : false;\r\n this.setProperties({ readonly: isReadonly }, !isDynamic);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n MaskedTextBox.prototype.createWrapper = function () {\r\n var updatedCssClassValues = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValues = this.getValidClassList(this.cssClass);\r\n }\r\n this.inputObj = Input.createInput({\r\n element: this.element,\r\n floatLabelType: this.floatLabelType,\r\n properties: {\r\n enableRtl: this.enableRtl,\r\n cssClass: updatedCssClassValues,\r\n enabled: this.enabled,\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n showClearButton: this.showClearButton\r\n }\r\n }, this.createElement);\r\n this.inputObj.container.setAttribute('class', ROOT + ' ' + this.inputObj.container.getAttribute('class'));\r\n };\r\n /**\r\n * Calls internally if any of the property value is changed.\r\n *\r\n * @param {MaskedTextBoxModel} newProp - Returns the dynamic property value of the component.\r\n * @param {MaskedTextBoxModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @hidden\r\n */\r\n MaskedTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'value':\r\n setMaskValue.call(this, this.value);\r\n if (this.placeholder) {\r\n this.setMaskPlaceholder(false, false);\r\n }\r\n break;\r\n case 'placeholder':\r\n this.setMaskPlaceholder(true, true);\r\n break;\r\n case 'width':\r\n this.setWidth(newProp.width);\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'enabled':\r\n Input.setEnabled(newProp.enabled, this.element, this.floatLabelType, this.inputObj.container);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(newProp.readonly, this.element);\r\n break;\r\n case 'enableRtl':\r\n Input.setEnableRtl(newProp.enableRtl, [this.inputObj.container]);\r\n break;\r\n case 'customCharacters':\r\n this.customCharacters = newProp.customCharacters;\r\n this.resetMaskedTextBox();\r\n break;\r\n case 'showClearButton':\r\n Input.setClearButton(newProp.showClearButton, this.element, this.inputObj, undefined, this.createElement);\r\n bindClearEvent.call(this);\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n Input.removeFloating(this.inputObj);\r\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHTMLAttrToElement();\r\n this.updateHTMLAttrToWrapper();\r\n this.checkHtmlAttributes(true);\r\n break;\r\n case 'mask':\r\n {\r\n var strippedValue_1 = this.value;\r\n this.mask = newProp.mask;\r\n this.updateValue(strippedValue_1);\r\n }\r\n break;\r\n case 'promptChar': {\r\n if (newProp.promptChar.length > 1) {\r\n newProp.promptChar = newProp.promptChar[0];\r\n }\r\n if (newProp.promptChar) {\r\n this.promptChar = newProp.promptChar;\r\n }\r\n else {\r\n this.promptChar = '_';\r\n }\r\n var value = this.element.value.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\r\n if (this.promptMask === this.element.value) {\r\n value = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\r\n }\r\n this.promptMask = this.promptMask.replace(new RegExp('[' + oldProp.promptChar + ']', 'g'), this.promptChar);\r\n this.undoCollec = this.redoCollec = [];\r\n setElementValue.call(this, value);\r\n break;\r\n }\r\n }\r\n }\r\n this.preventChange = this.isAngular && this.preventChange ? !this.preventChange : this.preventChange;\r\n };\r\n MaskedTextBox.prototype.updateValue = function (strippedVal) {\r\n this.resetMaskedTextBox();\r\n setMaskValue.call(this, strippedVal);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the value of the MaskedTextBox with the masked format.\r\n * By using `value` property, you can get the raw value of maskedtextbox without literals and prompt characters.\r\n *\r\n * @returns {string}\r\n */\r\n MaskedTextBox.prototype.getMaskedValue = function () {\r\n return unstrippedValue.call(this, this.element);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n MaskedTextBox.prototype.focusIn = function () {\r\n if (document.activeElement !== this.element && this.enabled) {\r\n this.element.focus();\r\n addClass([this.inputObj.container], [MASKINPUT_FOCUS]);\r\n }\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n MaskedTextBox.prototype.focusOut = function () {\r\n if (document.activeElement === this.element && this.enabled) {\r\n this.element.blur();\r\n removeClass([this.inputObj.container], [MASKINPUT_FOCUS]);\r\n }\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers.\r\n * Also it maintains the initial input element from the DOM.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n MaskedTextBox.prototype.destroy = function () {\r\n unwireEvents.call(this);\r\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\r\n 'autocorrect', 'aria-disabled', 'aria-placeholder', 'autocapitalize',\r\n 'spellcheck', 'aria-autocomplete',\r\n 'aria-live', 'aria-valuenow', 'aria-invalid'];\r\n for (var i = 0; i < attrArray.length; i++) {\r\n this.element.removeAttribute(attrArray[i]);\r\n }\r\n this.element.classList.remove('e-input');\r\n this.inputObj.container.insertAdjacentElement('afterend', this.element);\r\n detach(this.inputObj.container);\r\n _super.prototype.destroy.call(this);\r\n };\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], MaskedTextBox.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property({})\r\n ], MaskedTextBox.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], MaskedTextBox.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MaskedTextBox.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MaskedTextBox.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MaskedTextBox.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"mask\", void 0);\r\n __decorate([\r\n Property('_')\r\n ], MaskedTextBox.prototype, \"promptChar\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MaskedTextBox.prototype, \"customCharacters\", void 0);\r\n __decorate([\r\n Event()\r\n ], MaskedTextBox.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], MaskedTextBox.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], MaskedTextBox.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], MaskedTextBox.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], MaskedTextBox.prototype, \"blur\", void 0);\r\n MaskedTextBox = __decorate([\r\n NotifyPropertyChanges\r\n ], MaskedTextBox);\r\n return MaskedTextBox;\r\n}(Component));\r\nexport { MaskedTextBox };\r\n","/**\n * NumericTextBox modules\n */\nexport * from './numerictextbox';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, Property, Event, Browser, L10n } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { attributes, addClass, removeClass, detach, closest } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, getValue, formatUnit, setValue, merge } from '@syncfusion/ej2-base';\r\nimport { Internationalization, getNumericObject } from '@syncfusion/ej2-base';\r\nimport { Input } from '../input/input';\r\nvar ROOT = 'e-control-wrapper e-numeric';\r\nvar SPINICON = 'e-input-group-icon';\r\nvar SPINUP = 'e-spin-up';\r\nvar SPINDOWN = 'e-spin-down';\r\nvar ERROR = 'e-error';\r\nvar INCREMENT = 'increment';\r\nvar DECREMENT = 'decrement';\r\nvar INTREGEXP = new RegExp('^(-)?(\\\\d*)$');\r\nvar DECIMALSEPARATOR = '.';\r\nvar COMPONENT = 'e-numerictextbox';\r\nvar CONTROL = 'e-control';\r\nvar NUMERIC_FOCUS = 'e-input-focus';\r\nvar HIDDENELEMENT = 'e-numeric-hidden';\r\nvar wrapperAttributes = ['title', 'style', 'class'];\r\n/**\r\n * Represents the NumericTextBox component that allows the user to enter only numeric values.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar NumericTextBox = /** @class */ (function (_super) {\r\n __extends(NumericTextBox, _super);\r\n /**\r\n *\r\n * @param {NumericTextBoxModel} options - Specifies the NumericTextBox model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function NumericTextBox(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isVue = false;\r\n _this.preventChange = false;\r\n _this.isAngular = false;\r\n _this.isDynamicChange = false;\r\n _this.numericOptions = options;\r\n return _this;\r\n }\r\n NumericTextBox.prototype.preRender = function () {\r\n this.isPrevFocused = false;\r\n this.decimalSeparator = '.';\r\n // eslint-disable-next-line no-useless-escape\r\n this.intRegExp = new RegExp('/^(-)?(\\d*)$/');\r\n this.isCalled = false;\r\n var ejInstance = getValue('ej2_instances', this.element);\r\n this.cloneElement = this.element.cloneNode(true);\r\n removeClass([this.cloneElement], [CONTROL, COMPONENT, 'e-lib']);\r\n this.angularTagName = null;\r\n this.formEle = closest(this.element, 'form');\r\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\r\n this.angularTagName = this.element.tagName;\r\n var input = this.createElement('input');\r\n var index = 0;\r\n for (index; index < this.element.attributes.length; index++) {\r\n var attributeName = this.element.attributes[index].nodeName;\r\n if (attributeName !== 'id') {\r\n input.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\r\n input.innerHTML = this.element.innerHTML;\r\n }\r\n }\r\n if (this.element.hasAttribute('name')) {\r\n this.element.removeAttribute('name');\r\n }\r\n this.element.classList.remove('e-control', 'e-numerictextbox');\r\n this.element.appendChild(input);\r\n this.element = input;\r\n setValue('ej2_instances', ejInstance, this.element);\r\n }\r\n attributes(this.element, { 'role': 'spinbutton', 'tabindex': '0', 'autocomplete': 'off', 'aria-live': 'assertive' });\r\n var localeText = {\r\n incrementTitle: 'Increment value', decrementTitle: 'Decrement value', placeholder: this.placeholder\r\n };\r\n this.l10n = new L10n('numerictextbox', localeText, this.locale);\r\n if (this.l10n.getConstant('placeholder') !== '') {\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n }\r\n this.isValidState = true;\r\n this.inputStyle = null;\r\n this.inputName = null;\r\n this.cultureInfo = {};\r\n this.initCultureInfo();\r\n this.initCultureFunc();\r\n this.prevValue = this.value;\r\n this.updateHTMLAttrToElement();\r\n this.checkAttributes(false);\r\n if (this.formEle) {\r\n this.inputEleValue = this.value;\r\n }\r\n this.validateMinMax();\r\n this.validateStep();\r\n if (this.placeholder === null) {\r\n this.updatePlaceholder();\r\n }\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n NumericTextBox.prototype.render = function () {\r\n if (this.element.tagName.toLowerCase() === 'input') {\r\n this.createWrapper();\r\n if (this.showSpinButton) {\r\n this.spinBtnCreation();\r\n }\r\n this.setElementWidth(this.width);\r\n if (!this.container.classList.contains('e-input-group')) {\r\n this.container.classList.add('e-input-group');\r\n }\r\n this.changeValue(this.value === null || isNaN(this.value) ?\r\n null : this.strictMode ? this.trimValue(this.value) : this.value);\r\n this.wireEvents();\r\n if (this.value !== null && !isNaN(this.value)) {\r\n if (this.decimals) {\r\n this.setProperties({ value: this.roundNumber(this.value, this.decimals) }, true);\r\n }\r\n }\r\n if (this.element.getAttribute('value') || this.value) {\r\n this.element.setAttribute('value', this.element.value);\r\n this.hiddenInput.setAttribute('value', this.hiddenInput.value);\r\n }\r\n this.elementPrevValue = this.element.value;\r\n if (this.element.hasAttribute('data-val')) {\r\n this.element.setAttribute('data-val', 'false');\r\n }\r\n this.renderComplete();\r\n }\r\n };\r\n NumericTextBox.prototype.checkAttributes = function (isDynamic) {\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['value', 'min', 'max', 'step', 'disabled', 'readonly', 'style', 'name', 'placeholder'];\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['enabled'] === undefined)) || isDynamic) {\r\n var enabled = this.element.getAttribute(prop) === 'disabled' || this.element.getAttribute(prop) === ''\r\n || this.element.getAttribute(prop) === 'true' ? false : true;\r\n this.setProperties({ enabled: enabled }, !isDynamic);\r\n }\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['readonly'] === undefined)) || isDynamic) {\r\n var readonly = this.element.getAttribute(prop) === 'readonly' || this.element.getAttribute(prop) === ''\r\n || this.element.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ readonly: readonly }, !isDynamic);\r\n }\r\n break;\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['value'] === undefined)) || isDynamic) {\r\n var setNumber = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\r\n this.setProperties(setValue(prop, setNumber, {}), !isDynamic);\r\n }\r\n break;\r\n case 'min':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['min'] === undefined)) || isDynamic) {\r\n var minValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\r\n if (minValue !== null && !isNaN(minValue)) {\r\n this.setProperties(setValue(prop, minValue, {}), !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'max':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['max'] === undefined)) || isDynamic) {\r\n var maxValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\r\n if (maxValue !== null && !isNaN(maxValue)) {\r\n this.setProperties(setValue(prop, maxValue, {}), !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'step':\r\n if ((isNullOrUndefined(this.numericOptions) || (this.numericOptions['step'] === undefined)) || isDynamic) {\r\n var stepValue = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\r\n if (stepValue !== null && !isNaN(stepValue)) {\r\n this.setProperties(setValue(prop, stepValue, {}), !isDynamic);\r\n }\r\n }\r\n break;\r\n case 'style':\r\n this.inputStyle = this.element.getAttribute(prop);\r\n break;\r\n case 'name':\r\n this.inputName = this.element.getAttribute(prop);\r\n break;\r\n default:\r\n {\r\n var value = this.instance.getNumberParser({ format: 'n' })(this.element.getAttribute(prop));\r\n if ((value !== null && !isNaN(value)) || (prop === 'value')) {\r\n this.setProperties(setValue(prop, value, {}), true);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.updatePlaceholder = function () {\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n };\r\n NumericTextBox.prototype.initCultureFunc = function () {\r\n this.instance = new Internationalization(this.locale);\r\n };\r\n NumericTextBox.prototype.initCultureInfo = function () {\r\n this.cultureInfo.format = this.format;\r\n if (getValue('currency', this) !== null) {\r\n setValue('currency', this.currency, this.cultureInfo);\r\n this.setProperties({ currencyCode: this.currency }, true);\r\n }\r\n };\r\n /* Wrapper creation */\r\n NumericTextBox.prototype.createWrapper = function () {\r\n var updatedCssClassValue = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValue = this.getNumericValidClassList(this.cssClass);\r\n }\r\n var inputObj = Input.createInput({\r\n element: this.element,\r\n floatLabelType: this.floatLabelType,\r\n properties: {\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n cssClass: updatedCssClassValue,\r\n enableRtl: this.enableRtl,\r\n showClearButton: this.showClearButton,\r\n enabled: this.enabled\r\n }\r\n }, this.createElement);\r\n this.inputWrapper = inputObj;\r\n this.container = inputObj.container;\r\n this.container.setAttribute('class', ROOT + ' ' + this.container.getAttribute('class'));\r\n this.updateHTMLAttrToWrapper();\r\n if (this.readonly) {\r\n attributes(this.element, { 'aria-readonly': 'true' });\r\n }\r\n this.hiddenInput = (this.createElement('input', { attrs: { type: 'text',\r\n 'validateHidden': 'true', 'class': HIDDENELEMENT } }));\r\n this.inputName = this.inputName !== null ? this.inputName : this.element.id;\r\n this.element.removeAttribute('name');\r\n attributes(this.hiddenInput, { 'name': this.inputName });\r\n this.container.insertBefore(this.hiddenInput, this.container.childNodes[1]);\r\n this.updateDataAttribute(false);\r\n if (this.inputStyle !== null) {\r\n attributes(this.container, { 'style': this.inputStyle });\r\n }\r\n };\r\n NumericTextBox.prototype.updateDataAttribute = function (isDynamic) {\r\n var attr = {};\r\n if (!isDynamic) {\r\n for (var a = 0; a < this.element.attributes.length; a++) {\r\n attr[this.element.attributes[a].name] = this.element.getAttribute(this.element.attributes[a].name);\r\n }\r\n }\r\n else {\r\n attr = this.htmlAttributes;\r\n }\r\n for (var _i = 0, _a = Object.keys(attr); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (key.indexOf('data') === 0) {\r\n this.hiddenInput.setAttribute(key, attr[key]);\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.updateHTMLAttrToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var pro = _a[_i];\r\n if (wrapperAttributes.indexOf(pro) < 0) {\r\n this.element.setAttribute(pro, this.htmlAttributes[pro]);\r\n }\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.updateCssClass = function (newClass, oldClass) {\r\n Input.setCssClass(this.getNumericValidClassList(newClass), [this.container], this.getNumericValidClassList(oldClass));\r\n };\r\n NumericTextBox.prototype.getNumericValidClassList = function (numericClassName) {\r\n var result = numericClassName;\r\n if (!isNullOrUndefined(numericClassName) && numericClassName !== '') {\r\n result = (numericClassName.replace(/\\s+/g, ' ')).trim();\r\n }\r\n return result;\r\n };\r\n NumericTextBox.prototype.updateHTMLAttrToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var pro = _a[_i];\r\n if (wrapperAttributes.indexOf(pro) > -1) {\r\n if (pro === 'class') {\r\n var updatedClassValue = this.getNumericValidClassList(this.htmlAttributes[pro]);\r\n if (updatedClassValue !== '') {\r\n addClass([this.container], updatedClassValue.split(' '));\r\n }\r\n }\r\n else if (pro === 'style') {\r\n var numericStyle = this.container.getAttribute(pro);\r\n numericStyle = !isNullOrUndefined(numericStyle) ? (numericStyle + this.htmlAttributes[pro]) :\r\n this.htmlAttributes[pro];\r\n this.container.setAttribute(pro, numericStyle);\r\n }\r\n else {\r\n this.container.setAttribute(pro, this.htmlAttributes[pro]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.setElementWidth = function (width) {\r\n if (!isNullOrUndefined(width)) {\r\n if (typeof width === 'number') {\r\n this.container.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n this.container.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n }\r\n }\r\n };\r\n /* Spinner creation */\r\n NumericTextBox.prototype.spinBtnCreation = function () {\r\n this.spinDown = Input.appendSpan(SPINICON + ' ' + SPINDOWN, this.container, this.createElement);\r\n attributes(this.spinDown, {\r\n 'title': this.l10n.getConstant('decrementTitle'),\r\n 'aria-label': this.l10n.getConstant('decrementTitle')\r\n });\r\n this.spinUp = Input.appendSpan(SPINICON + ' ' + SPINUP, this.container, this.createElement);\r\n attributes(this.spinUp, {\r\n 'title': this.l10n.getConstant('incrementTitle'),\r\n 'aria-label': this.l10n.getConstant('incrementTitle')\r\n });\r\n this.wireSpinBtnEvents();\r\n };\r\n NumericTextBox.prototype.validateMinMax = function () {\r\n if (!(typeof (this.min) === 'number' && !isNaN(this.min))) {\r\n this.setProperties({ min: -(Number.MAX_VALUE) }, true);\r\n }\r\n if (!(typeof (this.max) === 'number' && !isNaN(this.max))) {\r\n this.setProperties({ max: Number.MAX_VALUE }, true);\r\n }\r\n if (this.decimals !== null) {\r\n if (this.min !== -(Number.MAX_VALUE)) {\r\n this.setProperties({ min: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.min)) }, true);\r\n }\r\n if (this.max !== (Number.MAX_VALUE)) {\r\n this.setProperties({ max: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.max)) }, true);\r\n }\r\n }\r\n this.setProperties({ min: this.min > this.max ? this.max : this.min }, true);\r\n attributes(this.element, { 'aria-valuemin': this.min.toString(), 'aria-valuemax': this.max.toString() });\r\n };\r\n NumericTextBox.prototype.formattedValue = function (decimals, value) {\r\n return this.instance.getNumberFormat({\r\n maximumFractionDigits: decimals,\r\n minimumFractionDigits: decimals, useGrouping: false\r\n })(value);\r\n };\r\n NumericTextBox.prototype.validateStep = function () {\r\n if (this.decimals !== null) {\r\n this.setProperties({ step: this.instance.getNumberParser({ format: 'n' })(this.formattedValue(this.decimals, this.step)) }, true);\r\n }\r\n };\r\n NumericTextBox.prototype.action = function (operation, event) {\r\n this.isInteract = true;\r\n var value = this.isFocused ? this.instance.getNumberParser({ format: 'n' })(this.element.value) : this.value;\r\n this.changeValue(this.performAction(value, this.step, operation));\r\n this.raiseChangeEvent(event);\r\n };\r\n NumericTextBox.prototype.checkErrorClass = function () {\r\n if (this.isValidState) {\r\n removeClass([this.container], ERROR);\r\n }\r\n else {\r\n addClass([this.container], ERROR);\r\n }\r\n attributes(this.element, { 'aria-invalid': this.isValidState ? 'false' : 'true' });\r\n };\r\n NumericTextBox.prototype.bindClearEvent = function () {\r\n if (this.showClearButton) {\r\n EventHandler.add(this.inputWrapper.clearButton, 'mousedown touchstart', this.resetHandler, this);\r\n }\r\n };\r\n NumericTextBox.prototype.resetHandler = function (e) {\r\n e.preventDefault();\r\n if (!(this.inputWrapper.clearButton.classList.contains('e-clear-icon-hide')) || this.inputWrapper.container.classList.contains('e-static-clear')) {\r\n this.clear(e);\r\n }\r\n this.isInteract = true;\r\n this.raiseChangeEvent(e);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n NumericTextBox.prototype.clear = function (event) {\r\n this.setProperties({ value: null }, true);\r\n this.setElementValue('');\r\n this.hiddenInput.value = '';\r\n var formElement = closest(this.element, 'form');\r\n if (formElement) {\r\n var element = this.element.nextElementSibling;\r\n var keyupEvent = document.createEvent('KeyboardEvent');\r\n keyupEvent.initEvent('keyup', false, true);\r\n element.dispatchEvent(keyupEvent);\r\n }\r\n };\r\n NumericTextBox.prototype.resetFormHandler = function () {\r\n if (this.element.tagName === 'EJS-NUMERICTEXTBOX') {\r\n this.updateValue(null);\r\n }\r\n else {\r\n this.updateValue(this.inputEleValue);\r\n }\r\n };\r\n NumericTextBox.prototype.setSpinButton = function () {\r\n if (!isNullOrUndefined(this.spinDown)) {\r\n attributes(this.spinDown, {\r\n 'title': this.l10n.getConstant('decrementTitle'),\r\n 'aria-label': this.l10n.getConstant('decrementTitle')\r\n });\r\n }\r\n if (!isNullOrUndefined(this.spinUp)) {\r\n attributes(this.spinUp, {\r\n 'title': this.l10n.getConstant('incrementTitle'),\r\n 'aria-label': this.l10n.getConstant('incrementTitle')\r\n });\r\n }\r\n };\r\n NumericTextBox.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\r\n EventHandler.add(this.element, 'blur', this.focusOutHandler, this);\r\n EventHandler.add(this.element, 'keydown', this.keyDownHandler, this);\r\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\r\n EventHandler.add(this.element, 'input', this.inputHandler, this);\r\n EventHandler.add(this.element, 'keypress', this.keyPressHandler, this);\r\n EventHandler.add(this.element, 'change', this.changeHandler, this);\r\n EventHandler.add(this.element, 'paste', this.pasteHandler, this);\r\n if (this.enabled) {\r\n this.bindClearEvent();\r\n if (this.formEle) {\r\n EventHandler.add(this.formEle, 'reset', this.resetFormHandler, this);\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.wireSpinBtnEvents = function () {\r\n /* bind spin button events */\r\n EventHandler.add(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\r\n EventHandler.add(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner, this);\r\n EventHandler.add(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\r\n EventHandler.add(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner, this);\r\n EventHandler.add(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\r\n EventHandler.add(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner, this);\r\n };\r\n NumericTextBox.prototype.unwireEvents = function () {\r\n EventHandler.remove(this.element, 'focus', this.focusHandler);\r\n EventHandler.remove(this.element, 'blur', this.focusOutHandler);\r\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\r\n EventHandler.remove(this.element, 'input', this.inputHandler);\r\n EventHandler.remove(this.element, 'keydown', this.keyDownHandler);\r\n EventHandler.remove(this.element, 'keypress', this.keyPressHandler);\r\n EventHandler.remove(this.element, 'change', this.changeHandler);\r\n EventHandler.remove(this.element, 'paste', this.pasteHandler);\r\n if (this.formEle) {\r\n EventHandler.remove(this.formEle, 'reset', this.resetFormHandler);\r\n }\r\n };\r\n NumericTextBox.prototype.unwireSpinBtnEvents = function () {\r\n /* unbind spin button events */\r\n EventHandler.remove(this.spinUp, Browser.touchStartEvent, this.mouseDownOnSpinner);\r\n EventHandler.remove(this.spinDown, Browser.touchStartEvent, this.mouseDownOnSpinner);\r\n EventHandler.remove(this.spinUp, Browser.touchEndEvent, this.mouseUpOnSpinner);\r\n EventHandler.remove(this.spinDown, Browser.touchEndEvent, this.mouseUpOnSpinner);\r\n EventHandler.remove(this.spinUp, Browser.touchMoveEvent, this.touchMoveOnSpinner);\r\n EventHandler.remove(this.spinDown, Browser.touchMoveEvent, this.touchMoveOnSpinner);\r\n };\r\n NumericTextBox.prototype.changeHandler = function (event) {\r\n event.stopPropagation();\r\n if (!this.element.value.length) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n this.updateValue(parsedInput, event);\r\n };\r\n NumericTextBox.prototype.raiseChangeEvent = function (event) {\r\n if (this.prevValue !== this.value) {\r\n var eventArgs = {};\r\n this.changeEventArgs = { value: this.value, previousValue: this.prevValue, isInteracted: this.isInteract,\r\n isInteraction: this.isInteract, event: event };\r\n if (event) {\r\n this.changeEventArgs.event = event;\r\n }\r\n if (this.changeEventArgs.event === undefined) {\r\n this.changeEventArgs.isInteracted = false;\r\n this.changeEventArgs.isInteraction = false;\r\n }\r\n merge(eventArgs, this.changeEventArgs);\r\n this.prevValue = this.value;\r\n this.isInteract = false;\r\n this.elementPrevValue = this.element.value;\r\n this.preventChange = false;\r\n this.trigger('change', eventArgs);\r\n }\r\n };\r\n NumericTextBox.prototype.pasteHandler = function () {\r\n var _this = this;\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n var beforeUpdate = this.element.value;\r\n setTimeout(function () {\r\n if (!_this.numericRegex().test(_this.element.value)) {\r\n _this.setElementValue(beforeUpdate);\r\n }\r\n });\r\n };\r\n NumericTextBox.prototype.preventHandler = function () {\r\n var _this = this;\r\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n setTimeout(function () {\r\n if (_this.element.selectionStart > 0) {\r\n var currentPos = _this.element.selectionStart;\r\n var prevPos = _this.element.selectionStart - 1;\r\n var start = 0;\r\n var valArray = _this.element.value.split('');\r\n var numericObject = getNumericObject(_this.locale);\r\n var decimalSeparator = getValue('decimal', numericObject);\r\n var ignoreKeyCode = decimalSeparator.charCodeAt(0);\r\n if (_this.element.value[prevPos] === ' ' && _this.element.selectionStart > 0 && !iOS) {\r\n if (isNullOrUndefined(_this.prevVal)) {\r\n _this.element.value = _this.element.value.trim();\r\n }\r\n else if (prevPos !== 0) {\r\n _this.element.value = _this.prevVal;\r\n }\r\n else if (prevPos === 0) {\r\n _this.element.value = _this.element.value.trim();\r\n }\r\n _this.element.setSelectionRange(prevPos, prevPos);\r\n }\r\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) &&\r\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== 45) {\r\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 1]) !==\r\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 1]) &&\r\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === ignoreKeyCode) ||\r\n _this.element.value[_this.element.selectionStart - 1].charCodeAt(0) !== ignoreKeyCode) {\r\n _this.element.value = _this.element.value.substring(0, prevPos) +\r\n _this.element.value.substring(currentPos, _this.element.value.length);\r\n _this.element.setSelectionRange(prevPos, prevPos);\r\n if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1])) && _this.element.selectionStart > 0\r\n && _this.element.value.length) {\r\n _this.preventHandler();\r\n }\r\n }\r\n }\r\n else if (isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 2])) && _this.element.selectionStart > 1 &&\r\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== 45) {\r\n if ((valArray.indexOf(_this.element.value[_this.element.selectionStart - 2]) !==\r\n valArray.lastIndexOf(_this.element.value[_this.element.selectionStart - 2]) &&\r\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) === ignoreKeyCode) ||\r\n _this.element.value[_this.element.selectionStart - 2].charCodeAt(0) !== ignoreKeyCode) {\r\n _this.element.setSelectionRange(prevPos, prevPos);\r\n _this.nextEle = _this.element.value[_this.element.selectionStart];\r\n _this.cursorPosChanged = true;\r\n _this.preventHandler();\r\n }\r\n }\r\n if (_this.cursorPosChanged === true && _this.element.value[_this.element.selectionStart] === _this.nextEle &&\r\n isNaN(parseFloat(_this.element.value[_this.element.selectionStart - 1]))) {\r\n _this.element.setSelectionRange(_this.element.selectionStart + 1, _this.element.selectionStart + 1);\r\n _this.cursorPosChanged = false;\r\n _this.nextEle = null;\r\n }\r\n if (_this.element.value.trim() === '') {\r\n _this.element.setSelectionRange(start, start);\r\n }\r\n if (_this.element.selectionStart > 0) {\r\n if ((_this.element.value[_this.element.selectionStart - 1].charCodeAt(0) === 45) && _this.element.selectionStart > 1) {\r\n if (isNullOrUndefined(_this.prevVal)) {\r\n // eslint-disable-next-line no-self-assign\r\n _this.element.value = _this.element.value;\r\n }\r\n else {\r\n _this.element.value = _this.prevVal;\r\n }\r\n _this.element.setSelectionRange(_this.element.selectionStart, _this.element.selectionStart);\r\n }\r\n }\r\n _this.prevVal = _this.element.value;\r\n }\r\n });\r\n };\r\n NumericTextBox.prototype.keyUpHandler = function () {\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n if (!iOS && Browser.isDevice) {\r\n this.preventHandler();\r\n }\r\n var parseValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n parseValue = parseValue === null || isNaN(parseValue) ? null : parseValue;\r\n this.hiddenInput.value = parseValue || parseValue === 0 ? parseValue.toString() : null;\r\n var formElement = closest(this.element, 'form');\r\n if (formElement) {\r\n var element = this.element.nextElementSibling;\r\n var keyupEvent = document.createEvent('KeyboardEvent');\r\n keyupEvent.initEvent('keyup', false, true);\r\n element.dispatchEvent(keyupEvent);\r\n }\r\n };\r\n NumericTextBox.prototype.inputHandler = function (event) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\r\n var numerictextboxObj = this;\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n var iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);\r\n var fireFox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\r\n if ((fireFox || iOS) && Browser.isDevice) {\r\n this.preventHandler();\r\n }\r\n /* istanbul ignore next */\r\n if (this.isAngular\r\n && this.element.value !== getValue('decimal', getNumericObject(this.locale))\r\n && this.element.value !== getValue('minusSign', getNumericObject(this.locale))) {\r\n var parsedValue = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n parsedValue = isNaN(parsedValue) ? null : parsedValue;\r\n numerictextboxObj.localChange({ value: parsedValue });\r\n this.preventChange = true;\r\n }\r\n if (this.isVue) {\r\n var current = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n var previous = this.instance.getNumberParser({ format: 'n' })(this.elementPrevValue);\r\n var eventArgs = {\r\n event: event,\r\n value: (current === null || isNaN(current) ? null : current),\r\n previousValue: (previous === null || isNaN(previous) ? null : previous)\r\n };\r\n this.preventChange = true;\r\n this.elementPrevValue = this.element.value;\r\n this.trigger('input', eventArgs);\r\n }\r\n };\r\n NumericTextBox.prototype.keyDownHandler = function (event) {\r\n if (!this.readonly) {\r\n switch (event.keyCode) {\r\n case 38:\r\n event.preventDefault();\r\n this.action(INCREMENT, event);\r\n break;\r\n case 40:\r\n event.preventDefault();\r\n this.action(DECREMENT, event);\r\n break;\r\n default: break;\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.performAction = function (value, step, operation) {\r\n if (value === null || isNaN(value)) {\r\n value = 0;\r\n }\r\n var updatedValue = operation === INCREMENT ? value + step : value - step;\r\n updatedValue = this.correctRounding(value, step, updatedValue);\r\n return this.strictMode ? this.trimValue(updatedValue) : updatedValue;\r\n };\r\n NumericTextBox.prototype.correctRounding = function (value, step, result) {\r\n var floatExp = new RegExp('[,.](.*)');\r\n var floatValue = floatExp.test(value.toString());\r\n var floatStep = floatExp.test(step.toString());\r\n if (floatValue || floatStep) {\r\n var valueCount = floatValue ? floatExp.exec(value.toString())[0].length : 0;\r\n var stepCount = floatStep ? floatExp.exec(step.toString())[0].length : 0;\r\n var max = Math.max(valueCount, stepCount);\r\n return value = this.roundValue(result, max);\r\n }\r\n return result;\r\n };\r\n NumericTextBox.prototype.roundValue = function (result, precision) {\r\n precision = precision || 0;\r\n var divide = Math.pow(10, precision);\r\n return result *= divide, result = Math.round(result) / divide;\r\n };\r\n NumericTextBox.prototype.updateValue = function (value, event) {\r\n if (event) {\r\n this.isInteract = true;\r\n }\r\n if (value !== null && !isNaN(value)) {\r\n if (this.decimals) {\r\n value = this.roundNumber(value, this.decimals);\r\n }\r\n }\r\n this.changeValue(value === null || isNaN(value) ? null : this.strictMode ? this.trimValue(value) : value);\r\n /* istanbul ignore next */\r\n if (!this.isDynamicChange) {\r\n this.raiseChangeEvent(event);\r\n }\r\n };\r\n NumericTextBox.prototype.updateCurrency = function (prop, propVal) {\r\n setValue(prop, propVal, this.cultureInfo);\r\n this.updateValue(this.value);\r\n };\r\n NumericTextBox.prototype.changeValue = function (value) {\r\n if (!(value || value === 0)) {\r\n value = null;\r\n this.setProperties({ value: value }, true);\r\n }\r\n else {\r\n var numberOfDecimals = this.getNumberOfDecimals(value);\r\n this.setProperties({ value: this.roundNumber(value, numberOfDecimals) }, true);\r\n }\r\n this.modifyText();\r\n if (!this.strictMode) {\r\n this.validateState();\r\n }\r\n };\r\n NumericTextBox.prototype.modifyText = function () {\r\n if (this.value || this.value === 0) {\r\n var value = this.formatNumber();\r\n var elementValue = this.isFocused ? value : this.instance.getNumberFormat(this.cultureInfo)(this.value);\r\n this.setElementValue(elementValue);\r\n attributes(this.element, { 'aria-valuenow': value });\r\n this.hiddenInput.value = this.value.toString();\r\n if (this.value !== null && this.serverDecimalSeparator) {\r\n this.hiddenInput.value = this.hiddenInput.value.replace('.', this.serverDecimalSeparator);\r\n }\r\n }\r\n else {\r\n this.setElementValue('');\r\n this.element.removeAttribute('aria-valuenow');\r\n this.hiddenInput.value = null;\r\n }\r\n };\r\n NumericTextBox.prototype.setElementValue = function (val, element) {\r\n Input.setValue(val, (element ? element : this.element), this.floatLabelType, this.showClearButton);\r\n };\r\n NumericTextBox.prototype.validateState = function () {\r\n this.isValidState = true;\r\n if (this.value || this.value === 0) {\r\n this.isValidState = !(this.value > this.max || this.value < this.min);\r\n }\r\n this.checkErrorClass();\r\n };\r\n NumericTextBox.prototype.getNumberOfDecimals = function (value) {\r\n var numberOfDecimals;\r\n // eslint-disable-next-line no-useless-escape\r\n var EXPREGEXP = new RegExp('[eE][\\-+]?([0-9]+)');\r\n var valueString = value.toString();\r\n if (EXPREGEXP.test(valueString)) {\r\n var result = EXPREGEXP.exec(valueString);\r\n if (!isNullOrUndefined(result)) {\r\n valueString = value.toFixed(Math.min(parseInt(result[1], 10), 20));\r\n }\r\n }\r\n var decimalPart = valueString.split('.')[1];\r\n numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\r\n if (this.decimals !== null) {\r\n numberOfDecimals = numberOfDecimals < this.decimals ? numberOfDecimals : this.decimals;\r\n }\r\n return numberOfDecimals;\r\n };\r\n NumericTextBox.prototype.formatNumber = function () {\r\n var numberOfDecimals = this.getNumberOfDecimals(this.value);\r\n return this.instance.getNumberFormat({\r\n maximumFractionDigits: numberOfDecimals,\r\n minimumFractionDigits: numberOfDecimals, useGrouping: false\r\n })(this.value);\r\n };\r\n NumericTextBox.prototype.trimValue = function (value) {\r\n if (value > this.max) {\r\n return this.max;\r\n }\r\n if (value < this.min) {\r\n return this.min;\r\n }\r\n return value;\r\n };\r\n NumericTextBox.prototype.roundNumber = function (value, precision) {\r\n var result = value;\r\n var decimals = precision || 0;\r\n var result1 = result.toString().split('e');\r\n result = Math.round(Number(result1[0] + 'e' + (result1[1] ? (Number(result1[1]) + decimals) : decimals)));\r\n var result2 = result.toString().split('e');\r\n result = Number(result2[0] + 'e' + (result2[1] ? (Number(result2[1]) - decimals) : -decimals));\r\n return Number(result.toFixed(decimals));\r\n };\r\n NumericTextBox.prototype.cancelEvent = function (event) {\r\n event.preventDefault();\r\n return false;\r\n };\r\n NumericTextBox.prototype.keyPressHandler = function (event) {\r\n if (!this.enabled || this.readonly) {\r\n return true;\r\n }\r\n if (!Browser.isDevice && Browser.info.version === '11.0' && event.keyCode === 13) {\r\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n this.updateValue(parsedInput, event);\r\n return true;\r\n }\r\n if (event.which === 0 || event.metaKey || event.ctrlKey || event.keyCode === 8 || event.keyCode === 13) {\r\n return true;\r\n }\r\n var currentChar = String.fromCharCode(event.which);\r\n var text = this.element.value;\r\n text = text.substring(0, this.element.selectionStart) + currentChar + text.substring(this.element.selectionEnd);\r\n if (!this.numericRegex().test(text)) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n NumericTextBox.prototype.numericRegex = function () {\r\n var numericObject = getNumericObject(this.locale);\r\n var decimalSeparator = getValue('decimal', numericObject);\r\n var fractionRule = '*';\r\n if (decimalSeparator === DECIMALSEPARATOR) {\r\n decimalSeparator = '\\\\' + decimalSeparator;\r\n }\r\n if (this.decimals === 0 && this.validateDecimalOnType) {\r\n return INTREGEXP;\r\n }\r\n if (this.decimals && this.validateDecimalOnType) {\r\n fractionRule = '{0,' + this.decimals + '}';\r\n }\r\n return new RegExp('^(-)?(((\\\\d+(' + decimalSeparator + '\\\\d' + fractionRule +\r\n ')?)|(' + decimalSeparator + '\\\\d' + fractionRule + ')))?$');\r\n };\r\n NumericTextBox.prototype.mouseWheel = function (event) {\r\n event.preventDefault();\r\n var delta;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var rawEvent = event;\r\n if (rawEvent.wheelDelta) {\r\n delta = rawEvent.wheelDelta / 120;\r\n }\r\n else if (rawEvent.detail) {\r\n delta = -rawEvent.detail / 3;\r\n }\r\n if (delta > 0) {\r\n this.action(INCREMENT, event);\r\n }\r\n else if (delta < 0) {\r\n this.action(DECREMENT, event);\r\n }\r\n this.cancelEvent(event);\r\n };\r\n NumericTextBox.prototype.focusHandler = function (event) {\r\n var _this = this;\r\n this.focusEventArgs = { event: event, value: this.value, container: this.container };\r\n this.trigger('focus', this.focusEventArgs);\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n this.isFocused = true;\r\n removeClass([this.container], ERROR);\r\n this.prevValue = this.value;\r\n if ((this.value || this.value === 0)) {\r\n var formatValue_1 = this.formatNumber();\r\n this.setElementValue(formatValue_1);\r\n if (!this.isPrevFocused) {\r\n if (!Browser.isDevice && Browser.info.version === '11.0') {\r\n this.element.setSelectionRange(0, formatValue_1.length);\r\n }\r\n else {\r\n var delay = (Browser.isDevice && Browser.isIos) ? 600 : 0;\r\n setTimeout(function () {\r\n _this.element.setSelectionRange(0, formatValue_1.length);\r\n }, delay);\r\n }\r\n }\r\n }\r\n if (!Browser.isDevice) {\r\n EventHandler.add(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel, this);\r\n }\r\n };\r\n NumericTextBox.prototype.focusOutHandler = function (event) {\r\n var _this = this;\r\n this.blurEventArgs = { event: event, value: this.value, container: this.container };\r\n this.trigger('blur', this.blurEventArgs);\r\n if (!this.enabled || this.readonly) {\r\n return;\r\n }\r\n if (this.isPrevFocused) {\r\n event.preventDefault();\r\n if (Browser.isDevice) {\r\n var value_1 = this.element.value;\r\n this.element.focus();\r\n this.isPrevFocused = false;\r\n var ele_1 = this.element;\r\n setTimeout(function () {\r\n _this.setElementValue(value_1, ele_1);\r\n }, 200);\r\n }\r\n }\r\n else {\r\n this.isFocused = false;\r\n if (!this.element.value.length) {\r\n this.setProperties({ value: null }, true);\r\n }\r\n var parsedInput = this.instance.getNumberParser({ format: 'n' })(this.element.value);\r\n this.updateValue(parsedInput);\r\n if (!Browser.isDevice) {\r\n EventHandler.remove(this.element, 'mousewheel DOMMouseScroll', this.mouseWheel);\r\n }\r\n }\r\n var formElement = closest(this.element, 'form');\r\n if (formElement) {\r\n var element = this.element.nextElementSibling;\r\n var focusEvent = document.createEvent('FocusEvent');\r\n focusEvent.initEvent('focusout', false, true);\r\n element.dispatchEvent(focusEvent);\r\n }\r\n };\r\n NumericTextBox.prototype.mouseDownOnSpinner = function (event) {\r\n var _this = this;\r\n if (this.isFocused) {\r\n this.isPrevFocused = true;\r\n event.preventDefault();\r\n }\r\n if (!this.getElementData(event)) {\r\n return;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n var result = this.getElementData(event);\r\n var target = event.currentTarget;\r\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\r\n EventHandler.add(target, 'mouseleave', this.mouseUpClick, this);\r\n this.timeOut = setInterval(function () {\r\n _this.isCalled = true;\r\n _this.action(action, event);\r\n }, 150);\r\n EventHandler.add(document, 'mouseup', this.mouseUpClick, this);\r\n };\r\n NumericTextBox.prototype.touchMoveOnSpinner = function (event) {\r\n var target;\r\n if (event.type === \"touchmove\") {\r\n var touchEvent = event.touches;\r\n target = touchEvent.length && document.elementFromPoint(touchEvent[0].pageX, touchEvent[0].pageY);\r\n }\r\n else {\r\n target = document.elementFromPoint(event.clientX, event.clientY);\r\n }\r\n if (!(target.classList.contains(SPINICON))) {\r\n clearInterval(this.timeOut);\r\n }\r\n };\r\n NumericTextBox.prototype.mouseUpOnSpinner = function (event) {\r\n if (this.isPrevFocused) {\r\n this.element.focus();\r\n if (!Browser.isDevice) {\r\n this.isPrevFocused = false;\r\n }\r\n }\r\n if (!Browser.isDevice) {\r\n event.preventDefault();\r\n }\r\n if (!this.getElementData(event)) {\r\n return;\r\n }\r\n var target = event.currentTarget;\r\n var action = (target.classList.contains(SPINUP)) ? INCREMENT : DECREMENT;\r\n EventHandler.remove(target, 'mouseleave', this.mouseUpClick);\r\n if (!this.isCalled) {\r\n this.action(action, event);\r\n }\r\n this.isCalled = false;\r\n EventHandler.remove(document, 'mouseup', this.mouseUpClick);\r\n var formElement = closest(this.element, 'form');\r\n if (formElement) {\r\n var element = this.element.nextElementSibling;\r\n var keyupEvent = document.createEvent('KeyboardEvent');\r\n keyupEvent.initEvent('keyup', false, true);\r\n element.dispatchEvent(keyupEvent);\r\n }\r\n };\r\n NumericTextBox.prototype.getElementData = function (event) {\r\n if ((event.which && event.which === 3) || (event.button && event.button === 2)\r\n || !this.enabled || this.readonly) {\r\n return false;\r\n }\r\n clearInterval(this.timeOut);\r\n return true;\r\n };\r\n NumericTextBox.prototype.floatLabelTypeUpdate = function () {\r\n Input.removeFloating(this.inputWrapper);\r\n var hiddenInput = this.hiddenInput;\r\n this.hiddenInput.remove();\r\n Input.addFloating(this.element, this.floatLabelType, this.placeholder, this.createElement);\r\n this.container.insertBefore(hiddenInput, this.container.childNodes[1]);\r\n };\r\n NumericTextBox.prototype.mouseUpClick = function (event) {\r\n event.stopPropagation();\r\n clearInterval(this.timeOut);\r\n this.isCalled = false;\r\n EventHandler.remove(this.spinUp, 'mouseleave', this.mouseUpClick);\r\n EventHandler.remove(this.spinDown, 'mouseleave', this.mouseUpClick);\r\n };\r\n /**\r\n * Increments the NumericTextBox value with the specified step value.\r\n *\r\n * @param {number} step - Specifies the value used to increment the NumericTextBox value.\r\n * if its not given then numeric value will be incremented based on the step property value.\r\n * @returns {void}\r\n */\r\n NumericTextBox.prototype.increment = function (step) {\r\n if (step === void 0) { step = this.step; }\r\n this.isInteract = false;\r\n this.changeValue(this.performAction(this.value, step, INCREMENT));\r\n this.raiseChangeEvent();\r\n };\r\n /**\r\n * Decrements the NumericTextBox value with specified step value.\r\n *\r\n * @param {number} step - Specifies the value used to decrement the NumericTextBox value.\r\n * if its not given then numeric value will be decremented based on the step property value.\r\n * @returns {void}\r\n */\r\n NumericTextBox.prototype.decrement = function (step) {\r\n if (step === void 0) { step = this.step; }\r\n this.isInteract = false;\r\n this.changeValue(this.performAction(this.value, step, DECREMENT));\r\n this.raiseChangeEvent();\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers.\r\n * Also it maintains the initial input element from the DOM.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n NumericTextBox.prototype.destroy = function () {\r\n this.unwireEvents();\r\n detach(this.hiddenInput);\r\n if (this.showSpinButton) {\r\n this.unwireSpinBtnEvents();\r\n detach(this.spinUp);\r\n detach(this.spinDown);\r\n }\r\n var attrArray = ['aria-labelledby', 'role', 'autocomplete', 'aria-readonly',\r\n 'autocorrect', 'aria-disabled', 'aria-placeholder', 'autocapitalize',\r\n 'spellcheck', 'aria-autocomplete', 'tabindex', 'aria-valuemin',\r\n 'aria-valuemax', 'aria-live', 'aria-valuenow', 'aria-invalid'];\r\n for (var i = 0; i < attrArray.length; i++) {\r\n this.element.removeAttribute(attrArray[i]);\r\n }\r\n this.element.classList.remove('e-input');\r\n this.container.insertAdjacentElement('afterend', this.element);\r\n detach(this.container);\r\n _super.prototype.destroy.call(this);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\r\n /**\r\n * Returns the value of NumericTextBox with the format applied to the NumericTextBox.\r\n *\r\n */\r\n NumericTextBox.prototype.getText = function () {\r\n return this.element.value;\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n NumericTextBox.prototype.focusIn = function () {\r\n if (document.activeElement !== this.element && this.enabled) {\r\n this.element.focus();\r\n addClass([this.container], [NUMERIC_FOCUS]);\r\n }\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n NumericTextBox.prototype.focusOut = function () {\r\n if (document.activeElement === this.element && this.enabled) {\r\n this.element.blur();\r\n removeClass([this.container], [NUMERIC_FOCUS]);\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Gets the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string}\r\n */\r\n NumericTextBox.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Calls internally if any of the property value is changed.\r\n *\r\n * @param {NumericTextBoxModel} newProp - Returns the dynamic property value of the component.\r\n * @param {NumericTextBoxModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n NumericTextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'width':\r\n this.setElementWidth(newProp.width);\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'enabled':\r\n Input.setEnabled(newProp.enabled, this.element);\r\n break;\r\n case 'enableRtl':\r\n Input.setEnableRtl(newProp.enableRtl, [this.container]);\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(newProp.readonly, this.element);\r\n if (this.readonly) {\r\n attributes(this.element, { 'aria-readonly': 'true' });\r\n }\r\n else {\r\n this.element.removeAttribute('aria-readonly');\r\n }\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHTMLAttrToElement();\r\n this.updateHTMLAttrToWrapper();\r\n this.updateDataAttribute(true);\r\n this.checkAttributes(true);\r\n Input.validateInputType(this.container, this.element);\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(newProp.placeholder, this.element);\r\n break;\r\n case 'step':\r\n this.step = newProp.step;\r\n this.validateStep();\r\n break;\r\n case 'showSpinButton':\r\n this.updateSpinButton(newProp);\r\n break;\r\n case 'showClearButton':\r\n this.updateClearButton(newProp);\r\n break;\r\n case 'floatLabelType':\r\n this.floatLabelType = newProp.floatLabelType;\r\n this.floatLabelTypeUpdate();\r\n break;\r\n case 'value':\r\n this.isDynamicChange = (this.isAngular || this.isVue) && this.preventChange;\r\n this.updateValue(newProp.value);\r\n if (this.isDynamicChange) {\r\n this.preventChange = false;\r\n this.isDynamicChange = false;\r\n }\r\n break;\r\n case 'min':\r\n case 'max':\r\n setValue(prop, getValue(prop, newProp), this);\r\n this.validateMinMax();\r\n this.updateValue(this.value);\r\n break;\r\n case 'strictMode':\r\n this.strictMode = newProp.strictMode;\r\n this.updateValue(this.value);\r\n this.validateState();\r\n break;\r\n case 'locale':\r\n this.initCultureFunc();\r\n this.l10n.setLocale(this.locale);\r\n this.setSpinButton();\r\n this.updatePlaceholder();\r\n Input.setPlaceholder(this.placeholder, this.element);\r\n this.updateValue(this.value);\r\n break;\r\n case 'currency':\r\n {\r\n var propVal = getValue(prop, newProp);\r\n this.setProperties({ currencyCode: propVal }, true);\r\n this.updateCurrency(prop, propVal);\r\n }\r\n break;\r\n case 'currencyCode':\r\n {\r\n var propValue = getValue(prop, newProp);\r\n this.setProperties({ currency: propValue }, true);\r\n this.updateCurrency('currency', propValue);\r\n }\r\n break;\r\n case 'format':\r\n setValue(prop, getValue(prop, newProp), this);\r\n this.initCultureInfo();\r\n this.updateValue(this.value);\r\n break;\r\n case 'decimals':\r\n this.decimals = newProp.decimals;\r\n this.updateValue(this.value);\r\n }\r\n }\r\n };\r\n NumericTextBox.prototype.updateClearButton = function (newProp) {\r\n Input.setClearButton(newProp.showClearButton, this.element, this.inputWrapper, undefined, this.createElement);\r\n this.bindClearEvent();\r\n };\r\n NumericTextBox.prototype.updateSpinButton = function (newProp) {\r\n if (newProp.showSpinButton) {\r\n this.spinBtnCreation();\r\n }\r\n else {\r\n detach(this.spinUp);\r\n detach(this.spinDown);\r\n }\r\n };\r\n /**\r\n * Gets the component name\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n NumericTextBox.prototype.getModuleName = function () {\r\n return 'numerictextbox';\r\n };\r\n __decorate([\r\n Property('')\r\n ], NumericTextBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(-(Number.MAX_VALUE))\r\n ], NumericTextBox.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(Number.MAX_VALUE)\r\n ], NumericTextBox.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(1)\r\n ], NumericTextBox.prototype, \"step\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property({})\r\n ], NumericTextBox.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], NumericTextBox.prototype, \"showSpinButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], NumericTextBox.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], NumericTextBox.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], NumericTextBox.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], NumericTextBox.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property('n2')\r\n ], NumericTextBox.prototype, \"format\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"decimals\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"currency\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], NumericTextBox.prototype, \"currencyCode\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], NumericTextBox.prototype, \"strictMode\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], NumericTextBox.prototype, \"validateDecimalOnType\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], NumericTextBox.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Event()\r\n ], NumericTextBox.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], NumericTextBox.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], NumericTextBox.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], NumericTextBox.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], NumericTextBox.prototype, \"blur\", void 0);\r\n NumericTextBox = __decorate([\r\n NotifyPropertyChanges\r\n ], NumericTextBox);\r\n return NumericTextBox;\r\n}(Component));\r\nexport { NumericTextBox };\r\n","/**\n * Slider modules\n */\nexport * from './slider';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, Property, Event, Complex, Collection } from '@syncfusion/ej2-base';\r\nimport { L10n, Internationalization } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { attributes, addClass, removeClass, setStyleAttribute, detach, closest } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, formatUnit, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { Tooltip, getZindexPartial } from '@syncfusion/ej2-popups';\r\n/**\r\n * Configures the ticks data of the Slider.\r\n */\r\nvar TicksData = /** @class */ (function (_super) {\r\n __extends(TicksData, _super);\r\n function TicksData() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('None')\r\n ], TicksData.prototype, \"placement\", void 0);\r\n __decorate([\r\n Property(10)\r\n ], TicksData.prototype, \"largeStep\", void 0);\r\n __decorate([\r\n Property(1)\r\n ], TicksData.prototype, \"smallStep\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TicksData.prototype, \"showSmallTicks\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TicksData.prototype, \"format\", void 0);\r\n return TicksData;\r\n}(ChildProperty));\r\nexport { TicksData };\r\n/**\r\n * It illustrates the color track data in slider.\r\n * {% codeBlock src='slider/colorrange/index.md' %}{% endcodeBlock %}\r\n */\r\nvar ColorRangeData = /** @class */ (function (_super) {\r\n __extends(ColorRangeData, _super);\r\n function ColorRangeData() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(null)\r\n ], ColorRangeData.prototype, \"color\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ColorRangeData.prototype, \"start\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ColorRangeData.prototype, \"end\", void 0);\r\n return ColorRangeData;\r\n}(ChildProperty));\r\nexport { ColorRangeData };\r\n/**\r\n * It illustrates the limit data in slider.\r\n * {% codeBlock src='slider/limits/index.md' %}{% endcodeBlock %}\r\n */\r\nvar LimitData = /** @class */ (function (_super) {\r\n __extends(LimitData, _super);\r\n function LimitData() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(false)\r\n ], LimitData.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], LimitData.prototype, \"minStart\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], LimitData.prototype, \"minEnd\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], LimitData.prototype, \"maxStart\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], LimitData.prototype, \"maxEnd\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], LimitData.prototype, \"startHandleFixed\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], LimitData.prototype, \"endHandleFixed\", void 0);\r\n return LimitData;\r\n}(ChildProperty));\r\nexport { LimitData };\r\n/**\r\n * It illustrates the tooltip data in slider.\r\n */\r\nvar TooltipData = /** @class */ (function (_super) {\r\n __extends(TooltipData, _super);\r\n function TooltipData() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], TooltipData.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('Before')\r\n ], TooltipData.prototype, \"placement\", void 0);\r\n __decorate([\r\n Property('Focus')\r\n ], TooltipData.prototype, \"showOn\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TooltipData.prototype, \"isVisible\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TooltipData.prototype, \"format\", void 0);\r\n return TooltipData;\r\n}(ChildProperty));\r\nexport { TooltipData };\r\nvar bootstrapTooltipOffset = 6;\r\nvar bootstrap4TooltipOffset = 3;\r\nvar classNames = {\r\n root: 'e-slider',\r\n rtl: 'e-rtl',\r\n sliderHiddenInput: 'e-slider-input',\r\n controlWrapper: 'e-control-wrapper',\r\n sliderHandle: 'e-handle',\r\n rangeBar: 'e-range',\r\n sliderButton: 'e-slider-button',\r\n firstButton: 'e-first-button',\r\n secondButton: 'e-second-button',\r\n scale: 'e-scale',\r\n tick: 'e-tick',\r\n large: 'e-large',\r\n tickValue: 'e-tick-value',\r\n sliderTooltip: 'e-slider-tooltip',\r\n sliderHover: 'e-slider-hover',\r\n sliderFirstHandle: 'e-handle-first',\r\n sliderSecondHandle: 'e-handle-second',\r\n sliderDisabled: 'e-disabled',\r\n sliderContainer: 'e-slider-container',\r\n horizontalTooltipBefore: 'e-slider-horizontal-before',\r\n horizontalTooltipAfter: 'e-slider-horizontal-after',\r\n verticalTooltipBefore: 'e-slider-vertical-before',\r\n verticalTooltipAfter: 'e-slider-vertical-after',\r\n materialTooltip: 'e-material-tooltip',\r\n materialTooltipOpen: 'e-material-tooltip-open',\r\n materialTooltipActive: 'e-tooltip-active',\r\n materialSlider: 'e-material-slider',\r\n sliderTrack: 'e-slider-track',\r\n sliderHorizantalColor: 'e-slider-horizantal-color',\r\n sliderVerticalColor: 'e-slider-vertical-color',\r\n sliderHandleFocused: 'e-handle-focused',\r\n verticalSlider: 'e-vertical',\r\n horizontalSlider: 'e-horizontal',\r\n sliderHandleStart: 'e-handle-start',\r\n sliderTooltipStart: 'e-material-tooltip-start',\r\n sliderTabHandle: 'e-tab-handle',\r\n sliderButtonIcon: 'e-button-icon',\r\n sliderSmallSize: 'e-small-size',\r\n sliderTickPosition: 'e-tick-pos',\r\n sliderFirstTick: 'e-first-tick',\r\n sliderLastTick: 'e-last-tick',\r\n sliderButtonClass: 'e-slider-btn',\r\n sliderTooltipWrapper: 'e-tooltip-wrap',\r\n sliderTabTrack: 'e-tab-track',\r\n sliderTabRange: 'e-tab-range',\r\n sliderActiveHandle: 'e-handle-active',\r\n sliderMaterialHandle: 'e-material-handle',\r\n sliderMaterialRange: 'e-material-range',\r\n sliderMaterialDefault: 'e-material-default',\r\n materialTooltipShow: 'e-material-tooltip-show',\r\n materialTooltipHide: 'e-material-tooltip-hide',\r\n readonly: 'e-read-only',\r\n limits: 'e-limits',\r\n limitBarDefault: 'e-limit-bar',\r\n limitBarFirst: 'e-limit-first',\r\n limitBarSecond: 'e-limit-second',\r\n dragHorizontal: 'e-drag-horizontal',\r\n dragVertical: 'e-drag-vertical'\r\n};\r\n/**\r\n * The Slider component allows the user to select a value or range\r\n * of values in-between a min and max range, by dragging the handle over the slider bar.\r\n * ```html\r\n *
    \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Slider = /** @class */ (function (_super) {\r\n __extends(Slider, _super);\r\n function Slider(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.horDir = 'left';\r\n _this.verDir = 'bottom';\r\n _this.transition = {\r\n handle: 'left .4s cubic-bezier(.25, .8, .25, 1), right .4s cubic-bezier(.25, .8, .25, 1), ' +\r\n 'top .4s cubic-bezier(.25, .8, .25, 1) , bottom .4s cubic-bezier(.25, .8, .25, 1)',\r\n rangeBar: 'all .4s cubic-bezier(.25, .8, .25, 1)'\r\n };\r\n _this.transitionOnMaterialTooltip = {\r\n handle: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, top 1ms ease-out',\r\n rangeBar: 'left 1ms ease-out, right 1ms ease-out, bottom 1ms ease-out, width 1ms ease-out, height 1ms ease-out'\r\n };\r\n _this.scaleTransform = 'transform .4s cubic-bezier(.25, .8, .25, 1)';\r\n _this.customAriaText = null;\r\n _this.drag = true;\r\n _this.isDragComplete = false;\r\n _this.initialTooltip = true;\r\n return _this;\r\n }\r\n Slider.prototype.preRender = function () {\r\n // eslint-disable-next-line\r\n var localeText = { incrementTitle: 'Increase', decrementTitle: 'Decrease' };\r\n this.l10n = new L10n('slider', localeText, this.locale);\r\n this.isElementFocused = false;\r\n this.tickElementCollection = [];\r\n this.tooltipFormatInfo = {};\r\n this.ticksFormatInfo = {};\r\n this.initCultureInfo();\r\n this.initCultureFunc();\r\n this.formChecker();\r\n };\r\n Slider.prototype.formChecker = function () {\r\n var formElement = closest(this.element, 'form');\r\n if (formElement) {\r\n this.isForm = true;\r\n // this condition needs to be checked, if the slider is going to be refreshed by `refresh()`\r\n // then we need to revert the slider `value` back to `formResetValue` to preserve the initial value\r\n if (!isNullOrUndefined(this.formResetValue)) {\r\n this.setProperties({ 'value': this.formResetValue }, true);\r\n }\r\n this.formResetValue = this.value;\r\n if (this.type === 'Range' &&\r\n (isNullOrUndefined(this.formResetValue) || typeof (this.formResetValue) !== 'object')) {\r\n this.formResetValue = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\r\n }\r\n else if (isNullOrUndefined(this.formResetValue)) {\r\n this.formResetValue = parseFloat(formatUnit(this.min));\r\n }\r\n this.formElement = formElement;\r\n }\r\n else {\r\n this.isForm = false;\r\n }\r\n };\r\n Slider.prototype.initCultureFunc = function () {\r\n this.internationalization = new Internationalization(this.locale);\r\n };\r\n Slider.prototype.initCultureInfo = function () {\r\n this.tooltipFormatInfo.format = (!isNullOrUndefined(this.tooltip.format)) ? this.tooltip.format : null;\r\n this.ticksFormatInfo.format = (!isNullOrUndefined(this.ticks.format)) ? this.ticks.format : null;\r\n };\r\n Slider.prototype.formatString = function (value, formatInfo) {\r\n var formatValue = null;\r\n var formatString = null;\r\n if ((value || value === 0)) {\r\n formatValue = this.formatNumber(value);\r\n var numberOfDecimals = this.numberOfDecimals(value);\r\n formatString = this.internationalization.getNumberFormat(formatInfo)(this.makeRoundNumber(value, numberOfDecimals));\r\n }\r\n return { elementVal: formatValue, formatString: formatString };\r\n };\r\n Slider.prototype.formatNumber = function (value) {\r\n var numberOfDecimals = this.numberOfDecimals(value);\r\n return this.internationalization.getNumberFormat({\r\n maximumFractionDigits: numberOfDecimals,\r\n minimumFractionDigits: numberOfDecimals, useGrouping: false\r\n })(value);\r\n };\r\n Slider.prototype.numberOfDecimals = function (value) {\r\n var decimalPart = value.toString().split('.')[1];\r\n var numberOfDecimals = !decimalPart || !decimalPart.length ? 0 : decimalPart.length;\r\n return numberOfDecimals;\r\n };\r\n Slider.prototype.makeRoundNumber = function (value, precision) {\r\n var decimals = precision || 0;\r\n return Number(value.toFixed(decimals));\r\n };\r\n Slider.prototype.fractionalToInteger = function (value) {\r\n value = (this.numberOfDecimals(value) === 0) ? Number(value).toFixed(this.noOfDecimals) : value;\r\n var tens = 1;\r\n for (var i = 0; i < this.noOfDecimals; i++) {\r\n tens *= 10;\r\n }\r\n value = Number((value * tens).toFixed(0));\r\n return value;\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n * @private\r\n */\r\n Slider.prototype.render = function () {\r\n var _this = this;\r\n this.initialize();\r\n this.initRender();\r\n this.wireEvents();\r\n this.setZindex();\r\n this.renderComplete();\r\n if (this.element.tagName === 'EJS-SLIDER') {\r\n if (this.getTheme(this.sliderContainer) == \"none\") {\r\n setTimeout(function () {\r\n _this.refresh();\r\n }, 0);\r\n }\r\n }\r\n };\r\n Slider.prototype.initialize = function () {\r\n addClass([this.element], classNames.root);\r\n this.setCSSClass();\r\n };\r\n Slider.prototype.setElementWidth = function (width) {\r\n if (!isNullOrUndefined(width)) {\r\n if (typeof width === 'number') {\r\n this.sliderContainer.style.width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n this.sliderContainer.style.width = (width.match(/px|%|em/)) ? (width) : (formatUnit(width));\r\n }\r\n }\r\n };\r\n Slider.prototype.setCSSClass = function (oldCSSClass) {\r\n if (oldCSSClass) {\r\n removeClass([this.element], oldCSSClass.split(' '));\r\n }\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' '));\r\n }\r\n };\r\n Slider.prototype.setEnabled = function () {\r\n if (!this.enabled) {\r\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\r\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\r\n this.tooltipElement.classList.add(classNames.sliderDisabled);\r\n }\r\n this.unwireEvents();\r\n }\r\n else {\r\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\r\n if (this.tooltip.isVisible && this.tooltipElement && this.tooltip.showOn === 'Always') {\r\n this.tooltipElement.classList.remove(classNames.sliderDisabled);\r\n }\r\n this.wireEvents();\r\n }\r\n };\r\n Slider.prototype.getTheme = function (container) {\r\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\r\n return theme.replace(/['\"]+/g, '');\r\n };\r\n /**\r\n * Initialize the rendering\r\n * @private\r\n */\r\n Slider.prototype.initRender = function () {\r\n this.sliderContainer = this.createElement('div', { className: classNames.sliderContainer + ' ' + classNames.controlWrapper });\r\n this.element.parentNode.insertBefore(this.sliderContainer, this.element);\r\n this.sliderContainer.appendChild(this.element);\r\n this.sliderTrack = this.createElement('div', { className: classNames.sliderTrack });\r\n this.element.appendChild(this.sliderTrack);\r\n this.setElementWidth(this.width);\r\n this.element.tabIndex = -1;\r\n this.getThemeInitialization();\r\n this.setHandler();\r\n this.createRangeBar();\r\n if (this.limits.enabled) {\r\n this.createLimitBar();\r\n }\r\n this.setOrientClass();\r\n this.hiddenInput = (this.createElement('input', {\r\n attrs: {\r\n type: 'hidden', value: (isNullOrUndefined(this.value) ? this.min.toString() : this.value.toString()),\r\n name: this.element.getAttribute('name') || this.element.getAttribute('id') ||\r\n '_' + (Math.random() * 1000).toFixed(0) + 'slider', class: classNames.sliderHiddenInput\r\n }\r\n }));\r\n this.hiddenInput.tabIndex = -1;\r\n this.sliderContainer.appendChild(this.hiddenInput);\r\n if (this.showButtons) {\r\n this.setButtons();\r\n }\r\n this.setEnableRTL();\r\n if (this.type === 'Range') {\r\n this.rangeValueUpdate();\r\n }\r\n else {\r\n this.value = isNullOrUndefined(this.value) ? parseFloat(formatUnit(this.min.toString())) : this.value;\r\n }\r\n this.previousVal = this.type !== 'Range' ? this.checkHandleValue(parseFloat(formatUnit(this.value.toString()))) :\r\n [this.checkHandleValue(parseFloat(formatUnit(this.value[0].toString()))),\r\n this.checkHandleValue(parseFloat(formatUnit(this.value[1].toString())))];\r\n this.previousChanged = this.previousVal;\r\n if (!isNullOrUndefined(this.element.hasAttribute('name'))) {\r\n this.element.removeAttribute('name');\r\n }\r\n this.setValue();\r\n if (this.limits.enabled) {\r\n this.setLimitBar();\r\n }\r\n if (this.ticks.placement !== 'None') {\r\n this.renderScale();\r\n }\r\n if (this.tooltip.isVisible) {\r\n this.renderTooltip();\r\n }\r\n if (!this.enabled) {\r\n addClass([this.sliderContainer], [classNames.sliderDisabled]);\r\n }\r\n else {\r\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\r\n }\r\n if (this.readonly) {\r\n addClass([this.sliderContainer], [classNames.readonly]);\r\n }\r\n else {\r\n removeClass([this.sliderContainer], [classNames.readonly]);\r\n }\r\n };\r\n Slider.prototype.getThemeInitialization = function () {\r\n this.isMaterial = this.getTheme(this.sliderContainer) === 'material'\r\n || this.getTheme(this.sliderContainer) === 'material-dark';\r\n this.isBootstrap = this.getTheme(this.sliderContainer) === 'bootstrap'\r\n || this.getTheme(this.sliderContainer) === 'bootstrap-dark';\r\n this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4';\r\n this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark';\r\n this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5';\r\n this.isMaterialTooltip = this.isMaterial && this.type !== 'Range' && this.tooltip.isVisible;\r\n };\r\n Slider.prototype.createRangeBar = function () {\r\n if (this.type !== 'Default') {\r\n this.rangeBar = (this.createElement('div', { attrs: { class: classNames.rangeBar } }));\r\n this.element.appendChild(this.rangeBar);\r\n if (this.drag && this.type === 'Range') {\r\n if (this.orientation === 'Horizontal') {\r\n this.rangeBar.classList.add(classNames.dragHorizontal);\r\n }\r\n else {\r\n this.rangeBar.classList.add(classNames.dragVertical);\r\n }\r\n }\r\n }\r\n };\r\n Slider.prototype.createLimitBar = function () {\r\n var firstElementClassName = this.type !== 'Range' ? classNames.limitBarDefault :\r\n classNames.limitBarFirst;\r\n firstElementClassName += ' ' + classNames.limits;\r\n this.limitBarFirst = (this.createElement('div', {\r\n attrs: { class: firstElementClassName }\r\n }));\r\n this.element.appendChild(this.limitBarFirst);\r\n if (this.type === 'Range') {\r\n this.limitBarSecond = (this.createElement('div', {\r\n attrs: {\r\n class: classNames.limitBarSecond + ' ' + classNames.limits\r\n }\r\n }));\r\n this.element.appendChild(this.limitBarSecond);\r\n }\r\n };\r\n Slider.prototype.setOrientClass = function () {\r\n if (this.orientation !== 'Vertical') {\r\n this.sliderContainer.classList.remove(classNames.verticalSlider);\r\n this.sliderContainer.classList.add(classNames.horizontalSlider);\r\n this.firstHandle.setAttribute('aria-orientation', 'horizontal');\r\n if (this.type === 'Range') {\r\n this.secondHandle.setAttribute('aria-orientation', 'horizontal');\r\n }\r\n }\r\n else {\r\n this.sliderContainer.classList.remove(classNames.horizontalSlider);\r\n this.sliderContainer.classList.add(classNames.verticalSlider);\r\n this.firstHandle.setAttribute('aria-orientation', 'vertical');\r\n if (this.type === 'Range') {\r\n this.secondHandle.setAttribute('aria-orientation', 'vertical');\r\n }\r\n }\r\n };\r\n Slider.prototype.setAriaAttributes = function (element) {\r\n var _this = this;\r\n var min = this.min;\r\n var max = this.max;\r\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\r\n min = this.customValues[0];\r\n max = this.customValues[this.customValues.length - 1];\r\n }\r\n if (this.type !== 'Range') {\r\n attributes(element, {\r\n 'aria-valuemin': min.toString(), 'aria-valuemax': max.toString()\r\n });\r\n }\r\n else {\r\n var range = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\r\n [[min.toString(), (this.customValues[this.value[1]]).toString()],\r\n [(this.customValues[this.value[0]]).toString(), max.toString()]] :\r\n [[min.toString(), this.value[1].toString()], [this.value[0].toString(), max.toString()]];\r\n range.forEach(function (range, index) {\r\n var element = index === 0 ? _this.firstHandle : _this.secondHandle;\r\n if (element) {\r\n attributes(element, {\r\n 'aria-valuemin': range[0], 'aria-valuemax': range[1]\r\n });\r\n }\r\n });\r\n }\r\n };\r\n Slider.prototype.createSecondHandle = function () {\r\n this.secondHandle = this.createElement('div', {\r\n attrs: {\r\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0'\r\n }\r\n });\r\n this.secondHandle.classList.add(classNames.sliderSecondHandle);\r\n this.element.appendChild(this.secondHandle);\r\n };\r\n Slider.prototype.createFirstHandle = function () {\r\n this.firstHandle = this.createElement('div', {\r\n attrs: {\r\n class: classNames.sliderHandle, 'role': 'slider', tabIndex: '0'\r\n }\r\n });\r\n this.firstHandle.classList.add(classNames.sliderFirstHandle);\r\n this.element.appendChild(this.firstHandle);\r\n if (this.isMaterialTooltip) {\r\n this.materialHandle = this.createElement('div', {\r\n attrs: {\r\n class: classNames.sliderHandle + ' ' +\r\n classNames.sliderMaterialHandle\r\n }\r\n });\r\n this.element.appendChild(this.materialHandle);\r\n }\r\n };\r\n Slider.prototype.wireFirstHandleEvt = function (destroy) {\r\n if (!destroy) {\r\n EventHandler.add(this.firstHandle, 'mousedown touchstart', this.handleFocus, this);\r\n EventHandler.add(this.firstHandle, 'transitionend', this.transitionEnd, this);\r\n EventHandler.add(this.firstHandle, 'mouseenter touchenter', this.handleOver, this);\r\n EventHandler.add(this.firstHandle, 'mouseleave touchend', this.handleLeave, this);\r\n }\r\n else {\r\n EventHandler.remove(this.firstHandle, 'mousedown touchstart', this.handleFocus);\r\n EventHandler.remove(this.firstHandle, 'transitionend', this.transitionEnd);\r\n EventHandler.remove(this.firstHandle, 'mouseenter touchenter', this.handleOver);\r\n EventHandler.remove(this.firstHandle, 'mouseleave touchend', this.handleLeave);\r\n }\r\n };\r\n Slider.prototype.wireSecondHandleEvt = function (destroy) {\r\n if (!destroy) {\r\n EventHandler.add(this.secondHandle, 'mousedown touchstart', this.handleFocus, this);\r\n EventHandler.add(this.secondHandle, 'transitionend', this.transitionEnd, this);\r\n EventHandler.add(this.secondHandle, 'mouseenter touchenter', this.handleOver, this);\r\n EventHandler.add(this.secondHandle, 'mouseleave touchend', this.handleLeave, this);\r\n }\r\n else {\r\n EventHandler.remove(this.secondHandle, 'mousedown touchstart', this.handleFocus);\r\n EventHandler.remove(this.secondHandle, 'transitionend', this.transitionEnd);\r\n EventHandler.remove(this.secondHandle, 'mouseenter touchenter', this.handleOver);\r\n EventHandler.remove(this.secondHandle, 'mouseleave touchend', this.handleLeave);\r\n }\r\n };\r\n Slider.prototype.handleStart = function () {\r\n if (this.type !== 'Range') {\r\n this.firstHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\r\n if (this.isMaterialTooltip) {\r\n this.materialHandle.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderHandleStart);\r\n if (this.tooltipElement) {\r\n this.tooltipElement.classList[this.handlePos1 === 0 ? 'add' : 'remove'](classNames.sliderTooltipStart);\r\n }\r\n }\r\n }\r\n };\r\n Slider.prototype.transitionEnd = function (e) {\r\n if (e.propertyName !== 'transform') {\r\n this.handleStart();\r\n this.getHandle().style.transition = 'none';\r\n if (this.type !== 'Default') {\r\n this.rangeBar.style.transition = 'none';\r\n }\r\n if (this.isMaterial && this.tooltip.isVisible && this.type === 'Default') {\r\n this.tooltipElement.style.transition = this.transition.handle;\r\n }\r\n this.tooltipToggle(this.getHandle());\r\n this.closeTooltip();\r\n }\r\n };\r\n Slider.prototype.handleFocusOut = function () {\r\n if (this.firstHandle.classList.contains(classNames.sliderHandleFocused)) {\r\n this.firstHandle.classList.remove(classNames.sliderHandleFocused);\r\n }\r\n if (this.type === 'Range') {\r\n if (this.secondHandle.classList.contains(classNames.sliderHandleFocused)) {\r\n this.secondHandle.classList.remove(classNames.sliderHandleFocused);\r\n }\r\n }\r\n };\r\n Slider.prototype.handleFocus = function (e) {\r\n this.focusSliderElement();\r\n this.sliderBarClick(e);\r\n if (e.currentTarget === this.firstHandle) {\r\n this.firstHandle.classList.add(classNames.sliderHandleFocused);\r\n }\r\n else {\r\n this.secondHandle.classList.add(classNames.sliderHandleFocused);\r\n }\r\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\r\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\r\n };\r\n Slider.prototype.handleOver = function (e) {\r\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover') {\r\n this.tooltipToggle(e.currentTarget);\r\n }\r\n if (this.type === 'Default') {\r\n this.tooltipToggle(this.getHandle());\r\n }\r\n };\r\n Slider.prototype.handleLeave = function (e) {\r\n if (this.tooltip.isVisible && this.tooltip.showOn === 'Hover' &&\r\n !e.currentTarget.classList.contains(classNames.sliderHandleFocused) &&\r\n !e.currentTarget.classList.contains(classNames.sliderTabHandle)) {\r\n this.closeTooltip();\r\n }\r\n };\r\n Slider.prototype.setHandler = function () {\r\n if (this.min > this.max) {\r\n this.min = this.max;\r\n }\r\n this.createFirstHandle();\r\n if (this.type === 'Range') {\r\n this.createSecondHandle();\r\n }\r\n };\r\n Slider.prototype.setEnableRTL = function () {\r\n this.enableRtl && this.orientation !== 'Vertical' ? addClass([this.sliderContainer], classNames.rtl) :\r\n removeClass([this.sliderContainer], classNames.rtl);\r\n var preDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\r\n if (this.enableRtl) {\r\n this.horDir = 'right';\r\n this.verDir = 'bottom';\r\n }\r\n else {\r\n this.horDir = 'left';\r\n this.verDir = 'bottom';\r\n }\r\n var currDir = (this.orientation !== 'Vertical') ? this.horDir : this.verDir;\r\n if (preDir !== currDir) {\r\n if (this.orientation === 'Horizontal') {\r\n setStyleAttribute(this.firstHandle, { 'right': '', 'left': 'auto' });\r\n if (this.type === 'Range') {\r\n setStyleAttribute(this.secondHandle, { 'top': '', 'left': 'auto' });\r\n }\r\n }\r\n }\r\n this.setBarColor();\r\n };\r\n Slider.prototype.tooltipValue = function () {\r\n var _this = this;\r\n var text;\r\n var args = {\r\n value: this.value,\r\n text: ''\r\n };\r\n if (this.initialTooltip) {\r\n this.initialTooltip = false;\r\n this.setTooltipContent();\r\n args.text = text = this.tooltipObj.content;\r\n this.trigger('tooltipChange', args, function (observedArgs) {\r\n _this.addTooltipClass(observedArgs.text);\r\n if (text !== observedArgs.text) {\r\n _this.customAriaText = observedArgs.text;\r\n _this.tooltipObj.content = observedArgs.text;\r\n _this.setAriaAttrValue(_this.firstHandle);\r\n if (_this.type === 'Range') {\r\n _this.setAriaAttrValue(_this.secondHandle);\r\n }\r\n }\r\n });\r\n if (this.isMaterialTooltip) {\r\n this.setPreviousVal('change', this.value);\r\n }\r\n }\r\n };\r\n Slider.prototype.setTooltipContent = function () {\r\n var content;\r\n content = this.formatContent(this.tooltipFormatInfo, false);\r\n this.tooltipObj.content = content;\r\n };\r\n Slider.prototype.formatContent = function (formatInfo, ariaContent) {\r\n var content = '';\r\n var handle1 = this.handleVal1;\r\n var handle2 = this.handleVal2;\r\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\r\n handle1 = this.customValues[this.handleVal1];\r\n handle2 = this.customValues[this.handleVal2];\r\n }\r\n if (!ariaContent) {\r\n if (this.type === 'Range') {\r\n if (this.enableRtl && this.orientation !== 'Vertical') {\r\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle2, formatInfo)\r\n .formatString + ' - ' + this.formatString(handle1, formatInfo).formatString) :\r\n (handle2.toString() + ' - ' + handle1.toString());\r\n }\r\n else {\r\n content = (!isNullOrUndefined(formatInfo.format)) ? (this.formatString(handle1, formatInfo)\r\n .formatString + ' - ' + this.formatString(handle2, formatInfo).formatString) :\r\n (handle1.toString() + ' - ' + handle2.toString());\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(handle1)) {\r\n content = (!isNullOrUndefined(formatInfo.format)) ?\r\n this.formatString(handle1, formatInfo).formatString : handle1.toString();\r\n }\r\n }\r\n return content;\r\n }\r\n else {\r\n if (this.type === 'Range') {\r\n if (this.enableRtl && this.orientation !== 'Vertical') {\r\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\r\n (this.formatString(handle2, formatInfo).elementVal + ' - ' +\r\n this.formatString(handle1, formatInfo).elementVal) :\r\n (handle2.toString() + ' - ' + handle1.toString());\r\n }\r\n else {\r\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\r\n (this.formatString(handle1, formatInfo).elementVal + ' - ' +\r\n this.formatString(handle2, formatInfo).elementVal) :\r\n (handle1.toString() + ' - ' + handle2.toString());\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(handle1)) {\r\n content = (!isNullOrUndefined(this.tooltip) && !isNullOrUndefined(this.tooltip.format)) ?\r\n this.formatString(handle1, formatInfo).elementVal : handle1.toString();\r\n }\r\n }\r\n return content;\r\n }\r\n };\r\n Slider.prototype.addTooltipClass = function (content) {\r\n if (this.isMaterialTooltip) {\r\n var count = content.toString().length;\r\n if (!this.tooltipElement) {\r\n var cssClass = count > 4 ? classNames.sliderMaterialRange : classNames.sliderMaterialDefault;\r\n this.tooltipObj.cssClass = classNames.sliderTooltip + ' ' + cssClass;\r\n }\r\n else {\r\n var cssClass = count > 4 ?\r\n { oldCss: classNames.sliderMaterialDefault, newCss: classNames.sliderMaterialRange } :\r\n { oldCss: classNames.sliderMaterialRange, newCss: classNames.sliderMaterialDefault };\r\n this.tooltipElement.classList.remove(cssClass.oldCss);\r\n if (!this.tooltipElement.classList.contains(cssClass.newCss)) {\r\n this.tooltipElement.classList.add(cssClass.newCss);\r\n this.tooltipElement.style.transform = count > 4 ? 'scale(1)' :\r\n this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\r\n }\r\n }\r\n }\r\n };\r\n Slider.prototype.tooltipPlacement = function () {\r\n return this.orientation === 'Horizontal' ? (this.tooltip.placement === 'Before' ? 'TopCenter' : 'BottomCenter') :\r\n (this.tooltip.placement === 'Before' ? 'LeftCenter' : 'RightCenter');\r\n };\r\n Slider.prototype.tooltipBeforeOpen = function (args) {\r\n this.tooltipElement = args.element;\r\n if (this.tooltip.cssClass) {\r\n addClass([this.tooltipElement], this.tooltip.cssClass.split(' ').filter(function (css) { return css; }));\r\n }\r\n args.target.removeAttribute('aria-describedby');\r\n if (this.isMaterialTooltip) {\r\n this.tooltipElement.firstElementChild.classList.add(classNames.materialTooltipHide);\r\n this.handleStart();\r\n this.setTooltipTransform();\r\n }\r\n };\r\n Slider.prototype.tooltipCollision = function (position) {\r\n if (this.isBootstrap || this.isBootstrap4 || (this.isMaterial && !this.isMaterialTooltip)) {\r\n var tooltipOffsetValue = this.isBootstrap4 ? bootstrap4TooltipOffset : bootstrapTooltipOffset;\r\n switch (position) {\r\n case 'TopCenter':\r\n this.tooltipObj.setProperties({ 'offsetY': -(tooltipOffsetValue) }, false);\r\n break;\r\n case 'BottomCenter':\r\n this.tooltipObj.setProperties({ 'offsetY': tooltipOffsetValue }, false);\r\n break;\r\n case 'LeftCenter':\r\n this.tooltipObj.setProperties({ 'offsetX': -(tooltipOffsetValue) }, false);\r\n break;\r\n case 'RightCenter':\r\n this.tooltipObj.setProperties({ 'offsetX': tooltipOffsetValue }, false);\r\n break;\r\n }\r\n }\r\n };\r\n Slider.prototype.materialTooltipEventCallBack = function (event) {\r\n this.sliderBarClick(event);\r\n EventHandler.add(document, 'mousemove touchmove', this.sliderBarMove, this);\r\n EventHandler.add(document, 'mouseup touchend', this.sliderBarUp, this);\r\n };\r\n Slider.prototype.wireMaterialTooltipEvent = function (destroy) {\r\n if (this.isMaterialTooltip) {\r\n if (!destroy) {\r\n EventHandler.add(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack, this);\r\n }\r\n else {\r\n EventHandler.remove(this.tooltipElement, 'mousedown touchstart', this.materialTooltipEventCallBack);\r\n }\r\n }\r\n };\r\n Slider.prototype.tooltipPositionCalculation = function (position) {\r\n var cssClass;\r\n switch (position) {\r\n case 'TopCenter':\r\n cssClass = classNames.horizontalTooltipBefore;\r\n break;\r\n case 'BottomCenter':\r\n cssClass = classNames.horizontalTooltipAfter;\r\n break;\r\n case 'LeftCenter':\r\n cssClass = classNames.verticalTooltipBefore;\r\n break;\r\n case 'RightCenter':\r\n cssClass = classNames.verticalTooltipAfter;\r\n break;\r\n }\r\n return cssClass;\r\n };\r\n Slider.prototype.getTooltipTransformProperties = function (className) {\r\n var transformProperties;\r\n if (this.tooltipElement) {\r\n var position = this.orientation === 'Horizontal' ?\r\n ((this.tooltipElement.clientHeight + 14) - (this.tooltipElement.clientHeight / 2)) :\r\n ((this.tooltipElement.clientWidth + 14) - (this.tooltipElement.clientWidth / 2));\r\n transformProperties = this.orientation === 'Horizontal' ?\r\n (className === classNames.horizontalTooltipBefore ? { rotate: 'rotate(45deg)', translate: \"translateY(\" + position + \"px)\" } :\r\n { rotate: 'rotate(225deg)', translate: \"translateY(\" + -(position) + \"px)\" }) :\r\n (className === classNames.verticalTooltipBefore ? { rotate: 'rotate(-45deg)', translate: \"translateX(\" + position + \"px)\" } :\r\n { rotate: 'rotate(-225deg)', translate: \"translateX(\" + (-position) + \"px)\" });\r\n }\r\n return transformProperties;\r\n };\r\n Slider.prototype.openMaterialTooltip = function () {\r\n var _this = this;\r\n if (this.isMaterialTooltip) {\r\n this.refreshTooltip(this.firstHandle);\r\n var tooltipContentElement = this.tooltipElement.firstElementChild;\r\n tooltipContentElement.classList.remove(classNames.materialTooltipHide);\r\n tooltipContentElement.classList.add(classNames.materialTooltipShow);\r\n this.firstHandle.style.cursor = 'default';\r\n this.tooltipElement.style.transition = this.scaleTransform;\r\n this.tooltipElement.classList.add(classNames.materialTooltipOpen);\r\n this.materialHandle.style.transform = 'scale(0)';\r\n if (tooltipContentElement.innerText.length > 4) {\r\n this.tooltipElement.style.transform = 'scale(1)';\r\n }\r\n else {\r\n this.tooltipElement.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\r\n }\r\n if (this.type === 'Default') {\r\n setTimeout(function () { _this.tooltipElement.style.transition = _this.transition.handle; }, 2500);\r\n }\r\n else {\r\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\r\n }\r\n }\r\n };\r\n Slider.prototype.closeMaterialTooltip = function () {\r\n var _this = this;\r\n if (this.isMaterialTooltip) {\r\n var tooltipContentElement = this.tooltipElement.firstElementChild;\r\n this.tooltipElement.style.transition = this.scaleTransform;\r\n tooltipContentElement.classList.remove(classNames.materialTooltipShow);\r\n tooltipContentElement.classList.add(classNames.materialTooltipHide);\r\n this.firstHandle.style.cursor = '-webkit-grab';\r\n this.firstHandle.style.cursor = 'grab';\r\n if (this.materialHandle) {\r\n this.materialHandle.style.transform = 'scale(1)';\r\n }\r\n this.tooltipElement.classList.remove(classNames.materialTooltipOpen);\r\n this.setTooltipTransform();\r\n this.tooltipTarget = undefined;\r\n setTimeout(function () { _this.tooltipElement.style.transition = 'none'; }, 2500);\r\n }\r\n };\r\n Slider.prototype.checkTooltipPosition = function (args) {\r\n var tooltipClass = this.tooltipPositionCalculation(args.collidedPosition);\r\n if (this.tooltipCollidedPosition === undefined ||\r\n this.tooltipCollidedPosition !== args.collidedPosition || !args.element.classList.contains(tooltipClass)) {\r\n if (this.isMaterialTooltip) {\r\n if (tooltipClass !== undefined) {\r\n args.element.classList.remove(this.previousTooltipClass);\r\n args.element.classList.add(tooltipClass);\r\n this.previousTooltipClass = tooltipClass;\r\n }\r\n if (args.element.style.transform && args.element.classList.contains(classNames.materialTooltipOpen) &&\r\n args.element.firstElementChild.innerText.length <= 4) {\r\n args.element.style.transform = this.getTooltipTransformProperties(this.previousTooltipClass).rotate;\r\n }\r\n }\r\n this.tooltipCollidedPosition = args.collidedPosition;\r\n }\r\n if (this.isMaterialTooltip && this.tooltipElement && this.tooltipElement.style.transform.indexOf('translate') !== -1) {\r\n this.setTooltipTransform();\r\n }\r\n };\r\n Slider.prototype.setTooltipTransform = function () {\r\n var transformProperties = this.getTooltipTransformProperties(this.previousTooltipClass);\r\n if (this.tooltipElement.firstElementChild.innerText.length > 4) {\r\n this.tooltipElement.style.transform = transformProperties.translate + \" scale(0.01)\";\r\n }\r\n else {\r\n this.tooltipElement.style.transform = transformProperties.translate + \" \" + transformProperties.rotate + \" scale(0.01)\";\r\n }\r\n };\r\n Slider.prototype.renderTooltip = function () {\r\n this.tooltipObj = new Tooltip({\r\n showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5,\r\n cssClass: classNames.sliderTooltip,\r\n height: this.isMaterial ? 30 : 'auto',\r\n animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } },\r\n opensOn: 'Custom',\r\n beforeOpen: this.tooltipBeforeOpen.bind(this),\r\n beforeCollision: this.checkTooltipPosition.bind(this),\r\n beforeClose: this.tooltipBeforeClose.bind(this),\r\n enableHtmlSanitizer: this.enableHtmlSanitizer\r\n });\r\n this.tooltipObj.appendTo(this.firstHandle);\r\n this.initializeTooltipProps();\r\n };\r\n Slider.prototype.initializeTooltipProps = function () {\r\n var tooltipShowOn = this.isMaterialTooltip ? 'Always' : (this.tooltip.showOn === 'Auto' ? 'Hover' : this.tooltip.showOn);\r\n this.setProperties({ tooltip: { showOn: tooltipShowOn } }, true);\r\n this.tooltipObj.position = this.tooltipPlacement();\r\n this.tooltipCollision(this.tooltipObj.position);\r\n [this.firstHandle, this.rangeBar, this.secondHandle].forEach(function (handle) {\r\n if (!isNullOrUndefined(handle)) {\r\n handle.style.transition = 'none';\r\n }\r\n });\r\n if (this.isMaterialTooltip) {\r\n this.sliderContainer.classList.add(classNames.materialSlider);\r\n this.tooltipValue();\r\n this.tooltipObj.animation.close.effect = 'None';\r\n this.tooltipObj.open(this.firstHandle);\r\n }\r\n };\r\n Slider.prototype.tooltipBeforeClose = function () {\r\n this.tooltipElement = undefined;\r\n this.tooltipCollidedPosition = undefined;\r\n };\r\n Slider.prototype.setButtons = function () {\r\n this.firstBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.firstButton });\r\n this.firstBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\r\n if (this.isTailwind) {\r\n this.firstBtn.querySelector('span').classList.add('e-icons');\r\n }\r\n this.firstBtn.tabIndex = -1;\r\n this.secondBtn = this.createElement('div', { className: classNames.sliderButton + ' ' + classNames.secondButton });\r\n this.secondBtn.appendChild(this.createElement('span', { className: classNames.sliderButtonIcon }));\r\n if (this.isTailwind) {\r\n this.secondBtn.querySelector('span').classList.add('e-icons');\r\n }\r\n this.secondBtn.tabIndex = -1;\r\n this.sliderContainer.classList.add(classNames.sliderButtonClass);\r\n this.sliderContainer.appendChild(this.firstBtn);\r\n this.sliderContainer.appendChild(this.secondBtn);\r\n this.sliderContainer.appendChild(this.element);\r\n this.buttonTitle();\r\n };\r\n Slider.prototype.buttonTitle = function () {\r\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\r\n this.l10n.setLocale(this.locale);\r\n var decrementTitle = this.l10n.getConstant('decrementTitle');\r\n var incrementTitle = this.l10n.getConstant('incrementTitle');\r\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': decrementTitle, title: decrementTitle });\r\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': incrementTitle, title: incrementTitle });\r\n };\r\n Slider.prototype.buttonFocusOut = function () {\r\n if (this.isMaterial) {\r\n this.getHandle().classList.remove('e-large-thumb-size');\r\n }\r\n };\r\n Slider.prototype.repeatButton = function (args) {\r\n var hVal = this.handleValueUpdate();\r\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\r\n var value;\r\n if (args.target.parentElement.classList.contains(classNames.firstButton)\r\n || args.target.classList.contains(classNames.firstButton)) {\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\r\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\r\n }\r\n else if (args.target.parentElement.classList.contains(classNames.secondButton)\r\n || (args.target.classList.contains(classNames.secondButton))) {\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\r\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\r\n }\r\n if (this.limits.enabled) {\r\n value = this.getLimitCorrectedValues(value);\r\n }\r\n if (value >= this.min && value <= this.max) {\r\n this.changeHandleValue(value);\r\n this.tooltipToggle(this.getHandle());\r\n }\r\n };\r\n Slider.prototype.repeatHandlerMouse = function (args) {\r\n args.preventDefault();\r\n if (args.type === ('mousedown') || args.type === ('touchstart')) {\r\n this.buttonClick(args);\r\n this.repeatInterval = setInterval(this.repeatButton.bind(this), 180, args);\r\n }\r\n };\r\n Slider.prototype.materialChange = function () {\r\n if (!this.getHandle().classList.contains('e-large-thumb-size')) {\r\n this.getHandle().classList.add('e-large-thumb-size');\r\n }\r\n };\r\n Slider.prototype.repeatHandlerUp = function (e) {\r\n this.changeEvent('changed', e);\r\n this.closeTooltip();\r\n clearInterval(this.repeatInterval);\r\n this.getHandle().focus();\r\n };\r\n Slider.prototype.customTickCounter = function (bigNum) {\r\n var tickCount = 4;\r\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\r\n if (bigNum > 4) {\r\n tickCount = 3;\r\n }\r\n if (bigNum > 7) {\r\n tickCount = 2;\r\n }\r\n if (bigNum > 14) {\r\n tickCount = 1;\r\n }\r\n if (bigNum > 28) {\r\n tickCount = 0;\r\n }\r\n }\r\n return tickCount;\r\n };\r\n // tslint:disable-next-line:max-func-body-length\r\n Slider.prototype.renderScale = function () {\r\n var liElementPosition = 0;\r\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\r\n var spanText;\r\n this.noOfDecimals = this.numberOfDecimals(this.step);\r\n this.ul = this.createElement('ul', {\r\n className: classNames.scale + ' ' + 'e-' + orien + '-scale ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\r\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\r\n });\r\n this.ul.style.zIndex = '-1';\r\n if (Browser.isAndroid && orien === 'h') {\r\n this.ul.classList.add(classNames.sliderTickPosition);\r\n }\r\n var smallStep = this.ticks.smallStep;\r\n if (!this.ticks.showSmallTicks) {\r\n this.ticks.largeStep > 0 ? (smallStep = this.ticks.largeStep) :\r\n (smallStep = (parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\r\n }\r\n else if (smallStep <= 0) {\r\n smallStep = parseFloat(formatUnit(this.step));\r\n }\r\n var min = this.fractionalToInteger(this.min);\r\n var max = this.fractionalToInteger(this.max);\r\n var steps = this.fractionalToInteger(smallStep);\r\n var bigNum = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 && this.customValues.length - 1;\r\n var customStep = this.customTickCounter(bigNum);\r\n var count = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\r\n (bigNum * customStep) + bigNum : Math.abs((max - min) / steps);\r\n this.element.appendChild(this.ul);\r\n var li;\r\n var start = parseFloat(this.min.toString());\r\n if (orien === 'v') {\r\n start = parseFloat(this.max.toString());\r\n }\r\n var left = 0;\r\n var islargeTick;\r\n var tickWidth = 100 / count;\r\n if (tickWidth === Infinity) {\r\n tickWidth = 5;\r\n }\r\n for (var i = 0, y = !isNullOrUndefined(this.customValues) && this.customValues.length > 0 ?\r\n this.customValues.length - 1 : 0, k = 0; i <= count; i++) {\r\n li = (this.createElement('li', {\r\n attrs: {\r\n class: classNames.tick, role: 'presentation', tabIndex: '-1',\r\n 'aria-hidden': 'true'\r\n }\r\n }));\r\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\r\n islargeTick = i % (customStep + 1) === 0;\r\n if (islargeTick) {\r\n if (orien === 'h') {\r\n start = this.customValues[k];\r\n k++;\r\n }\r\n else {\r\n start = this.customValues[y];\r\n y--;\r\n }\r\n li.setAttribute('title', start.toString());\r\n }\r\n }\r\n else {\r\n li.setAttribute('title', start.toString());\r\n if (this.numberOfDecimals(this.max) === 0 && this.numberOfDecimals(this.min) === 0 &&\r\n this.numberOfDecimals(this.step) === 0) {\r\n if (orien === 'h') {\r\n islargeTick = ((start - parseFloat(this.min.toString())) % this.ticks.largeStep === 0) ? true : false;\r\n }\r\n else {\r\n islargeTick = (Math.abs(start - parseFloat(this.max.toString())) % this.ticks.largeStep === 0) ? true : false;\r\n }\r\n }\r\n else {\r\n var largestep = this.fractionalToInteger(this.ticks.largeStep);\r\n var startValue = this.fractionalToInteger(start);\r\n if (orien === 'h') {\r\n islargeTick = ((startValue - min) % largestep === 0) ? true : false;\r\n }\r\n else {\r\n islargeTick = (Math.abs(startValue - parseFloat(max.toString())) % largestep === 0) ? true : false;\r\n }\r\n }\r\n }\r\n if (islargeTick) {\r\n li.classList.add(classNames.large);\r\n }\r\n (orien === 'h') ? (li.style.width = tickWidth + '%') : (li.style.height = tickWidth + '%');\r\n var repeat = islargeTick ? (this.ticks.placement === 'Both' ? 2 : 1) : 0;\r\n if (islargeTick) {\r\n for (var j = 0; j < repeat; j++) {\r\n this.createTick(li, start, tickWidth);\r\n }\r\n }\r\n else if (isNullOrUndefined(this.customValues)) {\r\n this.formatTicksValue(li, start);\r\n }\r\n this.ul.appendChild(li);\r\n this.tickElementCollection.push(li);\r\n var decimalPoints = void 0;\r\n if (isNullOrUndefined(this.customValues)) {\r\n if (this.numberOfDecimals(smallStep) > this.numberOfDecimals(start)) {\r\n decimalPoints = this.numberOfDecimals(smallStep);\r\n }\r\n else {\r\n decimalPoints = this.numberOfDecimals(start);\r\n }\r\n if (orien === 'h') {\r\n start = this.makeRoundNumber(start + smallStep, decimalPoints);\r\n }\r\n else {\r\n start = this.makeRoundNumber(start - smallStep, decimalPoints);\r\n }\r\n left = this.makeRoundNumber(left + smallStep, decimalPoints);\r\n }\r\n }\r\n this.ticksAlignment(orien, tickWidth);\r\n };\r\n Slider.prototype.ticksAlignment = function (orien, tickWidth, triggerEvent) {\r\n if (triggerEvent === void 0) { triggerEvent = true; }\r\n this.firstChild = this.ul.firstElementChild;\r\n this.lastChild = this.ul.lastElementChild;\r\n this.firstChild.classList.add(classNames.sliderFirstTick);\r\n this.lastChild.classList.add(classNames.sliderLastTick);\r\n this.sliderContainer.classList.add(classNames.scale + '-' + this.ticks.placement.toLowerCase());\r\n if (orien === 'h') {\r\n this.firstChild.style.width = tickWidth / 2 + '%';\r\n this.lastChild.style.width = tickWidth / 2 + '%';\r\n }\r\n else {\r\n this.firstChild.style.height = tickWidth / 2 + '%';\r\n this.lastChild.style.height = tickWidth / 2 + '%';\r\n }\r\n var eventArgs = { ticksWrapper: this.ul, tickElements: this.tickElementCollection };\r\n if (triggerEvent) {\r\n this.trigger('renderedTicks', eventArgs);\r\n }\r\n this.scaleAlignment();\r\n };\r\n Slider.prototype.createTick = function (li, start, tickWidth) {\r\n var span = this.createElement('span', {\r\n className: classNames.tickValue + ' ' + classNames.tick + '-' + this.ticks.placement.toLowerCase(),\r\n attrs: { role: 'presentation', tabIndex: '-1', 'aria-hidden': 'true' }\r\n });\r\n li.appendChild(span);\r\n if (isNullOrUndefined(this.customValues)) {\r\n this.formatTicksValue(li, start, span, tickWidth);\r\n }\r\n else {\r\n if (this.enableHtmlSanitizer) {\r\n span.innerHTML = SanitizeHtmlHelper.sanitize(start.toString());\r\n }\r\n else {\r\n span.innerHTML = start.toString();\r\n }\r\n }\r\n };\r\n Slider.prototype.formatTicksValue = function (li, start, spanElement, tickWidth) {\r\n var _this = this;\r\n var tickText = this.formatNumber(start);\r\n var text = !isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format) ?\r\n this.formatString(start, this.ticksFormatInfo).formatString : tickText;\r\n var eventArgs = { value: start, text: text, tickElement: li };\r\n this.trigger('renderingTicks', eventArgs, function (observedArgs) {\r\n li.setAttribute('title', observedArgs.text.toString());\r\n if (spanElement) {\r\n if (_this.enableHtmlSanitizer) {\r\n spanElement.innerHTML = SanitizeHtmlHelper.sanitize(observedArgs.text.toString());\r\n }\r\n else {\r\n spanElement.innerHTML = observedArgs.text.toString();\r\n }\r\n }\r\n });\r\n };\r\n Slider.prototype.scaleAlignment = function () {\r\n this.tickValuePosition();\r\n var smallTick = 12;\r\n var largeTick = 20;\r\n var half = largeTick / 2;\r\n var orien = this.orientation === 'Vertical' ? 'v' : 'h';\r\n if (this.orientation === 'Vertical') {\r\n (this.element.getBoundingClientRect().width <= 15) ?\r\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\r\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\r\n }\r\n else {\r\n (this.element.getBoundingClientRect().height <= 15) ?\r\n this.sliderContainer.classList.add(classNames.sliderSmallSize) :\r\n this.sliderContainer.classList.remove(classNames.sliderSmallSize);\r\n }\r\n };\r\n Slider.prototype.tickValuePosition = function () {\r\n this.firstChild = this.element.querySelector('ul').children[0];\r\n var first = this.firstChild.getBoundingClientRect();\r\n var firstChild;\r\n var otherChild;\r\n var smallStep = this.ticks.smallStep;\r\n var count = Math.abs((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min)))) / smallStep;\r\n if (this.firstChild.children.length > 0) {\r\n firstChild = this.firstChild.children[0].getBoundingClientRect();\r\n }\r\n var tickElements = [this.sliderContainer.querySelectorAll('.' + classNames.tick + '.' +\r\n classNames.large + ' .' + classNames.tickValue)];\r\n var other;\r\n if (this.ticks.placement === 'Both') {\r\n other = [].slice.call(tickElements[0], 2);\r\n }\r\n else {\r\n other = [].slice.call(tickElements[0], 1);\r\n }\r\n var tickWidth = this.orientation === 'Vertical' ?\r\n (first.height * 2) : (first.width * 2);\r\n for (var i = 0; i < this.firstChild.children.length; i++) {\r\n if (this.orientation === 'Vertical') {\r\n this.firstChild.children[i].style.top = -(firstChild.height / 2) + 'px';\r\n }\r\n else {\r\n if (!this.enableRtl) {\r\n this.firstChild.children[i].style.left = -(firstChild.width / 2) + 'px';\r\n }\r\n else {\r\n this.firstChild.children[i].style.left = (tickWidth -\r\n this.firstChild.children[i].getBoundingClientRect().width) / 2 + 'px';\r\n }\r\n }\r\n }\r\n for (var i = 0; i < other.length; i++) {\r\n otherChild = other[i].getBoundingClientRect();\r\n if (this.orientation === 'Vertical') {\r\n setStyleAttribute(other[i], { top: (tickWidth - otherChild.height) / 2 + 'px' });\r\n }\r\n else {\r\n setStyleAttribute(other[i], { left: (tickWidth - otherChild.width) / 2 + 'px' });\r\n }\r\n }\r\n if (this.enableRtl && this.lastChild.children.length && count !== 0) {\r\n this.lastChild.children[0].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\r\n if (this.ticks.placement === 'Both') {\r\n this.lastChild.children[1].style.left = -(this.lastChild.getBoundingClientRect().width / 2) + 'px';\r\n }\r\n }\r\n if (count === 0) {\r\n if (this.orientation === 'Horizontal') {\r\n if (!this.enableRtl) {\r\n this.firstChild.classList.remove(classNames.sliderLastTick);\r\n this.firstChild.style.left = this.firstHandle.style.left;\r\n }\r\n else {\r\n this.firstChild.classList.remove(classNames.sliderLastTick);\r\n this.firstChild.style.right = this.firstHandle.style.right;\r\n this.firstChild.children[0].style.left =\r\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\r\n if (this.ticks.placement === 'Both') {\r\n this.firstChild.children[1].style.left =\r\n (this.firstChild.getBoundingClientRect().width / 2) + 2 + 'px';\r\n }\r\n }\r\n }\r\n if (this.orientation === 'Vertical') {\r\n this.firstChild.classList.remove(classNames.sliderLastTick);\r\n }\r\n }\r\n };\r\n Slider.prototype.setAriaAttrValue = function (element) {\r\n var ariaValueText;\r\n var isTickFormatted = ((!isNullOrUndefined(this.ticks) && !isNullOrUndefined(this.ticks.format))) ? true : false;\r\n var text = !isTickFormatted ?\r\n this.formatContent(this.ticksFormatInfo, false) : this.formatContent(this.tooltipFormatInfo, false);\r\n var valuenow = isTickFormatted ? this.formatContent(this.ticksFormatInfo, true) :\r\n this.formatContent(this.tooltipFormatInfo, true);\r\n text = (!this.customAriaText) ? (text) : (this.customAriaText);\r\n if (text.split(' - ').length === 2) {\r\n ariaValueText = text.split(' - ');\r\n }\r\n else {\r\n ariaValueText = [text, text];\r\n }\r\n this.setAriaAttributes(element);\r\n if (this.type !== 'Range') {\r\n attributes(element, { 'aria-valuenow': valuenow, 'aria-valuetext': text });\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n (!this.enableRtl) ? ((element === this.firstHandle) ?\r\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }) :\r\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] })) :\r\n ((element === this.firstHandle) ?\r\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[1], 'aria-valuetext': ariaValueText[1] }) :\r\n attributes(element, { 'aria-valuenow': valuenow.split(' - ')[0], 'aria-valuetext': ariaValueText[0] }));\r\n }\r\n };\r\n Slider.prototype.handleValueUpdate = function () {\r\n var hVal;\r\n if (this.type === 'Range') {\r\n if (this.activeHandle === 1) {\r\n hVal = this.handleVal1;\r\n }\r\n else {\r\n hVal = this.handleVal2;\r\n }\r\n }\r\n else {\r\n hVal = this.handleVal1;\r\n }\r\n return hVal;\r\n };\r\n Slider.prototype.getLimitCorrectedValues = function (value) {\r\n if (this.type === 'MinRange' || this.type === 'Default') {\r\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\r\n }\r\n else {\r\n if (this.activeHandle === 1) {\r\n value = (this.getLimitValueAndPosition(value, this.limits.minStart, this.limits.minEnd))[0];\r\n }\r\n else {\r\n value = (this.getLimitValueAndPosition(value, this.limits.maxStart, this.limits.maxEnd))[0];\r\n }\r\n }\r\n return value;\r\n };\r\n Slider.prototype.focusSliderElement = function () {\r\n if (!this.isElementFocused) {\r\n this.element.focus();\r\n this.isElementFocused = true;\r\n }\r\n };\r\n Slider.prototype.buttonClick = function (args) {\r\n this.focusSliderElement();\r\n var value;\r\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\r\n var hVal = this.handleValueUpdate();\r\n if ((args.keyCode === 40) || (args.keyCode === 37)\r\n || args.currentTarget.classList.contains(classNames.firstButton)) {\r\n // eslint-disable-next-line\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), true)) :\r\n (value = this.add(hVal, parseFloat(this.step.toString()), false));\r\n }\r\n else if ((args.keyCode === 38) || (args.keyCode === 39) ||\r\n args.currentTarget.classList.contains(classNames.secondButton)) {\r\n // eslint-disable-next-line\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.step.toString()), false)) :\r\n (value = this.add(hVal, parseFloat(this.step.toString()), true));\r\n }\r\n else if ((args.keyCode === 33\r\n || args.currentTarget.classList.contains(classNames.firstButton))) {\r\n // eslint-disable-next-line\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false)) :\r\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true));\r\n }\r\n else if ((args.keyCode === 34) ||\r\n args.currentTarget.classList.contains(classNames.secondButton)) {\r\n // eslint-disable-next-line\r\n enabledRTL ? (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), true)) :\r\n (value = this.add(hVal, parseFloat(this.ticks.largeStep.toString()), false));\r\n }\r\n else if ((args.keyCode === 36)) {\r\n value = parseFloat(this.min.toString());\r\n }\r\n else if ((args.keyCode === 35)) {\r\n value = parseFloat(this.max.toString());\r\n }\r\n if (this.limits.enabled) {\r\n value = this.getLimitCorrectedValues(value);\r\n }\r\n this.changeHandleValue(value);\r\n if (this.isMaterial && !this.tooltip.isVisible &&\r\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\r\n this.materialChange();\r\n }\r\n this.tooltipToggle(this.getHandle());\r\n this.getHandle().focus();\r\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\r\n EventHandler.add(this.firstBtn, 'mouseup touchend', this.buttonUp, this);\r\n }\r\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\r\n EventHandler.add(this.secondBtn, 'mouseup touchend', this.buttonUp, this);\r\n }\r\n };\r\n Slider.prototype.tooltipToggle = function (target) {\r\n if (this.isMaterialTooltip) {\r\n // eslint-disable-next-line\r\n !this.tooltipElement.classList.contains(classNames.materialTooltipOpen) ?\r\n this.openMaterialTooltip() : this.refreshTooltip(this.firstHandle);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n !this.tooltipElement ? this.openTooltip(target) : this.refreshTooltip(target);\r\n }\r\n };\r\n Slider.prototype.buttonUp = function (args) {\r\n if (args.currentTarget.classList.contains(classNames.firstButton)) {\r\n EventHandler.remove(this.firstBtn, 'mouseup touchend', this.buttonUp);\r\n }\r\n if (args.currentTarget.classList.contains(classNames.secondButton)) {\r\n EventHandler.remove(this.secondBtn, 'mouseup touchend', this.buttonUp);\r\n }\r\n };\r\n Slider.prototype.setRangeBar = function () {\r\n if (this.orientation === 'Horizontal') {\r\n if (this.type === 'MinRange') {\r\n // eslint-disable-next-line\r\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\r\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n this.enableRtl ? (this.rangeBar.style.right =\r\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\r\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\r\n }\r\n }\r\n else {\r\n if (this.type === 'MinRange') {\r\n this.rangeBar.style.bottom = '0px';\r\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\r\n }\r\n else {\r\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\r\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\r\n }\r\n }\r\n };\r\n Slider.prototype.checkValidValueAndPos = function (value) {\r\n value = this.checkHandleValue(value);\r\n value = this.checkHandlePosition(value);\r\n return value;\r\n };\r\n Slider.prototype.setLimitBarPositions = function (fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion) {\r\n if (this.orientation === 'Horizontal') {\r\n if (!this.enableRtl) {\r\n this.limitBarFirst.style.left = fromMinPostion + 'px';\r\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\r\n }\r\n else {\r\n this.limitBarFirst.style.right = fromMinPostion + 'px';\r\n this.limitBarFirst.style.width = (fromMaxpostion - fromMinPostion) + 'px';\r\n }\r\n }\r\n else {\r\n this.limitBarFirst.style.bottom = fromMinPostion + 'px';\r\n this.limitBarFirst.style.height = (fromMaxpostion - fromMinPostion) + 'px';\r\n }\r\n if (this.type === 'Range') {\r\n if (this.orientation === 'Horizontal') {\r\n if (!this.enableRtl) {\r\n this.limitBarSecond.style.left = toMinPostion + 'px';\r\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\r\n }\r\n else {\r\n this.limitBarSecond.style.right = toMinPostion + 'px';\r\n this.limitBarSecond.style.width = (toMaxpostion - toMinPostion) + 'px';\r\n }\r\n }\r\n else {\r\n this.limitBarSecond.style.bottom = toMinPostion + 'px';\r\n this.limitBarSecond.style.height = (toMaxpostion - toMinPostion) + 'px';\r\n }\r\n }\r\n };\r\n Slider.prototype.setLimitBar = function () {\r\n if (this.type === 'Default' || this.type === 'MinRange') {\r\n var fromPosition = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\r\n fromPosition = this.checkValidValueAndPos(fromPosition);\r\n var toPosition = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\r\n toPosition = this.checkValidValueAndPos(toPosition);\r\n this.setLimitBarPositions(fromPosition, toPosition);\r\n }\r\n else if (this.type === 'Range') {\r\n var fromMinPostion = (this.getLimitValueAndPosition(this.limits.minStart, this.limits.minStart, this.limits.minEnd, true))[0];\r\n fromMinPostion = this.checkValidValueAndPos(fromMinPostion);\r\n var fromMaxpostion = (this.getLimitValueAndPosition(this.limits.minEnd, this.limits.minStart, this.limits.minEnd, true))[0];\r\n fromMaxpostion = this.checkValidValueAndPos(fromMaxpostion);\r\n var toMinPostion = (this.getLimitValueAndPosition(this.limits.maxStart, this.limits.maxStart, this.limits.maxEnd, true))[0];\r\n toMinPostion = this.checkValidValueAndPos(toMinPostion);\r\n var toMaxpostion = (this.getLimitValueAndPosition(this.limits.maxEnd, this.limits.maxStart, this.limits.maxEnd, true))[0];\r\n toMaxpostion = this.checkValidValueAndPos(toMaxpostion);\r\n this.setLimitBarPositions(fromMinPostion, fromMaxpostion, toMinPostion, toMaxpostion);\r\n }\r\n };\r\n Slider.prototype.getLimitValueAndPosition = function (currentValue, minValue, maxValue, limitBar) {\r\n if (isNullOrUndefined(minValue)) {\r\n minValue = this.min;\r\n if (isNullOrUndefined(currentValue) && limitBar) {\r\n currentValue = minValue;\r\n }\r\n }\r\n if (isNullOrUndefined(maxValue)) {\r\n maxValue = this.max;\r\n if (isNullOrUndefined(currentValue) && limitBar) {\r\n currentValue = maxValue;\r\n }\r\n }\r\n if (currentValue < minValue) {\r\n currentValue = minValue;\r\n }\r\n if (currentValue > maxValue) {\r\n currentValue = maxValue;\r\n }\r\n return [currentValue, this.checkHandlePosition(currentValue)];\r\n };\r\n Slider.prototype.setValue = function () {\r\n if (!isNullOrUndefined(this.customValues) && this.customValues.length > 0) {\r\n this.min = 0;\r\n this.max = this.customValues.length - 1;\r\n this.setBarColor();\r\n }\r\n this.setAriaAttributes(this.firstHandle);\r\n this.handleVal1 = isNullOrUndefined(this.value) ? this.checkHandleValue(parseFloat(this.min.toString())) :\r\n this.checkHandleValue(parseFloat(this.value.toString()));\r\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\r\n this.preHandlePos1 = this.handlePos1;\r\n // eslint-disable-next-line\r\n isNullOrUndefined(this.activeHandle) ? (this.type === 'Range' ? this.activeHandle = 2 : this.activeHandle = 1) :\r\n // eslint-disable-next-line no-self-assign\r\n this.activeHandle = this.activeHandle;\r\n if (this.type === 'Default' || this.type === 'MinRange') {\r\n if (this.limits.enabled) {\r\n var values = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\r\n this.handleVal1 = values[0];\r\n this.handlePos1 = values[1];\r\n this.preHandlePos1 = this.handlePos1;\r\n }\r\n this.setHandlePosition(null);\r\n this.handleStart();\r\n this.value = this.handleVal1;\r\n this.setAriaAttrValue(this.firstHandle);\r\n this.changeEvent('changed', null);\r\n }\r\n else {\r\n this.validateRangeValue();\r\n }\r\n if (this.type !== 'Default') {\r\n this.setRangeBar();\r\n }\r\n if (this.limits.enabled) {\r\n this.setLimitBar();\r\n }\r\n };\r\n Slider.prototype.rangeValueUpdate = function () {\r\n if (this.value === null || typeof (this.value) !== 'object') {\r\n this.value = [parseFloat(formatUnit(this.min)), parseFloat(formatUnit(this.max))];\r\n }\r\n };\r\n Slider.prototype.validateRangeValue = function () {\r\n this.rangeValueUpdate();\r\n this.setRangeValue();\r\n };\r\n Slider.prototype.modifyZindex = function () {\r\n if (this.type === 'Range') {\r\n if (this.activeHandle === 1) {\r\n this.firstHandle.style.zIndex = (this.zIndex + 4) + '';\r\n this.secondHandle.style.zIndex = (this.zIndex + 3) + '';\r\n }\r\n else {\r\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\r\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\r\n }\r\n }\r\n else if (this.isMaterialTooltip && this.tooltipElement) {\r\n this.tooltipElement.style.zIndex = getZindexPartial(this.element) + '';\r\n }\r\n };\r\n Slider.prototype.setHandlePosition = function (event) {\r\n var _this = this;\r\n var handle;\r\n var pos = (this.activeHandle === 1) ? this.handlePos1 : this.handlePos2;\r\n if (this.isMaterialTooltip) {\r\n handle = [this.firstHandle, this.materialHandle];\r\n }\r\n else {\r\n handle = [this.getHandle()];\r\n }\r\n this.handleStart();\r\n handle.forEach(function (handle) {\r\n if (_this.orientation === 'Horizontal') {\r\n // eslint-disable-next-line\r\n _this.enableRtl ? (handle.style.right =\r\n pos + \"px\") : (handle.style.left = pos + \"px\");\r\n }\r\n else {\r\n handle.style.bottom = pos + \"px\";\r\n }\r\n });\r\n this.changeEvent('change', event);\r\n };\r\n Slider.prototype.getHandle = function () {\r\n return (this.activeHandle === 1) ? this.firstHandle : this.secondHandle;\r\n };\r\n Slider.prototype.setRangeValue = function () {\r\n this.updateRangeValue();\r\n this.activeHandle = 1;\r\n this.setHandlePosition(null);\r\n this.activeHandle = 2;\r\n this.setHandlePosition(null);\r\n this.activeHandle = 1;\r\n };\r\n Slider.prototype.changeEvent = function (eventName, e) {\r\n var previous = eventName === 'change' ? this.previousVal : this.previousChanged;\r\n if (this.type !== 'Range') {\r\n this.setProperties({ 'value': this.handleVal1 }, true);\r\n if (previous !== this.value && (!this.isMaterialTooltip || !this.initialTooltip)) {\r\n this.trigger(eventName, this.changeEventArgs(eventName, e));\r\n this.initialTooltip = true;\r\n this.setPreviousVal(eventName, this.value);\r\n }\r\n this.setAriaAttrValue(this.firstHandle);\r\n }\r\n else {\r\n var value = this.value = [this.handleVal1, this.handleVal2];\r\n this.setProperties({ 'value': value }, true);\r\n if (previous.length === this.value.length\r\n && this.value[0] !== previous[0] || this.value[1] !== previous[1]) {\r\n this.initialTooltip = false;\r\n this.trigger(eventName, this.changeEventArgs(eventName, e));\r\n this.initialTooltip = true;\r\n this.setPreviousVal(eventName, this.value);\r\n }\r\n this.setAriaAttrValue(this.getHandle());\r\n }\r\n this.hiddenInput.value = this.value.toString();\r\n };\r\n Slider.prototype.changeEventArgs = function (eventName, e) {\r\n var eventArgs;\r\n if (this.tooltip.isVisible && this.tooltipObj && this.initialTooltip) {\r\n this.tooltipValue();\r\n eventArgs = {\r\n value: this.value,\r\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\r\n action: eventName, text: this.tooltipObj.content, isInteracted: isNullOrUndefined(e) ? false : true\r\n };\r\n }\r\n else {\r\n eventArgs = {\r\n value: this.value,\r\n previousValue: eventName === 'change' ? this.previousVal : this.previousChanged,\r\n action: eventName, text: isNullOrUndefined(this.ticksFormatInfo.format) ? this.value.toString() :\r\n (this.type !== 'Range' ? this.formatString(this.value, this.ticksFormatInfo).formatString :\r\n (this.formatString(this.value[0], this.ticksFormatInfo).formatString + ' - ' +\r\n this.formatString(this.value[1], this.ticksFormatInfo).formatString)),\r\n isInteracted: isNullOrUndefined(e) ? false : true\r\n };\r\n }\r\n return eventArgs;\r\n };\r\n Slider.prototype.setPreviousVal = function (eventName, value) {\r\n if (eventName === 'change') {\r\n this.previousVal = value;\r\n }\r\n else {\r\n this.previousChanged = value;\r\n }\r\n };\r\n Slider.prototype.updateRangeValue = function () {\r\n var values = this.value.toString().split(',').map(Number);\r\n if ((this.enableRtl && this.orientation !== 'Vertical') || this.rtl) {\r\n this.value = [values[1], values[0]];\r\n }\r\n else {\r\n this.value = [values[0], values[1]];\r\n }\r\n if (this.enableRtl && this.orientation !== 'Vertical') {\r\n this.handleVal1 = this.checkHandleValue(this.value[1]);\r\n this.handleVal2 = this.checkHandleValue(this.value[0]);\r\n }\r\n else {\r\n this.handleVal1 = this.checkHandleValue(this.value[0]);\r\n this.handleVal2 = this.checkHandleValue(this.value[1]);\r\n }\r\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\r\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\r\n if (this.handlePos1 > this.handlePos2) {\r\n this.handlePos1 = this.handlePos2;\r\n this.handleVal1 = this.handleVal2;\r\n }\r\n this.preHandlePos1 = this.handlePos1;\r\n this.preHandlePos2 = this.handlePos2;\r\n if (this.limits.enabled) {\r\n this.activeHandle = 1;\r\n var values_1 = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\r\n this.handleVal1 = values_1[0];\r\n this.handlePos1 = values_1[1];\r\n this.preHandlePos1 = this.handlePos1;\r\n this.activeHandle = 2;\r\n values_1 = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\r\n this.handleVal2 = values_1[0];\r\n this.handlePos2 = values_1[1];\r\n this.preHandlePos2 = this.handlePos2;\r\n }\r\n };\r\n Slider.prototype.checkHandlePosition = function (value) {\r\n var pos;\r\n value = (100 *\r\n (value - (parseFloat(formatUnit(this.min))))) / ((parseFloat(formatUnit(this.max))) - (parseFloat(formatUnit(this.min))));\r\n if (this.orientation === 'Horizontal') {\r\n pos = this.element.getBoundingClientRect().width * (value / 100);\r\n }\r\n else {\r\n pos = this.element.getBoundingClientRect().height * (value / 100);\r\n }\r\n if (((parseFloat(formatUnit(this.max))) === (parseFloat(formatUnit(this.min))))) {\r\n if (this.orientation === 'Horizontal') {\r\n pos = this.element.getBoundingClientRect().width;\r\n }\r\n else {\r\n pos = this.element.getBoundingClientRect().height;\r\n }\r\n }\r\n return pos;\r\n };\r\n Slider.prototype.checkHandleValue = function (value) {\r\n if (this.min > this.max) {\r\n this.min = this.max;\r\n }\r\n if (this.min === this.max) {\r\n return (parseFloat(formatUnit(this.max)));\r\n }\r\n var handle = this.tempStartEnd();\r\n if (value < handle.start) {\r\n value = handle.start;\r\n }\r\n else if (value > handle.end) {\r\n value = handle.end;\r\n }\r\n return value;\r\n };\r\n /**\r\n * It is used to reposition slider.\r\n * @returns void\r\n */\r\n Slider.prototype.reposition = function () {\r\n var _this = this;\r\n this.firstHandle.style.transition = 'none';\r\n if (this.type !== 'Default') {\r\n this.rangeBar.style.transition = 'none';\r\n }\r\n if (this.type === 'Range') {\r\n this.secondHandle.style.transition = 'none';\r\n }\r\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\r\n if (this.handleVal2) {\r\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\r\n }\r\n if (this.orientation === 'Horizontal') {\r\n // eslint-disable-next-line\r\n this.enableRtl ? this.firstHandle.style.right =\r\n this.handlePos1 + \"px\" : this.firstHandle.style.left = this.handlePos1 + \"px\";\r\n if (this.isMaterialTooltip) {\r\n // eslint-disable-next-line\r\n this.enableRtl ? this.materialHandle.style.right =\r\n this.handlePos1 + \"px\" : this.materialHandle.style.left = this.handlePos1 + \"px\";\r\n }\r\n if (this.type === 'MinRange') {\r\n // eslint-disable-next-line\r\n this.enableRtl ? (this.rangeBar.style.right = '0px') : (this.rangeBar.style.left = '0px');\r\n setStyleAttribute(this.rangeBar, { 'width': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\r\n }\r\n else if (this.type === 'Range') {\r\n // eslint-disable-next-line\r\n this.enableRtl ? this.secondHandle.style.right =\r\n this.handlePos2 + \"px\" : this.secondHandle.style.left = this.handlePos2 + \"px\";\r\n // eslint-disable-next-line\r\n this.enableRtl ? (this.rangeBar.style.right =\r\n this.handlePos1 + 'px') : (this.rangeBar.style.left = this.handlePos1 + 'px');\r\n setStyleAttribute(this.rangeBar, { 'width': this.handlePos2 - this.handlePos1 + 'px' });\r\n }\r\n }\r\n else {\r\n this.firstHandle.style.bottom = this.handlePos1 + \"px\";\r\n if (this.isMaterialTooltip) {\r\n this.materialHandle.style.bottom = this.handlePos1 + \"px\";\r\n }\r\n if (this.type === 'MinRange') {\r\n this.rangeBar.style.bottom = '0px';\r\n setStyleAttribute(this.rangeBar, { 'height': isNullOrUndefined(this.handlePos1) ? 0 : this.handlePos1 + 'px' });\r\n }\r\n else if (this.type === 'Range') {\r\n this.secondHandle.style.bottom = this.handlePos2 + \"px\";\r\n this.rangeBar.style.bottom = this.handlePos1 + 'px';\r\n setStyleAttribute(this.rangeBar, { 'height': this.handlePos2 - this.handlePos1 + 'px' });\r\n }\r\n }\r\n if (this.limits.enabled) {\r\n this.setLimitBar();\r\n }\r\n if (this.ticks.placement !== 'None' && this.ul) {\r\n this.removeElement(this.ul);\r\n this.ul = undefined;\r\n this.renderScale();\r\n }\r\n this.handleStart();\r\n if (!this.tooltip.isVisible) {\r\n setTimeout(function () {\r\n _this.firstHandle.style.transition = _this.scaleTransform;\r\n if (_this.type === 'Range') {\r\n _this.secondHandle.style.transition = _this.scaleTransform;\r\n }\r\n });\r\n }\r\n this.refreshTooltip(this.tooltipTarget);\r\n this.setBarColor();\r\n };\r\n Slider.prototype.changeHandleValue = function (value) {\r\n var position = null;\r\n if (this.activeHandle === 1) {\r\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\r\n this.handleVal1 = this.checkHandleValue(value);\r\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\r\n if (this.type === 'Range' && this.handlePos1 > this.handlePos2) {\r\n this.handlePos1 = this.handlePos2;\r\n this.handleVal1 = this.handleVal2;\r\n }\r\n if (this.handlePos1 !== this.preHandlePos1) {\r\n position = this.preHandlePos1 = this.handlePos1;\r\n }\r\n }\r\n this.modifyZindex();\r\n }\r\n else {\r\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\r\n this.handleVal2 = this.checkHandleValue(value);\r\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\r\n if (this.type === 'Range' && this.handlePos2 < this.handlePos1) {\r\n this.handlePos2 = this.handlePos1;\r\n this.handleVal2 = this.handleVal1;\r\n }\r\n if (this.handlePos2 !== this.preHandlePos2) {\r\n position = this.preHandlePos2 = this.handlePos2;\r\n }\r\n }\r\n this.modifyZindex();\r\n }\r\n if (position !== null) {\r\n if (this.type !== 'Default') {\r\n this.setRangeBar();\r\n }\r\n this.setHandlePosition(null);\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Slider.prototype.tempStartEnd = function () {\r\n if (this.min > this.max) {\r\n return {\r\n start: this.max,\r\n end: this.min\r\n };\r\n }\r\n else {\r\n return {\r\n start: this.min,\r\n end: this.max\r\n };\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Slider.prototype.xyToPosition = function (position) {\r\n var pos;\r\n if (this.min === this.max) {\r\n return 100;\r\n }\r\n if (this.orientation === 'Horizontal') {\r\n var left = position.x - this.element.getBoundingClientRect().left;\r\n var num = this.element.offsetWidth / 100;\r\n this.val = (left / num);\r\n }\r\n else {\r\n var top_1 = position.y - this.element.getBoundingClientRect().top;\r\n var num = this.element.offsetHeight / 100;\r\n this.val = 100 - (top_1 / num);\r\n }\r\n var val = this.stepValueCalculation(this.val);\r\n if (val < 0) {\r\n val = 0;\r\n }\r\n else if (val > 100) {\r\n val = 100;\r\n }\r\n if (this.enableRtl && this.orientation !== 'Vertical') {\r\n val = 100 - val;\r\n }\r\n if (this.orientation === 'Horizontal') {\r\n pos = this.element.getBoundingClientRect().width * (val / 100);\r\n }\r\n else {\r\n pos = this.element.getBoundingClientRect().height * (val / 100);\r\n }\r\n return pos;\r\n };\r\n Slider.prototype.stepValueCalculation = function (value) {\r\n if (this.step === 0) {\r\n this.step = 1;\r\n }\r\n var percentStep = (parseFloat(formatUnit(this.step))) / ((parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min))) / 100);\r\n var remain = value % Math.abs(percentStep);\r\n if (remain !== 0) {\r\n if ((percentStep / 2) > remain) {\r\n value -= remain;\r\n }\r\n else {\r\n value += Math.abs(percentStep) - remain;\r\n }\r\n }\r\n return value;\r\n };\r\n Slider.prototype.add = function (a, b, addition) {\r\n var precision;\r\n var x = Math.pow(10, precision || 3);\r\n var val;\r\n if (addition) {\r\n val = (Math.round(a * x) + Math.round(b * x)) / x;\r\n }\r\n else {\r\n val = (Math.round(a * x) - Math.round(b * x)) / x;\r\n }\r\n return val;\r\n };\r\n Slider.prototype.positionToValue = function (pos) {\r\n var val;\r\n var diff = parseFloat(formatUnit(this.max)) - parseFloat(formatUnit(this.min));\r\n if (this.orientation === 'Horizontal') {\r\n val = (pos / this.element.getBoundingClientRect().width) * diff;\r\n }\r\n else {\r\n val = (pos / this.element.getBoundingClientRect().height) * diff;\r\n }\r\n var total = this.add(val, parseFloat(this.min.toString()), true);\r\n return (total);\r\n };\r\n Slider.prototype.sliderBarClick = function (evt) {\r\n evt.preventDefault();\r\n // eslint-disable-next-line\r\n var pos;\r\n if (evt.type === 'mousedown' || evt.type === 'mouseup' || evt.type === 'click') {\r\n pos = { x: evt.clientX, y: evt.clientY };\r\n }\r\n else if (evt.type === 'touchend' || evt.type === 'touchstart') {\r\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\r\n }\r\n var handlepos = this.xyToPosition(pos);\r\n var handleVal = this.positionToValue(handlepos);\r\n if (this.type === 'Range' && (this.handlePos2 - handlepos) < (handlepos - this.handlePos1)) {\r\n this.activeHandle = 2;\r\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\r\n if (this.limits.enabled) {\r\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\r\n handleVal = value[0];\r\n handlepos = value[1];\r\n }\r\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\r\n this.handlePos2 = this.preHandlePos2 = handlepos;\r\n this.handleVal2 = handleVal;\r\n }\r\n this.modifyZindex();\r\n this.secondHandle.focus();\r\n }\r\n else {\r\n this.activeHandle = 1;\r\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\r\n if (this.limits.enabled) {\r\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\r\n handleVal = value[0];\r\n handlepos = value[1];\r\n }\r\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\r\n this.handlePos1 = this.preHandlePos1 = handlepos;\r\n this.handleVal1 = handleVal;\r\n }\r\n this.modifyZindex();\r\n this.firstHandle.focus();\r\n }\r\n if (this.isMaterialTooltip) {\r\n this.tooltipElement.classList.add(classNames.materialTooltipActive);\r\n }\r\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\r\n if (focusedElement && this.getHandle() !== focusedElement) {\r\n focusedElement.classList.remove(classNames.sliderTabHandle);\r\n }\r\n var handle = this.activeHandle === 1 ? this.firstHandle : this.secondHandle;\r\n if (evt.target === handle) {\r\n if (this.isMaterial && !this.tooltip.isVisible &&\r\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\r\n this.materialChange();\r\n }\r\n this.sliderBarUp(evt);\r\n this.tooltipToggle(this.getHandle());\r\n return;\r\n }\r\n if (!this.checkRepeatedValue(handleVal)) {\r\n return;\r\n }\r\n var transition = this.isMaterial && this.tooltip.isVisible ?\r\n this.transitionOnMaterialTooltip : this.transition;\r\n this.getHandle().style.transition = transition.handle;\r\n if (this.type !== 'Default') {\r\n this.rangeBar.style.transition = transition.rangeBar;\r\n }\r\n this.setHandlePosition(evt);\r\n if (this.isMaterialTooltip) {\r\n this.initialTooltip = false;\r\n }\r\n this.changeEvent('changed', evt);\r\n if (this.type !== 'Default') {\r\n this.setRangeBar();\r\n }\r\n };\r\n Slider.prototype.handleValueAdjust = function (handleValue, assignValue, handleNumber) {\r\n if (handleNumber === 1) {\r\n this.handleVal1 = assignValue;\r\n this.handleVal2 = this.handleVal1 + this.minDiff;\r\n }\r\n else if (handleNumber === 2) {\r\n this.handleVal2 = assignValue;\r\n this.handleVal1 = this.handleVal2 - this.minDiff;\r\n }\r\n this.handlePos1 = this.checkHandlePosition(this.handleVal1);\r\n this.handlePos2 = this.checkHandlePosition(this.handleVal2);\r\n };\r\n Slider.prototype.dragRangeBarMove = function (event) {\r\n var _a, _b;\r\n if (event.type !== 'touchmove') {\r\n event.preventDefault();\r\n }\r\n this.rangeBarDragged = true;\r\n var pos;\r\n this.rangeBar.style.transition = 'none';\r\n this.firstHandle.style.transition = 'none';\r\n this.secondHandle.style.transition = 'none';\r\n var xPostion;\r\n var yPostion;\r\n if (event.type === 'mousemove') {\r\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\r\n }\r\n else {\r\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\r\n }\r\n if (!(this.limits.enabled && this.limits.startHandleFixed) && !(this.limits.enabled && this.limits.endHandleFixed)) {\r\n if (!this.enableRtl) {\r\n pos = { x: xPostion - this.firstPartRemain, y: yPostion + this.secondPartRemain };\r\n }\r\n else {\r\n pos = { x: xPostion + this.secondPartRemain, y: yPostion + this.secondPartRemain };\r\n }\r\n this.handlePos1 = this.xyToPosition(pos);\r\n this.handleVal1 = this.positionToValue(this.handlePos1);\r\n if (!this.enableRtl) {\r\n pos = { x: xPostion + this.secondPartRemain, y: yPostion - this.firstPartRemain };\r\n }\r\n else {\r\n pos = { x: xPostion - this.firstPartRemain, y: yPostion - this.firstPartRemain };\r\n }\r\n this.handlePos2 = this.xyToPosition(pos);\r\n this.handleVal2 = this.positionToValue(this.handlePos2);\r\n if (this.limits.enabled) {\r\n var value = this.getLimitValueAndPosition(this.handleVal1, this.limits.minStart, this.limits.minEnd);\r\n this.handleVal1 = value[0];\r\n this.handlePos1 = value[1];\r\n if (this.handleVal1 === this.limits.minEnd) {\r\n this.handleValueAdjust(this.handleVal1, this.limits.minEnd, 1);\r\n }\r\n if (this.handleVal1 === this.limits.minStart) {\r\n this.handleValueAdjust(this.handleVal1, this.limits.minStart, 1);\r\n }\r\n value = this.getLimitValueAndPosition(this.handleVal2, this.limits.maxStart, this.limits.maxEnd);\r\n this.handleVal2 = value[0];\r\n this.handlePos2 = value[1];\r\n if (this.handleVal2 === this.limits.maxStart) {\r\n this.handleValueAdjust(this.handleVal2, this.limits.maxStart, 2);\r\n }\r\n if (this.handleVal2 === this.limits.maxEnd) {\r\n this.handleValueAdjust(this.handleVal2, this.limits.maxEnd, 2);\r\n }\r\n }\r\n if (this.handleVal2 === this.max) {\r\n this.handleValueAdjust(this.handleVal2, this.max, 2);\r\n }\r\n if (this.handleVal1 === this.min) {\r\n this.handleValueAdjust(this.handleVal1, this.min, 1);\r\n }\r\n }\r\n this.activeHandle = 1;\r\n this.setHandlePosition(event);\r\n this.activeHandle = 2;\r\n this.setHandlePosition(event);\r\n this.tooltipToggle(this.rangeBar);\r\n this.setRangeBar();\r\n };\r\n Slider.prototype.sliderBarUp = function (event) {\r\n this.changeEvent('changed', event);\r\n this.handleFocusOut();\r\n this.firstHandle.classList.remove(classNames.sliderActiveHandle);\r\n if (this.type === 'Range') {\r\n this.initialTooltip = false;\r\n this.secondHandle.classList.remove(classNames.sliderActiveHandle);\r\n }\r\n this.closeTooltip();\r\n if (this.isMaterial) {\r\n this.getHandle().classList.remove('e-large-thumb-size');\r\n if (this.isMaterialTooltip) {\r\n this.tooltipElement.classList.remove(classNames.materialTooltipActive);\r\n }\r\n }\r\n EventHandler.remove(document, 'mousemove touchmove', this.sliderBarMove);\r\n EventHandler.remove(document, 'mouseup touchend', this.sliderBarUp);\r\n };\r\n Slider.prototype.sliderBarMove = function (evt) {\r\n if (evt.type !== 'touchmove') {\r\n evt.preventDefault();\r\n }\r\n var pos;\r\n if (evt.type === 'mousemove') {\r\n pos = { x: evt.clientX, y: evt.clientY };\r\n }\r\n else {\r\n pos = { x: evt.changedTouches[0].clientX, y: evt.changedTouches[0].clientY };\r\n }\r\n var handlepos = this.xyToPosition(pos);\r\n var handleVal = this.positionToValue(handlepos);\r\n handlepos = Math.round(handlepos);\r\n if (this.type !== 'Range' && this.activeHandle === 1) {\r\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\r\n if (this.limits.enabled) {\r\n var valueAndPostion = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\r\n handlepos = valueAndPostion[1];\r\n handleVal = valueAndPostion[0];\r\n }\r\n this.handlePos1 = handlepos;\r\n this.handleVal1 = handleVal;\r\n }\r\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\r\n }\r\n if (this.type === 'Range') {\r\n if (this.activeHandle === 1) {\r\n this.firstHandle.classList.add(classNames.sliderActiveHandle);\r\n if (!(this.limits.enabled && this.limits.startHandleFixed)) {\r\n if (handlepos > this.handlePos2) {\r\n handlepos = this.handlePos2;\r\n handleVal = this.handleVal2;\r\n }\r\n if (handlepos !== this.preHandlePos1) {\r\n if (this.limits.enabled) {\r\n var value = this.getLimitValueAndPosition(handleVal, this.limits.minStart, this.limits.minEnd);\r\n handleVal = value[0];\r\n handlepos = value[1];\r\n }\r\n this.handlePos1 = this.preHandlePos1 = handlepos;\r\n this.handleVal1 = handleVal;\r\n this.activeHandle = 1;\r\n }\r\n }\r\n }\r\n else if (this.activeHandle === 2) {\r\n this.secondHandle.classList.add(classNames.sliderActiveHandle);\r\n if (!(this.limits.enabled && this.limits.endHandleFixed)) {\r\n if (handlepos < this.handlePos1) {\r\n handlepos = this.handlePos1;\r\n handleVal = this.handleVal1;\r\n }\r\n if (handlepos !== this.preHandlePos2) {\r\n if (this.limits.enabled) {\r\n var value = this.getLimitValueAndPosition(handleVal, this.limits.maxStart, this.limits.maxEnd);\r\n handleVal = value[0];\r\n handlepos = value[1];\r\n }\r\n this.handlePos2 = this.preHandlePos2 = handlepos;\r\n this.handleVal2 = handleVal;\r\n this.activeHandle = 2;\r\n }\r\n }\r\n }\r\n }\r\n if (!this.checkRepeatedValue(handleVal)) {\r\n return;\r\n }\r\n this.getHandle().style.transition = this.scaleTransform;\r\n if (this.type !== 'Default') {\r\n this.rangeBar.style.transition = 'none';\r\n }\r\n this.setHandlePosition(evt);\r\n if (this.isMaterial && !this.tooltip.isVisible &&\r\n !this.getHandle().classList.contains(classNames.sliderTabHandle)) {\r\n this.materialChange();\r\n }\r\n this.tooltipToggle(this.getHandle());\r\n if (this.type !== 'Default') {\r\n this.setRangeBar();\r\n }\r\n };\r\n Slider.prototype.dragRangeBarUp = function (event) {\r\n if (!this.rangeBarDragged) {\r\n this.focusSliderElement();\r\n this.sliderBarClick(event);\r\n }\r\n else {\r\n this.isDragComplete = true;\r\n }\r\n this.changeEvent('changed', event);\r\n this.closeTooltip();\r\n EventHandler.remove(document, 'mousemove touchmove', this.dragRangeBarMove);\r\n EventHandler.remove(document, 'mouseup touchend', this.dragRangeBarUp);\r\n this.rangeBarDragged = false;\r\n };\r\n Slider.prototype.checkRepeatedValue = function (currentValue) {\r\n if (this.type === 'Range') {\r\n var previousVal = this.enableRtl && this.orientation !== 'Vertical' ? (this.activeHandle === 1 ?\r\n this.previousVal[1] : this.previousVal[0]) :\r\n (this.activeHandle === 1 ? this.previousVal[0] : this.previousVal[1]);\r\n if (currentValue === previousVal) {\r\n return 0;\r\n }\r\n }\r\n else {\r\n if (currentValue === this.previousVal) {\r\n return 0;\r\n }\r\n }\r\n return 1;\r\n };\r\n Slider.prototype.refreshTooltip = function (target) {\r\n if (this.tooltip.isVisible && this.tooltipObj) {\r\n this.tooltipValue();\r\n if (target) {\r\n this.tooltipObj.refresh(target);\r\n this.tooltipTarget = target;\r\n }\r\n }\r\n };\r\n Slider.prototype.openTooltip = function (target) {\r\n if (this.tooltip.isVisible && this.tooltipObj && !this.isMaterialTooltip) {\r\n this.tooltipValue();\r\n this.tooltipObj.open(target);\r\n this.tooltipTarget = target;\r\n }\r\n };\r\n Slider.prototype.closeTooltip = function () {\r\n if (this.tooltip.isVisible && this.tooltipObj && this.tooltip.showOn !== 'Always' && !this.isMaterialTooltip) {\r\n this.tooltipValue();\r\n this.tooltipObj.close();\r\n this.tooltipTarget = undefined;\r\n }\r\n };\r\n Slider.prototype.keyDown = function (event) {\r\n switch (event.keyCode) {\r\n case 37:\r\n case 38:\r\n case 39:\r\n case 40:\r\n case 33:\r\n case 34:\r\n case 36:\r\n case 35:\r\n event.preventDefault();\r\n this.buttonClick(event);\r\n break;\r\n }\r\n };\r\n Slider.prototype.wireButtonEvt = function (destroy) {\r\n if (!destroy) {\r\n EventHandler.add(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\r\n EventHandler.add(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut, this);\r\n EventHandler.add(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\r\n EventHandler.add(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\r\n EventHandler.add(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse, this);\r\n EventHandler.add(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp, this);\r\n EventHandler.add(this.firstBtn, 'focusout', this.sliderFocusOut, this);\r\n EventHandler.add(this.secondBtn, 'focusout', this.sliderFocusOut, this);\r\n }\r\n else {\r\n EventHandler.remove(this.firstBtn, 'mouseleave touchleave', this.buttonFocusOut);\r\n EventHandler.remove(this.secondBtn, 'mouseleave touchleave', this.buttonFocusOut);\r\n EventHandler.remove(this.firstBtn, 'mousedown touchstart', this.repeatHandlerMouse);\r\n EventHandler.remove(this.firstBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\r\n EventHandler.remove(this.secondBtn, 'mousedown touchstart', this.repeatHandlerMouse);\r\n EventHandler.remove(this.secondBtn, 'mouseup mouseleave touchup touchend', this.repeatHandlerUp);\r\n EventHandler.remove(this.firstBtn, 'focusout', this.sliderFocusOut);\r\n EventHandler.remove(this.secondBtn, 'focusout', this.sliderFocusOut);\r\n }\r\n };\r\n Slider.prototype.rangeBarMousedown = function (event) {\r\n var _a, _b;\r\n event.preventDefault();\r\n this.focusSliderElement();\r\n if (this.type === 'Range' && this.drag && event.target === this.rangeBar) {\r\n var xPostion = void 0;\r\n var yPostion = void 0;\r\n if (event.type === 'mousedown') {\r\n _a = [event.clientX, event.clientY], xPostion = _a[0], yPostion = _a[1];\r\n }\r\n else if (event.type === 'touchstart') {\r\n _b = [event.changedTouches[0].clientX, event.changedTouches[0].clientY], xPostion = _b[0], yPostion = _b[1];\r\n }\r\n if (this.orientation === 'Horizontal') {\r\n this.firstPartRemain = xPostion - this.rangeBar.getBoundingClientRect().left;\r\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().right - xPostion;\r\n }\r\n else {\r\n this.firstPartRemain = yPostion - this.rangeBar.getBoundingClientRect().top;\r\n this.secondPartRemain = this.rangeBar.getBoundingClientRect().bottom - yPostion;\r\n }\r\n this.minDiff = this.handleVal2 - this.handleVal1;\r\n this.tooltipToggle(this.rangeBar);\r\n var focusedElement = this.element.querySelector('.' + classNames.sliderTabHandle);\r\n if (focusedElement) {\r\n focusedElement.classList.remove(classNames.sliderTabHandle);\r\n }\r\n EventHandler.add(document, 'mousemove touchmove', this.dragRangeBarMove, this);\r\n EventHandler.add(document, 'mouseup touchend', this.dragRangeBarUp, this);\r\n }\r\n };\r\n Slider.prototype.elementClick = function (event) {\r\n if (this.isDragComplete) {\r\n this.isDragComplete = false;\r\n return;\r\n }\r\n event.preventDefault();\r\n this.focusSliderElement();\r\n this.sliderBarClick(event);\r\n };\r\n Slider.prototype.wireEvents = function () {\r\n this.onresize = this.reposition.bind(this);\r\n window.addEventListener('resize', this.onresize);\r\n if (this.enabled && !this.readonly) {\r\n EventHandler.add(this.element, 'click', this.elementClick, this);\r\n if (this.type === 'Range' && this.drag) {\r\n EventHandler.add(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown, this);\r\n }\r\n EventHandler.add(this.sliderContainer, 'keydown', this.keyDown, this);\r\n EventHandler.add(this.sliderContainer, 'keyup', this.keyUp, this);\r\n EventHandler.add(this.element, 'focusout', this.sliderFocusOut, this);\r\n EventHandler.add(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover, this);\r\n this.wireFirstHandleEvt(false);\r\n if (this.type === 'Range') {\r\n this.wireSecondHandleEvt(false);\r\n }\r\n if (this.showButtons) {\r\n this.wireButtonEvt(false);\r\n }\r\n this.wireMaterialTooltipEvent(false);\r\n if (this.isForm) {\r\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\r\n }\r\n }\r\n };\r\n Slider.prototype.unwireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.elementClick);\r\n if (this.type === 'Range' && this.drag) {\r\n EventHandler.remove(this.rangeBar, 'mousedown touchstart', this.rangeBarMousedown);\r\n }\r\n EventHandler.remove(this.sliderContainer, 'keydown', this.keyDown);\r\n EventHandler.remove(this.sliderContainer, 'keyup', this.keyUp);\r\n EventHandler.remove(this.element, 'focusout', this.sliderFocusOut);\r\n EventHandler.remove(this.sliderContainer, 'mouseover mouseout touchstart touchend', this.hover);\r\n this.wireFirstHandleEvt(true);\r\n if (this.type === 'Range') {\r\n this.wireSecondHandleEvt(true);\r\n }\r\n if (this.showButtons) {\r\n this.wireButtonEvt(true);\r\n }\r\n this.wireMaterialTooltipEvent(true);\r\n EventHandler.remove(this.element, 'reset', this.formResetHandler);\r\n };\r\n Slider.prototype.formResetHandler = function () {\r\n this.setProperties({ 'value': this.formResetValue }, true);\r\n this.setValue();\r\n };\r\n Slider.prototype.keyUp = function (event) {\r\n if (event.keyCode === 9 && event.target.classList.contains(classNames.sliderHandle)) {\r\n this.focusSliderElement();\r\n if (!event.target.classList.contains(classNames.sliderTabHandle)) {\r\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\r\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\r\n }\r\n event.target.classList.add(classNames.sliderTabHandle);\r\n var parentElement = event.target.parentElement;\r\n if (parentElement === this.element) {\r\n parentElement.querySelector('.' + classNames.sliderTrack).classList.add(classNames.sliderTabTrack);\r\n if (this.type === 'Range' || this.type === 'MinRange') {\r\n parentElement.querySelector('.' + classNames.rangeBar).classList.add(classNames.sliderTabRange);\r\n }\r\n }\r\n if (this.type === 'Range') {\r\n (event.target.previousSibling).classList.contains(classNames.sliderHandle) ?\r\n this.activeHandle = 2 : this.activeHandle = 1;\r\n }\r\n this.getHandle().focus();\r\n this.tooltipToggle(this.getHandle());\r\n }\r\n }\r\n this.closeTooltip();\r\n this.changeEvent('changed', event);\r\n };\r\n Slider.prototype.hover = function (event) {\r\n if (!isNullOrUndefined(event)) {\r\n if (event.type === 'mouseover' || event.type === 'touchmove' || event.type === 'mousemove' ||\r\n event.type === 'pointermove' || event.type === 'touchstart') {\r\n this.sliderContainer.classList.add(classNames.sliderHover);\r\n }\r\n else {\r\n this.sliderContainer.classList.remove(classNames.sliderHover);\r\n }\r\n }\r\n };\r\n Slider.prototype.sliderFocusOut = function (event) {\r\n if (event.relatedTarget !== this.secondHandle && event.relatedTarget !== this.firstHandle &&\r\n event.relatedTarget !== this.element && event.relatedTarget !== this.firstBtn && event.relatedTarget !== this.secondBtn) {\r\n this.closeMaterialTooltip();\r\n this.closeTooltip();\r\n if (this.element.querySelector('.' + classNames.sliderTabHandle)) {\r\n this.element.querySelector('.' + classNames.sliderTabHandle).classList.remove(classNames.sliderTabHandle);\r\n }\r\n if (this.element.querySelector('.' + classNames.sliderTabTrack)) {\r\n this.element.querySelector('.' + classNames.sliderTabTrack).classList.remove(classNames.sliderTabTrack);\r\n if ((this.type === 'Range' || this.type === 'MinRange') &&\r\n this.element.querySelector('.' + classNames.sliderTabRange)) {\r\n this.element.querySelector('.' + classNames.sliderTabRange).classList.remove(classNames.sliderTabRange);\r\n }\r\n }\r\n this.hiddenInput.focus();\r\n this.hiddenInput.blur();\r\n this.isElementFocused = false;\r\n }\r\n };\r\n Slider.prototype.removeElement = function (element) {\r\n if (element.parentNode) {\r\n element.parentNode.removeChild(element);\r\n }\r\n };\r\n Slider.prototype.changeSliderType = function (type, args) {\r\n if (this.isMaterialTooltip && this.materialHandle) {\r\n this.sliderContainer.classList.remove(classNames.materialSlider);\r\n this.removeElement(this.materialHandle);\r\n this.materialHandle = undefined;\r\n }\r\n this.removeElement(this.firstHandle);\r\n this.firstHandle = undefined;\r\n if (type !== 'Default') {\r\n if (type === 'Range') {\r\n this.removeElement(this.secondHandle);\r\n this.secondHandle = undefined;\r\n }\r\n this.removeElement(this.rangeBar);\r\n this.rangeBar = undefined;\r\n }\r\n if (this.tooltip.isVisible && !isNullOrUndefined(this.tooltipObj)) {\r\n this.tooltipObj.destroy();\r\n this.tooltipElement = undefined;\r\n this.tooltipCollidedPosition = undefined;\r\n }\r\n if (this.limits.enabled) {\r\n if (type === 'MinRange' || type === 'Default') {\r\n if (!isNullOrUndefined(this.limitBarFirst)) {\r\n this.removeElement(this.limitBarFirst);\r\n this.limitBarFirst = undefined;\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.limitBarSecond)) {\r\n this.removeElement(this.limitBarSecond);\r\n this.limitBarSecond = undefined;\r\n }\r\n }\r\n }\r\n this.activeHandle = 1;\r\n this.getThemeInitialization();\r\n if (this.type === 'Range') {\r\n this.rangeValueUpdate();\r\n }\r\n this.createRangeBar();\r\n if (this.limits.enabled) {\r\n this.createLimitBar();\r\n }\r\n this.setHandler();\r\n this.setOrientClass();\r\n this.wireFirstHandleEvt(false);\r\n if (this.type === 'Range') {\r\n this.wireSecondHandleEvt(false);\r\n }\r\n this.setValue();\r\n if (this.tooltip.isVisible) {\r\n this.renderTooltip();\r\n this.wireMaterialTooltipEvent(false);\r\n }\r\n this.setBarColor();\r\n if (args !== 'tooltip') {\r\n this.updateConfig();\r\n }\r\n };\r\n Slider.prototype.changeRtl = function () {\r\n if (!this.enableRtl && this.type === 'Range') {\r\n this.value = [this.handleVal2, this.handleVal1];\r\n }\r\n this.updateConfig();\r\n if (this.tooltip.isVisible) {\r\n this.tooltipObj.refresh(this.firstHandle);\r\n }\r\n if (this.showButtons) {\r\n var enabledRTL = this.enableRtl && this.orientation !== 'Vertical';\r\n attributes(enabledRTL ? this.secondBtn : this.firstBtn, { 'aria-label': 'Decrease', title: 'Decrease' });\r\n attributes(enabledRTL ? this.firstBtn : this.secondBtn, { 'aria-label': 'Increase', title: 'Increase' });\r\n }\r\n };\r\n Slider.prototype.changeOrientation = function () {\r\n this.changeSliderType(this.type, 'null');\r\n };\r\n Slider.prototype.updateConfig = function () {\r\n this.setEnableRTL();\r\n this.setValue();\r\n if (this.tooltip.isVisible) {\r\n this.refreshTooltip(this.tooltipTarget);\r\n }\r\n if (this.ticks.placement !== 'None') {\r\n if (this.ul) {\r\n this.removeElement(this.ul);\r\n this.ul = undefined;\r\n this.renderScale();\r\n }\r\n }\r\n this.limitsPropertyChange();\r\n };\r\n Slider.prototype.limitsPropertyChange = function () {\r\n if (this.limits.enabled) {\r\n if (isNullOrUndefined(this.limitBarFirst) && this.type !== 'Range') {\r\n this.createLimitBar();\r\n }\r\n if (isNullOrUndefined(this.limitBarFirst) && isNullOrUndefined(this.limitBarSecond) && this.type === 'Range') {\r\n this.createLimitBar();\r\n }\r\n this.setLimitBar();\r\n this.setValue();\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.limitBarFirst)) {\r\n detach(this.limitBarFirst);\r\n }\r\n if (!isNullOrUndefined(this.limitBarSecond)) {\r\n detach(this.limitBarSecond);\r\n }\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n * @private\r\n */\r\n Slider.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers.\r\n * Also it removes the attributes and classes.\r\n * @method destroy\r\n * @return {void}\r\n */\r\n Slider.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n this.unwireEvents();\r\n window.removeEventListener('resize', this.onresize);\r\n removeClass([this.sliderContainer], [classNames.sliderDisabled]);\r\n this.firstHandle.removeAttribute('aria-orientation');\r\n if (this.type === 'Range') {\r\n this.secondHandle.removeAttribute('aria-orientation');\r\n }\r\n this.sliderContainer.parentNode.insertBefore(this.element, this.sliderContainer);\r\n detach(this.sliderContainer);\r\n if (this.tooltip.isVisible) {\r\n this.tooltipObj.destroy();\r\n }\r\n this.element.innerHTML = '';\r\n };\r\n /**\r\n * Calls internally if any of the property value is changed.\r\n * @private\r\n */\r\n // tslint:disable-next-line\r\n Slider.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var _this = this;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'cssClass':\r\n this.setCSSClass(oldProp.cssClass);\r\n break;\r\n case 'value':\r\n if (newProp && oldProp) {\r\n var value = isNullOrUndefined(newProp.value) ?\r\n (this.type === 'Range' ? [this.min, this.max] : this.min) : newProp.value;\r\n this.setProperties({ 'value': value }, true);\r\n if (!isNullOrUndefined(oldProp.value) && oldProp.value.toString() !== value.toString()) {\r\n this.setValue();\r\n this.refreshTooltip(this.tooltipTarget);\r\n if (this.type === 'Range') {\r\n if (isNullOrUndefined(newProp.value) || oldProp.value[1] === value[1]) {\r\n this.activeHandle = 1;\r\n }\r\n else {\r\n this.activeHandle = 2;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 'min':\r\n case 'step':\r\n case 'max':\r\n this.setMinMaxValue();\r\n break;\r\n case 'tooltip':\r\n if (!isNullOrUndefined(newProp.tooltip) && !isNullOrUndefined(oldProp.tooltip)) {\r\n this.setTooltip(prop);\r\n }\r\n break;\r\n case 'type':\r\n if (!isNullOrUndefined(oldProp) && Object.keys(oldProp).length\r\n && !isNullOrUndefined(oldProp.type)) {\r\n this.changeSliderType(oldProp.type, prop);\r\n this.setZindex();\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (oldProp.enableRtl !== newProp.enableRtl && this.orientation !== 'Vertical') {\r\n this.rtl = oldProp.enableRtl;\r\n this.changeRtl();\r\n }\r\n break;\r\n case 'limits':\r\n this.limitsPropertyChange();\r\n break;\r\n case 'orientation':\r\n this.changeOrientation();\r\n break;\r\n case 'ticks':\r\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\r\n detach(this.ul);\r\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\r\n if (className.match(/e-scale-/)) {\r\n _this.sliderContainer.classList.remove(className);\r\n }\r\n });\r\n }\r\n if (this.ticks.placement !== 'None') {\r\n this.renderScale();\r\n this.setZindex();\r\n }\r\n break;\r\n case 'locale':\r\n if (this.showButtons) {\r\n this.buttonTitle();\r\n }\r\n break;\r\n case 'showButtons':\r\n if (newProp.showButtons) {\r\n this.setButtons();\r\n this.reposition();\r\n if (this.enabled && !this.readonly) {\r\n this.wireButtonEvt(false);\r\n }\r\n }\r\n else {\r\n if (this.firstBtn && this.secondBtn) {\r\n this.sliderContainer.removeChild(this.firstBtn);\r\n this.sliderContainer.removeChild(this.secondBtn);\r\n this.sliderContainer.classList.remove(classNames.sliderButtonClass);\r\n this.firstBtn = undefined;\r\n this.secondBtn = undefined;\r\n this.reposition();\r\n }\r\n }\r\n break;\r\n case 'enabled':\r\n this.setEnabled();\r\n break;\r\n case 'readonly':\r\n this.setReadOnly();\r\n break;\r\n case 'customValues':\r\n this.setValue();\r\n this.reposition();\r\n break;\r\n case 'colorRange':\r\n this.reposition();\r\n break;\r\n case 'width':\r\n this.setElementWidth(newProp.width);\r\n this.setMinMaxValue();\r\n if (this.limits) {\r\n this.limitsPropertyChange();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n Slider.prototype.setReadOnly = function () {\r\n if (this.readonly) {\r\n this.unwireEvents();\r\n this.sliderContainer.classList.add(classNames.readonly);\r\n }\r\n else {\r\n this.wireEvents();\r\n this.sliderContainer.classList.remove(classNames.readonly);\r\n }\r\n };\r\n Slider.prototype.setMinMaxValue = function () {\r\n var _this = this;\r\n this.setValue();\r\n this.refreshTooltip(this.tooltipTarget);\r\n if (!isNullOrUndefined(this.sliderContainer.querySelector('.' + classNames.scale))) {\r\n if (this.ul) {\r\n detach(this.ul);\r\n Array.prototype.forEach.call(this.sliderContainer.classList, function (className) {\r\n if (className.match(/e-scale-/)) {\r\n _this.sliderContainer.classList.remove(className);\r\n }\r\n });\r\n }\r\n }\r\n if (this.ticks.placement !== 'None') {\r\n this.renderScale();\r\n this.setZindex();\r\n }\r\n };\r\n Slider.prototype.setZindex = function () {\r\n this.zIndex = 6;\r\n if (!isNullOrUndefined(this.ticks) && this.ticks.placement !== 'None') {\r\n this.ul.style.zIndex = (this.zIndex + -7) + '';\r\n this.element.style.zIndex = (this.zIndex + 2) + '';\r\n }\r\n if (!this.isMaterial && !isNullOrUndefined(this.ticks) && this.ticks.placement === 'Both') {\r\n this.element.style.zIndex = (this.zIndex + 2) + '';\r\n }\r\n this.firstHandle.style.zIndex = (this.zIndex + 3) + '';\r\n if (this.type === 'Range') {\r\n this.secondHandle.style.zIndex = (this.zIndex + 4) + '';\r\n }\r\n };\r\n Slider.prototype.setTooltip = function (args) {\r\n this.changeSliderType(this.type, args);\r\n };\r\n Slider.prototype.setBarColor = function () {\r\n var trackPosition;\r\n var trackClassName;\r\n var child = this.sliderTrack.lastElementChild;\r\n while (child) {\r\n this.sliderTrack.removeChild(child);\r\n child = this.sliderTrack.lastElementChild;\r\n }\r\n for (var i = 0; i < this.colorRange.length; i++) {\r\n if (!isNullOrUndefined(this.colorRange[i].start) && !isNullOrUndefined(this.colorRange[i].end)) {\r\n if (this.colorRange[i].end > this.colorRange[i].start) {\r\n if (this.colorRange[i].start < this.min) {\r\n this.colorRange[i].start = this.min;\r\n }\r\n if (this.colorRange[i].end > this.max) {\r\n this.colorRange[i].end = this.max;\r\n }\r\n var startingPosition = this.checkHandlePosition(this.colorRange[i].start);\r\n var endPosition = this.checkHandlePosition(this.colorRange[i].end);\r\n var trackContainer = this.createElement('div');\r\n trackContainer.style.backgroundColor = this.colorRange[i].color;\r\n trackContainer.style.border = '1px solid ' + this.colorRange[i].color;\r\n if (this.orientation === 'Horizontal') {\r\n trackClassName = classNames.sliderHorizantalColor;\r\n if (this.enableRtl) {\r\n if (isNullOrUndefined(this.customValues)) {\r\n trackPosition = this.checkHandlePosition(this.max) - this.checkHandlePosition(this.colorRange[i].end);\r\n }\r\n else {\r\n trackPosition = this.checkHandlePosition(this.customValues.length - this.colorRange[i].end - 1);\r\n }\r\n }\r\n else {\r\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\r\n }\r\n trackContainer.style.width = endPosition - startingPosition + 'px';\r\n trackContainer.style.left = trackPosition + 'px';\r\n }\r\n else {\r\n trackClassName = classNames.sliderVerticalColor;\r\n trackPosition = this.checkHandlePosition(this.colorRange[i].start);\r\n trackContainer.style.height = endPosition - startingPosition + 'px';\r\n trackContainer.style.bottom = trackPosition + 'px';\r\n }\r\n trackContainer.classList.add(trackClassName);\r\n this.sliderTrack.appendChild(trackContainer);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Gets the component name\r\n * @private\r\n */\r\n Slider.prototype.getModuleName = function () {\r\n return 'slider';\r\n };\r\n __decorate([\r\n Property(null)\r\n ], Slider.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Slider.prototype, \"customValues\", void 0);\r\n __decorate([\r\n Property(1)\r\n ], Slider.prototype, \"step\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Slider.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Slider.prototype, \"min\", void 0);\r\n __decorate([\r\n Property(100)\r\n ], Slider.prototype, \"max\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Slider.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property('Default')\r\n ], Slider.prototype, \"type\", void 0);\r\n __decorate([\r\n Collection([{}], ColorRangeData)\r\n ], Slider.prototype, \"colorRange\", void 0);\r\n __decorate([\r\n Complex({}, TicksData)\r\n ], Slider.prototype, \"ticks\", void 0);\r\n __decorate([\r\n Complex({}, LimitData)\r\n ], Slider.prototype, \"limits\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Slider.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Complex({}, TooltipData)\r\n ], Slider.prototype, \"tooltip\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Slider.prototype, \"showButtons\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Slider.prototype, \"enableAnimation\", void 0);\r\n __decorate([\r\n Property('Horizontal')\r\n ], Slider.prototype, \"orientation\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Slider.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Slider.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"changed\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"renderingTicks\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"renderedTicks\", void 0);\r\n __decorate([\r\n Event()\r\n ], Slider.prototype, \"tooltipChange\", void 0);\r\n Slider = __decorate([\r\n NotifyPropertyChanges\r\n ], Slider);\r\n return Slider;\r\n}(Component));\r\nexport { Slider };\r\n","/**\n * Uploader modules\n */\nexport * from './textbox';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, Event, EventHandler, L10n, setValue, getValue, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, detach, Internationalization, getUniqueID, closest } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport { Input } from '../input/input';\r\nvar HIDE_CLEAR = 'e-clear-icon-hide';\r\nvar TEXTBOX_FOCUS = 'e-input-focus';\r\nvar containerAttr = ['title', 'style', 'class'];\r\n/**\r\n * Represents the TextBox component that allows the user to enter the values based on it's type.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar TextBox = /** @class */ (function (_super) {\r\n __extends(TextBox, _super);\r\n /**\r\n *\r\n * @param {TextBoxModel} options - Specifies the TextBox model.\r\n * @param {string | HTMLInputElement | HTMLTextAreaElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function TextBox(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.previousValue = null;\r\n _this.isAngular = false;\r\n _this.isHiddenInput = false;\r\n _this.isForm = false;\r\n _this.inputPreviousValue = null;\r\n _this.isVue = false;\r\n _this.textboxOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * Calls internally if any of the property value is changed.\r\n *\r\n * @param {TextBoxModel} newProp - Returns the dynamic property value of the component.\r\n * @param {TextBoxModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n TextBox.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'floatLabelType':\r\n Input.removeFloating(this.textboxWrapper);\r\n Input.addFloating(this.respectiveElement, this.floatLabelType, this.placeholder);\r\n break;\r\n case 'enabled':\r\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\r\n this.bindClearEvent();\r\n break;\r\n case 'width':\r\n Input.setWidth(newProp.width, this.textboxWrapper.container);\r\n break;\r\n case 'value':\r\n {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n if (!this.isBlank(this.value)) {\r\n this.value = this.value.toString();\r\n }\r\n this.isProtectedOnChange = prevOnChange;\r\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\r\n if (this.isHiddenInput) {\r\n this.element.value = this.respectiveElement.value;\r\n }\r\n this.inputPreviousValue = this.respectiveElement.value;\r\n /* istanbul ignore next */\r\n if ((this.isAngular || this.isVue) && this.preventChange === true) {\r\n this.previousValue = this.isAngular ? this.value : this.previousValue;\r\n this.preventChange = false;\r\n }\r\n else if (isNullOrUndefined(this.isAngular) || !this.isAngular\r\n || (this.isAngular && !this.preventChange) || (this.isAngular && isNullOrUndefined(this.preventChange))) {\r\n this.raiseChangeEvent();\r\n }\r\n }\r\n break;\r\n case 'htmlAttributes':\r\n {\r\n this.updateHTMLAttrToElement();\r\n this.updateHTMLAttrToWrapper();\r\n this.checkAttributes(true);\r\n Input.validateInputType(this.textboxWrapper.container, this.element);\r\n }\r\n break;\r\n case 'readonly':\r\n Input.setReadonly(this.readonly, this.respectiveElement);\r\n break;\r\n case 'type':\r\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\r\n this.respectiveElement.setAttribute('type', this.type);\r\n Input.validateInputType(this.textboxWrapper.container, this.element);\r\n this.raiseChangeEvent();\r\n }\r\n break;\r\n case 'showClearButton':\r\n if (this.respectiveElement.tagName !== 'TEXTAREA') {\r\n Input.setClearButton(this.showClearButton, this.respectiveElement, this.textboxWrapper);\r\n this.bindClearEvent();\r\n }\r\n break;\r\n case 'enableRtl':\r\n Input.setEnableRtl(this.enableRtl, [this.textboxWrapper.container]);\r\n break;\r\n case 'placeholder':\r\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\r\n break;\r\n case 'autocomplete':\r\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\r\n this.respectiveElement.autocomplete = this.autocomplete;\r\n }\r\n else {\r\n this.removeAttributes(['autocomplete']);\r\n }\r\n break;\r\n case 'cssClass':\r\n this.updateCssClass(newProp.cssClass, oldProp.cssClass);\r\n break;\r\n case 'locale':\r\n this.globalize = new Internationalization(this.locale);\r\n this.l10n.setLocale(this.locale);\r\n this.setProperties({ placeholder: this.l10n.getConstant('placeholder') }, true);\r\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Gets the component name\r\n *\r\n * @returns {string} Returns the component name.\r\n * @private\r\n */\r\n TextBox.prototype.getModuleName = function () {\r\n return 'textbox';\r\n };\r\n TextBox.prototype.isBlank = function (str) {\r\n return (!str || /^\\s*$/.test(str));\r\n };\r\n TextBox.prototype.preRender = function () {\r\n this.cloneElement = this.element.cloneNode(true);\r\n this.formElement = closest(this.element, 'form');\r\n if (!isNullOrUndefined(this.formElement)) {\r\n this.isForm = true;\r\n }\r\n /* istanbul ignore next */\r\n if (this.element.tagName === 'EJS-TEXTBOX') {\r\n var ejInstance = getValue('ej2_instances', this.element);\r\n var inputElement = this.multiline ?\r\n this.createElement('textarea') :\r\n this.createElement('input');\r\n var index = 0;\r\n for (index; index < this.element.attributes.length; index++) {\r\n var attributeName = this.element.attributes[index].nodeName;\r\n if (attributeName !== 'id') {\r\n inputElement.setAttribute(attributeName, this.element.attributes[index].nodeValue);\r\n inputElement.innerHTML = this.element.innerHTML;\r\n if (attributeName === 'name') {\r\n this.element.removeAttribute('name');\r\n }\r\n }\r\n }\r\n this.element.appendChild(inputElement);\r\n this.element = inputElement;\r\n setValue('ej2_instances', ejInstance, this.element);\r\n }\r\n this.updateHTMLAttrToElement();\r\n this.checkAttributes(false);\r\n if (this.element.tagName !== 'TEXTAREA') {\r\n this.element.setAttribute('type', this.type);\r\n }\r\n this.element.setAttribute('role', 'textbox');\r\n this.globalize = new Internationalization(this.locale);\r\n var localeText = { placeholder: this.placeholder };\r\n this.l10n = new L10n('textbox', localeText, this.locale);\r\n if (this.l10n.getConstant('placeholder') !== '') {\r\n this.setProperties({ placeholder: this.placeholder || this.l10n.getConstant('placeholder') }, true);\r\n }\r\n if (!this.element.hasAttribute('id')) {\r\n this.element.setAttribute('id', getUniqueID('textbox'));\r\n }\r\n if (!this.element.hasAttribute('name')) {\r\n this.element.setAttribute('name', this.element.getAttribute('id'));\r\n }\r\n if (this.element.tagName === 'INPUT' && this.multiline) {\r\n this.isHiddenInput = true;\r\n this.textarea = this.createElement('textarea');\r\n this.element.parentNode.insertBefore(this.textarea, this.element);\r\n this.element.setAttribute('type', 'hidden');\r\n this.textarea.setAttribute('name', this.element.getAttribute('name'));\r\n this.element.removeAttribute('name');\r\n this.textarea.setAttribute('role', this.element.getAttribute('role'));\r\n this.element.removeAttribute('role');\r\n this.textarea.setAttribute('id', getUniqueID('textarea'));\r\n var apiAttributes = ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\r\n for (var index = 0; index < this.element.attributes.length; index++) {\r\n var attributeName = this.element.attributes[index].nodeName;\r\n if (this.element.hasAttribute(attributeName) && containerAttr.indexOf(attributeName) < 0 &&\r\n !(attributeName === 'id' || attributeName === 'type' || attributeName === 'e-mappinguid')) {\r\n // e-mappinguid attribute is handled for Grid component.\r\n this.textarea.setAttribute(attributeName, this.element.attributes[index].nodeValue);\r\n if (apiAttributes.indexOf(attributeName) < 0) {\r\n this.element.removeAttribute(attributeName);\r\n index--;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TextBox.prototype.checkAttributes = function (isDynamic) {\r\n var attrs = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['placeholder', 'disabled', 'value', 'readonly', 'type', 'autocomplete'];\r\n for (var _i = 0, attrs_1 = attrs; _i < attrs_1.length; _i++) {\r\n var key = attrs_1[_i];\r\n if (!isNullOrUndefined(this.element.getAttribute(key))) {\r\n switch (key) {\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['enabled'] === undefined)) || isDynamic) {\r\n var enabled = this.element.getAttribute(key) === 'disabled' || this.element.getAttribute(key) === '' ||\r\n this.element.getAttribute(key) === 'true' ? false : true;\r\n this.setProperties({ enabled: enabled }, !isDynamic);\r\n }\r\n break;\r\n case 'readonly':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['readonly'] === undefined)) || isDynamic) {\r\n var readonly = this.element.getAttribute(key) === 'readonly' || this.element.getAttribute(key) === ''\r\n || this.element.getAttribute(key) === 'true' ? true : false;\r\n this.setProperties({ readonly: readonly }, !isDynamic);\r\n }\r\n break;\r\n case 'placeholder':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['placeholder'] === undefined)) || isDynamic) {\r\n this.setProperties({ placeholder: this.element.placeholder }, !isDynamic);\r\n }\r\n break;\r\n case 'autocomplete':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['autocomplete'] === undefined)) || isDynamic) {\r\n var autoCompleteTxt = this.element.autocomplete === 'off' ? 'off' : 'on';\r\n this.setProperties({ autocomplete: autoCompleteTxt }, !isDynamic);\r\n }\r\n break;\r\n case 'value':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) || isDynamic) {\r\n this.setProperties({ value: this.element.value }, !isDynamic);\r\n }\r\n break;\r\n case 'type':\r\n if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['type'] === undefined)) || isDynamic) {\r\n this.setProperties({ type: this.element.type }, !isDynamic);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n TextBox.prototype.render = function () {\r\n var updatedCssClassValue = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValue = this.getInputValidClassList(this.cssClass);\r\n }\r\n this.respectiveElement = (this.isHiddenInput) ? this.textarea : this.element;\r\n this.textboxWrapper = Input.createInput({\r\n element: this.respectiveElement,\r\n floatLabelType: this.floatLabelType,\r\n properties: {\r\n enabled: this.enabled,\r\n enableRtl: this.enableRtl,\r\n cssClass: updatedCssClassValue,\r\n readonly: this.readonly,\r\n placeholder: this.placeholder,\r\n showClearButton: this.showClearButton\r\n }\r\n });\r\n this.updateHTMLAttrToWrapper();\r\n if (this.isHiddenInput) {\r\n this.respectiveElement.parentNode.insertBefore(this.element, this.respectiveElement);\r\n }\r\n this.wireEvents();\r\n if (!isNullOrUndefined(this.value)) {\r\n Input.setValue(this.value, this.respectiveElement, this.floatLabelType, this.showClearButton);\r\n if (this.isHiddenInput) {\r\n this.element.value = this.respectiveElement.value;\r\n }\r\n }\r\n if (!isNullOrUndefined(this.value)) {\r\n this.initialValue = this.value;\r\n this.setInitialValue();\r\n }\r\n if (this.autocomplete !== 'on' && this.autocomplete !== '') {\r\n this.respectiveElement.autocomplete = this.autocomplete;\r\n }\r\n else if (!isNullOrUndefined(this.textboxOptions) && (this.textboxOptions['autocomplete'] !== undefined)) {\r\n this.removeAttributes(['autocomplete']);\r\n }\r\n this.previousValue = this.value;\r\n this.inputPreviousValue = this.value;\r\n this.respectiveElement.defaultValue = this.respectiveElement.value;\r\n Input.setWidth(this.width, this.textboxWrapper.container);\r\n this.renderComplete();\r\n };\r\n TextBox.prototype.updateHTMLAttrToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (containerAttr.indexOf(key) > -1) {\r\n if (key === 'class') {\r\n var updatedClassValues = this.getInputValidClassList(this.htmlAttributes[key]);\r\n if (updatedClassValues !== '') {\r\n addClass([this.textboxWrapper.container], updatedClassValues.split(' '));\r\n }\r\n }\r\n else if (key === 'style') {\r\n var setStyle = this.textboxWrapper.container.getAttribute(key);\r\n setStyle = !isNullOrUndefined(setStyle) ? (setStyle + this.htmlAttributes[key]) :\r\n this.htmlAttributes[key];\r\n this.textboxWrapper.container.setAttribute(key, setStyle);\r\n }\r\n else {\r\n this.textboxWrapper.container.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TextBox.prototype.updateHTMLAttrToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (containerAttr.indexOf(key) < 0) {\r\n this.element.setAttribute(key, this.htmlAttributes[key]);\r\n }\r\n }\r\n }\r\n };\r\n TextBox.prototype.updateCssClass = function (newClass, oldClass) {\r\n Input.setCssClass(this.getInputValidClassList(newClass), [this.textboxWrapper.container], this.getInputValidClassList(oldClass));\r\n };\r\n TextBox.prototype.getInputValidClassList = function (inputClassName) {\r\n var result = inputClassName;\r\n if (!isNullOrUndefined(inputClassName) && inputClassName !== '') {\r\n result = (inputClassName.replace(/\\s+/g, ' ')).trim();\r\n }\r\n return result;\r\n };\r\n TextBox.prototype.setInitialValue = function () {\r\n if (!this.isAngular) {\r\n this.respectiveElement.setAttribute('value', this.initialValue);\r\n }\r\n };\r\n TextBox.prototype.wireEvents = function () {\r\n EventHandler.add(this.respectiveElement, 'focus', this.focusHandler, this);\r\n EventHandler.add(this.respectiveElement, 'blur', this.focusOutHandler, this);\r\n EventHandler.add(this.respectiveElement, 'input', this.inputHandler, this);\r\n EventHandler.add(this.respectiveElement, 'change', this.changeHandler, this);\r\n if (this.isForm) {\r\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\r\n }\r\n this.bindClearEvent();\r\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\r\n && this.textboxWrapper.container.classList.contains('e-autofill') &&\r\n this.textboxWrapper.container.classList.contains('e-outline')) {\r\n EventHandler.add((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler, this);\r\n }\r\n };\r\n TextBox.prototype.animationHandler = function () {\r\n this.textboxWrapper.container.classList.add('e-valid-input');\r\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\r\n if (!isNullOrUndefined(label)) {\r\n label.classList.add('e-label-top');\r\n if (label.classList.contains('e-label-bottom')) {\r\n label.classList.remove('e-label-bottom');\r\n }\r\n }\r\n };\r\n TextBox.prototype.resetValue = function (value) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.value = value;\r\n this.isProtectedOnChange = prevOnChange;\r\n };\r\n TextBox.prototype.resetForm = function () {\r\n if (this.isAngular) {\r\n this.resetValue('');\r\n }\r\n else {\r\n this.resetValue(this.initialValue);\r\n }\r\n if (!isNullOrUndefined(this.textboxWrapper)) {\r\n var label = this.textboxWrapper.container.querySelector('.e-float-text');\r\n if (!isNullOrUndefined(label)) {\r\n if ((isNullOrUndefined(this.initialValue) || this.initialValue === '')) {\r\n label.classList.add('e-label-bottom');\r\n label.classList.remove('e-label-top');\r\n }\r\n else if (this.initialValue !== '') {\r\n label.classList.add('e-label-top');\r\n label.classList.remove('e-label-bottom');\r\n }\r\n }\r\n }\r\n };\r\n TextBox.prototype.focusHandler = function (args) {\r\n var eventArgs = {\r\n container: this.textboxWrapper.container,\r\n event: args,\r\n value: this.value\r\n };\r\n this.trigger('focus', eventArgs);\r\n };\r\n TextBox.prototype.focusOutHandler = function (args) {\r\n if (!(this.previousValue === null && this.value === null && this.respectiveElement.value === '') &&\r\n (this.previousValue !== this.respectiveElement.value)) {\r\n this.raiseChangeEvent(args, true);\r\n }\r\n var eventArgs = {\r\n container: this.textboxWrapper.container,\r\n event: args,\r\n value: this.value\r\n };\r\n this.trigger('blur', eventArgs);\r\n };\r\n TextBox.prototype.inputHandler = function (args) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-this-alias\r\n var textboxObj = this;\r\n var eventArgs = {\r\n event: args,\r\n value: this.respectiveElement.value,\r\n previousValue: this.inputPreviousValue,\r\n container: this.textboxWrapper.container\r\n };\r\n this.inputPreviousValue = this.respectiveElement.value;\r\n /* istanbul ignore next */\r\n if (this.isAngular) {\r\n textboxObj.localChange({ value: this.respectiveElement.value });\r\n this.preventChange = true;\r\n }\r\n if (this.isVue) {\r\n this.preventChange = true;\r\n }\r\n this.trigger('input', eventArgs);\r\n args.stopPropagation();\r\n };\r\n TextBox.prototype.changeHandler = function (args) {\r\n this.setProperties({ value: this.respectiveElement.value }, true);\r\n this.raiseChangeEvent(args, true);\r\n args.stopPropagation();\r\n };\r\n TextBox.prototype.raiseChangeEvent = function (event, interaction) {\r\n var eventArgs = {\r\n event: event,\r\n value: this.value,\r\n previousValue: this.previousValue,\r\n container: this.textboxWrapper.container,\r\n isInteraction: interaction ? interaction : false,\r\n isInteracted: interaction ? interaction : false\r\n };\r\n this.preventChange = false;\r\n this.trigger('change', eventArgs);\r\n this.previousValue = this.value;\r\n };\r\n TextBox.prototype.bindClearEvent = function () {\r\n if (this.showClearButton && this.respectiveElement.tagName !== 'TEXTAREA') {\r\n if (this.enabled) {\r\n EventHandler.add(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler, this);\r\n }\r\n else {\r\n EventHandler.remove(this.textboxWrapper.clearButton, 'mousedown touchstart', this.resetInputHandler);\r\n }\r\n }\r\n };\r\n TextBox.prototype.resetInputHandler = function (event) {\r\n event.preventDefault();\r\n if (!(this.textboxWrapper.clearButton.classList.contains(HIDE_CLEAR)) || this.textboxWrapper.container.classList.contains('e-static-clear')) {\r\n Input.setValue('', this.respectiveElement, this.floatLabelType, this.showClearButton);\r\n if (this.isHiddenInput) {\r\n this.element.value = this.respectiveElement.value;\r\n }\r\n this.setProperties({ value: this.respectiveElement.value }, true);\r\n var eventArgs = {\r\n event: event,\r\n value: this.respectiveElement.value,\r\n previousValue: this.inputPreviousValue,\r\n container: this.textboxWrapper.container\r\n };\r\n this.trigger('input', eventArgs);\r\n this.inputPreviousValue = this.respectiveElement.value;\r\n this.raiseChangeEvent(event, true);\r\n }\r\n };\r\n TextBox.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.respectiveElement, 'focus', this.focusHandler);\r\n EventHandler.remove(this.respectiveElement, 'blur', this.focusOutHandler);\r\n EventHandler.remove(this.respectiveElement, 'input', this.inputHandler);\r\n EventHandler.remove(this.respectiveElement, 'change', this.changeHandler);\r\n if (this.isForm) {\r\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\r\n }\r\n if (!isNullOrUndefined(this.textboxWrapper.container.querySelector('.e-float-text')) && this.floatLabelType === 'Auto'\r\n && this.textboxWrapper.container.classList.contains('e-outline') &&\r\n this.textboxWrapper.container.classList.contains('e-autofill')) {\r\n EventHandler.remove((this.textboxWrapper.container.querySelector('.e-float-text')), 'animationstart', this.animationHandler);\r\n }\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers.\r\n * Also, it maintains the initial TextBox element from the DOM.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n TextBox.prototype.destroy = function () {\r\n this.unWireEvents();\r\n if (this.element.tagName === 'INPUT' && this.multiline) {\r\n detach(this.textboxWrapper.container.getElementsByTagName('textarea')[0]);\r\n this.respectiveElement = this.element;\r\n this.element.removeAttribute('type');\r\n }\r\n this.respectiveElement.value = this.respectiveElement.defaultValue;\r\n this.respectiveElement.classList.remove('e-input');\r\n this.removeAttributes(['aria-placeholder', 'aria-disabled', 'aria-readonly', 'aria-labelledby']);\r\n if (!isNullOrUndefined(this.textboxWrapper)) {\r\n this.textboxWrapper.container.insertAdjacentElement('afterend', this.respectiveElement);\r\n detach(this.textboxWrapper.container);\r\n }\r\n this.textboxWrapper = null;\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Adding the icons to the TextBox component.\r\n *\r\n * @param { string } position - Specify the icon placement on the TextBox. Possible values are append and prepend.\r\n * @param { string | string[] } icons - Icon classes which are need to add to the span element which is going to created.\r\n * Span element acts as icon or button element for TextBox.\r\n * @returns {void}\r\n */\r\n TextBox.prototype.addIcon = function (position, icons) {\r\n Input.addIcon(position, icons, this.textboxWrapper.container, this.respectiveElement, this.createElement);\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns */\r\n /**\r\n * Gets the properties to be maintained in the persisted state.\r\n *\r\n */\r\n TextBox.prototype.getPersistData = function () {\r\n var keyEntity = ['value'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns */\r\n /**\r\n * Adding the multiple attributes as key-value pair to the TextBox element.\r\n *\r\n * @param {string} attributes - Specifies the attributes to be add to TextBox element.\r\n * @returns {void}\r\n */\r\n TextBox.prototype.addAttributes = function (attributes) {\r\n for (var _i = 0, _a = Object.keys(attributes); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (key === 'disabled') {\r\n this.setProperties({ enabled: false }, true);\r\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\r\n }\r\n else if (key === 'readonly') {\r\n this.setProperties({ readonly: true }, true);\r\n Input.setReadonly(this.readonly, this.respectiveElement);\r\n }\r\n else if (key === 'class') {\r\n this.respectiveElement.classList.add(attributes[key]);\r\n }\r\n else if (key === 'placeholder') {\r\n this.setProperties({ placeholder: attributes[key] }, true);\r\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\r\n }\r\n else if (key === 'rows' && this.respectiveElement.tagName === 'TEXTAREA') {\r\n this.respectiveElement.setAttribute(key, attributes[key]);\r\n }\r\n else {\r\n this.respectiveElement.setAttribute(key, attributes[key]);\r\n }\r\n }\r\n };\r\n /**\r\n * Removing the multiple attributes as key-value pair to the TextBox element.\r\n *\r\n * @param { string[] } attributes - Specifies the attributes name to be removed from TextBox element.\r\n * @returns {void}\r\n */\r\n TextBox.prototype.removeAttributes = function (attributes) {\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var key = attributes_1[_i];\r\n if (key === 'disabled') {\r\n this.setProperties({ enabled: true }, true);\r\n Input.setEnabled(this.enabled, this.respectiveElement, this.floatLabelType, this.textboxWrapper.container);\r\n }\r\n else if (key === 'readonly') {\r\n this.setProperties({ readonly: false }, true);\r\n Input.setReadonly(this.readonly, this.respectiveElement);\r\n }\r\n else if (key === 'placeholder') {\r\n this.setProperties({ placeholder: null }, true);\r\n Input.setPlaceholder(this.placeholder, this.respectiveElement);\r\n }\r\n else {\r\n this.respectiveElement.removeAttribute(key);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets the focus to widget for interaction.\r\n *\r\n * @returns {void}\r\n */\r\n TextBox.prototype.focusIn = function () {\r\n if (document.activeElement !== this.respectiveElement && this.enabled) {\r\n this.respectiveElement.focus();\r\n if (this.textboxWrapper.container.classList.contains('e-input-group')\r\n || this.textboxWrapper.container.classList.contains('e-outline')\r\n || this.textboxWrapper.container.classList.contains('e-filled')) {\r\n addClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\r\n }\r\n }\r\n };\r\n /**\r\n * Remove the focus from widget, if the widget is in focus state.\r\n *\r\n * @returns {void}\r\n */\r\n TextBox.prototype.focusOut = function () {\r\n if (document.activeElement === this.respectiveElement && this.enabled) {\r\n this.respectiveElement.blur();\r\n if (this.textboxWrapper.container.classList.contains('e-input-group')\r\n || this.textboxWrapper.container.classList.contains('e-outline')\r\n || this.textboxWrapper.container.classList.contains('e-filled')) {\r\n removeClass([this.textboxWrapper.container], [TEXTBOX_FOCUS]);\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property('text')\r\n ], TextBox.prototype, \"type\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TextBox.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TextBox.prototype, \"value\", void 0);\r\n __decorate([\r\n Property('Never')\r\n ], TextBox.prototype, \"floatLabelType\", void 0);\r\n __decorate([\r\n Property('')\r\n ], TextBox.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TextBox.prototype, \"placeholder\", void 0);\r\n __decorate([\r\n Property('on')\r\n ], TextBox.prototype, \"autocomplete\", void 0);\r\n __decorate([\r\n Property({})\r\n ], TextBox.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TextBox.prototype, \"multiline\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TextBox.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TextBox.prototype, \"showClearButton\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TextBox.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TextBox.prototype, \"width\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"blur\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"focus\", void 0);\r\n __decorate([\r\n Event()\r\n ], TextBox.prototype, \"input\", void 0);\r\n TextBox = __decorate([\r\n NotifyPropertyChanges\r\n ], TextBox);\r\n return TextBox;\r\n}(Component));\r\nexport { TextBox };\r\n","/**\n * Uploader modules\n */\nexport * from './uploader';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Component, Property, Event, EventHandler, L10n, compile, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, detach, append, Animation } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, KeyboardEvents, setValue, getValue, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { Collection, Complex, Browser, Ajax, getUniqueID, closest, remove } from '@syncfusion/ej2-base';\r\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { select, selectAll } from '@syncfusion/ej2-base';\r\nvar CONTROL_WRAPPER = 'e-upload e-control-wrapper';\r\nvar INPUT_WRAPPER = 'e-file-select';\r\nvar DROP_AREA = 'e-file-drop';\r\nvar DROP_WRAPPER = 'e-file-select-wrap';\r\nvar LIST_PARENT = 'e-upload-files';\r\nvar FILE = 'e-upload-file-list';\r\nvar STATUS = 'e-file-status';\r\nvar ACTION_BUTTONS = 'e-upload-actions';\r\nvar UPLOAD_BUTTONS = 'e-file-upload-btn e-css e-btn e-flat e-primary';\r\nvar CLEAR_BUTTONS = 'e-file-clear-btn e-css e-btn e-flat';\r\nvar FILE_NAME = 'e-file-name';\r\nvar FILE_TYPE = 'e-file-type';\r\nvar FILE_SIZE = 'e-file-size';\r\nvar REMOVE_ICON = 'e-file-remove-btn';\r\nvar DELETE_ICON = 'e-file-delete-btn';\r\nvar SPINNER_PANE = 'e-spinner-pane';\r\nvar ABORT_ICON = 'e-file-abort-btn';\r\nvar RETRY_ICON = 'e-file-reload-btn';\r\nvar DRAG_HOVER = 'e-upload-drag-hover';\r\nvar PROGRESS_WRAPPER = 'e-upload-progress-wrap';\r\nvar PROGRESSBAR = 'e-upload-progress-bar';\r\nvar PROGRESSBAR_TEXT = 'e-progress-bar-text';\r\nvar UPLOAD_INPROGRESS = 'e-upload-progress';\r\nvar UPLOAD_SUCCESS = 'e-upload-success';\r\nvar UPLOAD_FAILED = 'e-upload-fails';\r\nvar TEXT_CONTAINER = 'e-file-container';\r\nvar VALIDATION_FAILS = 'e-validation-fails';\r\nvar RTL = 'e-rtl';\r\nvar DISABLED = 'e-disabled';\r\nvar RTL_CONTAINER = 'e-rtl-container';\r\nvar ICON_FOCUSED = 'e-clear-icon-focus';\r\nvar PROGRESS_INNER_WRAPPER = 'e-progress-inner-wrap';\r\nvar PAUSE_UPLOAD = 'e-file-pause-btn';\r\nvar RESUME_UPLOAD = 'e-file-play-btn';\r\nvar RESTRICT_RETRY = 'e-restrict-retry';\r\nvar wrapperAttr = ['title', 'style', 'class'];\r\nvar FORM_UPLOAD = 'e-form-upload';\r\nvar HIDDEN_INPUT = 'e-hidden-file-input';\r\nvar INVALID_FILE = 'e-file-invalid';\r\nvar INFORMATION = 'e-file-information';\r\nvar FilesProp = /** @class */ (function (_super) {\r\n __extends(FilesProp, _super);\r\n function FilesProp() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], FilesProp.prototype, \"name\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], FilesProp.prototype, \"size\", void 0);\r\n __decorate([\r\n Property('')\r\n ], FilesProp.prototype, \"type\", void 0);\r\n return FilesProp;\r\n}(ChildProperty));\r\nexport { FilesProp };\r\nvar ButtonsProps = /** @class */ (function (_super) {\r\n __extends(ButtonsProps, _super);\r\n function ButtonsProps() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('Browse...')\r\n ], ButtonsProps.prototype, \"browse\", void 0);\r\n __decorate([\r\n Property('Upload')\r\n ], ButtonsProps.prototype, \"upload\", void 0);\r\n __decorate([\r\n Property('Clear')\r\n ], ButtonsProps.prototype, \"clear\", void 0);\r\n return ButtonsProps;\r\n}(ChildProperty));\r\nexport { ButtonsProps };\r\nvar AsyncSettings = /** @class */ (function (_super) {\r\n __extends(AsyncSettings, _super);\r\n function AsyncSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], AsyncSettings.prototype, \"saveUrl\", void 0);\r\n __decorate([\r\n Property('')\r\n ], AsyncSettings.prototype, \"removeUrl\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], AsyncSettings.prototype, \"chunkSize\", void 0);\r\n __decorate([\r\n Property(3)\r\n ], AsyncSettings.prototype, \"retryCount\", void 0);\r\n __decorate([\r\n Property(500)\r\n ], AsyncSettings.prototype, \"retryAfterDelay\", void 0);\r\n return AsyncSettings;\r\n}(ChildProperty));\r\nexport { AsyncSettings };\r\n/**\r\n * The uploader component allows to upload images, documents, and other files from local to server.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Uploader = /** @class */ (function (_super) {\r\n __extends(Uploader, _super);\r\n /**\r\n * Triggers when change the Uploader value.\r\n *\r\n * @param {UploaderModel} options - Specifies the Uploader model.\r\n * @param {string | HTMLInputElement} element - Specifies the element to render as component.\r\n * @private\r\n */\r\n function Uploader(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.initialAttr = { accept: null, multiple: false, disabled: false };\r\n _this.uploadedFilesData = [];\r\n _this.base64String = [];\r\n _this.isForm = false;\r\n _this.allTypes = false;\r\n _this.pausedData = [];\r\n _this.uploadMetaData = [];\r\n _this.tabIndex = '0';\r\n _this.btnTabIndex = '0';\r\n _this.disableKeyboardNavigation = false;\r\n _this.count = -1;\r\n _this.actionCompleteCount = 0;\r\n _this.flag = true;\r\n _this.selectedFiles = [];\r\n _this.uploaderName = 'UploadFiles';\r\n _this.fileStreams = [];\r\n _this.newFileRef = 0;\r\n _this.isFirstFileOnSelection = false;\r\n _this.dragCounter = 0;\r\n /**\r\n * Get the file item(li) which are shown in file list.\r\n *\r\n * @private\r\n */\r\n _this.fileList = [];\r\n /**\r\n * Get the data of files which are shown in file list.\r\n *\r\n * @private\r\n */\r\n _this.filesData = [];\r\n _this.uploaderOptions = options;\r\n return _this;\r\n }\r\n /**\r\n * Calls internally if any of the property value is changed.\r\n *\r\n * @param {UploaderModel} newProp - Returns the dynamic property value of the component.\r\n * @param {UploaderModel} oldProp - Returns the previous property value of the component.\r\n * @returns {void}\r\n * @private\r\n */\r\n Uploader.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'allowedExtensions':\r\n this.setExtensions(this.allowedExtensions);\r\n this.clearAll();\r\n break;\r\n case 'enabled':\r\n this.setControlStatus();\r\n break;\r\n case 'multiple':\r\n this.setMultipleSelection();\r\n break;\r\n case 'enableRtl':\r\n this.setRTL();\r\n this.reRenderFileList();\r\n break;\r\n case 'buttons':\r\n this.buttons.browse = isNullOrUndefined(this.buttons.browse) ? '' : this.buttons.browse;\r\n this.buttons.clear = isNullOrUndefined(this.buttons.clear) ? '' : this.buttons.clear;\r\n this.buttons.upload = isNullOrUndefined(this.buttons.upload) ? '' : this.buttons.upload;\r\n this.renderButtonTemplates();\r\n break;\r\n case 'dropArea':\r\n this.unBindDropEvents();\r\n this.updateDropArea();\r\n break;\r\n case 'htmlAttributes':\r\n this.updateHTMLAttrToElement();\r\n this.updateHTMLAttrToWrapper();\r\n this.checkHTMLAttributes(true);\r\n break;\r\n case 'files':\r\n this.renderPreLoadFiles();\r\n break;\r\n case 'directoryUpload':\r\n this.updateDirectoryAttributes();\r\n break;\r\n case 'template':\r\n this.clearAll();\r\n break;\r\n case 'minFileSize':\r\n case 'maxFileSize':\r\n case 'autoUpload':\r\n this.clearAll();\r\n break;\r\n case 'sequentialUpload':\r\n this.clearAll();\r\n break;\r\n case 'locale':\r\n this.l10n.setLocale(this.locale);\r\n this.setLocalizedTexts();\r\n this.preLocaleObj = getValue('currentLocale', this.l10n);\r\n break;\r\n case 'cssClass':\r\n this.setCSSClass(oldProp.cssClass);\r\n break;\r\n }\r\n }\r\n };\r\n Uploader.prototype.setLocalizedTexts = function () {\r\n if (isNullOrUndefined(this.template)) {\r\n if (typeof (this.buttons.browse) === 'string') {\r\n this.browseButton.innerText = (this.buttons.browse === 'Browse...') ?\r\n this.localizedTexts('Browse') : this.buttons.browse;\r\n this.browseButton.setAttribute('title', this.browseButton.innerText);\r\n if (this.uploadWrapper && !isNullOrUndefined(this.uploadWrapper.querySelector('.' + DROP_AREA))) {\r\n this.uploadWrapper.querySelector('.' + DROP_AREA).innerHTML = this.localizedTexts('dropFilesHint');\r\n }\r\n }\r\n this.updateFileList();\r\n }\r\n };\r\n Uploader.prototype.getKeyValue = function (val) {\r\n var keyValue;\r\n for (var _i = 0, _a = Object.keys(this.preLocaleObj); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (this.preLocaleObj[key] === val) {\r\n keyValue = key;\r\n }\r\n }\r\n return keyValue;\r\n };\r\n Uploader.prototype.updateFileList = function () {\r\n var element;\r\n /* istanbul ignore next */\r\n if (this.fileList.length > 0 && !isNullOrUndefined(this.uploadWrapper.querySelector('.' + LIST_PARENT))) {\r\n for (var i = 0; i < this.fileList.length; i++) {\r\n element = this.fileList[i].querySelector('.e-file-status');\r\n element.innerHTML = this.localizedTexts(this.getKeyValue(this.filesData[i].status));\r\n this.filesData[i].status = this.localizedTexts(this.getKeyValue(this.filesData[i].status));\r\n if (this.fileList[i].classList.contains(UPLOAD_SUCCESS)) {\r\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('delete'));\r\n }\r\n if (this.fileList[i].querySelector('.e-file-play-btn')) {\r\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('resume'));\r\n }\r\n if (this.fileList[i].querySelector('.e-file-remove-btn')) {\r\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('remove'));\r\n }\r\n if (this.fileList[i].querySelector('.e-file-reload-btn')) {\r\n this.fileList[i].querySelector('.e-icons').setAttribute('title', this.localizedTexts('retry'));\r\n }\r\n if (!this.autoUpload) {\r\n this.uploadButton.innerText = (this.buttons.upload === 'Upload') ?\r\n this.localizedTexts('Upload') : this.buttons.upload;\r\n this.uploadButton.setAttribute('title', this.localizedTexts('Upload'));\r\n this.clearButton.innerText = (this.buttons.clear === 'Clear') ?\r\n this.localizedTexts('Clear') : this.buttons.clear;\r\n this.clearButton.setAttribute('title', this.localizedTexts('Clear'));\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.reRenderFileList = function () {\r\n if (this.listParent) {\r\n detach(this.listParent);\r\n this.listParent = null;\r\n this.fileList = [];\r\n this.createFileList(this.filesData);\r\n if (this.actionButtons) {\r\n this.removeActionButtons();\r\n this.renderActionButtons();\r\n this.checkActionButtonStatus();\r\n }\r\n }\r\n };\r\n Uploader.prototype.preRender = function () {\r\n this.localeText = { Browse: 'Browse...', Clear: 'Clear', Upload: 'Upload',\r\n dropFilesHint: 'Or drop files here', invalidMaxFileSize: 'File size is too large',\r\n invalidMinFileSize: 'File size is too small', invalidFileType: 'File type is not allowed',\r\n uploadFailedMessage: 'File failed to upload', uploadSuccessMessage: 'File uploaded successfully',\r\n removedSuccessMessage: 'File removed successfully', removedFailedMessage: 'Unable to remove file', inProgress: 'Uploading',\r\n readyToUploadMessage: 'Ready to upload', abort: 'Abort', remove: 'Remove', cancel: 'Cancel', delete: 'Delete file',\r\n pauseUpload: 'File upload paused', pause: 'Pause', resume: 'Resume', retry: 'Retry',\r\n fileUploadCancel: 'File upload canceled', invalidFileSelection: 'Invalid files selected', totalFiles: 'Total files',\r\n size: 'Size'\r\n };\r\n this.l10n = new L10n('uploader', this.localeText, this.locale);\r\n this.preLocaleObj = getValue('currentLocale', this.l10n);\r\n this.formRendered();\r\n this.updateHTMLAttrToElement();\r\n this.checkHTMLAttributes(false);\r\n var ejInstance = getValue('ej2_instances', this.element);\r\n /* istanbul ignore next */\r\n if (this.element.tagName === 'EJS-UPLOADER') {\r\n var inputElement = this.createElement('input', { attrs: { type: 'file' } });\r\n var index = 0;\r\n for (index; index < this.element.attributes.length; index++) {\r\n inputElement.setAttribute(this.element.attributes[index].nodeName, this.element.attributes[index].nodeValue);\r\n inputElement.innerHTML = this.element.innerHTML;\r\n }\r\n if (!inputElement.hasAttribute('name')) {\r\n inputElement.setAttribute('name', 'UploadFiles');\r\n }\r\n this.element.appendChild(inputElement);\r\n this.element = inputElement;\r\n setValue('ej2_instances', ejInstance, this.element);\r\n }\r\n /* istanbul ignore next */\r\n if (ejInstance[0].isPureReactComponent) {\r\n if (!isNullOrUndefined(ejInstance[0].props.name)) {\r\n this.element.setAttribute('name', ejInstance[0].props.name);\r\n }\r\n else if (!isNullOrUndefined(ejInstance[0].props.id) && isNullOrUndefined(ejInstance[0].props.name)) {\r\n this.element.setAttribute('name', ejInstance[0].props.id);\r\n }\r\n else {\r\n this.element.setAttribute('name', 'UploadFiles');\r\n }\r\n }\r\n if (isNullOrUndefined(this.element.getAttribute('name'))) {\r\n this.element.setAttribute('name', this.element.getAttribute('id'));\r\n }\r\n if (!this.element.hasAttribute('type')) {\r\n this.element.setAttribute('type', 'file');\r\n }\r\n this.updateDirectoryAttributes();\r\n this.keyConfigs = {\r\n enter: 'enter'\r\n };\r\n if (this.element.hasAttribute('tabindex')) {\r\n this.tabIndex = this.element.getAttribute('tabindex');\r\n }\r\n this.browserName = Browser.info.name;\r\n this.uploaderName = this.element.getAttribute('name');\r\n };\r\n Uploader.prototype.formRendered = function () {\r\n var parentEle = closest(this.element, 'form');\r\n if (!isNullOrUndefined(parentEle)) {\r\n for (; parentEle && parentEle !== document.documentElement; parentEle = parentEle.parentElement) {\r\n if (parentEle.tagName === 'FORM') {\r\n this.isForm = true;\r\n this.formElement = parentEle;\r\n parentEle.setAttribute('enctype', 'multipart/form-data');\r\n parentEle.setAttribute('encoding', 'multipart/form-data');\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.getPersistData = function () {\r\n return this.addOnPersist(['filesData']);\r\n };\r\n /**\r\n * Return the module name of the component.\r\n *\r\n * @returns {string} Returns the component name.\r\n */\r\n Uploader.prototype.getModuleName = function () {\r\n return 'uploader';\r\n };\r\n Uploader.prototype.updateDirectoryAttributes = function () {\r\n if (this.directoryUpload) {\r\n this.element.setAttribute('directory', 'true');\r\n this.element.setAttribute('webkitdirectory', 'true');\r\n }\r\n else {\r\n this.element.removeAttribute('directory');\r\n this.element.removeAttribute('webkitdirectory');\r\n }\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Uploader.prototype.render = function () {\r\n this.renderBrowseButton();\r\n this.initializeUpload();\r\n this.updateHTMLAttrToWrapper();\r\n this.wireEvents();\r\n this.setMultipleSelection();\r\n this.setExtensions(this.allowedExtensions);\r\n this.setRTL();\r\n this.renderPreLoadFiles();\r\n this.setControlStatus();\r\n this.setCSSClass();\r\n };\r\n Uploader.prototype.renderBrowseButton = function () {\r\n this.browseButton = this.createElement('button', { className: 'e-css e-btn', attrs: { 'type': 'button' } });\r\n this.browseButton.setAttribute('tabindex', this.tabIndex);\r\n if (typeof (this.buttons.browse) === 'string') {\r\n this.browseButton.textContent = (this.buttons.browse === 'Browse...') ?\r\n this.localizedTexts('Browse') : this.buttons.browse;\r\n this.browseButton.setAttribute('title', this.browseButton.innerText);\r\n }\r\n else {\r\n this.browseButton.appendChild(this.buttons.browse);\r\n }\r\n this.element.setAttribute('aria-label', 'Uploader');\r\n };\r\n Uploader.prototype.renderActionButtons = function () {\r\n this.element.setAttribute('tabindex', '-1');\r\n this.actionButtons = this.createElement('div', { className: ACTION_BUTTONS });\r\n this.uploadButton = this.createElement('button', { className: UPLOAD_BUTTONS,\r\n attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } });\r\n this.clearButton = this.createElement('button', { className: CLEAR_BUTTONS,\r\n attrs: { 'type': 'button', 'tabindex': this.btnTabIndex } });\r\n this.actionButtons.appendChild(this.clearButton);\r\n this.actionButtons.appendChild(this.uploadButton);\r\n this.renderButtonTemplates();\r\n this.uploadWrapper.appendChild(this.actionButtons);\r\n this.browseButton.blur();\r\n if (!this.isPreloadFiles) {\r\n this.uploadButton.focus();\r\n }\r\n this.wireActionButtonEvents();\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.serverActionButtonsEventBind = function (element) {\r\n if (element && !this.isForm) {\r\n this.browseButton.blur();\r\n this.actionButtons = element;\r\n this.uploadButton = this.actionButtons.querySelector('.e-file-upload-btn');\r\n this.clearButton = this.actionButtons.querySelector('.e-file-clear-btn');\r\n this.uploadButton.focus();\r\n this.unwireActionButtonEvents();\r\n this.wireActionButtonEvents();\r\n this.checkActionButtonStatus();\r\n }\r\n };\r\n Uploader.prototype.wireActionButtonEvents = function () {\r\n EventHandler.add(this.uploadButton, 'click', this.uploadButtonClick, this);\r\n EventHandler.add(this.clearButton, 'click', this.clearButtonClick, this);\r\n };\r\n Uploader.prototype.unwireActionButtonEvents = function () {\r\n EventHandler.remove(this.uploadButton, 'click', this.uploadButtonClick);\r\n EventHandler.remove(this.clearButton, 'click', this.clearButtonClick);\r\n };\r\n Uploader.prototype.removeActionButtons = function () {\r\n if (this.actionButtons) {\r\n this.unwireActionButtonEvents();\r\n detach(this.actionButtons);\r\n this.actionButtons = null;\r\n }\r\n };\r\n Uploader.prototype.renderButtonTemplates = function () {\r\n if (typeof (this.buttons.browse) === 'string') {\r\n this.browseButton.textContent = (this.buttons.browse === 'Browse...') ?\r\n this.localizedTexts('Browse') : this.buttons.browse;\r\n this.browseButton.setAttribute('title', this.browseButton.textContent);\r\n }\r\n else {\r\n this.browseButton.innerHTML = '';\r\n this.browseButton.appendChild(this.buttons.browse);\r\n }\r\n if (this.uploadButton) {\r\n var uploadText = isNullOrUndefined(this.buttons.upload) ? 'Upload' : this.buttons.upload;\r\n this.buttons.upload = uploadText;\r\n if (typeof (this.buttons.upload) === 'string') {\r\n this.uploadButton.textContent = (this.buttons.upload === 'Upload') ?\r\n this.localizedTexts('Upload') : this.buttons.upload;\r\n this.uploadButton.setAttribute('title', this.uploadButton.textContent);\r\n }\r\n else {\r\n this.uploadButton.innerHTML = '';\r\n this.uploadButton.appendChild(this.buttons.upload);\r\n }\r\n }\r\n if (this.clearButton) {\r\n var clearText = isNullOrUndefined(this.buttons.clear) ? 'Clear' : this.buttons.clear;\r\n this.buttons.clear = clearText;\r\n if (typeof (this.buttons.clear) === 'string') {\r\n this.clearButton.textContent = (this.buttons.clear === 'Clear') ?\r\n this.localizedTexts('Clear') : this.buttons.clear;\r\n this.clearButton.setAttribute('title', this.clearButton.textContent);\r\n }\r\n else {\r\n this.clearButton.innerHTML = '';\r\n this.clearButton.appendChild(this.buttons.clear);\r\n }\r\n }\r\n };\r\n Uploader.prototype.initializeUpload = function () {\r\n this.element.setAttribute('tabindex', '-1');\r\n var inputWrapper = this.createElement('span', { className: INPUT_WRAPPER });\r\n this.element.parentElement.insertBefore(inputWrapper, this.element);\r\n this.dropAreaWrapper = this.createElement('div', { className: DROP_WRAPPER });\r\n this.element.parentElement.insertBefore(this.dropAreaWrapper, this.element);\r\n inputWrapper.appendChild(this.element);\r\n this.dropAreaWrapper.appendChild(this.browseButton);\r\n this.dropAreaWrapper.appendChild(inputWrapper);\r\n this.uploadWrapper = this.createElement('div', { className: CONTROL_WRAPPER });\r\n this.dropAreaWrapper.parentElement.insertBefore(this.uploadWrapper, this.dropAreaWrapper);\r\n this.uploadWrapper.appendChild(this.dropAreaWrapper);\r\n this.setDropArea();\r\n };\r\n Uploader.prototype.renderPreLoadFiles = function () {\r\n if (this.files.length) {\r\n if (this.enablePersistence && this.filesData.length) {\r\n this.createFileList(this.filesData);\r\n return;\r\n }\r\n if (isNullOrUndefined(this.files[0].size)) {\r\n return;\r\n }\r\n this.isPreloadFiles = true;\r\n var files = [].slice.call(this.files);\r\n var filesData = [];\r\n if (!this.multiple) {\r\n this.clearData();\r\n files = [files[0]];\r\n }\r\n for (var _i = 0, files_1 = files; _i < files_1.length; _i++) {\r\n var data = files_1[_i];\r\n var fileData = {\r\n name: data.name + '.' + data.type.split('.')[data.type.split('.').length - 1],\r\n rawFile: '',\r\n size: data.size,\r\n status: this.localizedTexts('uploadSuccessMessage'),\r\n type: data.type,\r\n validationMessages: { minSize: '', maxSize: '' },\r\n statusCode: '2'\r\n };\r\n filesData.push(fileData);\r\n this.filesData.push(fileData);\r\n }\r\n this.createFileList(filesData);\r\n if (!this.autoUpload && this.listParent && !this.actionButtons && (!this.isForm || this.allowUpload()) && this.showFileList) {\r\n this.renderActionButtons();\r\n }\r\n this.checkActionButtonStatus();\r\n if (this.sequentialUpload) {\r\n this.count = this.filesData.length - 1;\r\n }\r\n this.isPreloadFiles = false;\r\n }\r\n };\r\n Uploader.prototype.checkActionButtonStatus = function () {\r\n if (this.actionButtons) {\r\n var length_1 = this.uploadWrapper.querySelectorAll('.' + VALIDATION_FAILS).length +\r\n this.uploadWrapper.querySelectorAll('.e-upload-fails:not(.e-upload-progress)').length +\r\n this.uploadWrapper.querySelectorAll('span.' + UPLOAD_SUCCESS).length +\r\n this.uploadWrapper.querySelectorAll('span.' + UPLOAD_INPROGRESS).length;\r\n if (length_1 > 0 && length_1 === this.uploadWrapper.querySelectorAll('li').length) {\r\n this.uploadButton.setAttribute('disabled', 'disabled');\r\n }\r\n else {\r\n this.uploadButton.removeAttribute('disabled');\r\n }\r\n }\r\n };\r\n Uploader.prototype.setDropArea = function () {\r\n var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop');\r\n if (this.dropArea) {\r\n this.dropZoneElement = (typeof (this.dropArea) !== 'string') ? this.dropArea :\r\n select(this.dropArea, document);\r\n var element = this.element;\r\n var enableDropText = false;\r\n while (element.parentNode) {\r\n element = element.parentNode;\r\n if (element === this.dropZoneElement) {\r\n enableDropText = true;\r\n if (!dropTextArea) {\r\n this.createDropTextHint();\r\n }\r\n else {\r\n dropTextArea.innerHTML = this.localizedTexts('dropFilesHint');\r\n }\r\n }\r\n }\r\n if (!enableDropText && dropTextArea) {\r\n remove(dropTextArea);\r\n }\r\n }\r\n else if (!isNullOrUndefined(this.uploaderOptions) && this.uploaderOptions.dropArea === undefined) {\r\n this.createDropTextHint();\r\n this.dropZoneElement = this.uploadWrapper;\r\n this.setProperties({ dropArea: this.uploadWrapper }, true);\r\n }\r\n this.bindDropEvents();\r\n };\r\n Uploader.prototype.updateDropArea = function () {\r\n if (this.dropArea) {\r\n this.setDropArea();\r\n }\r\n else {\r\n this.dropZoneElement = null;\r\n var dropTextArea = this.dropAreaWrapper.querySelector('.e-file-drop');\r\n if (dropTextArea) {\r\n remove(dropTextArea);\r\n }\r\n }\r\n };\r\n Uploader.prototype.createDropTextHint = function () {\r\n var fileDropArea = this.createElement('span', { className: DROP_AREA });\r\n fileDropArea.innerHTML = this.localizedTexts('dropFilesHint');\r\n this.dropAreaWrapper.appendChild(fileDropArea);\r\n };\r\n Uploader.prototype.updateHTMLAttrToElement = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var pro = _a[_i];\r\n if (wrapperAttr.indexOf(pro) < 0) {\r\n this.element.setAttribute(pro, this.htmlAttributes[pro]);\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.updateHTMLAttrToWrapper = function () {\r\n if (!isNullOrUndefined(this.htmlAttributes)) {\r\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\r\n var pro = _a[_i];\r\n if (wrapperAttr.indexOf(pro) > -1) {\r\n if (pro === 'class') {\r\n var updatedClassValues = (this.htmlAttributes[pro].replace(/\\s+/g, ' ')).trim();\r\n if (updatedClassValues !== '') {\r\n addClass([this.uploadWrapper], updatedClassValues.split(' '));\r\n }\r\n }\r\n else if (pro === 'style') {\r\n var uploadStyle = this.uploadWrapper.getAttribute(pro);\r\n uploadStyle = !isNullOrUndefined(uploadStyle) ? (uploadStyle + this.htmlAttributes[pro]) :\r\n this.htmlAttributes[pro];\r\n this.uploadWrapper.setAttribute(pro, uploadStyle);\r\n }\r\n else {\r\n this.uploadWrapper.setAttribute(pro, this.htmlAttributes[pro]);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.setMultipleSelection = function () {\r\n if (this.multiple && !this.element.hasAttribute('multiple')) {\r\n var newAttr = document.createAttribute('multiple');\r\n newAttr.value = 'multiple';\r\n this.element.setAttributeNode(newAttr);\r\n }\r\n else if (!this.multiple) {\r\n this.element.removeAttribute('multiple');\r\n }\r\n };\r\n Uploader.prototype.checkAutoUpload = function (fileData) {\r\n if (this.autoUpload) {\r\n if (this.sequentialUpload) {\r\n /* istanbul ignore next */\r\n this.sequenceUpload(fileData);\r\n }\r\n else {\r\n this.upload(fileData);\r\n }\r\n this.removeActionButtons();\r\n }\r\n else if (!this.actionButtons) {\r\n this.renderActionButtons();\r\n }\r\n this.checkActionButtonStatus();\r\n };\r\n Uploader.prototype.sequenceUpload = function (fileData) {\r\n if (this.filesData.length - fileData.length === 0 ||\r\n this.filesData[(this.filesData.length - fileData.length - 1)].statusCode !== '1') {\r\n ++this.count;\r\n var isFileListCreated = this.showFileList ? false : true;\r\n if (typeof this.filesData[this.count] === 'object') {\r\n this.isFirstFileOnSelection = false;\r\n this.upload(this.filesData[this.count], isFileListCreated);\r\n if (this.filesData[this.count].statusCode === '0') {\r\n this.sequenceUpload(fileData);\r\n }\r\n }\r\n else {\r\n --this.count;\r\n }\r\n }\r\n };\r\n Uploader.prototype.setCSSClass = function (oldCSSClass) {\r\n var updatedCssClassValue = this.cssClass;\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n updatedCssClassValue = (this.cssClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(this.cssClass) && updatedCssClassValue !== '') {\r\n addClass([this.uploadWrapper], updatedCssClassValue.split(updatedCssClassValue.indexOf(',') > -1 ? ',' : ' '));\r\n }\r\n var updatedOldCssClass = oldCSSClass;\r\n if (!isNullOrUndefined(oldCSSClass)) {\r\n updatedOldCssClass = (oldCSSClass.replace(/\\s+/g, ' ')).trim();\r\n }\r\n if (!isNullOrUndefined(oldCSSClass) && updatedOldCssClass !== '') {\r\n removeClass([this.uploadWrapper], updatedOldCssClass.split(' '));\r\n }\r\n };\r\n Uploader.prototype.wireEvents = function () {\r\n EventHandler.add(this.browseButton, 'click', this.browseButtonClick, this);\r\n EventHandler.add(this.element, 'change', this.onSelectFiles, this);\r\n EventHandler.add(document, 'click', this.removeFocus, this);\r\n this.keyboardModule = new KeyboardEvents(this.uploadWrapper, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n if (this.isForm) {\r\n EventHandler.add(this.formElement, 'reset', this.resetForm, this);\r\n }\r\n };\r\n Uploader.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.browseButton, 'click', this.browseButtonClick);\r\n EventHandler.remove(this.element, 'change', this.onSelectFiles);\r\n EventHandler.remove(document, 'click', this.removeFocus);\r\n if (this.isForm) {\r\n EventHandler.remove(this.formElement, 'reset', this.resetForm);\r\n }\r\n if (this.keyboardModule) {\r\n this.keyboardModule.destroy();\r\n }\r\n };\r\n Uploader.prototype.resetForm = function () {\r\n this.clearAll();\r\n };\r\n Uploader.prototype.keyActionHandler = function (e) {\r\n var targetElement = e.target;\r\n switch (e.action) {\r\n case 'enter':\r\n if (e.target === this.clearButton) {\r\n this.clearButtonClick();\r\n }\r\n else if (e.target === this.uploadButton) {\r\n this.uploadButtonClick();\r\n }\r\n else if (e.target === this.browseButton) {\r\n this.browseButtonClick();\r\n }\r\n else if (targetElement.classList.contains(PAUSE_UPLOAD)) {\r\n var metaData = this.getCurrentMetaData(null, e);\r\n metaData.file.statusCode = '4';\r\n metaData.file.status = this.localizedTexts('pauseUpload');\r\n this.abortUpload(metaData, false);\r\n }\r\n else if (targetElement.classList.contains(RESUME_UPLOAD)) {\r\n this.resumeUpload(this.getCurrentMetaData(null, e), e);\r\n }\r\n else if (targetElement.classList.contains(RETRY_ICON)) {\r\n var metaData = this.getCurrentMetaData(null, e);\r\n if (!isNullOrUndefined(metaData)) {\r\n metaData.file.statusCode = '1';\r\n metaData.file.status = this.localizedTexts('readyToUploadMessage');\r\n this.chunkUpload(metaData.file);\r\n }\r\n else {\r\n var target = e.target.parentElement;\r\n var fileData = this.filesData[this.fileList.indexOf(target)];\r\n this.retry(fileData);\r\n }\r\n }\r\n else {\r\n this.removeFiles(e);\r\n if (!targetElement.classList.contains(ABORT_ICON)) {\r\n this.browseButton.focus();\r\n }\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n break;\r\n }\r\n };\r\n Uploader.prototype.getCurrentMetaData = function (fileInfo, e) {\r\n var fileData;\r\n var targetMetaData;\r\n if (isNullOrUndefined(fileInfo)) {\r\n var target = e.target.parentElement;\r\n fileData = this.filesData[this.fileList.indexOf(target)];\r\n }\r\n else {\r\n fileData = fileInfo;\r\n }\r\n for (var i = 0; i < this.uploadMetaData.length; i++) {\r\n if (this.uploadMetaData[i].file.name === fileData.name) {\r\n targetMetaData = this.uploadMetaData[i];\r\n }\r\n }\r\n return targetMetaData;\r\n };\r\n Uploader.prototype.removeFocus = function () {\r\n if (this.uploadWrapper && this.listParent && this.listParent.querySelector('.' + ICON_FOCUSED)) {\r\n document.activeElement.blur();\r\n this.listParent.querySelector('.' + ICON_FOCUSED).classList.remove(ICON_FOCUSED);\r\n }\r\n };\r\n Uploader.prototype.browseButtonClick = function () {\r\n this.element.click();\r\n };\r\n Uploader.prototype.uploadButtonClick = function () {\r\n if (this.sequentialUpload) {\r\n this.sequenceUpload(this.filesData);\r\n }\r\n else {\r\n this.upload(this.filesData);\r\n }\r\n };\r\n Uploader.prototype.clearButtonClick = function () {\r\n this.clearAll();\r\n /* istanbul ignore next */\r\n if (this.sequentialUpload) {\r\n this.count = -1;\r\n }\r\n this.actionCompleteCount = 0;\r\n };\r\n Uploader.prototype.bindDropEvents = function () {\r\n if (this.dropZoneElement) {\r\n EventHandler.add(this.dropZoneElement, 'drop', this.dropElement, this);\r\n EventHandler.add(this.dropZoneElement, 'dragover', this.dragHover, this);\r\n EventHandler.add(this.dropZoneElement, 'dragleave', this.onDragLeave, this);\r\n EventHandler.add(this.dropZoneElement, 'paste', this.onPasteFile, this);\r\n EventHandler.add(this.dropZoneElement, 'dragenter', this.onDragEnter, this);\r\n }\r\n };\r\n Uploader.prototype.unBindDropEvents = function () {\r\n if (this.dropZoneElement) {\r\n EventHandler.remove(this.dropZoneElement, 'drop', this.dropElement);\r\n EventHandler.remove(this.dropZoneElement, 'dragover', this.dragHover);\r\n EventHandler.remove(this.dropZoneElement, 'dragleave', this.onDragLeave);\r\n EventHandler.remove(this.dropZoneElement, 'dragenter', this.onDragEnter);\r\n }\r\n };\r\n Uploader.prototype.onDragEnter = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.dropZoneElement.classList.add(DRAG_HOVER);\r\n this.dragCounter = this.dragCounter + 1;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n Uploader.prototype.onDragLeave = function () {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n this.dragCounter = this.dragCounter - 1;\r\n if (!this.dragCounter) {\r\n this.dropZoneElement.classList.remove(DRAG_HOVER);\r\n }\r\n };\r\n Uploader.prototype.dragHover = function (e) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n if (this.dropEffect !== 'Default') {\r\n e.dataTransfer.dropEffect = this.dropEffect.toLowerCase();\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.dropElement = function (e) {\r\n this.dragCounter = 0;\r\n this.dropZoneElement.classList.remove(DRAG_HOVER);\r\n this.onSelectFiles(e);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.onPasteFile = function (event) {\r\n var item = event.clipboardData.items;\r\n if (item.length !== 1) {\r\n return;\r\n }\r\n var pasteFile = [].slice.call(item)[0];\r\n if ((pasteFile.kind === 'file') && pasteFile.type.match('^image/')) {\r\n this.renderSelectedFiles(event, [pasteFile.getAsFile()], false, true);\r\n }\r\n };\r\n Uploader.prototype.getSelectedFiles = function (index) {\r\n var data = [];\r\n var liElement = this.fileList[index];\r\n var allFiles = this.getFilesData();\r\n var nameElements = +liElement.getAttribute('data-files-count');\r\n var startIndex = 0;\r\n for (var i = 0; i < index; i++) {\r\n startIndex += (+this.fileList[i].getAttribute('data-files-count'));\r\n }\r\n for (var j = startIndex; j < (startIndex + nameElements); j++) {\r\n data.push(allFiles[j]);\r\n }\r\n return data;\r\n };\r\n Uploader.prototype.removeFiles = function (args) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var selectedElement = args.target.parentElement;\r\n var index = this.fileList.indexOf(selectedElement);\r\n var liElement = this.fileList[index];\r\n var formUpload = this.isFormUpload();\r\n var fileData = formUpload ? this.getSelectedFiles(index) : this.getFilesInArray(this.filesData[index]);\r\n if (isNullOrUndefined(fileData)) {\r\n return;\r\n }\r\n if (args.target.classList.contains(ABORT_ICON) && !formUpload) {\r\n fileData[0].statusCode = '5';\r\n if (!isNullOrUndefined(liElement)) {\r\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\r\n createSpinner({ target: spinnerTarget, width: '20px' });\r\n showSpinner(spinnerTarget);\r\n }\r\n if (this.sequentialUpload) {\r\n /* istanbul ignore next */\r\n this.uploadSequential();\r\n }\r\n if (!(liElement.classList.contains(RESTRICT_RETRY))) {\r\n this.checkActionComplete(true);\r\n }\r\n }\r\n else if (!closest(args.target, '.' + SPINNER_PANE)) {\r\n this.remove(fileData, false, false, true, args);\r\n }\r\n this.element.value = '';\r\n this.checkActionButtonStatus();\r\n };\r\n Uploader.prototype.removeFilesData = function (file, customTemplate) {\r\n var index;\r\n if (customTemplate) {\r\n if (!this.showFileList) {\r\n index = this.filesData.indexOf(file);\r\n this.filesData.splice(index, 1);\r\n }\r\n return;\r\n }\r\n var selectedElement = this.getLiElement(file);\r\n if (isNullOrUndefined(selectedElement)) {\r\n return;\r\n }\r\n detach(selectedElement);\r\n index = this.fileList.indexOf(selectedElement);\r\n this.fileList.splice(index, 1);\r\n this.filesData.splice(index, 1);\r\n if (this.fileList.length === 0 && !isNullOrUndefined(this.listParent)) {\r\n detach(this.listParent);\r\n this.listParent = null;\r\n this.removeActionButtons();\r\n }\r\n if (this.sequentialUpload) {\r\n /* istanbul ignore next */\r\n if (index <= this.count) {\r\n --this.count;\r\n }\r\n }\r\n };\r\n Uploader.prototype.removeUploadedFile = function (file, eventArgs, removeDirectly, custom) {\r\n var _this = this;\r\n var selectedFiles = file;\r\n var ajax = new Ajax(this.asyncSettings.removeUrl, 'POST', true, null);\r\n ajax.emitError = false;\r\n var formData = new FormData();\r\n ajax.beforeSend = function (e) {\r\n eventArgs.currentRequest = ajax.httpRequest;\r\n if (!removeDirectly) {\r\n _this.trigger('removing', eventArgs, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n e.cancel = true;\r\n }\r\n else {\r\n _this.removingEventCallback(eventArgs, formData, selectedFiles, file);\r\n }\r\n });\r\n }\r\n else {\r\n _this.removingEventCallback(eventArgs, formData, selectedFiles, file);\r\n }\r\n };\r\n ajax.onLoad = function (e) {\r\n _this.removeCompleted(e, selectedFiles, custom);\r\n return {};\r\n };\r\n /* istanbul ignore next */\r\n ajax.onError = function (e) {\r\n _this.removeFailed(e, selectedFiles, custom);\r\n return {};\r\n };\r\n ajax.send(formData);\r\n };\r\n Uploader.prototype.removingEventCallback = function (eventArgs, formData, selectedFiles, file) {\r\n /* istanbul ignore next */\r\n var name = this.element.getAttribute('name');\r\n var liElement = this.getLiElement(file);\r\n if (!isNullOrUndefined(liElement) && (!isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON)) ||\r\n !isNullOrUndefined(liElement.querySelector('.' + REMOVE_ICON)))) {\r\n var spinnerTarget = liElement.querySelector('.' + DELETE_ICON) ?\r\n liElement.querySelector('.' + DELETE_ICON) :\r\n liElement.querySelector('.' + REMOVE_ICON);\r\n createSpinner({ target: spinnerTarget, width: '20px' });\r\n showSpinner(spinnerTarget);\r\n }\r\n if (eventArgs.postRawFile && !isNullOrUndefined(selectedFiles.rawFile) && selectedFiles.rawFile !== '') {\r\n formData.append(name, selectedFiles.rawFile, selectedFiles.name);\r\n }\r\n else {\r\n formData.append(name, selectedFiles.name);\r\n }\r\n this.updateFormData(formData, eventArgs.customFormData);\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.updateFormData = function (formData, customData) {\r\n if (customData.length > 0 && customData[0]) {\r\n var _loop_1 = function (i) {\r\n var data = customData[i];\r\n // eslint-disable-next-line @typescript-eslint/tslint/config\r\n var value = Object.keys(data).map(function (e) {\r\n return data[e];\r\n });\r\n formData.append(Object.keys(data)[0], value);\r\n };\r\n for (var i = 0; i < customData.length; i++) {\r\n _loop_1(i);\r\n }\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.updateCustomheader = function (request, currentRequest) {\r\n if (currentRequest.length > 0 && currentRequest[0]) {\r\n var _loop_2 = function (i) {\r\n var data = currentRequest[i];\r\n // eslint-disable-next-line @typescript-eslint/tslint/config\r\n var value = Object.keys(data).map(function (e) {\r\n return data[e];\r\n });\r\n request.setRequestHeader(Object.keys(data)[0], value);\r\n };\r\n for (var i = 0; i < currentRequest.length; i++) {\r\n _loop_2(i);\r\n }\r\n }\r\n };\r\n Uploader.prototype.removeCompleted = function (e, files, customTemplate) {\r\n var response = e && e.currentTarget ? this.getResponse(e) : null;\r\n var status = e.target;\r\n if (status.readyState === 4 && status.status >= 200 && status.status <= 299) {\r\n var args = {\r\n e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedSuccessMessage'), '2')\r\n };\r\n this.trigger('success', args);\r\n this.removeFilesData(files, customTemplate);\r\n var index = this.uploadedFilesData.indexOf(files);\r\n this.uploadedFilesData.splice(index, 1);\r\n this.trigger('change', { files: this.uploadedFilesData });\r\n }\r\n else {\r\n this.removeFailed(e, files, customTemplate);\r\n }\r\n };\r\n Uploader.prototype.removeFailed = function (e, files, customTemplate) {\r\n var response = e && e.currentTarget ? this.getResponse(e) : null;\r\n var args = {\r\n e: e, response: response, operation: 'remove', file: this.updateStatus(files, this.localizedTexts('removedFailedMessage'), '0')\r\n };\r\n if (!customTemplate) {\r\n var index = this.filesData.indexOf(files);\r\n var rootElement = this.fileList[index];\r\n if (rootElement) {\r\n rootElement.classList.remove(UPLOAD_SUCCESS);\r\n rootElement.classList.add(UPLOAD_FAILED);\r\n var statusElement = rootElement.querySelector('.' + STATUS);\r\n if (statusElement) {\r\n statusElement.classList.remove(UPLOAD_SUCCESS);\r\n statusElement.classList.add(UPLOAD_FAILED);\r\n }\r\n }\r\n this.checkActionButtonStatus();\r\n }\r\n this.trigger('failure', args);\r\n var liElement = this.getLiElement(files);\r\n /* istanbul ignore next */\r\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {\r\n var spinnerTarget = liElement.querySelector('.' + DELETE_ICON);\r\n hideSpinner(spinnerTarget);\r\n detach(liElement.querySelector('.e-spinner-pane'));\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.getFilesFromFolder = function (event) {\r\n this.filesEntries = [];\r\n var items = this.multiple ?\r\n event.dataTransfer.items : [event.dataTransfer.items[0]];\r\n var validDirectoryUpload = this.checkDirectoryUpload(items);\r\n if (!validDirectoryUpload) {\r\n return;\r\n }\r\n var _loop_3 = function (i) {\r\n var item = items[i].webkitGetAsEntry();\r\n if (item.isFile) {\r\n var files_2 = [];\r\n (item).file(function (fileObj) {\r\n var path = item.fullPath;\r\n files_2.push({ 'path': path, 'file': fileObj });\r\n });\r\n this_1.renderSelectedFiles(event, files_2, true);\r\n }\r\n else if (item.isDirectory) {\r\n this_1.traverseFileTree(item, event);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < items.length; i++) {\r\n _loop_3(i);\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.checkDirectoryUpload = function (items) {\r\n for (var i = 0; items && i < items.length; i++) {\r\n var item = items[i].webkitGetAsEntry();\r\n if (item.isDirectory) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n /* eslint-disable @typescript-eslint/explicit-module-boundary-types */\r\n /* istanbul ignore next */\r\n Uploader.prototype.traverseFileTree = function (item, event) {\r\n /* eslint-enable @typescript-eslint/explicit-module-boundary-types */\r\n if (item.isFile) {\r\n this.filesEntries.push(item);\r\n }\r\n else if (item.isDirectory) {\r\n var directoryReader = item.createReader();\r\n this.readFileFromDirectory(directoryReader, event);\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.readFileFromDirectory = function (directoryReader, event) {\r\n var _this = this;\r\n directoryReader.readEntries(function (entries) {\r\n for (var i = 0; i < entries.length; i++) {\r\n _this.traverseFileTree(entries[i], event);\r\n }\r\n _this.pushFilesEntries(event);\r\n if (entries.length) {\r\n _this.readFileFromDirectory(directoryReader);\r\n }\r\n });\r\n };\r\n Uploader.prototype.pushFilesEntries = function (event) {\r\n var _this = this;\r\n var files = [];\r\n var _loop_4 = function (i) {\r\n this_2.filesEntries[i].file(function (fileObj) {\r\n if (_this.filesEntries.length) {\r\n var path = _this.filesEntries[i].fullPath;\r\n files.push({ 'path': path, 'file': fileObj });\r\n if (i === _this.filesEntries.length - 1) {\r\n _this.filesEntries = [];\r\n _this.renderSelectedFiles(event, files, true);\r\n }\r\n }\r\n });\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < this.filesEntries.length; i++) {\r\n _loop_4(i);\r\n }\r\n };\r\n Uploader.prototype.onSelectFiles = function (args) {\r\n if (!this.enabled) {\r\n return;\r\n }\r\n var targetFiles;\r\n /* istanbul ignore next */\r\n if (args.type === 'drop') {\r\n if (this.directoryUpload) {\r\n this.getFilesFromFolder(args);\r\n }\r\n else {\r\n var files = this.sortFilesList = args.dataTransfer.files;\r\n if (this.browserName !== 'msie' && this.browserName !== 'edge' && this.browserName !== 'safari') {\r\n this.element.files = files;\r\n }\r\n if (files.length > 0) {\r\n targetFiles = this.multiple ? this.sortFileList(files) : [files[0]];\r\n this.renderSelectedFiles(args, targetFiles);\r\n }\r\n }\r\n }\r\n else {\r\n targetFiles = [].slice.call(args.target.files);\r\n this.renderSelectedFiles(args, targetFiles);\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.getBase64 = function (file) {\r\n return new Promise(function (resolve, reject) {\r\n var fileReader = new FileReader();\r\n fileReader.readAsDataURL(file);\r\n fileReader.onload = function () { return resolve(fileReader.result); };\r\n fileReader.onerror = function (error) { return reject(error); };\r\n });\r\n };\r\n /* istanbul ignore next */\r\n /* tslint:ignore */\r\n Uploader.prototype.renderSelectedFiles = function (args, targetFiles, directory, paste) {\r\n var _this = this;\r\n this.base64String = [];\r\n var eventArgs = {\r\n event: args,\r\n cancel: false,\r\n filesData: [],\r\n isModified: false,\r\n modifiedFilesData: [],\r\n progressInterval: '',\r\n isCanceled: false,\r\n currentRequest: null,\r\n customFormData: null\r\n };\r\n /* istanbul ignore next */\r\n if (targetFiles.length < 1) {\r\n eventArgs.isCanceled = true;\r\n this.trigger('selected', eventArgs);\r\n return;\r\n }\r\n this.flag = true;\r\n var fileData = [];\r\n if (!this.multiple) {\r\n this.clearData(true);\r\n targetFiles = [targetFiles[0]];\r\n }\r\n for (var i = 0; i < targetFiles.length; i++) {\r\n var file = directory ? targetFiles[i].file : targetFiles[i];\r\n this.updateInitialFileDetails(args, targetFiles, file, i, fileData, directory, paste);\r\n }\r\n eventArgs.filesData = fileData;\r\n if (this.allowedExtensions.indexOf('*') > -1) {\r\n this.allTypes = true;\r\n }\r\n if (!this.allTypes) {\r\n fileData = this.checkExtension(fileData);\r\n }\r\n this.trigger('selected', eventArgs, function (eventArgs) {\r\n _this._internalRenderSelect(eventArgs, fileData);\r\n });\r\n };\r\n Uploader.prototype.updateInitialFileDetails = function (args, \r\n // eslint-disable-next-line @typescript-eslint/indent\r\n targetFiles, file, i, fileData, directory, paste) {\r\n var fileName = directory ? targetFiles[i].path.substring(1, targetFiles[i].path.length) : paste ?\r\n getUniqueID(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name) :\r\n this.directoryUpload ? targetFiles[i].webkitRelativePath : file.name;\r\n var fileDetails = {\r\n name: fileName,\r\n rawFile: file,\r\n size: file.size,\r\n status: this.localizedTexts('readyToUploadMessage'),\r\n type: this.getFileType(file.name),\r\n validationMessages: this.validatedFileSize(file.size),\r\n statusCode: '1',\r\n id: getUniqueID(file.name.substring(0, file.name.lastIndexOf('.'))) + '.' + this.getFileType(file.name)\r\n };\r\n /* istanbul ignore next */\r\n if (paste) {\r\n fileDetails.fileSource = 'paste';\r\n }\r\n fileDetails.status = fileDetails.validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\r\n fileDetails.validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : fileDetails.status;\r\n if (fileDetails.validationMessages.minSize !== '' || fileDetails.validationMessages.maxSize !== '') {\r\n fileDetails.statusCode = '0';\r\n }\r\n fileData.push(fileDetails);\r\n };\r\n Uploader.prototype._internalRenderSelect = function (eventArgs, fileData) {\r\n if (!eventArgs.cancel) {\r\n /* istanbul ignore next */\r\n this.selectedFiles = this.selectedFiles.concat(fileData);\r\n this.btnTabIndex = this.disableKeyboardNavigation ? '-1' : '0';\r\n if (this.showFileList) {\r\n if (eventArgs.isModified && eventArgs.modifiedFilesData.length > 0) {\r\n for (var j = 0; j < eventArgs.modifiedFilesData.length; j++) {\r\n for (var k = 0; k < fileData.length; k++) {\r\n if (eventArgs.modifiedFilesData[j].id === fileData[k].id) {\r\n eventArgs.modifiedFilesData[j].rawFile = fileData[k].rawFile;\r\n }\r\n }\r\n }\r\n var dataFiles = this.allTypes ? eventArgs.modifiedFilesData :\r\n this.checkExtension(eventArgs.modifiedFilesData);\r\n this.updateSortedFileList(dataFiles);\r\n this.filesData = dataFiles;\r\n if (!this.isForm || this.allowUpload()) {\r\n this.checkAutoUpload(dataFiles);\r\n }\r\n }\r\n else {\r\n this.createFileList(fileData, true);\r\n this.filesData = this.filesData.concat(fileData);\r\n if (!this.isForm || this.allowUpload()) {\r\n this.checkAutoUpload(fileData);\r\n }\r\n }\r\n if (!isNullOrUndefined(eventArgs.progressInterval) && eventArgs.progressInterval !== '') {\r\n this.progressInterval = eventArgs.progressInterval;\r\n }\r\n }\r\n else {\r\n this.filesData = this.filesData.concat(fileData);\r\n if (this.autoUpload) {\r\n this.upload(this.filesData, true);\r\n }\r\n }\r\n this.raiseActionComplete();\r\n this.isFirstFileOnSelection = true;\r\n }\r\n };\r\n Uploader.prototype.allowUpload = function () {\r\n var allowFormUpload = false;\r\n if (this.isForm && (!isNullOrUndefined(this.asyncSettings.saveUrl) && this.asyncSettings.saveUrl !== '')) {\r\n allowFormUpload = true;\r\n }\r\n return allowFormUpload;\r\n };\r\n Uploader.prototype.isFormUpload = function () {\r\n var isFormUpload = false;\r\n if (this.isForm && ((isNullOrUndefined(this.asyncSettings.saveUrl) || this.asyncSettings.saveUrl === '')\r\n && (isNullOrUndefined(this.asyncSettings.removeUrl) || this.asyncSettings.removeUrl === ''))) {\r\n isFormUpload = true;\r\n }\r\n return isFormUpload;\r\n };\r\n Uploader.prototype.clearData = function (singleUpload) {\r\n if (!isNullOrUndefined(this.listParent)) {\r\n detach(this.listParent);\r\n this.listParent = null;\r\n }\r\n if (this.browserName !== 'msie' && !singleUpload) {\r\n this.element.value = '';\r\n }\r\n this.fileList = [];\r\n this.filesData = [];\r\n this.removeActionButtons();\r\n };\r\n Uploader.prototype.updateSortedFileList = function (filesData) {\r\n var previousListClone = this.createElement('div', { id: 'clonewrapper' });\r\n var added = -1;\r\n var removedList;\r\n if (this.listParent) {\r\n for (var i = 0; i < this.listParent.querySelectorAll('li').length; i++) {\r\n var liElement = this.listParent.querySelectorAll('li')[i];\r\n previousListClone.appendChild(liElement.cloneNode(true));\r\n }\r\n removedList = this.listParent.querySelectorAll('li');\r\n for (var _i = 0, removedList_1 = removedList; _i < removedList_1.length; _i++) {\r\n var item = removedList_1[_i];\r\n detach(item);\r\n }\r\n this.removeActionButtons();\r\n var oldList = [].slice.call(previousListClone.childNodes);\r\n detach(this.listParent);\r\n this.listParent = null;\r\n this.fileList = [];\r\n this.createParentUL();\r\n for (var index = 0; index < filesData.length; index++) {\r\n for (var j = 0; j < this.filesData.length; j++) {\r\n if (this.filesData[j].name === filesData[index].name) {\r\n this.listParent.appendChild(oldList[j]);\r\n EventHandler.add(oldList[j].querySelector('.e-icons'), 'click', this.removeFiles, this);\r\n this.fileList.push(oldList[j]);\r\n added = index;\r\n }\r\n }\r\n if (added !== index) {\r\n this.createFileList([filesData[index]]);\r\n }\r\n }\r\n }\r\n else {\r\n this.createFileList(filesData);\r\n }\r\n };\r\n Uploader.prototype.isBlank = function (str) {\r\n return (!str || /^\\s*$/.test(str));\r\n };\r\n Uploader.prototype.checkExtension = function (files) {\r\n var dropFiles = files;\r\n if (!this.isBlank(this.allowedExtensions)) {\r\n var allowedExtensions = [];\r\n var extensions = this.allowedExtensions.split(',');\r\n for (var _i = 0, extensions_1 = extensions; _i < extensions_1.length; _i++) {\r\n var extension = extensions_1[_i];\r\n allowedExtensions.push(extension.trim().toLocaleLowerCase());\r\n }\r\n for (var i = 0; i < files.length; i++) {\r\n if (allowedExtensions.indexOf(('.' + files[i].type).toLocaleLowerCase()) === -1) {\r\n files[i].status = this.localizedTexts('invalidFileType');\r\n files[i].statusCode = '0';\r\n }\r\n }\r\n }\r\n return dropFiles;\r\n };\r\n Uploader.prototype.validatedFileSize = function (fileSize) {\r\n var minSizeError = '';\r\n var maxSizeError = '';\r\n if (fileSize < this.minFileSize) {\r\n minSizeError = this.localizedTexts('invalidMinFileSize');\r\n }\r\n else if (fileSize > this.maxFileSize) {\r\n maxSizeError = this.localizedTexts('invalidMaxFileSize');\r\n }\r\n else {\r\n minSizeError = '';\r\n maxSizeError = '';\r\n }\r\n var errorMessage = { minSize: minSizeError, maxSize: maxSizeError };\r\n return errorMessage;\r\n };\r\n Uploader.prototype.isPreLoadFile = function (fileData) {\r\n var isPreload = false;\r\n for (var i = 0; i < this.files.length; i++) {\r\n if (this.files[i].name === fileData.name.slice(0, fileData.name.lastIndexOf('.')) && this.files[i].type === fileData.type) {\r\n isPreload = true;\r\n }\r\n }\r\n return isPreload;\r\n };\r\n Uploader.prototype.createCustomfileList = function (fileData) {\r\n this.createParentUL();\r\n for (var _i = 0, fileData_1 = fileData; _i < fileData_1.length; _i++) {\r\n var listItem = fileData_1[_i];\r\n var listElement = this.createElement('li', { className: FILE, attrs: { 'data-file-name': listItem.name } });\r\n this.uploadTemplateFn = this.templateComplier(this.template);\r\n var liTempCompiler = this.uploadTemplateFn(listItem, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, listElement);\r\n if (liTempCompiler) {\r\n var fromElements = [].slice.call(liTempCompiler);\r\n append(fromElements, listElement);\r\n }\r\n var index = fileData.indexOf(listItem);\r\n var eventArgs = {\r\n element: listElement,\r\n fileInfo: listItem,\r\n index: index,\r\n isPreload: this.isPreLoadFile(listItem)\r\n };\r\n var eventsArgs = {\r\n element: listElement,\r\n fileInfo: listItem,\r\n index: index,\r\n isPreload: this.isPreLoadFile(listItem)\r\n };\r\n this.trigger('rendering', eventArgs);\r\n this.trigger('fileListRendering', eventsArgs);\r\n this.listParent.appendChild(listElement);\r\n this.fileList.push(listElement);\r\n }\r\n this.renderReactTemplates();\r\n };\r\n Uploader.prototype.createParentUL = function () {\r\n if (isNullOrUndefined(this.listParent)) {\r\n this.listParent = this.createElement('ul', { className: LIST_PARENT });\r\n this.uploadWrapper.appendChild(this.listParent);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Uploader.prototype.formFileList = function (fileData, files) {\r\n var fileList = this.createElement('li', { className: FILE });\r\n fileList.setAttribute('data-files-count', fileData.length + '');\r\n var fileContainer = this.createElement('span', { className: TEXT_CONTAINER });\r\n var statusMessage;\r\n for (var _i = 0, fileData_2 = fileData; _i < fileData_2.length; _i++) {\r\n var listItem = fileData_2[_i];\r\n var fileNameEle = this.createElement('span', { className: FILE_NAME });\r\n fileNameEle.innerHTML = this.getFileNameOnly(listItem.name);\r\n var fileTypeEle = this.createElement('span', { className: FILE_TYPE });\r\n var fileType = this.getFileType(listItem.name);\r\n fileTypeEle.innerHTML = '.' + fileType;\r\n if (!fileType) {\r\n fileTypeEle.classList.add('e-hidden');\r\n }\r\n if (!this.enableRtl) {\r\n fileContainer.appendChild(fileNameEle);\r\n fileContainer.appendChild(fileTypeEle);\r\n }\r\n else {\r\n var rtlContainer = this.createElement('span', { className: RTL_CONTAINER });\r\n rtlContainer.appendChild(fileTypeEle);\r\n rtlContainer.appendChild(fileNameEle);\r\n fileContainer.appendChild(rtlContainer);\r\n }\r\n this.truncateName(fileNameEle);\r\n statusMessage = this.formValidateFileInfo(listItem, fileList);\r\n }\r\n fileList.appendChild(fileContainer);\r\n this.setListToFileInfo(fileData, fileList);\r\n var index = this.listParent.querySelectorAll('li').length;\r\n var infoEle = this.createElement('span');\r\n if (fileList.classList.contains(INVALID_FILE)) {\r\n infoEle.classList.add(STATUS);\r\n infoEle.classList.add(INVALID_FILE);\r\n infoEle.innerText = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage;\r\n }\r\n else {\r\n infoEle.classList.add(fileData.length > 1 ? INFORMATION : FILE_SIZE);\r\n infoEle.innerText = fileData.length > 1 ? this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , '\r\n + this.localizedTexts('size') + ': ' +\r\n this.bytesToSize(this.getFileSize(fileData)) : this.bytesToSize(fileData[0].size);\r\n this.createFormInput(fileData);\r\n }\r\n fileContainer.appendChild(infoEle);\r\n if (isNullOrUndefined(fileList.querySelector('.e-icons'))) {\r\n var iconElement = this.createElement('span', { className: 'e-icons', attrs: { 'tabindex': this.btnTabIndex } });\r\n /* istanbul ignore next */\r\n if (this.browserName === 'msie') {\r\n iconElement.classList.add('e-msie');\r\n }\r\n iconElement.setAttribute('title', this.localizedTexts('remove'));\r\n fileList.appendChild(fileContainer);\r\n fileList.appendChild(iconElement);\r\n EventHandler.add(iconElement, 'click', this.removeFiles, this);\r\n iconElement.classList.add(REMOVE_ICON);\r\n }\r\n var eventArgs = {\r\n element: fileList,\r\n fileInfo: this.mergeFileInfo(fileData, fileList),\r\n index: index,\r\n isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList))\r\n };\r\n var eventsArgs = {\r\n element: fileList,\r\n fileInfo: this.mergeFileInfo(fileData, fileList),\r\n index: index,\r\n isPreload: this.isPreLoadFile(this.mergeFileInfo(fileData, fileList))\r\n };\r\n this.trigger('rendering', eventArgs);\r\n this.trigger('fileListRendering', eventsArgs);\r\n this.listParent.appendChild(fileList);\r\n this.fileList.push(fileList);\r\n };\r\n Uploader.prototype.formValidateFileInfo = function (listItem, fileList) {\r\n var statusMessage = listItem.status;\r\n var validationMessages = this.validatedFileSize(listItem.size);\r\n if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') {\r\n this.addInvalidClass(fileList);\r\n statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\r\n validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage;\r\n }\r\n var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status;\r\n if (typeValidationMessage === this.localizedTexts('invalidFileType')) {\r\n this.addInvalidClass(fileList);\r\n statusMessage = typeValidationMessage;\r\n }\r\n return statusMessage;\r\n };\r\n Uploader.prototype.addInvalidClass = function (fileList) {\r\n fileList.classList.add(INVALID_FILE);\r\n };\r\n Uploader.prototype.createFormInput = function (fileData) {\r\n var inputElement = this.element.cloneNode(true);\r\n inputElement.classList.add(HIDDEN_INPUT);\r\n for (var _i = 0, fileData_3 = fileData; _i < fileData_3.length; _i++) {\r\n var listItem = fileData_3[_i];\r\n listItem.input = inputElement;\r\n }\r\n inputElement.setAttribute('name', this.uploaderName);\r\n this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).appendChild(inputElement);\r\n if (this.browserName !== 'msie' && this.browserName !== 'edge') {\r\n this.element.value = '';\r\n }\r\n };\r\n Uploader.prototype.getFileSize = function (fileData) {\r\n var fileSize = 0;\r\n for (var _i = 0, fileData_4 = fileData; _i < fileData_4.length; _i++) {\r\n var file = fileData_4[_i];\r\n fileSize += file.size;\r\n }\r\n return fileSize;\r\n };\r\n Uploader.prototype.mergeFileInfo = function (fileData, fileList) {\r\n var result = {\r\n name: '',\r\n rawFile: '',\r\n size: 0,\r\n status: '',\r\n type: '',\r\n validationMessages: { minSize: '', maxSize: '' },\r\n statusCode: '1',\r\n list: fileList\r\n };\r\n var fileNames = [];\r\n var type = '';\r\n for (var _i = 0, fileData_5 = fileData; _i < fileData_5.length; _i++) {\r\n var listItem = fileData_5[_i];\r\n fileNames.push(listItem.name);\r\n type = listItem.type;\r\n }\r\n result.name = fileNames.join(', ');\r\n result.size = this.getFileSize(fileData);\r\n result.type = type;\r\n result.status = this.statusForFormUpload(fileData, fileList);\r\n return result;\r\n };\r\n Uploader.prototype.statusForFormUpload = function (fileData, fileList) {\r\n var isValid = true;\r\n var statusMessage;\r\n for (var _i = 0, fileData_6 = fileData; _i < fileData_6.length; _i++) {\r\n var listItem = fileData_6[_i];\r\n statusMessage = listItem.status;\r\n var validationMessages = this.validatedFileSize(listItem.size);\r\n if (validationMessages.minSize !== '' || validationMessages.maxSize !== '') {\r\n isValid = false;\r\n statusMessage = validationMessages.minSize !== '' ? this.localizedTexts('invalidMinFileSize') :\r\n validationMessages.maxSize !== '' ? this.localizedTexts('invalidMaxFileSize') : statusMessage;\r\n }\r\n var typeValidationMessage = this.checkExtension(this.getFilesInArray(listItem))[0].status;\r\n if (typeValidationMessage === this.localizedTexts('invalidFileType')) {\r\n isValid = false;\r\n statusMessage = typeValidationMessage;\r\n }\r\n }\r\n if (!isValid) {\r\n fileList.classList.add(INVALID_FILE);\r\n statusMessage = fileData.length > 1 ? this.localizedTexts('invalidFileSelection') : statusMessage;\r\n }\r\n else {\r\n statusMessage = this.localizedTexts('totalFiles') + ': ' + fileData.length + ' , '\r\n + this.localizedTexts('size') + ': ' +\r\n this.bytesToSize(this.getFileSize(fileData));\r\n }\r\n return statusMessage;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Uploader.prototype.formCustomFileList = function (fileData, files) {\r\n this.createParentUL();\r\n var fileList = this.createElement('li', { className: FILE });\r\n fileList.setAttribute('data-files-count', fileData.length + '');\r\n this.setListToFileInfo(fileData, fileList);\r\n var result = this.mergeFileInfo(fileData, fileList);\r\n fileList.setAttribute('data-file-name', result.name);\r\n this.uploadTemplateFn = this.templateComplier(this.template);\r\n var liTempCompiler = this.uploadTemplateFn(result, this, 'template', this.element.id + 'Template', this.isStringTemplate, null, fileList);\r\n if (liTempCompiler) {\r\n var fromElements = [].slice.call(liTempCompiler);\r\n append(fromElements, fileList);\r\n }\r\n var index = this.listParent.querySelectorAll('li').length;\r\n if (!fileList.classList.contains(INVALID_FILE)) {\r\n this.createFormInput(fileData);\r\n }\r\n var eventArgs = {\r\n element: fileList,\r\n fileInfo: result,\r\n index: index,\r\n isPreload: this.isPreLoadFile(result)\r\n };\r\n var eventsArgs = {\r\n element: fileList,\r\n fileInfo: result,\r\n index: index,\r\n isPreload: this.isPreLoadFile(result)\r\n };\r\n this.trigger('rendering', eventArgs);\r\n this.trigger('fileListRendering', eventsArgs);\r\n this.listParent.appendChild(fileList);\r\n this.fileList.push(fileList);\r\n this.renderReactTemplates();\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Create the file list for specified files data.\r\n *\r\n * @param { FileInfo[] } fileData - Specifies the files data for file list creation.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.createFileList = function (fileData, isSelectedFile) {\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n this.createParentUL();\r\n if (this.template !== '' && !isNullOrUndefined(this.template)) {\r\n if (this.isFormUpload()) {\r\n this.uploadWrapper.classList.add(FORM_UPLOAD);\r\n this.formCustomFileList(fileData, this.element.files);\r\n }\r\n else {\r\n this.createCustomfileList(fileData);\r\n }\r\n }\r\n else if (this.isFormUpload()) {\r\n this.uploadWrapper.classList.add(FORM_UPLOAD);\r\n this.formFileList(fileData, this.element.files);\r\n }\r\n else {\r\n for (var _i = 0, fileData_7 = fileData; _i < fileData_7.length; _i++) {\r\n var listItem = fileData_7[_i];\r\n var liElement = this.createElement('li', {\r\n className: FILE,\r\n attrs: { 'data-file-name': listItem.name, 'data-files-count': '1' }\r\n });\r\n var textContainer = this.createElement('span', { className: TEXT_CONTAINER });\r\n var textElement = this.createElement('span', { className: FILE_NAME, attrs: { 'title': listItem.name } });\r\n textElement.innerHTML = this.getFileNameOnly(listItem.name);\r\n var fileExtension = this.createElement('span', { className: FILE_TYPE });\r\n var fileType = this.getFileType(listItem.name);\r\n fileExtension.innerHTML = '.' + fileType;\r\n if (!fileType) {\r\n fileExtension.classList.add('e-hidden');\r\n }\r\n if (!this.enableRtl) {\r\n textContainer.appendChild(textElement);\r\n textContainer.appendChild(fileExtension);\r\n }\r\n else {\r\n var rtlContainer = this.createElement('span', { className: RTL_CONTAINER });\r\n rtlContainer.appendChild(fileExtension);\r\n rtlContainer.appendChild(textElement);\r\n textContainer.appendChild(rtlContainer);\r\n }\r\n var fileSize = this.createElement('span', { className: FILE_SIZE });\r\n fileSize.innerHTML = this.bytesToSize(listItem.size);\r\n textContainer.appendChild(fileSize);\r\n var statusElement = this.createElement('span', { className: STATUS });\r\n textContainer.appendChild(statusElement);\r\n statusElement.innerHTML = listItem.status;\r\n liElement.appendChild(textContainer);\r\n var iconElement = this.createElement('span', { className: ' e-icons',\r\n attrs: { 'tabindex': this.btnTabIndex } });\r\n /* istanbul ignore next */\r\n if (this.browserName === 'msie') {\r\n iconElement.classList.add('e-msie');\r\n }\r\n iconElement.setAttribute('title', this.localizedTexts('remove'));\r\n liElement.appendChild(iconElement);\r\n EventHandler.add(iconElement, 'click', this.removeFiles, this);\r\n if (listItem.statusCode === '2') {\r\n statusElement.classList.add(UPLOAD_SUCCESS);\r\n iconElement.classList.add(DELETE_ICON);\r\n iconElement.setAttribute('title', this.localizedTexts('delete'));\r\n }\r\n else if (listItem.statusCode !== '1') {\r\n statusElement.classList.remove(UPLOAD_SUCCESS);\r\n statusElement.classList.add(VALIDATION_FAILS);\r\n }\r\n if (this.autoUpload && listItem.statusCode === '1' && this.asyncSettings.saveUrl !== '') {\r\n statusElement.innerHTML = '';\r\n }\r\n if (!iconElement.classList.contains(DELETE_ICON)) {\r\n iconElement.classList.add(REMOVE_ICON);\r\n }\r\n var index = fileData.indexOf(listItem);\r\n var eventArgs = {\r\n element: liElement,\r\n fileInfo: listItem,\r\n index: index,\r\n isPreload: this.isPreLoadFile(listItem)\r\n };\r\n var eventsArgs = {\r\n element: liElement,\r\n fileInfo: listItem,\r\n index: index,\r\n isPreload: this.isPreLoadFile(listItem)\r\n };\r\n this.trigger('rendering', eventArgs);\r\n this.trigger('fileListRendering', eventsArgs);\r\n this.listParent.appendChild(liElement);\r\n this.fileList.push(liElement);\r\n this.truncateName(textElement);\r\n var preventActionComplete = this.flag;\r\n if (this.isPreLoadFile(listItem)) {\r\n this.flag = false;\r\n this.checkActionComplete(true);\r\n this.flag = preventActionComplete;\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.getSlicedName = function (nameElement) {\r\n var text = nameElement.textContent;\r\n nameElement.dataset.tail = text.slice(text.length - 10);\r\n };\r\n Uploader.prototype.setListToFileInfo = function (fileData, fileList) {\r\n for (var _i = 0, fileData_8 = fileData; _i < fileData_8.length; _i++) {\r\n var listItem = fileData_8[_i];\r\n listItem.list = fileList;\r\n }\r\n };\r\n Uploader.prototype.truncateName = function (name) {\r\n var nameElement = name;\r\n if (this.browserName !== 'edge' && nameElement.offsetWidth < nameElement.scrollWidth) {\r\n this.getSlicedName(nameElement);\r\n /* istanbul ignore next */\r\n }\r\n else if (nameElement.offsetWidth + 1 < nameElement.scrollWidth) {\r\n this.getSlicedName(nameElement);\r\n }\r\n };\r\n Uploader.prototype.getFileType = function (name) {\r\n var extension;\r\n var index = name.lastIndexOf('.');\r\n if (index >= 0) {\r\n extension = name.substring(index + 1);\r\n }\r\n return extension ? extension : '';\r\n };\r\n Uploader.prototype.getFileNameOnly = function (name) {\r\n var type = this.getFileType(name);\r\n var names = name.split('.' + type);\r\n return type = names[0];\r\n };\r\n Uploader.prototype.setInitialAttributes = function () {\r\n if (this.initialAttr.accept) {\r\n this.element.setAttribute('accept', this.initialAttr.accept);\r\n }\r\n if (this.initialAttr.disabled) {\r\n this.element.setAttribute('disabled', 'disabled');\r\n }\r\n if (this.initialAttr.multiple) {\r\n var newAttr = document.createAttribute('multiple');\r\n this.element.setAttributeNode(newAttr);\r\n }\r\n };\r\n Uploader.prototype.filterfileList = function (files) {\r\n var filterFiles = [];\r\n var li;\r\n for (var i = 0; i < files.length; i++) {\r\n li = this.getLiElement(files[i]);\r\n if (!li.classList.contains(UPLOAD_SUCCESS)) {\r\n filterFiles.push(files[i]);\r\n }\r\n }\r\n return filterFiles;\r\n };\r\n Uploader.prototype.updateStatus = function (files, status, statusCode, updateLiStatus) {\r\n if (updateLiStatus === void 0) { updateLiStatus = true; }\r\n if (!(status === '' || isNullOrUndefined(status)) && !(statusCode === '' || isNullOrUndefined(statusCode))) {\r\n files.status = status;\r\n files.statusCode = statusCode;\r\n }\r\n if (updateLiStatus) {\r\n var li = this.getLiElement(files);\r\n if (!isNullOrUndefined(li)) {\r\n if (!isNullOrUndefined(li.querySelector('.' + STATUS)) && !((status === '' || isNullOrUndefined(status)))) {\r\n li.querySelector('.' + STATUS).textContent = status;\r\n }\r\n }\r\n }\r\n return files;\r\n };\r\n Uploader.prototype.getLiElement = function (files) {\r\n var index;\r\n for (var i = 0; i < this.filesData.length; i++) {\r\n if (!isNullOrUndefined(files) && ((!isNullOrUndefined(this.filesData[i].id) &&\r\n !isNullOrUndefined(files.id)) ? (this.filesData[i].name === files.name &&\r\n this.filesData[i].id === files.id) : this.filesData[i].name === files.name)) {\r\n index = i;\r\n }\r\n }\r\n return this.fileList[index];\r\n };\r\n Uploader.prototype.createProgressBar = function (liElement) {\r\n var progressbarWrapper = this.createElement('span', { className: PROGRESS_WRAPPER });\r\n var progressBar = this.createElement('progressbar', { className: PROGRESSBAR, attrs: { value: '0', max: '100' } });\r\n var progressbarInnerWrapper = this.createElement('span', { className: PROGRESS_INNER_WRAPPER });\r\n progressBar.setAttribute('style', 'width: 0%');\r\n var progressbarText = this.createElement('span', { className: PROGRESSBAR_TEXT });\r\n progressbarText.textContent = '0%';\r\n progressbarInnerWrapper.appendChild(progressBar);\r\n progressbarWrapper.appendChild(progressbarInnerWrapper);\r\n progressbarWrapper.appendChild(progressbarText);\r\n liElement.querySelector('.' + TEXT_CONTAINER).appendChild(progressbarWrapper);\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.updateProgressbar = function (e, li) {\r\n if (!isNaN(Math.round((e.loaded / e.total) * 100)) && !isNullOrUndefined(li.querySelector('.' + PROGRESSBAR))) {\r\n if (!isNullOrUndefined(this.progressInterval) && this.progressInterval !== '') {\r\n var value = (Math.round((e.loaded / e.total) * 100)) % parseInt(this.progressInterval, 10);\r\n if (value === 0 || value === 100) {\r\n this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%');\r\n }\r\n }\r\n else {\r\n this.changeProgressValue(li, Math.round((e.loaded / e.total) * 100).toString() + '%');\r\n }\r\n }\r\n };\r\n Uploader.prototype.changeProgressValue = function (li, progressValue) {\r\n li.querySelector('.' + PROGRESSBAR).setAttribute('style', 'width:' + progressValue);\r\n li.querySelector('.' + PROGRESSBAR_TEXT).textContent = progressValue;\r\n };\r\n Uploader.prototype.uploadInProgress = function (e, files, customUI, request) {\r\n var li = this.getLiElement(files);\r\n if (isNullOrUndefined(li) && (!customUI)) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(li)) {\r\n /* istanbul ignore next */\r\n if (files.statusCode === '5') {\r\n this.cancelUploadingFile(files, e, request, li);\r\n }\r\n if (!(li.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0) && li.querySelector('.' + STATUS)) {\r\n li.querySelector('.' + STATUS).classList.add(UPLOAD_INPROGRESS);\r\n this.createProgressBar(li);\r\n this.updateProgressBarClasses(li, UPLOAD_INPROGRESS);\r\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED);\r\n }\r\n this.updateProgressbar(e, li);\r\n var iconEle = li.querySelector('.' + REMOVE_ICON);\r\n if (!isNullOrUndefined(iconEle)) {\r\n iconEle.classList.add(ABORT_ICON, UPLOAD_INPROGRESS);\r\n iconEle.setAttribute('title', this.localizedTexts('abort'));\r\n iconEle.classList.remove(REMOVE_ICON);\r\n }\r\n }\r\n else {\r\n this.cancelUploadingFile(files, e, request);\r\n }\r\n var args = { e: e, operation: 'upload', file: this.updateStatus(files, this.localizedTexts('inProgress'), '3') };\r\n this.trigger('progress', args);\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.cancelUploadingFile = function (files, e, request, li) {\r\n var _this = this;\r\n if (files.statusCode === '5') {\r\n var eventArgs = {\r\n event: e,\r\n fileData: files,\r\n cancel: false,\r\n customFormData: []\r\n };\r\n this.trigger('canceling', eventArgs, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n files.statusCode = '3';\r\n if (!isNullOrUndefined(li)) {\r\n var spinnerTarget = li.querySelector('.' + ABORT_ICON);\r\n if (!isNullOrUndefined(spinnerTarget)) {\r\n hideSpinner(spinnerTarget);\r\n detach(li.querySelector('.e-spinner-pane'));\r\n }\r\n }\r\n }\r\n else {\r\n request.emitError = false;\r\n request.httpRequest.abort();\r\n var formData = new FormData();\r\n if (files.statusCode === '5') {\r\n var name_1 = _this.element.getAttribute('name');\r\n formData.append(name_1, files.name);\r\n formData.append('cancel-uploading', files.name);\r\n _this.updateFormData(formData, eventArgs.customFormData);\r\n var ajax = new Ajax(_this.asyncSettings.removeUrl, 'POST', true, null);\r\n ajax.emitError = false;\r\n ajax.onLoad = function (e) {\r\n _this.removecanceledFile(e, files);\r\n return {};\r\n };\r\n ajax.send(formData);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n Uploader.prototype.removecanceledFile = function (e, file) {\r\n var liElement = this.getLiElement(file);\r\n if (liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {\r\n return;\r\n }\r\n this.updateStatus(file, this.localizedTexts('fileUploadCancel'), '5');\r\n this.renderFailureState(e, file, liElement);\r\n var spinnerTarget = liElement.querySelector('.' + REMOVE_ICON);\r\n if (!isNullOrUndefined(liElement)) {\r\n hideSpinner(spinnerTarget);\r\n if (!isNullOrUndefined(liElement.querySelector('.e-spinner-pane'))) {\r\n detach(liElement.querySelector('.e-spinner-pane'));\r\n }\r\n }\r\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\r\n var args = { event: e, response: requestResponse, operation: 'cancel', file: file };\r\n this.trigger('success', args);\r\n };\r\n Uploader.prototype.renderFailureState = function (e, file, liElement) {\r\n var _this = this;\r\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\r\n this.removeProgressbar(liElement, 'failure');\r\n if (!isNullOrUndefined(liElement.querySelector('.e-file-status'))) {\r\n liElement.querySelector('.e-file-status').classList.add(UPLOAD_FAILED);\r\n }\r\n var deleteIcon = liElement.querySelector('.' + ABORT_ICON);\r\n if (isNullOrUndefined(deleteIcon)) {\r\n return;\r\n }\r\n deleteIcon.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);\r\n deleteIcon.classList.add(REMOVE_ICON);\r\n deleteIcon.setAttribute('title', this.localizedTexts('remove'));\r\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } });\r\n deleteIcon.parentElement.insertBefore(this.pauseButton, deleteIcon);\r\n this.pauseButton.setAttribute('title', this.localizedTexts('retry'));\r\n var retryElement = liElement.querySelector('.' + RETRY_ICON);\r\n /* istanbul ignore next */\r\n retryElement.addEventListener('click', function (e) {\r\n _this.reloadcanceledFile(e, file, liElement, false);\r\n }, false);\r\n };\r\n Uploader.prototype.reloadcanceledFile = function (e, file, liElement, custom) {\r\n file.statusCode = '1';\r\n file.status = this.localizedTexts('readyToUploadMessage');\r\n if (!custom) {\r\n if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {\r\n liElement.querySelector('.' + STATUS).classList.remove(UPLOAD_FAILED);\r\n }\r\n if (!isNullOrUndefined(liElement.querySelector('.' + RETRY_ICON))) {\r\n detach(liElement.querySelector('.' + RETRY_ICON));\r\n }\r\n this.pauseButton = null;\r\n }\r\n /* istanbul ignore next */\r\n liElement.classList.add(RESTRICT_RETRY);\r\n this.upload([file]);\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.uploadComplete = function (e, file, customUI) {\r\n var status = e.target;\r\n if (status.readyState === 4 && status.status >= 200 && status.status <= 299) {\r\n var li = this.getLiElement(file);\r\n if (isNullOrUndefined(li) && (!customUI || isNullOrUndefined(customUI))) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(li)) {\r\n this.updateProgressBarClasses(li, UPLOAD_SUCCESS);\r\n this.removeProgressbar(li, 'success');\r\n var iconEle = li.querySelector('.' + ABORT_ICON);\r\n if (!isNullOrUndefined(iconEle)) {\r\n iconEle.classList.add(DELETE_ICON);\r\n iconEle.setAttribute('title', this.localizedTexts('delete'));\r\n iconEle.classList.remove(ABORT_ICON);\r\n iconEle.classList.remove(UPLOAD_INPROGRESS);\r\n }\r\n }\r\n this.raiseSuccessEvent(e, file);\r\n }\r\n else {\r\n this.uploadFailed(e, file);\r\n }\r\n };\r\n Uploader.prototype.getResponse = function (e) {\r\n var target = e.currentTarget;\r\n var response = {\r\n readyState: target.readyState,\r\n statusCode: target.status,\r\n statusText: target.statusText,\r\n headers: target.getAllResponseHeaders(),\r\n withCredentials: target.withCredentials\r\n };\r\n return response;\r\n };\r\n Uploader.prototype.raiseSuccessEvent = function (e, file) {\r\n var _this = this;\r\n var response = e && e.currentTarget ? this.getResponse(e) : null;\r\n var statusMessage = this.localizedTexts('uploadSuccessMessage');\r\n var args = {\r\n e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '2', false), statusText: statusMessage\r\n };\r\n var liElement = this.getLiElement(file);\r\n if (!isNullOrUndefined(liElement)) {\r\n var spinnerEle = liElement.querySelector('.' + SPINNER_PANE);\r\n if (!isNullOrUndefined(spinnerEle)) {\r\n hideSpinner(liElement);\r\n detach(spinnerEle);\r\n }\r\n }\r\n this.trigger('success', args, function (args) {\r\n _this.updateStatus(file, args.statusText, '2');\r\n _this.uploadedFilesData.push(file);\r\n _this.trigger('change', { file: _this.uploadedFilesData });\r\n _this.checkActionButtonStatus();\r\n if (_this.fileList.length > 0) {\r\n if ((!(_this.getLiElement(file)).classList.contains(RESTRICT_RETRY))) {\r\n _this.uploadSequential();\r\n _this.checkActionComplete(true);\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n (_this.getLiElement(file)).classList.remove(RESTRICT_RETRY);\r\n }\r\n }\r\n });\r\n };\r\n Uploader.prototype.uploadFailed = function (e, file) {\r\n var _this = this;\r\n var li = this.getLiElement(file);\r\n var response = e && e.currentTarget ? this.getResponse(e) : null;\r\n var statusMessage = this.localizedTexts('uploadFailedMessage');\r\n var args = {\r\n e: e, response: response, operation: 'upload', file: this.updateStatus(file, statusMessage, '0', false), statusText: statusMessage\r\n };\r\n if (!isNullOrUndefined(li)) {\r\n this.renderFailureState(e, file, li);\r\n }\r\n this.trigger('failure', args, function (args) {\r\n _this.updateStatus(file, args.statusText, '0');\r\n _this.checkActionButtonStatus();\r\n _this.uploadSequential();\r\n _this.checkActionComplete(true);\r\n });\r\n };\r\n Uploader.prototype.uploadSequential = function () {\r\n if (this.sequentialUpload) {\r\n if (this.autoUpload) {\r\n /* istanbul ignore next */\r\n this.checkAutoUpload(this.filesData);\r\n }\r\n else {\r\n this.uploadButtonClick();\r\n }\r\n }\r\n };\r\n Uploader.prototype.checkActionComplete = function (increment) {\r\n if (increment) {\r\n ++this.actionCompleteCount;\r\n }\r\n else {\r\n --this.actionCompleteCount;\r\n }\r\n this.raiseActionComplete();\r\n };\r\n Uploader.prototype.raiseActionComplete = function () {\r\n if ((this.filesData.length === this.actionCompleteCount) && this.flag) {\r\n this.flag = false;\r\n var eventArgs = {\r\n fileData: []\r\n };\r\n eventArgs.fileData = this.getSelectedFileStatus(this.selectedFiles);\r\n this.trigger('actionComplete', eventArgs);\r\n }\r\n };\r\n Uploader.prototype.getSelectedFileStatus = function (selectedFiles) {\r\n var matchFiles = [];\r\n var matchFilesIndex = 0;\r\n for (var selectFileIndex = 0; selectFileIndex < selectedFiles.length; selectFileIndex++) {\r\n var selectedFileData = selectedFiles[selectFileIndex];\r\n for (var fileDataIndex = 0; fileDataIndex < this.filesData.length; fileDataIndex++) {\r\n if (this.filesData[fileDataIndex].name === selectedFileData.name) {\r\n matchFiles[matchFilesIndex] = this.filesData[fileDataIndex];\r\n ++matchFilesIndex;\r\n }\r\n }\r\n }\r\n return matchFiles;\r\n };\r\n Uploader.prototype.updateProgressBarClasses = function (li, className) {\r\n var progressBar = li.querySelector('.' + PROGRESSBAR);\r\n if (!isNullOrUndefined(progressBar)) {\r\n progressBar.classList.add(className);\r\n }\r\n };\r\n Uploader.prototype.removeProgressbar = function (li, callType) {\r\n var _this = this;\r\n if (!isNullOrUndefined(li.querySelector('.' + PROGRESS_WRAPPER))) {\r\n this.progressAnimation = new Animation({ duration: 1250 });\r\n this.progressAnimation.animate(li.querySelector('.' + PROGRESS_WRAPPER), { name: 'FadeOut' });\r\n this.progressAnimation.animate(li.querySelector('.' + PROGRESSBAR_TEXT), { name: 'FadeOut' });\r\n setTimeout(function () {\r\n _this.animateProgressBar(li, callType);\r\n }, 750);\r\n }\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.animateProgressBar = function (li, callType) {\r\n if (callType === 'success') {\r\n li.classList.add(UPLOAD_SUCCESS);\r\n if (!isNullOrUndefined(li.querySelector('.' + STATUS))) {\r\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS);\r\n this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' });\r\n li.querySelector('.' + STATUS).classList.add(UPLOAD_SUCCESS);\r\n }\r\n }\r\n else {\r\n if (!isNullOrUndefined(li.querySelector('.' + STATUS))) {\r\n li.querySelector('.' + STATUS).classList.remove(UPLOAD_INPROGRESS);\r\n this.progressAnimation.animate(li.querySelector('.' + STATUS), { name: 'FadeIn' });\r\n li.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED);\r\n }\r\n }\r\n if (li.querySelector('.' + PROGRESS_WRAPPER)) {\r\n detach(li.querySelector('.' + PROGRESS_WRAPPER));\r\n }\r\n };\r\n Uploader.prototype.setExtensions = function (extensions) {\r\n if (extensions !== '' && !isNullOrUndefined(extensions)) {\r\n this.element.setAttribute('accept', extensions);\r\n }\r\n else {\r\n this.element.removeAttribute('accept');\r\n }\r\n };\r\n Uploader.prototype.templateComplier = function (uploadTemplate) {\r\n if (uploadTemplate) {\r\n try {\r\n if (selectAll(uploadTemplate, document).length) {\r\n return compile(select(uploadTemplate, document).innerHTML.trim());\r\n }\r\n }\r\n catch (exception) {\r\n return compile(uploadTemplate);\r\n }\r\n }\r\n return undefined;\r\n };\r\n Uploader.prototype.setRTL = function () {\r\n if (this.enableRtl) {\r\n addClass([this.uploadWrapper], RTL);\r\n }\r\n else {\r\n removeClass([this.uploadWrapper], RTL);\r\n }\r\n };\r\n Uploader.prototype.localizedTexts = function (localeText) {\r\n this.l10n.setLocale(this.locale);\r\n return this.l10n.getConstant(localeText);\r\n };\r\n Uploader.prototype.setControlStatus = function () {\r\n if (!this.enabled) {\r\n this.uploadWrapper.classList.add(DISABLED);\r\n this.element.setAttribute('disabled', 'disabled');\r\n this.browseButton.setAttribute('disabled', 'disabled');\r\n if (!isNullOrUndefined(this.clearButton)) {\r\n this.clearButton.setAttribute('disabled', 'disabled');\r\n }\r\n if (!isNullOrUndefined(this.uploadButton)) {\r\n this.uploadButton.setAttribute('disabled', 'disabled');\r\n }\r\n }\r\n else {\r\n if (this.uploadWrapper.classList.contains(DISABLED)) {\r\n this.uploadWrapper.classList.remove(DISABLED);\r\n }\r\n if (!isNullOrUndefined(this.browseButton) && this.element.hasAttribute('disabled')) {\r\n this.element.removeAttribute('disabled');\r\n this.browseButton.removeAttribute('disabled');\r\n }\r\n if (!isNullOrUndefined(this.clearButton) && this.clearButton.hasAttribute('disabled')) {\r\n this.clearButton.removeAttribute('disabled');\r\n }\r\n if (!isNullOrUndefined(this.uploadButton) && this.uploadButton.hasAttribute('disabled')) {\r\n this.uploadButton.hasAttribute('disabled');\r\n }\r\n }\r\n };\r\n Uploader.prototype.checkHTMLAttributes = function (isDynamic) {\r\n var attributes = isDynamic ? isNullOrUndefined(this.htmlAttributes) ? [] : Object.keys(this.htmlAttributes) :\r\n ['accept', 'multiple', 'disabled'];\r\n for (var _i = 0, attributes_1 = attributes; _i < attributes_1.length; _i++) {\r\n var prop = attributes_1[_i];\r\n if (!isNullOrUndefined(this.element.getAttribute(prop))) {\r\n switch (prop) {\r\n case 'accept':\r\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['allowedExtensions'] === undefined))\r\n || isDynamic) {\r\n this.setProperties({ allowedExtensions: this.element.getAttribute('accept') }, !isDynamic);\r\n this.initialAttr.accept = this.allowedExtensions;\r\n }\r\n break;\r\n case 'multiple':\r\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['multiple'] === undefined)) || isDynamic) {\r\n var isMutiple = this.element.getAttribute(prop) === 'multiple' ||\r\n this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? true : false;\r\n this.setProperties({ multiple: isMutiple }, !isDynamic);\r\n this.initialAttr.multiple = true;\r\n }\r\n break;\r\n case 'disabled':\r\n if ((isNullOrUndefined(this.uploaderOptions) || (this.uploaderOptions['enabled'] === undefined)) || isDynamic) {\r\n var isDisabled = this.element.getAttribute(prop) === 'disabled' ||\r\n this.element.getAttribute(prop) === '' || this.element.getAttribute(prop) === 'true' ? false : true;\r\n this.setProperties({ enabled: isDisabled }, !isDynamic);\r\n this.initialAttr.disabled = true;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.chunkUpload = function (file, custom, fileIndex) {\r\n var start = 0;\r\n var end = Math.min(this.asyncSettings.chunkSize, file.size);\r\n var index = 0;\r\n var blob = file.rawFile.slice(start, end);\r\n var metaData = { chunkIndex: index, blob: blob, file: file, start: start, end: end, retryCount: 0, request: null };\r\n this.sendRequest(file, metaData, custom, fileIndex);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Uploader.prototype.sendRequest = function (file, metaData, custom, fileIndex) {\r\n var _this = this;\r\n var formData = new FormData();\r\n var blob = file.rawFile.slice(metaData.start, metaData.end);\r\n formData.append('chunkFile', blob, file.name);\r\n formData.append(this.uploaderName, blob, file.name);\r\n formData.append('chunk-index', metaData.chunkIndex.toString());\r\n formData.append('chunkIndex', metaData.chunkIndex.toString());\r\n var totalChunk = Math.max(Math.ceil(file.size / this.asyncSettings.chunkSize), 1);\r\n formData.append('total-chunk', totalChunk.toString());\r\n formData.append('totalChunk', totalChunk.toString());\r\n var ajax = new Ajax({ url: this.asyncSettings.saveUrl, type: 'POST', async: true, contentType: null });\r\n ajax.emitError = false;\r\n ajax.onLoad = function (e) {\r\n _this.chunkUploadComplete(e, metaData, custom);\r\n return {};\r\n };\r\n ajax.onUploadProgress = function (e) {\r\n _this.chunkUploadInProgress(e, metaData, custom);\r\n return {};\r\n };\r\n var eventArgs = {\r\n fileData: file,\r\n customFormData: [],\r\n cancel: false,\r\n chunkSize: this.asyncSettings.chunkSize === 0 ? null : this.asyncSettings.chunkSize\r\n };\r\n ajax.beforeSend = function (e) {\r\n eventArgs.currentRequest = ajax.httpRequest;\r\n eventArgs.currentChunkIndex = metaData.chunkIndex;\r\n if (eventArgs.currentChunkIndex === 0) {\r\n // This event is currently not required but to avoid breaking changes for previous customer, we have included.\r\n _this.trigger('uploading', eventArgs, function (eventArgs) {\r\n _this.uploadingEventCallback(formData, eventArgs, e, file);\r\n });\r\n }\r\n else {\r\n _this.trigger('chunkUploading', eventArgs, function (eventArgs) {\r\n _this.uploadingEventCallback(formData, eventArgs, e, file);\r\n });\r\n }\r\n };\r\n /* istanbul ignore next */\r\n ajax.onError = function (e) {\r\n _this.chunkUploadFailed(e, metaData, custom);\r\n return {};\r\n };\r\n ajax.send(formData);\r\n metaData.request = ajax;\r\n };\r\n Uploader.prototype.uploadingEventCallback = function (formData, eventArgs, e, file) {\r\n if (eventArgs.cancel) {\r\n this.eventCancelByArgs(e, eventArgs, file);\r\n }\r\n else {\r\n this.updateFormData(formData, eventArgs.customFormData);\r\n }\r\n };\r\n Uploader.prototype.eventCancelByArgs = function (e, eventArgs, file) {\r\n var _this = this;\r\n e.cancel = true;\r\n if (eventArgs.fileData.statusCode === '5') {\r\n return;\r\n }\r\n eventArgs.fileData.statusCode = '5';\r\n eventArgs.fileData.status = this.localizedTexts('fileUploadCancel');\r\n var liElement = this.getLiElement(eventArgs.fileData);\r\n if (liElement) {\r\n if (!isNullOrUndefined(liElement.querySelector('.' + STATUS))) {\r\n liElement.querySelector('.' + STATUS).innerHTML = this.localizedTexts('fileUploadCancel');\r\n liElement.querySelector('.' + STATUS).classList.add(UPLOAD_FAILED);\r\n }\r\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-reload-btn', attrs: { 'tabindex': this.btnTabIndex } });\r\n var removeIcon = liElement.querySelector('.' + REMOVE_ICON);\r\n if (removeIcon) {\r\n removeIcon.parentElement.insertBefore(this.pauseButton, removeIcon);\r\n }\r\n this.pauseButton.setAttribute('title', this.localizedTexts('retry'));\r\n /* istanbul ignore next */\r\n this.pauseButton.addEventListener('click', function (e) {\r\n _this.reloadcanceledFile(e, file, liElement);\r\n }, false);\r\n this.checkActionButtonStatus();\r\n }\r\n };\r\n Uploader.prototype.checkChunkUpload = function () {\r\n return (this.asyncSettings.chunkSize <= 0 || isNullOrUndefined(this.asyncSettings.chunkSize)) ? false : true;\r\n };\r\n Uploader.prototype.chunkUploadComplete = function (e, metaData, custom) {\r\n var _this = this;\r\n var response = e.target;\r\n var liElement;\r\n if (response.readyState === 4 && response.status >= 200 && response.status < 300) {\r\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\r\n var totalChunk = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);\r\n var eventArgs = {\r\n event: e,\r\n file: metaData.file,\r\n chunkIndex: metaData.chunkIndex,\r\n totalChunk: totalChunk,\r\n chunkSize: this.asyncSettings.chunkSize,\r\n response: requestResponse\r\n };\r\n this.trigger('chunkSuccess', eventArgs);\r\n if (isNullOrUndefined(custom) || !custom) {\r\n liElement = this.getLiElement(metaData.file);\r\n }\r\n this.updateMetaData(metaData);\r\n if (metaData.end === metaData.file.size) {\r\n metaData.file.statusCode = '3';\r\n }\r\n if (metaData.file.statusCode === '5') {\r\n var eventArgs_1 = { event: e, fileData: metaData.file, cancel: false, customFormData: [] };\r\n this.trigger('canceling', eventArgs_1, function (eventArgs) {\r\n /* istanbul ignore next */\r\n if (eventArgs.cancel) {\r\n metaData.file.statusCode = '3';\r\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\r\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(spinnerTarget)) {\r\n hideSpinner(spinnerTarget);\r\n detach(liElement.querySelector('.e-spinner-pane'));\r\n }\r\n _this.sendNextRequest(metaData);\r\n }\r\n else {\r\n metaData.request.emitError = false;\r\n response.abort();\r\n var formData = new FormData();\r\n var name_2 = _this.element.getAttribute('name');\r\n formData.append(name_2, metaData.file.name);\r\n formData.append('cancel-uploading', metaData.file.name);\r\n formData.append('cancelUploading', metaData.file.name);\r\n _this.updateFormData(formData, eventArgs.customFormData);\r\n var ajax = new Ajax(_this.asyncSettings.removeUrl, 'POST', true, null);\r\n ajax.emitError = false;\r\n ajax.onLoad = function (e) {\r\n _this.removeChunkFile(e, metaData, custom);\r\n return {};\r\n };\r\n ajax.send(formData);\r\n }\r\n });\r\n }\r\n else {\r\n if ((totalChunk - 1) === metaData.chunkIndex && totalChunk > metaData.chunkIndex) {\r\n var index = this.pausedData.indexOf(metaData);\r\n if (index >= 0) {\r\n this.pausedData.splice(index, 1);\r\n }\r\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {\r\n if (liElement && !isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD))) {\r\n detach(liElement.querySelector('.' + PAUSE_UPLOAD));\r\n }\r\n this.removeChunkProgressBar(metaData);\r\n }\r\n this.raiseSuccessEvent(e, metaData.file);\r\n return;\r\n }\r\n if (metaData.file.statusCode !== '4') {\r\n this.sendNextRequest(metaData);\r\n }\r\n }\r\n }\r\n else {\r\n this.chunkUploadFailed(e, metaData);\r\n }\r\n };\r\n Uploader.prototype.sendNextRequest = function (metaData) {\r\n metaData.start = metaData.end;\r\n metaData.end += this.asyncSettings.chunkSize;\r\n metaData.end = Math.min(metaData.end, metaData.file.size);\r\n metaData.chunkIndex += 1;\r\n this.sendRequest(metaData.file, metaData);\r\n };\r\n Uploader.prototype.removeChunkFile = function (e, metaData, custom) {\r\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) && !custom)) {\r\n var liElement = this.getLiElement(metaData.file);\r\n var deleteIcon = liElement.querySelector('.' + ABORT_ICON);\r\n var spinnerTarget = deleteIcon;\r\n this.updateStatus(metaData.file, this.localizedTexts('fileUploadCancel'), '5');\r\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\r\n this.removeProgressbar(liElement, 'failure');\r\n deleteIcon && deleteIcon.classList.remove(ABORT_ICON);\r\n deleteIcon && deleteIcon.classList.add(REMOVE_ICON);\r\n deleteIcon && deleteIcon.setAttribute('title', this.localizedTexts('remove'));\r\n var pauseIcon = liElement.querySelector('.' + PAUSE_UPLOAD);\r\n pauseIcon && pauseIcon.classList.add(RETRY_ICON);\r\n pauseIcon && pauseIcon.classList.remove(PAUSE_UPLOAD);\r\n pauseIcon && pauseIcon.setAttribute('title', this.localizedTexts('retry'));\r\n if (!isNullOrUndefined(liElement) && !isNullOrUndefined(deleteIcon)\r\n && !isNullOrUndefined(liElement.querySelector('.e-spinner-pane'))) {\r\n hideSpinner(spinnerTarget);\r\n detach(liElement.querySelector('.e-spinner-pane'));\r\n }\r\n }\r\n };\r\n Uploader.prototype.pauseUpload = function (metaData, e, custom) {\r\n metaData.file.statusCode = '4';\r\n metaData.file.status = this.localizedTexts('pause');\r\n this.updateMetaData(metaData);\r\n var eventArgs = {\r\n event: e ? e : null,\r\n file: metaData.file,\r\n chunkIndex: metaData.chunkIndex,\r\n chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize),\r\n chunkSize: this.asyncSettings.chunkSize\r\n };\r\n this.abortUpload(metaData, custom, eventArgs);\r\n };\r\n Uploader.prototype.abortUpload = function (metaData, custom, eventArgs) {\r\n if (metaData.file.statusCode !== '4') {\r\n metaData.request.emitError = false;\r\n metaData.request.httpRequest.abort();\r\n }\r\n var liElement = this.getLiElement(metaData.file);\r\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom)) {\r\n var targetElement = liElement.querySelector('.' + PAUSE_UPLOAD);\r\n targetElement.classList.remove(PAUSE_UPLOAD);\r\n targetElement.classList.add(RESUME_UPLOAD);\r\n targetElement.setAttribute('title', this.localizedTexts('resume'));\r\n targetElement.nextElementSibling.classList.add(REMOVE_ICON);\r\n targetElement.nextElementSibling.classList.remove(ABORT_ICON);\r\n targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('remove'));\r\n }\r\n for (var i = 0; i < this.pausedData.length; i++) {\r\n if (this.pausedData[i].file.name === metaData.file.name) {\r\n this.pausedData.splice(i, 1);\r\n }\r\n }\r\n this.pausedData.push(metaData);\r\n this.trigger('pausing', eventArgs);\r\n };\r\n Uploader.prototype.resumeUpload = function (metaData, e, custom) {\r\n var liElement = this.getLiElement(metaData.file);\r\n var targetElement;\r\n if (!isNullOrUndefined(liElement)) {\r\n targetElement = liElement.querySelector('.' + RESUME_UPLOAD);\r\n }\r\n if (!isNullOrUndefined(targetElement) && (isNullOrUndefined(custom) || !custom)) {\r\n targetElement.classList.remove(RESUME_UPLOAD);\r\n targetElement.classList.add(PAUSE_UPLOAD);\r\n targetElement.setAttribute('title', this.localizedTexts('pause'));\r\n targetElement.nextElementSibling.classList.remove(REMOVE_ICON);\r\n targetElement.nextElementSibling.classList.add(ABORT_ICON);\r\n targetElement.nextElementSibling.setAttribute('title', this.localizedTexts('abort'));\r\n }\r\n metaData.file.status = this.localizedTexts('inProgress');\r\n metaData.file.statusCode = '3';\r\n this.updateMetaData(metaData);\r\n var eventArgs = {\r\n event: e ? e : null,\r\n file: metaData.file,\r\n chunkIndex: metaData.chunkIndex,\r\n chunkCount: Math.round(metaData.file.size / this.asyncSettings.chunkSize),\r\n chunkSize: this.asyncSettings.chunkSize\r\n };\r\n this.trigger('resuming', eventArgs);\r\n for (var i = 0; i < this.pausedData.length; i++) {\r\n if (this.pausedData[i].end === this.pausedData[i].file.size) {\r\n this.chunkUploadComplete(e, metaData, custom);\r\n }\r\n else {\r\n if (this.pausedData[i].file.name === metaData.file.name) {\r\n this.pausedData[i].start = this.pausedData[i].end;\r\n this.pausedData[i].end = this.pausedData[i].end + this.asyncSettings.chunkSize;\r\n this.pausedData[i].end = Math.min(this.pausedData[i].end, this.pausedData[i].file.size);\r\n this.pausedData[i].chunkIndex = this.pausedData[i].chunkIndex + 1;\r\n this.sendRequest(this.pausedData[i].file, this.pausedData[i], custom);\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.updateMetaData = function (metaData) {\r\n if (this.uploadMetaData.indexOf(metaData) === -1) {\r\n this.uploadMetaData.push(metaData);\r\n }\r\n else {\r\n this.uploadMetaData.splice(this.uploadMetaData.indexOf(metaData), 1);\r\n this.uploadMetaData.push(metaData);\r\n }\r\n };\r\n Uploader.prototype.removeChunkProgressBar = function (metaData) {\r\n var liElement = this.getLiElement(metaData.file);\r\n if (!isNullOrUndefined(liElement)) {\r\n this.updateProgressBarClasses(liElement, UPLOAD_SUCCESS);\r\n this.removeProgressbar(liElement, 'success');\r\n var cancelButton = liElement.querySelector('.' + ABORT_ICON);\r\n if (!isNullOrUndefined(cancelButton)) {\r\n cancelButton.classList.add(DELETE_ICON);\r\n cancelButton.setAttribute('title', this.localizedTexts('delete'));\r\n cancelButton.classList.remove(ABORT_ICON, UPLOAD_INPROGRESS);\r\n }\r\n }\r\n };\r\n Uploader.prototype.chunkUploadFailed = function (e, metaData, custom) {\r\n var _this = this;\r\n var chunkCount = Math.max(Math.ceil(metaData.file.size / this.asyncSettings.chunkSize), 1);\r\n var liElement;\r\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom)) {\r\n liElement = this.getLiElement(metaData.file);\r\n }\r\n var requestResponse = e && e.currentTarget ? this.getResponse(e) : null;\r\n var eventArgs = {\r\n event: e,\r\n file: metaData.file,\r\n chunkIndex: metaData.chunkIndex,\r\n totalChunk: chunkCount,\r\n chunkSize: this.asyncSettings.chunkSize,\r\n cancel: false,\r\n response: requestResponse\r\n };\r\n this.trigger('chunkFailure', eventArgs, function (eventArgs) {\r\n // To prevent triggering of failure event\r\n if (!eventArgs.cancel) {\r\n if (metaData.retryCount < _this.asyncSettings.retryCount) {\r\n setTimeout(function () {\r\n _this.retryRequest(liElement, metaData, custom);\r\n }, _this.asyncSettings.retryAfterDelay);\r\n }\r\n else {\r\n if (!isNullOrUndefined(liElement)) {\r\n var pauseButton = liElement.querySelector('.' + PAUSE_UPLOAD) ?\r\n liElement.querySelector('.' + PAUSE_UPLOAD) : liElement.querySelector('.' + RESUME_UPLOAD);\r\n if (!isNullOrUndefined(pauseButton)) {\r\n pauseButton.classList.add(RETRY_ICON);\r\n pauseButton.classList.remove(PAUSE_UPLOAD, RESUME_UPLOAD);\r\n }\r\n _this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\r\n _this.removeProgressbar(liElement, 'failure');\r\n liElement.querySelector('.e-icons').classList.remove(UPLOAD_INPROGRESS);\r\n var iconElement = liElement.querySelector('.' + ABORT_ICON) ?\r\n liElement.querySelector('.' + ABORT_ICON) : liElement.querySelector('.' + REMOVE_ICON);\r\n iconElement.classList.remove(ABORT_ICON);\r\n if (!isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD))) {\r\n detach(liElement.querySelector('.' + PAUSE_UPLOAD));\r\n }\r\n if (metaData.start > 0) {\r\n iconElement.classList.add(DELETE_ICON);\r\n iconElement.setAttribute('title', _this.localizedTexts('delete'));\r\n }\r\n else {\r\n iconElement.classList.add(REMOVE_ICON);\r\n iconElement.setAttribute('title', _this.localizedTexts('remove'));\r\n }\r\n }\r\n metaData.retryCount = 0;\r\n var file_1 = metaData.file;\r\n var failureMessage = _this.localizedTexts('uploadFailedMessage');\r\n var args = {\r\n e: e, response: requestResponse,\r\n operation: 'upload',\r\n file: _this.updateStatus(file_1, failureMessage, '0', false),\r\n statusText: failureMessage\r\n };\r\n _this.trigger('failure', args, function (args) {\r\n _this.updateStatus(file_1, args.statusText, '0');\r\n _this.uploadSequential();\r\n _this.checkActionComplete(true);\r\n });\r\n }\r\n }\r\n });\r\n };\r\n Uploader.prototype.retryRequest = function (liElement, metaData, custom) {\r\n if (isNullOrUndefined(this.template) && (isNullOrUndefined(custom) || !custom) && liElement) {\r\n this.updateProgressBarClasses(liElement, UPLOAD_FAILED);\r\n }\r\n metaData.retryCount += 1;\r\n this.sendRequest(metaData.file, metaData);\r\n };\r\n Uploader.prototype.checkPausePlayAction = function (e) {\r\n var targetElement = e.target;\r\n var selectedElement = e.target.parentElement;\r\n var index = this.fileList.indexOf(selectedElement);\r\n var fileData = this.filesData[index];\r\n var metaData = this.getCurrentMetaData(fileData);\r\n if (targetElement.classList.contains(PAUSE_UPLOAD)) {\r\n /* istanbul ignore next */\r\n this.pauseUpload(metaData, e);\r\n }\r\n else if (targetElement.classList.contains(RESUME_UPLOAD)) {\r\n /* istanbul ignore next */\r\n this.resumeUpload(metaData, e);\r\n }\r\n else if (targetElement.classList.contains(RETRY_ICON)) {\r\n if (metaData.file.status === this.localizedTexts('fileUploadCancel')) {\r\n this.retryUpload(metaData, false);\r\n }\r\n else {\r\n this.retryUpload(metaData, true);\r\n }\r\n }\r\n };\r\n Uploader.prototype.retryUpload = function (metaData, fromcanceledStage) {\r\n if (fromcanceledStage) {\r\n metaData.end = metaData.end + this.asyncSettings.chunkSize;\r\n metaData.start = metaData.start + this.asyncSettings.chunkSize;\r\n this.sendRequest(metaData.file, metaData);\r\n }\r\n else {\r\n metaData.file.statusCode = '1';\r\n metaData.file.status = this.localizedTexts('readyToUploadMessage');\r\n this.chunkUpload(metaData.file);\r\n }\r\n /* istanbul ignore next */\r\n (this.getLiElement(metaData.file)).classList.add(RESTRICT_RETRY);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Uploader.prototype.chunkUploadInProgress = function (e, metaData, custom) {\r\n var _this = this;\r\n if (metaData.file.statusCode === '4') {\r\n return;\r\n }\r\n if (metaData.file.statusCode !== '4' && metaData.file.statusCode !== '5') {\r\n metaData.file.statusCode = '3';\r\n metaData.file.status = this.localizedTexts('inProgress');\r\n }\r\n this.updateMetaData(metaData);\r\n var liElement = this.getLiElement(metaData.file);\r\n if (isNullOrUndefined(liElement)) {\r\n return;\r\n }\r\n var retryElement = liElement.querySelector('.' + RETRY_ICON);\r\n if (!isNullOrUndefined(retryElement)) {\r\n retryElement.classList.add(PAUSE_UPLOAD);\r\n retryElement.setAttribute('title', this.localizedTexts('pause'));\r\n retryElement.classList.remove(RETRY_ICON);\r\n }\r\n if (!isNullOrUndefined(liElement)) {\r\n if (!(liElement.querySelectorAll('.' + PROGRESS_WRAPPER).length > 0)) {\r\n var statusElement = liElement.querySelector('.' + STATUS);\r\n if (isNullOrUndefined(this.template)) {\r\n statusElement.classList.add(UPLOAD_INPROGRESS);\r\n statusElement.classList.remove(UPLOAD_FAILED);\r\n this.createProgressBar(liElement);\r\n this.updateProgressBarClasses(liElement, UPLOAD_INPROGRESS);\r\n }\r\n var clearIcon = liElement.querySelector('.' + REMOVE_ICON) ? liElement.querySelector('.' + REMOVE_ICON) :\r\n liElement.querySelector('.' + DELETE_ICON);\r\n if (!isNullOrUndefined(clearIcon)) {\r\n clearIcon.classList.add(ABORT_ICON);\r\n clearIcon.setAttribute('title', this.localizedTexts('abort'));\r\n clearIcon.classList.remove(REMOVE_ICON);\r\n }\r\n }\r\n if (!isNaN(Math.round((e.loaded / e.total) * 100)) && isNullOrUndefined(this.template) && metaData.file.statusCode !== '4') {\r\n var progressVal = void 0;\r\n var totalChunks = Math.ceil(metaData.file.size / this.asyncSettings.chunkSize) - 1;\r\n if (this.asyncSettings.chunkSize && totalChunks) {\r\n progressVal = Math.round(metaData.chunkIndex / totalChunks * 100);\r\n this.changeProgressValue(liElement, progressVal.toString() + '%');\r\n }\r\n }\r\n if (metaData.chunkIndex === 0) {\r\n this.checkActionButtonStatus();\r\n }\r\n }\r\n if (isNullOrUndefined(liElement.querySelector('.' + PAUSE_UPLOAD)) && isNullOrUndefined(this.template)\r\n && isNullOrUndefined(liElement.querySelector('.' + DELETE_ICON))) {\r\n this.pauseButton = this.createElement('span', { className: 'e-icons e-file-pause-btn', attrs: { 'tabindex': this.btnTabIndex } });\r\n if (this.browserName === 'msie') {\r\n this.pauseButton.classList.add('e-msie');\r\n }\r\n var abortIcon = liElement.querySelector('.' + ABORT_ICON);\r\n abortIcon.parentElement.insertBefore(this.pauseButton, abortIcon);\r\n this.pauseButton.setAttribute('title', this.localizedTexts('pause'));\r\n this.pauseButton.addEventListener('click', function (e) {\r\n _this.checkPausePlayAction(e);\r\n }, false);\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * It is used to convert bytes value into kilobytes or megabytes depending on the size based\r\n * on [binary prefix](https://en.wikipedia.org/wiki/Binary_prefix).\r\n *\r\n * @param { number } bytes - Specifies the file size in bytes.\r\n * @returns {string}\r\n */\r\n Uploader.prototype.bytesToSize = function (bytes) {\r\n var i = -1;\r\n if (!bytes) {\r\n return '0.0 KB';\r\n }\r\n do {\r\n bytes = bytes / 1024;\r\n i++;\r\n } while (bytes > 99);\r\n if (i >= 2) {\r\n bytes = bytes * 1024;\r\n i = 1;\r\n }\r\n return Math.max(bytes, 0).toFixed(1) + ' ' + ['KB', 'MB'][i];\r\n };\r\n /**\r\n * Allows you to sort the file data alphabetically based on its file name clearly.\r\n *\r\n * @param { FileList } filesData - specifies the files data for upload.\r\n * @returns {File[]}\r\n */\r\n /* istanbul ignore next */\r\n Uploader.prototype.sortFileList = function (filesData) {\r\n filesData = filesData ? filesData : this.sortFilesList;\r\n var files = filesData;\r\n var fileNames = [];\r\n for (var i = 0; i < files.length; i++) {\r\n fileNames.push(files[i].name);\r\n }\r\n var sortedFileNames = fileNames.sort();\r\n var sortedFilesData = [];\r\n for (var _i = 0, sortedFileNames_1 = sortedFileNames; _i < sortedFileNames_1.length; _i++) {\r\n var name_3 = sortedFileNames_1[_i];\r\n for (var i = 0; i < files.length; i++) {\r\n if (name_3 === files[i].name) {\r\n sortedFilesData.push(files[i]);\r\n }\r\n }\r\n }\r\n return sortedFilesData;\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\r\n *\r\n * @method destroy\r\n * @returns {void}\r\n */\r\n Uploader.prototype.destroy = function () {\r\n this.element.value = null;\r\n this.clearTemplate();\r\n this.clearAll();\r\n this.unWireEvents();\r\n this.unBindDropEvents();\r\n if (this.multiple) {\r\n this.element.removeAttribute('multiple');\r\n }\r\n if (!this.enabled) {\r\n this.element.removeAttribute('disabled');\r\n }\r\n this.element.removeAttribute('accept');\r\n this.setInitialAttributes();\r\n var attributes = ['aria-label', 'directory', 'webkitdirectory', 'tabindex'];\r\n for (var _i = 0, attributes_2 = attributes; _i < attributes_2.length; _i++) {\r\n var key = attributes_2[_i];\r\n this.element.removeAttribute(key);\r\n }\r\n if (!isNullOrUndefined(this.uploadWrapper)) {\r\n this.uploadWrapper.parentElement.appendChild(this.element);\r\n detach(this.uploadWrapper);\r\n }\r\n this.uploadWrapper = null;\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Allows you to call the upload process manually by calling save URL action.\r\n * To process the selected files (added in upload queue), pass an empty argument otherwise\r\n * upload the specific file based on its argument.\r\n *\r\n * @param { FileInfo | FileInfo[] } files - Specifies the files data for upload.\r\n * @param {boolean} custom - Specifies whether the uploader is rendered with custom file list.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.upload = function (files, custom) {\r\n var _this = this;\r\n files = files ? files : this.filesData;\r\n if (this.sequentialUpload && (this.isFirstFileOnSelection || custom)) {\r\n this.sequenceUpload(files);\r\n }\r\n else {\r\n var uploadFiles_1 = this.getFilesInArray(files);\r\n var eventArgs = {\r\n customFormData: [],\r\n currentRequest: null,\r\n cancel: false\r\n };\r\n this.trigger('beforeUpload', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.uploadFiles(uploadFiles_1, custom);\r\n }\r\n });\r\n }\r\n };\r\n Uploader.prototype.getFilesInArray = function (files) {\r\n var uploadFiles = [];\r\n if (files instanceof Array) {\r\n uploadFiles = files;\r\n }\r\n else {\r\n uploadFiles.push(files);\r\n }\r\n return uploadFiles;\r\n };\r\n /* istanbul ignore next */\r\n Uploader.prototype.serverReadFileBase64 = function (fileIndex, position, totalCount) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var file = _this.fileStreams[fileIndex].rawFile;\r\n try {\r\n var reader = new FileReader();\r\n reader.onload = (function (args) {\r\n return function () {\r\n try {\r\n var contents = args.result;\r\n var data = contents ? contents.split(';base64,')[1] : null;\r\n resolve(data);\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n })(reader);\r\n reader.readAsDataURL(file.slice(position, position + totalCount));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n /* istanbul ignore next */\r\n Uploader.prototype.uploadFileCount = function (ele) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n var files = this.filesData;\r\n if (!files || files.length === 0) {\r\n return -1;\r\n }\r\n var result = files.length;\r\n return result;\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n /* istanbul ignore next */\r\n Uploader.prototype.getFileRead = function (index, ele) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n var files = this.filesData;\r\n if (!files || files.length === 0) {\r\n return -1;\r\n }\r\n var file = files[index];\r\n var fileCount = this.newFileRef++;\r\n this.fileStreams[fileCount] = file;\r\n return fileCount;\r\n };\r\n /* eslint-disable @typescript-eslint/no-unused-vars */\r\n /* istanbul ignore next */\r\n Uploader.prototype.getFileInfo = function (index, ele) {\r\n /* eslint-enable @typescript-eslint/no-unused-vars */\r\n var files = this.filesData;\r\n if (!files || files.length === 0) {\r\n return null;\r\n }\r\n var file = files[index];\r\n if (!file) {\r\n return null;\r\n }\r\n return this.filesData[index];\r\n };\r\n Uploader.prototype.uploadFiles = function (files, custom) {\r\n var selectedFiles = [];\r\n if (this.asyncSettings.saveUrl === '' || isNullOrUndefined(this.asyncSettings.saveUrl)) {\r\n return;\r\n }\r\n if (!custom || isNullOrUndefined(custom)) {\r\n if (!this.multiple) {\r\n var file = [];\r\n file.push(files[0]);\r\n selectedFiles = this.filterfileList(file);\r\n }\r\n else {\r\n selectedFiles = this.filterfileList(files);\r\n }\r\n }\r\n else {\r\n selectedFiles = files;\r\n }\r\n for (var i = 0; i < selectedFiles.length; i++) {\r\n this.uploadFilesRequest(selectedFiles, i, custom);\r\n }\r\n };\r\n Uploader.prototype.uploadFilesRequest = function (selectedFiles, i, custom) {\r\n var _this = this;\r\n var cloneFiles = [];\r\n var chunkEnabled = this.checkChunkUpload();\r\n var ajax = new Ajax(this.asyncSettings.saveUrl, 'POST', true, null);\r\n ajax.emitError = false;\r\n var getFileData;\r\n var eventArgs = {\r\n fileData: selectedFiles[i],\r\n customFormData: [],\r\n cancel: false\r\n };\r\n var formData = new FormData();\r\n ajax.beforeSend = function (e) {\r\n eventArgs.currentRequest = ajax.httpRequest;\r\n _this.trigger('uploading', eventArgs, function (eventArgs) {\r\n /* istanbul ignore next */\r\n if (eventArgs.cancel) {\r\n _this.eventCancelByArgs(e, eventArgs, selectedFiles[i]);\r\n }\r\n _this.updateFormData(formData, eventArgs.customFormData);\r\n });\r\n };\r\n if (selectedFiles[i].statusCode === '1') {\r\n var name_4 = this.element.getAttribute('name');\r\n formData.append(name_4, selectedFiles[i].rawFile, selectedFiles[i].name);\r\n if (chunkEnabled && selectedFiles[i].size > this.asyncSettings.chunkSize) {\r\n this.chunkUpload(selectedFiles[i], custom, i);\r\n }\r\n else {\r\n ajax.onLoad = function (e) {\r\n if (eventArgs.cancel) {\r\n return {};\r\n }\r\n else {\r\n _this.uploadComplete(e, selectedFiles[i], custom);\r\n return {};\r\n }\r\n };\r\n ajax.onUploadProgress = function (e) {\r\n if (eventArgs.cancel) {\r\n return {};\r\n }\r\n else {\r\n _this.uploadInProgress(e, selectedFiles[i], custom, ajax);\r\n return {};\r\n }\r\n };\r\n /* istanbul ignore next */\r\n ajax.onError = function (e) {\r\n _this.uploadFailed(e, selectedFiles[i]);\r\n return {};\r\n };\r\n ajax.send(formData);\r\n }\r\n }\r\n };\r\n Uploader.prototype.spliceFiles = function (liIndex) {\r\n var liElement = this.fileList[liIndex];\r\n var allFiles = this.getFilesData();\r\n var nameElements = +liElement.getAttribute('data-files-count');\r\n var startIndex = 0;\r\n for (var i = 0; i < liIndex; i++) {\r\n startIndex += (+this.fileList[i].getAttribute('data-files-count'));\r\n }\r\n var endIndex = (startIndex + nameElements) - 1;\r\n for (var j = endIndex; j >= startIndex; j--) {\r\n allFiles.splice(j, 1);\r\n }\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Remove the uploaded file from server manually by calling the remove URL action.\r\n * If you pass an empty argument to this method, the complete file list can be cleared,\r\n * otherwise remove the specific file based on its argument (“file_data”).\r\n *\r\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to remove from file list/server.\r\n * @param { boolean } customTemplate - Set true if the component rendering with customize template.\r\n * @param { boolean } removeDirectly - Set true if files remove without removing event.\r\n * @param { boolean } postRawFile - Set false, to post file name only to the remove action.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.remove = function (fileData, customTemplate, removeDirectly, postRawFile, args) {\r\n var _this = this;\r\n if (isNullOrUndefined(postRawFile)) {\r\n postRawFile = true;\r\n }\r\n var eventArgs = {\r\n event: args,\r\n cancel: false,\r\n filesData: [],\r\n customFormData: [],\r\n postRawFile: postRawFile,\r\n currentRequest: null\r\n };\r\n var beforeEventArgs = {\r\n cancel: false,\r\n customFormData: [],\r\n currentRequest: null\r\n };\r\n this.trigger('beforeRemove', beforeEventArgs, function (beforeEventArgs) {\r\n if (!beforeEventArgs.cancel) {\r\n if (_this.isFormUpload()) {\r\n eventArgs.filesData = fileData;\r\n _this.trigger('removing', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n var removingFiles = _this.getFilesInArray(fileData);\r\n var isLiRemoved = false;\r\n var liIndex = void 0;\r\n for (var _i = 0, removingFiles_1 = removingFiles; _i < removingFiles_1.length; _i++) {\r\n var data = removingFiles_1[_i];\r\n if (!isLiRemoved) {\r\n liIndex = _this.fileList.indexOf(data.list);\r\n }\r\n if (liIndex > -1) {\r\n var inputElement = !isNullOrUndefined(data.input) ? data.input : null;\r\n if (inputElement) {\r\n detach(inputElement);\r\n }\r\n _this.spliceFiles(liIndex);\r\n detach(_this.fileList[liIndex]);\r\n _this.fileList.splice(liIndex, 1);\r\n isLiRemoved = true;\r\n liIndex = -1;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n else if (_this.isForm && (isNullOrUndefined(_this.asyncSettings.removeUrl) || _this.asyncSettings.removeUrl === '')) {\r\n eventArgs.filesData = _this.getFilesData();\r\n _this.trigger('removing', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.clearAll();\r\n }\r\n });\r\n }\r\n else {\r\n var removeFiles = [];\r\n fileData = !isNullOrUndefined(fileData) ? fileData : _this.filesData;\r\n if (fileData instanceof Array) {\r\n removeFiles = fileData;\r\n }\r\n else {\r\n removeFiles.push(fileData);\r\n }\r\n eventArgs.filesData = removeFiles;\r\n var removeUrl = _this.asyncSettings.removeUrl;\r\n var validUrl = (removeUrl === '' || isNullOrUndefined(removeUrl)) ? false : true;\r\n var _loop_5 = function (files) {\r\n var fileUploadedIndex = _this.uploadedFilesData.indexOf(files);\r\n if ((files.statusCode === '2' || files.statusCode === '4' || (files.statusCode === '0' &&\r\n fileUploadedIndex !== -1)) && validUrl) {\r\n _this.removeUploadedFile(files, eventArgs, removeDirectly, customTemplate);\r\n }\r\n else {\r\n if (!removeDirectly) {\r\n _this.trigger('removing', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.removeFilesData(files, customTemplate);\r\n }\r\n });\r\n }\r\n else {\r\n _this.removeFilesData(files, customTemplate);\r\n }\r\n }\r\n if (args && !args.target.classList.contains(REMOVE_ICON)) {\r\n _this.checkActionComplete(false);\r\n }\r\n };\r\n for (var _i = 0, removeFiles_1 = removeFiles; _i < removeFiles_1.length; _i++) {\r\n var files = removeFiles_1[_i];\r\n _loop_5(files);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-param */\r\n /**\r\n * Clear all the file entries from list that can be uploaded files or added in upload queue.\r\n *\r\n * @returns {void}\r\n */\r\n Uploader.prototype.clearAll = function () {\r\n var _this = this;\r\n if (isNullOrUndefined(this.listParent)) {\r\n if (this.browserName !== 'msie') {\r\n this.element.value = '';\r\n }\r\n this.filesData = [];\r\n return;\r\n }\r\n var eventArgs = {\r\n cancel: false,\r\n filesData: this.filesData\r\n };\r\n this.trigger('clearing', eventArgs, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n _this.clearData();\r\n _this.actionCompleteCount = 0;\r\n _this.count = -1;\r\n }\r\n });\r\n };\r\n /* eslint-disable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Get the data of files which are shown in file list.\r\n *\r\n * @param { number } index - specifies the file list item(li) index.\r\n * @returns {FileInfo[]}\r\n */\r\n Uploader.prototype.getFilesData = function (index) {\r\n if (isNullOrUndefined(index)) {\r\n return this.filesData;\r\n }\r\n else {\r\n return this.getSelectedFiles(index);\r\n }\r\n };\r\n /* eslint-enable valid-jsdoc, jsdoc/require-returns-description */\r\n /**\r\n * Pauses the in-progress chunked upload based on the file data.\r\n *\r\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to pause from uploading.\r\n * @param { boolean } custom - Set true if used custom UI.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.pause = function (fileData, custom) {\r\n fileData = fileData ? fileData : this.filesData;\r\n var fileDataFiles = this.getFilesInArray(fileData);\r\n this.pauseUploading(fileDataFiles, custom);\r\n };\r\n Uploader.prototype.pauseUploading = function (fileData, custom) {\r\n var files = this.getFiles(fileData);\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].statusCode === '3') {\r\n this.pauseUpload(this.getCurrentMetaData(files[i], null), null, custom);\r\n }\r\n }\r\n };\r\n Uploader.prototype.getFiles = function (fileData) {\r\n var files = [];\r\n if (!isNullOrUndefined(fileData) && !(fileData instanceof Array)) {\r\n files.push(fileData);\r\n }\r\n else {\r\n files = fileData;\r\n }\r\n return files;\r\n };\r\n /**\r\n * Resumes the chunked upload that is previously paused based on the file data.\r\n *\r\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to resume the paused file.\r\n * @param { boolean } custom - Set true if used custom UI.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.resume = function (fileData, custom) {\r\n fileData = fileData ? fileData : this.filesData;\r\n var fileDataFiles = this.getFilesInArray(fileData);\r\n this.resumeFiles(fileDataFiles, custom);\r\n };\r\n Uploader.prototype.resumeFiles = function (fileData, custom) {\r\n var files = this.getFiles(fileData);\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].statusCode === '4') {\r\n this.resumeUpload(this.getCurrentMetaData(files[i], null), null, custom);\r\n }\r\n }\r\n };\r\n /**\r\n * Retries the canceled or failed file upload based on the file data.\r\n *\r\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to retry the canceled or failed file.\r\n * @param { boolean } fromcanceledStage - Set true to retry from canceled stage and set false to retry from initial stage.\r\n * @param {boolean} custom -Specifies whether the uploader is rendered with custom file list.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.retry = function (fileData, fromcanceledStage, custom) {\r\n fileData = fileData ? fileData : this.filesData;\r\n var fileDataFiles = this.getFilesInArray(fileData);\r\n if (this.sequentialUpload && this.isFirstFileOnSelection) {\r\n this.isFirstFileOnSelection = false;\r\n }\r\n this.retryFailedFiles(fileDataFiles, fromcanceledStage, custom);\r\n };\r\n Uploader.prototype.retryFailedFiles = function (fileData, fromcanceledStage, custom) {\r\n var files = this.getFiles(fileData);\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].statusCode === '5' || files[i].statusCode === '0') {\r\n if (this.asyncSettings.chunkSize > 0) {\r\n this.retryUpload(this.getCurrentMetaData(files[i], null), fromcanceledStage);\r\n }\r\n else {\r\n var liElement = void 0;\r\n if (!custom) {\r\n liElement = this.fileList[this.filesData.indexOf(files[i])];\r\n }\r\n this.reloadcanceledFile(null, files[i], liElement, custom);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Stops the in-progress chunked upload based on the file data.\r\n * When the file upload is canceled, the partially uploaded file is removed from server.\r\n *\r\n * @param { FileInfo | FileInfo[] } fileData - specifies the files data to cancel the progressing file.\r\n * @returns {void}\r\n */\r\n Uploader.prototype.cancel = function (fileData) {\r\n fileData = fileData ? fileData : this.filesData;\r\n var cancelingFiles = this.getFilesInArray(fileData);\r\n this.cancelUpload(cancelingFiles);\r\n };\r\n Uploader.prototype.cancelUpload = function (fileData) {\r\n var files = this.getFiles(fileData);\r\n if (this.asyncSettings.chunkSize > 0) {\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].statusCode === '3') {\r\n var metaData = this.getCurrentMetaData(files[i], null);\r\n metaData.file.statusCode = '5';\r\n metaData.file.status = this.localizedTexts('fileUploadCancel');\r\n this.updateMetaData(metaData);\r\n this.showHideUploadSpinner(files[i]);\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < files.length; i++) {\r\n if (files[i].statusCode === '3') {\r\n files[i].statusCode = '5';\r\n files[i].status = this.localizedTexts('fileUploadCancel');\r\n this.showHideUploadSpinner(files[i]);\r\n }\r\n }\r\n }\r\n };\r\n Uploader.prototype.showHideUploadSpinner = function (files) {\r\n var liElement = this.getLiElement(files);\r\n if (!isNullOrUndefined(liElement) && isNullOrUndefined(this.template)) {\r\n var spinnerTarget = liElement.querySelector('.' + ABORT_ICON);\r\n createSpinner({ target: spinnerTarget, width: '20px' });\r\n showSpinner(spinnerTarget);\r\n }\r\n };\r\n __decorate([\r\n Complex({ saveUrl: '', removeUrl: '' }, AsyncSettings)\r\n ], Uploader.prototype, \"asyncSettings\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Uploader.prototype, \"sequentialUpload\", void 0);\r\n __decorate([\r\n Property({})\r\n ], Uploader.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Uploader.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Uploader.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Uploader.prototype, \"template\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Uploader.prototype, \"multiple\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Uploader.prototype, \"autoUpload\", void 0);\r\n __decorate([\r\n Complex({}, ButtonsProps)\r\n ], Uploader.prototype, \"buttons\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Uploader.prototype, \"allowedExtensions\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Uploader.prototype, \"minFileSize\", void 0);\r\n __decorate([\r\n Property(30000000)\r\n ], Uploader.prototype, \"maxFileSize\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Uploader.prototype, \"dropArea\", void 0);\r\n __decorate([\r\n Collection([{}], FilesProp)\r\n ], Uploader.prototype, \"files\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Uploader.prototype, \"showFileList\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Uploader.prototype, \"directoryUpload\", void 0);\r\n __decorate([\r\n Property('Default')\r\n ], Uploader.prototype, \"dropEffect\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"actionComplete\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"rendering\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"beforeUpload\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"fileListRendering\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"selected\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"uploading\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"success\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"failure\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"removing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"beforeRemove\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"clearing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"progress\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"chunkSuccess\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"chunkFailure\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"chunkUploading\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"canceling\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"pausing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Uploader.prototype, \"resuming\", void 0);\r\n Uploader = __decorate([\r\n NotifyPropertyChanges\r\n ], Uploader);\r\n return Uploader;\r\n}(Component));\r\nexport { Uploader };\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\r\n","/**\n * index\n */\nexport * from './src/index';\n","/**\n * Listview Component\n */\nexport * from './list-base';\n","/* eslint-disable no-inner-declarations */\r\nimport { extend, merge, isNullOrUndefined, getValue } from '@syncfusion/ej2-base';\r\nimport { attributes, prepend, isVisible, append, addClass } from '@syncfusion/ej2-base';\r\nimport { compile } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\nexport var cssClass = {\r\n li: 'e-list-item',\r\n ul: 'e-list-parent e-ul',\r\n group: 'e-list-group-item',\r\n icon: 'e-list-icon',\r\n text: 'e-list-text',\r\n check: 'e-list-check',\r\n checked: 'e-checked',\r\n selected: 'e-selected',\r\n expanded: 'e-expanded',\r\n textContent: 'e-text-content',\r\n hasChild: 'e-has-child',\r\n level: 'e-level',\r\n url: 'e-list-url',\r\n collapsible: 'e-icon-collapsible',\r\n disabled: 'e-disabled',\r\n image: 'e-list-img',\r\n iconWrapper: 'e-icon-wrapper',\r\n anchorWrap: 'e-anchor-wrap',\r\n navigable: 'e-navigable'\r\n};\r\n/**\r\n * Base List Generator\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nexport var ListBase;\r\n(function (ListBase) {\r\n /**\r\n *\r\n * Default mapped fields.\r\n */\r\n ListBase.defaultMappedFields = {\r\n id: 'id',\r\n text: 'text',\r\n url: 'url',\r\n value: 'value',\r\n isChecked: 'isChecked',\r\n enabled: 'enabled',\r\n expanded: 'expanded',\r\n selected: 'selected',\r\n iconCss: 'iconCss',\r\n child: 'child',\r\n isVisible: 'isVisible',\r\n hasChildren: 'hasChildren',\r\n tooltip: 'tooltip',\r\n htmlAttributes: 'htmlAttributes',\r\n urlAttributes: 'urlAttributes',\r\n imageAttributes: 'imageAttributes',\r\n imageUrl: 'imageUrl',\r\n groupBy: null,\r\n sortBy: null\r\n };\r\n var defaultAriaAttributes = {\r\n level: 1,\r\n listRole: 'presentation',\r\n itemRole: 'presentation',\r\n groupItemRole: 'group',\r\n itemText: 'list-item',\r\n wrapperRole: 'presentation'\r\n };\r\n var defaultListBaseOptions = {\r\n showCheckBox: false,\r\n showIcon: false,\r\n enableHtmlSanitizer: false,\r\n expandCollapse: false,\r\n fields: ListBase.defaultMappedFields,\r\n ariaAttributes: defaultAriaAttributes,\r\n listClass: '',\r\n itemClass: '',\r\n processSubChild: false,\r\n sortOrder: 'None',\r\n template: null,\r\n groupTemplate: null,\r\n headerTemplate: null,\r\n expandIconClass: 'e-icon-collapsible',\r\n moduleName: 'list',\r\n expandIconPosition: 'Right',\r\n itemNavigable: false\r\n };\r\n /**\r\n * Function helps to created and return the UL Li element based on your data.\r\n *\r\n * @param {createElementParams} createElement - Specifies an array of JSON data.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\r\n *\r\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\r\n *\r\n * @param {any} componentInstance? - Specifies the list options that need to provide.\r\n *\r\n * @returns {createElement} createListFromJson - Specifies the list options that need to provide.\r\n */\r\n function createList(createElement, dataSource, \r\n // eslint-disable-next-line\r\n options, isSingleLevel, componentInstance) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\r\n var type = typeofData(dataSource).typeof;\r\n if (type === 'string' || type === 'number') {\r\n return createListFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\r\n }\r\n else {\r\n return createListFromJson(createElement, dataSource, options, ariaAttributes.level, isSingleLevel, componentInstance);\r\n }\r\n }\r\n ListBase.createList = createList;\r\n /**\r\n * Function helps to created an element list based on string array input .\r\n *\r\n * @param {createElementParams} createElement - Specifies an array of JSON data.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\r\n *\r\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\r\n *\r\n * @param {any} componentInstance? - Specifies the list options that need to provide.\r\n *\r\n * @returns {createElement} generateUL - returns the list options that need to provide.\r\n */\r\n function createListFromArray(createElement, dataSource, \r\n // tslint:disable-next-line\r\n // eslint-disable-next-line\r\n isSingleLevel, options, componentInstance) {\r\n var subChild = createListItemFromArray(createElement, dataSource, isSingleLevel, options, componentInstance);\r\n return generateUL(createElement, subChild, null, options);\r\n }\r\n ListBase.createListFromArray = createListFromArray;\r\n /**\r\n * Function helps to created an element list based on string array input .\r\n *\r\n * @param {createElementParams} createElement - Specifies an array of JSON data.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\r\n *\r\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\r\n *\r\n * @param {any} componentInstance? - Specifies the list options that need to provide.\r\n *\r\n * @returns {HTMLElement[]} subChild - returns the list options that need to provide.\r\n */\r\n function createListItemFromArray(createElement, dataSource, \r\n // eslint-disable-next-line\r\n isSingleLevel, options, componentInstance) {\r\n var subChild = [];\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n cssClass = getModuleClass(curOpt.moduleName);\r\n var id = generateId(); // generate id for drop-down-list option.\r\n for (var i = 0; i < dataSource.length; i++) {\r\n if (isNullOrUndefined(dataSource[i])) {\r\n continue;\r\n }\r\n var li = void 0;\r\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: dataSource[i],\r\n text: dataSource[i],\r\n options: curOpt\r\n };\r\n curOpt.itemCreating(curData);\r\n }\r\n if (isSingleLevel) {\r\n li = generateSingleLevelLI(createElement, dataSource[i], undefined, null, null, [], null, id, i, options);\r\n }\r\n else {\r\n li = generateLI(createElement, dataSource[i], undefined, null, null, options, componentInstance);\r\n }\r\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: dataSource[i],\r\n text: dataSource[i],\r\n item: li,\r\n options: curOpt\r\n };\r\n curOpt.itemCreated(curData);\r\n }\r\n subChild.push(li);\r\n }\r\n return subChild;\r\n }\r\n ListBase.createListItemFromArray = createListItemFromArray;\r\n /**\r\n * Function helps to created an element list based on array of JSON input .\r\n *\r\n * @param {createElementParams} createElement - Specifies an array of JSON data.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\r\n *\r\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\r\n *\r\n * @param {number} level? - Specifies the list options that need to provide.\r\n *\r\n * @param {any} componentInstance? - Specifies the list options that need to provide.\r\n *\r\n * @returns {HTMLElement[]} child - returns the list options that need to provide.\r\n */\r\n function createListItemFromJson(createElement, dataSource, \r\n // eslint-disable-next-line\r\n options, level, isSingleLevel, componentInstance) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n cssClass = getModuleClass(curOpt.moduleName);\r\n var fields = (componentInstance &&\r\n (componentInstance.getModuleName() == \"listview\" || componentInstance.getModuleName() == \"multiselect\")) ? curOpt.fields : extend({}, ListBase.defaultMappedFields, curOpt.fields);\r\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\r\n var id;\r\n var checkboxElement = [];\r\n if (level) {\r\n ariaAttributes.level = level;\r\n }\r\n var child = [];\r\n var li;\r\n var anchorElement;\r\n if (dataSource && dataSource.length && !isNullOrUndefined(typeofData(dataSource).item) &&\r\n // eslint-disable-next-line no-prototype-builtins\r\n !typeofData(dataSource).item.hasOwnProperty(fields.id)) {\r\n id = generateId(); // generate id for drop-down-list option.\r\n }\r\n for (var i = 0; i < dataSource.length; i++) {\r\n var fieldData = getFieldValues(dataSource[i], fields);\r\n if (isNullOrUndefined(dataSource[i])) {\r\n continue;\r\n }\r\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: dataSource[i],\r\n text: fieldData[fields.text],\r\n options: curOpt,\r\n fields: fields\r\n };\r\n curOpt.itemCreating(curData);\r\n }\r\n var curItem = dataSource[i];\r\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\r\n fieldData = getFieldValues(dataSource[i], fields);\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.id) && !isNullOrUndefined(fieldData[fields.id])) {\r\n id = fieldData[fields.id];\r\n }\r\n var innerEle = [];\r\n if (curOpt.showCheckBox) {\r\n if (curOpt.itemNavigable && (fieldData[fields.url] || fieldData[fields.urlAttributes])) {\r\n checkboxElement.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\r\n }\r\n else {\r\n innerEle.push(createElement('input', { className: cssClass.check, attrs: { type: 'checkbox' } }));\r\n }\r\n }\r\n if (isSingleLevel === true) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) && !isNullOrUndefined(fieldData[fields.iconCss])) {\r\n innerEle.push(createElement('span', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] }));\r\n }\r\n li = generateSingleLevelLI(createElement, curItem, fieldData, fields, curOpt.itemClass, innerEle, \r\n // eslint-disable-next-line no-prototype-builtins\r\n (curItem.hasOwnProperty('isHeader') &&\r\n curItem.isHeader) ? true : false, id, i, options);\r\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\r\n if (curOpt.itemNavigable && checkboxElement.length) {\r\n prepend(checkboxElement, li.firstElementChild);\r\n }\r\n }\r\n else {\r\n li = generateLI(createElement, curItem, fieldData, fields, curOpt.itemClass, options, componentInstance);\r\n li.classList.add(cssClass.level + '-' + ariaAttributes.level);\r\n li.setAttribute('aria-level', ariaAttributes.level.toString());\r\n anchorElement = li.querySelector('.' + cssClass.anchorWrap);\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.tooltip)) {\r\n li.setAttribute('title', fieldData[fields.tooltip]);\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\r\n setAttribute(li, fieldData[fields.htmlAttributes]);\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled] === false) {\r\n li.classList.add(cssClass.disabled);\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.isVisible) && fieldData[fields.isVisible] === false) {\r\n li.style.display = 'none';\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.imageUrl) && !isNullOrUndefined(fieldData[fields.imageUrl])\r\n && !curOpt.template) {\r\n var attr = { src: fieldData[fields.imageUrl] };\r\n merge(attr, fieldData[fields.imageAttributes]);\r\n var imageElemnt = createElement('img', { className: cssClass.image, attrs: attr });\r\n if (anchorElement) {\r\n anchorElement.insertAdjacentElement('afterbegin', imageElemnt);\r\n }\r\n else {\r\n prepend([imageElemnt], li.firstElementChild);\r\n }\r\n }\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (curOpt.showIcon && fieldData.hasOwnProperty(fields.iconCss) &&\r\n !isNullOrUndefined(fieldData[fields.iconCss]) && !curOpt.template) {\r\n var iconElement = createElement('div', { className: cssClass.icon + ' ' + fieldData[fields.iconCss] });\r\n if (anchorElement) {\r\n anchorElement.insertAdjacentElement('afterbegin', iconElement);\r\n }\r\n else {\r\n prepend([iconElement], li.firstElementChild);\r\n }\r\n }\r\n if (innerEle.length) {\r\n prepend(innerEle, li.firstElementChild);\r\n }\r\n if (curOpt.itemNavigable && checkboxElement.length) {\r\n prepend(checkboxElement, li.firstElementChild);\r\n }\r\n processSubChild(createElement, fieldData, fields, dataSource, curOpt, li, ariaAttributes.level);\r\n }\r\n if (anchorElement) {\r\n addClass([li], [cssClass.navigable]);\r\n }\r\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: dataSource[i],\r\n text: fieldData[fields.text],\r\n item: li,\r\n options: curOpt,\r\n fields: fields\r\n };\r\n curOpt.itemCreated(curData);\r\n }\r\n checkboxElement = [];\r\n child.push(li);\r\n }\r\n return child;\r\n }\r\n ListBase.createListItemFromJson = createListItemFromJson;\r\n /**\r\n * Function helps to created an element list based on array of JSON input .\r\n *\r\n * @param {createElementParams} createElement - Specifies an array of JSON data.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies an array of JSON data.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies the list options that need to provide.\r\n *\r\n * @param {number} level? - Specifies the list options that need to provide.\r\n *\r\n * @param {boolean} isSingleLevel? - Specifies the list options that need to provide.\r\n *\r\n * @param {any} componentInstance? - Specifies the list options that need to provide.\r\n *\r\n * @returns {createElement} generateUL - Specifies the list options that need to provide.\r\n */\r\n function createListFromJson(createElement, dataSource, \r\n // eslint-disable-next-line\r\n options, level, isSingleLevel, componentInstance) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var li = createListItemFromJson(createElement, dataSource, options, level, isSingleLevel, componentInstance);\r\n return generateUL(createElement, li, curOpt.listClass, options);\r\n }\r\n ListBase.createListFromJson = createListFromJson;\r\n /**\r\n * Return the next or previous visible element.\r\n *\r\n * @param {Element[]|NodeList} elementArray - An element array to find next or previous element.\r\n * @param {Element} li - An element to find next or previous after this element.\r\n * @param {boolean} isPrevious? - Specify when the need get previous element from array.\r\n */\r\n function getSiblingLI(elementArray, element, isPrevious) {\r\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\r\n if (!elementArray || !elementArray.length) {\r\n return void 0;\r\n }\r\n var siblingLI;\r\n var liIndex;\r\n var liCollections = Array.prototype.slice.call(elementArray);\r\n if (element) {\r\n liIndex = indexOf(element, liCollections);\r\n }\r\n else {\r\n liIndex = (isPrevious === true ? liCollections.length : -1);\r\n }\r\n siblingLI = liCollections[liIndex + (isPrevious === true ? -1 : 1)];\r\n while (siblingLI && (!isVisible(siblingLI) || siblingLI.classList.contains(cssClass.disabled))) {\r\n liIndex = liIndex + (isPrevious === true ? -1 : 1);\r\n siblingLI = liCollections[liIndex];\r\n }\r\n return siblingLI;\r\n }\r\n ListBase.getSiblingLI = getSiblingLI;\r\n /**\r\n * Return the index of the li element\r\n *\r\n * @param {Element} item - An element to find next or previous after this element.\r\n * @param {Element[]} elementArray - An element array to find index of given li.\r\n */\r\n function indexOf(item, elementArray) {\r\n if (!elementArray || !item) {\r\n return void 0;\r\n }\r\n else {\r\n var liCollections = elementArray;\r\n liCollections = Array.prototype.slice.call(elementArray);\r\n return liCollections.indexOf(item);\r\n }\r\n }\r\n ListBase.indexOf = indexOf;\r\n /**\r\n * Returns the grouped data from given dataSource.\r\n *\r\n * @param {{Object}[]} dataSource - The JSON data which is necessary to process.\r\n * @param {FieldsMapping} fields - Fields that are mapped from the data source.\r\n * @param {SortOrder} sortOrder- Specifies final result sort order.\r\n */\r\n function groupDataSource(dataSource, fields, sortOrder) {\r\n if (sortOrder === void 0) { sortOrder = 'None'; }\r\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\r\n var cusQuery = new Query().group(curFields.groupBy);\r\n // need to remove once sorting issues fixed in DataManager\r\n cusQuery = addSorting(sortOrder, 'key', cusQuery);\r\n var ds = getDataSource(dataSource, cusQuery);\r\n dataSource = [];\r\n for (var j = 0; j < ds.length; j++) {\r\n var itemObj = ds[j].items;\r\n var grpItem = {};\r\n var hdr = 'isHeader';\r\n grpItem[curFields.text] = ds[j].key;\r\n grpItem[hdr] = true;\r\n var newtext = curFields.text;\r\n if (newtext === 'id') {\r\n newtext = 'text';\r\n grpItem[newtext] = ds[j].key;\r\n }\r\n grpItem._id = 'group-list-item-' + (ds[j].key ?\r\n ds[j].key.toString().trim() : 'undefined');\r\n grpItem.items = itemObj;\r\n dataSource.push(grpItem);\r\n for (var k = 0; k < itemObj.length; k++) {\r\n dataSource.push(itemObj[k]);\r\n }\r\n }\r\n return dataSource;\r\n }\r\n ListBase.groupDataSource = groupDataSource;\r\n /**\r\n * Returns a sorted query object.\r\n *\r\n * @param {SortOrder} sortOrder - Specifies that sort order.\r\n * @param {string} sortBy - Specifies sortBy fields.\r\n * @param {Query} query - Pass if any existing query.\r\n */\r\n function addSorting(sortOrder, sortBy, query) {\r\n if (query === void 0) { query = new Query(); }\r\n if (sortOrder === 'Ascending') {\r\n query.sortBy(sortBy, 'ascending', true);\r\n }\r\n else if (sortOrder === 'Descending') {\r\n query.sortBy(sortBy, 'descending', true);\r\n }\r\n else {\r\n for (var i = 0; i < query.queries.length; i++) {\r\n if (query.queries[i].fn === 'onSortBy') {\r\n query.queries.splice(i, 1);\r\n }\r\n }\r\n }\r\n return query;\r\n }\r\n ListBase.addSorting = addSorting;\r\n /**\r\n * Return an array of JSON Data that processed based on queries.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\r\n *\r\n * @param {Query} query - Specifies query that need to process.\r\n */\r\n function getDataSource(dataSource, query) {\r\n // eslint-disable-next-line\r\n return new DataManager(dataSource)\r\n .executeLocal(query);\r\n }\r\n ListBase.getDataSource = getDataSource;\r\n /**\r\n * Created JSON data based the UL and LI element\r\n *\r\n * @param {HTMLElement|Element} element - UL element that need to convert as a JSON\r\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\r\n */\r\n function createJsonFromElement(element, options) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var fields = extend({}, ListBase.defaultMappedFields, curOpt.fields);\r\n var curEle = element.cloneNode(true);\r\n // eslint-disable-next-line\r\n var jsonAr = [];\r\n curEle.classList.add('json-parent');\r\n var childs = curEle.querySelectorAll('.json-parent>li');\r\n curEle.classList.remove('json-parent');\r\n for (var i = 0; i < childs.length; i++) {\r\n var li = childs[i];\r\n var anchor = li.querySelector('a');\r\n var ul = li.querySelector('ul');\r\n // eslint-disable-next-line\r\n var json = {};\r\n var childNodes = anchor ? anchor.childNodes : li.childNodes;\r\n var keys = Object.keys(childNodes);\r\n for (var i_1 = 0; i_1 < childNodes.length; i_1++) {\r\n if (!(childNodes[Number(keys[i_1])]).hasChildNodes()) {\r\n json[fields.text] = childNodes[Number(keys[i_1])].textContent;\r\n }\r\n }\r\n var attributes_1 = getAllAttributes(li);\r\n if (attributes_1.id) {\r\n json[fields.id] = attributes_1.id;\r\n delete attributes_1.id;\r\n }\r\n else {\r\n json[fields.id] = generateId();\r\n }\r\n if (Object.keys(attributes_1).length) {\r\n json[fields.htmlAttributes] = attributes_1;\r\n }\r\n if (anchor) {\r\n attributes_1 = getAllAttributes(anchor);\r\n if (Object.keys(attributes_1).length) {\r\n json[fields.urlAttributes] = attributes_1;\r\n }\r\n }\r\n if (ul) {\r\n json[fields.child] = createJsonFromElement(ul, options);\r\n }\r\n jsonAr.push(json);\r\n }\r\n return jsonAr;\r\n }\r\n ListBase.createJsonFromElement = createJsonFromElement;\r\n function typeofData(data) {\r\n var match = { typeof: null, item: null };\r\n for (var i = 0; i < data.length; i++) {\r\n if (!isNullOrUndefined(data[i])) {\r\n return match = { typeof: typeof data[i], item: data[i] };\r\n }\r\n }\r\n return match;\r\n }\r\n function setAttribute(element, elementAttributes) {\r\n var attr = {};\r\n merge(attr, elementAttributes);\r\n if (attr.class) {\r\n addClass([element], attr.class.split(' '));\r\n delete attr.class;\r\n }\r\n attributes(element, attr);\r\n }\r\n function getAllAttributes(element) {\r\n var attributes = {};\r\n var attr = element.attributes;\r\n for (var index = 0; index < attr.length; index++) {\r\n attributes[attr[index].nodeName] = attr[index].nodeValue;\r\n }\r\n return attributes;\r\n }\r\n /**\r\n * Created UL element from content template.\r\n *\r\n * @param {string} template - that need to convert and generate li element.\r\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\r\n * @param {ListBaseOptions} options? - Specifies listbase option for fields.\r\n */\r\n function renderContentTemplate(createElement, template, dataSource, \r\n // eslint-disable-next-line\r\n fields, options, componentInstance) {\r\n cssClass = getModuleClass(defaultListBaseOptions.moduleName);\r\n var ulElement = createElement('ul', { className: cssClass.ul, attrs: { role: 'presentation' } });\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\r\n // eslint-disable-next-line\r\n var compiledString = compileTemplate(template);\r\n var liCollection = [];\r\n var value;\r\n var id = generateId(); // generate id for drop-down-list option.\r\n for (var i = 0; i < dataSource.length; i++) {\r\n var fieldData = getFieldValues(dataSource[i], curFields);\r\n var curItem = dataSource[i];\r\n var isHeader = curItem.isHeader;\r\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\r\n value = curItem;\r\n }\r\n else {\r\n value = fieldData[curFields.value];\r\n }\r\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: curItem,\r\n text: value,\r\n options: curOpt,\r\n fields: curFields\r\n };\r\n curOpt.itemCreating(curData);\r\n }\r\n if (curOpt.itemCreating && typeof curOpt.itemCreating === 'function') {\r\n fieldData = getFieldValues(dataSource[i], curFields);\r\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\r\n value = curItem;\r\n }\r\n else {\r\n value = fieldData[curFields.value];\r\n }\r\n }\r\n var li = createElement('li', {\r\n id: id + '-' + i,\r\n className: isHeader ? cssClass.group : cssClass.li, attrs: { role: 'presentation' }\r\n });\r\n if (isHeader) {\r\n if (typeof dataSource[i] === 'string' || typeof dataSource[i] === 'number') {\r\n li.innerText = curItem;\r\n }\r\n else {\r\n li.innerText = fieldData[curFields.text];\r\n }\r\n }\r\n else {\r\n var currentID = isHeader ? curOpt.groupTemplateID : curOpt.templateID;\r\n if (isHeader) {\r\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate, null, li);\r\n if (compiledElement) {\r\n append(compiledElement, li);\r\n }\r\n }\r\n else {\r\n append(compiledString(curItem, componentInstance, 'headerTemplate', currentID, !!curOpt.isStringTemplate), li);\r\n }\r\n }\r\n else {\r\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate, null, li);\r\n if (compiledElement) {\r\n append(compiledElement, li);\r\n }\r\n }\r\n else {\r\n append(compiledString(curItem, componentInstance, 'template', currentID, !!curOpt.isStringTemplate), li);\r\n }\r\n }\r\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\r\n li.setAttribute('role', 'option');\r\n }\r\n if (curOpt.itemCreated && typeof curOpt.itemCreated === 'function') {\r\n var curData = {\r\n dataSource: dataSource,\r\n curData: curItem,\r\n text: value,\r\n item: li,\r\n options: curOpt,\r\n fields: curFields\r\n };\r\n curOpt.itemCreated(curData);\r\n }\r\n liCollection.push(li);\r\n }\r\n append(liCollection, ulElement);\r\n return ulElement;\r\n }\r\n ListBase.renderContentTemplate = renderContentTemplate;\r\n /**\r\n * Created header items from group template.\r\n *\r\n * @param {string} template - that need to convert and generate li element.\r\n *\r\n * @param {{Object}[]} dataSource - Specifies local JSON data source.\r\n *\r\n * @param {FieldsMapping} fields - Specifies fields for mapping the dataSource.\r\n *\r\n * @param {Element[]} headerItems? - Specifies listbase header items.\r\n */\r\n // tslint:disable-next-line\r\n function renderGroupTemplate(groupTemplate, groupDataSource, fields, \r\n // eslint-disable-next-line\r\n headerItems, options, componentInstance) {\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var compiledString = compileTemplate(groupTemplate);\r\n var curFields = extend({}, ListBase.defaultMappedFields, fields);\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var category = curFields.groupBy;\r\n for (var _i = 0, headerItems_1 = headerItems; _i < headerItems_1.length; _i++) {\r\n var header = headerItems_1[_i];\r\n var headerData = {};\r\n headerData[category] = header.textContent;\r\n header.innerHTML = '';\r\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, header);\r\n if (compiledElement) {\r\n append(compiledElement, header);\r\n }\r\n }\r\n else {\r\n append(compiledString(headerData, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), header);\r\n }\r\n }\r\n return headerItems;\r\n }\r\n ListBase.renderGroupTemplate = renderGroupTemplate;\r\n function generateId() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n ListBase.generateId = generateId;\r\n function processSubChild(createElement, fieldData, fields, ds, options, element, level) {\r\n // Get SubList\r\n var subDS = fieldData[fields.child] || [];\r\n var hasChildren = fieldData[fields.hasChildren];\r\n //Create Sub child\r\n if (subDS.length) {\r\n hasChildren = true;\r\n element.classList.add(cssClass.hasChild);\r\n if (options.processSubChild) {\r\n var subLi = createListFromJson(createElement, subDS, options, ++level);\r\n element.appendChild(subLi);\r\n }\r\n }\r\n // Create expand and collapse node\r\n if (!!options.expandCollapse && hasChildren && !options.template) {\r\n element.firstElementChild.classList.add(cssClass.iconWrapper);\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var expandElement = options.expandIconPosition === 'Left' ? prepend : append;\r\n expandElement([createElement('div', { className: 'e-icons ' + options.expandIconClass })], element.querySelector('.' + cssClass.textContent));\r\n }\r\n }\r\n function generateSingleLevelLI(createElement, item, fieldData, fields, className, innerElements, grpLI, id, index, options) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\r\n var text = item;\r\n var value = item;\r\n var dataSource;\r\n if (typeof item !== 'string' && typeof item !== 'number' && typeof item !== 'boolean') {\r\n dataSource = item;\r\n text = (typeof fieldData[fields.text] === 'boolean' || typeof fieldData[fields.text] === 'number') ?\r\n fieldData[fields.text] : (fieldData[fields.text] || '');\r\n value = fieldData[fields.value];\r\n }\r\n var elementID;\r\n if (!isNullOrUndefined(dataSource) && !isNullOrUndefined(fieldData[fields.id])\r\n && fieldData[fields.id] !== '') {\r\n elementID = id;\r\n }\r\n else {\r\n elementID = id + '-' + index;\r\n }\r\n var li = createElement('li', {\r\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\r\n id: elementID, attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\r\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\r\n });\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (dataSource && fieldData.hasOwnProperty(fields.enabled) && fieldData[fields.enabled].toString() === 'false') {\r\n li.classList.add(cssClass.disabled);\r\n }\r\n if (grpLI) {\r\n li.innerText = text;\r\n }\r\n else {\r\n li.setAttribute('data-value', isNullOrUndefined(value) ? 'null' : value);\r\n li.setAttribute('role', 'option');\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (dataSource && fieldData.hasOwnProperty(fields.htmlAttributes) && fieldData[fields.htmlAttributes]) {\r\n setAttribute(li, fieldData[fields.htmlAttributes]);\r\n }\r\n if (innerElements.length && !curOpt.itemNavigable) {\r\n append(innerElements, li);\r\n }\r\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\r\n fieldData[fields.urlAttributes].href))) {\r\n li.appendChild(anchorTag(createElement, dataSource, fields, text, innerElements, curOpt.itemNavigable));\r\n }\r\n else {\r\n if (innerElements.length && curOpt.itemNavigable) {\r\n append(innerElements, li);\r\n }\r\n li.appendChild(document.createTextNode(text));\r\n }\r\n }\r\n return li;\r\n }\r\n function getModuleClass(moduleName) {\r\n var moduleClass;\r\n // eslint-disable-next-line\r\n return moduleClass = {\r\n li: \"e-\" + moduleName + \"-item\",\r\n ul: \"e-\" + moduleName + \"-parent e-ul\",\r\n group: \"e-\" + moduleName + \"-group-item\",\r\n icon: \"e-\" + moduleName + \"-icon\",\r\n text: \"e-\" + moduleName + \"-text\",\r\n check: \"e-\" + moduleName + \"-check\",\r\n checked: 'e-checked',\r\n selected: 'e-selected',\r\n expanded: 'e-expanded',\r\n textContent: 'e-text-content',\r\n hasChild: 'e-has-child',\r\n level: 'e-level',\r\n url: \"e-\" + moduleName + \"-url\",\r\n collapsible: 'e-icon-collapsible',\r\n disabled: 'e-disabled',\r\n image: \"e-\" + moduleName + \"-img\",\r\n iconWrapper: 'e-icon-wrapper',\r\n anchorWrap: 'e-anchor-wrap',\r\n navigable: 'e-navigable'\r\n };\r\n }\r\n function anchorTag(createElement, dataSource, fields, text, innerElements, isFullNavigation) {\r\n var fieldData = getFieldValues(dataSource, fields);\r\n var attr = { href: fieldData[fields.url] };\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (fieldData.hasOwnProperty(fields.urlAttributes) && fieldData[fields.urlAttributes]) {\r\n merge(attr, fieldData[fields.urlAttributes]);\r\n attr.href = fieldData[fields.url] ? fieldData[fields.url] :\r\n fieldData[fields.urlAttributes].href;\r\n }\r\n var anchorTag;\r\n if (!isFullNavigation) {\r\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url, innerHTML: text });\r\n }\r\n else {\r\n anchorTag = createElement('a', { className: cssClass.text + ' ' + cssClass.url });\r\n var anchorWrapper = createElement('div', { className: cssClass.anchorWrap });\r\n if (innerElements && innerElements.length) {\r\n append(innerElements, anchorWrapper);\r\n }\r\n anchorWrapper.appendChild(document.createTextNode(text));\r\n append([anchorWrapper], anchorTag);\r\n }\r\n setAttribute(anchorTag, attr);\r\n return anchorTag;\r\n }\r\n // tslint:disable-next-line\r\n /* tslint:disable:align */\r\n function generateLI(createElement, item, fieldData, \r\n // eslint-disable-next-line\r\n fields, className, options, componentInstance) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\r\n var text = item;\r\n var uID;\r\n var grpLI;\r\n var dataSource;\r\n if (typeof item !== 'string' && typeof item !== 'number') {\r\n dataSource = item;\r\n text = fieldData[fields.text] || '';\r\n // tslint:disable-next-line\r\n uID = (isNullOrUndefined(fieldData['_id'])) ? fieldData[fields.id] : fieldData['_id'];\r\n // eslint-disable-next-line no-prototype-builtins\r\n grpLI = (item.hasOwnProperty('isHeader') && item.isHeader)\r\n ? true : false;\r\n }\r\n if (options && options.enableHtmlSanitizer) {\r\n // eslint-disable-next-line no-self-assign\r\n text = text;\r\n }\r\n var li = createElement('li', {\r\n className: (grpLI === true ? cssClass.group : cssClass.li) + ' ' + (isNullOrUndefined(className) ? '' : className),\r\n attrs: (ariaAttributes.groupItemRole !== '' && ariaAttributes.itemRole !== '' ?\r\n { role: (grpLI === true ? ariaAttributes.groupItemRole : ariaAttributes.itemRole) } : {})\r\n });\r\n if (!isNullOrUndefined(uID) === true) {\r\n li.setAttribute('data-uid', uID);\r\n }\r\n else {\r\n li.setAttribute('data-uid', generateId());\r\n }\r\n if (grpLI && options && options.groupTemplate) {\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var compiledString = compileTemplate(options.groupTemplate);\r\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate, null, li);\r\n if (compiledElement) {\r\n append(compiledElement, li);\r\n }\r\n }\r\n else {\r\n append(compiledString(item, componentInstance, 'groupTemplate', curOpt.groupTemplateID, !!curOpt.isStringTemplate), li);\r\n }\r\n }\r\n else if (!grpLI && options && options.template) {\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var compiledString = compileTemplate(options.template);\r\n if (componentInstance && componentInstance.getModuleName() !== 'listview') {\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate, null, li);\r\n if (compiledElement) {\r\n append(compiledElement, li);\r\n }\r\n }\r\n else {\r\n append(compiledString(item, componentInstance, 'template', curOpt.templateID, !!curOpt.isStringTemplate), li);\r\n }\r\n }\r\n else {\r\n var innerDiv = createElement('div', {\r\n className: cssClass.textContent,\r\n attrs: (ariaAttributes.wrapperRole !== '' ? { role: ariaAttributes.wrapperRole } : {})\r\n });\r\n if (dataSource && (fieldData[fields.url] || (fieldData[fields.urlAttributes] &&\r\n fieldData[fields.urlAttributes].href))) {\r\n innerDiv.appendChild(anchorTag(createElement, dataSource, fields, text, null, curOpt.itemNavigable));\r\n }\r\n else {\r\n var element = createElement('span', {\r\n className: cssClass.text,\r\n attrs: (ariaAttributes.itemText !== '' ? { role: ariaAttributes.itemText } : {})\r\n });\r\n if (options && options.enableHtmlSanitizer) {\r\n element.innerText = text;\r\n }\r\n else {\r\n element.innerHTML = text;\r\n }\r\n innerDiv.appendChild(element);\r\n }\r\n li.appendChild(innerDiv);\r\n }\r\n return li;\r\n }\r\n /**\r\n * Returns UL element based on the given LI element.\r\n *\r\n * @param {HTMLElement[]} liElement - Specifies array of LI element.\r\n *\r\n * @param {string} className? - Specifies class name that need to be added in UL element.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies ListBase options.\r\n */\r\n function generateUL(createElement, liElement, className, options) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n var ariaAttributes = extend({}, defaultAriaAttributes, curOpt.ariaAttributes);\r\n cssClass = getModuleClass(curOpt.moduleName);\r\n var ulElement = createElement('ul', {\r\n className: cssClass.ul + ' ' + (isNullOrUndefined(className) ? '' : className),\r\n attrs: (ariaAttributes.listRole !== '' ? { role: ariaAttributes.listRole } : {})\r\n });\r\n append(liElement, ulElement);\r\n return ulElement;\r\n }\r\n ListBase.generateUL = generateUL;\r\n /**\r\n * Returns LI element with additional DIV tag based on the given LI element.\r\n *\r\n * @param {liElement} liElement - Specifies LI element.\r\n *\r\n * @param {string} className? - Specifies class name that need to be added in created DIV element.\r\n *\r\n * @param {ListBaseOptions} options? - Specifies ListBase options.\r\n */\r\n function generateIcon(createElement, liElement, className, options) {\r\n var curOpt = extend({}, defaultListBaseOptions, options);\r\n cssClass = getModuleClass(curOpt.moduleName);\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var expandElement = curOpt.expandIconPosition === 'Left' ? prepend : append;\r\n expandElement([createElement('div', {\r\n className: 'e-icons ' + curOpt.expandIconClass + ' ' +\r\n (isNullOrUndefined(className) ? '' : className)\r\n })], liElement.querySelector('.' + cssClass.textContent));\r\n return liElement;\r\n }\r\n ListBase.generateIcon = generateIcon;\r\n})(ListBase || (ListBase = {}));\r\n/**\r\n * Used to get dataSource item from complex data using fields.\r\n *\r\n * @param {Object} dataSource - Specifies an JSON or String data.\r\n *\r\n * @param {FieldsMapping} fields - Fields that are mapped from the dataSource.\r\n */\r\nexport function getFieldValues(dataItem, fields) {\r\n var fieldData = {};\r\n if (isNullOrUndefined(dataItem) || typeof (dataItem) === 'string' || typeof (dataItem) === 'number'\r\n || !isNullOrUndefined(dataItem.isHeader)) {\r\n return dataItem;\r\n }\r\n else {\r\n for (var _i = 0, _a = Object.keys(fields); _i < _a.length; _i++) {\r\n var field = _a[_i];\r\n var dataField = fields[field];\r\n var value = !isNullOrUndefined(dataField) &&\r\n typeof (dataField) === 'string' ? getValue(dataField, dataItem) : undefined;\r\n if (!isNullOrUndefined(value)) {\r\n fieldData[dataField] = value;\r\n }\r\n }\r\n }\r\n return fieldData;\r\n}\r\nfunction compileTemplate(template) {\r\n if (template) {\r\n try {\r\n if (document.querySelector(template)) {\r\n return compile(document.querySelector(template).innerHTML.trim());\r\n }\r\n }\r\n catch (e) {\r\n return compile(template);\r\n }\r\n }\r\n return undefined;\r\n}\r\n","/**\n * List Components\n */\nexport * from './list-view/index';\nexport * from './common/index';\nexport * from './sortable';\n","/**\n * Listview Component\n */\nexport * from './list-view';\nexport * from './virtualization';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { merge, formatUnit, isNullOrUndefined, append, detach, extend } from '@syncfusion/ej2-base';\r\nimport { attributes, addClass, removeClass, prepend, closest, remove } from '@syncfusion/ej2-base';\r\nimport { Component, EventHandler, Property, Complex, Event } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty } from '@syncfusion/ej2-base';\r\nimport { compile, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { Animation, rippleEffect, Touch } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\nimport { createCheckBox } from '@syncfusion/ej2-buttons';\r\nimport { ListBase, getFieldValues } from '../common/list-base';\r\n// Effect Configuration Effect[] = [fromViewBackward,fromViewForward,toViewBackward,toviewForward];\r\nvar effectsConfig = {\r\n 'None': [],\r\n 'SlideLeft': ['SlideRightOut', 'SlideLeftOut', 'SlideLeftIn', 'SlideRightIn'],\r\n 'SlideDown': ['SlideTopOut', 'SlideBottomOut', 'SlideBottomIn', 'SlideTopIn'],\r\n 'Zoom': ['FadeOut', 'FadeZoomOut', 'FadeZoomIn', 'FadeIn'],\r\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\r\n};\r\nvar effectsRTLConfig = {\r\n 'None': [],\r\n 'SlideLeft': ['SlideLeftOut', 'SlideRightOut', 'SlideRightIn', 'SlideLeftIn'],\r\n 'SlideDown': ['SlideBottomOut', 'SlideTopOut', 'SlideTopIn', 'SlideBottomIn'],\r\n 'Zoom': ['FadeZoomOut', 'FadeOut', 'FadeIn', 'FadeZoomIn'],\r\n 'Fade': ['FadeOut', 'FadeOut', 'FadeIn', 'FadeIn']\r\n};\r\n// don't use space in classnames.\r\nexport var classNames = {\r\n root: 'e-listview',\r\n hover: 'e-hover',\r\n selected: 'e-active',\r\n focused: 'e-focused',\r\n parentItem: 'e-list-parent',\r\n listItem: 'e-list-item',\r\n listIcon: 'e-list-icon',\r\n textContent: 'e-text-content',\r\n listItemText: 'e-list-text',\r\n groupListItem: 'e-list-group-item',\r\n hasChild: 'e-has-child',\r\n view: 'e-view',\r\n header: 'e-list-header',\r\n headerText: 'e-headertext',\r\n headerTemplateText: 'e-headertemplate-text',\r\n text: 'e-text',\r\n disable: 'e-disabled',\r\n content: 'e-content',\r\n icon: 'e-icons',\r\n backIcon: 'e-icon-back',\r\n checkboxWrapper: 'e-checkbox-wrapper',\r\n checkbox: 'e-checkbox',\r\n checked: 'e-check',\r\n checklist: 'e-checklist',\r\n checkboxIcon: 'e-frame',\r\n checkboxRight: 'e-checkbox-right',\r\n checkboxLeft: 'e-checkbox-left',\r\n listviewCheckbox: 'e-listview-checkbox',\r\n itemCheckList: 'e-checklist',\r\n virtualElementContainer: 'e-list-virtualcontainer'\r\n};\r\nvar LISTVIEW_TEMPLATE_PROPERTY = 'Template';\r\nvar LISTVIEW_GROUPTEMPLATE_PROPERTY = 'GroupTemplate';\r\nvar LISTVIEW_HEADERTEMPLATE_PROPERTY = 'HeaderTemplate';\r\nvar swipeVelocity = 0.5;\r\n/**\r\n * Represents the field settings of the ListView.\r\n */\r\nvar FieldSettings = /** @class */ (function (_super) {\r\n __extends(FieldSettings, _super);\r\n function FieldSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('id')\r\n ], FieldSettings.prototype, \"id\", void 0);\r\n __decorate([\r\n Property('text')\r\n ], FieldSettings.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('isChecked')\r\n ], FieldSettings.prototype, \"isChecked\", void 0);\r\n __decorate([\r\n Property('isVisible')\r\n ], FieldSettings.prototype, \"isVisible\", void 0);\r\n __decorate([\r\n Property('enabled')\r\n ], FieldSettings.prototype, \"enabled\", void 0);\r\n __decorate([\r\n Property('iconCss')\r\n ], FieldSettings.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('child')\r\n ], FieldSettings.prototype, \"child\", void 0);\r\n __decorate([\r\n Property('tooltip')\r\n ], FieldSettings.prototype, \"tooltip\", void 0);\r\n __decorate([\r\n Property('groupBy')\r\n ], FieldSettings.prototype, \"groupBy\", void 0);\r\n __decorate([\r\n Property('text')\r\n ], FieldSettings.prototype, \"sortBy\", void 0);\r\n __decorate([\r\n Property('htmlAttributes')\r\n ], FieldSettings.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('tableName')\r\n ], FieldSettings.prototype, \"tableName\", void 0);\r\n return FieldSettings;\r\n}(ChildProperty));\r\nexport { FieldSettings };\r\n/**\r\n * Represents the EJ2 ListView control.\r\n * ```html\r\n *
    \r\n *
      \r\n *
    • Favorite
    • \r\n *
    • Documents
    • \r\n *
    • Downloads
    • \r\n *
    \r\n *
    \r\n * ```\r\n * ```typescript\r\n * var listviewObject = new ListView({});\r\n * listviewObject.appendTo(\"#listview\");\r\n * ```\r\n */\r\nvar ListView = /** @class */ (function (_super) {\r\n __extends(ListView, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param options\r\n *\r\n * @param element\r\n */\r\n function ListView(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.previousSelectedItems = [];\r\n _this.hiddenItems = [];\r\n _this.enabledItems = [];\r\n _this.disabledItems = [];\r\n return _this;\r\n }\r\n /**\r\n * @param newProp\r\n *\r\n * @param oldProp\r\n *\r\n * @private\r\n */\r\n ListView.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'htmlAttributes':\r\n this.setHTMLAttribute();\r\n break;\r\n case 'cssClass':\r\n this.setCSSClass(oldProp.cssClass);\r\n break;\r\n case 'enable':\r\n this.setEnable();\r\n break;\r\n case 'width':\r\n case 'height':\r\n this.setSize();\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRTL();\r\n break;\r\n case 'fields':\r\n // eslint-disable-next-line\r\n this.listBaseOption.fields = this.fields.properties;\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.reRenderUiVirtualization();\r\n }\r\n else {\r\n this.reRender();\r\n }\r\n break;\r\n case 'headerTitle':\r\n if (!this.curDSLevel.length) {\r\n this.header(this.headerTitle, false, 'header');\r\n }\r\n break;\r\n case 'query':\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.reRenderUiVirtualization();\r\n }\r\n else {\r\n this.reRender();\r\n }\r\n break;\r\n case 'showHeader':\r\n this.header(this.headerTitle, false, 'header');\r\n break;\r\n case 'enableVirtualization':\r\n if (!isNullOrUndefined(this.contentContainer)) {\r\n detach(this.contentContainer);\r\n }\r\n this.refresh();\r\n break;\r\n case 'showCheckBox':\r\n case 'checkBoxPosition':\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.reRenderUiVirtualization();\r\n }\r\n else {\r\n this.setCheckbox();\r\n }\r\n break;\r\n case 'dataSource':\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.reRenderUiVirtualization();\r\n }\r\n else {\r\n this.reRender();\r\n }\r\n break;\r\n case 'sortOrder':\r\n case 'template':\r\n if (!this.enableVirtualization) {\r\n this.refresh();\r\n }\r\n break;\r\n case 'showIcon':\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.reRenderUiVirtualization();\r\n }\r\n else {\r\n this.listBaseOption.showIcon = this.showIcon;\r\n this.curViewDS = this.getSubDS();\r\n this.resetCurrentList();\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n // Model Changes\r\n ListView.prototype.setHTMLAttribute = function () {\r\n if (Object.keys(this.htmlAttributes).length) {\r\n attributes(this.element, this.htmlAttributes);\r\n }\r\n };\r\n ListView.prototype.setCSSClass = function (oldCSSClass) {\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' ').filter(function (css) { return css; }));\r\n }\r\n if (oldCSSClass) {\r\n removeClass([this.element], oldCSSClass.split(' ').filter(function (css) { return css; }));\r\n }\r\n };\r\n ListView.prototype.setSize = function () {\r\n this.element.style.height = formatUnit(this.height);\r\n this.element.style.width = formatUnit(this.width);\r\n this.isWindow = this.element.clientHeight ? false : true;\r\n };\r\n ListView.prototype.setEnable = function () {\r\n this.enableElement(this.element, this.enable);\r\n };\r\n ListView.prototype.setEnableRTL = function () {\r\n if (this.enableRtl) {\r\n this.element.classList.add('e-rtl');\r\n }\r\n else {\r\n this.element.classList.remove('e-rtl');\r\n }\r\n };\r\n ListView.prototype.enableElement = function (element, isEnabled) {\r\n if (isEnabled) {\r\n element.classList.remove(classNames.disable);\r\n }\r\n else {\r\n element.classList.add(classNames.disable);\r\n }\r\n };\r\n // Support Component Functions\r\n ListView.prototype.header = function (text, showBack, prop) {\r\n if (this.headerEle === undefined && this.showHeader) {\r\n if (this.enableHtmlSanitizer) {\r\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\r\n }\r\n this.headerEle = this.createElement('div', { className: classNames.header });\r\n var innerHeaderEle = this.createElement('span', { className: classNames.headerText, innerHTML: this.headerTitle });\r\n var textEle = this.createElement('div', { className: classNames.text, innerHTML: innerHeaderEle.outerHTML });\r\n var hedBackButton = this.createElement('div', {\r\n className: classNames.icon + ' ' + classNames.backIcon + ' e-but-back',\r\n attrs: { style: 'display:none;' }\r\n });\r\n this.headerEle.appendChild(hedBackButton);\r\n this.headerEle.appendChild(textEle);\r\n if (this.headerTemplate) {\r\n // eslint-disable-next-line\r\n var compiledString = compile(this.headerTemplate);\r\n var headerTemplateEle = this.createElement('div', { className: classNames.headerTemplateText });\r\n // eslint-disable-next-line\r\n var compiledElement = compiledString({}, this, prop, this.LISTVIEW_HEADERTEMPLATE_ID, null, null, this.headerEle);\r\n if (compiledElement) {\r\n append(compiledElement, headerTemplateEle);\r\n }\r\n append([headerTemplateEle], this.headerEle);\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n }\r\n if (this.headerTemplate && this.headerTitle) {\r\n textEle.classList.add('header');\r\n }\r\n this.element.classList.add('e-has-header');\r\n prepend([this.headerEle], this.element);\r\n }\r\n else if (this.headerEle) {\r\n if (this.showHeader) {\r\n this.headerEle.style.display = '';\r\n var textEle = this.headerEle.querySelector('.' + classNames.headerText);\r\n var hedBackButton = this.headerEle.querySelector('.' + classNames.backIcon);\r\n if (this.enableHtmlSanitizer) {\r\n text = SanitizeHtmlHelper.sanitize(text);\r\n }\r\n textEle.innerHTML = text;\r\n if (this.headerTemplate && showBack) {\r\n textEle.parentElement.classList.remove('header');\r\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('nested-header');\r\n }\r\n if (this.headerTemplate && !showBack) {\r\n textEle.parentElement.classList.add('header');\r\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.remove('nested-header');\r\n this.headerEle.querySelector('.' + classNames.headerTemplateText).classList.add('header');\r\n }\r\n if (showBack === true) {\r\n hedBackButton.style.display = '';\r\n }\r\n else {\r\n hedBackButton.style.display = 'none';\r\n }\r\n }\r\n else {\r\n this.headerEle.style.display = 'none';\r\n }\r\n }\r\n };\r\n // Animation Related Functions\r\n ListView.prototype.switchView = function (fromView, toView, reverse) {\r\n var _this = this;\r\n if (fromView && toView) {\r\n var fPos_1 = fromView.style.position;\r\n var overflow_1 = (this.element.style.overflow !== 'hidden') ? this.element.style.overflow : '';\r\n fromView.style.position = 'absolute';\r\n fromView.classList.add('e-view');\r\n var anim = void 0;\r\n var duration = this.animation.duration;\r\n if (this.animation.effect) {\r\n anim = (this.enableRtl ? effectsRTLConfig[this.animation.effect] : effectsConfig[this.animation.effect]);\r\n }\r\n else {\r\n var slideLeft = 'SlideLeft';\r\n anim = effectsConfig[slideLeft];\r\n reverse = this.enableRtl;\r\n duration = 0;\r\n }\r\n this.element.style.overflow = 'hidden';\r\n this.aniObj.animate(fromView, {\r\n name: (reverse === true ? anim[0] : anim[1]),\r\n duration: duration,\r\n timingFunction: this.animation.easing,\r\n // eslint-disable-next-line\r\n end: function (model) {\r\n fromView.style.display = 'none';\r\n _this.element.style.overflow = overflow_1;\r\n fromView.style.position = fPos_1;\r\n fromView.classList.remove('e-view');\r\n }\r\n });\r\n toView.style.display = '';\r\n this.aniObj.animate(toView, {\r\n name: (reverse === true ? anim[2] : anim[3]),\r\n duration: duration,\r\n timingFunction: this.animation.easing,\r\n end: function () {\r\n _this.trigger('actionComplete');\r\n }\r\n });\r\n this.curUL = toView;\r\n }\r\n };\r\n ListView.prototype.preRender = function () {\r\n if (this.template) {\r\n try {\r\n if (document.querySelectorAll(this.template).length) {\r\n this.setProperties({ template: document.querySelector(this.template).innerHTML.trim() }, true);\r\n }\r\n }\r\n catch (e) {\r\n compile(this.template);\r\n }\r\n }\r\n this.listBaseOption = {\r\n template: this.template,\r\n headerTemplate: this.headerTemplate,\r\n groupTemplate: this.groupTemplate, expandCollapse: true, listClass: '',\r\n ariaAttributes: {\r\n itemRole: 'option', listRole: 'presentation', itemText: '',\r\n groupItemRole: 'group', wrapperRole: 'presentation'\r\n },\r\n // eslint-disable-next-line\r\n fields: (this.fields.properties),\r\n sortOrder: this.sortOrder,\r\n showIcon: this.showIcon,\r\n itemCreated: this.renderCheckbox.bind(this),\r\n templateID: \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY,\r\n groupTemplateID: \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY,\r\n enableHtmlSanitizer: this.enableHtmlSanitizer,\r\n };\r\n this.initialization();\r\n };\r\n ListView.prototype.initialization = function () {\r\n this.curDSLevel = [];\r\n this.animateOptions = {};\r\n this.curViewDS = [];\r\n this.currentLiElements = [];\r\n this.isNestedList = false;\r\n this.selectedData = [];\r\n this.selectedId = [];\r\n this.LISTVIEW_TEMPLATE_ID = \"\" + this.element.id + LISTVIEW_TEMPLATE_PROPERTY;\r\n this.LISTVIEW_GROUPTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_GROUPTEMPLATE_PROPERTY;\r\n this.LISTVIEW_HEADERTEMPLATE_ID = \"\" + this.element.id + LISTVIEW_HEADERTEMPLATE_PROPERTY;\r\n this.aniObj = new Animation(this.animateOptions);\r\n this.removeElement(this.curUL);\r\n this.removeElement(this.ulElement);\r\n this.removeElement(this.headerEle);\r\n this.removeElement(this.contentContainer);\r\n this.curUL = this.ulElement = this.liCollection = this.headerEle = this.contentContainer = undefined;\r\n };\r\n ListView.prototype.renderCheckbox = function (args) {\r\n if (args.item.classList.contains(classNames.hasChild)) {\r\n this.isNestedList = true;\r\n }\r\n if (this.showCheckBox && this.isValidLI(args.item)) {\r\n var checkboxElement = void 0;\r\n var fieldData = void 0;\r\n // eslint-disable-next-line prefer-const\r\n checkboxElement = createCheckBox(this.createElement, false, {\r\n checked: false, enableRtl: this.enableRtl,\r\n cssClass: classNames.listviewCheckbox\r\n });\r\n checkboxElement.setAttribute('role', 'checkbox');\r\n var frameElement_1 = checkboxElement.querySelector('.' + classNames.checkboxIcon);\r\n args.item.classList.add(classNames.itemCheckList);\r\n args.item.firstElementChild.classList.add(classNames.checkbox);\r\n if (typeof this.dataSource[0] !== 'string' && typeof this.dataSource[0] !== 'number') {\r\n fieldData = getFieldValues(args.curData, this.listBaseOption.fields);\r\n if (fieldData[this.listBaseOption.fields.isChecked]) {\r\n this.checkInternally(args, checkboxElement);\r\n }\r\n }\r\n else if (((typeof this.dataSource[0] === 'string' ||\r\n typeof this.dataSource[0] === 'number') && this.selectedData.indexOf(args.text) !== -1)) {\r\n this.checkInternally(args, checkboxElement);\r\n }\r\n checkboxElement.setAttribute('aria-checked', frameElement_1.classList.contains(classNames.checked) ? 'true' : 'false');\r\n if (this.checkBoxPosition === 'Left') {\r\n checkboxElement.classList.add(classNames.checkboxLeft);\r\n args.item.firstElementChild.classList.add(classNames.checkboxLeft);\r\n args.item.firstElementChild.insertBefore(checkboxElement, args.item.firstElementChild.childNodes[0]);\r\n }\r\n else {\r\n checkboxElement.classList.add(classNames.checkboxRight);\r\n args.item.firstElementChild.classList.add(classNames.checkboxRight);\r\n args.item.firstElementChild.appendChild(checkboxElement);\r\n }\r\n this.currentLiElements.push(args.item);\r\n if (this.checkBoxPosition === 'Left') {\r\n this.virtualCheckBox = args.item.firstElementChild.children[0];\r\n }\r\n else {\r\n this.virtualCheckBox = args.item.firstElementChild.lastElementChild;\r\n }\r\n }\r\n };\r\n ListView.prototype.checkInternally = function (args, checkboxElement) {\r\n args.item.classList.add(classNames.selected);\r\n args.item.setAttribute('aria-selected', 'true');\r\n checkboxElement.querySelector('.' + classNames.checkboxIcon).classList.add(classNames.checked);\r\n checkboxElement.setAttribute('aria-checked', 'true');\r\n };\r\n /**\r\n * Checks the specific list item by passing the unchecked fields as an argument to this method.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\r\n */\r\n ListView.prototype.checkItem = function (item) {\r\n this.toggleCheckBase(item, true);\r\n };\r\n ListView.prototype.toggleCheckBase = function (item, checked) {\r\n if (this.showCheckBox) {\r\n var liElement = item;\r\n if (item instanceof Object && item.constructor !== HTMLLIElement) {\r\n liElement = this.getLiFromObjOrElement(item);\r\n }\r\n if (!isNullOrUndefined(liElement)) {\r\n var checkboxIcon = liElement.querySelector('.' + classNames.checkboxIcon);\r\n if (checked === true) {\r\n liElement.classList.add(classNames.selected);\r\n }\r\n else {\r\n liElement.classList.remove(classNames.selected);\r\n }\r\n liElement.setAttribute('aria-selected', checked ? 'true' : 'false');\r\n if (checked === true) {\r\n checkboxIcon.classList.add(classNames.checked);\r\n }\r\n else {\r\n checkboxIcon.classList.remove(classNames.checked);\r\n }\r\n checkboxIcon.parentElement.setAttribute('aria-checked', checked ? 'true' : 'false');\r\n }\r\n this.setSelectedItemData(liElement);\r\n }\r\n };\r\n /**\r\n * Uncheck the specific list item by passing the checked fields as an argument to this method.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - It accepts Fields or HTML list element as an argument.\r\n */\r\n ListView.prototype.uncheckItem = function (item) {\r\n this.toggleCheckBase(item, false);\r\n };\r\n /**\r\n * Checks all the unchecked items in the ListView.\r\n */\r\n ListView.prototype.checkAllItems = function () {\r\n this.toggleAllCheckBase(true);\r\n };\r\n /**\r\n * Uncheck all the checked items in ListView.\r\n */\r\n ListView.prototype.uncheckAllItems = function () {\r\n this.toggleAllCheckBase(false);\r\n };\r\n ListView.prototype.toggleAllCheckBase = function (checked) {\r\n if (this.showCheckBox) {\r\n for (var i = 0; i < this.liCollection.length; i++) {\r\n var checkIcon = this.liCollection[i].querySelector('.' + classNames.checkboxIcon);\r\n if (checkIcon) {\r\n if (checked) {\r\n if (!checkIcon.classList.contains(classNames.checked)) {\r\n this.checkItem(this.liCollection[i]);\r\n }\r\n }\r\n else {\r\n if (checkIcon.classList.contains(classNames.checked)) {\r\n this.uncheckItem(this.liCollection[i]);\r\n }\r\n }\r\n }\r\n }\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.checkedItem(checked);\r\n }\r\n }\r\n };\r\n ListView.prototype.setCheckbox = function () {\r\n if (this.showCheckBox) {\r\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\r\n var args = {\r\n item: undefined, curData: undefined, dataSource: undefined, fields: undefined,\r\n options: undefined, text: ''\r\n };\r\n for (var i = 0; i < liCollection.length; i++) {\r\n var element = liCollection[i];\r\n args.item = element;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n args.curData = this.getItemData(element);\r\n if (element.querySelector('.' + classNames.checkboxWrapper)) {\r\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\r\n }\r\n this.renderCheckbox(args);\r\n if (args.item.classList.contains(classNames.selected)) {\r\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\r\n }\r\n }\r\n }\r\n else {\r\n var liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.itemCheckList));\r\n for (var i = 0; i < liCollection.length; i++) {\r\n var element = liCollection[i];\r\n element.classList.remove(classNames.selected);\r\n element.firstElementChild.classList.remove(classNames.checkbox);\r\n this.removeElement(element.querySelector('.' + classNames.checkboxWrapper));\r\n }\r\n if (this.selectedItems) {\r\n this.selectedItems.item.classList.add(classNames.selected);\r\n }\r\n }\r\n };\r\n /**\r\n * Refresh the height of the list item only on enabling the virtualization property.\r\n */\r\n ListView.prototype.refreshItemHeight = function () {\r\n if (this.virtualizationModule) {\r\n this.virtualizationModule.refreshItemHeight();\r\n }\r\n };\r\n ListView.prototype.clickHandler = function (e) {\r\n var target = e.target;\r\n var classList = target.classList;\r\n var closestElement;\r\n if (classList.contains(classNames.backIcon) || classList.contains(classNames.headerText)) {\r\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\r\n this.uncheckAllItems();\r\n }\r\n this.back();\r\n }\r\n else {\r\n var li = closest(target.parentNode, '.' + classNames.listItem);\r\n if (li === null) {\r\n li = target;\r\n }\r\n this.removeFocus();\r\n if (this.enable && this.showCheckBox && this.isValidLI(li)) {\r\n if (e.target.classList.contains(classNames.checkboxIcon)) {\r\n li.classList.add(classNames.focused);\r\n if (isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\r\n var args = {\r\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\r\n text: undefined, item: li\r\n };\r\n this.checkInternally(args, args.item.querySelector('.' + classNames.checkboxWrapper));\r\n }\r\n else {\r\n this.uncheckItem(li);\r\n li.classList.add(classNames.focused);\r\n }\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.setCheckboxLI(li, e);\r\n }\r\n if (e) {\r\n var eventArgs = this.selectEventData(li, e);\r\n var checkIcon = li.querySelector('.' + classNames.checkboxIcon);\r\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\r\n this.trigger('select', eventArgs);\r\n }\r\n }\r\n else if (li.classList.contains(classNames.hasChild)) {\r\n this.removeHover();\r\n this.removeSelect();\r\n this.removeSelect(li);\r\n this.setSelectLI(li, e);\r\n li.classList.remove(classNames.selected);\r\n }\r\n else {\r\n this.setCheckboxLI(li, e);\r\n }\r\n }\r\n else {\r\n this.setSelectLI(li, e);\r\n }\r\n closestElement = closest(e.target, 'li');\r\n if (!isNullOrUndefined(closestElement)) {\r\n if (closestElement.classList.contains('e-has-child') &&\r\n !e.target.parentElement.classList.contains('e-listview-checkbox')) {\r\n closestElement.classList.add(classNames.disable);\r\n }\r\n }\r\n }\r\n };\r\n ListView.prototype.removeElement = function (element) {\r\n return element && element.parentNode && element.parentNode.removeChild(element);\r\n };\r\n ListView.prototype.hoverHandler = function (e) {\r\n var curLi = closest(e.target.parentNode, '.' + classNames.listItem);\r\n this.setHoverLI(curLi);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ListView.prototype.leaveHandler = function (e) {\r\n this.removeHover();\r\n };\r\n ListView.prototype.homeKeyHandler = function (e, end) {\r\n if (Object.keys(this.dataSource).length && this.curUL) {\r\n if (this.selectedItems) {\r\n (this.selectedItems.item).setAttribute('aria-selected', 'false');\r\n }\r\n var li = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n var focusedElement = this.curUL.querySelector('.' + classNames.focused) ||\r\n this.curUL.querySelector('.' + classNames.selected);\r\n if (focusedElement) {\r\n focusedElement.classList.remove(classNames.focused);\r\n if (!this.showCheckBox) {\r\n focusedElement.classList.remove(classNames.selected);\r\n }\r\n }\r\n var index = !end ? 0 : li.length - 1;\r\n if (li[index].classList.contains(classNames.hasChild) || this.showCheckBox) {\r\n li[index].classList.add(classNames.focused);\r\n }\r\n else {\r\n this.setSelectLI(li[index], e);\r\n }\r\n if (li[index]) {\r\n this.element.setAttribute('aria-activedescendant', li[index].id.toString());\r\n }\r\n else {\r\n this.element.removeAttribute('aria-activedescendant');\r\n }\r\n }\r\n };\r\n ListView.prototype.onArrowKeyDown = function (e, prev) {\r\n var siblingLI;\r\n var li;\r\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\r\n if (hasChild || this.showCheckBox) {\r\n li = this.curUL.querySelector('.' + classNames.focused) || this.curUL.querySelector('.' + classNames.selected);\r\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\r\n if (!isNullOrUndefined(siblingLI)) {\r\n if (li) {\r\n li.classList.remove(classNames.focused);\r\n if (!this.showCheckBox) {\r\n li.classList.remove(classNames.selected);\r\n }\r\n }\r\n if (siblingLI.classList.contains(classNames.hasChild) || this.showCheckBox) {\r\n siblingLI.classList.add(classNames.focused);\r\n }\r\n else {\r\n this.setSelectLI(siblingLI, e);\r\n }\r\n }\r\n }\r\n else {\r\n li = this.curUL.querySelector('.' + classNames.selected);\r\n siblingLI = ListBase.getSiblingLI(this.curUL.querySelectorAll('.' + classNames.listItem), li, prev);\r\n this.setSelectLI(siblingLI, e);\r\n }\r\n if (siblingLI) {\r\n this.element.setAttribute('aria-activedescendant', siblingLI.id.toString());\r\n }\r\n else {\r\n this.element.removeAttribute('aria-activedescendant');\r\n }\r\n return siblingLI;\r\n };\r\n ListView.prototype.arrowKeyHandler = function (e, prev) {\r\n var _this = this;\r\n e.preventDefault();\r\n if (Object.keys(this.dataSource).length && this.curUL) {\r\n var siblingLI = this.onArrowKeyDown(e, prev);\r\n var elementTop = this.element.getBoundingClientRect().top;\r\n var elementHeight = this.element.getBoundingClientRect().height;\r\n var firstItemBounds = this.curUL.querySelector('.' + classNames.listItem).getBoundingClientRect();\r\n var heightDiff = void 0;\r\n var groupItemBounds = void 0;\r\n if (this.fields.groupBy) {\r\n groupItemBounds = this.curUL.querySelector('.' + classNames.groupListItem).getBoundingClientRect();\r\n }\r\n if (siblingLI) {\r\n var siblingTop = siblingLI.getBoundingClientRect().top;\r\n var siblingHeight = siblingLI.getBoundingClientRect().height;\r\n if (!prev) {\r\n var height = this.isWindow ? window.innerHeight : elementHeight;\r\n heightDiff = this.isWindow ? (siblingTop + siblingHeight) :\r\n ((siblingTop - elementTop) + siblingHeight);\r\n if (heightDiff > height) {\r\n if (this.isWindow === true) {\r\n window.scroll(0, pageYOffset + (heightDiff - height));\r\n }\r\n else {\r\n this.element.scrollTop = this.element.scrollTop + (heightDiff - height);\r\n }\r\n }\r\n }\r\n else {\r\n heightDiff = this.isWindow ? siblingTop : (siblingTop - elementTop);\r\n if (heightDiff < 0) {\r\n if (this.isWindow === true) {\r\n window.scroll(0, pageYOffset + heightDiff);\r\n }\r\n else {\r\n this.element.scrollTop = this.element.scrollTop + heightDiff;\r\n }\r\n }\r\n }\r\n }\r\n else if (this.enableVirtualization && prev && this.virtualizationModule.uiFirstIndex) {\r\n this.onUIScrolled = function () {\r\n _this.onArrowKeyDown(e, prev);\r\n _this.onUIScrolled = undefined;\r\n };\r\n heightDiff = this.virtualizationModule.listItemHeight;\r\n if (this.isWindow === true) {\r\n window.scroll(0, pageYOffset - heightDiff);\r\n }\r\n else {\r\n this.element.scrollTop = this.element.scrollTop - heightDiff;\r\n }\r\n }\r\n else if (prev) {\r\n if (this.showHeader && this.headerEle) {\r\n var topHeight = groupItemBounds ? groupItemBounds.top : firstItemBounds.top;\r\n var headerBounds = this.headerEle.getBoundingClientRect();\r\n heightDiff = headerBounds.top < 0 ? (headerBounds.height - topHeight) : 0;\r\n if (this.isWindow === true) {\r\n window.scroll(0, pageYOffset - heightDiff);\r\n }\r\n else {\r\n this.element.scrollTop = 0;\r\n }\r\n }\r\n else if (this.fields.groupBy) {\r\n heightDiff = this.isWindow ? (groupItemBounds.top < 0 ? groupItemBounds.top : 0) :\r\n (elementTop - firstItemBounds.top) + groupItemBounds.height;\r\n if (this.isWindow === true) {\r\n window.scroll(0, pageYOffset + heightDiff);\r\n }\r\n else {\r\n this.element.scrollTop = this.element.scrollTop - heightDiff;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ListView.prototype.enterKeyHandler = function (e) {\r\n if (Object.keys(this.dataSource).length && this.curUL) {\r\n var hasChild = !isNullOrUndefined(this.curUL.querySelector('.' + classNames.hasChild)) ? true : false;\r\n var li = this.curUL.querySelector('.' + classNames.focused);\r\n if (hasChild && li) {\r\n li.classList.remove(classNames.focused);\r\n if (this.showCheckBox) {\r\n this.removeSelect();\r\n this.removeSelect(li);\r\n this.removeHover();\r\n }\r\n this.setSelectLI(li, e);\r\n }\r\n }\r\n };\r\n ListView.prototype.spaceKeyHandler = function (e) {\r\n if (this.enable && this.showCheckBox && Object.keys(this.dataSource).length && this.curUL) {\r\n var li = this.curUL.querySelector('.' + classNames.focused);\r\n var checkboxElement = void 0;\r\n var checkIcon = void 0;\r\n if (!isNullOrUndefined(li) && isNullOrUndefined(li.querySelector('.' + classNames.checked))) {\r\n var args = {\r\n curData: undefined, dataSource: undefined, fields: undefined, options: undefined,\r\n text: undefined, item: li\r\n };\r\n checkboxElement = args.item.querySelector('.' + classNames.checkboxWrapper);\r\n this.checkInternally(args, checkboxElement);\r\n checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\r\n }\r\n else {\r\n this.uncheckItem(li);\r\n }\r\n var eventArgs = this.selectEventData(li, e);\r\n merge(eventArgs, { isChecked: checkIcon ? checkIcon.classList.contains(classNames.checked) : false });\r\n this.trigger('select', eventArgs);\r\n }\r\n };\r\n ListView.prototype.keyActionHandler = function (e) {\r\n switch (e.keyCode) {\r\n case 36:\r\n this.homeKeyHandler(e);\r\n break;\r\n case 35:\r\n this.homeKeyHandler(e, true);\r\n break;\r\n case 40:\r\n this.arrowKeyHandler(e);\r\n break;\r\n case 38:\r\n this.arrowKeyHandler(e, true);\r\n break;\r\n case 13:\r\n this.enterKeyHandler(e);\r\n break;\r\n case 8:\r\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\r\n this.uncheckAllItems();\r\n }\r\n this.back();\r\n break;\r\n case 32:\r\n this.spaceKeyHandler(e);\r\n break;\r\n }\r\n };\r\n ListView.prototype.swipeActionHandler = function (e) {\r\n if (e.swipeDirection === 'Right' && e.velocity > swipeVelocity && e.originalEvent.type === 'touchend') {\r\n if (this.showCheckBox && this.curDSLevel[this.curDSLevel.length - 1]) {\r\n this.uncheckAllItems();\r\n }\r\n this.back();\r\n }\r\n };\r\n ListView.prototype.focusout = function () {\r\n if (Object.keys(this.dataSource).length && this.curUL) {\r\n var focusedElement = this.curUL.querySelector('.' + classNames.focused);\r\n var activeElement = this.curUL.querySelector('[aria-selected = true]');\r\n if (focusedElement) {\r\n focusedElement.classList.remove(classNames.focused);\r\n if (activeElement && !this.showCheckBox) {\r\n activeElement.classList.add(classNames.selected);\r\n }\r\n }\r\n }\r\n };\r\n ListView.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'keydown', this.keyActionHandler, this);\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\r\n EventHandler.add(this.element, 'mouseout', this.leaveHandler, this);\r\n EventHandler.add(this.element, 'focusout', this.focusout, this);\r\n this.touchModule = new Touch(this.element, { swipe: this.swipeActionHandler.bind(this) });\r\n };\r\n ListView.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\r\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\r\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\r\n EventHandler.remove(this.element, 'mouseout', this.leaveHandler);\r\n this.touchModule.destroy();\r\n };\r\n ListView.prototype.removeFocus = function () {\r\n var focusedLI = this.element.querySelectorAll('.' + classNames.focused);\r\n for (var _i = 0, focusedLI_1 = focusedLI; _i < focusedLI_1.length; _i++) {\r\n var ele = focusedLI_1[_i];\r\n ele.classList.remove(classNames.focused);\r\n }\r\n };\r\n ListView.prototype.removeHover = function () {\r\n var hoverLI = this.element.querySelector('.' + classNames.hover);\r\n if (hoverLI) {\r\n hoverLI.classList.remove(classNames.hover);\r\n }\r\n };\r\n ListView.prototype.removeSelect = function (li) {\r\n if (isNullOrUndefined(li)) {\r\n var selectedLI = this.element.querySelectorAll('.' + classNames.selected);\r\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\r\n var ele = selectedLI_1[_i];\r\n if (this.showCheckBox && ele.querySelector('.' + classNames.checked)) {\r\n continue;\r\n }\r\n else {\r\n ele.setAttribute('aria-selected', 'false');\r\n ele.classList.remove(classNames.selected);\r\n }\r\n }\r\n }\r\n else {\r\n li.classList.remove(classNames.selected);\r\n li.setAttribute('aria-selected', 'false');\r\n }\r\n };\r\n ListView.prototype.isValidLI = function (li) {\r\n return (li && li.classList.contains(classNames.listItem)\r\n && !li.classList.contains(classNames.groupListItem)\r\n && !li.classList.contains(classNames.disable));\r\n };\r\n ListView.prototype.setCheckboxLI = function (li, e) {\r\n if (this.isValidLI(li) && this.enable && this.showCheckBox) {\r\n if (this.curUL.querySelector('.' + classNames.focused)) {\r\n this.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused);\r\n }\r\n li.classList.add(classNames.focused);\r\n var checkboxElement = li.querySelector('.' + classNames.checkboxWrapper);\r\n var checkIcon = checkboxElement.querySelector('.' + classNames.checkboxIcon + '.' + classNames.icon);\r\n this.removeHover();\r\n if (!checkIcon.classList.contains(classNames.checked)) {\r\n checkIcon.classList.add(classNames.checked);\r\n li.classList.add(classNames.selected);\r\n li.setAttribute('aria-selected', 'true');\r\n }\r\n else {\r\n checkIcon.classList.remove(classNames.checked);\r\n li.classList.remove(classNames.selected);\r\n li.setAttribute('aria-selected', 'false');\r\n }\r\n checkboxElement.setAttribute('aria-checked', checkIcon.classList.contains(classNames.checked) ?\r\n 'true' : 'false');\r\n var eventArgs = this.selectEventData(li, e);\r\n merge(eventArgs, { isChecked: checkIcon.classList.contains(classNames.checked) });\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.setCheckboxLI(li, e);\r\n }\r\n this.trigger('select', eventArgs);\r\n this.setSelectedItemData(li);\r\n this.renderSubList(li);\r\n }\r\n };\r\n ListView.prototype.selectEventData = function (li, e) {\r\n var data = this.getItemData(li);\r\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\r\n var selectedItem;\r\n if (!isNullOrUndefined(data)\r\n && typeof this.dataSource[0] === 'string' || typeof this.dataSource[0] === 'number') {\r\n selectedItem = { item: li, text: li && li.innerText.trim(), data: this.dataSource };\r\n }\r\n else {\r\n selectedItem =\r\n // eslint-disable-next-line\r\n { item: li, text: fieldData && fieldData[this.listBaseOption.fields.text],\r\n // eslint-disable-next-line\r\n data: data };\r\n }\r\n var eventArgs = {};\r\n merge(eventArgs, selectedItem);\r\n if (e) {\r\n merge(eventArgs, { isInteracted: true, event: e, index: this.curUL && Array.prototype.indexOf.call(this.curUL.children, li) });\r\n }\r\n return eventArgs;\r\n };\r\n ListView.prototype.setSelectedItemData = function (li) {\r\n var data = this.getItemData(li);\r\n // eslint-disable-next-line\r\n var fieldData = getFieldValues(data, this.listBaseOption.fields);\r\n if (!isNullOrUndefined(data) && ((typeof this.dataSource[0] === 'string') ||\r\n (typeof this.dataSource[0] === 'number'))) {\r\n this.selectedItems = {\r\n item: li,\r\n text: li && li.innerText.trim(),\r\n data: this.dataSource\r\n };\r\n }\r\n else {\r\n this.selectedItems = {\r\n item: li,\r\n // eslint-disable-next-line\r\n text: fieldData && fieldData[this.listBaseOption.fields.text],\r\n // eslint-disable-next-line\r\n data: data\r\n };\r\n }\r\n };\r\n ListView.prototype.setSelectLI = function (li, e) {\r\n if (this.isValidLI(li) && !li.classList.contains(classNames.selected) && this.enable) {\r\n if (!this.showCheckBox) {\r\n this.removeSelect();\r\n }\r\n li.classList.add(classNames.selected);\r\n li.setAttribute('aria-selected', 'true');\r\n this.removeHover();\r\n this.setSelectedItemData(li);\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.setSelectLI(li, e);\r\n }\r\n var eventArgs = this.selectEventData(li, e);\r\n this.trigger('select', eventArgs);\r\n this.selectedLI = li;\r\n this.renderSubList(li);\r\n }\r\n };\r\n ListView.prototype.setHoverLI = function (li) {\r\n if (this.isValidLI(li) && !li.classList.contains(classNames.hover) && this.enable) {\r\n var lastLi = this.element.querySelectorAll('.' + classNames.hover);\r\n if (lastLi && lastLi.length) {\r\n removeClass(lastLi, classNames.hover);\r\n }\r\n if (!li.classList.contains(classNames.selected) || this.showCheckBox) {\r\n li.classList.add(classNames.hover);\r\n }\r\n }\r\n };\r\n //Data Source Related Functions\r\n ListView.prototype.getSubDS = function () {\r\n var levelKeys = this.curDSLevel;\r\n if (levelKeys.length) {\r\n var ds = this.localData;\r\n for (var _i = 0, levelKeys_1 = levelKeys; _i < levelKeys_1.length; _i++) {\r\n var key = levelKeys_1[_i];\r\n var field = {};\r\n // eslint-disable-next-line\r\n field[this.fields.id] = key;\r\n this.curDSJSON = this.findItemFromDS(ds, field);\r\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\r\n ds = this.curDSJSON ? fieldData[this.fields.child] : ds;\r\n }\r\n return ds;\r\n }\r\n return this.localData;\r\n };\r\n ListView.prototype.getItemData = function (li) {\r\n var dataSource = this.dataSource instanceof DataManager ?\r\n this.localData : this.dataSource;\r\n var fields = this.getElementUID(li);\r\n var curDS;\r\n if (isNullOrUndefined(this.element.querySelector('.' + classNames.hasChild)) && this.fields.groupBy) {\r\n curDS = this.curViewDS;\r\n }\r\n else {\r\n curDS = dataSource;\r\n }\r\n return this.findItemFromDS(curDS, fields);\r\n };\r\n ListView.prototype.findItemFromDS = function (dataSource, fields, parent) {\r\n var _this = this;\r\n var resultJSON;\r\n if (dataSource && dataSource.length && fields) {\r\n dataSource.some(function (data) {\r\n var fieldData = \r\n // eslint-disable-next-line\r\n getFieldValues(data, _this.listBaseOption.fields);\r\n //(!(fid) || id === fid) && (!(ftext) || text === ftext) && (!!fid || !!ftext)\r\n if ((fields[_this.fields.id] || fields[_this.fields.text]) &&\r\n (!fields[_this.fields.id] || (!isNullOrUndefined(fieldData[_this.fields.id]) &&\r\n fieldData[_this.fields.id].toString()) === fields[_this.fields.id].toString()) &&\r\n (!fields[_this.fields.text] || fieldData[_this.fields.text] === fields[_this.fields.text])) {\r\n resultJSON = (parent ? dataSource : data);\r\n }\r\n else if (typeof data !== 'object' && dataSource.indexOf(data) !== -1) {\r\n resultJSON = (parent ? dataSource : data);\r\n }\r\n else if (!isNullOrUndefined(fields[_this.fields.id]) && isNullOrUndefined(fieldData[_this.fields.id])) {\r\n var li = _this.element.querySelector('[data-uid=\"'\r\n + fields[_this.fields.id] + '\"]');\r\n // eslint-disable-next-line\r\n if (li && li.innerText.trim() === fieldData[_this.fields.text]) {\r\n resultJSON = data;\r\n }\r\n // eslint-disable-next-line\r\n }\r\n else if (fieldData.hasOwnProperty(_this.fields.child) && fieldData[_this.fields.child].length) {\r\n resultJSON = _this.findItemFromDS(fieldData[_this.fields.child], fields, parent);\r\n }\r\n return !!resultJSON;\r\n });\r\n }\r\n else {\r\n resultJSON = dataSource;\r\n }\r\n return resultJSON;\r\n };\r\n ListView.prototype.getQuery = function () {\r\n var columns = [];\r\n var query = (this.query ? this.query : new Query());\r\n if (!this.query) {\r\n // eslint-disable-next-line\r\n for (var _i = 0, _a = Object.keys(this.fields.properties); _i < _a.length; _i++) {\r\n var column = _a[_i];\r\n if (column !== 'tableName' && !!(this.fields[column]) &&\r\n this.fields[column] !==\r\n ListBase.defaultMappedFields[column]\r\n && columns.indexOf(this.fields[column]) === -1) {\r\n columns.push(this.fields[column]);\r\n }\r\n }\r\n query.select(columns);\r\n // eslint-disable-next-line\r\n if (this.fields.properties.hasOwnProperty('tableName')) {\r\n query.from(this.fields.tableName);\r\n }\r\n }\r\n return query;\r\n };\r\n ListView.prototype.setViewDataSource = function (dataSource) {\r\n if (dataSource === void 0) { dataSource = this.localData; }\r\n if (dataSource && this.fields.groupBy) {\r\n if (this.sortOrder !== 'None') {\r\n this.curViewDS = ListBase.groupDataSource(ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, (isNullOrUndefined(this.fields.sortBy)) ? this.fields.text : this.fields.sortBy)), this.listBaseOption.fields, this.sortOrder);\r\n }\r\n else {\r\n this.curViewDS = ListBase.groupDataSource(dataSource, this.listBaseOption.fields, this.sortOrder);\r\n }\r\n }\r\n else if (dataSource && this.sortOrder !== 'None') {\r\n this.curViewDS = ListBase.getDataSource(dataSource, ListBase.addSorting(this.sortOrder, (isNullOrUndefined(this.fields.sortBy)) ? this.fields.text : this.fields.sortBy));\r\n }\r\n else {\r\n this.curViewDS = dataSource;\r\n }\r\n };\r\n ListView.prototype.isInAnimation = function () {\r\n return this.curUL.classList.contains('.e-animate');\r\n };\r\n ListView.prototype.renderRemoteLists = function (e, listViewComponent) {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n this.localData = e.result;\r\n listViewComponent.removeElement(listViewComponent.contentContainer);\r\n this.renderList();\r\n this.trigger('actionComplete', e);\r\n };\r\n ListView.prototype.triggerActionFailure = function (e) {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n this.trigger('actionFailure', e);\r\n };\r\n ListView.prototype.setLocalData = function () {\r\n var _this = this;\r\n this.trigger('actionBegin');\r\n // eslint-disable-next-line\r\n var listViewComponent = this;\r\n if (this.dataSource instanceof DataManager) {\r\n if (this.dataSource.ready) {\r\n this.dataSource.ready.then(function (e) {\r\n /* eslint-disable */\r\n _this.isOffline = _this.dataSource.dataSource.offline;\r\n if (_this.dataSource instanceof DataManager && _this.isOffline) {\r\n _this.renderRemoteLists(e, listViewComponent);\r\n }\r\n }).catch(function (e) {\r\n _this.triggerActionFailure(e);\r\n });\r\n }\r\n else {\r\n this.dataSource.executeQuery(this.getQuery()).then(function (e) {\r\n _this.renderRemoteLists(e, listViewComponent);\r\n }).catch(function (e) {\r\n _this.triggerActionFailure(e);\r\n });\r\n }\r\n }\r\n else if (!this.dataSource || !this.dataSource.length) {\r\n var ul = this.element.querySelector('ul');\r\n if (ul) {\r\n remove(ul);\r\n this.setProperties({ dataSource: ListBase.createJsonFromElement(ul) }, true);\r\n this.localData = this.dataSource;\r\n this.renderList();\r\n this.trigger('actionComplete', { data: this.localData });\r\n }\r\n }\r\n else {\r\n this.localData = this.dataSource;\r\n this.renderList();\r\n this.trigger('actionComplete', { data: this.localData });\r\n }\r\n };\r\n ListView.prototype.reRender = function () {\r\n this.removeElement(this.headerEle);\r\n this.removeElement(this.ulElement);\r\n this.removeElement(this.contentContainer);\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n if (Object.keys(window).indexOf('ejsInterop') === -1) {\r\n this.element.innerHTML = '';\r\n }\r\n this.headerEle = this.ulElement = this.liCollection = undefined;\r\n this.header();\r\n this.setLocalData();\r\n };\r\n ListView.prototype.resetCurrentList = function () {\r\n this.setViewDataSource(this.curViewDS);\r\n this.contentContainer.innerHTML = '';\r\n this.createList();\r\n this.renderIntoDom(this.curUL);\r\n };\r\n ListView.prototype.setAttributes = function (liElements) {\r\n for (var i = 0; i < liElements.length; i++) {\r\n var element = liElements[i];\r\n if (element.classList.contains('e-list-item')) {\r\n element.setAttribute('id', this.element.id + '_' + element.getAttribute('data-uid'));\r\n element.setAttribute('aria-selected', 'false');\r\n element.setAttribute('tabindex', '-1');\r\n }\r\n }\r\n };\r\n ListView.prototype.createList = function () {\r\n this.currentLiElements = [];\r\n this.isNestedList = false;\r\n this.ulElement = this.curUL = ListBase.createList(this.createElement, this.curViewDS, this.listBaseOption, null, this);\r\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n this.setAttributes(this.liCollection);\r\n };\r\n ListView.prototype.exceptionEvent = function (e) {\r\n this.trigger('actionFailure', e);\r\n };\r\n ListView.prototype.UpdateCurrentUL = function () {\r\n this.ulElement = this.curUL = this.element.querySelector('.' + classNames.parentItem);\r\n if (this.curUL) {\r\n // eslint-disable-next-line\r\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n }\r\n };\r\n ListView.prototype.renderSubList = function (li) {\r\n this.liElement = li;\r\n var uID = li.getAttribute('data-uid');\r\n if (li.classList.contains(classNames.hasChild) && uID) {\r\n var ul = closest(li.parentNode, '.' + classNames.parentItem);\r\n var ele = this.element.querySelector('[pid=\\'' + uID + '\\']');\r\n this.curDSLevel.push(uID);\r\n this.setViewDataSource(this.getSubDS());\r\n if (!ele) {\r\n var data = this.curViewDS;\r\n ele = ListBase.createListFromJson(this.createElement, data, this.listBaseOption, this.curDSLevel.length, null, this);\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n var lists = ele.querySelectorAll('.' + classNames.listItem);\r\n this.setAttributes(lists);\r\n ele.setAttribute('pID', uID);\r\n ele.style.display = 'none';\r\n this.renderIntoDom(ele);\r\n }\r\n this.switchView(ul, ele);\r\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n if (this.selectedItems) {\r\n var fieldData = getFieldValues(this.selectedItems.data, this.listBaseOption.fields);\r\n // eslint-disable-next-line\r\n this.header((fieldData[this.listBaseOption.fields.text]), true, 'header');\r\n }\r\n this.selectedLI = undefined;\r\n }\r\n };\r\n ListView.prototype.renderIntoDom = function (ele) {\r\n this.contentContainer.appendChild(ele);\r\n };\r\n ListView.prototype.renderList = function (data) {\r\n this.setViewDataSource(data);\r\n if (this.enableVirtualization) {\r\n if (Object.keys(this.dataSource).length) {\r\n if ((this.template || this.groupTemplate) && !this.virtualizationModule.isNgTemplate()) {\r\n if (this.isReact) {\r\n if (typeof this.template == \"string\") {\r\n this.listBaseOption.template = null;\r\n }\r\n if (typeof this.groupTemplate == \"string\") {\r\n this.listBaseOption.groupTemplate = null;\r\n }\r\n }\r\n else {\r\n this.listBaseOption.template = null;\r\n this.listBaseOption.groupTemplate = null;\r\n }\r\n this.listBaseOption.itemCreated = this.virtualizationModule.createUIItem.bind(this.virtualizationModule);\r\n }\r\n }\r\n this.virtualizationModule.uiVirtualization();\r\n }\r\n else {\r\n this.createList();\r\n this.contentContainer = this.createElement('div', { className: classNames.content });\r\n this.element.appendChild(this.contentContainer);\r\n this.renderIntoDom(this.ulElement);\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n }\r\n };\r\n ListView.prototype.getElementUID = function (obj) {\r\n var fields = {};\r\n if (obj instanceof Element) {\r\n // eslint-disable-next-line\r\n fields[this.fields.id] = obj.getAttribute('data-uid');\r\n }\r\n else {\r\n fields = obj;\r\n }\r\n return fields;\r\n };\r\n /**\r\n * Initializes the ListView component rendering.\r\n */\r\n ListView.prototype.render = function () {\r\n this.element.classList.add(classNames.root);\r\n attributes(this.element, { role: 'list', tabindex: '0' });\r\n this.setCSSClass();\r\n this.setEnableRTL();\r\n this.setEnable();\r\n this.setSize();\r\n this.wireEvents();\r\n this.header();\r\n this.setLocalData();\r\n this.setHTMLAttribute();\r\n this.rippleFn = rippleEffect(this.element, {\r\n selector: '.' + classNames.listItem\r\n });\r\n this.renderComplete();\r\n };\r\n /**\r\n * It is used to destroy the ListView component.\r\n */\r\n ListView.prototype.destroy = function () {\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n this.unWireEvents();\r\n var classAr = [classNames.root, classNames.disable, 'e-rtl',\r\n 'e-has-header', 'e-lib'].concat(this.cssClass.split(' ').filter(function (css) { return css; }));\r\n removeClass([this.element], classAr);\r\n this.element.removeAttribute('role');\r\n this.element.removeAttribute('tabindex');\r\n this.curUL = this.ulElement = this.liCollection = this.headerEle = undefined;\r\n this.element.innerHTML = '';\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Switches back from the navigated sub list item.\r\n */\r\n ListView.prototype.back = function () {\r\n var pID = this.curDSLevel[this.curDSLevel.length - 1];\r\n if (pID === undefined || this.isInAnimation()) {\r\n return;\r\n }\r\n this.curDSLevel.pop();\r\n this.setViewDataSource(this.getSubDS());\r\n var toUL = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\r\n var fromUL = this.curUL;\r\n if (!toUL) {\r\n this.createList();\r\n this.renderIntoDom(this.ulElement);\r\n toUL = this.curUL;\r\n }\r\n else {\r\n toUL = toUL.parentElement;\r\n }\r\n var fieldData = getFieldValues(this.curDSJSON, this.listBaseOption.fields);\r\n // eslint-disable-next-line\r\n var text = fieldData[this.fields.text];\r\n this.switchView(fromUL, toUL, true);\r\n this.removeFocus();\r\n var li = this.element.querySelector('[data-uid=\\'' + pID + '\\']');\r\n li.classList.remove(classNames.disable);\r\n li.classList.add(classNames.focused);\r\n if (this.showCheckBox && li.querySelector('.' + classNames.checkboxIcon).classList.contains(classNames.checked)) {\r\n li.setAttribute('aria-selected', 'true');\r\n }\r\n else {\r\n li.classList.remove(classNames.selected);\r\n li.setAttribute('aria-selected', 'false');\r\n }\r\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n if (this.enableHtmlSanitizer) {\r\n this.setProperties({ headerTitle: SanitizeHtmlHelper.sanitize(this.headerTitle) }, true);\r\n }\r\n this.header((this.curDSLevel.length ? text : this.headerTitle), (this.curDSLevel.length ? true : false), 'header');\r\n };\r\n /**\r\n * Selects the list item from the ListView by passing the elements or field object.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.selectItem = function (item) {\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.selectItem(item);\r\n }\r\n else if (this.showCheckBox) {\r\n this.setCheckboxLI(this.getLiFromObjOrElement(item));\r\n }\r\n else {\r\n if (isNullOrUndefined(item) === true) {\r\n this.removeSelect();\r\n }\r\n else {\r\n this.setSelectLI(this.getLiFromObjOrElement(item));\r\n }\r\n }\r\n };\r\n ListView.prototype.getLiFromObjOrElement = function (obj) {\r\n var li;\r\n var dataSource = this.dataSource instanceof DataManager ?\r\n this.localData : this.dataSource;\r\n if (!isNullOrUndefined(obj)) {\r\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\r\n if (obj instanceof Element) {\r\n var uid = obj.getAttribute('data-uid').toString();\r\n for (var i = 0; i < this.liCollection.length; i++) {\r\n if (this.liCollection[i].getAttribute('data-uid').toString() === uid) {\r\n li = this.liCollection[i];\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n Array.prototype.some.call(this.curUL.querySelectorAll('.' + classNames.listItem), function (item) {\r\n if (item.innerText.trim() === obj.toString()) {\r\n li = item;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n var resultJSON = this.getItemData(obj);\r\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\r\n if (resultJSON) {\r\n li = this.element.querySelector('[data-uid=\"'\r\n + fieldData[this.fields.id] + '\"]');\r\n if (!this.enableVirtualization && isNullOrUndefined(li)) {\r\n var curLi = this.element.querySelectorAll('.' + classNames.listItem);\r\n for (var i = 0; i < curLi.length; i++) {\r\n // eslint-disable-next-line\r\n if (curLi[i].innerText.trim() === fieldData[this.fields.text]) {\r\n li = curLi[i];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return li;\r\n };\r\n /**\r\n * Selects multiple list items from the ListView.\r\n *\r\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of\r\n * elements or array of fields Object with ID and Text fields.\r\n */\r\n ListView.prototype.selectMultipleItems = function (item) {\r\n if (!isNullOrUndefined(item)) {\r\n for (var i = 0; i < item.length; i++) {\r\n if (!isNullOrUndefined(item[i])) {\r\n this.selectItem(item[i]);\r\n }\r\n }\r\n }\r\n };\r\n ListView.prototype.getParentId = function () {\r\n var parentId = [];\r\n if (this.isNestedList) {\r\n for (var i = this.curDSLevel.length - 1; i >= 0; i--) {\r\n parentId.push(this.curDSLevel[i]);\r\n }\r\n }\r\n return parentId;\r\n };\r\n /**\r\n * Gets the details of the currently selected item from the list items.\r\n *\r\n */\r\n ListView.prototype.getSelectedItems = function () {\r\n // eslint-disable-next-line\r\n var finalValue;\r\n var isCompleted = false;\r\n this.selectedId = [];\r\n var dataSource = this.dataSource instanceof DataManager ?\r\n this.localData : this.dataSource;\r\n if (this.enableVirtualization && !isCompleted) {\r\n finalValue = this.virtualizationModule.getSelectedItems();\r\n isCompleted = true;\r\n }\r\n else if (this.showCheckBox && !isCompleted) {\r\n // eslint-disable-next-line\r\n var liCollection = this.curUL.getElementsByClassName(classNames.selected);\r\n var liTextCollection = [];\r\n var liDataCollection = [];\r\n this.selectedId = [];\r\n var dataParent = [];\r\n for (var i = 0; i < liCollection.length; i++) {\r\n if (typeof dataSource[0] === 'string' || typeof dataSource[0] === 'number') {\r\n liTextCollection.push(liCollection[i].innerText.trim());\r\n }\r\n else {\r\n var tempData = this.getItemData(liCollection[i]);\r\n var fieldData = getFieldValues(tempData, this.listBaseOption.fields);\r\n if (this.isNestedList) {\r\n dataParent.push({ data: tempData, parentId: this.getParentId() });\r\n }\r\n else {\r\n liDataCollection.push(tempData);\r\n }\r\n if (fieldData) {\r\n // eslint-disable-next-line\r\n liTextCollection.push(fieldData[this.listBaseOption.fields.text]);\r\n // eslint-disable-next-line\r\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\r\n }\r\n else {\r\n liTextCollection.push(undefined);\r\n this.selectedId.push(undefined);\r\n }\r\n }\r\n }\r\n if ((typeof dataSource[0] === 'string'\r\n || typeof dataSource[0] === 'number')\r\n && !isCompleted) {\r\n finalValue = { item: liCollection, data: dataSource, text: liTextCollection };\r\n isCompleted = true;\r\n }\r\n if (this.isNestedList && !isCompleted) {\r\n finalValue = { item: liCollection, data: dataParent, text: liTextCollection };\r\n isCompleted = true;\r\n }\r\n else if (!isCompleted) {\r\n finalValue = { item: liCollection, data: liDataCollection, text: liTextCollection };\r\n isCompleted = true;\r\n }\r\n }\r\n else if (!isCompleted) {\r\n var liElement = this.element.getElementsByClassName(classNames.selected)[0];\r\n var fieldData = getFieldValues(this.getItemData(liElement), this.listBaseOption.fields);\r\n if ((typeof dataSource[0] === 'string'\r\n || typeof dataSource[0] === 'number')\r\n && !isCompleted) {\r\n finalValue = (!isNullOrUndefined(liElement)) ? {\r\n item: liElement, data: dataSource,\r\n text: liElement.innerText.trim()\r\n } : undefined;\r\n isCompleted = true;\r\n }\r\n else if (!isCompleted) {\r\n if (isNullOrUndefined(fieldData) || isNullOrUndefined(liElement)) {\r\n finalValue = undefined;\r\n isCompleted = true;\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n this.selectedId.push(fieldData[this.listBaseOption.fields.id]);\r\n finalValue = {\r\n text: fieldData[this.listBaseOption.fields.text], item: liElement,\r\n data: this.getItemData(liElement)\r\n };\r\n isCompleted = true;\r\n }\r\n }\r\n }\r\n return finalValue;\r\n };\r\n /**\r\n * Finds out an item details from the current list.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.findItem = function (item) {\r\n return this.getItemData(item);\r\n };\r\n /**\r\n * Enables the disabled list items by passing the Id and text fields.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.enableItem = function (item) {\r\n this.setItemState(item, true);\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.enableItem(item);\r\n }\r\n };\r\n /**\r\n * Disables the list items by passing the Id and text fields.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.disableItem = function (item) {\r\n this.setItemState(item, false);\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.disableItem(item);\r\n }\r\n };\r\n //A function that used to set state of the list item like enable, disable.\r\n ListView.prototype.setItemState = function (item, isEnable) {\r\n var resultJSON = this.getItemData(item);\r\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\r\n if (resultJSON) {\r\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\r\n if (isEnable) {\r\n if (li) {\r\n li.classList.remove(classNames.disable);\r\n }\r\n delete resultJSON[this.fields.enabled];\r\n }\r\n else if (!isEnable) {\r\n if (li) {\r\n li.classList.add(classNames.disable);\r\n }\r\n // eslint-disable-next-line\r\n resultJSON[this.fields.enabled] = false;\r\n }\r\n }\r\n };\r\n /**\r\n * Shows the hide list item from the ListView.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.showItem = function (item) {\r\n this.showHideItem(item, false, '');\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.showItem(item);\r\n }\r\n };\r\n /**\r\n * Hides an list item from the ListView.\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.hideItem = function (item) {\r\n this.showHideItem(item, true, 'none');\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.hideItem(item);\r\n }\r\n };\r\n ListView.prototype.showHideItem = function (obj, isHide, display) {\r\n var resultJSON = this.getItemData(obj);\r\n var fieldData = getFieldValues(resultJSON, this.listBaseOption.fields);\r\n if (resultJSON) {\r\n var li = this.element.querySelector('[data-uid=\"' + fieldData[this.fields.id] + '\"]');\r\n if (li) {\r\n li.style.display = display;\r\n }\r\n if (isHide) {\r\n // eslint-disable-next-line\r\n resultJSON[this.fields.isVisible] = false;\r\n }\r\n else {\r\n delete resultJSON[this.fields.isVisible];\r\n }\r\n }\r\n };\r\n /**\r\n * Adds the new list item(s) to the current ListView.\r\n * To add a new list item(s) in the ListView, we need to pass the `data` as an array of items that need\r\n * to be added and `fields` as the target item to which we need to add the given item(s) as its children.\r\n * For example fields: { text: 'Name', tooltip: 'Name', id:'id'}\r\n *\r\n * @param {{Object}[]} data - JSON Array Data that need to add.\r\n *\r\n * @param {Fields} fields - Target item to add the given data as its children (can be null).\r\n *\r\n */\r\n ListView.prototype.addItem = function (data, fields) {\r\n if (fields === void 0) { fields = undefined; }\r\n var dataSource = this.dataSource instanceof DataManager\r\n ? this.localData : this.dataSource;\r\n this.addItemInternally(data, fields, dataSource);\r\n };\r\n ListView.prototype.addItemInternally = function (data, fields, dataSource) {\r\n if (data instanceof Array) {\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.addItem(data, fields, dataSource);\r\n }\r\n else {\r\n var ds = this.findItemFromDS(dataSource, fields);\r\n var child = void 0;\r\n if (ds) {\r\n var fieldData = getFieldValues(ds, this.listBaseOption.fields);\r\n child = fieldData[this.fields.child];\r\n if (!child) {\r\n child = [];\r\n }\r\n child = child.concat(data);\r\n }\r\n // check for whether target is nested level or top level in list\r\n if (ds instanceof Array) {\r\n for (var i = 0; i < data.length; i++) {\r\n dataSource.push(data[i]);\r\n this.setViewDataSource(dataSource);\r\n // since it is top level target, get the content container's first child\r\n // as it is always the top level UL\r\n var targetUL = this.contentContainer\r\n ? this.contentContainer.children[0]\r\n : null;\r\n // check for whether the list was previously empty or not, if it is\r\n // proceed to call initial render\r\n if (this.contentContainer && targetUL) {\r\n this.addItemIntoDom(data[i], targetUL, this.curViewDS);\r\n }\r\n else {\r\n this.reRender();\r\n }\r\n }\r\n this.liCollection = this.curUL.querySelectorAll('.' + classNames.listItem);\r\n }\r\n else {\r\n // proceed as target item is in nested level, only if it is a valid target ds\r\n if (ds) {\r\n ds[this.fields.child] = child;\r\n this.addItemInNestedList(ds, data);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n ListView.prototype.addItemInNestedList = function (targetItemData, itemQueue) {\r\n // eslint-disable-next-line\r\n var targetItemId = targetItemData[this.fields.id];\r\n var targetChildDS = targetItemData[this.fields.child];\r\n var isAlreadyRenderedUL = this.element.querySelector('[pid=\\'' + targetItemId + '\\']');\r\n var targetLi = this.element.querySelector('[data-uid=\\'' + targetItemId + '\\']');\r\n var targetUL = isAlreadyRenderedUL\r\n ? isAlreadyRenderedUL\r\n : targetLi\r\n ? closest(targetLi, 'ul')\r\n : null;\r\n var targetDS = isAlreadyRenderedUL ? targetChildDS : [targetItemData];\r\n var isTargetEmptyChild = targetLi ? !targetLi.classList.contains(classNames.hasChild) : false;\r\n var isRefreshTemplateNeeded = false;\r\n // if li element is already rendered, that element needs to be refreshed so that\r\n // it becomes child viewable due to new child items are added now\r\n if (isTargetEmptyChild) {\r\n var targetRefreshedElement = ListBase.createListItemFromJson(this.createElement, targetDS, this.listBaseOption, null, null, this);\r\n this.setAttributes(targetRefreshedElement);\r\n targetUL.insertBefore(targetRefreshedElement[0], targetLi);\r\n detach(targetLi);\r\n isRefreshTemplateNeeded = true;\r\n }\r\n // if it is already rendered element, we need to create and append new elements\r\n if (isAlreadyRenderedUL && itemQueue) {\r\n for (var i = 0; i < itemQueue.length; i++) {\r\n targetDS.push(itemQueue[i]);\r\n this.addItemIntoDom(itemQueue[i], targetUL, targetDS);\r\n }\r\n isRefreshTemplateNeeded = true;\r\n }\r\n };\r\n ListView.prototype.addItemIntoDom = function (currentItem, targetUL, curViewDS) {\r\n var index = curViewDS.indexOf(currentItem);\r\n this.addListItem(currentItem, index, targetUL, curViewDS);\r\n var curItemDS = curViewDS[index - 1];\r\n if (curItemDS && curItemDS.isHeader && curItemDS.items.length === 1) {\r\n this.addListItem(curItemDS, (index - 1), targetUL, curViewDS);\r\n }\r\n };\r\n ListView.prototype.addListItem = function (dataSource, index, ulElement, curViewDS) {\r\n var target = this.getLiFromObjOrElement(curViewDS[index + 1]) ||\r\n this.getLiFromObjOrElement(curViewDS[index + 2]) || null;\r\n var li = ListBase.createListItemFromJson(this.createElement, [dataSource], this.listBaseOption, null, null, this);\r\n this.setAttributes(li);\r\n // eslint-disable-next-line\r\n if (this.template && this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n if (this.fields.groupBy && curViewDS[index + 1] && curViewDS[index + 1].isHeader) {\r\n var targetEle = this.getLiFromObjOrElement(curViewDS[index - 1]);\r\n if (targetEle) {\r\n target = targetEle.nextElementSibling;\r\n }\r\n }\r\n ulElement.insertBefore(li[0], target);\r\n };\r\n /**\r\n * Removes the list item from the data source based on a passed\r\n * element like fields: { text: 'Name', tooltip: 'Name', id:'id'}\r\n *\r\n * @param {Fields | HTMLElement | Element} item - We can pass element Object or Fields as Object with ID and Text fields.\r\n */\r\n ListView.prototype.removeItem = function (item) {\r\n var listDataSource = this.dataSource instanceof DataManager\r\n ? this.localData : this.dataSource;\r\n if (this.enableVirtualization) {\r\n this.virtualizationModule.removeItem(item);\r\n }\r\n else {\r\n this.removeItemFromList(item, listDataSource);\r\n }\r\n };\r\n ListView.prototype.removeItemFromList = function (obj, listDataSource) {\r\n var _this = this;\r\n var curViewDS = this.curViewDS;\r\n var fields = obj instanceof Element ? this.getElementUID(obj) : obj;\r\n var dataSource;\r\n // eslint-disable-next-line prefer-const\r\n dataSource = this.findItemFromDS(listDataSource, fields, true);\r\n if (dataSource) {\r\n var data_1;\r\n // eslint-disable-next-line prefer-const\r\n data_1 = this.findItemFromDS(dataSource, fields);\r\n var index = curViewDS.indexOf(data_1);\r\n var li = this.getLiFromObjOrElement(obj);\r\n var groupLi = void 0;\r\n this.validateNestedView(li);\r\n if (this.fields.groupBy && this.curViewDS[index - 1] &&\r\n curViewDS[index - 1].isHeader &&\r\n curViewDS[index - 1].items.length === 1) {\r\n if (li && li.previousElementSibling.classList.contains(classNames.groupListItem) &&\r\n (isNullOrUndefined(li.nextElementSibling) || (li.nextElementSibling &&\r\n li.nextElementSibling.classList.contains(classNames.groupListItem)))) {\r\n groupLi = li.previousElementSibling;\r\n }\r\n }\r\n if (li) {\r\n detach(li);\r\n }\r\n if (groupLi) {\r\n detach(groupLi);\r\n }\r\n // eslint-disable-next-line\r\n var foundData = (dataSource.length - 1) <= 0\r\n ? this.findParent(this.localData, this.fields.id, \r\n // eslint-disable-next-line\r\n function (value) { return value === data_1[_this.fields.id]; }, null) : null;\r\n var dsIndex = dataSource.indexOf(data_1);\r\n dataSource.splice(dsIndex, 1);\r\n this.setViewDataSource(listDataSource);\r\n if (foundData\r\n && foundData.parent\r\n && Array.isArray(foundData.parent[this.fields.child])\r\n && foundData.parent[this.fields.child].length <= 0) {\r\n var parentLi = this.getLiFromObjOrElement(foundData.parent);\r\n if (parentLi) {\r\n var li_1 = ListBase.createListItemFromJson(this.createElement, [foundData.parent], this.listBaseOption, null, null, this);\r\n this.setAttributes(li_1);\r\n parentLi.parentElement.insertBefore(li_1[0], parentLi);\r\n parentLi.parentElement.removeChild(parentLi);\r\n }\r\n }\r\n if (dataSource.length <= 0) {\r\n this.back();\r\n }\r\n this.liCollection = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.listItem));\r\n }\r\n };\r\n // validate before removing an element whether the current view is inside target element's child view\r\n ListView.prototype.validateNestedView = function (li) {\r\n var liID = li ? li.getAttribute('data-uid').toString().toLowerCase() : null;\r\n if (liID && this.curDSLevel && this.curDSLevel.length > 0) {\r\n while (this.curDSLevel.some(function (id) { return id.toString().toLowerCase() === liID; })) {\r\n this.back();\r\n }\r\n }\r\n };\r\n /**\r\n * Removes multiple items from the ListView by passing the array of elements or array of field objects.\r\n *\r\n * @param {Fields[] | HTMLElement[] | Element[]} item - We can pass array of elements or array of field Object with ID and Text fields.\r\n */\r\n ListView.prototype.removeMultipleItems = function (item) {\r\n if (item.length) {\r\n for (var i = 0; i < item.length; i++) {\r\n this.removeItem(item[i]);\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line\r\n ListView.prototype.findParent = function (dataSource, id, callback, parent) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (dataSource.hasOwnProperty(id) && callback(dataSource[id]) === true) {\r\n return extend({}, dataSource);\r\n }\r\n for (var i = 0; i < Object.keys(dataSource).length; i++) {\r\n if (dataSource[Object.keys(dataSource)[i]]\r\n && typeof dataSource[Object.keys(dataSource)[i]] === 'object') {\r\n // eslint-disable-next-line\r\n var result = this.findParent(dataSource[Object.keys(dataSource)[i]], id, callback, dataSource);\r\n if (result != null) {\r\n if (!result.parent) {\r\n result.parent = parent;\r\n }\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n // Module Required function\r\n ListView.prototype.getModuleName = function () {\r\n return 'listview';\r\n };\r\n ListView.prototype.requiredModules = function () {\r\n var modules = [];\r\n if (this.enableVirtualization) {\r\n modules.push({ args: [this], member: 'virtualization' });\r\n }\r\n return modules;\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n */\r\n ListView.prototype.getPersistData = function () {\r\n return this.addOnPersist(['cssClass', 'enableRtl', 'htmlAttributes',\r\n 'enable', 'fields', 'animation', 'headerTitle',\r\n 'sortOrder', 'showIcon', 'height', 'width', 'showCheckBox', 'checkBoxPosition']);\r\n };\r\n __decorate([\r\n Property('')\r\n ], ListView.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListView.prototype, \"enableVirtualization\", void 0);\r\n __decorate([\r\n Property({})\r\n ], ListView.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], ListView.prototype, \"enable\", void 0);\r\n __decorate([\r\n Property([])\r\n ], ListView.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property()\r\n ], ListView.prototype, \"query\", void 0);\r\n __decorate([\r\n Complex(ListBase.defaultMappedFields, FieldSettings)\r\n ], ListView.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property({ effect: 'SlideLeft', duration: 400, easing: 'ease' })\r\n ], ListView.prototype, \"animation\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], ListView.prototype, \"sortOrder\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListView.prototype, \"showIcon\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListView.prototype, \"showCheckBox\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], ListView.prototype, \"checkBoxPosition\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ListView.prototype, \"headerTitle\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListView.prototype, \"showHeader\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ListView.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ListView.prototype, \"height\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ListView.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ListView.prototype, \"template\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ListView.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], ListView.prototype, \"groupTemplate\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListView.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListView.prototype, \"actionBegin\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListView.prototype, \"actionComplete\", void 0);\r\n __decorate([\r\n Event()\r\n ], ListView.prototype, \"actionFailure\", void 0);\r\n ListView = __decorate([\r\n NotifyPropertyChanges\r\n ], ListView);\r\n return ListView;\r\n}(Component));\r\nexport { ListView };\r\n","import { classNames } from './list-view';\r\nimport { EventHandler, append, isNullOrUndefined, detach, removeClass, addClass, compile, formatUnit } from '@syncfusion/ej2-base';\r\nimport { ListBase } from '../common/list-base';\r\nimport { DataManager } from '@syncfusion/ej2-data';\r\nvar listElementCount = 1.5;\r\nvar windowElementCount = 3;\r\nvar Virtualization = /** @class */ (function () {\r\n function Virtualization(instance) {\r\n this.elementDifference = 0;\r\n this.listViewInstance = instance;\r\n }\r\n /**\r\n * For internal use only.\r\n *\r\n * @private\r\n */\r\n Virtualization.prototype.isNgTemplate = function () {\r\n return !isNullOrUndefined(this.listViewInstance.templateRef) && typeof this.listViewInstance.templateRef !== 'string';\r\n };\r\n /**\r\n * For internal use only.\r\n *\r\n * @private\r\n */\r\n Virtualization.prototype.uiVirtualization = function () {\r\n this.wireScrollEvent(false);\r\n var curViewDS = this.listViewInstance.curViewDS;\r\n var firstDs = curViewDS.slice(0, 1);\r\n this.listViewInstance.ulElement = this.listViewInstance.curUL = ListBase.createList(\r\n // eslint-disable-next-line\r\n this.listViewInstance.createElement, firstDs, this.listViewInstance.listBaseOption, null, this.listViewInstance);\r\n this.listViewInstance.contentContainer = this.listViewInstance.createElement('div', { className: classNames.content });\r\n this.listViewInstance.element.appendChild(this.listViewInstance.contentContainer);\r\n this.listViewInstance.contentContainer.appendChild(this.listViewInstance.ulElement);\r\n this.listItemHeight = this.listViewInstance.ulElement.firstElementChild.getBoundingClientRect().height;\r\n this.expectedDomItemCount = this.ValidateItemCount(10000);\r\n this.domItemCount = this.ValidateItemCount(Object.keys(this.listViewInstance.curViewDS).length);\r\n this.uiFirstIndex = 0;\r\n this.uiLastIndex = this.domItemCount - 1;\r\n var otherDs = curViewDS.slice(1, this.domItemCount);\r\n var listItems = ListBase.createListItemFromJson(\r\n // eslint-disable-next-line\r\n this.listViewInstance.createElement, otherDs, this.listViewInstance.listBaseOption, null, null, this.listViewInstance);\r\n append(listItems, this.listViewInstance.ulElement);\r\n this.listViewInstance.liCollection = this.listViewInstance.curUL.querySelectorAll('li');\r\n this.topElement = this.listViewInstance.createElement('div');\r\n this.listViewInstance.ulElement.insertBefore(this.topElement, this.listViewInstance.ulElement.firstElementChild);\r\n this.bottomElement = this.listViewInstance.createElement('div');\r\n this.listViewInstance.ulElement.insertBefore(this.bottomElement, null);\r\n this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);\r\n this.topElement.style.height = 0 + 'px';\r\n this.bottomElement.style.height = this.totalHeight + 'px';\r\n this.topElementHeight = 0;\r\n this.bottomElementHeight = this.totalHeight;\r\n this.listDiff = 0;\r\n this.uiIndicesInitialization();\r\n };\r\n Virtualization.prototype.wireScrollEvent = function (destroy) {\r\n if (!destroy) {\r\n if (this.listViewInstance.isWindow) {\r\n this.onVirtualScroll = this.onVirtualUiScroll.bind(this);\r\n window.addEventListener('scroll', this.onVirtualScroll);\r\n }\r\n else {\r\n EventHandler.add(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll, this);\r\n }\r\n }\r\n else {\r\n if (this.listViewInstance.isWindow === true) {\r\n window.removeEventListener('scroll', this.onVirtualScroll);\r\n window.removeEventListener('scroll', this.updateUl);\r\n }\r\n else {\r\n EventHandler.remove(this.listViewInstance.element, 'scroll', this.onVirtualUiScroll);\r\n EventHandler.remove(this.listViewInstance.element, 'scroll', this.updateUlContainer);\r\n }\r\n }\r\n };\r\n Virtualization.prototype.updateUlContainer = function (e) {\r\n var listDiff;\r\n var virtualElementContainer = this.listViewInstance.ulElement.querySelector('.' + classNames.virtualElementContainer);\r\n if (isNullOrUndefined(this.listViewInstance.liElementHeight)) {\r\n this.listViewInstance.updateLiElementHeight();\r\n }\r\n if (this.listViewInstance.isWindow) {\r\n // eslint-disable-next-line\r\n listDiff = Math.round(e.target.documentElement.scrollTop / this.listViewInstance.liElementHeight) - 2;\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n listDiff = Math.round(e.target.scrollTop / this.listViewInstance.liElementHeight) - 2;\r\n }\r\n if (((listDiff - 1) * this.listViewInstance.liElementHeight) < 0) {\r\n virtualElementContainer.style.top = '0px';\r\n }\r\n else {\r\n virtualElementContainer.style.top = (listDiff) * this.listViewInstance.liElementHeight + 'px';\r\n }\r\n };\r\n Virtualization.prototype.ValidateItemCount = function (dataSourceLength) {\r\n var height = parseFloat(formatUnit(this.listViewInstance.height));\r\n var itemCount;\r\n if (this.listViewInstance.isWindow) {\r\n itemCount = Math.round((window.innerHeight / this.listItemHeight) * windowElementCount);\r\n }\r\n else {\r\n if (typeof this.listViewInstance.height === 'string' && this.listViewInstance.height.indexOf('%') !== -1) {\r\n // eslint-disable-next-line max-len\r\n itemCount = Math.round((this.listViewInstance.element.getBoundingClientRect().height / this.listItemHeight) * listElementCount);\r\n }\r\n else {\r\n itemCount = Math.round((height / this.listItemHeight) * listElementCount);\r\n }\r\n }\r\n if (itemCount > dataSourceLength) {\r\n itemCount = dataSourceLength;\r\n }\r\n return itemCount;\r\n };\r\n Virtualization.prototype.uiIndicesInitialization = function () {\r\n this.uiIndices = { 'activeIndices': [], 'disabledItemIndices': [], 'hiddenItemIndices': [] };\r\n var data = this.listViewInstance.curViewDS;\r\n for (var i = 0; i < data.length; i++) {\r\n if (this.listViewInstance.showCheckBox && data[i][this.listViewInstance.fields.isChecked]) {\r\n this.uiIndices.activeIndices.push(i);\r\n }\r\n // eslint-disable-next-line\r\n if (!isNullOrUndefined(data[i][this.listViewInstance.fields.enabled]) &&\r\n !data[i][this.listViewInstance.fields.enabled]) {\r\n // eslint-disable-next-line\r\n (this.uiIndices.disabledItemIndices.push(i));\r\n }\r\n }\r\n if (this.isNgTemplate()) {\r\n var items = this.listViewInstance.element.querySelectorAll('.' + classNames.listItem);\r\n for (var index = 0; index < items.length; index++) {\r\n items[index].context = this.listViewInstance.viewContainerRef.get(index).context;\r\n }\r\n }\r\n };\r\n Virtualization.prototype.refreshItemHeight = function () {\r\n if (this.listViewInstance.curViewDS.length) {\r\n var curViewDS = this.listViewInstance.curViewDS;\r\n this.listItemHeight = this.topElement.nextSibling.getBoundingClientRect().height;\r\n this.totalHeight = (Object.keys(curViewDS).length * this.listItemHeight) - (this.domItemCount * this.listItemHeight);\r\n this.bottomElementHeight = this.totalHeight;\r\n this.bottomElement.style.height = this.totalHeight + 'px';\r\n }\r\n };\r\n Virtualization.prototype.getscrollerHeight = function (startingHeight) {\r\n return this.listViewInstance.isWindow ? (((pageYOffset - startingHeight) <= 0) ? 0 :\r\n (pageYOffset - startingHeight)) : ((this.listViewInstance.element.scrollTop - startingHeight) <= 0) ? 0 :\r\n (this.listViewInstance.element.scrollTop - startingHeight);\r\n };\r\n Virtualization.prototype.onVirtualUiScroll = function (e) {\r\n var _a;\r\n var startingHeight;\r\n if (this.listViewInstance.isWindow) {\r\n startingHeight = this.listViewInstance.ulElement.getBoundingClientRect().top -\r\n document.documentElement.getBoundingClientRect().top;\r\n }\r\n else {\r\n startingHeight = this.listViewInstance.headerEle ? this.listViewInstance.headerEle.getBoundingClientRect().height : 0;\r\n }\r\n this.scrollPosition = isNullOrUndefined(this.scrollPosition) ? 0 : this.scrollPosition;\r\n var scroll = this.getscrollerHeight(startingHeight);\r\n this.topElementHeight = this.listItemHeight * Math.floor(scroll / this.listItemHeight);\r\n this.bottomElementHeight = this.totalHeight - this.topElementHeight;\r\n _a = scroll <= this.totalHeight ?\r\n [this.topElementHeight, this.bottomElementHeight] : [this.totalHeight, 0], this.topElementHeight = _a[0], this.bottomElementHeight = _a[1];\r\n if (this.topElementHeight !== parseFloat(this.topElement.style.height)) {\r\n this.topElement.style.height = this.topElementHeight + 'px';\r\n this.bottomElement.style.height = this.bottomElementHeight + 'px';\r\n if (scroll > this.scrollPosition) {\r\n var listDiff = Math.round(((this.topElementHeight / this.listItemHeight) - this.listDiff));\r\n if (listDiff > (this.expectedDomItemCount + 5)) {\r\n this.onLongScroll(listDiff, true);\r\n }\r\n else {\r\n this.onNormalScroll(listDiff, true);\r\n }\r\n }\r\n else {\r\n var listDiff = Math.round((this.listDiff - (this.topElementHeight / this.listItemHeight)));\r\n if (listDiff > (this.expectedDomItemCount + 5)) {\r\n this.onLongScroll(listDiff, false);\r\n }\r\n else {\r\n this.onNormalScroll(listDiff, false);\r\n }\r\n }\r\n }\r\n this.listDiff = Math.round(this.topElementHeight / this.listItemHeight);\r\n if (typeof this.listViewInstance.onUIScrolled === 'function') {\r\n this.listViewInstance.onUIScrolled();\r\n }\r\n this.scrollPosition = scroll;\r\n };\r\n Virtualization.prototype.onLongScroll = function (listDiff, isScrollingDown) {\r\n var index = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff);\r\n var elements = this.listViewInstance.ulElement.querySelectorAll('li');\r\n for (var i = 0; i < elements.length; i++) {\r\n this.updateUI(elements[i], index);\r\n index++;\r\n }\r\n this.uiLastIndex = isScrollingDown ? (this.uiLastIndex + listDiff) : (this.uiLastIndex - listDiff);\r\n this.uiFirstIndex = isScrollingDown ? (this.uiFirstIndex + listDiff) : (this.uiFirstIndex - listDiff);\r\n };\r\n Virtualization.prototype.onNormalScroll = function (listDiff, isScrollingDown) {\r\n if (isScrollingDown) {\r\n for (var i = 0; i < listDiff; i++) {\r\n var index = ++this.uiLastIndex;\r\n this.updateUI(this.topElement.nextElementSibling, index, this.bottomElement);\r\n this.uiFirstIndex++;\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < listDiff; i++) {\r\n var index = --this.uiFirstIndex;\r\n var target = this.topElement.nextSibling;\r\n this.updateUI(this.bottomElement.previousElementSibling, index, target);\r\n this.uiLastIndex--;\r\n }\r\n }\r\n };\r\n Virtualization.prototype.updateUiContent = function (element, index) {\r\n var curViewDs = this.listViewInstance.curViewDS;\r\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\r\n typeof this.listViewInstance.dataSource[0] === 'number') {\r\n element.dataset.uid = ListBase.generateId();\r\n element.getElementsByClassName(classNames.listItemText)[0].innerHTML =\r\n this.listViewInstance.curViewDS[index].toString();\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n element.dataset.uid = (curViewDs[index][this.listViewInstance.fields.id]) ?\r\n // eslint-disable-next-line\r\n (curViewDs[index][this.listViewInstance.fields.id]) : ListBase.generateId();\r\n element.getElementsByClassName(classNames.listItemText)[0].innerHTML =\r\n // eslint-disable-next-line\r\n (curViewDs[index][this.listViewInstance.fields.text]);\r\n }\r\n if (this.listViewInstance.showIcon) {\r\n if (element.querySelector('.' + classNames.listIcon)) {\r\n detach(element.querySelector('.' + classNames.listIcon));\r\n }\r\n if (this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss]) {\r\n var textContent = element.querySelector('.' + classNames.textContent);\r\n var target = this.listViewInstance.createElement('div', {\r\n className: classNames.listIcon + ' ' +\r\n this.listViewInstance.curViewDS[index][this.listViewInstance.fields.iconCss]\r\n });\r\n textContent.insertBefore(target, element.querySelector('.' + classNames.listItemText));\r\n }\r\n }\r\n if (this.listViewInstance.showCheckBox && this.listViewInstance.fields.groupBy) {\r\n if (!this.checkListWrapper) {\r\n this.checkListWrapper = this.listViewInstance.curUL.querySelector('.' + classNames.checkboxWrapper).cloneNode(true);\r\n }\r\n var textContent = element.querySelector('.' + classNames.textContent);\r\n if (this.listViewInstance.curViewDS[index].isHeader) {\r\n if (element.querySelector('.' + classNames.checkboxWrapper)) {\r\n element.classList.remove(classNames.checklist);\r\n textContent.classList.remove(classNames.checkbox);\r\n detach(element.querySelector('.' + classNames.checkboxWrapper));\r\n }\r\n }\r\n else {\r\n if (!element.querySelector('.' + classNames.checkboxWrapper)) {\r\n element.classList.add(classNames.checklist);\r\n textContent.classList.add(classNames.checkbox);\r\n textContent.insertBefore(this.checkListWrapper.cloneNode(true), element.querySelector('.' + classNames.listItemText));\r\n }\r\n }\r\n }\r\n };\r\n Virtualization.prototype.changeElementAttributes = function (element, index) {\r\n element.classList.remove(classNames.disable);\r\n if (this.uiIndices.disabledItemIndices.length && this.uiIndices.disabledItemIndices.indexOf(index) !== -1) {\r\n element.classList.add(classNames.disable);\r\n }\r\n element.style.display = '';\r\n if (this.uiIndices.hiddenItemIndices.length && this.uiIndices.hiddenItemIndices.indexOf(index) !== -1) {\r\n element.style.display = 'none';\r\n }\r\n if (this.listViewInstance.showCheckBox) {\r\n var checklistElement = element.querySelector('.' + classNames.checkboxWrapper);\r\n element.classList.remove(classNames.selected);\r\n element.classList.remove(classNames.focused);\r\n if (checklistElement) {\r\n checklistElement.removeAttribute('aria-checked');\r\n checklistElement.firstElementChild.classList.remove(classNames.checked);\r\n }\r\n if (this.uiIndices.activeIndices.length && this.uiIndices.activeIndices.indexOf(index) !== -1 &&\r\n !this.listViewInstance.curUL.querySelector(classNames.selected)) {\r\n element.classList.add(classNames.selected);\r\n checklistElement.firstElementChild.classList.add(classNames.checked);\r\n checklistElement.setAttribute('aria-checked', 'true');\r\n if (this.activeIndex === index) {\r\n element.classList.add(classNames.focused);\r\n }\r\n }\r\n }\r\n else {\r\n element.classList.remove(classNames.selected);\r\n element.removeAttribute('aria-selected');\r\n if (!isNullOrUndefined(this.activeIndex) && this.activeIndex === index &&\r\n !this.listViewInstance.curUL.querySelector(classNames.selected)) {\r\n element.classList.add(classNames.selected);\r\n element.setAttribute('aria-selected', 'true');\r\n }\r\n }\r\n if (this.listViewInstance.fields.groupBy) {\r\n if (this.listViewInstance.curViewDS[index].isHeader) {\r\n if (element.classList.contains(classNames.listItem)) {\r\n element.classList.remove(classNames.listItem);\r\n element.setAttribute('role', 'group');\r\n element.classList.add(classNames.groupListItem);\r\n }\r\n }\r\n else {\r\n if (element.classList.contains(classNames.groupListItem)) {\r\n element.classList.remove(classNames.groupListItem);\r\n element.setAttribute('role', 'listitem');\r\n element.classList.add(classNames.listItem);\r\n }\r\n }\r\n }\r\n };\r\n Virtualization.prototype.findDSAndIndexFromId = function (ds, fields) {\r\n var _this = this;\r\n var resultJSON = {};\r\n fields = this.listViewInstance.getElementUID(fields);\r\n if (!isNullOrUndefined(fields)) {\r\n ds.some(function (data, index) {\r\n if ((fields[_this.listViewInstance.fields.id] &&\r\n // eslint-disable-next-line\r\n fields[_this.listViewInstance.fields.id]\r\n // eslint-disable-next-line\r\n === (data[_this.listViewInstance.fields.id] && data[_this.listViewInstance.fields.id]) || fields === data)) {\r\n resultJSON.index = index;\r\n resultJSON.data = data;\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n }\r\n return resultJSON;\r\n };\r\n Virtualization.prototype.getSelectedItems = function () {\r\n var _this = this;\r\n if (!isNullOrUndefined(this.activeIndex) || (this.listViewInstance.showCheckBox && this.uiIndices.activeIndices.length)) {\r\n var dataCollection = [];\r\n var textCollection = [];\r\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\r\n typeof this.listViewInstance.dataSource[0] === 'number') {\r\n var curViewDS_1 = this.listViewInstance.curViewDS;\r\n if (this.listViewInstance.showCheckBox) {\r\n var indices = this.uiIndices.activeIndices;\r\n for (var i = 0; i < indices.length; i++) {\r\n dataCollection.push(curViewDS_1[indices[i]]);\r\n }\r\n return {\r\n text: dataCollection,\r\n // eslint-disable-next-line\r\n data: dataCollection,\r\n index: this.uiIndices.activeIndices.map(function (index) {\r\n return _this.listViewInstance.dataSource.indexOf(curViewDS_1[index]);\r\n })\r\n };\r\n }\r\n else {\r\n return {\r\n text: curViewDS_1[this.activeIndex],\r\n data: curViewDS_1[this.activeIndex],\r\n index: this.listViewInstance.dataSource.indexOf(curViewDS_1[this.activeIndex])\r\n };\r\n }\r\n }\r\n else {\r\n var curViewDS_2 = this.listViewInstance.curViewDS;\r\n var text = this.listViewInstance.fields.text;\r\n if (this.listViewInstance.showCheckBox) {\r\n var indexArray = this.uiIndices.activeIndices;\r\n for (var i = 0; i < indexArray.length; i++) {\r\n textCollection.push(curViewDS_2[indexArray[i]][text]);\r\n dataCollection.push(curViewDS_2[indexArray[i]]);\r\n }\r\n var dataSource_1 = this.listViewInstance.dataSource instanceof DataManager\r\n ? curViewDS_2 : this.listViewInstance.dataSource;\r\n return {\r\n text: textCollection,\r\n // eslint-disable-next-line\r\n data: dataCollection,\r\n index: this.uiIndices.activeIndices.map(function (index) {\r\n return dataSource_1.indexOf(curViewDS_2[index]);\r\n })\r\n };\r\n }\r\n else {\r\n var dataSource = this.listViewInstance.dataSource instanceof DataManager\r\n ? curViewDS_2 : this.listViewInstance.dataSource;\r\n return {\r\n text: curViewDS_2[this.activeIndex][this.listViewInstance.fields.text],\r\n // eslint-disable-next-line\r\n data: curViewDS_2[this.activeIndex],\r\n index: dataSource.indexOf(curViewDS_2[this.activeIndex])\r\n };\r\n }\r\n }\r\n }\r\n else {\r\n return undefined;\r\n }\r\n };\r\n Virtualization.prototype.selectItem = function (obj) {\r\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\r\n if (Object.keys(resutJSON).length) {\r\n var isSelected = this.activeIndex === resutJSON.index;\r\n var isChecked = void 0;\r\n this.activeIndex = resutJSON.index;\r\n if (this.listViewInstance.showCheckBox) {\r\n if (this.uiIndices.activeIndices.indexOf(resutJSON.index) === -1) {\r\n isChecked = true;\r\n this.uiIndices.activeIndices.push(resutJSON.index);\r\n }\r\n else {\r\n isChecked = false;\r\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(resutJSON.index), 1);\r\n }\r\n if (this.listViewInstance.curUL.querySelector('.' + classNames.focused)) {\r\n this.listViewInstance.curUL.querySelector('.' + classNames.focused).classList.remove(classNames.focused);\r\n }\r\n }\r\n if (this.listViewInstance.getLiFromObjOrElement(obj)) {\r\n if (this.listViewInstance.showCheckBox) {\r\n this.listViewInstance.setCheckboxLI(this.listViewInstance.getLiFromObjOrElement(obj));\r\n }\r\n else {\r\n this.listViewInstance.setSelectLI(this.listViewInstance.getLiFromObjOrElement(obj));\r\n }\r\n }\r\n else {\r\n var eventArgs = void 0;\r\n if (typeof this.listViewInstance.dataSource[0] === 'string' ||\r\n typeof this.listViewInstance.dataSource[0] === 'number') {\r\n eventArgs = {\r\n text: this.listViewInstance.curViewDS[this.activeIndex],\r\n data: this.listViewInstance.curViewDS[this.activeIndex],\r\n index: this.activeIndex\r\n };\r\n }\r\n else {\r\n var curViewDS = this.listViewInstance.curViewDS;\r\n eventArgs = {\r\n text: curViewDS[this.activeIndex][this.listViewInstance.fields.text],\r\n data: curViewDS[this.activeIndex],\r\n index: this.activeIndex\r\n };\r\n }\r\n if (this.listViewInstance.showCheckBox) {\r\n eventArgs.isChecked = isChecked;\r\n this.listViewInstance.trigger('select', eventArgs);\r\n }\r\n else if (!isSelected) {\r\n this.listViewInstance.removeSelect();\r\n this.listViewInstance.trigger('select', eventArgs);\r\n }\r\n }\r\n }\r\n else if (isNullOrUndefined(obj) && !this.listViewInstance.showCheckBox) {\r\n this.listViewInstance.removeSelect();\r\n this.activeIndex = undefined;\r\n }\r\n };\r\n Virtualization.prototype.enableItem = function (obj) {\r\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\r\n if (Object.keys(resutJSON).length) {\r\n this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(resutJSON.index), 1);\r\n }\r\n };\r\n Virtualization.prototype.disableItem = function (obj) {\r\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\r\n if (Object.keys(resutJSON).length && this.uiIndices.disabledItemIndices.indexOf(resutJSON.index) === -1) {\r\n this.uiIndices.disabledItemIndices.push(resutJSON.index);\r\n }\r\n };\r\n Virtualization.prototype.showItem = function (obj) {\r\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\r\n if (Object.keys(resutJSON).length) {\r\n this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index), 1);\r\n }\r\n };\r\n Virtualization.prototype.hideItem = function (obj) {\r\n var resutJSON = this.findDSAndIndexFromId(this.listViewInstance.curViewDS, obj);\r\n if (Object.keys(resutJSON).length && this.uiIndices.hiddenItemIndices.indexOf(resutJSON.index) === -1) {\r\n this.uiIndices.hiddenItemIndices.push(resutJSON.index);\r\n }\r\n };\r\n Virtualization.prototype.removeItem = function (obj) {\r\n var dataSource;\r\n var curViewDS = this.listViewInstance.curViewDS;\r\n var resutJSON = this.findDSAndIndexFromId(curViewDS, obj);\r\n if (Object.keys(resutJSON).length) {\r\n dataSource = resutJSON.data;\r\n if (curViewDS[resutJSON.index - 1] &&\r\n curViewDS[resutJSON.index - 1].isHeader &&\r\n (curViewDS[resutJSON.index - 1])\r\n .items.length === 1) {\r\n this.removeUiItem(resutJSON.index - 1);\r\n this.removeUiItem(resutJSON.index - 1);\r\n }\r\n else {\r\n this.removeUiItem(resutJSON.index);\r\n }\r\n }\r\n var listDataSource = this.listViewInstance.dataSource instanceof DataManager\r\n ? this.listViewInstance.localData : this.listViewInstance.dataSource;\r\n var index = listDataSource.indexOf(dataSource);\r\n if (index !== -1) {\r\n listDataSource.splice(index, 1);\r\n this.listViewInstance.setViewDataSource(listDataSource);\r\n }\r\n // recollect all the list item into collection\r\n this.listViewInstance.liCollection =\r\n this.listViewInstance.curUL.querySelectorAll('li');\r\n };\r\n // eslint-disable-next-line\r\n Virtualization.prototype.setCheckboxLI = function (li, e) {\r\n var index = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\r\n this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\r\n if (li.classList.contains(classNames.selected)) {\r\n if (this.uiIndices.activeIndices.indexOf(index) === -1) {\r\n this.uiIndices.activeIndices.push(index);\r\n }\r\n }\r\n else {\r\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1);\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Virtualization.prototype.setSelectLI = function (li, e) {\r\n this.activeIndex = Array.prototype.indexOf.call(this.listViewInstance.curUL.querySelectorAll('li'), li) + this.uiFirstIndex;\r\n };\r\n Virtualization.prototype.checkedItem = function (checked) {\r\n if (checked) {\r\n this.uiIndices.activeIndices = [];\r\n this.activeIndex = undefined;\r\n var data = this.listViewInstance.curViewDS;\r\n for (var index = 0; index < data.length; index++) {\r\n if (!data[index].isHeader) {\r\n this.uiIndices.activeIndices.push(index);\r\n }\r\n }\r\n }\r\n else {\r\n this.activeIndex = undefined;\r\n this.uiIndices.activeIndices = [];\r\n }\r\n };\r\n Virtualization.prototype.addUiItem = function (index) {\r\n // virtually new add list item based on the scollbar position\r\n // if the scroll bar is at the top, just pretend the new item has been added since no UI\r\n // change is required for the item that has been added at last but when scroll bar is at the bottom\r\n // just detach top and inject into bottom to mimic new item is added\r\n var curViewDs = this.listViewInstance.curViewDS;\r\n this.changeUiIndices(index, true);\r\n if (this.activeIndex && this.activeIndex >= index) {\r\n this.activeIndex++;\r\n }\r\n if (this.listViewInstance.showCheckBox &&\r\n curViewDs[index][this.listViewInstance.fields.isChecked]) {\r\n this.uiIndices.activeIndices.push(index);\r\n }\r\n if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) {\r\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px';\r\n }\r\n if (parseFloat(this.bottomElement.style.height)) {\r\n var liItem = this.listViewInstance.curUL.lastElementChild.previousSibling;\r\n var target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) ||\r\n this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]);\r\n if (target) {\r\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) + this.listItemHeight + 'px';\r\n this.updateUI(liItem, index, target);\r\n }\r\n }\r\n else {\r\n var liItem = this.listViewInstance.curUL.firstElementChild.nextSibling;\r\n var target = void 0;\r\n if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) {\r\n target = this.listViewInstance.curUL.lastElementChild;\r\n }\r\n else {\r\n target = this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 1]) ||\r\n this.listViewInstance.getLiFromObjOrElement(curViewDs[index + 2]);\r\n }\r\n this.topElement.style.height = parseFloat(this.topElement.style.height) + this.listItemHeight + 'px';\r\n this.uiFirstIndex++;\r\n this.uiLastIndex++;\r\n if (target) {\r\n this.updateUI(liItem, index, target);\r\n if (this.listViewInstance.isWindow === true) {\r\n window.scrollTo(0, (pageYOffset + this.listItemHeight));\r\n }\r\n else {\r\n this.listViewInstance.element.scrollTop += this.listItemHeight;\r\n }\r\n }\r\n }\r\n this.totalHeight += this.listItemHeight;\r\n this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight);\r\n };\r\n Virtualization.prototype.removeUiItem = function (index) {\r\n this.totalHeight -= this.listItemHeight;\r\n var curViewDS = this.listViewInstance.curViewDS[index];\r\n var liItem = this.listViewInstance.getLiFromObjOrElement(curViewDS);\r\n this.listViewInstance.curViewDS.splice(index, 1);\r\n if (this.activeIndex && this.activeIndex >= index) {\r\n this.activeIndex--;\r\n }\r\n if (liItem) {\r\n if (this.domItemCount > Object.keys(this.listViewInstance.curViewDS).length) {\r\n detach(liItem);\r\n this.domItemCount--;\r\n this.uiLastIndex--;\r\n this.totalHeight = 0;\r\n }\r\n else {\r\n if (liItem.classList.contains(classNames.disable)) {\r\n liItem.classList.remove(classNames.disable);\r\n this.uiIndices.disabledItemIndices.splice(this.uiIndices.disabledItemIndices.indexOf(index), 1);\r\n }\r\n if (liItem.style.display === 'none') {\r\n liItem.style.display = '';\r\n this.uiIndices.hiddenItemIndices.splice(this.uiIndices.hiddenItemIndices.indexOf(index), 1);\r\n }\r\n if (this.listViewInstance.showCheckBox && liItem.classList.contains(classNames.selected)) {\r\n this.listViewInstance.removeSelect();\r\n this.uiIndices.activeIndices.splice(this.uiIndices.activeIndices.indexOf(index), 1);\r\n var checklistElement = liItem.querySelector('.' + classNames.checkboxWrapper);\r\n checklistElement.removeAttribute('aria-checked');\r\n checklistElement.firstElementChild.classList.remove(classNames.checked);\r\n if (liItem.classList.contains(classNames.focused)) {\r\n liItem.classList.remove(classNames.focused);\r\n this.activeIndex = undefined;\r\n }\r\n }\r\n else if (liItem.classList.contains(classNames.selected)) {\r\n this.listViewInstance.removeSelect();\r\n this.activeIndex = undefined;\r\n }\r\n if (!parseFloat(this.bottomElement.style.height) && !parseFloat(this.topElement.style.height)) {\r\n this.updateUI(liItem, this.uiLastIndex, this.bottomElement);\r\n }\r\n else if (parseFloat(this.bottomElement.style.height)) {\r\n this.bottomElement.style.height = parseFloat(this.bottomElement.style.height) - this.listItemHeight + 'px';\r\n this.updateUI(liItem, this.uiLastIndex, this.bottomElement);\r\n }\r\n else {\r\n this.topElement.style.height = parseFloat(this.topElement.style.height) - this.listItemHeight + 'px';\r\n this.updateUI(liItem, (this.uiFirstIndex - 1), this.topElement.nextSibling);\r\n this.uiLastIndex--;\r\n this.uiFirstIndex--;\r\n }\r\n }\r\n }\r\n this.changeUiIndices(index, false);\r\n this.listDiff = Math.round(parseFloat(this.topElement.style.height) / this.listItemHeight);\r\n };\r\n Virtualization.prototype.changeUiIndices = function (index, increment) {\r\n var keys = Object.keys(this.uiIndices);\r\n for (var ind = 0; ind < keys.length; ind++) {\r\n this.uiIndices[keys[ind]] = this.uiIndices[keys[ind]].map(function (i) {\r\n if (i >= index) {\r\n return increment ? ++i : --i;\r\n }\r\n else {\r\n return i;\r\n }\r\n });\r\n }\r\n };\r\n Virtualization.prototype.addItem = function (data, fields, dataSource) {\r\n for (var i = 0; i < data.length; i++) {\r\n var currentItem = data[i];\r\n // push the given data to main data array\r\n dataSource.push(currentItem);\r\n // recalculate all the group data or other datasource related things\r\n this.listViewInstance.setViewDataSource(dataSource);\r\n // render list items for first time due to no datasource present earlier\r\n if (!this.domItemCount) {\r\n // fresh rendering for first time\r\n if ((this.listViewInstance.template || this.listViewInstance.groupTemplate) && !this.isNgTemplate()) {\r\n this.listViewInstance.listBaseOption.template = null;\r\n this.listViewInstance.listBaseOption.groupTemplate = null;\r\n this.listViewInstance.listBaseOption.itemCreated = this.createUIItem.bind(this);\r\n }\r\n this.uiVirtualization();\r\n // when expected expected DOM count doesn't meet the condition we need to create and inject new item into DOM\r\n }\r\n else if (this.domItemCount < this.expectedDomItemCount) {\r\n var ds = this.listViewInstance.findItemFromDS(dataSource, fields);\r\n if (ds instanceof Array) {\r\n if (this.listViewInstance.ulElement) {\r\n var index = this.listViewInstance.curViewDS.indexOf(currentItem);\r\n // inject new list item into DOM\r\n this.createAndInjectNewItem(currentItem, index);\r\n // check for group header item\r\n var curViewDS = this.listViewInstance.curViewDS[index - 1];\r\n if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) {\r\n // target group item index in datasource\r\n --index;\r\n // inject new group header into DOM for previously created list item\r\n this.createAndInjectNewItem(curViewDS, index);\r\n }\r\n }\r\n // recollect all the list item into collection\r\n this.listViewInstance.liCollection =\r\n this.listViewInstance.curUL.querySelectorAll('li');\r\n }\r\n }\r\n else {\r\n var index = this.listViewInstance.curViewDS.indexOf(currentItem);\r\n // virtually new add list item based on the scollbar position\r\n this.addUiItem(index);\r\n // check for group header item needs to be added\r\n var curViewDS = this.listViewInstance.curViewDS[index - 1];\r\n if (curViewDS && curViewDS.isHeader && curViewDS.items.length === 1) {\r\n this.addUiItem(index - 1);\r\n }\r\n }\r\n }\r\n };\r\n Virtualization.prototype.createAndInjectNewItem = function (itemData, index) {\r\n // generate li item for given datasource\r\n var target;\r\n var li = ListBase.createListItemFromJson(this.listViewInstance.createElement, \r\n // eslint-disable-next-line\r\n [itemData], this.listViewInstance.listBaseOption, null, null, this.listViewInstance);\r\n // check for target element whether to insert before last item or group item\r\n if ((Object.keys(this.listViewInstance.curViewDS).length - 1) === index) {\r\n target = this.listViewInstance.curUL.lastElementChild;\r\n }\r\n else {\r\n // target group header's first child item to append its header\r\n target = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 1]) ||\r\n this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index + 2]);\r\n }\r\n if (this.listViewInstance.fields.groupBy && this.listViewInstance.curViewDS[index + 1] && this.listViewInstance.curViewDS[index + 1].isHeader) {\r\n var targetEle = this.listViewInstance.getLiFromObjOrElement(this.listViewInstance.curViewDS[index - 1]);\r\n if (targetEle) {\r\n target = targetEle.nextElementSibling;\r\n }\r\n }\r\n // insert before the target element\r\n this.listViewInstance.ulElement.insertBefore(li[0], target);\r\n // increment internal DOM count, last index count for new element\r\n this.domItemCount++;\r\n if (this.bottomElementHeight <= 0) {\r\n this.uiLastIndex++;\r\n }\r\n // recalculate the current item height, to avoid jumpy scroller\r\n this.refreshItemHeight();\r\n };\r\n Virtualization.prototype.createUIItem = function (args) {\r\n var virtualTemplate = this.listViewInstance.template;\r\n var template = this.listViewInstance.createElement('div');\r\n var commonTemplate = '
    ' +\r\n ' ${' + this.listViewInstance.fields.text + '}
    ';\r\n if (this.listViewInstance.isReact) {\r\n commonTemplate = null;\r\n }\r\n if (this.listViewInstance.showCheckBox) {\r\n // eslint-disable-next-line\r\n this.listViewInstance.renderCheckbox(args);\r\n if ((!isNullOrUndefined(this.listViewInstance.virtualCheckBox)) &&\r\n (!isNullOrUndefined(this.listViewInstance.virtualCheckBox.outerHTML))) {\r\n var div = document.createElement('div');\r\n div.innerHTML = this.listViewInstance.template || commonTemplate;\r\n if (div.children && div.children[0]) {\r\n div.children[0].classList.add('e-checkbox');\r\n if (this.listViewInstance.checkBoxPosition === 'Left') {\r\n div.children[0].classList.add('e-checkbox-left');\r\n }\r\n else {\r\n div.children[0].classList.add('e-checkbox-right');\r\n }\r\n if (this.listViewInstance.checkBoxPosition === 'Left') {\r\n div.children[0].insertBefore(this.listViewInstance.virtualCheckBox, div.childNodes[0].children[0]);\r\n }\r\n else {\r\n div.children[0].appendChild(this.listViewInstance.virtualCheckBox);\r\n }\r\n this.listViewInstance.template = div.innerHTML;\r\n }\r\n }\r\n template.innerHTML = this.listViewInstance.template;\r\n this.listViewInstance.template = virtualTemplate;\r\n }\r\n else {\r\n template.innerHTML = this.listViewInstance.template || commonTemplate;\r\n }\r\n // eslint-disable-next-line\r\n var templateElements = template.getElementsByTagName('*');\r\n var groupTemplate = this.listViewInstance.createElement('div');\r\n if (this.listViewInstance.fields.groupBy) {\r\n groupTemplate.innerHTML = this.listViewInstance.groupTemplate || commonTemplate;\r\n }\r\n // eslint-disable-next-line\r\n var groupTemplateElements = groupTemplate.getElementsByTagName('*');\r\n if (args.curData.isHeader) {\r\n this.headerData = args.curData;\r\n }\r\n this.templateData = args.curData.isHeader ? args.curData.items[0] :\r\n args.curData;\r\n if (!this.listViewInstance.isReact || (typeof this.listViewInstance.template == \"string\" && !args.item.classList.contains(\"e-list-group-item\")) ||\r\n (typeof this.listViewInstance.groupTemplate == \"string\" && args.item.classList.contains(\"e-list-group-item\"))) {\r\n args.item.innerHTML = '';\r\n }\r\n args.item.context = { data: args.curData, nodes: { flatTemplateNodes: [], groupTemplateNodes: [] } };\r\n for (var i = 0; i < templateElements.length; i++) {\r\n this.compileTemplate(templateElements[i], args.item, false);\r\n }\r\n for (var i = 0; i < groupTemplateElements.length; i++) {\r\n this.compileTemplate(groupTemplateElements[i], args.item, true);\r\n }\r\n args.item.context.template = args.curData.isHeader ? template.firstElementChild :\r\n groupTemplate.firstElementChild;\r\n args.item.context.type = args.curData.isHeader ? 'flatList' : 'groupList';\r\n var element = args.curData.isHeader ? groupTemplate : template;\r\n if (element.firstElementChild) {\r\n args.item.insertBefore(element.firstElementChild, null);\r\n }\r\n };\r\n Virtualization.prototype.compileTemplate = function (element, item, isHeader) {\r\n this.textProperty(element, item, isHeader);\r\n this.classProperty(element, item, isHeader);\r\n this.attributeProperty(element, item, isHeader);\r\n };\r\n Virtualization.prototype.onChange = function (newData, listElement) {\r\n listElement.context.data = newData;\r\n // eslint-disable-next-line max-len\r\n var groupTemplateNodes = listElement.context.nodes.groupTemplateNodes;\r\n // eslint-disable-next-line max-len\r\n var flatTemplateNodes = listElement.context.nodes.flatTemplateNodes;\r\n // eslint-disable-next-line\r\n if (!isNullOrUndefined(newData.isHeader) && newData.isHeader && listElement.context.type === 'groupList') {\r\n // eslint-disable-next-line\r\n var element = listElement.firstElementChild;\r\n detach(listElement.firstElementChild);\r\n listElement.insertBefore(listElement.context.template, null);\r\n listElement.context.template = element;\r\n listElement.context.type = 'flatList';\r\n for (var i = 0; i < groupTemplateNodes.length; i++) {\r\n // eslint-disable-next-line\r\n groupTemplateNodes[i].onChange(newData);\r\n }\r\n }\r\n else if (!newData.isHeader && listElement.context.type === 'flatList') {\r\n var element = listElement.firstElementChild;\r\n detach(listElement.firstElementChild);\r\n listElement.insertBefore(listElement.context.template, null);\r\n listElement.context.template = element;\r\n listElement.context.type = 'groupList';\r\n for (var i = 0; i < flatTemplateNodes.length; i++) {\r\n // eslint-disable-next-line\r\n flatTemplateNodes[i].onChange(newData);\r\n }\r\n }\r\n else if (!newData.isHeader) {\r\n for (var i = 0; i < flatTemplateNodes.length; i++) {\r\n // eslint-disable-next-line\r\n flatTemplateNodes[i].onChange(newData);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < groupTemplateNodes.length; i++) {\r\n // eslint-disable-next-line\r\n groupTemplateNodes[i].onChange(newData);\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Virtualization.prototype.updateContextData = function (listElement, node, isHeader) {\r\n if (isHeader) {\r\n listElement.context.nodes.groupTemplateNodes.push(node);\r\n }\r\n else {\r\n listElement.context.nodes.flatTemplateNodes.push(node);\r\n }\r\n };\r\n Virtualization.prototype.classProperty = function (element, listElement, isHeader) {\r\n var regex = new RegExp('\\\\${([^}]*)}', 'g');\r\n var resultantOutput = [];\r\n var regexMatch;\r\n while (regexMatch !== null) {\r\n var match = regex.exec(element.className);\r\n resultantOutput.push(match);\r\n regexMatch = match;\r\n if (regexMatch === null) {\r\n resultantOutput.pop();\r\n }\r\n }\r\n if (resultantOutput && resultantOutput.length) {\r\n var _loop_1 = function (i) {\r\n var classNameMatch = resultantOutput[i];\r\n // eslint-disable-next-line\r\n var classFunction;\r\n if (classNameMatch[1].indexOf('?') !== -1 && classNameMatch[1].indexOf(':') !== -1) {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n classFunction = new Function('data', 'return ' + classNameMatch[1].replace(/\\$/g, 'data.'));\r\n }\r\n else {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n classFunction = new Function('data', 'return ' + 'data.' + classNameMatch[1]);\r\n }\r\n // eslint-disable-next-line\r\n var subNode = {};\r\n if (isHeader) {\r\n subNode.bindedvalue = classFunction(this_1.headerData);\r\n }\r\n else {\r\n subNode.bindedvalue = classFunction(this_1.templateData);\r\n }\r\n subNode.onChange = function (value) {\r\n if (subNode.bindedvalue) {\r\n removeClass([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; }));\r\n }\r\n var newCss = classFunction(value);\r\n if (newCss) {\r\n addClass([element], (newCss).split(' ').filter(function (css) { return css; }));\r\n }\r\n subNode.bindedvalue = newCss;\r\n };\r\n var className = classNameMatch[0].split(' ');\r\n for (var i_1 = 0; i_1 < className.length; i_1++) {\r\n element.classList.remove(className[i_1]);\r\n }\r\n if (subNode.bindedvalue) {\r\n addClass([element], subNode.bindedvalue.split(' ').filter(function (css) { return css; }));\r\n }\r\n this_1.updateContextData(listElement, subNode, isHeader);\r\n };\r\n var this_1 = this;\r\n for (var i = 0; i < resultantOutput.length; i++) {\r\n _loop_1(i);\r\n }\r\n }\r\n };\r\n Virtualization.prototype.attributeProperty = function (element, listElement, isHeader) {\r\n var attributeNames = [];\r\n for (var i = 0; i < element.attributes.length; i++) {\r\n attributeNames.push(element.attributes[i].nodeName);\r\n }\r\n if (attributeNames.indexOf('class') !== -1) {\r\n attributeNames.splice(attributeNames.indexOf('class'), 1);\r\n }\r\n var _loop_2 = function (i) {\r\n var attributeName = attributeNames[i];\r\n var attrNameMatch = new RegExp('\\\\${([^}]*)}', 'g').exec(attributeName) || [];\r\n var attrValueMatch = new RegExp('\\\\${([^}]*)}', 'g').exec(element.getAttribute(attributeName))\r\n || [];\r\n // eslint-disable-next-line\r\n var attributeNameFunction;\r\n // eslint-disable-next-line\r\n var attributeValueFunction;\r\n if (attrNameMatch.length || attrValueMatch.length) {\r\n if (attrNameMatch[1]) {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n attributeNameFunction = new Function('data', 'return ' + 'data.' + attrNameMatch[1]);\r\n }\r\n if (attrValueMatch[1]) {\r\n if (attrValueMatch[1].indexOf('?') !== -1 && attrValueMatch[1].indexOf(':') !== -1) {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n attributeValueFunction = new Function('data', 'return ' + attrValueMatch[1].replace(/\\$/g, 'data.'));\r\n }\r\n else {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n attributeValueFunction = new Function('data', 'return ' + 'data.' + attrValueMatch[1]);\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var subNode_1 = {};\r\n if (isHeader) {\r\n subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.headerData),\r\n attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.headerData)];\r\n }\r\n else {\r\n subNode_1.bindedvalue = [attrNameMatch[1] === undefined ? undefined : attributeNameFunction(this_2.templateData),\r\n attrValueMatch[1] === undefined ? undefined : attributeValueFunction(this_2.templateData)];\r\n }\r\n subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ?\r\n attributeName : subNode_1.bindedvalue[0];\r\n subNode_1.onChange = function (value) {\r\n var bindedvalue = subNode_1.bindedvalue[1] === undefined ?\r\n element.getAttribute(subNode_1.attrName) : attributeValueFunction(value);\r\n element.removeAttribute(subNode_1.attrName);\r\n subNode_1.attrName = subNode_1.bindedvalue[0] === undefined ? subNode_1.attrName : attributeNameFunction(value);\r\n element.setAttribute(subNode_1.attrName, bindedvalue);\r\n subNode_1.bindedvalue = [subNode_1.bindedvalue[0] === undefined ? undefined : attributeNameFunction(value),\r\n subNode_1.bindedvalue[1] === undefined ? undefined : attributeValueFunction(value)];\r\n };\r\n var attributeValue = subNode_1.bindedvalue[1] === undefined ? element.getAttribute(attributeName) :\r\n subNode_1.bindedvalue[1];\r\n element.removeAttribute(attributeName);\r\n element.setAttribute(subNode_1.attrName, attributeValue);\r\n this_2.updateContextData(listElement, subNode_1, isHeader);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < attributeNames.length; i++) {\r\n _loop_2(i);\r\n }\r\n };\r\n Virtualization.prototype.textProperty = function (element, listElement, isHeader) {\r\n var regex = new RegExp('\\\\${([^}]*)}', 'g');\r\n var resultantOutput = [];\r\n var regexMatch;\r\n while (regexMatch !== null) {\r\n var match = regex.exec(element.innerText);\r\n resultantOutput.push(match);\r\n regexMatch = match;\r\n if (regexMatch === null) {\r\n resultantOutput.pop();\r\n }\r\n }\r\n var isChildHasTextContent = Array.prototype.some.call(element.children, function (element) {\r\n if (new RegExp('\\\\${([^}]*)}', 'g').exec(element.innerText)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n });\r\n if (resultantOutput && resultantOutput.length && !isChildHasTextContent) {\r\n var _loop_3 = function (i) {\r\n var textPropertyMatch = resultantOutput[i];\r\n // eslint-disable-next-line\r\n var subNode = {};\r\n // eslint-disable-next-line\r\n var textFunction;\r\n if (textPropertyMatch[1].indexOf('?') !== -1 && textPropertyMatch[1].indexOf(':') !== -1) {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n textFunction = new Function('data', 'return ' + textPropertyMatch[1].replace(/\\$/g, 'data.'));\r\n }\r\n else {\r\n // tslint:disable-next-line:no-function-constructor-with-string-args\r\n textFunction = new Function('data', 'return ' + 'data.' + textPropertyMatch[1]);\r\n }\r\n if (isHeader) {\r\n subNode.bindedvalue = textFunction(this_3.headerData);\r\n }\r\n else {\r\n subNode.bindedvalue = textFunction(this_3.templateData);\r\n }\r\n subNode.onChange = function (value) {\r\n element.innerText = element.innerText.replace(subNode.bindedvalue, textFunction(value));\r\n subNode.bindedvalue = textFunction(value);\r\n };\r\n element.innerText = element.innerText.replace(textPropertyMatch[0], subNode.bindedvalue);\r\n this_3.updateContextData(listElement, subNode, isHeader);\r\n };\r\n var this_3 = this;\r\n for (var i = 0; i < resultantOutput.length; i++) {\r\n _loop_3(i);\r\n }\r\n }\r\n };\r\n Virtualization.prototype.reRenderUiVirtualization = function () {\r\n this.wireScrollEvent(true);\r\n if (this.listViewInstance.contentContainer) {\r\n detach(this.listViewInstance.contentContainer);\r\n }\r\n this.listViewInstance.preRender();\r\n // resetting the dom count to 0, to avoid edge case of dataSource suddenly becoming zero\r\n // and then manually adding item using addItem API\r\n this.domItemCount = 0;\r\n this.listViewInstance.header();\r\n this.listViewInstance.setLocalData();\r\n };\r\n Virtualization.prototype.updateUI = function (element, index, targetElement) {\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var onChange = this.isNgTemplate() ? this.onNgChange : this.onChange;\r\n if (this.listViewInstance.template || this.listViewInstance.groupTemplate) {\r\n var curViewDS = this.listViewInstance.curViewDS[index];\r\n // eslint-disable-next-line\r\n element.dataset.uid = (curViewDS[this.listViewInstance.fields.id]) ?\r\n // eslint-disable-next-line\r\n (curViewDS[this.listViewInstance.fields.id]) : ListBase.generateId();\r\n onChange(curViewDS, element, this);\r\n }\r\n else {\r\n this.updateUiContent(element, index);\r\n }\r\n this.changeElementAttributes(element, index);\r\n if (targetElement) {\r\n this.listViewInstance.ulElement.insertBefore(element, targetElement);\r\n }\r\n };\r\n Virtualization.prototype.onNgChange = function (newData, listElement, virtualThis) {\r\n // compile given target element with template for new data\r\n // eslint-disable-next-line\r\n var templateCompiler = compile(virtualThis.listViewInstance.template);\r\n var resultElement = templateCompiler(newData);\r\n while (listElement.lastChild) {\r\n listElement.removeChild(listElement.lastChild);\r\n }\r\n listElement.appendChild(resultElement[0]);\r\n };\r\n Virtualization.prototype.getModuleName = function () {\r\n return 'virtualization';\r\n };\r\n Virtualization.prototype.destroy = function () {\r\n this.wireScrollEvent(true);\r\n };\r\n return Virtualization;\r\n}());\r\nexport { Virtualization };\r\n","/**\n * Sortable Module\n */\nexport * from './sortable';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Base, Event, getUniqueID, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { closest, Draggable, remove, compareElementParent } from '@syncfusion/ej2-base';\r\nimport { addClass, isNullOrUndefined, getComponent, isBlazor } from '@syncfusion/ej2-base';\r\n/**\r\n * Sortable Module provides support to enable sortable functionality in Dom Elements.\r\n * ```html\r\n *
    \r\n *
    Item 1
    \r\n *
    Item 2
    \r\n *
    Item 3
    \r\n *
    Item 4
    \r\n *
    Item 5
    \r\n *
    \r\n * ```\r\n * ```typescript\r\n * let ele: HTMLElement = document.getElementById('sortable');\r\n * let sortObj: Sortable = new Sortable(ele, {});\r\n * ```\r\n */\r\nvar Sortable = /** @class */ (function (_super) {\r\n __extends(Sortable, _super);\r\n /* es-lint enable */\r\n function Sortable(element, options) {\r\n var _this = _super.call(this, options, element) || this;\r\n // eslint-disable-next-line\r\n _this.getHelper = function (e) {\r\n // eslint-disable-next-line prefer-const\r\n var target = _this.getSortableElement(e.sender.target);\r\n if (!_this.isValidTarget(target, _this)) {\r\n return false;\r\n }\r\n var element;\r\n if (_this.helper) {\r\n element = _this.helper({ sender: target, element: e.element });\r\n }\r\n else {\r\n element = target.cloneNode(true);\r\n element.style.width = target.offsetWidth + \"px\";\r\n element.style.height = target.offsetHeight + \"px\";\r\n }\r\n addClass([element], ['e-sortableclone']);\r\n document.body.appendChild(element);\r\n return element;\r\n };\r\n // eslint-disable-next-line\r\n _this.onDrag = function (e) {\r\n _this.trigger('drag', { event: e.event, element: _this.element, target: e.target });\r\n var newInst = _this.getSortableInstance(e.target);\r\n var target = _this.getSortableElement(e.target, newInst);\r\n if ((_this.isValidTarget(target, newInst) || e.target.className.indexOf('e-list-group-item') > -1) && (_this.curTarget !== target ||\r\n !isNullOrUndefined(newInst.placeHolder)) && (newInst.placeHolderElement ? newInst.placeHolderElement !== e.target :\r\n true)) {\r\n if (e.target.className.indexOf('e-list-group-item') > -1) {\r\n target = e.target;\r\n }\r\n _this.curTarget = target;\r\n if (_this.target === target) {\r\n return;\r\n }\r\n var oldIdx = _this.getIndex(newInst.placeHolderElement, newInst);\r\n var placeHolder = _this.getPlaceHolder(target, newInst);\r\n var newIdx = void 0;\r\n if (placeHolder) {\r\n oldIdx = isNullOrUndefined(oldIdx) ? _this.getIndex(_this.target) : oldIdx;\r\n newIdx = _this.getIndex(target, newInst, e.event);\r\n var isPlaceHolderPresent = _this.isPlaceHolderPresent(newInst);\r\n if (isPlaceHolderPresent && oldIdx === newIdx) {\r\n return;\r\n }\r\n if (isPlaceHolderPresent) {\r\n remove(newInst.placeHolderElement);\r\n }\r\n newInst.placeHolderElement = placeHolder;\r\n if (e.target.className.indexOf('e-list-group-item') > -1) {\r\n newInst.element.insertBefore(newInst.placeHolderElement, newInst.element.children[newIdx]);\r\n }\r\n else if (newInst.element !== _this.element && newIdx === newInst.element.childElementCount) {\r\n newInst.element.appendChild(newInst.placeHolderElement);\r\n }\r\n else {\r\n newInst.element.insertBefore(newInst.placeHolderElement, newInst.element.children[newIdx]);\r\n }\r\n _this.refreshDisabled(oldIdx, newIdx, newInst);\r\n }\r\n else {\r\n oldIdx = isNullOrUndefined(oldIdx) ? _this.getIndex(_this.target) :\r\n _this.getIndex(target, newInst) < oldIdx || !oldIdx ? oldIdx : oldIdx - 1;\r\n newIdx = _this.getIndex(target, newInst);\r\n var idx = newInst.element !== _this.element ? newIdx : oldIdx < newIdx ? newIdx + 1 : newIdx;\r\n _this.updateItemClass(newInst);\r\n newInst.element.insertBefore(_this.target, newInst.element.children[idx]);\r\n _this.refreshDisabled(oldIdx, newIdx, newInst);\r\n _this.curTarget = _this.target;\r\n _this.trigger('drop', {\r\n droppedElement: _this.target, element: newInst.element, previousIndex: oldIdx, currentIndex: newIdx,\r\n target: e.target, helper: document.getElementsByClassName('e-sortableclone')[0], event: e.event, scope: _this.scope\r\n });\r\n }\r\n }\r\n newInst = _this.getSortableInstance(_this.curTarget);\r\n if (isNullOrUndefined(target) && e.target !== newInst.placeHolderElement) {\r\n if (_this.isPlaceHolderPresent(newInst)) {\r\n _this.removePlaceHolder(newInst);\r\n }\r\n }\r\n else {\r\n var placeHolders = [].slice.call(document.getElementsByClassName('e-sortable-placeholder'));\r\n var inst_1;\r\n placeHolders.forEach(function (placeHolder) {\r\n inst_1 = _this.getSortableInstance(placeHolder);\r\n if (inst_1.element && inst_1 !== newInst) {\r\n _this.removePlaceHolder(inst_1);\r\n }\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line\r\n _this.onDragStart = function (e) {\r\n _this.target = _this.getSortableElement(e.target);\r\n var cancelDrag = false;\r\n _this.target.classList.add('e-grabbed');\r\n _this.curTarget = _this.target;\r\n e.helper = document.getElementsByClassName('e-sortableclone')[0];\r\n var args = { cancel: false, element: _this.element, target: _this.target };\r\n _this.trigger('beforeDragStart', args, function (observedArgs) {\r\n if (observedArgs.cancel) {\r\n cancelDrag = observedArgs.cancel;\r\n _this.onDragStop(e);\r\n }\r\n });\r\n if (cancelDrag) {\r\n return;\r\n }\r\n if (isBlazor) {\r\n _this.trigger('dragStart', {\r\n event: e.event, element: _this.element, target: _this.target,\r\n bindEvents: e.bindEvents, dragElement: e.dragElement\r\n });\r\n }\r\n else {\r\n _this.trigger('dragStart', { event: e.event, element: _this.element, target: _this.target });\r\n }\r\n };\r\n // eslint-disable-next-line\r\n _this.onDragStop = function (e) {\r\n var dropInst = _this.getSortableInstance(_this.curTarget);\r\n var prevIdx;\r\n var curIdx;\r\n var handled;\r\n prevIdx = _this.getIndex(_this.target);\r\n var isPlaceHolderPresent = _this.isPlaceHolderPresent(dropInst);\r\n if (isPlaceHolderPresent) {\r\n var curIdx_1 = _this.getIndex(dropInst.placeHolderElement, dropInst);\r\n var args = {\r\n previousIndex: prevIdx, currentIndex: curIdx_1, target: e.target, droppedElement: _this.target,\r\n helper: e.helper, cancel: false, handled: false\r\n };\r\n _this.trigger('beforeDrop', args, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n handled = observedArgs.handled;\r\n _this.updateItemClass(dropInst);\r\n if (observedArgs.handled) {\r\n var ele = _this.target.cloneNode(true);\r\n _this.target.classList.remove('e-grabbed');\r\n _this.target = ele;\r\n }\r\n dropInst.element.insertBefore(_this.target, dropInst.placeHolderElement);\r\n var curIdx_2 = _this.getIndex(_this.target, dropInst);\r\n prevIdx = _this === dropInst && (prevIdx - curIdx_2) > 1 ? prevIdx - 1 : prevIdx;\r\n _this.trigger('drop', {\r\n event: e.event, element: dropInst.element, previousIndex: prevIdx, currentIndex: curIdx_2,\r\n target: e.target, helper: e.helper, droppedElement: _this.target, scopeName: _this.scope, handled: handled\r\n });\r\n }\r\n remove(dropInst.placeHolderElement);\r\n });\r\n }\r\n dropInst = _this.getSortableInstance(e.target);\r\n // eslint-disable-next-line prefer-const\r\n curIdx = dropInst.element.childElementCount;\r\n prevIdx = _this.getIndex(_this.target);\r\n if (dropInst.element === e.target || (!isPlaceHolderPresent && _this.curTarget === _this.target)) {\r\n var beforeDropArgs = {\r\n previousIndex: prevIdx, currentIndex: _this.curTarget === _this.target ? prevIdx : curIdx,\r\n target: e.target, droppedElement: _this.target, helper: e.helper, cancel: false\r\n };\r\n _this.trigger('beforeDrop', beforeDropArgs, function (observedArgs) {\r\n if (dropInst.element === e.target && !observedArgs.cancel) {\r\n _this.updateItemClass(dropInst);\r\n dropInst.element.appendChild(_this.target);\r\n _this.trigger('drop', {\r\n event: e.event, element: dropInst.element, previousIndex: prevIdx, currentIndex: curIdx,\r\n target: e.target, helper: e.helper, droppedElement: _this.target, scopeName: _this.scope\r\n });\r\n }\r\n });\r\n }\r\n _this.target.classList.remove('e-grabbed');\r\n _this.target = null;\r\n _this.curTarget = null;\r\n remove(e.helper);\r\n getComponent(_this.element, Draggable).intDestroy(e.event);\r\n };\r\n _this.bind();\r\n return _this;\r\n }\r\n Sortable_1 = Sortable;\r\n Sortable.prototype.bind = function () {\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('sortable');\r\n }\r\n if (!this.itemClass) {\r\n this.itemClass = 'e-sort-item';\r\n this.dataBind();\r\n }\r\n this.initializeDraggable();\r\n };\r\n Sortable.prototype.initializeDraggable = function () {\r\n new Draggable(this.element, {\r\n helper: this.getHelper,\r\n dragStart: this.onDragStart,\r\n drag: this.onDrag,\r\n dragStop: this.onDragStop,\r\n dragTarget: \".\" + this.itemClass,\r\n enableTapHold: true,\r\n tapHoldThreshold: 200,\r\n queryPositionInfo: this.queryPositionInfo,\r\n distance: 5\r\n });\r\n };\r\n Sortable.prototype.getPlaceHolder = function (target, instance) {\r\n if (instance.placeHolder) {\r\n var placeHolderElement = instance.placeHolder({ element: instance.element, grabbedElement: this.target, target: target });\r\n placeHolderElement.classList.add('e-sortable-placeholder');\r\n return placeHolderElement;\r\n }\r\n return null;\r\n };\r\n Sortable.prototype.isValidTarget = function (target, instance) {\r\n return target && compareElementParent(target, instance.element) && target.classList.contains(instance.itemClass) &&\r\n !target.classList.contains('e-disabled');\r\n };\r\n Sortable.prototype.removePlaceHolder = function (instance) {\r\n remove(instance.placeHolderElement);\r\n instance.placeHolderElement = null;\r\n };\r\n Sortable.prototype.updateItemClass = function (instance) {\r\n if (this !== instance) {\r\n this.target.classList.remove(this.itemClass);\r\n this.target.classList.add(instance.itemClass);\r\n }\r\n };\r\n Sortable.prototype.getSortableInstance = function (element) {\r\n element = closest(element, \".e-\" + this.getModuleName());\r\n if (element) {\r\n var inst = getComponent(element, Sortable_1);\r\n return inst.scope && this.scope && inst.scope === this.scope ? inst : this;\r\n }\r\n else {\r\n return this;\r\n }\r\n };\r\n Sortable.prototype.refreshDisabled = function (oldIdx, newIdx, instance) {\r\n if (instance === this) {\r\n var element = void 0;\r\n var increased = oldIdx < newIdx;\r\n var disabledIdx = void 0;\r\n var start = increased ? oldIdx : newIdx;\r\n var end = increased ? newIdx : oldIdx;\r\n while (start <= end) {\r\n element = this.element.children[start];\r\n if (element.classList.contains('e-disabled')) {\r\n disabledIdx = this.getIndex(element);\r\n this.element.insertBefore(element, this.element.children[increased ? disabledIdx + 2 : disabledIdx - 1]);\r\n start = increased ? disabledIdx + 2 : disabledIdx + 1;\r\n }\r\n else {\r\n start++;\r\n }\r\n }\r\n }\r\n };\r\n Sortable.prototype.getIndex = function (target, instance, e) {\r\n if (instance === void 0) { instance = this; }\r\n var idx;\r\n var placeHolderPresent;\r\n [].slice.call(instance.element.children).forEach(function (element, index) {\r\n if (element.classList.contains('e-sortable-placeholder')) {\r\n placeHolderPresent = true;\r\n }\r\n if (element === target) {\r\n idx = index;\r\n if (!isNullOrUndefined(e)) {\r\n if (placeHolderPresent) {\r\n idx -= 1;\r\n }\r\n var offset = target.getBoundingClientRect();\r\n var clientY = offset.bottom - ((offset.bottom - offset.top) / 2);\r\n idx = e.clientY <= clientY ? idx : idx + 1;\r\n }\r\n return;\r\n }\r\n });\r\n return idx;\r\n };\r\n Sortable.prototype.getSortableElement = function (element, instance) {\r\n if (instance === void 0) { instance = this; }\r\n return closest(element, \".\" + instance.itemClass);\r\n };\r\n Sortable.prototype.queryPositionInfo = function (value) {\r\n value.left = pageXOffset ? parseFloat(value.left) - pageXOffset + \"px\" : value.left;\r\n value.top = pageYOffset ? parseFloat(value.top) - pageYOffset + \"px\" : value.top;\r\n return value;\r\n };\r\n Sortable.prototype.isPlaceHolderPresent = function (instance) {\r\n return instance.placeHolderElement && !!closest(instance.placeHolderElement, \"#\" + instance.element.id);\r\n };\r\n /**\r\n * It is used to sort array of elements from source element to destination element.\r\n *\r\n * @param destination - Defines the destination element to which the sortable elements needs to be appended.\r\n *\r\n * If it is null, then the Sortable library element will be considered as destination.\r\n * @param targetIndexes - Specifies the sortable elements indexes which needs to be sorted.\r\n * @param insertBefore - Specifies the index before which the sortable elements needs to be appended.\r\n * If it is null, elements will be appended as last child.\r\n * @function moveTo\r\n * @returns {void}\r\n */\r\n Sortable.prototype.moveTo = function (destination, targetIndexes, insertBefore) {\r\n moveTo(this.element, destination, targetIndexes, insertBefore);\r\n };\r\n /**\r\n * It is used to destroy the Sortable library.\r\n */\r\n Sortable.prototype.destroy = function () {\r\n if (this.itemClass === 'e-sort-item') {\r\n this.itemClass = null;\r\n this.dataBind();\r\n }\r\n getComponent(this.element, Draggable).destroy();\r\n _super.prototype.destroy.call(this);\r\n };\r\n Sortable.prototype.getModuleName = function () {\r\n return 'sortable';\r\n };\r\n Sortable.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'itemClass':\r\n [].slice.call(this.element.children).forEach(function (element) {\r\n if (element.classList.contains(oldProp.itemClass)) {\r\n element.classList.remove(oldProp.itemClass);\r\n }\r\n if (newProp.itemClass) {\r\n element.classList.add(newProp.itemClass);\r\n }\r\n });\r\n break;\r\n }\r\n }\r\n };\r\n var Sortable_1;\r\n __decorate([\r\n Property(false)\r\n ], Sortable.prototype, \"enableAnimation\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Sortable.prototype, \"itemClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Sortable.prototype, \"scope\", void 0);\r\n __decorate([\r\n Property()\r\n ], Sortable.prototype, \"helper\", void 0);\r\n __decorate([\r\n Property()\r\n ], Sortable.prototype, \"placeHolder\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sortable.prototype, \"drag\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sortable.prototype, \"beforeDragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sortable.prototype, \"dragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sortable.prototype, \"beforeDrop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sortable.prototype, \"drop\", void 0);\r\n Sortable = Sortable_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], Sortable);\r\n return Sortable;\r\n}(Base));\r\nexport { Sortable };\r\n/**\r\n * It is used to sort array of elements from source element to destination element.\r\n *\r\n * @private\r\n */\r\nexport function moveTo(from, to, targetIndexes, insertBefore) {\r\n var targetElements = [];\r\n if (!to) {\r\n to = from;\r\n }\r\n if (targetIndexes && targetIndexes.length) {\r\n targetIndexes.forEach(function (index) {\r\n targetElements.push(from.children[index]);\r\n });\r\n }\r\n else {\r\n targetElements = [].slice.call(from.children);\r\n }\r\n if (isNullOrUndefined(insertBefore)) {\r\n targetElements.forEach(function (target) {\r\n to.appendChild(target);\r\n });\r\n }\r\n else {\r\n var insertElement_1 = to.children[insertBefore];\r\n targetElements.forEach(function (target) {\r\n to.insertBefore(target, insertElement_1);\r\n });\r\n }\r\n}\r\n","/**\n * index\n */\nexport * from './src/index';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, Property, Event, KeyboardEvents, rippleEffect } from '@syncfusion/ej2-base';\r\nimport { getUniqueID, compile as templateCompiler } from '@syncfusion/ej2-base';\r\nimport { isVisible, closest, attributes, detach, select, addClass, append } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty, Collection, Animation } from '@syncfusion/ej2-base';\r\nimport { setStyleAttribute as setStyle, Complex } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined as isNOU, formatUnit, selectAll, SanitizeHtmlHelper, isRippleEnabled } from '@syncfusion/ej2-base';\r\nvar CLS_ACRDN_ROOT = 'e-acrdn-root';\r\nvar CLS_ROOT = 'e-accordion';\r\nvar CLS_ITEM = 'e-acrdn-item';\r\nvar CLS_ITEMFOCUS = 'e-item-focus';\r\nvar CLS_ITEMHIDE = 'e-hide';\r\nvar CLS_HEADER = 'e-acrdn-header';\r\nvar CLS_HEADERICN = 'e-acrdn-header-icon';\r\nvar CLS_HEADERCTN = 'e-acrdn-header-content';\r\nvar CLS_CONTENT = 'e-acrdn-panel';\r\nvar CLS_CTENT = 'e-acrdn-content';\r\nvar CLS_TOOGLEICN = 'e-toggle-icon';\r\nvar CLS_COLLAPSEICN = 'e-tgl-collapse-icon e-icons';\r\nvar CLS_EXPANDICN = 'e-expand-icon';\r\nvar CLS_RTL = 'e-rtl';\r\nvar CLS_CTNHIDE = 'e-content-hide';\r\nvar CLS_SLCT = 'e-select';\r\nvar CLS_SLCTED = 'e-selected';\r\nvar CLS_ACTIVE = 'e-active';\r\nvar CLS_ANIMATE = 'e-animate';\r\nvar CLS_DISABLE = 'e-overlay';\r\nvar CLS_TOGANIMATE = 'e-toggle-animation';\r\nvar CLS_NEST = 'e-nested';\r\nvar CLS_EXPANDSTATE = 'e-expand-state';\r\nvar CLS_CONTAINER = 'e-accordion-container';\r\n/**\r\n * Objects used for configuring the Accordion expanding item action properties.\r\n */\r\nvar AccordionActionSettings = /** @class */ (function (_super) {\r\n __extends(AccordionActionSettings, _super);\r\n function AccordionActionSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('SlideDown')\r\n ], AccordionActionSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property(400)\r\n ], AccordionActionSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('linear')\r\n ], AccordionActionSettings.prototype, \"easing\", void 0);\r\n return AccordionActionSettings;\r\n}(ChildProperty));\r\nexport { AccordionActionSettings };\r\n/**\r\n * Objects used for configuring the Accordion animation properties.\r\n */\r\nvar AccordionAnimationSettings = /** @class */ (function (_super) {\r\n __extends(AccordionAnimationSettings, _super);\r\n function AccordionAnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, AccordionActionSettings)\r\n ], AccordionAnimationSettings.prototype, \"collapse\", void 0);\r\n __decorate([\r\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, AccordionActionSettings)\r\n ], AccordionAnimationSettings.prototype, \"expand\", void 0);\r\n return AccordionAnimationSettings;\r\n}(ChildProperty));\r\nexport { AccordionAnimationSettings };\r\n/**\r\n * An item object that is used to configure Accordion items.\r\n */\r\nvar AccordionItem = /** @class */ (function (_super) {\r\n __extends(AccordionItem, _super);\r\n function AccordionItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(null)\r\n ], AccordionItem.prototype, \"content\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AccordionItem.prototype, \"header\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AccordionItem.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], AccordionItem.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], AccordionItem.prototype, \"expanded\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], AccordionItem.prototype, \"visible\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], AccordionItem.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property()\r\n ], AccordionItem.prototype, \"id\", void 0);\r\n return AccordionItem;\r\n}(ChildProperty));\r\nexport { AccordionItem };\r\n/**\r\n * The Accordion is a vertically collapsible content panel that displays one or more panels at a time within the available space.\r\n * ```html\r\n *
    \r\n * \r\n * ```\r\n */\r\nvar Accordion = /** @class */ (function (_super) {\r\n __extends(Accordion, _super);\r\n /**\r\n * Initializes a new instance of the Accordion class.\r\n *\r\n * @param {AccordionModel} options - Specifies Accordion model properties as options.\r\n * @param {string | HTMLElement} element - Specifies the element that is rendered as an Accordion.\r\n */\r\n function Accordion(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n /**\r\n * Contains the keyboard configuration of the Accordion.\r\n */\r\n _this.keyConfigs = {\r\n moveUp: 'uparrow',\r\n moveDown: 'downarrow',\r\n enter: 'enter',\r\n space: 'space',\r\n home: 'home',\r\n end: 'end'\r\n };\r\n return _this;\r\n }\r\n /**\r\n * Removes the control from the DOM and also removes all its related events.\r\n *\r\n * @returns {void}\r\n */\r\n Accordion.prototype.destroy = function () {\r\n var _this = this;\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n var ele = this.element;\r\n _super.prototype.destroy.call(this);\r\n this.unwireEvents();\r\n this.isDestroy = true;\r\n this.restoreContent(null);\r\n [].slice.call(ele.children).forEach(function (el) {\r\n ele.removeChild(el);\r\n });\r\n if (this.trgtEle) {\r\n while (this.ctrlTem.firstElementChild) {\r\n ele.appendChild(this.ctrlTem.firstElementChild);\r\n }\r\n }\r\n ele.classList.remove(CLS_ACRDN_ROOT);\r\n ele.removeAttribute('style');\r\n ['aria-disabled', 'aria-multiselectable', 'role', 'data-ripple'].forEach(function (attrb) {\r\n _this.element.removeAttribute(attrb);\r\n });\r\n if (!this.isNested && isRippleEnabled) {\r\n this.removeRippleEffect();\r\n }\r\n };\r\n Accordion.prototype.preRender = function () {\r\n var nested = closest(this.element, '.' + CLS_CONTENT);\r\n this.isNested = false;\r\n this.templateEle = [];\r\n if (!this.isDestroy) {\r\n this.isDestroy = false;\r\n }\r\n if (!isNOU(nested)) {\r\n nested.classList.add(CLS_NEST);\r\n this.isNested = true;\r\n }\r\n else {\r\n this.element.classList.add(CLS_ACRDN_ROOT);\r\n }\r\n if (this.enableRtl) {\r\n this.add(this.element, CLS_RTL);\r\n }\r\n };\r\n Accordion.prototype.add = function (ele, val) {\r\n ele.classList.add(val);\r\n };\r\n Accordion.prototype.remove = function (ele, val) {\r\n ele.classList.remove(val);\r\n };\r\n /**\r\n * To initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Accordion.prototype.render = function () {\r\n this.initializeHeaderTemplate();\r\n this.initializeItemTemplate();\r\n this.initialize();\r\n this.renderControl();\r\n this.wireEvents();\r\n this.renderComplete();\r\n };\r\n Accordion.prototype.initialize = function () {\r\n var width = formatUnit(this.width);\r\n var height = formatUnit(this.height);\r\n setStyle(this.element, { 'width': width, 'height': height });\r\n var ariaAttr = {\r\n 'aria-disabled': 'false', 'role': 'presentation', 'aria-multiselectable': 'true'\r\n };\r\n if (isNOU(this.initExpand)) {\r\n this.initExpand = [];\r\n }\r\n if (this.expandedIndices.length > 0) {\r\n this.initExpand = this.expandedIndices;\r\n }\r\n attributes(this.element, ariaAttr);\r\n if (this.expandMode === 'Single') {\r\n this.element.setAttribute('aria-multiselectable', 'false');\r\n }\r\n };\r\n Accordion.prototype.renderControl = function () {\r\n this.trgtEle = (this.element.children.length > 0) ? select('div', this.element) : null;\r\n this.renderItems();\r\n this.initItemExpand();\r\n };\r\n Accordion.prototype.wireFocusEvents = function () {\r\n var acrdItem = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM));\r\n for (var _i = 0, acrdItem_1 = acrdItem; _i < acrdItem_1.length; _i++) {\r\n var item = acrdItem_1[_i];\r\n var headerEle = item.querySelector('.' + CLS_HEADER);\r\n if (item.childElementCount > 0 && headerEle) {\r\n EventHandler.clearEvents(headerEle);\r\n EventHandler.add(headerEle, 'focus', this.focusIn, this);\r\n EventHandler.add(headerEle, 'blur', this.focusOut, this);\r\n }\r\n }\r\n };\r\n Accordion.prototype.unwireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n if (!isNOU(this.keyModule)) {\r\n this.keyModule.destroy();\r\n }\r\n };\r\n Accordion.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n if (!this.isNested && !this.isDestroy) {\r\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + CLS_HEADER });\r\n }\r\n if (!this.isNested) {\r\n this.keyModule = new KeyboardEvents(this.element, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n }\r\n };\r\n Accordion.prototype.templateParser = function (template) {\r\n if (template) {\r\n try {\r\n if (document.querySelectorAll(template).length) {\r\n return templateCompiler(document.querySelector(template).innerHTML.trim());\r\n }\r\n }\r\n catch (error) {\r\n return templateCompiler(template);\r\n }\r\n }\r\n return undefined;\r\n };\r\n Accordion.prototype.initializeHeaderTemplate = function () {\r\n if (this.headerTemplate) {\r\n this.headerTemplateFn = this.templateParser(this.headerTemplate);\r\n }\r\n };\r\n Accordion.prototype.initializeItemTemplate = function () {\r\n if (this.itemTemplate) {\r\n this.itemTemplateFn = this.templateParser(this.itemTemplate);\r\n }\r\n };\r\n /* eslint-disable */\r\n Accordion.prototype.getHeaderTemplate = function () {\r\n return this.headerTemplateFn;\r\n };\r\n /* eslint-disable */\r\n Accordion.prototype.getItemTemplate = function () {\r\n return this.itemTemplateFn;\r\n };\r\n Accordion.prototype.focusIn = function (e) {\r\n e.target.parentElement.classList.add(CLS_ITEMFOCUS);\r\n };\r\n Accordion.prototype.focusOut = function (e) {\r\n e.target.parentElement.classList.remove(CLS_ITEMFOCUS);\r\n };\r\n Accordion.prototype.ctrlTemplate = function () {\r\n this.ctrlTem = this.element.cloneNode(true);\r\n var innerEles;\r\n var rootEle = select('.' + CLS_CONTAINER, this.element);\r\n if (rootEle) {\r\n innerEles = rootEle.children;\r\n }\r\n else {\r\n innerEles = this.element.children;\r\n }\r\n var items = [];\r\n /* eslint-disable */\r\n [].slice.call(innerEles).forEach(function (el) {\r\n items.push({\r\n header: (el.childElementCount > 0 && el.children[0]) ? (el.children[0]) : '',\r\n content: (el.childElementCount > 1 && el.children[1]) ? (el.children[1]) : ''\r\n });\r\n el.parentNode.removeChild(el);\r\n });\r\n /* eslint-enable */\r\n if (rootEle) {\r\n this.element.removeChild(rootEle);\r\n }\r\n this.setProperties({ items: items }, true);\r\n };\r\n Accordion.prototype.toggleIconGenerate = function () {\r\n var tglIcon = this.createElement('div', { className: CLS_TOOGLEICN });\r\n var hdrColIcon = this.createElement('span', { className: CLS_COLLAPSEICN });\r\n tglIcon.appendChild(hdrColIcon);\r\n return tglIcon;\r\n };\r\n Accordion.prototype.initItemExpand = function () {\r\n var len = this.initExpand.length;\r\n if (len === 0) {\r\n return;\r\n }\r\n if (this.expandMode === 'Single') {\r\n this.expandItem(true, this.initExpand[len - 1]);\r\n }\r\n else {\r\n for (var i = 0; i < len; i++) {\r\n this.expandItem(true, this.initExpand[i]);\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Accordion.prototype.renderItems = function () {\r\n var _this = this;\r\n var ele = this.element;\r\n var innerItem;\r\n var innerDataSourceItem;\r\n if (!isNOU(this.trgtEle)) {\r\n this.ctrlTemplate();\r\n }\r\n if (this.dataSource.length > 0) {\r\n this.dataSource.forEach(function (item, index) {\r\n innerDataSourceItem = _this.renderInnerItem(item, index);\r\n ele.appendChild(innerDataSourceItem);\r\n if (innerDataSourceItem.childElementCount > 0) {\r\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\r\n EventHandler.add(innerDataSourceItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\r\n }\r\n });\r\n }\r\n else {\r\n var items = this.items;\r\n if (ele && items.length > 0) {\r\n items.forEach(function (item, index) {\r\n innerItem = _this.renderInnerItem(item, index);\r\n ele.appendChild(innerItem);\r\n if (innerItem.childElementCount > 0) {\r\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\r\n EventHandler.add(innerItem.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\r\n }\r\n });\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Accordion.prototype.clickHandler = function (e) {\r\n var trgt = e.target;\r\n var items = this.getItems();\r\n var eventArgs = {};\r\n var tglIcon;\r\n var acrdEle = closest(trgt, '.' + CLS_ROOT);\r\n if (acrdEle !== this.element) {\r\n return;\r\n }\r\n trgt.classList.add('e-target');\r\n var acrdnItem = closest(trgt, '.' + CLS_ITEM);\r\n var acrdnHdr = closest(trgt, '.' + CLS_HEADER);\r\n var acrdnCtn = closest(trgt, '.' + CLS_CONTENT);\r\n if (acrdnItem && (isNOU(acrdnHdr) || isNOU(acrdnCtn))) {\r\n acrdnHdr = acrdnItem.children[0];\r\n acrdnCtn = acrdnItem.children[1];\r\n }\r\n if (acrdnHdr) {\r\n tglIcon = select('.' + CLS_TOOGLEICN, acrdnHdr);\r\n }\r\n var acrdnCtnItem;\r\n if (acrdnHdr) {\r\n acrdnCtnItem = closest(acrdnHdr, '.' + CLS_ITEM);\r\n }\r\n else if (acrdnCtn) {\r\n acrdnCtnItem = closest(acrdnCtn, '.' + CLS_ITEM);\r\n }\r\n var index = this.getIndexByItem(acrdnItem);\r\n if (acrdnCtnItem) {\r\n eventArgs.item = items[this.getIndexByItem(acrdnCtnItem)];\r\n }\r\n eventArgs.originalEvent = e;\r\n var ctnCheck = !isNOU(tglIcon) && acrdnItem.childElementCount <= 1;\r\n if (ctnCheck && (isNOU(acrdnCtn) || !isNOU(select('.' + CLS_HEADER + ' .' + CLS_TOOGLEICN, acrdnCtnItem)))) {\r\n acrdnItem.appendChild(this.contentRendering(index));\r\n this.ariaAttrUpdate(acrdnItem);\r\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\r\n }\r\n else {\r\n this.afterContentRender(trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Accordion.prototype.afterContentRender = function (trgt, eventArgs, acrdnItem, acrdnHdr, acrdnCtn, acrdnCtnItem) {\r\n var _this = this;\r\n var acrdActive = [];\r\n this.trigger('clicked', eventArgs);\r\n var cntclkCheck = (acrdnCtn && !isNOU(select('.e-target', acrdnCtn)));\r\n var inlineAcrdnSel = '.' + CLS_CONTENT + ' .' + CLS_ROOT;\r\n var inlineEleAcrdn = acrdnCtn && !isNOU(select('.' + CLS_ROOT, acrdnCtn)) && isNOU(closest(trgt, inlineAcrdnSel));\r\n var nestContCheck = acrdnCtn && isNOU(select('.' + CLS_ROOT, acrdnCtn)) || !(closest(trgt, '.' + CLS_ROOT) === this.element);\r\n cntclkCheck = cntclkCheck && (inlineEleAcrdn || nestContCheck);\r\n trgt.classList.remove('e-target');\r\n if (trgt.classList.contains(CLS_CONTENT) || trgt.classList.contains(CLS_CTENT) || cntclkCheck) {\r\n return;\r\n }\r\n var acrdcontainer = this.element.querySelector('.' + CLS_CONTAINER);\r\n var acrdnchild = (acrdcontainer) ? acrdcontainer.children : this.element.children;\r\n [].slice.call(acrdnchild).forEach(function (el) {\r\n if (el.classList.contains(CLS_ACTIVE)) {\r\n acrdActive.push(el);\r\n }\r\n });\r\n var acrdAniEle = [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM + ' [' + CLS_ANIMATE + ']'));\r\n if (acrdAniEle.length > 0) {\r\n for (var _i = 0, acrdAniEle_1 = acrdAniEle; _i < acrdAniEle_1.length; _i++) {\r\n var el = acrdAniEle_1[_i];\r\n acrdActive.push(el.parentElement);\r\n }\r\n }\r\n var sameContentCheck = acrdActive.indexOf(acrdnCtnItem) !== -1 && acrdnCtn.getAttribute('e-animate') === 'true';\r\n var sameHeader = false;\r\n if (!isNOU(acrdnItem) && !isNOU(acrdnHdr)) {\r\n var acrdnCtn_1 = select('.' + CLS_CONTENT, acrdnItem);\r\n var acrdnRoot = closest(acrdnItem, '.' + CLS_ACRDN_ROOT);\r\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\r\n if (isNOU(acrdnCtn_1)) {\r\n return;\r\n }\r\n sameHeader = (expandState === acrdnItem);\r\n if (isVisible(acrdnCtn_1) && (!sameContentCheck || acrdnCtnItem.classList.contains(CLS_SLCTED))) {\r\n this.collapse(acrdnCtn_1);\r\n }\r\n else {\r\n if ((acrdActive.length > 0) && this.expandMode === 'Single' && !sameContentCheck) {\r\n acrdActive.forEach(function (el) {\r\n _this.collapse(select('.' + CLS_CONTENT, el));\r\n el.classList.remove(CLS_EXPANDSTATE);\r\n });\r\n }\r\n this.expand(acrdnCtn_1);\r\n }\r\n if (!isNOU(expandState) && !sameHeader) {\r\n expandState.classList.remove(CLS_EXPANDSTATE);\r\n }\r\n }\r\n };\r\n Accordion.prototype.eleMoveFocus = function (action, root, trgt) {\r\n var clst;\r\n var clstItem = closest(trgt, '.' + CLS_ITEM);\r\n if (trgt === root) {\r\n clst = ((action === 'moveUp' ? trgt.lastElementChild : trgt).querySelector('.' + CLS_HEADER));\r\n }\r\n else if (trgt.classList.contains(CLS_HEADER)) {\r\n clstItem = (action === 'moveUp' ? clstItem.previousElementSibling : clstItem.nextElementSibling);\r\n if (clstItem) {\r\n clst = select('.' + CLS_HEADER, clstItem);\r\n }\r\n }\r\n if (clst) {\r\n clst.focus();\r\n }\r\n };\r\n Accordion.prototype.keyActionHandler = function (e) {\r\n var trgt = e.target;\r\n var header = closest(e.target, CLS_HEADER);\r\n if (isNOU(header) && !trgt.classList.contains(CLS_ROOT) && !trgt.classList.contains(CLS_HEADER)) {\r\n return;\r\n }\r\n var clst;\r\n var root = this.element;\r\n var content;\r\n switch (e.action) {\r\n case 'moveUp':\r\n this.eleMoveFocus(e.action, root, trgt);\r\n break;\r\n case 'moveDown':\r\n this.eleMoveFocus(e.action, root, trgt);\r\n break;\r\n case 'space':\r\n case 'enter':\r\n content = trgt.nextElementSibling;\r\n if (!isNOU(content) && content.classList.contains(CLS_CONTENT)) {\r\n if (content.getAttribute('e-animate') !== 'true') {\r\n trgt.click();\r\n }\r\n }\r\n else {\r\n trgt.click();\r\n }\r\n break;\r\n case 'home':\r\n case 'end':\r\n clst = e.action === 'home' ? root.firstElementChild.children[0] : root.lastElementChild.children[0];\r\n clst.focus();\r\n break;\r\n }\r\n };\r\n Accordion.prototype.headerEleGenerate = function () {\r\n var header = this.createElement('div', { className: CLS_HEADER, id: getUniqueID('acrdn_header') });\r\n var items = this.getItems();\r\n var ariaAttr = {\r\n 'tabindex': '0', 'role': 'heading', 'aria-selected': 'false', 'aria-label': 'collapsed',\r\n 'aria-disabled': 'false', 'aria-level': items.length.toString()\r\n };\r\n attributes(header, ariaAttr);\r\n return header;\r\n };\r\n Accordion.prototype.renderInnerItem = function (item, index) {\r\n var innerEle = this.createElement('div', { className: CLS_ITEM });\r\n innerEle.id = getUniqueID('acrdn_item');\r\n if (isNOU(item.id)) {\r\n item.id = innerEle.id;\r\n }\r\n attributes(innerEle, { 'aria-expanded': 'false', 'role': 'row' });\r\n if (this.headerTemplate) {\r\n var ctnEle = this.headerEleGenerate();\r\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\r\n ctnEle.appendChild(hdrEle);\r\n append(this.getHeaderTemplate()(item, this, 'headerTemplate', this.element.id + '_headerTemplate', false), hdrEle);\r\n innerEle.appendChild(ctnEle);\r\n ctnEle.appendChild(this.toggleIconGenerate());\r\n this.add(innerEle, CLS_SLCT);\r\n return innerEle;\r\n }\r\n if (item.header && this.angularnativeCondiCheck(item, 'header')) {\r\n if (this.enableHtmlSanitizer && typeof (item.header) === 'string') {\r\n item.header = SanitizeHtmlHelper.sanitize(item.header);\r\n }\r\n var ctnEle = this.headerEleGenerate();\r\n var hdrEle = this.createElement('div', { className: CLS_HEADERCTN });\r\n ctnEle.appendChild(hdrEle);\r\n ctnEle.appendChild(this.fetchElement(hdrEle, item.header, index, true));\r\n innerEle.appendChild(ctnEle);\r\n }\r\n var hdr = select('.' + CLS_HEADER, innerEle);\r\n if (item.expanded && !isNOU(index) && (!this.enablePersistence)) {\r\n if (this.initExpand.indexOf(index) === -1) {\r\n this.initExpand.push(index);\r\n }\r\n }\r\n if (item.cssClass) {\r\n addClass([innerEle], item.cssClass.split(' '));\r\n }\r\n if (item.disabled) {\r\n addClass([innerEle], CLS_DISABLE);\r\n }\r\n if (item.visible === false) {\r\n addClass([innerEle], CLS_ITEMHIDE);\r\n }\r\n if (item.iconCss) {\r\n var hdrIcnEle = this.createElement('div', { className: CLS_HEADERICN });\r\n var icon = this.createElement('span', { className: item.iconCss + ' e-icons' });\r\n hdrIcnEle.appendChild(icon);\r\n if (isNOU(hdr)) {\r\n hdr = this.headerEleGenerate();\r\n hdr.appendChild(hdrIcnEle);\r\n innerEle.appendChild(hdr);\r\n }\r\n else {\r\n hdr.insertBefore(hdrIcnEle, hdr.childNodes[0]);\r\n }\r\n }\r\n if (item.content && this.angularnativeCondiCheck(item, 'content')) {\r\n var hdrIcon = this.toggleIconGenerate();\r\n if (isNOU(hdr)) {\r\n hdr = this.headerEleGenerate();\r\n innerEle.appendChild(hdr);\r\n }\r\n hdr.appendChild(hdrIcon);\r\n this.add(innerEle, CLS_SLCT);\r\n }\r\n return innerEle;\r\n };\r\n Accordion.prototype.angularnativeCondiCheck = function (item, prop) {\r\n var property = prop === 'content' ? item.content : item.header;\r\n var content = property;\r\n if (this.isAngular && !isNOU(content.elementRef)) {\r\n var data = content.elementRef.nativeElement.data;\r\n if (isNOU(data) || data === '' || (data.indexOf('bindings=') === -1)) {\r\n return true;\r\n }\r\n var parseddata = JSON.parse(content.elementRef.nativeElement.data.replace('bindings=', ''));\r\n if (!isNOU(parseddata) && parseddata['ng-reflect-ng-if'] === 'false') {\r\n return false;\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Accordion.prototype.fetchElement = function (ele, value, index, isHeader) {\r\n /* eslint-disable */\r\n var templateFn;\r\n var temString;\r\n try {\r\n if (document.querySelectorAll(value).length && value !== 'Button') {\r\n var eleVal = document.querySelector(value);\r\n temString = eleVal.outerHTML.trim();\r\n ele.appendChild(eleVal);\r\n eleVal.style.display = '';\r\n }\r\n }\r\n catch (e) {\r\n if (typeof (value) === 'string') {\r\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\r\n /* eslint-disable */\r\n }\r\n else if (!isNOU(this.trgtEle) && (value instanceof (HTMLElement))) {\r\n ele.appendChild(value);\r\n ele.firstElementChild.style.display = '';\r\n /* eslint-enable */\r\n }\r\n else {\r\n templateFn = templateCompiler(value);\r\n }\r\n }\r\n var tempArray;\r\n if (!isNOU(templateFn)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n var templateProps = void 0;\r\n var templateName = void 0;\r\n if (ele.classList.contains(CLS_HEADERCTN)) {\r\n templateProps = this.element.id + index + '_header';\r\n templateName = 'header';\r\n }\r\n else if (ele.classList.contains(CLS_CTENT)) {\r\n templateProps = this.element.id + index + '_content';\r\n templateName = 'content';\r\n }\r\n tempArray = templateFn({}, this, templateName, templateProps, this.isStringTemplate);\r\n }\r\n if (!isNOU(tempArray) && tempArray.length > 0 && !(isNOU(tempArray[0].tagName) && tempArray.length === 1)) {\r\n [].slice.call(tempArray).forEach(function (el) {\r\n if (!isNOU(el.tagName)) {\r\n el.style.display = '';\r\n }\r\n ele.appendChild(el);\r\n });\r\n }\r\n else if (ele.childElementCount === 0) {\r\n ele.innerHTML = SanitizeHtmlHelper.sanitize(value);\r\n }\r\n if (!isNOU(temString)) {\r\n if (this.templateEle.indexOf(value) === -1) {\r\n this.templateEle.push(value);\r\n }\r\n }\r\n return ele;\r\n };\r\n Accordion.prototype.ariaAttrUpdate = function (itemEle) {\r\n var header = select('.' + CLS_HEADER, itemEle);\r\n var content = select('.' + CLS_CONTENT, itemEle);\r\n header.setAttribute('aria-controls', content.id);\r\n content.setAttribute('aria-labelledby', header.id);\r\n content.setAttribute('role', 'definition');\r\n };\r\n Accordion.prototype.contentRendering = function (index) {\r\n var itemcnt = this.createElement('div', { className: CLS_CONTENT + ' ' + CLS_CTNHIDE, id: getUniqueID('acrdn_panel') });\r\n attributes(itemcnt, { 'aria-hidden': 'true' });\r\n var ctn = this.createElement('div', { className: CLS_CTENT });\r\n if (this.dataSource.length > 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n append(this.getItemTemplate()(this.dataSource[index], this, 'itemTemplate', this.element.id + '_itemTemplate', false), ctn);\r\n itemcnt.appendChild(ctn);\r\n }\r\n else {\r\n if (this.enableHtmlSanitizer && typeof (this.items[index].content)) {\r\n this.items[index].content = SanitizeHtmlHelper.sanitize(this.items[index].content);\r\n }\r\n itemcnt.appendChild(this.fetchElement(ctn, this.items[index].content, index, false));\r\n }\r\n return itemcnt;\r\n };\r\n Accordion.prototype.expand = function (trgt) {\r\n var _this = this;\r\n var items = this.getItems();\r\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\r\n if (isNOU(trgt) || (isVisible(trgt) && trgt.getAttribute('e-animate') !== 'true') || trgtItemEle.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n var acrdnRoot = closest(trgtItemEle, '.' + CLS_ACRDN_ROOT);\r\n var expandState = acrdnRoot.querySelector('.' + CLS_EXPANDSTATE);\r\n var animation = {\r\n name: this.animation.expand.effect,\r\n duration: this.animation.expand.duration,\r\n timingFunction: this.animation.expand.easing\r\n };\r\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\r\n var eventArgs = {\r\n element: trgtItemEle,\r\n item: items[this.getIndexByItem(trgtItemEle)],\r\n index: this.getIndexByItem(trgtItemEle),\r\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\r\n isExpanded: true\r\n };\r\n this.trigger('expanding', eventArgs, function (expandArgs) {\r\n if (!expandArgs.cancel) {\r\n icon.classList.add(CLS_TOGANIMATE);\r\n _this.expandedItemsPush(trgtItemEle);\r\n if (!isNOU(expandState)) {\r\n expandState.classList.remove(CLS_EXPANDSTATE);\r\n }\r\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\r\n if ((animation.name === 'None')) {\r\n _this.expandProgress('begin', icon, trgt, trgtItemEle, expandArgs);\r\n _this.expandProgress('end', icon, trgt, trgtItemEle, expandArgs);\r\n }\r\n else {\r\n _this.expandAnimation(animation.name, icon, trgt, trgtItemEle, animation, expandArgs);\r\n }\r\n }\r\n });\r\n };\r\n Accordion.prototype.expandAnimation = function (ef, icn, trgt, trgtItemEle, animate, args) {\r\n var _this = this;\r\n var height;\r\n this.lastActiveItemId = trgtItemEle.id;\r\n if (ef === 'SlideDown') {\r\n animate.begin = function () {\r\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\r\n trgt.style.position = 'absolute';\r\n height = trgtItemEle.offsetHeight;\r\n trgt.style.maxHeight = (trgt.offsetHeight) + 'px';\r\n trgtItemEle.style.maxHeight = '';\r\n };\r\n animate.progress = function () {\r\n trgtItemEle.style.minHeight = (height + trgt.offsetHeight) + 'px';\r\n };\r\n animate.end = function () {\r\n setStyle(trgt, { 'position': '', 'maxHeight': '' });\r\n trgtItemEle.style.minHeight = '';\r\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\r\n };\r\n }\r\n else {\r\n animate.begin = function () {\r\n _this.expandProgress('begin', icn, trgt, trgtItemEle, args);\r\n };\r\n animate.end = function () {\r\n _this.expandProgress('end', icn, trgt, trgtItemEle, args);\r\n };\r\n }\r\n new Animation(animate).animate(trgt);\r\n };\r\n Accordion.prototype.expandProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\r\n this.remove(trgt, CLS_CTNHIDE);\r\n this.add(trgtItemEle, CLS_SLCTED);\r\n this.add(icon, CLS_EXPANDICN);\r\n if (progress === 'end') {\r\n this.add(trgtItemEle, CLS_ACTIVE);\r\n trgt.setAttribute('aria-hidden', 'false');\r\n attributes(trgtItemEle, { 'aria-expanded': 'true' });\r\n attributes(trgt.previousElementSibling, { 'aria-selected': 'true', 'aria-label': 'expanded' });\r\n icon.classList.remove(CLS_TOGANIMATE);\r\n this.trigger('expanded', eventArgs);\r\n }\r\n };\r\n Accordion.prototype.expandedItemsPush = function (item) {\r\n var index = this.getIndexByItem(item);\r\n if (this.expandedIndices.indexOf(index) === -1) {\r\n var temp = [].slice.call(this.expandedIndices);\r\n temp.push(index);\r\n this.setProperties({ expandedIndices: temp }, true);\r\n }\r\n };\r\n Accordion.prototype.getIndexByItem = function (item) {\r\n var itemEle = this.getItemElements();\r\n return [].slice.call(itemEle).indexOf(item);\r\n };\r\n Accordion.prototype.getItemElements = function () {\r\n var itemEle = [];\r\n var itemCollection = this.element.children;\r\n [].slice.call(itemCollection).forEach(function (el) {\r\n if (el.classList.contains(CLS_ITEM)) {\r\n itemEle.push(el);\r\n }\r\n });\r\n return itemEle;\r\n };\r\n Accordion.prototype.expandedItemsPop = function (item) {\r\n var index = this.getIndexByItem(item);\r\n var temp = [].slice.call(this.expandedIndices);\r\n temp.splice(temp.indexOf(index), 1);\r\n this.setProperties({ expandedIndices: temp }, true);\r\n };\r\n Accordion.prototype.collapse = function (trgt) {\r\n var _this = this;\r\n var items = this.getItems();\r\n var trgtItemEle = closest(trgt, '.' + CLS_ITEM);\r\n if (isNOU(trgt) || !isVisible(trgt) || trgtItemEle.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n var animation = {\r\n name: this.animation.collapse.effect,\r\n duration: this.animation.collapse.duration,\r\n timingFunction: this.animation.collapse.easing\r\n };\r\n var icon = select('.' + CLS_TOOGLEICN, trgtItemEle).firstElementChild;\r\n var eventArgs = {\r\n element: trgtItemEle,\r\n item: items[this.getIndexByItem(trgtItemEle)],\r\n index: this.getIndexByItem(trgtItemEle),\r\n content: trgtItemEle.querySelector('.' + CLS_CONTENT),\r\n isExpanded: false\r\n };\r\n this.trigger('expanding', eventArgs, function (expandArgs) {\r\n if (!expandArgs.cancel) {\r\n _this.expandedItemsPop(trgtItemEle);\r\n trgtItemEle.classList.add(CLS_EXPANDSTATE);\r\n icon.classList.add(CLS_TOGANIMATE);\r\n if ((animation.name === 'None')) {\r\n _this.collapseProgress('begin', icon, trgt, trgtItemEle, expandArgs);\r\n _this.collapseProgress('end', icon, trgt, trgtItemEle, expandArgs);\r\n }\r\n else {\r\n _this.collapseAnimation(animation.name, trgt, trgtItemEle, icon, animation, expandArgs);\r\n }\r\n }\r\n });\r\n };\r\n Accordion.prototype.collapseAnimation = function (ef, trgt, trgtItEl, icn, animate, args) {\r\n var _this = this;\r\n var height;\r\n var trgtHeight;\r\n var itemHeight;\r\n var remain;\r\n this.lastActiveItemId = trgtItEl.id;\r\n if (ef === 'SlideUp') {\r\n animate.begin = function () {\r\n itemHeight = trgtItEl.offsetHeight;\r\n trgtItEl.style.minHeight = itemHeight + 'px';\r\n trgt.style.position = 'absolute';\r\n height = trgtItEl.offsetHeight;\r\n trgtHeight = trgt.offsetHeight;\r\n trgt.style.maxHeight = trgtHeight + 'px';\r\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\r\n };\r\n animate.progress = function () {\r\n remain = ((height - (trgtHeight - trgt.offsetHeight)));\r\n if (remain < itemHeight) {\r\n trgtItEl.style.minHeight = remain + 'px';\r\n }\r\n };\r\n animate.end = function () {\r\n trgt.style.display = 'none';\r\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\r\n trgtItEl.style.minHeight = '';\r\n setStyle(trgt, { 'position': '', 'maxHeight': '', 'display': '' });\r\n };\r\n }\r\n else {\r\n animate.begin = function () {\r\n _this.collapseProgress('begin', icn, trgt, trgtItEl, args);\r\n };\r\n animate.end = function () {\r\n _this.collapseProgress('end', icn, trgt, trgtItEl, args);\r\n };\r\n }\r\n new Animation(animate).animate(trgt);\r\n };\r\n Accordion.prototype.collapseProgress = function (progress, icon, trgt, trgtItemEle, eventArgs) {\r\n this.remove(icon, CLS_EXPANDICN);\r\n this.remove(trgtItemEle, CLS_SLCTED);\r\n if (progress === 'end') {\r\n this.add(trgt, CLS_CTNHIDE);\r\n icon.classList.remove(CLS_TOGANIMATE);\r\n this.remove(trgtItemEle, CLS_ACTIVE);\r\n trgt.setAttribute('aria-hidden', 'true');\r\n attributes(trgtItemEle, { 'aria-expanded': 'false' });\r\n attributes(trgt.previousElementSibling, { 'aria-selected': 'false', 'aria-label': 'collapsed' });\r\n this.trigger('expanded', eventArgs);\r\n }\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - It returns the current module name.\r\n * @private\r\n */\r\n Accordion.prototype.getModuleName = function () {\r\n return 'accordion';\r\n };\r\n Accordion.prototype.itemAttribUpdate = function () {\r\n var items = this.getItems();\r\n var itemEle = this.getItemElements();\r\n var itemLen = items.length;\r\n itemEle.forEach(function (ele) {\r\n select('.' + CLS_HEADER, ele).setAttribute('aria-level', '' + itemLen);\r\n });\r\n };\r\n Accordion.prototype.getItems = function () {\r\n var items;\r\n if (this.itemTemplate && this.headerTemplate) {\r\n items = this.dataSource;\r\n }\r\n else {\r\n items = this.items;\r\n }\r\n return items;\r\n };\r\n /**\r\n * Adds new item to the Accordion with the specified index of the Accordion.\r\n *\r\n * @param {AccordionItemModel | AccordionItemModel[] | Object | Object[]} item - Item array that is to be added to the Accordion.\r\n * @param {number} index - Number value that determines where the item should be added.\r\n * By default, item is added at the last index if the index is not specified.\r\n * @returns {void}\r\n */\r\n Accordion.prototype.addItem = function (item, index) {\r\n var _this = this;\r\n var ele = this.element;\r\n var itemEle = this.getItemElements();\r\n var items = this.getItems();\r\n if (isNOU(index)) {\r\n index = items.length;\r\n }\r\n if (ele.childElementCount >= index) {\r\n var addItems = (item instanceof Array) ? item : [item];\r\n addItems.forEach(function (addItem, i) {\r\n var itemIndex = index + i;\r\n items.splice(itemIndex, 0, addItem);\r\n var innerItemEle = _this.renderInnerItem(addItem, itemIndex);\r\n if (ele.childElementCount === itemIndex) {\r\n ele.appendChild(innerItemEle);\r\n }\r\n else {\r\n ele.insertBefore(innerItemEle, itemEle[itemIndex]);\r\n }\r\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'focus', _this.focusIn, _this);\r\n EventHandler.add(innerItemEle.querySelector('.' + CLS_HEADER), 'blur', _this.focusOut, _this);\r\n _this.itemAttribUpdate();\r\n _this.expandedIndices = [];\r\n _this.expandedItemRefresh(ele);\r\n if (addItem && addItem.expanded) {\r\n _this.expandItem(true, itemIndex);\r\n }\r\n });\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Accordion.prototype.expandedItemRefresh = function (ele) {\r\n var _this = this;\r\n var itemEle = this.getItemElements();\r\n [].slice.call(itemEle).forEach(function (el) {\r\n if (el.classList.contains(CLS_SLCTED)) {\r\n _this.expandedItemsPush(el);\r\n }\r\n });\r\n };\r\n /**\r\n * Dynamically removes item from Accordion.\r\n *\r\n * @param {number} index - Number value that determines which item should be removed.\r\n * @returns {void}.\r\n */\r\n Accordion.prototype.removeItem = function (index) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.clearTemplate(['headerTemplate', 'itemTemplate'], index);\r\n }\r\n var itemEle = this.getItemElements();\r\n var ele = itemEle[index];\r\n var items = this.getItems();\r\n if (isNOU(ele)) {\r\n return;\r\n }\r\n this.restoreContent(index);\r\n detach(ele);\r\n items.splice(index, 1);\r\n this.itemAttribUpdate();\r\n this.expandedIndices = [];\r\n this.expandedItemRefresh(this.element);\r\n };\r\n /**\r\n * Sets focus to the specified index item header in Accordion.\r\n *\r\n * @param {number} index - Number value that determines which item should be focused.\r\n * @returns {void}.\r\n */\r\n Accordion.prototype.select = function (index) {\r\n var itemEle = this.getItemElements();\r\n var ele = itemEle[index];\r\n if (isNOU(ele) || isNOU(select('.' + CLS_HEADER, ele))) {\r\n return;\r\n }\r\n ele.children[0].focus();\r\n };\r\n /**\r\n * Shows or hides the specified item from Accordion.\r\n *\r\n * @param {number} index - Number value that determines which item should be hidden/shown.\r\n * @param {boolean} isHidden - Boolean value that determines the action either hide (true) or show (false). Default value is false.\r\n * If the `isHidden` value is false, the item is shown or else item it is hidden.\r\n * @returns {void}.\r\n */\r\n Accordion.prototype.hideItem = function (index, isHidden) {\r\n var itemEle = this.getItemElements();\r\n var ele = itemEle[index];\r\n if (isNOU(ele)) {\r\n return;\r\n }\r\n if (isNOU(isHidden)) {\r\n isHidden = true;\r\n }\r\n if (isHidden) {\r\n this.add(ele, CLS_ITEMHIDE);\r\n }\r\n else {\r\n this.remove(ele, CLS_ITEMHIDE);\r\n }\r\n };\r\n /**\r\n * Enables/Disables the specified Accordion item.\r\n *\r\n * @param {number} index - Number value that determines which item should be enabled/disabled.\r\n * @param {boolean} isEnable - Boolean value that determines the action as enable (true) or disable (false).\r\n * If the `isEnable` value is true, the item is enabled or else it is disabled.\r\n * @returns {void}.\r\n */\r\n Accordion.prototype.enableItem = function (index, isEnable) {\r\n var itemEle = this.getItemElements();\r\n var ele = itemEle[index];\r\n if (isNOU(ele)) {\r\n return;\r\n }\r\n var eleHeader = ele.firstElementChild;\r\n if (isEnable) {\r\n this.remove(ele, CLS_DISABLE);\r\n attributes(eleHeader, { 'tabindex': '0', 'aria-disabled': 'false' });\r\n eleHeader.focus();\r\n }\r\n else {\r\n if (ele.classList.contains(CLS_ACTIVE)) {\r\n this.expandItem(false, index);\r\n this.eleMoveFocus('movedown', this.element, eleHeader);\r\n }\r\n this.add(ele, CLS_DISABLE);\r\n eleHeader.setAttribute('aria-disabled', 'true');\r\n eleHeader.removeAttribute('tabindex');\r\n }\r\n };\r\n /**\r\n * Expands/Collapses the specified Accordion item.\r\n *\r\n * @param {boolean} isExpand - Boolean value that determines the action as expand or collapse.\r\n * @param {number} index - Number value that determines which item should be expanded/collapsed.`index` is optional parameter.\r\n * Without Specifying index, based on the `isExpand` value all Accordion item can be expanded or collapsed.\r\n * @returns {void}.\r\n */\r\n Accordion.prototype.expandItem = function (isExpand, index) {\r\n var _this = this;\r\n var itemEle = this.getItemElements();\r\n if (isNOU(index)) {\r\n if (this.expandMode === 'Single' && isExpand) {\r\n var ele = itemEle[itemEle.length - 1];\r\n this.itemExpand(isExpand, ele, this.getIndexByItem(ele));\r\n }\r\n else {\r\n var item = select('#' + this.lastActiveItemId, this.element);\r\n [].slice.call(itemEle).forEach(function (el) {\r\n _this.itemExpand(isExpand, el, _this.getIndexByItem(el));\r\n el.classList.remove(CLS_EXPANDSTATE);\r\n });\r\n var expandedItem = select('.' + CLS_EXPANDSTATE, this.element);\r\n if (expandedItem) {\r\n expandedItem.classList.remove(CLS_EXPANDSTATE);\r\n }\r\n if (item) {\r\n item.classList.add(CLS_EXPANDSTATE);\r\n }\r\n }\r\n }\r\n else {\r\n var ele = itemEle[index];\r\n if (isNOU(ele) || !ele.classList.contains(CLS_SLCT) || (ele.classList.contains(CLS_ACTIVE) && isExpand)) {\r\n return;\r\n }\r\n else {\r\n if (this.expandMode === 'Single') {\r\n this.expandItem(false);\r\n }\r\n this.itemExpand(isExpand, ele, index);\r\n }\r\n }\r\n };\r\n Accordion.prototype.itemExpand = function (isExpand, ele, index) {\r\n var ctn = ele.children[1];\r\n if (ele.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n if (isNOU(ctn) && isExpand) {\r\n ctn = this.contentRendering(index);\r\n ele.appendChild(ctn);\r\n this.ariaAttrUpdate(ele);\r\n this.expand(ctn);\r\n }\r\n else if (!isNOU(ctn)) {\r\n if (isExpand) {\r\n this.expand(ctn);\r\n }\r\n else {\r\n this.collapse(ctn);\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Accordion.prototype.destroyItems = function () {\r\n this.restoreContent(null);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) {\r\n detach(el);\r\n });\r\n };\r\n Accordion.prototype.restoreContent = function (index) {\r\n var ctnElePos;\r\n if (isNOU(index)) {\r\n ctnElePos = this.element;\r\n }\r\n else {\r\n ctnElePos = this.element.querySelectorAll('.' + CLS_ITEM)[index];\r\n }\r\n this.templateEle.forEach(function (eleStr) {\r\n if (!isNOU(ctnElePos.querySelector(eleStr))) {\r\n document.body.appendChild(ctnElePos.querySelector(eleStr)).style.display = 'none';\r\n }\r\n });\r\n };\r\n Accordion.prototype.updateItem = function (item, index) {\r\n if (!isNOU(item)) {\r\n var items = this.getItems();\r\n var itemObj = items[index];\r\n items.splice(index, 1);\r\n this.restoreContent(index);\r\n detach(item);\r\n this.addItem(itemObj, index);\r\n }\r\n };\r\n Accordion.prototype.setTemplate = function (template, toElement, index) {\r\n toElement.innerHTML = '';\r\n this.templateCompile(toElement, template, index);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n // eslint-disable-next-line\r\n Accordion.prototype.templateCompile = function (ele, cnt, index) {\r\n var tempEle = this.createElement('div');\r\n this.fetchElement(tempEle, cnt, index, false);\r\n if (tempEle.childNodes.length !== 0) {\r\n [].slice.call(tempEle.childNodes).forEach(function (childEle) {\r\n ele.appendChild(childEle);\r\n });\r\n }\r\n };\r\n Accordion.prototype.getPersistData = function () {\r\n var keyEntity = ['expandedIndices'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\r\n *\r\n * @param {AccordionModel} newProp - It contains the new value of data.\r\n * @param {AccordionModel} oldProp - It contains the old value of data.\r\n * @returns {void}\r\n * @private\r\n */\r\n Accordion.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var acrdn = this.element;\r\n var isRefresh = false;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'items':\r\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\r\n var changedProp = Object.keys(newProp.items);\r\n for (var j = 0; j < changedProp.length; j++) {\r\n var index = parseInt(Object.keys(newProp.items)[j], 10);\r\n var property = Object.keys(newProp.items[index])[0];\r\n var item = selectAll('.' + CLS_ITEM, this.element)[index];\r\n var oldVal = Object(oldProp.items[index])[property];\r\n var newVal = Object(newProp.items[index])[property];\r\n var temp = property;\r\n if (temp === 'header' || temp === 'iconCss' || temp === 'expanded' || ((temp === 'content') && (oldVal === ''))) {\r\n this.updateItem(item, index);\r\n }\r\n if (property === 'cssClass' && !isNOU(item)) {\r\n item.classList.remove(oldVal);\r\n item.classList.add(newVal);\r\n }\r\n if (property === 'visible' && !isNOU(item)) {\r\n if (Object(newProp.items[index])[property] === false) {\r\n item.classList.add(CLS_ITEMHIDE);\r\n }\r\n else {\r\n item.classList.remove(CLS_ITEMHIDE);\r\n }\r\n }\r\n if (property === 'disabled' && !isNOU(item)) {\r\n this.enableItem(index, !newVal);\r\n }\r\n if (property === 'content' && !isNOU(item) && item.children.length === 2) {\r\n if (typeof newVal === 'function') {\r\n var activeContent = item.querySelector('.' + CLS_CTENT);\r\n activeContent.innerHTML = '';\r\n this.setTemplate(newVal, activeContent, index);\r\n }\r\n else {\r\n if (item.classList.contains(CLS_SLCTED)) {\r\n this.expandItem(false, index);\r\n }\r\n detach(item.querySelector('.' + CLS_CONTENT));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n isRefresh = true;\r\n }\r\n break;\r\n case 'dataSource':\r\n case 'expandedIndices':\r\n if (this.expandedIndices === null) {\r\n this.expandedIndices = [];\r\n }\r\n isRefresh = true;\r\n break;\r\n case 'headerTemplate':\r\n this.initializeHeaderTemplate();\r\n isRefresh = true;\r\n break;\r\n case 'itemTemplate':\r\n this.initializeItemTemplate();\r\n isRefresh = true;\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n this.add(acrdn, CLS_RTL);\r\n }\r\n else {\r\n this.remove(acrdn, CLS_RTL);\r\n }\r\n break;\r\n case 'height':\r\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\r\n break;\r\n case 'width':\r\n setStyle(this.element, { 'width': formatUnit(newProp.width) });\r\n break;\r\n case 'expandMode':\r\n if (newProp.expandMode === 'Single') {\r\n this.element.setAttribute('aria-multiselectable', 'false');\r\n if (this.expandedIndices.length > 1) {\r\n this.expandItem(false);\r\n }\r\n }\r\n else {\r\n this.element.setAttribute('aria-multiselectable', 'true');\r\n }\r\n break;\r\n }\r\n }\r\n if (isRefresh) {\r\n this.initExpand = [];\r\n if (this.expandedIndices.length > 0) {\r\n this.initExpand = this.expandedIndices;\r\n }\r\n this.destroyItems();\r\n this.renderItems();\r\n this.initItemExpand();\r\n }\r\n };\r\n __decorate([\r\n Collection([], AccordionItem)\r\n ], Accordion.prototype, \"items\", void 0);\r\n __decorate([\r\n Property([])\r\n ], Accordion.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property()\r\n ], Accordion.prototype, \"itemTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Accordion.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], Accordion.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Accordion.prototype, \"height\", void 0);\r\n __decorate([\r\n Property([])\r\n ], Accordion.prototype, \"expandedIndices\", void 0);\r\n __decorate([\r\n Property('Multiple')\r\n ], Accordion.prototype, \"expandMode\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Accordion.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Complex({}, AccordionAnimationSettings)\r\n ], Accordion.prototype, \"animation\", void 0);\r\n __decorate([\r\n Event()\r\n ], Accordion.prototype, \"clicked\", void 0);\r\n __decorate([\r\n Event()\r\n ], Accordion.prototype, \"expanding\", void 0);\r\n __decorate([\r\n Event()\r\n ], Accordion.prototype, \"expanded\", void 0);\r\n __decorate([\r\n Event()\r\n ], Accordion.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Accordion.prototype, \"destroyed\", void 0);\r\n Accordion = __decorate([\r\n NotifyPropertyChanges\r\n ], Accordion);\r\n return Accordion;\r\n}(Component));\r\nexport { Accordion };\r\n","/**\n * Accordion all modules\n */\nexport * from './accordion';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, NotifyPropertyChanges, ChildProperty, Property, Collection, append, extend, Event, EventHandler, closest, addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nvar ICONRIGHT = 'e-icon-right';\r\nvar ITEMTEXTCLASS = 'e-breadcrumb-text';\r\nvar ICONCLASS = 'e-breadcrumb-icon';\r\nvar BreadcrumbItem = /** @class */ (function (_super) {\r\n __extends(BreadcrumbItem, _super);\r\n function BreadcrumbItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], BreadcrumbItem.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('')\r\n ], BreadcrumbItem.prototype, \"url\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], BreadcrumbItem.prototype, \"iconCss\", void 0);\r\n return BreadcrumbItem;\r\n}(ChildProperty));\r\nexport { BreadcrumbItem };\r\n/**\r\n * Breadcrumb is a graphical user interface that helps to identify or highlight the current location within a hierarchical structure of websites.\r\n * The aim is to make the user aware of their current position in a hierarchy of website links.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Breadcrumb = /** @class */ (function (_super) {\r\n __extends(Breadcrumb, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @private\r\n * @param {BreadcrumbModel} options - Specifies the Breadcrumb model.\r\n * @param {string | HTMLElement} element - Specifies the element.\r\n */\r\n function Breadcrumb(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * @private\r\n * @returns {void}\r\n */\r\n Breadcrumb.prototype.preRender = function () {\r\n // pre render code\r\n };\r\n /**\r\n * Initialize the control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Breadcrumb.prototype.render = function () {\r\n this.initialize();\r\n this.renderItems(this.items);\r\n this.wireEvents();\r\n };\r\n Breadcrumb.prototype.initialize = function () {\r\n this._maxItems = this.maxItems;\r\n this.element.setAttribute('aria-label', 'breadcrumb');\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' '));\r\n }\r\n if (this.enableRtl) {\r\n this.element.classList.add('e-rtl');\r\n }\r\n this.setWidth();\r\n this.initItems();\r\n this.initPvtProps();\r\n };\r\n Breadcrumb.prototype.initPvtProps = function () {\r\n if (this.overflowMode === 'Default' && this._maxItems > 0) {\r\n this.startIndex = this.items.length - (this._maxItems - 1);\r\n this.endIndex = this.items.length - 1;\r\n }\r\n };\r\n Breadcrumb.prototype.setWidth = function () {\r\n if (this.width) {\r\n this.element.style.width = this.width;\r\n }\r\n };\r\n Breadcrumb.prototype.initItems = function () {\r\n if (!this.items.length) {\r\n var baseUri = void 0;\r\n var uri = void 0;\r\n var items = [];\r\n if (this.url) {\r\n var url = new URL(this.url);\r\n baseUri = url.origin + '/';\r\n uri = url.href.split(baseUri)[1].split('/');\r\n }\r\n else {\r\n baseUri = window.location.origin + '/';\r\n uri = window.location.href.split(baseUri)[1].split('/');\r\n }\r\n items.push({ iconCss: 'e-icons e-home', url: baseUri });\r\n for (var i = 0; i < uri.length; i++) {\r\n if (uri[i]) {\r\n items.push({ text: uri[i], url: baseUri + uri[i] });\r\n baseUri += uri[i] + '/';\r\n }\r\n }\r\n this.setProperties({ items: items }, true);\r\n }\r\n };\r\n Breadcrumb.prototype.renderItems = function (items) {\r\n var _this = this;\r\n var item;\r\n var isSingleLevel;\r\n var isIconRight = this.element.classList.contains(ICONRIGHT);\r\n var itemsLength = items.length;\r\n if (itemsLength) {\r\n var isActiveItem = void 0;\r\n var isLastItem = void 0;\r\n var j_1 = 0;\r\n var len = (itemsLength * 2) - 1;\r\n var ol = this.createElement('ol');\r\n var showIcon = this.hasField(items, 'iconCss');\r\n var isDisabled_1 = this.element.classList.contains('e-disabled');\r\n var isCollasped = (this.overflowMode === 'Collapsed' && this._maxItems > 0 && itemsLength > this.maxItems && !this.isExpanded);\r\n var isDefaultOverflowMode_1 = (this.overflowMode === 'Default' && this._maxItems > 0);\r\n var listBaseOptions = {\r\n moduleName: this.getModuleName(),\r\n showIcon: showIcon,\r\n itemNavigable: true,\r\n itemCreated: function (args) {\r\n var isLastItem = args.curData.isLastItem;\r\n if (isLastItem && args.item.children.length && !_this.itemTemplate) {\r\n delete args.curData.isLastItem;\r\n args.item.innerHTML = _this.createElement('span', { className: ITEMTEXTCLASS, innerHTML: args.item.children[0].innerHTML }).outerHTML;\r\n }\r\n if (args.curData.iconCss && !args.curData.text && !_this.itemTemplate) {\r\n args.item.classList.add('e-icon-item');\r\n }\r\n if (isDefaultOverflowMode_1) {\r\n args.item.setAttribute('item-index', j_1.toString());\r\n }\r\n if (args.item.querySelector('.' + ITEMTEXTCLASS)) {\r\n EventHandler.add(args.item.querySelector('.' + ITEMTEXTCLASS), 'focus', function () {\r\n args.item.classList.add('e-focus');\r\n }, _this);\r\n EventHandler.add(args.item.querySelector('.' + ITEMTEXTCLASS), 'focusout', function () {\r\n args.item.classList.remove('e-focus');\r\n }, _this);\r\n }\r\n var eventArgs = {\r\n item: extend({}, args.curData.properties ?\r\n args.curData.properties : args.curData), element: args.item\r\n };\r\n _this.trigger('beforeItemRender', eventArgs);\r\n var isItemDisabled = isDisabled_1 || eventArgs.element.classList.contains('e-disabled');\r\n var containsRightIcon = (isIconRight || eventArgs.element.classList.contains(ICONRIGHT));\r\n if (containsRightIcon && args.curData.iconCss && !_this.itemTemplate) {\r\n args.item.querySelector('.e-anchor-wrap').append(args.item.querySelector('.' + ICONCLASS));\r\n }\r\n if (isItemDisabled) {\r\n args.item.setAttribute('aria-disabled', 'true');\r\n }\r\n if (args.curData.isEmptyUrl) {\r\n args.item.children[0].removeAttribute('href');\r\n if ((!isLastItem || (isLastItem && _this.enableActiveItemNavigation)) && !isItemDisabled) {\r\n args.item.children[0].setAttribute('tabindex', '0');\r\n EventHandler.add(args.item.children[0], 'keydown', _this.keyDownHandler, _this);\r\n }\r\n }\r\n if (!_this.itemTemplate) {\r\n _this.beforeItemRenderChanges(args.curData, eventArgs.item, args.item, containsRightIcon);\r\n }\r\n }\r\n };\r\n for (var i = 0; i < len; (i % 2 && j_1++), i++) {\r\n isActiveItem = (this.activeItem && this.activeItem === items[j_1].url);\r\n if (isCollasped && i > 1 && i < len - 2) {\r\n continue;\r\n }\r\n else if (isDefaultOverflowMode_1 && ((j_1 < this.startIndex || j_1 > this.endIndex)\r\n && (i % 2 ? j_1 !== this.startIndex - 1 : true)) && j_1 !== 0) {\r\n continue;\r\n }\r\n if (i % 2) {\r\n // separator item\r\n listBaseOptions.template = this.separatorTemplate ? this.separatorTemplate : '/';\r\n listBaseOptions.itemClass = 'e-breadcrumb-separator';\r\n isSingleLevel = false;\r\n item = [{ previousItem: item.pop(), nextItem: items[j_1] }];\r\n }\r\n else {\r\n // list item\r\n listBaseOptions.itemClass = '';\r\n if (this.itemTemplate) {\r\n listBaseOptions.template = this.itemTemplate;\r\n isSingleLevel = false;\r\n }\r\n else {\r\n isSingleLevel = true;\r\n }\r\n item = [extend({}, items[j_1].properties ? items[j_1].properties\r\n : items[j_1])];\r\n if (!item[0].url && !this.itemTemplate) {\r\n item = [extend({}, item[0], { isEmptyUrl: true, url: '#' })];\r\n }\r\n isLastItem = isDefaultOverflowMode_1 && (j_1 === this.endIndex);\r\n if ((((i === len - 1 || isLastItem) && !this.itemTemplate) || isActiveItem) && !this.enableActiveItemNavigation) {\r\n item[0].isLastItem = true;\r\n }\r\n }\r\n append(ListBase.createList(this.createElement, item, listBaseOptions, isSingleLevel, this)\r\n .childNodes, ol);\r\n if (isCollasped && i === 1) {\r\n var li = this.createElement('li', { className: 'e-icons e-breadcrumb-collapsed', attrs: { 'tabindex': '0' } });\r\n EventHandler.add(li, 'keyup', this.expandHandler, this);\r\n ol.append(li);\r\n }\r\n if (isActiveItem || isLastItem) {\r\n break;\r\n }\r\n }\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n this.element.append(ol);\r\n this.calculateMaxItems();\r\n }\r\n };\r\n Breadcrumb.prototype.calculateMaxItems = function () {\r\n if (!this._maxItems) {\r\n if (this.overflowMode === 'Default' || this.overflowMode === 'Collapsed') {\r\n var width = this.element.offsetWidth;\r\n var liWidth = this.element.children[0].children[0].offsetWidth;\r\n var liElems = [].slice.call(this.element.children[0].children).reverse();\r\n for (var i = 0; i < liElems.length; i++) {\r\n if (liWidth > width) {\r\n this._maxItems = Math.ceil((i - 1) / 2) + 1;\r\n this.initPvtProps();\r\n return this.reRenderItems();\r\n }\r\n else {\r\n liWidth += liElems[i].offsetWidth;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Breadcrumb.prototype.hasField = function (items, field) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n if (items[i][field]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Breadcrumb.prototype.beforeItemRenderChanges = function (prevItem, currItem, elem, isRightIcon) {\r\n var wrapElem = elem.querySelector('.e-anchor-wrap');\r\n if (currItem.text !== prevItem.text) {\r\n wrapElem.childNodes.forEach(function (child) {\r\n if (child.nodeType === Node.TEXT_NODE) {\r\n child.textContent = currItem.text;\r\n }\r\n });\r\n }\r\n if (currItem.iconCss !== prevItem.iconCss) {\r\n var iconElem = elem.querySelector('.' + ICONCLASS);\r\n if (iconElem) {\r\n if (currItem.iconCss) {\r\n removeClass([iconElem], prevItem.iconCss.split(' '));\r\n addClass([iconElem], currItem.iconCss.split(' '));\r\n }\r\n else {\r\n iconElem.remove();\r\n }\r\n }\r\n else if (currItem.iconCss) {\r\n var iconElem_1 = this.createElement('span', { className: ICONCLASS + ' ' + currItem.iconCss });\r\n if (isRightIcon) {\r\n append([iconElem_1], wrapElem);\r\n }\r\n else {\r\n wrapElem.insertBefore(iconElem_1, wrapElem.childNodes[0]);\r\n }\r\n }\r\n }\r\n if (currItem.url !== prevItem.url && this.enableNavigation) {\r\n var anchor = elem.querySelector('a.' + ITEMTEXTCLASS);\r\n if (anchor) {\r\n if (currItem.url) {\r\n anchor.setAttribute('href', currItem.url);\r\n }\r\n else {\r\n anchor.removeAttribute('href');\r\n }\r\n }\r\n }\r\n };\r\n Breadcrumb.prototype.reRenderItems = function () {\r\n this.element.innerHTML = '';\r\n this.renderItems(this.items);\r\n };\r\n Breadcrumb.prototype.clickHandler = function (e) {\r\n var li = closest(e.target, '.e-breadcrumb-item');\r\n if (li && (closest(e.target, '.' + ITEMTEXTCLASS) || this.itemTemplate)) {\r\n var idx = [].slice.call(li.parentElement.children).indexOf(li);\r\n idx = Math.floor(idx / 2);\r\n if (this.overflowMode === 'Default' && this._maxItems > 0 && this.endIndex !== 0) {\r\n idx = parseInt(li.getAttribute('item-index'), 10);\r\n if (this.startIndex > 1) {\r\n this.startIndex -= (this.endIndex - idx);\r\n }\r\n this.endIndex = idx;\r\n this.reRenderItems();\r\n }\r\n this.trigger('itemClick', { element: li, item: this.items[idx], event: e });\r\n if (this.items[idx].url) {\r\n this.activeItem = this.items[idx].url;\r\n this.dataBind();\r\n }\r\n }\r\n if (!this.enableNavigation) {\r\n e.preventDefault();\r\n }\r\n if (e.target.classList.contains('e-breadcrumb-collapsed')) {\r\n this.isExpanded = true;\r\n this.reRenderItems();\r\n }\r\n };\r\n Breadcrumb.prototype.resize = function () {\r\n this._maxItems = this.maxItems;\r\n this.initPvtProps();\r\n this.reRenderItems();\r\n };\r\n Breadcrumb.prototype.expandHandler = function (e) {\r\n if (e.key === 'Enter') {\r\n this.isExpanded = true;\r\n this.reRenderItems();\r\n }\r\n };\r\n Breadcrumb.prototype.keyDownHandler = function (e) {\r\n if (e.key === 'Enter') {\r\n this.clickHandler(e);\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @private\r\n * @param {BreadcrumbModel} newProp - Specifies the new properties.\r\n * @param {BreadcrumbModel} oldProp - Specifies the old properties.\r\n * @returns {void}\r\n */\r\n Breadcrumb.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'activeItem':\r\n case 'items':\r\n case 'enableActiveItemNavigation':\r\n this.reRenderItems();\r\n break;\r\n case 'overflowMode':\r\n case 'maxItems':\r\n this.initPvtProps();\r\n this.reRenderItems();\r\n break;\r\n case 'url':\r\n this.initItems();\r\n this.reRenderItems();\r\n break;\r\n case 'width':\r\n this.setWidth();\r\n this._maxItems = this.maxItems;\r\n this.initPvtProps();\r\n this.reRenderItems();\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.element], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.element], newProp.cssClass.split(' '));\r\n }\r\n if ((oldProp.cssClass && oldProp.cssClass.indexOf(ICONRIGHT) > -1) && !(newProp.cssClass &&\r\n newProp.cssClass.indexOf(ICONRIGHT) > -1) || !(oldProp.cssClass && oldProp.cssClass.indexOf(ICONRIGHT) > -1) &&\r\n (newProp.cssClass && newProp.cssClass.indexOf(ICONRIGHT) > -1)) {\r\n this.reRenderItems();\r\n }\r\n break;\r\n case 'enableRtl':\r\n this.element.classList.toggle('e-rtl');\r\n break;\r\n }\r\n }\r\n };\r\n Breadcrumb.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n window.addEventListener('resize', this.resize.bind(this));\r\n };\r\n Breadcrumb.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n window.removeEventListener('resize', this.resize.bind(this));\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist data\r\n */\r\n Breadcrumb.prototype.getPersistData = function () {\r\n return this.addOnPersist(['activeItem']);\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @private\r\n * @returns {string} - Module Name\r\n */\r\n Breadcrumb.prototype.getModuleName = function () {\r\n return 'breadcrumb';\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n Breadcrumb.prototype.destroy = function () {\r\n this.unWireEvents();\r\n this.element.innerHTML = '';\r\n if (this.cssClass) {\r\n removeClass([this.element], this.cssClass.split(' '));\r\n }\r\n };\r\n __decorate([\r\n Property('')\r\n ], Breadcrumb.prototype, \"url\", void 0);\r\n __decorate([\r\n Collection([], BreadcrumbItem)\r\n ], Breadcrumb.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Breadcrumb.prototype, \"activeItem\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Breadcrumb.prototype, \"maxItems\", void 0);\r\n __decorate([\r\n Property('Default')\r\n ], Breadcrumb.prototype, \"overflowMode\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Breadcrumb.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Breadcrumb.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Breadcrumb.prototype, \"itemTemplate\", void 0);\r\n __decorate([\r\n Property('/')\r\n ], Breadcrumb.prototype, \"separatorTemplate\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Breadcrumb.prototype, \"enableNavigation\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Breadcrumb.prototype, \"enableActiveItemNavigation\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Breadcrumb.prototype, \"locale\", void 0);\r\n __decorate([\r\n Event()\r\n ], Breadcrumb.prototype, \"beforeItemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], Breadcrumb.prototype, \"itemClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Breadcrumb.prototype, \"created\", void 0);\r\n Breadcrumb = __decorate([\r\n NotifyPropertyChanges\r\n ], Breadcrumb);\r\n return Breadcrumb;\r\n}(Component));\r\nexport { Breadcrumb };\r\n","/**\r\n * Breadcrumb modules\r\n */\r\nexport * from './breadcrumb';\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Touch, Component, EventHandler, selectAll, getUniqueID } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, Property, Browser, detach } from '@syncfusion/ej2-base';\r\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nvar CLS_ROOT = 'e-hscroll';\r\nvar CLS_RTL = 'e-rtl';\r\nvar CLS_DISABLE = 'e-overlay';\r\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\r\nvar CLS_HSCROLLCON = 'e-hscroll-content';\r\nvar CLS_NAVARROW = 'e-nav-arrow';\r\nvar CLS_NAVRIGHTARROW = 'e-nav-right-arrow';\r\nvar CLS_NAVLEFTARROW = 'e-nav-left-arrow';\r\nvar CLS_HSCROLLNAV = 'e-scroll-nav';\r\nvar CLS_HSCROLLNAVRIGHT = 'e-scroll-right-nav';\r\nvar CLS_HSCROLLNAVLEFT = 'e-scroll-left-nav';\r\nvar CLS_DEVICE = 'e-scroll-device';\r\nvar CLS_OVERLAY = 'e-scroll-overlay';\r\nvar CLS_RIGHTOVERLAY = 'e-scroll-right-overlay';\r\nvar CLS_LEFTOVERLAY = 'e-scroll-left-overlay';\r\nvar OVERLAY_MAXWID = 40;\r\n/**\r\n * HScroll module is introduces horizontal scroller when content exceeds the current viewing area.\r\n * It can be useful for the components like Toolbar, Tab which needs horizontal scrolling alone.\r\n * Hidden content can be view by touch moving or icon click.\r\n * ```html\r\n *
    \r\n * \r\n * ```\r\n */\r\nvar HScroll = /** @class */ (function (_super) {\r\n __extends(HScroll, _super);\r\n /**\r\n * Initializes a new instance of the HScroll class.\r\n *\r\n * @param {HScrollModel} options - Specifies HScroll model properties as options.\r\n * @param {string | HTMLElement} element - Specifies the element for which horizontal scrolling applies.\r\n */\r\n function HScroll(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n HScroll.prototype.preRender = function () {\r\n this.browser = Browser.info.name;\r\n this.browserCheck = this.browser === 'mozilla';\r\n this.isDevice = Browser.isDevice;\r\n this.customStep = true;\r\n var element = this.element;\r\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\r\n this.initialize();\r\n if (element.id === '') {\r\n element.id = getUniqueID('hscroll');\r\n this.uniqueId = true;\r\n }\r\n element.style.display = 'block';\r\n if (this.enableRtl) {\r\n element.classList.add(CLS_RTL);\r\n }\r\n };\r\n /**\r\n * To Initialize the horizontal scroll rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n HScroll.prototype.render = function () {\r\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\r\n EventHandler.add(this.scrollEle, 'scroll', this.scrollHandler, this);\r\n if (!this.isDevice) {\r\n this.createNavIcon(this.element);\r\n }\r\n else {\r\n this.element.classList.add(CLS_DEVICE);\r\n this.createOverlay(this.element);\r\n }\r\n this.setScrollState();\r\n };\r\n HScroll.prototype.setScrollState = function () {\r\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\r\n this.scrollStep = this.scrollEle.offsetWidth;\r\n this.customStep = false;\r\n }\r\n else {\r\n this.customStep = true;\r\n }\r\n };\r\n HScroll.prototype.initialize = function () {\r\n var scrollEle = this.createElement('div', { className: CLS_HSCROLLCON });\r\n var scrollDiv = this.createElement('div', { className: CLS_HSCROLLBAR });\r\n scrollDiv.setAttribute('tabindex', '-1');\r\n var ele = this.element;\r\n var innerEle = [].slice.call(ele.children);\r\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\r\n var ele_1 = innerEle_1[_i];\r\n scrollEle.appendChild(ele_1);\r\n }\r\n scrollDiv.appendChild(scrollEle);\r\n ele.appendChild(scrollDiv);\r\n scrollDiv.style.overflowX = 'hidden';\r\n this.scrollEle = scrollDiv;\r\n this.scrollItems = scrollEle;\r\n };\r\n HScroll.prototype.getPersistData = function () {\r\n var keyEntity = ['scrollStep'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - It returns the current module name.\r\n * @private\r\n */\r\n HScroll.prototype.getModuleName = function () {\r\n return 'hScroll';\r\n };\r\n /**\r\n * Removes the control from the DOM and also removes all its related events.\r\n *\r\n * @returns {void}\r\n */\r\n HScroll.prototype.destroy = function () {\r\n var ele = this.element;\r\n ele.style.display = '';\r\n ele.classList.remove(CLS_ROOT);\r\n ele.classList.remove(CLS_DEVICE);\r\n var nav = selectAll('.e-' + ele.id + '_nav.' + CLS_HSCROLLNAV, ele);\r\n var overlay = selectAll('.' + CLS_OVERLAY, ele);\r\n [].slice.call(overlay).forEach(function (ele) {\r\n detach(ele);\r\n });\r\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\r\n var elem = _a[_i];\r\n ele.appendChild(elem);\r\n }\r\n if (this.uniqueId) {\r\n this.element.removeAttribute('id');\r\n }\r\n detach(this.scrollEle);\r\n if (nav.length > 0) {\r\n detach(nav[0]);\r\n if (!isNullOrUndefined(nav[1])) {\r\n detach(nav[1]);\r\n }\r\n }\r\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollHandler);\r\n this.touchModule.destroy();\r\n this.touchModule = null;\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Specifies the value to disable/enable the HScroll component.\r\n * When set to `true` , the component will be disabled.\r\n *\r\n * @param {boolean} value - Based on this Boolean value, HScroll will be enabled (false) or disabled (true).\r\n * @returns {void}.\r\n */\r\n HScroll.prototype.disable = function (value) {\r\n var navEles = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\r\n if (value) {\r\n this.element.classList.add(CLS_DISABLE);\r\n }\r\n else {\r\n this.element.classList.remove(CLS_DISABLE);\r\n }\r\n [].slice.call(navEles).forEach(function (el) {\r\n el.setAttribute('tabindex', !value ? '0' : '-1');\r\n });\r\n };\r\n HScroll.prototype.createOverlay = function (element) {\r\n var id = element.id.concat('_nav');\r\n var rightOverlayEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_RIGHTOVERLAY });\r\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\r\n var rightEle = this.createElement('div', { id: id.concat('_right'), className: clsRight });\r\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n rightEle.appendChild(navItem);\r\n var leftEle = this.createElement('div', { className: CLS_OVERLAY + ' ' + CLS_LEFTOVERLAY });\r\n if (this.ieCheck) {\r\n rightEle.classList.add('e-ie-align');\r\n }\r\n element.appendChild(rightOverlayEle);\r\n element.appendChild(rightEle);\r\n element.insertBefore(leftEle, element.firstChild);\r\n this.eventBinding([rightEle]);\r\n };\r\n HScroll.prototype.createNavIcon = function (element) {\r\n var id = element.id.concat('_nav');\r\n var clsRight = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVRIGHT);\r\n var nav = this.createElement('div', { id: id.concat('_right'), className: clsRight });\r\n nav.setAttribute('aria-disabled', 'false');\r\n var navItem = this.createElement('div', { className: CLS_NAVRIGHTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n var clsLeft = 'e-' + element.id.concat('_nav ' + CLS_HSCROLLNAV + ' ' + CLS_HSCROLLNAVLEFT);\r\n var navEle = this.createElement('div', { id: id.concat('_left'), className: clsLeft + ' ' + CLS_DISABLE });\r\n navEle.setAttribute('aria-disabled', 'true');\r\n var navLeftItem = this.createElement('div', { className: CLS_NAVLEFTARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n navEle.appendChild(navLeftItem);\r\n nav.appendChild(navItem);\r\n element.appendChild(nav);\r\n element.insertBefore(navEle, element.firstChild);\r\n if (this.ieCheck) {\r\n nav.classList.add('e-ie-align');\r\n navEle.classList.add('e-ie-align');\r\n }\r\n this.eventBinding([nav, navEle]);\r\n };\r\n HScroll.prototype.onKeyPress = function (e) {\r\n var _this = this;\r\n if (e.key === 'Enter') {\r\n var timeoutFun_1 = function () {\r\n _this.keyTimeout = true;\r\n _this.eleScrolling(10, e.target, true);\r\n };\r\n this.keyTimer = window.setTimeout(function () {\r\n timeoutFun_1();\r\n }, 100);\r\n }\r\n };\r\n HScroll.prototype.onKeyUp = function (e) {\r\n if (e.key !== 'Enter') {\r\n return;\r\n }\r\n if (this.keyTimeout) {\r\n this.keyTimeout = false;\r\n }\r\n else {\r\n e.target.click();\r\n }\r\n clearTimeout(this.keyTimer);\r\n };\r\n HScroll.prototype.eventBinding = function (ele) {\r\n var _this = this;\r\n [].slice.call(ele).forEach(function (el) {\r\n new Touch(el, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\r\n el.addEventListener('keydown', _this.onKeyPress.bind(_this));\r\n el.addEventListener('keyup', _this.onKeyUp.bind(_this));\r\n el.addEventListener('mouseup', _this.repeatScroll.bind(_this));\r\n el.addEventListener('touchend', _this.repeatScroll.bind(_this));\r\n el.addEventListener('contextmenu', function (e) {\r\n e.preventDefault();\r\n });\r\n EventHandler.add(el, 'click', _this.clickEventHandler, _this);\r\n });\r\n };\r\n HScroll.prototype.repeatScroll = function () {\r\n clearInterval(this.timeout);\r\n };\r\n HScroll.prototype.tabHoldHandler = function (e) {\r\n var _this = this;\r\n var trgt = e.originalEvent.target;\r\n trgt = this.contains(trgt, CLS_HSCROLLNAV) ? trgt.firstElementChild : trgt;\r\n var scrollDis = 10;\r\n var timeoutFun = function () {\r\n _this.eleScrolling(scrollDis, trgt, true);\r\n };\r\n this.timeout = window.setInterval(function () {\r\n timeoutFun();\r\n }, 50);\r\n };\r\n HScroll.prototype.contains = function (ele, className) {\r\n return ele.classList.contains(className);\r\n };\r\n HScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\r\n var rootEle = this.element;\r\n var classList = trgt.classList;\r\n if (classList.contains(CLS_HSCROLLNAV)) {\r\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\r\n }\r\n if (this.contains(rootEle, CLS_RTL) && this.browserCheck) {\r\n scrollDis = -scrollDis;\r\n }\r\n if ((!this.contains(rootEle, CLS_RTL) || this.browserCheck) || this.ieCheck) {\r\n if (classList.contains(CLS_NAVRIGHTARROW)) {\r\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\r\n }\r\n else {\r\n this.frameScrollRequest(scrollDis, '', isContinuous);\r\n }\r\n }\r\n else {\r\n if (classList.contains(CLS_NAVLEFTARROW)) {\r\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\r\n }\r\n else {\r\n this.frameScrollRequest(scrollDis, '', isContinuous);\r\n }\r\n }\r\n };\r\n HScroll.prototype.clickEventHandler = function (e) {\r\n this.eleScrolling(this.scrollStep, e.target, false);\r\n };\r\n HScroll.prototype.swipeHandler = function (e) {\r\n var swipeEle = this.scrollEle;\r\n var distance;\r\n if (e.velocity <= 1) {\r\n distance = e.distanceX / (e.velocity * 10);\r\n }\r\n else {\r\n distance = e.distanceX / e.velocity;\r\n }\r\n var start = 0.5;\r\n var animate = function () {\r\n var step = Math.sin(start);\r\n if (step <= 0) {\r\n window.cancelAnimationFrame(step);\r\n }\r\n else {\r\n if (e.swipeDirection === 'Left') {\r\n swipeEle.scrollLeft += distance * step;\r\n }\r\n else if (e.swipeDirection === 'Right') {\r\n swipeEle.scrollLeft -= distance * step;\r\n }\r\n start -= 0.5;\r\n window.requestAnimationFrame(animate);\r\n }\r\n };\r\n animate();\r\n };\r\n HScroll.prototype.scrollUpdating = function (scrollVal, action) {\r\n if (action === 'add') {\r\n this.scrollEle.scrollLeft += scrollVal;\r\n }\r\n else {\r\n this.scrollEle.scrollLeft -= scrollVal;\r\n }\r\n };\r\n HScroll.prototype.frameScrollRequest = function (scrollVal, action, isContinuous) {\r\n var _this = this;\r\n var step = 10;\r\n if (isContinuous) {\r\n this.scrollUpdating(scrollVal, action);\r\n return;\r\n }\r\n if (!this.customStep) {\r\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\r\n scrollVal -= el.offsetWidth;\r\n });\r\n }\r\n var animate = function () {\r\n var scrollValue;\r\n var scrollStep;\r\n if (_this.contains(_this.element, CLS_RTL) && _this.browserCheck) {\r\n scrollValue = -scrollVal;\r\n scrollStep = -step;\r\n }\r\n else {\r\n scrollValue = scrollVal;\r\n scrollStep = step;\r\n }\r\n if (scrollValue < step) {\r\n window.cancelAnimationFrame(scrollStep);\r\n }\r\n else {\r\n _this.scrollUpdating(scrollStep, action);\r\n scrollVal -= scrollStep;\r\n window.requestAnimationFrame(animate);\r\n }\r\n };\r\n animate();\r\n };\r\n HScroll.prototype.touchHandler = function (e) {\r\n var ele = this.scrollEle;\r\n var distance = e.distanceX;\r\n if ((this.ieCheck) && this.contains(this.element, CLS_RTL)) {\r\n distance = -distance;\r\n }\r\n if (e.scrollDirection === 'Left') {\r\n ele.scrollLeft = ele.scrollLeft + distance;\r\n }\r\n else if (e.scrollDirection === 'Right') {\r\n ele.scrollLeft = ele.scrollLeft - distance;\r\n }\r\n };\r\n HScroll.prototype.arrowDisabling = function (addDisable, removeDisable) {\r\n if (this.isDevice) {\r\n var arrowEle = isNullOrUndefined(addDisable) ? removeDisable : addDisable;\r\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\r\n if (isNullOrUndefined(addDisable)) {\r\n classList(arrowIcon, [CLS_NAVRIGHTARROW], [CLS_NAVLEFTARROW]);\r\n }\r\n else {\r\n classList(arrowIcon, [CLS_NAVLEFTARROW], [CLS_NAVRIGHTARROW]);\r\n }\r\n }\r\n else {\r\n addDisable.classList.add(CLS_DISABLE);\r\n addDisable.setAttribute('aria-disabled', 'true');\r\n addDisable.removeAttribute('tabindex');\r\n removeDisable.classList.remove(CLS_DISABLE);\r\n removeDisable.setAttribute('aria-disabled', 'false');\r\n removeDisable.setAttribute('tabindex', '0');\r\n }\r\n this.repeatScroll();\r\n };\r\n HScroll.prototype.scrollHandler = function (e) {\r\n var target = e.target;\r\n var width = target.offsetWidth;\r\n var rootEle = this.element;\r\n var navLeftEle = this.element.querySelector('.' + CLS_HSCROLLNAVLEFT);\r\n var navRightEle = this.element.querySelector('.' + CLS_HSCROLLNAVRIGHT);\r\n var leftOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\r\n var rightOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\r\n var scrollLeft = target.scrollLeft;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = -scrollLeft;\r\n }\r\n if (this.isDevice) {\r\n if (this.enableRtl && !(this.browserCheck || this.ieCheck)) {\r\n leftOverlay = this.element.querySelector('.' + CLS_RIGHTOVERLAY);\r\n rightOverlay = this.element.querySelector('.' + CLS_LEFTOVERLAY);\r\n }\r\n if (scrollLeft < OVERLAY_MAXWID) {\r\n leftOverlay.style.width = scrollLeft + 'px';\r\n }\r\n else {\r\n leftOverlay.style.width = '40px';\r\n }\r\n if ((target.scrollWidth - Math.ceil(width + scrollLeft)) < OVERLAY_MAXWID) {\r\n rightOverlay.style.width = (target.scrollWidth - Math.ceil(width + scrollLeft)) + 'px';\r\n }\r\n else {\r\n rightOverlay.style.width = '40px';\r\n }\r\n }\r\n if (scrollLeft === 0) {\r\n this.arrowDisabling(navLeftEle, navRightEle);\r\n }\r\n else if (Math.ceil(width + scrollLeft + .1) >= target.scrollWidth) {\r\n this.arrowDisabling(navRightEle, navLeftEle);\r\n }\r\n else {\r\n var disEle = this.element.querySelector('.' + CLS_HSCROLLNAV + '.' + CLS_DISABLE);\r\n if (disEle) {\r\n disEle.classList.remove(CLS_DISABLE);\r\n disEle.setAttribute('aria-disabled', 'false');\r\n disEle.setAttribute('tabindex', '0');\r\n }\r\n }\r\n };\r\n /**\r\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\r\n *\r\n * @param {HScrollModel} newProp - It contains the new value of data.\r\n * @param {HScrollModel} oldProp - It contains the old value of data.\r\n * @returns {void}\r\n * @private\r\n */\r\n HScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'scrollStep':\r\n this.setScrollState();\r\n break;\r\n case 'enableRtl':\r\n newProp.enableRtl ? this.element.classList.add(CLS_RTL) : this.element.classList.remove(CLS_RTL);\r\n break;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], HScroll.prototype, \"scrollStep\", void 0);\r\n HScroll = __decorate([\r\n NotifyPropertyChanges\r\n ], HScroll);\r\n return HScroll;\r\n}(Component));\r\nexport { HScroll };\r\n","/**\r\n * Navigation Common modules\r\n */\r\nexport * from './h-scroll';\r\nexport * from './v-scroll';\r\nexport * from './menu-scroll';\r\nexport { MenuAnimationSettings } from './menu-base';\r\nexport { MenuItem } from './menu-base';\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, ChildProperty, NotifyPropertyChanges, isBlazor } from '@syncfusion/ej2-base';\r\nimport { Event, EventHandler, KeyboardEvents, Touch } from '@syncfusion/ej2-base';\r\nimport { Animation } from '@syncfusion/ej2-base';\r\nimport { Browser, Collection, setValue, getValue, getUniqueID, getInstance, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { select, selectAll, closest, detach, append, rippleEffect, isVisible, Complex, addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nimport { getZindexPartial, calculatePosition, isCollide, fit, Popup } from '@syncfusion/ej2-popups';\r\nimport { SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { getScrollableParent } from '@syncfusion/ej2-popups';\r\nimport { HScroll } from '../common/h-scroll';\r\nimport { VScroll } from '../common/v-scroll';\r\nimport { addScrolling, destroyScroll } from '../common/menu-scroll';\r\nvar ENTER = 'enter';\r\nvar ESCAPE = 'escape';\r\nvar FOCUSED = 'e-focused';\r\nvar HEADER = 'e-menu-header';\r\nvar SELECTED = 'e-selected';\r\nvar SEPARATOR = 'e-separator';\r\nvar UPARROW = 'uparrow';\r\nvar DOWNARROW = 'downarrow';\r\nvar LEFTARROW = 'leftarrow';\r\nvar RIGHTARROW = 'rightarrow';\r\nvar HOME = 'home';\r\nvar END = 'end';\r\nvar CARET = 'e-caret';\r\nvar ITEM = 'e-menu-item';\r\nvar DISABLED = 'e-disabled';\r\nvar HIDE = 'e-menu-hide';\r\nvar ICONS = 'e-icons';\r\nvar RTL = 'e-rtl';\r\nvar POPUP = 'e-menu-popup';\r\nvar TEMPLATE_PROPERTY = 'Template';\r\n/**\r\n * Configures the field options of the Menu.\r\n */\r\nvar FieldSettings = /** @class */ (function (_super) {\r\n __extends(FieldSettings, _super);\r\n function FieldSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('id')\r\n ], FieldSettings.prototype, \"itemId\", void 0);\r\n __decorate([\r\n Property('parentId')\r\n ], FieldSettings.prototype, \"parentId\", void 0);\r\n __decorate([\r\n Property('text')\r\n ], FieldSettings.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('iconCss')\r\n ], FieldSettings.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('url')\r\n ], FieldSettings.prototype, \"url\", void 0);\r\n __decorate([\r\n Property('separator')\r\n ], FieldSettings.prototype, \"separator\", void 0);\r\n __decorate([\r\n Property('items')\r\n ], FieldSettings.prototype, \"children\", void 0);\r\n return FieldSettings;\r\n}(ChildProperty));\r\nexport { FieldSettings };\r\n/**\r\n * Specifies menu items.\r\n */\r\nvar MenuItem = /** @class */ (function (_super) {\r\n __extends(MenuItem, _super);\r\n function MenuItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(null)\r\n ], MenuItem.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuItem.prototype, \"id\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MenuItem.prototype, \"separator\", void 0);\r\n __decorate([\r\n Collection([], MenuItem)\r\n ], MenuItem.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuItem.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuItem.prototype, \"url\", void 0);\r\n return MenuItem;\r\n}(ChildProperty));\r\nexport { MenuItem };\r\n/**\r\n * Animation configuration settings.\r\n */\r\nvar MenuAnimationSettings = /** @class */ (function (_super) {\r\n __extends(MenuAnimationSettings, _super);\r\n function MenuAnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('SlideDown')\r\n ], MenuAnimationSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property(400)\r\n ], MenuAnimationSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('ease')\r\n ], MenuAnimationSettings.prototype, \"easing\", void 0);\r\n return MenuAnimationSettings;\r\n}(ChildProperty));\r\nexport { MenuAnimationSettings };\r\n/**\r\n * Base class for Menu and ContextMenu components.\r\n *\r\n * @private\r\n */\r\nvar MenuBase = /** @class */ (function (_super) {\r\n __extends(MenuBase, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @private\r\n * @param {MenuBaseModel} options - Specifies the menu base model\r\n * @param {string | HTMLUListElement} element - Specifies the element\r\n */\r\n function MenuBase(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.navIdx = [];\r\n _this.animation = new Animation({});\r\n _this.isTapHold = false;\r\n _this.tempItem = [];\r\n _this.showSubMenuOn = 'Auto';\r\n return _this;\r\n }\r\n /**\r\n * Initialized third party configuration settings.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.preRender = function () {\r\n if (!this.isMenu) {\r\n var ul = void 0;\r\n if (this.element.tagName === 'EJS-CONTEXTMENU') {\r\n ul = this.createElement('ul', {\r\n id: getUniqueID(this.getModuleName()), className: 'e-control e-lib e-' + this.getModuleName()\r\n });\r\n var ejInst = getValue('ej2_instances', this.element);\r\n removeClass([this.element], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\r\n this.clonedElement = this.element;\r\n this.element = ul;\r\n setValue('ej2_instances', ejInst, this.element);\r\n }\r\n else {\r\n ul = this.createElement('ul', { id: getUniqueID(this.getModuleName()) });\r\n append([].slice.call(this.element.cloneNode(true).children), ul);\r\n var refEle = this.element.nextElementSibling;\r\n if (refEle) {\r\n this.element.parentElement.insertBefore(ul, refEle);\r\n }\r\n else {\r\n this.element.parentElement.appendChild(ul);\r\n }\r\n this.clonedElement = ul;\r\n }\r\n this.clonedElement.style.display = 'none';\r\n }\r\n if (this.element.tagName === 'EJS-MENU') {\r\n var ele = this.element;\r\n var ejInstance = getValue('ej2_instances', ele);\r\n var ul = this.createElement('ul');\r\n var wrapper = this.createElement('EJS-MENU', { className: 'e-' + this.getModuleName() + '-wrapper' });\r\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\r\n ul.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\r\n }\r\n ele.parentNode.insertBefore(wrapper, ele);\r\n detach(ele);\r\n ele = ul;\r\n wrapper.appendChild(ele);\r\n setValue('ej2_instances', ejInstance, ele);\r\n this.clonedElement = wrapper;\r\n this.element = ele;\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID(this.getModuleName());\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.render = function () {\r\n var _this = this;\r\n this.initialize();\r\n this.renderItems();\r\n this.wireEvents();\r\n this.renderComplete();\r\n var wrapper = this.getWrapper();\r\n if (this.template && this.enableScrolling && (this.isReact || this.isAngular)) {\r\n requestAnimationFrame(function () {\r\n addScrolling(_this.createElement, wrapper, _this.element, 'hscroll', _this.enableRtl);\r\n });\r\n }\r\n };\r\n MenuBase.prototype.initialize = function () {\r\n var wrapper = this.getWrapper();\r\n if (!wrapper) {\r\n wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\r\n if (this.isMenu) {\r\n this.element.parentElement.insertBefore(wrapper, this.element);\r\n }\r\n else {\r\n document.body.appendChild(wrapper);\r\n }\r\n }\r\n if (this.cssClass) {\r\n addClass([wrapper], this.cssClass.split(' '));\r\n }\r\n if (this.enableRtl) {\r\n wrapper.classList.add(RTL);\r\n }\r\n wrapper.appendChild(this.element);\r\n if (this.isMenu && this.hamburgerMode) {\r\n if (!this.target) {\r\n this.createHeaderContainer(wrapper);\r\n }\r\n }\r\n this.defaultOption = this.showItemOnClick;\r\n };\r\n MenuBase.prototype.renderItems = function () {\r\n if (!this.items.length) {\r\n var items = ListBase.createJsonFromElement(this.element, { fields: { child: 'items' } });\r\n this.setProperties({ items: items }, true);\r\n if (isBlazor() && !this.isMenu) {\r\n this.element = this.removeChildElement(this.element);\r\n }\r\n else {\r\n this.element.innerHTML = '';\r\n }\r\n }\r\n var ul = this.createItems(this.items);\r\n append(Array.prototype.slice.call(ul.children), this.element);\r\n this.element.classList.add('e-menu-parent');\r\n if (this.isMenu) {\r\n if (!this.hamburgerMode && this.element.classList.contains('e-vertical')) {\r\n this.setBlankIconStyle(this.element);\r\n }\r\n if (this.enableScrolling) {\r\n var wrapper = this.getWrapper();\r\n if (this.element.classList.contains('e-vertical')) {\r\n addScrolling(this.createElement, wrapper, this.element, 'vscroll', this.enableRtl);\r\n }\r\n else {\r\n addScrolling(this.createElement, wrapper, this.element, 'hscroll', this.enableRtl);\r\n }\r\n }\r\n }\r\n };\r\n MenuBase.prototype.wireEvents = function () {\r\n var wrapper = this.getWrapper();\r\n if (this.target) {\r\n var target = void 0;\r\n var targetElems = selectAll(this.target);\r\n for (var i = 0, len = targetElems.length; i < len; i++) {\r\n target = targetElems[i];\r\n if (this.isMenu) {\r\n EventHandler.add(target, 'click', this.menuHeaderClickHandler, this);\r\n }\r\n else {\r\n if (Browser.isIos) {\r\n new Touch(target, { tapHold: this.touchHandler.bind(this) });\r\n }\r\n else {\r\n EventHandler.add(target, 'contextmenu', this.cmenuHandler, this);\r\n }\r\n }\r\n }\r\n this.targetElement = target;\r\n if (!this.isMenu) {\r\n EventHandler.add(this.targetElement, 'scroll', this.scrollHandler, this);\r\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\r\n var parent_1 = _a[_i];\r\n EventHandler.add(parent_1, 'scroll', this.scrollHandler, this);\r\n }\r\n }\r\n }\r\n if (!Browser.isDevice) {\r\n this.delegateMoverHandler = this.moverHandler.bind(this);\r\n this.delegateMouseDownHandler = this.mouseDownHandler.bind(this);\r\n EventHandler.add(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler, this);\r\n EventHandler.add(document, 'mousedown', this.delegateMouseDownHandler, this);\r\n }\r\n this.delegateClickHandler = this.clickHandler.bind(this);\r\n EventHandler.add(document, 'click', this.delegateClickHandler, this);\r\n this.wireKeyboardEvent(wrapper);\r\n this.rippleFn = rippleEffect(wrapper, { selector: '.' + ITEM });\r\n };\r\n MenuBase.prototype.wireKeyboardEvent = function (element) {\r\n var keyConfigs = {\r\n downarrow: DOWNARROW,\r\n uparrow: UPARROW,\r\n enter: ENTER,\r\n leftarrow: LEFTARROW,\r\n rightarrow: RIGHTARROW,\r\n escape: ESCAPE\r\n };\r\n if (this.isMenu) {\r\n keyConfigs.home = HOME;\r\n keyConfigs.end = END;\r\n }\r\n new KeyboardEvents(element, {\r\n keyAction: this.keyBoardHandler.bind(this),\r\n keyConfigs: keyConfigs\r\n });\r\n };\r\n MenuBase.prototype.mouseDownHandler = function (e) {\r\n if (closest(e.target, '.e-' + this.getModuleName() + '-wrapper') !== this.getWrapper()\r\n && (!closest(e.target, '.e-' + this.getModuleName() + '-popup'))) {\r\n this.closeMenu(this.isMenu ? null : this.navIdx.length, e);\r\n }\r\n };\r\n MenuBase.prototype.keyBoardHandler = function (e) {\r\n var actionName = '';\r\n var trgt = e.target;\r\n var actionNeeded = this.isMenu && !this.hamburgerMode && !this.element.classList.contains('e-vertical')\r\n && this.navIdx.length < 1;\r\n e.preventDefault();\r\n if (this.enableScrolling && e.keyCode === 13 && trgt.classList.contains('e-scroll-nav')) {\r\n this.removeLIStateByClass([FOCUSED, SELECTED], [closest(trgt, '.e-' + this.getModuleName() + '-wrapper')]);\r\n }\r\n if (actionNeeded) {\r\n switch (e.action) {\r\n case RIGHTARROW:\r\n actionName = RIGHTARROW;\r\n e.action = DOWNARROW;\r\n break;\r\n case LEFTARROW:\r\n actionName = LEFTARROW;\r\n e.action = UPARROW;\r\n break;\r\n case DOWNARROW:\r\n actionName = DOWNARROW;\r\n e.action = RIGHTARROW;\r\n break;\r\n case UPARROW:\r\n actionName = UPARROW;\r\n e.action = '';\r\n break;\r\n }\r\n }\r\n else if (this.enableRtl) {\r\n switch (e.action) {\r\n case LEFTARROW:\r\n actionNeeded = true;\r\n actionName = LEFTARROW;\r\n e.action = RIGHTARROW;\r\n break;\r\n case RIGHTARROW:\r\n actionNeeded = true;\r\n actionName = RIGHTARROW;\r\n e.action = LEFTARROW;\r\n break;\r\n }\r\n }\r\n switch (e.action) {\r\n case DOWNARROW:\r\n case UPARROW:\r\n case END:\r\n case HOME:\r\n this.upDownKeyHandler(e);\r\n break;\r\n case RIGHTARROW:\r\n this.rightEnterKeyHandler(e);\r\n break;\r\n case LEFTARROW:\r\n this.leftEscKeyHandler(e);\r\n break;\r\n case ENTER:\r\n if (this.hamburgerMode && trgt.tagName === 'SPAN' && trgt.classList.contains('e-menu-icon')) {\r\n this.menuHeaderClickHandler(e);\r\n }\r\n else {\r\n this.rightEnterKeyHandler(e);\r\n }\r\n break;\r\n case ESCAPE:\r\n this.leftEscKeyHandler(e);\r\n break;\r\n }\r\n if (actionNeeded) {\r\n e.action = actionName;\r\n }\r\n };\r\n MenuBase.prototype.upDownKeyHandler = function (e) {\r\n var cul = this.getUlByNavIdx();\r\n var defaultIdx = (e.action === DOWNARROW || e.action === HOME) ? 0 : cul.childElementCount - 1;\r\n var fliIdx = defaultIdx;\r\n var fli = this.getLIByClass(cul, FOCUSED);\r\n if (fli) {\r\n if (e.action !== END && e.action !== HOME) {\r\n fliIdx = this.getIdx(cul, fli);\r\n }\r\n fli.classList.remove(FOCUSED);\r\n if (e.action !== END && e.action !== HOME) {\r\n if (e.action === DOWNARROW) {\r\n fliIdx++;\r\n }\r\n else {\r\n fliIdx--;\r\n }\r\n if (fliIdx === (e.action === DOWNARROW ? cul.childElementCount : -1)) {\r\n fliIdx = defaultIdx;\r\n }\r\n }\r\n }\r\n var cli = cul.children[fliIdx];\r\n fliIdx = this.isValidLI(cli, fliIdx, e.action);\r\n cul.children[fliIdx].classList.add(FOCUSED);\r\n cul.children[fliIdx].focus();\r\n };\r\n MenuBase.prototype.isValidLI = function (cli, index, action) {\r\n var cul = this.getUlByNavIdx();\r\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\r\n if ((action === DOWNARROW) || (action === RIGHTARROW)) {\r\n index++;\r\n }\r\n else {\r\n index--;\r\n }\r\n }\r\n cli = cul.children[index];\r\n if (cli.classList.contains(SEPARATOR) || cli.classList.contains(DISABLED) || cli.classList.contains(HIDE)) {\r\n index = this.isValidLI(cli, index, action);\r\n }\r\n return index;\r\n };\r\n MenuBase.prototype.getUlByNavIdx = function (navIdxLen) {\r\n if (navIdxLen === void 0) { navIdxLen = this.navIdx.length; }\r\n if (this.isMenu) {\r\n var popup = [this.getWrapper()].concat([].slice.call(selectAll('.' + POPUP)))[navIdxLen];\r\n return isNullOrUndefined(popup) ? null : select('.e-menu-parent', popup);\r\n }\r\n else {\r\n return this.getWrapper().children[navIdxLen];\r\n }\r\n };\r\n MenuBase.prototype.rightEnterKeyHandler = function (e) {\r\n var eventArgs;\r\n var cul = this.getUlByNavIdx();\r\n var fli = this.getLIByClass(cul, FOCUSED);\r\n if (fli) {\r\n var fliIdx = this.getIdx(cul, fli);\r\n var navIdx = this.navIdx.concat(fliIdx);\r\n var item = this.getItem(navIdx);\r\n if (item.items.length) {\r\n this.navIdx.push(fliIdx);\r\n this.keyType = 'right';\r\n this.action = e.action;\r\n this.openMenu(fli, item, -1, -1, e);\r\n }\r\n else {\r\n if (e.action === ENTER) {\r\n if (this.isMenu && this.navIdx.length === 0) {\r\n this.removeLIStateByClass([SELECTED], [this.getWrapper()]);\r\n }\r\n else {\r\n fli.classList.remove(FOCUSED);\r\n }\r\n fli.classList.add(SELECTED);\r\n eventArgs = { element: fli, item: item, event: e };\r\n this.trigger('select', eventArgs);\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n }\r\n };\r\n MenuBase.prototype.leftEscKeyHandler = function (e) {\r\n if (this.navIdx.length) {\r\n this.keyType = 'left';\r\n this.closeMenu(this.navIdx.length, e);\r\n }\r\n else {\r\n if (e.action === ESCAPE) {\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n };\r\n MenuBase.prototype.scrollHandler = function (e) {\r\n this.closeMenu(null, e);\r\n };\r\n MenuBase.prototype.touchHandler = function (e) {\r\n this.isTapHold = true;\r\n this.cmenuHandler(e.originalEvent);\r\n };\r\n MenuBase.prototype.cmenuHandler = function (e) {\r\n e.preventDefault();\r\n this.isCMenu = true;\r\n this.pageX = e.changedTouches ? e.changedTouches[0].pageX + 1 : e.pageX + 1;\r\n this.pageY = e.changedTouches ? e.changedTouches[0].pageY + 1 : e.pageY + 1;\r\n this.closeMenu(null, e);\r\n if (this.isCMenu) {\r\n if (this.canOpen(e.target)) {\r\n this.openMenu(null, null, this.pageY, this.pageX, e);\r\n }\r\n this.isCMenu = false;\r\n }\r\n };\r\n // eslint:disable-next-line:max-func-body-length\r\n MenuBase.prototype.closeMenu = function (ulIndex, e, isIterated) {\r\n var _this = this;\r\n if (ulIndex === void 0) { ulIndex = 0; }\r\n if (e === void 0) { e = null; }\r\n if (this.isMenuVisible()) {\r\n var sli = void 0;\r\n var item_1;\r\n var wrapper = this.getWrapper();\r\n var beforeCloseArgs = void 0;\r\n var items_1;\r\n var popups = this.getPopups();\r\n var isClose = false;\r\n var cnt = this.isMenu ? popups.length + 1 : wrapper.childElementCount;\r\n var ul_1 = this.isMenu && cnt !== 1 ? select('.e-ul', popups[cnt - 2])\r\n : selectAll('.e-menu-parent', wrapper)[cnt - 1];\r\n if (this.isMenu && ul_1.classList.contains('e-menu')) {\r\n sli = this.getLIByClass(ul_1, SELECTED);\r\n if (sli) {\r\n sli.classList.remove(SELECTED);\r\n }\r\n isClose = true;\r\n }\r\n if (!isClose) {\r\n var liElem_1 = e && e.target && this.getLI(e.target);\r\n item_1 = this.navIdx.length ? this.getItem(this.navIdx) : null;\r\n items_1 = item_1 ? item_1.items : this.items;\r\n beforeCloseArgs = { element: ul_1, parentItem: item_1, items: items_1, event: e, cancel: false, isFocused: true };\r\n this.trigger('beforeClose', beforeCloseArgs, function (observedCloseArgs) {\r\n var popupEle;\r\n var closeArgs;\r\n var popupId = '';\r\n var popupObj;\r\n var isOpen = !observedCloseArgs.cancel;\r\n if (isOpen || _this.isCMenu) {\r\n if (_this.isMenu) {\r\n popupEle = closest(ul_1, '.' + POPUP);\r\n if (_this.hamburgerMode) {\r\n popupEle.parentElement.style.minHeight = '';\r\n closest(ul_1, '.e-menu-item').setAttribute('aria-expanded', 'false');\r\n }\r\n _this.unWireKeyboardEvent(popupEle);\r\n destroyScroll(getInstance(popupEle.children[0], VScroll), popupEle.children[0]);\r\n popupObj = getInstance(popupEle, Popup);\r\n popupObj.hide();\r\n popupId = popupEle.id;\r\n popupObj.destroy();\r\n detach(popupEle);\r\n }\r\n else {\r\n _this.toggleAnimation(ul_1, false);\r\n }\r\n closeArgs = { element: ul_1, parentItem: item_1, items: items_1 };\r\n _this.trigger('onClose', closeArgs);\r\n _this.navIdx.pop();\r\n }\r\n _this.updateReactTemplate();\r\n var trgtliId;\r\n var closedLi;\r\n var trgtLi;\r\n var trgtpopUp = _this.getWrapper() && _this.getUlByNavIdx();\r\n if (_this.isCMenu) {\r\n if (_this.canOpen(e.target)) {\r\n _this.openMenu(null, null, _this.pageY, _this.pageX, e);\r\n }\r\n _this.isCMenu = false;\r\n }\r\n if (_this.isMenu && trgtpopUp && popupId.length) {\r\n trgtliId = new RegExp('(.*)-ej2menu-' + _this.element.id + '-popup').exec(popupId)[1];\r\n closedLi = trgtpopUp.querySelector('[id=\"' + trgtliId + '\"]');\r\n trgtLi = (liElem_1 && trgtpopUp.querySelector('[id=\"' + liElem_1.id + '\"]'));\r\n }\r\n var submenus = liElem_1 && liElem_1.querySelectorAll('.e-menu-item');\r\n if (isOpen && _this.hamburgerMode && ulIndex && !(submenus.length)) {\r\n _this.afterCloseMenu(e);\r\n }\r\n else if (isOpen && !_this.hamburgerMode && _this.navIdx.length && closedLi && !trgtLi) {\r\n var ele = (e && e.target.classList.contains('e-vscroll'))\r\n ? closest(e.target, '.e-menu-wrapper') : null;\r\n if (ele) {\r\n ele = ele.querySelector('.e-menu-item');\r\n if (_this.showItemOnClick || (ele && _this.getIndex(ele.id, true).length <= _this.navIdx.length)) {\r\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e, true);\r\n }\r\n }\r\n else {\r\n _this.closeMenu(_this.navIdx[_this.navIdx.length - 1], e);\r\n }\r\n }\r\n else if (isOpen && !isIterated && !ulIndex && ((_this.hamburgerMode && _this.navIdx.length) ||\r\n _this.navIdx.length === 1)) {\r\n _this.closeMenu(null, e);\r\n }\r\n else if (isOpen && isNullOrUndefined(ulIndex) && _this.navIdx.length) {\r\n _this.closeMenu(null, e);\r\n }\r\n else if (isOpen && !_this.isMenu && !ulIndex && _this.navIdx.length === 0 && !_this.isMenusClosed) {\r\n _this.isMenusClosed = true;\r\n _this.closeMenu(0, e);\r\n }\r\n else if (isOpen && _this.isMenu && e && e.target &&\r\n _this.navIdx.length !== 0 && closest(e.target, '.e-menu-parent.e-control')) {\r\n _this.closeMenu(0, e);\r\n }\r\n else {\r\n if (isOpen && (_this.keyType === 'right' || _this.keyType === 'click')) {\r\n _this.afterCloseMenu(e);\r\n }\r\n else {\r\n var cul = _this.getUlByNavIdx();\r\n var sli_1 = _this.getLIByClass(cul, SELECTED);\r\n if (sli_1) {\r\n sli_1.setAttribute('aria-expanded', 'false');\r\n sli_1.classList.remove(SELECTED);\r\n if (observedCloseArgs.isFocused && liElem_1) {\r\n sli_1.classList.add(FOCUSED);\r\n sli_1.focus();\r\n }\r\n }\r\n if (!isOpen && _this.hamburgerMode && liElem_1 && liElem_1.getAttribute('aria-expanded') === 'false' &&\r\n liElem_1.getAttribute('aria-haspopup') === 'true') {\r\n if (closest(liElem_1, '.e-menu-parent.e-control')) {\r\n _this.navIdx = [];\r\n }\r\n else {\r\n _this.navIdx.pop();\r\n }\r\n _this.navIdx.push(_this.cliIdx);\r\n var item_2 = _this.getItem(_this.navIdx);\r\n liElem_1.setAttribute('aria-expanded', 'true');\r\n _this.openMenu(liElem_1, item_2, -1, -1, e);\r\n }\r\n }\r\n if (_this.navIdx.length < 1) {\r\n if (_this.showSubMenuOn === 'Hover' || _this.showSubMenuOn === 'Click') {\r\n _this.showItemOnClick = _this.defaultOption;\r\n _this.showSubMenuOn = 'Auto';\r\n }\r\n }\r\n }\r\n _this.removeStateWrapper();\r\n });\r\n }\r\n }\r\n };\r\n MenuBase.prototype.updateReactTemplate = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact && this.template && this.navIdx.length === 0) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var portals = this.portals.splice(0, this.items.length);\r\n this.clearTemplate(['template']);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n this.portals = portals;\r\n this.renderReactTemplates();\r\n }\r\n };\r\n MenuBase.prototype.getMenuItemModel = function (item, level) {\r\n if (isNullOrUndefined(item)) {\r\n return null;\r\n }\r\n if (isNullOrUndefined(level)) {\r\n level = 0;\r\n }\r\n var fields = this.getFields(level);\r\n return { text: item[fields.text], id: item[fields.id], items: item[fields.child], separator: item[fields.separator],\r\n iconCss: item[fields.iconCss], url: item[fields.url] };\r\n };\r\n MenuBase.prototype.getPopups = function () {\r\n var _this = this;\r\n var popups = [];\r\n [].slice.call(document.querySelectorAll('.' + POPUP)).forEach(function (elem) {\r\n if (!isNullOrUndefined(elem.querySelector('.' + ITEM)) && _this.getIndex(elem.querySelector('.' + ITEM).id, true).length) {\r\n popups.push(elem);\r\n }\r\n });\r\n return popups;\r\n };\r\n MenuBase.prototype.isMenuVisible = function () {\r\n return (this.navIdx.length > 0 || (this.element.classList.contains('e-contextmenu') && isVisible(this.element).valueOf()));\r\n };\r\n MenuBase.prototype.canOpen = function (target) {\r\n var canOpen = true;\r\n if (this.filter) {\r\n canOpen = false;\r\n var filter = this.filter.split(' ');\r\n for (var i = 0, len = filter.length; i < len; i++) {\r\n if (closest(target, '.' + filter[i])) {\r\n canOpen = true;\r\n break;\r\n }\r\n }\r\n }\r\n return canOpen;\r\n };\r\n MenuBase.prototype.openMenu = function (li, item, top, left, e, target) {\r\n var _this = this;\r\n if (top === void 0) { top = 0; }\r\n if (left === void 0) { left = 0; }\r\n if (e === void 0) { e = null; }\r\n if (target === void 0) { target = this.targetElement; }\r\n var wrapper = this.getWrapper();\r\n this.lItem = li;\r\n var elemId = this.element.id !== '' ? this.element.id : 'menu';\r\n this.isMenusClosed = false;\r\n if (isNullOrUndefined(top)) {\r\n top = -1;\r\n }\r\n if (isNullOrUndefined(left)) {\r\n left = -1;\r\n }\r\n if (li) {\r\n this.uList = this.createItems(item[this.getField('children', this.navIdx.length - 1)]);\r\n if (!this.isMenu && Browser.isDevice) {\r\n wrapper.lastChild.style.display = 'none';\r\n var data = {\r\n text: item[this.getField('text')].toString(), iconCss: ICONS + ' e-previous'\r\n };\r\n var hdata = new MenuItem(this.items[0], 'items', data, true);\r\n var hli = this.createItems([hdata]).children[0];\r\n hli.classList.add(HEADER);\r\n this.uList.insertBefore(hli, this.uList.children[0]);\r\n }\r\n if (this.isMenu) {\r\n this.popupWrapper = this.createElement('div', {\r\n className: 'e-' + this.getModuleName() + '-wrapper ' + POPUP, id: li.id + '-ej2menu-' + elemId + '-popup'\r\n });\r\n if (this.hamburgerMode) {\r\n top = li.offsetHeight;\r\n li.appendChild(this.popupWrapper);\r\n }\r\n else {\r\n document.body.appendChild(this.popupWrapper);\r\n }\r\n this.isNestedOrVertical = this.element.classList.contains('e-vertical') || this.navIdx.length !== 1;\r\n this.popupObj = this.generatePopup(this.popupWrapper, this.uList, li, this.isNestedOrVertical);\r\n if (this.template) {\r\n this.renderReactTemplates();\r\n }\r\n if (this.hamburgerMode) {\r\n this.calculateIndentSize(this.uList, li);\r\n }\r\n else {\r\n if (this.cssClass) {\r\n addClass([this.popupWrapper], this.cssClass.split(' '));\r\n }\r\n this.popupObj.hide();\r\n }\r\n if (!this.hamburgerMode && !this.showItemOnClick && this.hoverDelay) {\r\n window.clearInterval(this.timer);\r\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, 0, 0, 'menu'); }, this.hoverDelay);\r\n }\r\n else {\r\n this.triggerBeforeOpen(li, this.uList, item, e, 0, 0, 'menu');\r\n }\r\n }\r\n else {\r\n this.uList.style.zIndex = this.element.style.zIndex;\r\n wrapper.appendChild(this.uList);\r\n if (!this.showItemOnClick && this.hoverDelay) {\r\n window.clearInterval(this.timer);\r\n this.timer = window.setTimeout(function () { _this.triggerBeforeOpen(li, _this.uList, item, e, top, left, 'none'); }, this.hoverDelay);\r\n }\r\n else {\r\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\r\n }\r\n }\r\n }\r\n else {\r\n this.uList = this.element;\r\n this.uList.style.zIndex = getZindexPartial(target ? target : this.element).toString();\r\n this.triggerBeforeOpen(li, this.uList, item, e, top, left, 'none');\r\n }\r\n };\r\n MenuBase.prototype.calculateIndentSize = function (ul, li) {\r\n var liStyle = getComputedStyle(li);\r\n var liIndent = parseInt(liStyle.textIndent, 10);\r\n if (this.navIdx.length < 2 && !li.classList.contains('e-blankicon')) {\r\n liIndent *= 2;\r\n }\r\n else {\r\n liIndent += (liIndent / 4);\r\n }\r\n ul.style.textIndent = liIndent + 'px';\r\n var blankIconElem = ul.querySelectorAll('.e-blankicon');\r\n if (blankIconElem && blankIconElem.length) {\r\n var menuIconElem = ul.querySelector('.e-menu-icon');\r\n var menuIconElemStyle = getComputedStyle(menuIconElem);\r\n var blankIconIndent = (parseInt(menuIconElemStyle.marginRight, 10) + menuIconElem.offsetWidth + liIndent);\r\n for (var i = 0; i < blankIconElem.length; i++) {\r\n blankIconElem[i].style.textIndent = blankIconIndent + 'px';\r\n }\r\n }\r\n };\r\n MenuBase.prototype.generatePopup = function (popupWrapper, ul, li, isNestedOrVertical) {\r\n var _this = this;\r\n var popupObj = new Popup(popupWrapper, {\r\n actionOnScroll: this.hamburgerMode ? 'none' : 'reposition',\r\n relateTo: li,\r\n collision: this.hamburgerMode ? { X: 'none', Y: 'none' } : { X: isNestedOrVertical ||\r\n this.enableRtl ? 'none' : 'flip', Y: 'fit' },\r\n position: (isNestedOrVertical && !this.hamburgerMode) ? { X: 'right', Y: 'top' } : { X: 'left', Y: 'bottom' },\r\n targetType: 'relative',\r\n enableRtl: this.enableRtl,\r\n content: ul,\r\n open: function () {\r\n var scrollEle = select('.e-menu-vscroll', popupObj.element);\r\n if (scrollEle) {\r\n scrollEle.style.height = 'inherit';\r\n scrollEle.style.maxHeight = '';\r\n }\r\n var ul = select('.e-ul', popupObj.element);\r\n popupObj.element.style.maxHeight = '';\r\n ul.focus();\r\n _this.triggerOpen(ul);\r\n }\r\n });\r\n return popupObj;\r\n };\r\n MenuBase.prototype.createHeaderContainer = function (wrapper) {\r\n wrapper = wrapper || this.getWrapper();\r\n var spanElem = this.createElement('span', { className: 'e-' + this.getModuleName() + '-header' });\r\n var tempTitle = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.title) : this.title;\r\n var spanTitle = this.createElement('span', {\r\n className: 'e-' + this.getModuleName() + '-title', innerHTML: tempTitle\r\n });\r\n var spanIcon = this.createElement('span', {\r\n className: 'e-icons e-' + this.getModuleName() + '-icon', attrs: { 'tabindex': '0' }\r\n });\r\n spanElem.appendChild(spanTitle);\r\n spanElem.appendChild(spanIcon);\r\n wrapper.insertBefore(spanElem, this.element);\r\n };\r\n MenuBase.prototype.openHamburgerMenu = function (e) {\r\n if (this.hamburgerMode) {\r\n this.triggerBeforeOpen(null, this.element, null, e, 0, 0, 'hamburger');\r\n }\r\n };\r\n MenuBase.prototype.closeHamburgerMenu = function (e) {\r\n var _this = this;\r\n var beforeCloseArgs = { element: this.element, parentItem: null, event: e,\r\n items: this.items, cancel: false };\r\n this.trigger('beforeClose', beforeCloseArgs, function (observedHamburgerCloseArgs) {\r\n if (!observedHamburgerCloseArgs.cancel) {\r\n _this.closeMenu(null, e);\r\n _this.element.classList.add('e-hide-menu');\r\n _this.trigger('onClose', { element: _this.element, parentItem: null, items: _this.items });\r\n }\r\n });\r\n };\r\n MenuBase.prototype.callFit = function (element, x, y, top, left) {\r\n return fit(element, null, { X: x, Y: y }, { top: top, left: left });\r\n };\r\n MenuBase.prototype.triggerBeforeOpen = function (li, ul, item, e, top, left, type) {\r\n var _this = this;\r\n var items = li ? item[this.getField('children', this.navIdx.length - 1)] : this.items;\r\n var eventArgs = {\r\n element: ul, items: items, parentItem: item, event: e, cancel: false, top: top, left: left, showSubMenuOn: 'Auto'\r\n };\r\n var menuType = type;\r\n this.trigger('beforeOpen', eventArgs, function (observedOpenArgs) {\r\n switch (menuType) {\r\n case 'menu':\r\n if (!_this.hamburgerMode) {\r\n if (observedOpenArgs.showSubMenuOn !== 'Auto') {\r\n _this.showItemOnClick = !_this.defaultOption;\r\n _this.showSubMenuOn = observedOpenArgs.showSubMenuOn;\r\n }\r\n _this.top = observedOpenArgs.top;\r\n _this.left = observedOpenArgs.left;\r\n }\r\n _this.popupWrapper.style.display = 'block';\r\n if (!_this.hamburgerMode) {\r\n _this.popupWrapper.style.maxHeight = _this.popupWrapper.getBoundingClientRect().height + 'px';\r\n if (_this.enableScrolling) {\r\n addScrolling(_this.createElement, _this.popupWrapper, _this.uList, 'vscroll', _this.enableRtl);\r\n }\r\n _this.checkScrollOffset(e);\r\n }\r\n if (!_this.hamburgerMode && !_this.left && !_this.top) {\r\n _this.popupObj.refreshPosition(_this.lItem, true);\r\n _this.left = parseInt(_this.popupWrapper.style.left, 10);\r\n _this.top = parseInt(_this.popupWrapper.style.top, 10);\r\n if (_this.enableRtl) {\r\n _this.left =\r\n _this.isNestedOrVertical ? _this.left - _this.popupWrapper.offsetWidth - _this.lItem.parentElement.offsetWidth + 2\r\n : _this.left - _this.popupWrapper.offsetWidth + _this.lItem.offsetWidth;\r\n }\r\n if (_this.template && (_this.isReact || _this.isAngular)) {\r\n requestAnimationFrame(function () {\r\n _this.collision();\r\n _this.popupWrapper.style.display = '';\r\n });\r\n }\r\n else {\r\n _this.collision();\r\n _this.popupWrapper.style.display = '';\r\n }\r\n }\r\n else {\r\n _this.popupObj.collision = { X: 'none', Y: 'none' };\r\n _this.popupWrapper.style.display = '';\r\n }\r\n break;\r\n case 'none':\r\n _this.top = observedOpenArgs.top;\r\n _this.left = observedOpenArgs.left;\r\n break;\r\n case 'hamburger':\r\n if (!observedOpenArgs.cancel) {\r\n _this.element.classList.remove('e-hide-menu');\r\n _this.triggerOpen(_this.element);\r\n }\r\n break;\r\n }\r\n if (menuType !== 'hamburger') {\r\n if (observedOpenArgs.cancel) {\r\n if (_this.isMenu) {\r\n _this.popupObj.destroy();\r\n detach(_this.popupWrapper);\r\n }\r\n else if (ul.className.indexOf('e-ul') > -1) {\r\n detach(ul);\r\n }\r\n _this.navIdx.pop();\r\n }\r\n else {\r\n if (_this.isMenu) {\r\n if (_this.hamburgerMode) {\r\n _this.popupWrapper.style.top = _this.top + 'px';\r\n _this.popupWrapper.style.left = 0 + 'px';\r\n _this.toggleAnimation(_this.popupWrapper);\r\n }\r\n else {\r\n _this.setBlankIconStyle(_this.popupWrapper);\r\n _this.wireKeyboardEvent(_this.popupWrapper);\r\n rippleEffect(_this.popupWrapper, { selector: '.' + ITEM });\r\n _this.popupWrapper.style.left = _this.left + 'px';\r\n _this.popupWrapper.style.top = _this.top + 'px';\r\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\r\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\r\n timingFunction: _this.animationSettings.easing\r\n } : null;\r\n _this.popupObj.show(animationOptions, _this.lItem);\r\n }\r\n }\r\n else {\r\n _this.setBlankIconStyle(_this.uList);\r\n _this.setPosition(_this.lItem, _this.uList, _this.top, _this.left);\r\n _this.toggleAnimation(_this.uList);\r\n }\r\n }\r\n }\r\n if (_this.keyType === 'right') {\r\n var cul = _this.getUlByNavIdx();\r\n li.classList.remove(FOCUSED);\r\n if (_this.isMenu && _this.navIdx.length === 1) {\r\n _this.removeLIStateByClass([SELECTED], [_this.getWrapper()]);\r\n }\r\n li.classList.add(SELECTED);\r\n if (_this.action === ENTER) {\r\n var eventArgs_1 = { element: li, item: item, event: e };\r\n _this.trigger('select', eventArgs_1);\r\n }\r\n li.focus();\r\n cul = _this.getUlByNavIdx();\r\n var index = _this.isValidLI(cul.children[0], 0, _this.action);\r\n cul.children[index].classList.add(FOCUSED);\r\n cul.children[index].focus();\r\n }\r\n });\r\n };\r\n MenuBase.prototype.collision = function () {\r\n var collide;\r\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\r\n if ((this.isNestedOrVertical || this.enableRtl) && (collide.indexOf('right') > -1\r\n || collide.indexOf('left') > -1)) {\r\n this.popupObj.collision.X = 'none';\r\n var offWidth = closest(this.lItem, '.e-' + this.getModuleName() + '-wrapper').offsetWidth;\r\n this.left =\r\n this.enableRtl ? calculatePosition(this.lItem, this.isNestedOrVertical ? 'right' : 'left', 'top').left\r\n : this.left - this.popupWrapper.offsetWidth - offWidth + 2;\r\n }\r\n collide = isCollide(this.popupWrapper, null, this.left, this.top);\r\n if (collide.indexOf('left') > -1 || collide.indexOf('right') > -1) {\r\n this.left = this.callFit(this.popupWrapper, true, false, this.top, this.left).left;\r\n }\r\n this.popupWrapper.style.left = this.left + 'px';\r\n };\r\n MenuBase.prototype.setBlankIconStyle = function (menu) {\r\n var blankIconList = [].slice.call(menu.getElementsByClassName('e-blankicon'));\r\n if (!blankIconList.length) {\r\n return;\r\n }\r\n var iconLi = menu.querySelector('.e-menu-item:not(.e-blankicon):not(.e-separator)');\r\n var icon = iconLi.querySelector('.e-menu-icon');\r\n if (!icon) {\r\n return;\r\n }\r\n var cssProp = this.enableRtl ? { padding: 'paddingRight', margin: 'marginLeft' } :\r\n { padding: 'paddingLeft', margin: 'marginRight' };\r\n var iconCssProps = getComputedStyle(icon);\r\n var iconSize = parseInt(iconCssProps.fontSize, 10);\r\n if (!!parseInt(iconCssProps.width, 10) && parseInt(iconCssProps.width, 10) > iconSize) {\r\n iconSize = parseInt(iconCssProps.width, 10);\r\n }\r\n // eslint:disable\r\n var size = iconSize + parseInt(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n iconCssProps[cssProp.margin], 10) + parseInt(getComputedStyle(iconLi)[cssProp.padding], 10) + \"px\";\r\n blankIconList.forEach(function (li) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n li.style[cssProp.padding] = size;\r\n });\r\n // eslint:enable\r\n };\r\n MenuBase.prototype.checkScrollOffset = function (e) {\r\n var wrapper = this.getWrapper();\r\n if (wrapper.children[0].classList.contains('e-menu-hscroll') && this.navIdx.length === 1) {\r\n var trgt = isNullOrUndefined(e) ? this.element : closest(e.target, '.' + ITEM);\r\n var offsetEle = select('.e-hscroll-bar', wrapper);\r\n if (offsetEle.scrollLeft > trgt.offsetLeft) {\r\n offsetEle.scrollLeft -= (offsetEle.scrollLeft - trgt.offsetLeft);\r\n }\r\n var offsetLeft = offsetEle.scrollLeft + offsetEle.offsetWidth;\r\n var offsetRight = trgt.offsetLeft + trgt.offsetWidth;\r\n if (offsetLeft < offsetRight) {\r\n offsetEle.scrollLeft += (offsetRight - offsetLeft);\r\n }\r\n }\r\n };\r\n MenuBase.prototype.setPosition = function (li, ul, top, left) {\r\n var px = 'px';\r\n this.toggleVisiblity(ul);\r\n if (ul === this.element || (left > -1 && top > -1)) {\r\n var collide = isCollide(ul, null, left, top);\r\n if (collide.indexOf('right') > -1) {\r\n left = left - ul.offsetWidth;\r\n }\r\n if (collide.indexOf('bottom') > -1) {\r\n var offset = this.callFit(ul, false, true, top, left);\r\n top = offset.top - 20;\r\n if (top < 0) {\r\n var newTop = (pageYOffset + document.documentElement.clientHeight) - ul.getBoundingClientRect().height;\r\n if (newTop > -1) {\r\n top = newTop;\r\n }\r\n }\r\n }\r\n collide = isCollide(ul, null, left, top);\r\n if (collide.indexOf('left') > -1) {\r\n var offset = this.callFit(ul, true, false, top, left);\r\n left = offset.left;\r\n }\r\n }\r\n else {\r\n if (Browser.isDevice) {\r\n top = Number(this.element.style.top.replace(px, ''));\r\n left = Number(this.element.style.left.replace(px, ''));\r\n }\r\n else {\r\n var x = this.enableRtl ? 'left' : 'right';\r\n var offset = calculatePosition(li, x, 'top');\r\n top = offset.top;\r\n left = offset.left;\r\n var collide = isCollide(ul, null, this.enableRtl ? left - ul.offsetWidth : left, top);\r\n var xCollision = collide.indexOf('left') > -1 || collide.indexOf('right') > -1;\r\n if (xCollision) {\r\n offset = calculatePosition(li, this.enableRtl ? 'right' : 'left', 'top');\r\n left = offset.left;\r\n }\r\n if (this.enableRtl || xCollision) {\r\n left = (this.enableRtl && xCollision) ? left : left - ul.offsetWidth;\r\n }\r\n if (collide.indexOf('bottom') > -1) {\r\n offset = this.callFit(ul, false, true, top, left);\r\n top = offset.top;\r\n }\r\n }\r\n }\r\n this.toggleVisiblity(ul, false);\r\n ul.style.top = top + px;\r\n ul.style.left = left + px;\r\n };\r\n MenuBase.prototype.toggleVisiblity = function (ul, isVisible) {\r\n if (isVisible === void 0) { isVisible = true; }\r\n ul.style.visibility = isVisible ? 'hidden' : '';\r\n ul.style.display = isVisible ? 'block' : 'none';\r\n };\r\n MenuBase.prototype.createItems = function (items) {\r\n var _this = this;\r\n var level = this.navIdx ? this.navIdx.length : 0;\r\n var fields = this.getFields(level);\r\n var showIcon = this.hasField(items, this.getField('iconCss', level));\r\n var listBaseOptions = {\r\n showIcon: showIcon,\r\n moduleName: 'menu',\r\n fields: fields,\r\n template: this.template,\r\n itemNavigable: true,\r\n itemCreating: function (args) {\r\n if (!args.curData[args.fields[fields.id]]) {\r\n args.curData[args.fields[fields.id]] = getUniqueID('menuitem');\r\n }\r\n args.curData.htmlAttributes = {\r\n role: 'menuitem',\r\n tabindex: '-1'\r\n };\r\n if (_this.isMenu && !args.curData[_this.getField('separator', level)]) {\r\n args.curData.htmlAttributes['aria-label'] = args.curData[args.fields.text];\r\n }\r\n if (args.curData[args.fields[fields.iconCss]] === '') {\r\n args.curData[args.fields[fields.iconCss]] = null;\r\n }\r\n },\r\n itemCreated: function (args) {\r\n if (args.curData[_this.getField('separator', level)]) {\r\n args.item.classList.add(SEPARATOR);\r\n args.item.removeAttribute('role');\r\n }\r\n if (showIcon && !args.curData[args.fields.iconCss]\r\n && !args.curData[_this.getField('separator', level)]) {\r\n args.item.classList.add('e-blankicon');\r\n }\r\n if (args.curData[args.fields.child]\r\n && args.curData[args.fields.child].length) {\r\n var span = _this.createElement('span', { className: ICONS + ' ' + CARET });\r\n args.item.appendChild(span);\r\n args.item.setAttribute('aria-haspopup', 'true');\r\n args.item.setAttribute('aria-expanded', 'false');\r\n if (!_this.isMenu) {\r\n args.item.removeAttribute('role');\r\n }\r\n args.item.classList.add('e-menu-caret-icon');\r\n }\r\n if (_this.isMenu && _this.template) {\r\n args.item.setAttribute('id', args.curData[args.fields.id].toString());\r\n args.item.removeAttribute('data-uid');\r\n if (args.item.classList.contains('e-level-1')) {\r\n args.item.classList.remove('e-level-1');\r\n }\r\n if (args.item.classList.contains('e-has-child')) {\r\n args.item.classList.remove('e-has-child');\r\n }\r\n }\r\n var eventArgs = { item: args.curData, element: args.item };\r\n _this.trigger('beforeItemRender', eventArgs);\r\n }\r\n };\r\n this.setProperties({ 'items': this.items }, true);\r\n if (this.isMenu) {\r\n listBaseOptions.templateID = this.element.id + TEMPLATE_PROPERTY;\r\n }\r\n var ul = ListBase.createList(this.createElement, items, listBaseOptions, !this.template, this);\r\n ul.setAttribute('tabindex', '0');\r\n if (this.isMenu) {\r\n ul.setAttribute('role', 'menu');\r\n }\r\n return ul;\r\n };\r\n MenuBase.prototype.moverHandler = function (e) {\r\n var trgt = e.target;\r\n this.liTrgt = trgt;\r\n var cli = this.getLI(trgt);\r\n var wrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : this.getWrapper();\r\n var hdrWrapper = this.getWrapper();\r\n var regex = new RegExp('-ej2menu-(.*)-popup');\r\n var ulId;\r\n var isDifferentElem = false;\r\n if (!wrapper) {\r\n return;\r\n }\r\n if (wrapper.id !== '') {\r\n ulId = regex.exec(wrapper.id)[1];\r\n }\r\n else {\r\n ulId = wrapper.querySelector('ul').id;\r\n }\r\n if (ulId !== this.element.id) {\r\n this.removeLIStateByClass([FOCUSED, SELECTED], [this.getWrapper()]);\r\n if (this.navIdx.length) {\r\n isDifferentElem = true;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n if (cli && closest(cli, '.e-' + this.getModuleName() + '-wrapper') && !isDifferentElem) {\r\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [wrapper].concat(this.getPopups()) : [wrapper]);\r\n this.removeLIStateByClass([FOCUSED], this.isMenu ? [hdrWrapper].concat(this.getPopups()) : [hdrWrapper]);\r\n cli.classList.add(FOCUSED);\r\n if (!this.showItemOnClick) {\r\n this.clickHandler(e);\r\n }\r\n }\r\n else if (this.isMenu && this.showItemOnClick && !isDifferentElem) {\r\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\r\n }\r\n if (this.isMenu) {\r\n if (!this.showItemOnClick && (trgt.parentElement !== wrapper && !closest(trgt, '.e-' + this.getModuleName() + '-popup'))\r\n && (!cli || (cli && !this.getIndex(cli.id, true).length)) && this.showSubMenuOn !== 'Hover') {\r\n this.removeLIStateByClass([FOCUSED], [wrapper]);\r\n if (this.navIdx.length) {\r\n this.isClosed = true;\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n else if (isDifferentElem && !this.showItemOnClick) {\r\n if (this.navIdx.length) {\r\n this.isClosed = true;\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n if (!this.isClosed) {\r\n this.removeStateWrapper();\r\n }\r\n this.isClosed = false;\r\n }\r\n };\r\n MenuBase.prototype.removeStateWrapper = function () {\r\n if (this.liTrgt) {\r\n var wrapper = closest(this.liTrgt, '.e-menu-vscroll');\r\n if (this.liTrgt.tagName === 'DIV' && wrapper) {\r\n this.removeLIStateByClass([FOCUSED, SELECTED], [wrapper]);\r\n }\r\n }\r\n };\r\n MenuBase.prototype.removeLIStateByClass = function (classList, element) {\r\n var li;\r\n var _loop_1 = function (i) {\r\n classList.forEach(function (className) {\r\n li = select('.' + className, element[i]);\r\n if (li) {\r\n li.classList.remove(className);\r\n }\r\n });\r\n };\r\n for (var i = 0; i < element.length; i++) {\r\n _loop_1(i);\r\n }\r\n };\r\n MenuBase.prototype.getField = function (propName, level) {\r\n if (level === void 0) { level = 0; }\r\n var fieldName = this.fields[propName];\r\n return typeof fieldName === 'string' ? fieldName :\r\n (!fieldName[level] ? fieldName[fieldName.length - 1].toString()\r\n : fieldName[level].toString());\r\n };\r\n MenuBase.prototype.getFields = function (level) {\r\n if (level === void 0) { level = 0; }\r\n return {\r\n id: this.getField('itemId', level),\r\n iconCss: this.getField('iconCss', level),\r\n text: this.getField('text', level),\r\n url: this.getField('url', level),\r\n child: this.getField('children', level),\r\n separator: this.getField('separator', level)\r\n };\r\n };\r\n MenuBase.prototype.hasField = function (items, field) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n if (items[i][field]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n MenuBase.prototype.menuHeaderClickHandler = function (e) {\r\n if (closest(e.target, '.e-menu-wrapper').querySelector('ul.e-menu-parent').id !== this.element.id) {\r\n return;\r\n }\r\n if (this.element.classList.contains('e-hide-menu')) {\r\n this.openHamburgerMenu(e);\r\n }\r\n else {\r\n this.closeHamburgerMenu(e);\r\n }\r\n };\r\n MenuBase.prototype.clickHandler = function (e) {\r\n if (this.isTapHold) {\r\n this.isTapHold = false;\r\n }\r\n else {\r\n var wrapper = this.getWrapper();\r\n var trgt = e.target;\r\n var cli = this.cli = this.getLI(trgt);\r\n var regex = new RegExp('-ej2menu-(.*)-popup');\r\n var cliWrapper = cli ? closest(cli, '.e-' + this.getModuleName() + '-wrapper') : null;\r\n var isInstLI = cli && cliWrapper && (this.isMenu ? this.getIndex(cli.id, true).length > 0\r\n : wrapper.firstElementChild.id === cliWrapper.firstElementChild.id);\r\n if (Browser.isDevice && this.isMenu) {\r\n this.removeLIStateByClass([FOCUSED], [wrapper].concat(this.getPopups()));\r\n this.mouseDownHandler(e);\r\n }\r\n if (cli && cliWrapper && this.isMenu) {\r\n var cliWrapperId = cliWrapper.id ? regex.exec(cliWrapper.id)[1] : cliWrapper.querySelector('.e-menu-parent').id;\r\n if (this.element.id !== cliWrapperId) {\r\n return;\r\n }\r\n }\r\n if (isInstLI && e.type === 'click' && !cli.classList.contains(HEADER)) {\r\n this.setLISelected(cli);\r\n var navIdx = this.getIndex(cli.id, true);\r\n var item = this.getItem(navIdx);\r\n var eventArgs = { element: cli, item: item, event: e };\r\n this.trigger('select', eventArgs);\r\n }\r\n if (isInstLI && (e.type === 'mouseover' || Browser.isDevice || this.showItemOnClick)) {\r\n var ul = void 0;\r\n if (cli.classList.contains(HEADER)) {\r\n ul = wrapper.children[this.navIdx.length - 1];\r\n this.toggleAnimation(ul);\r\n var sli = this.getLIByClass(ul, SELECTED);\r\n if (sli) {\r\n sli.classList.remove(SELECTED);\r\n }\r\n detach(cli.parentNode);\r\n this.navIdx.pop();\r\n }\r\n else {\r\n if (!cli.classList.contains(SEPARATOR)) {\r\n this.showSubMenu = true;\r\n var cul = cli.parentNode;\r\n this.cliIdx = this.getIdx(cul, cli);\r\n if (this.isMenu || !Browser.isDevice) {\r\n var culIdx = this.isMenu ? Array.prototype.indexOf.call([wrapper].concat(this.getPopups()), closest(cul, '.' + 'e-' + this.getModuleName() + '-wrapper'))\r\n : this.getIdx(wrapper, cul);\r\n if (this.navIdx[culIdx] === this.cliIdx) {\r\n this.showSubMenu = false;\r\n }\r\n if (culIdx !== this.navIdx.length && (e.type !== 'mouseover' || this.showSubMenu)) {\r\n var sli = this.getLIByClass(cul, SELECTED);\r\n if (sli) {\r\n sli.classList.remove(SELECTED);\r\n }\r\n this.isClosed = true;\r\n this.keyType = 'click';\r\n if (this.showItemOnClick) {\r\n this.setLISelected(cli);\r\n }\r\n this.closeMenu(culIdx + 1, e);\r\n if (this.showItemOnClick) {\r\n this.setLISelected(cli);\r\n }\r\n }\r\n }\r\n if (!this.isClosed) {\r\n this.afterCloseMenu(e);\r\n }\r\n this.isClosed = false;\r\n }\r\n }\r\n }\r\n else {\r\n if (this.isMenu && trgt.tagName === 'DIV' && this.navIdx.length && closest(trgt, '.e-menu-vscroll')) {\r\n var popupEle = closest(trgt, '.' + POPUP);\r\n var cIdx = Array.prototype.indexOf.call(this.getPopups(), popupEle) + 1;\r\n if (cIdx < this.navIdx.length) {\r\n this.closeMenu(cIdx + 1, e);\r\n if (popupEle) {\r\n this.removeLIStateByClass([FOCUSED, SELECTED], [popupEle]);\r\n }\r\n }\r\n }\r\n else if (this.isMenu && this.hamburgerMode && trgt.tagName === 'SPAN'\r\n && trgt.classList.contains('e-menu-icon')) {\r\n this.menuHeaderClickHandler(e);\r\n }\r\n else {\r\n if (trgt.tagName !== 'UL' || (this.isMenu ? trgt.parentElement.classList.contains('e-menu-wrapper') &&\r\n !this.getIndex(trgt.querySelector('.' + ITEM).id, true).length : trgt.parentElement !== wrapper)) {\r\n if (!cli) {\r\n this.removeLIStateByClass([SELECTED], [wrapper]);\r\n }\r\n if (!cli || !cli.querySelector('.' + CARET)) {\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MenuBase.prototype.afterCloseMenu = function (e) {\r\n var isHeader;\r\n if (this.showSubMenu) {\r\n if (this.showItemOnClick && this.navIdx.length === 0) {\r\n isHeader = closest(e.target, '.e-menu-parent.e-control');\r\n }\r\n else {\r\n isHeader = closest(this.element, '.e-menu-parent.e-control');\r\n }\r\n var idx = this.navIdx.concat(this.cliIdx);\r\n var item = this.getItem(idx);\r\n if (item && item[this.getField('children', idx.length - 1)] &&\r\n item[this.getField('children', idx.length - 1)].length) {\r\n if (e.type === 'mouseover' || (Browser.isDevice && this.isMenu)) {\r\n this.setLISelected(this.cli);\r\n }\r\n if ((!this.hamburgerMode && isHeader) || (this.hamburgerMode && this.cli.getAttribute('aria-expanded') === 'false')) {\r\n this.cli.setAttribute('aria-expanded', 'true');\r\n this.navIdx.push(this.cliIdx);\r\n this.openMenu(this.cli, item, null, null, e);\r\n }\r\n }\r\n else {\r\n if (e.type !== 'mouseover') {\r\n this.closeMenu(null, e);\r\n }\r\n }\r\n if (!isHeader) {\r\n var cul = this.getUlByNavIdx();\r\n var sli = this.getLIByClass(cul, SELECTED);\r\n if (sli) {\r\n sli.setAttribute('aria-expanded', 'false');\r\n sli.classList.remove(SELECTED);\r\n }\r\n }\r\n }\r\n this.keyType = '';\r\n };\r\n MenuBase.prototype.setLISelected = function (li) {\r\n var sli = this.getLIByClass(li.parentElement, SELECTED);\r\n if (sli) {\r\n sli.classList.remove(SELECTED);\r\n }\r\n if (!this.isMenu) {\r\n li.classList.remove(FOCUSED);\r\n }\r\n li.classList.add(SELECTED);\r\n };\r\n MenuBase.prototype.getLIByClass = function (ul, classname) {\r\n for (var i = 0, len = ul.children.length; i < len; i++) {\r\n if (ul.children[i].classList.contains(classname)) {\r\n return ul.children[i];\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * This method is used to get the index of the menu item in the Menu based on the argument.\r\n *\r\n * @param {MenuItem | string} item - item be passed to get the index | id to be passed to get the item index.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.getItemIndex = function (item, isUniqueId) {\r\n var idx;\r\n if (typeof item === 'string') {\r\n idx = item;\r\n }\r\n else {\r\n idx = item.id;\r\n }\r\n var isText = (isUniqueId === false) ? false : true;\r\n var navIdx = this.getIndex(idx, isText);\r\n return navIdx;\r\n };\r\n /**\r\n * This method is used to set the menu item in the Menu based on the argument.\r\n *\r\n * @param {MenuItem} item - item need to be updated.\r\n * @param {string} id - id to be passed to update the item.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.setItem = function (item, id, isUniqueId) {\r\n var idx = id ? id : item.id;\r\n var isText = (isUniqueId === false) ? false : true;\r\n var navIdx = this.getIndex(idx, isText);\r\n var newItem = this.getItem(navIdx);\r\n newItem.iconCss = item.iconCss;\r\n newItem.id = item.id;\r\n newItem.text = item.text;\r\n newItem.url = item.url;\r\n newItem.separator = item.separator;\r\n newItem.items = item.items;\r\n };\r\n MenuBase.prototype.getItem = function (navIdx) {\r\n navIdx = navIdx.slice();\r\n var idx = navIdx.pop();\r\n var items = this.getItems(navIdx);\r\n return items[idx];\r\n };\r\n MenuBase.prototype.getItems = function (navIdx) {\r\n var items = this.items;\r\n for (var i = 0; i < navIdx.length; i++) {\r\n items = items[navIdx[i]][this.getField('children', i)];\r\n }\r\n return items;\r\n };\r\n MenuBase.prototype.setItems = function (newItems, navIdx) {\r\n var items = this.getItems(navIdx);\r\n items.splice(0, items.length);\r\n for (var i = 0; i < newItems.length; i++) {\r\n items.splice(i, 0, newItems[i]);\r\n }\r\n };\r\n MenuBase.prototype.getIdx = function (ul, li, skipHdr) {\r\n if (skipHdr === void 0) { skipHdr = true; }\r\n var idx = Array.prototype.indexOf.call(ul.children, li);\r\n if (skipHdr && ul.children[0].classList.contains(HEADER)) {\r\n idx--;\r\n }\r\n return idx;\r\n };\r\n MenuBase.prototype.getLI = function (elem) {\r\n if (elem.tagName === 'LI' && elem.classList.contains('e-menu-item')) {\r\n return elem;\r\n }\r\n return closest(elem, 'li.e-menu-item');\r\n };\r\n MenuBase.prototype.updateItemsByNavIdx = function () {\r\n var items = this.items;\r\n var count = 0;\r\n for (var index = 0; index < this.navIdx.length; index++) {\r\n items = items[index].items;\r\n if (!items) {\r\n break;\r\n }\r\n count++;\r\n var ul = this.getUlByNavIdx(count);\r\n if (!ul) {\r\n break;\r\n }\r\n this.updateItem(ul, items);\r\n }\r\n };\r\n MenuBase.prototype.removeChildElement = function (elem) {\r\n while (elem.firstElementChild) {\r\n elem.removeChild(elem.firstElementChild);\r\n }\r\n return elem;\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @private\r\n * @param {MenuBaseModel} newProp - Specifies the new properties\r\n * @param {MenuBaseModel} oldProp - Specifies the old properties\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var _this = this;\r\n var wrapper = this.getWrapper();\r\n var _loop_2 = function (prop) {\r\n switch (prop) {\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([wrapper], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([wrapper], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'enableRtl':\r\n wrapper.classList.toggle(RTL);\r\n break;\r\n case 'showItemOnClick':\r\n this_1.unWireEvents();\r\n this_1.showItemOnClick = newProp.showItemOnClick;\r\n this_1.wireEvents();\r\n break;\r\n case 'enableScrolling':\r\n if (newProp.enableScrolling) {\r\n var ul_2;\r\n if (this_1.element.classList.contains('e-vertical')) {\r\n addScrolling(this_1.createElement, wrapper, this_1.element, 'vscroll', this_1.enableRtl);\r\n }\r\n else {\r\n addScrolling(this_1.createElement, wrapper, this_1.element, 'hscroll', this_1.enableRtl);\r\n }\r\n this_1.getPopups().forEach(function (wrapper) {\r\n ul_2 = select('.e-ul', wrapper);\r\n addScrolling(_this.createElement, wrapper, ul_2, 'vscroll', _this.enableRtl);\r\n });\r\n }\r\n else {\r\n var ul_3 = wrapper.children[0];\r\n if (this_1.element.classList.contains('e-vertical')) {\r\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\r\n }\r\n else {\r\n destroyScroll(getInstance(ul_3, HScroll), ul_3);\r\n }\r\n wrapper.style.overflow = '';\r\n wrapper.appendChild(this_1.element);\r\n this_1.getPopups().forEach(function (wrapper) {\r\n ul_3 = wrapper.children[0];\r\n destroyScroll(getInstance(ul_3, VScroll), ul_3);\r\n wrapper.style.overflow = '';\r\n });\r\n }\r\n break;\r\n case 'items': {\r\n var idx = void 0;\r\n var navIdx = void 0;\r\n var item = void 0;\r\n if (!Object.keys(oldProp.items).length) {\r\n this_1.updateItem(this_1.element, this_1.items);\r\n if (!this_1.hamburgerMode) {\r\n for (var i = 1, count = wrapper.childElementCount; i < count; i++) {\r\n detach(wrapper.lastElementChild);\r\n }\r\n }\r\n this_1.navIdx = [];\r\n }\r\n else {\r\n var keys = Object.keys(newProp.items);\r\n for (var i = 0; i < keys.length; i++) {\r\n navIdx = this_1.getChangedItemIndex(newProp, [], Number(keys[i]));\r\n if (navIdx.length <= this_1.getWrapper().children.length) {\r\n idx = navIdx.pop();\r\n item = this_1.getItems(navIdx);\r\n this_1.insertAfter([item[idx]], item[idx].text);\r\n this_1.removeItem(item, navIdx, idx);\r\n this_1.setItems(item, navIdx);\r\n }\r\n navIdx.length = 0;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n _loop_2(prop);\r\n }\r\n };\r\n MenuBase.prototype.updateItem = function (ul, items) {\r\n if (isBlazor() && !this.isMenu) {\r\n ul = this.removeChildElement(ul);\r\n }\r\n else {\r\n ul.innerHTML = '';\r\n }\r\n var lis = [].slice.call(this.createItems(items).children);\r\n lis.forEach(function (li) {\r\n ul.appendChild(li);\r\n });\r\n };\r\n MenuBase.prototype.getChangedItemIndex = function (newProp, index, idx) {\r\n index.push(idx);\r\n var key = Object.keys(newProp.items[idx]).pop();\r\n if (key === 'items') {\r\n var item = newProp.items[idx];\r\n var popStr = Object.keys(item.items).pop();\r\n if (popStr) {\r\n this.getChangedItemIndex(item, index, Number(popStr));\r\n }\r\n }\r\n else {\r\n if (key === 'isParentArray' && index.length > 1) {\r\n index.pop();\r\n }\r\n }\r\n return index;\r\n };\r\n MenuBase.prototype.removeItem = function (item, navIdx, idx) {\r\n item.splice(idx, 1);\r\n var uls = this.getWrapper().children;\r\n if (navIdx.length < uls.length) {\r\n detach(uls[navIdx.length].children[idx]);\r\n }\r\n };\r\n /**\r\n * Used to unwire the bind events.\r\n *\r\n * @private\r\n * @param {string} targetSelctor - Specifies the target selector\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.unWireEvents = function (targetSelctor) {\r\n if (targetSelctor === void 0) { targetSelctor = this.target; }\r\n var wrapper = this.getWrapper();\r\n if (targetSelctor) {\r\n var target = void 0;\r\n var touchModule = void 0;\r\n var targetElems = selectAll(targetSelctor);\r\n for (var i = 0, len = targetElems.length; i < len; i++) {\r\n target = targetElems[i];\r\n if (this.isMenu) {\r\n EventHandler.remove(target, 'click', this.menuHeaderClickHandler);\r\n }\r\n else {\r\n if (Browser.isIos) {\r\n touchModule = getInstance(target, Touch);\r\n if (touchModule) {\r\n touchModule.destroy();\r\n }\r\n }\r\n else {\r\n EventHandler.remove(target, 'contextmenu', this.cmenuHandler);\r\n }\r\n }\r\n }\r\n if (!this.isMenu) {\r\n EventHandler.remove(this.targetElement, 'scroll', this.scrollHandler);\r\n for (var _i = 0, _a = getScrollableParent(this.targetElement); _i < _a.length; _i++) {\r\n var parent_2 = _a[_i];\r\n EventHandler.remove(parent_2, 'scroll', this.scrollHandler);\r\n }\r\n }\r\n }\r\n if (!Browser.isDevice) {\r\n EventHandler.remove(this.isMenu ? document : wrapper, 'mouseover', this.delegateMoverHandler);\r\n EventHandler.remove(document, 'mousedown', this.delegateMouseDownHandler);\r\n }\r\n EventHandler.remove(document, 'click', this.delegateClickHandler);\r\n this.unWireKeyboardEvent(wrapper);\r\n this.rippleFn();\r\n };\r\n MenuBase.prototype.unWireKeyboardEvent = function (element) {\r\n var keyboardModule = getInstance(element, KeyboardEvents);\r\n if (keyboardModule) {\r\n keyboardModule.destroy();\r\n }\r\n };\r\n MenuBase.prototype.toggleAnimation = function (ul, isMenuOpen) {\r\n var _this = this;\r\n if (isMenuOpen === void 0) { isMenuOpen = true; }\r\n var pUlHeight;\r\n var pElement;\r\n if (this.animationSettings.effect === 'None' || !isMenuOpen) {\r\n this.end(ul, isMenuOpen);\r\n }\r\n else {\r\n this.animation.animate(ul, {\r\n name: this.animationSettings.effect,\r\n duration: this.animationSettings.duration,\r\n timingFunction: this.animationSettings.easing,\r\n begin: function (options) {\r\n if (_this.hamburgerMode) {\r\n pElement = options.element.parentElement;\r\n options.element.style.position = 'absolute';\r\n pUlHeight = pElement.offsetHeight;\r\n options.element.style.maxHeight = options.element.offsetHeight + 'px';\r\n pElement.style.maxHeight = '';\r\n }\r\n else {\r\n options.element.style.display = 'block';\r\n options.element.style.maxHeight = options.element.getBoundingClientRect().height + 'px';\r\n }\r\n },\r\n progress: function (options) {\r\n if (_this.hamburgerMode) {\r\n pElement.style.minHeight = (pUlHeight + options.element.offsetHeight) + 'px';\r\n }\r\n },\r\n end: function (options) {\r\n if (_this.hamburgerMode) {\r\n options.element.style.position = '';\r\n options.element.style.maxHeight = '';\r\n pElement.style.minHeight = '';\r\n options.element.style.top = 0 + 'px';\r\n options.element.children[0].focus();\r\n _this.triggerOpen(options.element.children[0]);\r\n }\r\n else {\r\n _this.end(options.element, isMenuOpen);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n MenuBase.prototype.triggerOpen = function (ul) {\r\n var item = this.navIdx.length ? this.getItem(this.navIdx) : null;\r\n var eventArgs = {\r\n element: ul, parentItem: item, items: item ? item.items : this.items\r\n };\r\n this.trigger('onOpen', eventArgs);\r\n };\r\n MenuBase.prototype.end = function (ul, isMenuOpen) {\r\n if (isMenuOpen) {\r\n ul.style.display = 'block';\r\n ul.style.maxHeight = '';\r\n this.triggerOpen(ul);\r\n if (ul.querySelector('.' + FOCUSED)) {\r\n ul.querySelector('.' + FOCUSED).focus();\r\n }\r\n else {\r\n var ele = this.getWrapper().children[this.getIdx(this.getWrapper(), ul) - 1];\r\n if (ele) {\r\n ele.querySelector('.' + SELECTED).focus();\r\n }\r\n else {\r\n this.element.focus();\r\n }\r\n }\r\n }\r\n else {\r\n if (ul === this.element) {\r\n var fli = this.getLIByClass(this.element, FOCUSED);\r\n if (fli) {\r\n fli.classList.remove(FOCUSED);\r\n }\r\n var sli = this.getLIByClass(this.element, SELECTED);\r\n if (sli) {\r\n sli.classList.remove(SELECTED);\r\n }\r\n ul.style.display = 'none';\r\n }\r\n else {\r\n detach(ul);\r\n }\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist data\r\n */\r\n MenuBase.prototype.getPersistData = function () {\r\n return '';\r\n };\r\n /**\r\n * Get wrapper element.\r\n *\r\n * @returns {Element} - Wrapper element\r\n * @private\r\n */\r\n MenuBase.prototype.getWrapper = function () {\r\n return closest(this.element, '.e-' + this.getModuleName() + '-wrapper');\r\n };\r\n MenuBase.prototype.getIndex = function (data, isUniqueId, items, nIndex, isCallBack, level) {\r\n if (items === void 0) { items = this.items; }\r\n if (nIndex === void 0) { nIndex = []; }\r\n if (isCallBack === void 0) { isCallBack = false; }\r\n if (level === void 0) { level = 0; }\r\n var item;\r\n level = isCallBack ? level + 1 : 0;\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n item = items[i];\r\n if ((isUniqueId ? item[this.getField('itemId', level)] : item[this.getField('text', level)]) === data) {\r\n nIndex.push(i);\r\n break;\r\n }\r\n else if (item[this.getField('children', level)]\r\n && item[this.getField('children', level)].length) {\r\n nIndex = this.getIndex(data, isUniqueId, item[this.getField('children', level)], nIndex, true, level);\r\n if (nIndex[nIndex.length - 1] === -1) {\r\n if (i !== len - 1) {\r\n nIndex.pop();\r\n }\r\n }\r\n else {\r\n nIndex.unshift(i);\r\n break;\r\n }\r\n }\r\n else {\r\n if (i === len - 1) {\r\n nIndex.push(-1);\r\n }\r\n }\r\n }\r\n return (!isCallBack && nIndex[0] === -1) ? [] : nIndex;\r\n };\r\n /**\r\n * This method is used to enable or disable the menu items in the Menu based on the items and enable argument.\r\n *\r\n * @param {string[]} items - Text items that needs to be enabled/disabled.\r\n * @param {boolean} enable - Set `true`/`false` to enable/disable the list items.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.enableItems = function (items, enable, isUniqueId) {\r\n if (enable === void 0) { enable = true; }\r\n var ul;\r\n var idx;\r\n var navIdx;\r\n var disabled = DISABLED;\r\n var skipItem;\r\n for (var i = 0; i < items.length; i++) {\r\n navIdx = this.getIndex(items[i], isUniqueId);\r\n if (this.navIdx.length) {\r\n if (navIdx.length !== 1) {\r\n skipItem = false;\r\n for (var i_1 = 0, len = navIdx.length - 1; i_1 < len; i_1++) {\r\n if (navIdx[i_1] !== this.navIdx[i_1]) {\r\n skipItem = true;\r\n break;\r\n }\r\n }\r\n if (skipItem) {\r\n continue;\r\n }\r\n }\r\n }\r\n else {\r\n if (navIdx.length !== 1) {\r\n continue;\r\n }\r\n }\r\n idx = navIdx.pop();\r\n ul = this.getUlByNavIdx(navIdx.length);\r\n if (ul) {\r\n if (enable) {\r\n if (this.isMenu) {\r\n ul.children[idx].classList.remove(disabled);\r\n ul.children[idx].removeAttribute('aria-disabled');\r\n }\r\n else {\r\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\r\n ul.children[idx + 1].classList.remove(disabled);\r\n }\r\n else {\r\n ul.children[idx].classList.remove(disabled);\r\n }\r\n }\r\n }\r\n else {\r\n if (this.isMenu) {\r\n ul.children[idx].classList.add(disabled);\r\n ul.children[idx].setAttribute('aria-disabled', 'true');\r\n }\r\n else {\r\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\r\n ul.children[idx + 1].classList.add(disabled);\r\n }\r\n else {\r\n ul.children[idx].classList.add(disabled);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * This method is used to show the menu items in the Menu based on the items text.\r\n *\r\n * @param {string[]} items - Text items that needs to be shown.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.showItems = function (items, isUniqueId) {\r\n this.showHideItems(items, false, isUniqueId);\r\n };\r\n /**\r\n * This method is used to hide the menu items in the Menu based on the items text.\r\n *\r\n * @param {string[]} items - Text items that needs to be hidden.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.hideItems = function (items, isUniqueId) {\r\n this.showHideItems(items, true, isUniqueId);\r\n };\r\n MenuBase.prototype.showHideItems = function (items, ishide, isUniqueId) {\r\n var ul;\r\n var index;\r\n var navIdx;\r\n for (var i = 0; i < items.length; i++) {\r\n navIdx = this.getIndex(items[i], isUniqueId);\r\n index = navIdx.pop();\r\n ul = this.getUlByNavIdx(navIdx.length);\r\n if (ul) {\r\n if (ishide) {\r\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\r\n ul.children[index + 1].classList.add(HIDE);\r\n }\r\n else {\r\n ul.children[index].classList.add(HIDE);\r\n }\r\n }\r\n else {\r\n if (Browser.isDevice && !ul.classList.contains('e-contextmenu')) {\r\n ul.children[index + 1].classList.remove(HIDE);\r\n }\r\n else {\r\n ul.children[index].classList.remove(HIDE);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * It is used to remove the menu items from the Menu based on the items text.\r\n *\r\n * @param {string[]} items Text items that needs to be removed.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.removeItems = function (items, isUniqueId) {\r\n var idx;\r\n var navIdx;\r\n var iitems;\r\n for (var i = 0; i < items.length; i++) {\r\n navIdx = this.getIndex(items[i], isUniqueId);\r\n idx = navIdx.pop();\r\n iitems = this.getItems(navIdx);\r\n this.removeItem(iitems, navIdx, idx);\r\n }\r\n };\r\n /**\r\n * It is used to insert the menu items after the specified menu item text.\r\n *\r\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\r\n * @param {string} text - Text item after that the element to be inserted.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.insertAfter = function (items, text, isUniqueId) {\r\n this.insertItems(items, text, isUniqueId);\r\n };\r\n /**\r\n * It is used to insert the menu items before the specified menu item text.\r\n *\r\n * @param {MenuItemModel[]} items - Items that needs to be inserted.\r\n * @param {string} text - Text item before that the element to be inserted.\r\n * @param {boolean} isUniqueId - Set `true` if it is a unique id.\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.insertBefore = function (items, text, isUniqueId) {\r\n this.insertItems(items, text, isUniqueId, false);\r\n };\r\n MenuBase.prototype.insertItems = function (items, text, isUniqueId, isAfter) {\r\n if (isAfter === void 0) { isAfter = true; }\r\n var li;\r\n var idx;\r\n var navIdx;\r\n var iitems;\r\n var menuitem;\r\n for (var i = 0; i < items.length; i++) {\r\n navIdx = this.getIndex(text, isUniqueId);\r\n idx = navIdx.pop();\r\n iitems = this.getItems(navIdx);\r\n menuitem = new MenuItem(iitems[0], 'items', items[i], true);\r\n iitems.splice(isAfter ? idx + 1 : idx, 0, menuitem);\r\n var uls = this.isMenu ? [this.getWrapper()].concat(this.getPopups()) : [].slice.call(this.getWrapper().children);\r\n if (navIdx.length < uls.length) {\r\n idx = isAfter ? idx + 1 : idx;\r\n li = this.createItems(iitems).children[idx];\r\n var ul = this.isMenu ? select('.e-menu-parent', uls[navIdx.length]) : uls[navIdx.length];\r\n ul.insertBefore(li, ul.children[idx]);\r\n }\r\n }\r\n };\r\n MenuBase.prototype.removeAttributes = function () {\r\n var _this = this;\r\n ['top', 'left', 'display', 'z-index'].forEach(function (key) {\r\n _this.element.style.removeProperty(key);\r\n });\r\n ['role', 'tabindex', 'class', 'style'].forEach(function (key) {\r\n if (key === 'class' && _this.element.classList.contains('e-menu-parent')) {\r\n _this.element.classList.remove('e-menu-parent');\r\n }\r\n if (['class', 'style'].indexOf(key) === -1 || !_this.element.getAttribute(key)) {\r\n _this.element.removeAttribute(key);\r\n }\r\n if (_this.isMenu && key === 'class' && _this.element.classList.contains('e-vertical')) {\r\n _this.element.classList.remove('e-vertical');\r\n }\r\n });\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n MenuBase.prototype.destroy = function () {\r\n var wrapper = this.getWrapper();\r\n if (wrapper) {\r\n this.unWireEvents();\r\n if (!this.isMenu) {\r\n this.clonedElement.style.display = '';\r\n if (this.clonedElement.tagName === 'EJS-CONTEXTMENU') {\r\n addClass([this.clonedElement], ['e-control', 'e-lib', 'e-' + this.getModuleName()]);\r\n this.element = this.clonedElement;\r\n }\r\n else {\r\n if (this.refreshing && this.clonedElement.childElementCount && this.clonedElement.children[0].tagName === 'LI') {\r\n this.setProperties({ 'items': [] }, true);\r\n }\r\n if (document.getElementById(this.clonedElement.id)) {\r\n var refEle = this.clonedElement.nextElementSibling;\r\n if (refEle && refEle !== wrapper) {\r\n this.clonedElement.parentElement.insertBefore(this.element, refEle);\r\n }\r\n else {\r\n this.clonedElement.parentElement.appendChild(this.element);\r\n }\r\n if (isBlazor() && !this.isMenu) {\r\n this.element = this.removeChildElement(this.element);\r\n }\r\n else {\r\n this.element.innerHTML = '';\r\n }\r\n append([].slice.call(this.clonedElement.children), this.element);\r\n detach(this.clonedElement);\r\n this.removeAttributes();\r\n }\r\n }\r\n this.clonedElement = null;\r\n }\r\n else {\r\n this.closeMenu();\r\n if (isBlazor() && !this.isMenu) {\r\n this.element = this.removeChildElement(this.element);\r\n }\r\n else {\r\n this.element.innerHTML = '';\r\n }\r\n this.removeAttributes();\r\n wrapper.parentNode.insertBefore(this.element, wrapper);\r\n this.clonedElement = null;\r\n }\r\n if (this.isMenu && this.clonedElement) {\r\n detach(this.element);\r\n wrapper.style.display = '';\r\n wrapper.classList.remove('e-' + this.getModuleName() + '-wrapper');\r\n wrapper.removeAttribute('data-ripple');\r\n }\r\n else {\r\n detach(wrapper);\r\n }\r\n _super.prototype.destroy.call(this);\r\n if (this.template) {\r\n this.clearTemplate(['template']);\r\n }\r\n }\r\n };\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"beforeItemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"onOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"onClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], MenuBase.prototype, \"created\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuBase.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], MenuBase.prototype, \"hoverDelay\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MenuBase.prototype, \"showItemOnClick\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuBase.prototype, \"target\", void 0);\r\n __decorate([\r\n Property('')\r\n ], MenuBase.prototype, \"filter\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], MenuBase.prototype, \"template\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MenuBase.prototype, \"enableScrolling\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], MenuBase.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\r\n ], MenuBase.prototype, \"fields\", void 0);\r\n __decorate([\r\n Collection([], MenuItem)\r\n ], MenuBase.prototype, \"items\", void 0);\r\n __decorate([\r\n Complex({ duration: 400, easing: 'ease', effect: 'SlideDown' }, MenuAnimationSettings)\r\n ], MenuBase.prototype, \"animationSettings\", void 0);\r\n MenuBase = __decorate([\r\n NotifyPropertyChanges\r\n ], MenuBase);\r\n return MenuBase;\r\n}(Component));\r\nexport { MenuBase };\r\n","import { select, detach } from '@syncfusion/ej2-base';\r\nimport { VScroll } from './v-scroll';\r\nimport { HScroll } from './h-scroll';\r\n/**\r\n * Used to add scroll in menu.\r\n *\r\n * @param {createElementType} createElement - Specifies the create element model\r\n * @param {HTMLElement} container - Specifies the element container\r\n * @param {HTMLElement} content - Specifies the content element\r\n * @param {string} scrollType - Specifies the scroll type\r\n * @param {boolean} enableRtl - Specifies the enable RTL property\r\n * @param {boolean} offset - Specifies the offset value\r\n * @returns {HTMLElement} - Element\r\n * @hidden\r\n */\r\nexport function addScrolling(createElement, container, content, scrollType, enableRtl, offset) {\r\n var containerOffset;\r\n var contentOffset;\r\n var parentElem = container.parentElement;\r\n if (scrollType === 'vscroll') {\r\n containerOffset = offset || container.getBoundingClientRect().height;\r\n contentOffset = content.getBoundingClientRect().height;\r\n }\r\n else {\r\n containerOffset = container.getBoundingClientRect().width;\r\n contentOffset = content.getBoundingClientRect().width;\r\n }\r\n if (containerOffset < contentOffset) {\r\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\r\n }\r\n else if (parentElem) {\r\n var width = parentElem.getBoundingClientRect().width;\r\n if (width < containerOffset && scrollType === 'hscroll') {\r\n contentOffset = width;\r\n container.style.maxWidth = width + 'px';\r\n return createScrollbar(createElement, container, content, scrollType, enableRtl, offset);\r\n }\r\n return content;\r\n }\r\n else {\r\n return content;\r\n }\r\n}\r\n/**\r\n * Used to create scroll bar in menu.\r\n *\r\n * @param {createElementType} createElement - Specifies the create element model\r\n * @param {HTMLElement} container - Specifies the element container\r\n * @param {HTMLElement} content - Specifies the content element\r\n * @param {string} scrollType - Specifies the scroll type\r\n * @param {boolean} enableRtl - Specifies the enable RTL property\r\n * @param {boolean} offset - Specifies the offset value\r\n * @returns {HTMLElement} - Element\r\n * @hidden\r\n */\r\nfunction createScrollbar(createElement, container, content, scrollType, enableRtl, offset) {\r\n var scrollEle = createElement('div', { className: 'e-menu-' + scrollType });\r\n container.appendChild(scrollEle);\r\n scrollEle.appendChild(content);\r\n if (offset) {\r\n scrollEle.style.overflow = 'hidden';\r\n scrollEle.style.height = offset + 'px';\r\n }\r\n else {\r\n scrollEle.style.maxHeight = container.style.maxHeight;\r\n container.style.overflow = 'hidden';\r\n }\r\n var scrollObj;\r\n if (scrollType === 'vscroll') {\r\n scrollObj = new VScroll({ enableRtl: enableRtl }, scrollEle);\r\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetHeight / 2;\r\n }\r\n else {\r\n scrollObj = new HScroll({ enableRtl: enableRtl }, scrollEle);\r\n scrollObj.scrollStep = select('.e-' + scrollType + '-bar', container).offsetWidth;\r\n }\r\n return scrollEle;\r\n}\r\n/**\r\n * Used to destroy the scroll option.\r\n *\r\n * @param {VScroll | HScroll} scrollObj - Specifies the scroller object\r\n * @param {Element} element - Specifies the element\r\n * @param {HTMLElement} skipEle - Specifies the skip element\r\n * @returns {void}\r\n * @hidden\r\n */\r\nexport function destroyScroll(scrollObj, element, skipEle) {\r\n if (scrollObj) {\r\n var menu = select('.e-menu-parent', element);\r\n if (menu) {\r\n if (!skipEle || skipEle === menu) {\r\n scrollObj.destroy();\r\n element.parentElement.appendChild(menu);\r\n detach(element);\r\n }\r\n }\r\n else {\r\n scrollObj.destroy();\r\n detach(element);\r\n }\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Touch, Component, EventHandler, selectAll, getUniqueID, removeClass } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, Property, Browser, detach, createElement as buildTag } from '@syncfusion/ej2-base';\r\nimport { classList, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nvar CLS_ROOT = 'e-vscroll';\r\nvar CLS_RTL = 'e-rtl';\r\nvar CLS_DISABLE = 'e-overlay';\r\nvar CLS_VSCROLLBAR = 'e-vscroll-bar';\r\nvar CLS_VSCROLLCON = 'e-vscroll-content';\r\nvar CLS_NAVARROW = 'e-nav-arrow';\r\nvar CLS_NAVUPARROW = 'e-nav-up-arrow';\r\nvar CLS_NAVDOWNARROW = 'e-nav-down-arrow';\r\nvar CLS_VSCROLLNAV = 'e-scroll-nav';\r\nvar CLS_VSCROLLNAVUP = 'e-scroll-up-nav';\r\nvar CLS_VSCROLLNAVDOWN = 'e-scroll-down-nav';\r\nvar CLS_DEVICE = 'e-scroll-device';\r\nvar CLS_OVERLAY = 'e-scroll-overlay';\r\nvar CLS_UPOVERLAY = 'e-scroll-up-overlay';\r\nvar CLS_DOWNOVERLAY = 'e-scroll-down-overlay';\r\nvar OVERLAY_MAXWID = 40;\r\n/**\r\n * VScroll module is introduces vertical scroller when content exceeds the current viewing area.\r\n * It can be useful for the components like Toolbar, Tab which needs vertical scrolling alone.\r\n * Hidden content can be view by touch moving or icon click.\r\n * ```html\r\n *
    \r\n * \r\n * ```\r\n */\r\nvar VScroll = /** @class */ (function (_super) {\r\n __extends(VScroll, _super);\r\n /**\r\n * Initializes a new instance of the VScroll class.\r\n *\r\n * @param {VScrollModel} options - Specifies VScroll model properties as options.\r\n * @param {string | HTMLElement} element - Specifies the element for which vertical scrolling applies.\r\n */\r\n function VScroll(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n VScroll.prototype.preRender = function () {\r\n this.browser = Browser.info.name;\r\n this.browserCheck = this.browser === 'mozilla';\r\n this.isDevice = Browser.isDevice;\r\n this.customStep = true;\r\n var ele = this.element;\r\n this.ieCheck = this.browser === 'edge' || this.browser === 'msie';\r\n this.initialize();\r\n if (ele.id === '') {\r\n ele.id = getUniqueID('vscroll');\r\n this.uniqueId = true;\r\n }\r\n ele.style.display = 'block';\r\n if (this.enableRtl) {\r\n ele.classList.add(CLS_RTL);\r\n }\r\n };\r\n /**\r\n * To Initialize the vertical scroll rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n VScroll.prototype.render = function () {\r\n this.touchModule = new Touch(this.element, { scroll: this.touchHandler.bind(this), swipe: this.swipeHandler.bind(this) });\r\n EventHandler.add(this.scrollEle, 'scroll', this.scrollEventHandler, this);\r\n if (!this.isDevice) {\r\n this.createNavIcon(this.element);\r\n }\r\n else {\r\n this.element.classList.add(CLS_DEVICE);\r\n this.createOverlayElement(this.element);\r\n }\r\n this.setScrollState();\r\n EventHandler.add(this.element, 'wheel', this.wheelEventHandler, this);\r\n };\r\n VScroll.prototype.setScrollState = function () {\r\n if (isNullOrUndefined(this.scrollStep) || this.scrollStep < 0) {\r\n this.scrollStep = this.scrollEle.offsetHeight;\r\n this.customStep = false;\r\n }\r\n else {\r\n this.customStep = true;\r\n }\r\n };\r\n VScroll.prototype.initialize = function () {\r\n var scrollCnt = buildTag('div', { className: CLS_VSCROLLCON });\r\n var scrollBar = buildTag('div', { className: CLS_VSCROLLBAR });\r\n scrollBar.setAttribute('tabindex', '-1');\r\n var ele = this.element;\r\n var innerEle = [].slice.call(ele.children);\r\n for (var _i = 0, innerEle_1 = innerEle; _i < innerEle_1.length; _i++) {\r\n var ele_1 = innerEle_1[_i];\r\n scrollCnt.appendChild(ele_1);\r\n }\r\n scrollBar.appendChild(scrollCnt);\r\n ele.appendChild(scrollBar);\r\n scrollBar.style.overflowY = 'hidden';\r\n this.scrollEle = scrollBar;\r\n this.scrollItems = scrollCnt;\r\n };\r\n VScroll.prototype.getPersistData = function () {\r\n var keyEntity = ['scrollStep'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - It returns the current module name.\r\n * @private\r\n */\r\n VScroll.prototype.getModuleName = function () {\r\n return 'vScroll';\r\n };\r\n /**\r\n * Removes the control from the DOM and also removes all its related events.\r\n *\r\n * @returns {void}\r\n */\r\n VScroll.prototype.destroy = function () {\r\n var el = this.element;\r\n el.style.display = '';\r\n removeClass([this.element], [CLS_ROOT, CLS_DEVICE]);\r\n var navs = selectAll('.e-' + el.id + '_nav.' + CLS_VSCROLLNAV, el);\r\n var overlays = selectAll('.' + CLS_OVERLAY, el);\r\n [].slice.call(overlays).forEach(function (ele) {\r\n detach(ele);\r\n });\r\n for (var _i = 0, _a = [].slice.call(this.scrollItems.children); _i < _a.length; _i++) {\r\n var elem = _a[_i];\r\n el.appendChild(elem);\r\n }\r\n if (this.uniqueId) {\r\n this.element.removeAttribute('id');\r\n }\r\n detach(this.scrollEle);\r\n if (navs.length > 0) {\r\n detach(navs[0]);\r\n if (!isNullOrUndefined(navs[1])) {\r\n detach(navs[1]);\r\n }\r\n }\r\n EventHandler.remove(this.scrollEle, 'scroll', this.scrollEventHandler);\r\n this.touchModule.destroy();\r\n this.touchModule = null;\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Specifies the value to disable/enable the VScroll component.\r\n * When set to `true` , the component will be disabled.\r\n *\r\n * @param {boolean} value - Based on this Boolean value, VScroll will be enabled (false) or disabled (true).\r\n * @returns {void}.\r\n */\r\n VScroll.prototype.disable = function (value) {\r\n var navEle = selectAll('.e-scroll-nav:not(.' + CLS_DISABLE + ')', this.element);\r\n if (value) {\r\n this.element.classList.add(CLS_DISABLE);\r\n }\r\n else {\r\n this.element.classList.remove(CLS_DISABLE);\r\n }\r\n [].slice.call(navEle).forEach(function (el) {\r\n el.setAttribute('tabindex', !value ? '0' : '-1');\r\n });\r\n };\r\n VScroll.prototype.createOverlayElement = function (element) {\r\n var id = element.id.concat('_nav');\r\n var downOverlayEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_DOWNOVERLAY });\r\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\r\n var downEle = buildTag('div', { id: id.concat('down'), className: clsDown });\r\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n downEle.appendChild(navItem);\r\n var upEle = buildTag('div', { className: CLS_OVERLAY + ' ' + CLS_UPOVERLAY });\r\n if (this.ieCheck) {\r\n downEle.classList.add('e-ie-align');\r\n }\r\n element.appendChild(downOverlayEle);\r\n element.appendChild(downEle);\r\n element.insertBefore(upEle, element.firstChild);\r\n this.eventBinding([downEle]);\r\n };\r\n VScroll.prototype.createNavIcon = function (element) {\r\n var id = element.id.concat('_nav');\r\n var clsDown = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVDOWN);\r\n var nav = buildTag('div', { id: id.concat('_down'), className: clsDown });\r\n nav.setAttribute('aria-disabled', 'false');\r\n var navItem = buildTag('div', { className: CLS_NAVDOWNARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n var clsUp = 'e-' + element.id.concat('_nav ' + CLS_VSCROLLNAV + ' ' + CLS_VSCROLLNAVUP);\r\n var navElement = buildTag('div', { id: id.concat('_up'), className: clsUp + ' ' + CLS_DISABLE });\r\n navElement.setAttribute('aria-disabled', 'true');\r\n var navUpItem = buildTag('div', { className: CLS_NAVUPARROW + ' ' + CLS_NAVARROW + ' e-icons' });\r\n navElement.appendChild(navUpItem);\r\n nav.appendChild(navItem);\r\n nav.setAttribute('tabindex', '0');\r\n element.appendChild(nav);\r\n element.insertBefore(navElement, element.firstChild);\r\n if (this.ieCheck) {\r\n nav.classList.add('e-ie-align');\r\n navElement.classList.add('e-ie-align');\r\n }\r\n this.eventBinding([nav, navElement]);\r\n };\r\n VScroll.prototype.onKeyPress = function (ev) {\r\n var _this = this;\r\n if (ev.key === 'Enter') {\r\n var timeoutFun_1 = function () {\r\n _this.keyTimeout = true;\r\n _this.eleScrolling(10, ev.target, true);\r\n };\r\n this.keyTimer = window.setTimeout(function () {\r\n timeoutFun_1();\r\n }, 100);\r\n }\r\n };\r\n VScroll.prototype.onKeyUp = function (ev) {\r\n if (ev.key !== 'Enter') {\r\n return;\r\n }\r\n if (this.keyTimeout) {\r\n this.keyTimeout = false;\r\n }\r\n else {\r\n ev.target.click();\r\n }\r\n clearTimeout(this.keyTimer);\r\n };\r\n VScroll.prototype.eventBinding = function (element) {\r\n var _this = this;\r\n [].slice.call(element).forEach(function (ele) {\r\n new Touch(ele, { tapHold: _this.tabHoldHandler.bind(_this), tapHoldThreshold: 500 });\r\n ele.addEventListener('keydown', _this.onKeyPress.bind(_this));\r\n ele.addEventListener('keyup', _this.onKeyUp.bind(_this));\r\n ele.addEventListener('mouseup', _this.repeatScroll.bind(_this));\r\n ele.addEventListener('touchend', _this.repeatScroll.bind(_this));\r\n ele.addEventListener('contextmenu', function (e) {\r\n e.preventDefault();\r\n });\r\n EventHandler.add(ele, 'click', _this.clickEventHandler, _this);\r\n });\r\n };\r\n VScroll.prototype.repeatScroll = function () {\r\n clearInterval(this.timeout);\r\n };\r\n VScroll.prototype.tabHoldHandler = function (ev) {\r\n var _this = this;\r\n var trgt = ev.originalEvent.target;\r\n trgt = this.contains(trgt, CLS_VSCROLLNAV) ? trgt.firstElementChild : trgt;\r\n var scrollDistance = 10;\r\n var timeoutFun = function () {\r\n _this.eleScrolling(scrollDistance, trgt, true);\r\n };\r\n this.timeout = window.setInterval(function () {\r\n timeoutFun();\r\n }, 50);\r\n };\r\n VScroll.prototype.contains = function (element, className) {\r\n return element.classList.contains(className);\r\n };\r\n VScroll.prototype.eleScrolling = function (scrollDis, trgt, isContinuous) {\r\n var classList = trgt.classList;\r\n if (classList.contains(CLS_VSCROLLNAV)) {\r\n classList = trgt.querySelector('.' + CLS_NAVARROW).classList;\r\n }\r\n if (classList.contains(CLS_NAVDOWNARROW)) {\r\n this.frameScrollRequest(scrollDis, 'add', isContinuous);\r\n }\r\n else if (classList.contains(CLS_NAVUPARROW)) {\r\n this.frameScrollRequest(scrollDis, '', isContinuous);\r\n }\r\n };\r\n VScroll.prototype.clickEventHandler = function (event) {\r\n this.eleScrolling(this.scrollStep, event.target, false);\r\n };\r\n VScroll.prototype.wheelEventHandler = function (e) {\r\n e.preventDefault();\r\n this.frameScrollRequest(this.scrollStep, (e.deltaY > 0 ? 'add' : ''), false);\r\n };\r\n VScroll.prototype.swipeHandler = function (e) {\r\n var swipeElement = this.scrollEle;\r\n var distance;\r\n if (e.velocity <= 1) {\r\n distance = e.distanceY / (e.velocity * 10);\r\n }\r\n else {\r\n distance = e.distanceY / e.velocity;\r\n }\r\n var start = 0.5;\r\n var animate = function () {\r\n var step = Math.sin(start);\r\n if (step <= 0) {\r\n window.cancelAnimationFrame(step);\r\n }\r\n else {\r\n if (e.swipeDirection === 'Up') {\r\n swipeElement.scrollTop += distance * step;\r\n }\r\n else if (e.swipeDirection === 'Down') {\r\n swipeElement.scrollTop -= distance * step;\r\n }\r\n start -= 0.02;\r\n window.requestAnimationFrame(animate);\r\n }\r\n };\r\n animate();\r\n };\r\n VScroll.prototype.scrollUpdating = function (scrollVal, action) {\r\n if (action === 'add') {\r\n this.scrollEle.scrollTop += scrollVal;\r\n }\r\n else {\r\n this.scrollEle.scrollTop -= scrollVal;\r\n }\r\n };\r\n VScroll.prototype.frameScrollRequest = function (scrollValue, action, isContinuous) {\r\n var _this = this;\r\n var step = 10;\r\n if (isContinuous) {\r\n this.scrollUpdating(scrollValue, action);\r\n return;\r\n }\r\n if (!this.customStep) {\r\n [].slice.call(selectAll('.' + CLS_OVERLAY, this.element)).forEach(function (el) {\r\n scrollValue -= el.offsetHeight;\r\n });\r\n }\r\n var animate = function () {\r\n if (scrollValue < step) {\r\n window.cancelAnimationFrame(step);\r\n }\r\n else {\r\n _this.scrollUpdating(step, action);\r\n scrollValue -= step;\r\n window.requestAnimationFrame(animate);\r\n }\r\n };\r\n animate();\r\n };\r\n VScroll.prototype.touchHandler = function (e) {\r\n var el = this.scrollEle;\r\n var distance = e.distanceY;\r\n if (e.scrollDirection === 'Up') {\r\n el.scrollTop = el.scrollTop + distance;\r\n }\r\n else if (e.scrollDirection === 'Down') {\r\n el.scrollTop = el.scrollTop - distance;\r\n }\r\n };\r\n VScroll.prototype.arrowDisabling = function (addDisableCls, removeDisableCls) {\r\n if (this.isDevice) {\r\n var arrowEle = isNullOrUndefined(addDisableCls) ? removeDisableCls : addDisableCls;\r\n var arrowIcon = arrowEle.querySelector('.' + CLS_NAVARROW);\r\n if (isNullOrUndefined(addDisableCls)) {\r\n classList(arrowIcon, [CLS_NAVDOWNARROW], [CLS_NAVUPARROW]);\r\n }\r\n else {\r\n classList(arrowIcon, [CLS_NAVUPARROW], [CLS_NAVDOWNARROW]);\r\n }\r\n }\r\n else {\r\n addDisableCls.classList.add(CLS_DISABLE);\r\n addDisableCls.setAttribute('aria-disabled', 'true');\r\n addDisableCls.removeAttribute('tabindex');\r\n removeDisableCls.classList.remove(CLS_DISABLE);\r\n removeDisableCls.setAttribute('aria-disabled', 'false');\r\n removeDisableCls.setAttribute('tabindex', '0');\r\n }\r\n this.repeatScroll();\r\n };\r\n VScroll.prototype.scrollEventHandler = function (e) {\r\n var target = e.target;\r\n var height = target.offsetHeight;\r\n var navUpEle = this.element.querySelector('.' + CLS_VSCROLLNAVUP);\r\n var navDownEle = this.element.querySelector('.' + CLS_VSCROLLNAVDOWN);\r\n var upOverlay = this.element.querySelector('.' + CLS_UPOVERLAY);\r\n var downOverlay = this.element.querySelector('.' + CLS_DOWNOVERLAY);\r\n var scrollTop = target.scrollTop;\r\n if (scrollTop <= 0) {\r\n scrollTop = -scrollTop;\r\n }\r\n if (this.isDevice) {\r\n if (scrollTop < OVERLAY_MAXWID) {\r\n upOverlay.style.height = scrollTop + 'px';\r\n }\r\n else {\r\n upOverlay.style.height = '40px';\r\n }\r\n if ((target.scrollHeight - Math.ceil(height + scrollTop)) < OVERLAY_MAXWID) {\r\n downOverlay.style.height = (target.scrollHeight - Math.ceil(height + scrollTop)) + 'px';\r\n }\r\n else {\r\n downOverlay.style.height = '40px';\r\n }\r\n }\r\n if (scrollTop === 0) {\r\n this.arrowDisabling(navUpEle, navDownEle);\r\n }\r\n else if (Math.ceil(height + scrollTop + .1) >= target.scrollHeight) {\r\n this.arrowDisabling(navDownEle, navUpEle);\r\n }\r\n else {\r\n var disEle = this.element.querySelector('.' + CLS_VSCROLLNAV + '.' + CLS_DISABLE);\r\n if (disEle) {\r\n disEle.classList.remove(CLS_DISABLE);\r\n disEle.setAttribute('aria-disabled', 'false');\r\n disEle.setAttribute('tabindex', '0');\r\n }\r\n }\r\n };\r\n /**\r\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\r\n *\r\n * @param {VScrollModel} newProp - It contains the new value of data.\r\n * @param {VScrollModel} oldProp - It contains the old value of data.\r\n * @returns {void}\r\n * @private\r\n */\r\n VScroll.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'scrollStep':\r\n this.setScrollState();\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n this.element.classList.add(CLS_RTL);\r\n }\r\n else {\r\n this.element.classList.remove(CLS_RTL);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property(null)\r\n ], VScroll.prototype, \"scrollStep\", void 0);\r\n VScroll = __decorate([\r\n NotifyPropertyChanges\r\n ], VScroll);\r\n return VScroll;\r\n}(Component));\r\nexport { VScroll };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/triple-slash-reference */\r\n/// \r\nimport { attributes, getUniqueID, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { getZindexPartial } from '@syncfusion/ej2-popups';\r\nimport { MenuBase, MenuItem } from '../common/menu-base';\r\n/**\r\n * The ContextMenu is a graphical user interface that appears on the user right click/touch hold operation.\r\n * ```html\r\n *
    \r\n *
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar ContextMenu = /** @class */ (function (_super) {\r\n __extends(ContextMenu, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @private\r\n * @param {ContextMenuModel} options - Specifies the context menu model\r\n * @param {string} element - Specifies the element\r\n */\r\n function ContextMenu(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * For internal use only - prerender processing.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ContextMenu.prototype.preRender = function () {\r\n this.isMenu = false;\r\n this.element.id = this.element.id || getUniqueID('ej2-contextmenu');\r\n _super.prototype.preRender.call(this);\r\n };\r\n ContextMenu.prototype.initialize = function () {\r\n _super.prototype.initialize.call(this);\r\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\r\n this.element.style.zIndex = getZindexPartial(this.element).toString();\r\n };\r\n /**\r\n * This method is used to open the ContextMenu in specified position.\r\n *\r\n * @param {number} top - To specify ContextMenu vertical positioning.\r\n * @param {number} left - To specify ContextMenu horizontal positioning.\r\n * @param {HTMLElement} target - To calculate z-index for ContextMenu based upon the specified target.\r\n * @function open\r\n * @returns {void}\r\n */\r\n ContextMenu.prototype.open = function (top, left, target) {\r\n _super.prototype.openMenu.call(this, null, null, top, left, null, target);\r\n };\r\n /**\r\n * Closes the ContextMenu if it is opened.\r\n *\r\n * @function close\r\n * @returns {void}\r\n */\r\n ContextMenu.prototype.close = function () {\r\n _super.prototype.closeMenu.call(this);\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @private\r\n * @param {ContextMenuModel} newProp - Specifies new properties\r\n * @param {ContextMenuModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n */\r\n ContextMenu.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'filter':\r\n this.close();\r\n this.filter = newProp.filter;\r\n break;\r\n case 'target':\r\n this.unWireEvents(oldProp.target);\r\n this.wireEvents();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} - Module Name\r\n * @private\r\n */\r\n ContextMenu.prototype.getModuleName = function () {\r\n return 'contextmenu';\r\n };\r\n __decorate([\r\n Property('')\r\n ], ContextMenu.prototype, \"target\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ContextMenu.prototype, \"filter\", void 0);\r\n __decorate([\r\n Collection([], MenuItem)\r\n ], ContextMenu.prototype, \"items\", void 0);\r\n ContextMenu = __decorate([\r\n NotifyPropertyChanges\r\n ], ContextMenu);\r\n return ContextMenu;\r\n}(MenuBase));\r\nexport { ContextMenu };\r\n","/**\n * ContextMenu modules\n */\nexport * from './context-menu';\n","/**\r\n * Navigation all modules\r\n */\r\nexport * from './common/index';\r\nexport * from './toolbar/index';\r\nexport * from './accordion/index';\r\nexport * from './context-menu/index';\r\nexport * from './menu/index';\r\nexport * from './tab/index';\r\nexport * from './treeview/index';\r\nexport * from './sidebar/index';\r\nexport * from './breadcrumb/index';\r\n","/**\n * Menu modules\n */\nexport * from './menu';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/triple-slash-reference */\r\n/// \r\nimport { attributes, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { Browser, Complex, getUniqueID, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { MenuBase, FieldSettings } from '../common/menu-base';\r\nvar VMENU = 'e-vertical';\r\nvar SCROLLABLE = 'e-scrollable';\r\nvar HAMBURGER = 'e-hamburger';\r\n/**\r\n * The Menu is a graphical user interface that serve as navigation headers for your application or site.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Menu = /** @class */ (function (_super) {\r\n __extends(Menu, _super);\r\n /**\r\n * Constructor for creating the component.\r\n *\r\n * @private\r\n * @param {MenuModel} options - Specifies the menu model\r\n * @param {string} element - Specifies the element\r\n */\r\n function Menu(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.tempItems = [];\r\n return _this;\r\n }\r\n /**\r\n * Get module name.\r\n *\r\n * @private\r\n * @returns {string} - Module Name\r\n */\r\n Menu.prototype.getModuleName = function () {\r\n return 'menu';\r\n };\r\n /**\r\n * For internal use only - prerender processing.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Menu.prototype.preRender = function () {\r\n this.isMenu = true;\r\n this.element.id = this.element.id || getUniqueID('ej2-menu');\r\n if (this.template) {\r\n try {\r\n if (document.querySelectorAll(this.template).length) {\r\n this.template = document.querySelector(this.template).innerHTML.trim();\r\n this.clearChanges();\r\n }\r\n }\r\n catch (e) {\r\n /* action on catch */\r\n }\r\n }\r\n else {\r\n this.updateMenuItems(this.items);\r\n }\r\n _super.prototype.preRender.call(this);\r\n };\r\n Menu.prototype.initialize = function () {\r\n _super.prototype.initialize.call(this);\r\n attributes(this.element, { 'role': 'menubar', 'tabindex': '0' });\r\n if (this.orientation === 'Vertical') {\r\n this.element.classList.add(VMENU);\r\n if (this.hamburgerMode && !this.target) {\r\n this.element.previousElementSibling.classList.add(VMENU);\r\n }\r\n this.element.setAttribute('aria-orientation', 'vertical');\r\n }\r\n else {\r\n if (Browser.isDevice && !this.enableScrolling) {\r\n this.element.parentElement.classList.add(SCROLLABLE);\r\n }\r\n }\r\n if (this.hamburgerMode) {\r\n this.element.parentElement.classList.add(HAMBURGER);\r\n if (this.orientation === 'Horizontal') {\r\n this.element.classList.add('e-hide-menu');\r\n }\r\n }\r\n };\r\n Menu.prototype.updateMenuItems = function (items) {\r\n this.tempItems = items;\r\n this.items = [];\r\n this.tempItems.map(this.createMenuItems, this);\r\n this.setProperties({ items: this.items }, true);\r\n this.tempItems = [];\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @private\r\n * @param {MenuModel} newProp - Specifies the new properties.\r\n * @param {MenuModel} oldProp - Specifies the old properties.\r\n * @returns {void}\r\n */\r\n Menu.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var _this = this;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'orientation':\r\n if (newProp.orientation === 'Vertical') {\r\n this.element.classList.add(VMENU);\r\n if (this.hamburgerMode) {\r\n if (!this.target) {\r\n this.element.previousElementSibling.classList.add(VMENU);\r\n }\r\n this.element.classList.remove('e-hide-menu');\r\n }\r\n this.element.setAttribute('aria-orientation', 'vertical');\r\n }\r\n else {\r\n this.element.classList.remove(VMENU);\r\n if (this.hamburgerMode) {\r\n if (!this.target) {\r\n this.element.previousElementSibling.classList.remove(VMENU);\r\n }\r\n this.element.classList.add('e-hide-menu');\r\n }\r\n this.element.removeAttribute('aria-orientation');\r\n }\r\n break;\r\n case 'items':\r\n if (!Object.keys(oldProp.items).length) {\r\n this.updateMenuItems(newProp.items);\r\n }\r\n break;\r\n case 'hamburgerMode':\r\n if (!this.element.previousElementSibling) {\r\n _super.prototype.createHeaderContainer.call(this);\r\n }\r\n if (newProp.hamburgerMode) {\r\n this.element.parentElement.classList.add(HAMBURGER);\r\n [].slice.call(this.element.getElementsByClassName('e-blankicon')).forEach(function (li) {\r\n li.style[_this.enableRtl ? 'paddingRight' : 'paddingLeft'] = '';\r\n });\r\n }\r\n else {\r\n this.element.parentElement.classList.remove(HAMBURGER);\r\n if (this.orientation === 'Vertical') {\r\n this.setBlankIconStyle(this.element);\r\n }\r\n }\r\n if (this.orientation === 'Vertical') {\r\n if (!this.target) {\r\n this.element.previousElementSibling.classList.add(VMENU);\r\n }\r\n this.element.classList.remove('e-hide-menu');\r\n }\r\n else {\r\n if (this.target) {\r\n this.element.previousElementSibling.classList.add(VMENU);\r\n }\r\n else {\r\n this.element.previousElementSibling.classList.remove(VMENU);\r\n }\r\n this.element.classList[newProp.hamburgerMode ? 'add' : 'remove']('e-hide-menu');\r\n }\r\n break;\r\n case 'title':\r\n if (this.hamburgerMode && this.element.previousElementSibling) {\r\n newProp.title = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(newProp.title) : newProp.title;\r\n this.element.previousElementSibling.querySelector('.e-menu-title').innerHTML = newProp.title;\r\n }\r\n break;\r\n case 'target':\r\n if (this.hamburgerMode) {\r\n this.unWireEvents(oldProp.target);\r\n this.wireEvents();\r\n if (this.orientation === 'Horizontal') {\r\n if (!newProp.target) {\r\n if (!this.element.previousElementSibling) {\r\n _super.prototype.createHeaderContainer.call(this);\r\n }\r\n this.element.previousElementSibling.classList.remove(VMENU);\r\n }\r\n else {\r\n this.element.previousElementSibling.classList.add(VMENU);\r\n }\r\n this.element.classList.add('e-hide-menu');\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n };\r\n Menu.prototype.createMenuItems = function (item) {\r\n var idx;\r\n var i;\r\n var items = this.items;\r\n var pIdField = this.getField('parentId');\r\n if (item[pIdField]) {\r\n idx = this.getIndex(item[pIdField].toString(), true);\r\n for (i = 0; i < idx.length; i++) {\r\n if (!items[idx[i]].items) {\r\n items[idx[i]].items = [];\r\n }\r\n items = items[idx[i]].items;\r\n }\r\n items.push(item);\r\n }\r\n else {\r\n this.items.push(item);\r\n }\r\n };\r\n /**\r\n * This method is used to open the Menu in hamburger mode.\r\n *\r\n * @function open\r\n * @returns {void}\r\n */\r\n Menu.prototype.open = function () {\r\n _super.prototype.openHamburgerMenu.call(this);\r\n };\r\n /**\r\n * Closes the Menu if it is opened in hamburger mode.\r\n *\r\n * @function close\r\n * @returns {void}\r\n */\r\n Menu.prototype.close = function () {\r\n _super.prototype.closeHamburgerMenu.call(this);\r\n };\r\n __decorate([\r\n Property('Horizontal')\r\n ], Menu.prototype, \"orientation\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Menu.prototype, \"target\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Menu.prototype, \"template\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Menu.prototype, \"enableScrolling\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Menu.prototype, \"hamburgerMode\", void 0);\r\n __decorate([\r\n Property('Menu')\r\n ], Menu.prototype, \"title\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Menu.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Complex({ itemId: 'id', text: 'text', parentId: 'parentId', iconCss: 'iconCss', url: 'url', separator: 'separator', children: 'items' }, FieldSettings)\r\n ], Menu.prototype, \"fields\", void 0);\r\n Menu = __decorate([\r\n NotifyPropertyChanges\r\n ], Menu);\r\n return Menu;\r\n}(MenuBase));\r\nexport { Menu };\r\n","/**\n * Sidebar modules\n */\nexport * from './sidebar';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, formatUnit, EventHandler, Event, isNullOrUndefined, closest, Browser } from '@syncfusion/ej2-base';\r\nimport { Property, NotifyPropertyChanges, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\r\nimport { setStyleAttribute as setStyle, addClass, removeClass, Touch } from '@syncfusion/ej2-base';\r\nvar CONTROL = 'e-control';\r\nvar ROOT = 'e-sidebar';\r\nvar DOCKER = 'e-dock';\r\nvar CLOSE = 'e-close';\r\nvar OPEN = 'e-open';\r\nvar TRASITION = 'e-transition';\r\nvar DEFAULTBACKDROP = 'e-sidebar-overlay';\r\nvar CONTEXTBACKDROP = 'e-backdrop';\r\nvar RTL = 'e-rtl';\r\nvar RIGHT = 'e-right';\r\nvar LEFT = 'e-left';\r\nvar OVER = 'e-over';\r\nvar PUSH = 'e-push';\r\nvar SLIDE = 'e-slide';\r\nvar VISIBILITY = 'e-visibility';\r\nvar DISPLAY = 'e-sidebar-display';\r\nvar MAINCONTENTANIMATION = 'e-content-animation';\r\nvar DISABLEANIMATION = 'e-disable-animation';\r\nvar CONTEXT = 'e-sidebar-context';\r\nvar SIDEBARABSOLUTE = 'e-sidebar-absolute';\r\n/**\r\n * Sidebar is an expandable or collapsible\r\n * component that typically act as a side container to place the primary or secondary content alongside of the main content.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Sidebar = /** @class */ (function (_super) {\r\n __extends(Sidebar, _super);\r\n /* eslint-enable */\r\n function Sidebar(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n Sidebar.prototype.preRender = function () {\r\n this.setWidth();\r\n };\r\n Sidebar.prototype.render = function () {\r\n this.initialize();\r\n this.wireEvents();\r\n this.renderComplete();\r\n };\r\n Sidebar.prototype.initialize = function () {\r\n this.setTarget();\r\n this.addClass();\r\n this.setZindex();\r\n if (this.enableDock) {\r\n this.setDock();\r\n }\r\n if (this.isOpen) {\r\n this.show();\r\n }\r\n else {\r\n this.setMediaQuery();\r\n }\r\n this.checkType(true);\r\n this.setType(this.type);\r\n this.setCloseOnDocumentClick();\r\n this.setEnableRTL();\r\n if (Browser.isDevice) {\r\n this.windowWidth = window.innerWidth;\r\n }\r\n };\r\n Sidebar.prototype.setEnableRTL = function () {\r\n (this.enableRtl ? addClass : removeClass)([this.element], RTL);\r\n };\r\n Sidebar.prototype.setTarget = function () {\r\n this.targetEle = this.element.nextElementSibling;\r\n this.sidebarEleCopy = this.element.cloneNode(true);\r\n if (typeof (this.target) === 'string') {\r\n this.setProperties({ target: document.querySelector(this.target) }, true);\r\n }\r\n if (this.target) {\r\n this.target.insertBefore(this.element, this.target.children[0]);\r\n addClass([this.element], SIDEBARABSOLUTE);\r\n addClass([this.target], CONTEXT);\r\n this.targetEle = this.getTargetElement();\r\n }\r\n };\r\n Sidebar.prototype.getTargetElement = function () {\r\n var siblingElement = this.element.nextElementSibling;\r\n while (!isNOU(siblingElement)) {\r\n if (!siblingElement.classList.contains(ROOT)) {\r\n break;\r\n }\r\n siblingElement = siblingElement.nextElementSibling;\r\n }\r\n return siblingElement;\r\n };\r\n Sidebar.prototype.setCloseOnDocumentClick = function () {\r\n if (this.closeOnDocumentClick) {\r\n EventHandler.add(document, 'mousedown touchstart', this.documentclickHandler, this);\r\n }\r\n else {\r\n EventHandler.remove(document, 'mousedown touchstart', this.documentclickHandler);\r\n }\r\n };\r\n Sidebar.prototype.setWidth = function () {\r\n if (this.enableDock && this.position === 'Left') {\r\n setStyle(this.element, { 'width': this.setDimension(this.dockSize) });\r\n }\r\n else if (this.enableDock && this.position === 'Right') {\r\n setStyle(this.element, { 'width': this.setDimension(this.dockSize) });\r\n }\r\n else if (!this.enableDock) {\r\n setStyle(this.element, { 'width': this.setDimension(this.width) });\r\n }\r\n };\r\n Sidebar.prototype.setDimension = function (width) {\r\n if (typeof width === 'number') {\r\n width = formatUnit(width);\r\n }\r\n else if (typeof width === 'string') {\r\n width = (width.match(/px|%|em/)) ? width : formatUnit(width);\r\n }\r\n else {\r\n width = '100%';\r\n }\r\n return width;\r\n };\r\n Sidebar.prototype.setZindex = function () {\r\n setStyle(this.element, { 'z-index': '' + this.zIndex });\r\n };\r\n Sidebar.prototype.addClass = function () {\r\n if (this.element.tagName === \"EJS-SIDEBAR\") {\r\n addClass([this.element], DISPLAY);\r\n }\r\n var classELement = document.querySelector('.e-main-content');\r\n if (!isNullOrUndefined(classELement || this.targetEle)) {\r\n addClass([classELement || this.targetEle], [MAINCONTENTANIMATION]);\r\n }\r\n this.tabIndex = this.element.hasAttribute('tabindex') ? this.element.getAttribute('tabindex') : '0';\r\n if (!this.enableDock && this.type !== 'Auto') {\r\n addClass([this.element], [VISIBILITY]);\r\n }\r\n removeClass([this.element], [OPEN, CLOSE, RIGHT, LEFT, SLIDE, PUSH, OVER]);\r\n this.element.classList.add(ROOT);\r\n addClass([this.element], (this.position === 'Right') ? RIGHT : LEFT);\r\n if (this.enableDock) {\r\n addClass([this.element], DOCKER);\r\n }\r\n this.element.setAttribute('tabindex', this.tabIndex);\r\n if (this.type === 'Auto' && !Browser.isDevice) {\r\n this.show();\r\n }\r\n else if (!this.isOpen) {\r\n addClass([this.element], CLOSE);\r\n }\r\n };\r\n Sidebar.prototype.checkType = function (val) {\r\n if (!(this.type === 'Push' || this.type === 'Over' || this.type === 'Slide')) {\r\n this.type = 'Auto';\r\n }\r\n else {\r\n if (!this.element.classList.contains(CLOSE) && !val) {\r\n this.hide();\r\n }\r\n }\r\n };\r\n Sidebar.prototype.transitionEnd = function (e) {\r\n this.setDock();\r\n if (!isNullOrUndefined(e)) {\r\n this.triggerChange();\r\n }\r\n EventHandler.remove(this.element, 'transitionend', this.transitionEnd);\r\n };\r\n Sidebar.prototype.destroyBackDrop = function () {\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n if (this.target && this.showBackdrop && sibling) {\r\n removeClass([sibling], CONTEXTBACKDROP);\r\n }\r\n else if (this.showBackdrop && this.modal) {\r\n this.modal.style.display = 'none';\r\n this.modal.outerHTML = '';\r\n this.modal = null;\r\n }\r\n };\r\n /* eslint-disable */\r\n /**\r\n * Hide the Sidebar component, if it is in an open state.\r\n *\r\n * @returns {void}\r\n *\r\n */\r\n Sidebar.prototype.hide = function (e) {\r\n var _this = this;\r\n var closeArguments = {\r\n model: this,\r\n element: this.element,\r\n cancel: false,\r\n isInteracted: !isNullOrUndefined(e),\r\n event: (e || null)\r\n };\r\n this.trigger('close', closeArguments, function (observedcloseArgs) {\r\n if (!observedcloseArgs.cancel) {\r\n if (_this.element.classList.contains(CLOSE)) {\r\n return;\r\n }\r\n if (_this.element.classList.contains(OPEN) && !_this.animate) {\r\n _this.triggerChange();\r\n }\r\n addClass([_this.element], CLOSE);\r\n removeClass([_this.element], OPEN);\r\n setStyle(_this.element, { 'width': formatUnit(_this.enableDock ? _this.dockSize : _this.width) });\r\n _this.setType(_this.type);\r\n var sibling = document.querySelector('.e-main-content') || _this.targetEle;\r\n if (!_this.enableDock && sibling) {\r\n sibling.style.transform = 'translateX(' + 0 + 'px)';\r\n sibling.style[_this.position === 'Left' ? 'marginLeft' : 'marginRight'] = '0px';\r\n }\r\n _this.destroyBackDrop();\r\n _this.setAnimation();\r\n if (_this.type === 'Slide') {\r\n document.body.classList.remove('e-sidebar-overflow');\r\n }\r\n _this.setProperties({ isOpen: false }, true);\r\n if (_this.enableDock) {\r\n setTimeout(function () { return _this.setTimeOut(); }, 50);\r\n }\r\n EventHandler.add(_this.element, 'transitionend', _this.transitionEnd, _this);\r\n }\r\n });\r\n };\r\n Sidebar.prototype.setTimeOut = function () {\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n var elementWidth = this.element.getBoundingClientRect().width;\r\n if (this.element.classList.contains(OPEN) && sibling) {\r\n if (this.position === 'Left') {\r\n sibling.style.marginLeft = this.setDimension(this.width === 'auto' ? elementWidth : this.width);\r\n }\r\n else {\r\n sibling.style.marginRight = this.setDimension(this.width === 'auto' ? elementWidth : this.width);\r\n }\r\n }\r\n else if (this.element.classList.contains(CLOSE) && sibling) {\r\n if (this.position === 'Left') {\r\n sibling.style.marginLeft = this.setDimension(this.dockSize === 'auto' ? elementWidth : this.dockSize);\r\n }\r\n else {\r\n sibling.style.marginRight = this.setDimension(this.dockSize === 'auto' ? elementWidth : this.dockSize);\r\n }\r\n }\r\n };\r\n /* eslint-disable */\r\n /**\r\n * Shows the Sidebar component, if it is in closed state.\r\n *\r\n * @returns {void}\r\n */\r\n Sidebar.prototype.show = function (e) {\r\n var _this = this;\r\n var openArguments = {\r\n model: this,\r\n element: this.element,\r\n cancel: false,\r\n isInteracted: !isNullOrUndefined(e),\r\n event: (e || null)\r\n };\r\n this.trigger('open', openArguments, function (observedopenArgs) {\r\n if (!observedopenArgs.cancel) {\r\n removeClass([_this.element], VISIBILITY);\r\n if (_this.element.classList.contains(OPEN)) {\r\n return;\r\n }\r\n if (_this.element.classList.contains(CLOSE) && !_this.animate) {\r\n _this.triggerChange();\r\n }\r\n addClass([_this.element], [OPEN, TRASITION]);\r\n setStyle(_this.element, { 'transform': '' });\r\n removeClass([_this.element], CLOSE);\r\n setStyle(_this.element, { 'width': formatUnit(_this.width) });\r\n _this.setType(_this.type);\r\n _this.createBackDrop();\r\n _this.setAnimation();\r\n if (_this.type === 'Slide') {\r\n document.body.classList.add('e-sidebar-overflow');\r\n }\r\n _this.setProperties({ isOpen: true }, true);\r\n EventHandler.add(_this.element, 'transitionend', _this.transitionEnd, _this);\r\n }\r\n });\r\n };\r\n Sidebar.prototype.setAnimation = function () {\r\n if (this.animate) {\r\n removeClass([this.element], DISABLEANIMATION);\r\n }\r\n else {\r\n addClass([this.element], DISABLEANIMATION);\r\n }\r\n };\r\n Sidebar.prototype.triggerChange = function () {\r\n var changeArguments = { name: 'change', element: this.element };\r\n this.trigger('change', changeArguments);\r\n };\r\n Sidebar.prototype.setDock = function () {\r\n if (this.enableDock && this.position === 'Left' && !this.getState()) {\r\n setStyle(this.element, { 'transform': 'translateX(' + -100 + '%) translateX(' + this.setDimension(this.dockSize) + ')' });\r\n }\r\n else if (this.enableDock && this.position === 'Right' && !this.getState()) {\r\n setStyle(this.element, { 'transform': 'translateX(' + 100 + '%) translateX(' + '-' + this.setDimension(this.dockSize) + ')' });\r\n }\r\n if (this.element.classList.contains(CLOSE) && this.enableDock) {\r\n setStyle(this.element, { 'width': this.setDimension(this.dockSize) });\r\n }\r\n };\r\n Sidebar.prototype.createBackDrop = function () {\r\n if (this.target && this.showBackdrop && this.getState()) {\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n addClass([sibling], CONTEXTBACKDROP);\r\n }\r\n else if (this.showBackdrop && !this.modal && this.getState()) {\r\n this.modal = this.createElement('div');\r\n this.modal.className = DEFAULTBACKDROP;\r\n this.modal.style.display = 'block';\r\n document.body.appendChild(this.modal);\r\n }\r\n };\r\n Sidebar.prototype.getPersistData = function () {\r\n return this.addOnPersist(['type', 'position', 'isOpen']);\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - returns module name.\r\n * @private\r\n *\r\n */\r\n Sidebar.prototype.getModuleName = function () {\r\n return 'sidebar';\r\n };\r\n /**\r\n * Shows or hides the Sidebar based on the current state.\r\n *\r\n * @returns {void}\r\n */\r\n Sidebar.prototype.toggle = function () {\r\n if (this.element.classList.contains(OPEN)) {\r\n this.hide();\r\n }\r\n else {\r\n this.show();\r\n }\r\n };\r\n Sidebar.prototype.getState = function () {\r\n return this.element.classList.contains(OPEN) ? true : false;\r\n };\r\n Sidebar.prototype.setMediaQuery = function () {\r\n if (this.mediaQuery) {\r\n var media = false;\r\n if (typeof (this.mediaQuery) === 'string') {\r\n media = window.matchMedia(this.mediaQuery).matches;\r\n }\r\n else {\r\n media = (this.mediaQuery).matches;\r\n }\r\n if (media && this.windowWidth !== window.innerWidth) {\r\n this.show();\r\n }\r\n else if (this.getState() && this.windowWidth !== window.innerWidth) {\r\n this.hide();\r\n }\r\n }\r\n };\r\n Sidebar.prototype.resize = function () {\r\n if (this.type === 'Auto') {\r\n if (Browser.isDevice) {\r\n addClass([this.element], OVER);\r\n }\r\n else {\r\n addClass([this.element], PUSH);\r\n }\r\n }\r\n this.setMediaQuery();\r\n if (Browser.isDevice) {\r\n this.windowWidth = window.innerWidth;\r\n }\r\n };\r\n Sidebar.prototype.documentclickHandler = function (e) {\r\n if (closest(e.target, '.' + CONTROL + '' + '.' + ROOT)) {\r\n return;\r\n }\r\n this.hide(e);\r\n };\r\n Sidebar.prototype.enableGestureHandler = function (args) {\r\n if (!this.isOpen && this.position === 'Left' && args.swipeDirection === 'Right' &&\r\n (args.startX <= 20 && args.distanceX >= 50 && args.velocity >= 0.5)) {\r\n this.show();\r\n }\r\n else if (this.isOpen && this.position === 'Left' && args.swipeDirection === 'Left') {\r\n this.hide();\r\n }\r\n else if (this.isOpen && this.position === 'Right' && args.swipeDirection === 'Right') {\r\n this.hide();\r\n }\r\n else if (!this.isOpen && this.position === 'Right' && args.swipeDirection === 'Left'\r\n && (window.innerWidth - args.startX <= 20 && args.distanceX >= 50 && args.velocity >= 0.5)) {\r\n this.show();\r\n }\r\n };\r\n Sidebar.prototype.setEnableGestures = function () {\r\n if (this.enableGestures) {\r\n this.mainContentEle = new Touch(document.body, { swipe: this.enableGestureHandler.bind(this) });\r\n this.sidebarEle = new Touch(this.element, { swipe: this.enableGestureHandler.bind(this) });\r\n }\r\n else {\r\n if (this.mainContentEle && this.sidebarEle) {\r\n this.mainContentEle.destroy();\r\n this.sidebarEle.destroy();\r\n }\r\n }\r\n };\r\n Sidebar.prototype.wireEvents = function () {\r\n this.setEnableGestures();\r\n EventHandler.add(window, 'resize', this.resize, this);\r\n };\r\n Sidebar.prototype.unWireEvents = function () {\r\n EventHandler.remove(window, 'resize', this.resize);\r\n EventHandler.remove(document, 'mousedown touchstart', this.documentclickHandler);\r\n if (this.mainContentEle) {\r\n this.mainContentEle.destroy();\r\n }\r\n if (this.sidebarEle) {\r\n this.sidebarEle.destroy();\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {SidebarModel} newProp - specifies newProp value.\r\n * @param {SidebarModel} oldProp - specifies oldProp value.\r\n * @returns {void}\r\n * @private\r\n *\r\n */\r\n Sidebar.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n var isRendered = this.isServerRendered;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'isOpen':\r\n if (this.isOpen) {\r\n this.show();\r\n }\r\n else {\r\n this.hide();\r\n }\r\n break;\r\n case 'width':\r\n this.setWidth();\r\n if (!this.getState()) {\r\n this.setDock();\r\n }\r\n break;\r\n case 'animate':\r\n this.setAnimation();\r\n break;\r\n case 'type':\r\n this.checkType(false);\r\n removeClass([this.element], [VISIBILITY]);\r\n this.addClass();\r\n addClass([this.element], this.type === 'Auto' ? (Browser.isDevice ? ['e-over'] :\r\n ['e-push']) : ['e-' + this.type.toLowerCase()]);\r\n break;\r\n case 'position':\r\n this.element.style.transform = '';\r\n this.setDock();\r\n if (sibling) {\r\n sibling.style[this.position === 'Left' ? 'marginRight' : 'marginLeft'] = '0px';\r\n }\r\n if (this.position === 'Right') {\r\n removeClass([this.element], LEFT);\r\n addClass([this.element], RIGHT);\r\n }\r\n else {\r\n removeClass([this.element], RIGHT);\r\n addClass([this.element], LEFT);\r\n }\r\n this.setType(this.type);\r\n break;\r\n case 'showBackdrop':\r\n if (this.showBackdrop) {\r\n this.createBackDrop();\r\n }\r\n else {\r\n if (this.modal) {\r\n this.modal.style.display = 'none';\r\n this.modal.outerHTML = '';\r\n this.modal = null;\r\n }\r\n }\r\n break;\r\n case 'target':\r\n if (typeof (this.target) === 'string') {\r\n this.setProperties({ target: document.querySelector(this.target) }, true);\r\n }\r\n if (isNullOrUndefined(this.target)) {\r\n removeClass([this.element], SIDEBARABSOLUTE);\r\n removeClass([oldProp.target], CONTEXT);\r\n setStyle(sibling, { 'margin-left': 0, 'margin-right': 0 });\r\n document.body.insertAdjacentElement('afterbegin', this.element);\r\n }\r\n this.isServerRendered = false;\r\n _super.prototype.refresh.call(this);\r\n this.isServerRendered = isRendered;\r\n break;\r\n case 'closeOnDocumentClick':\r\n this.setCloseOnDocumentClick();\r\n break;\r\n case 'enableDock':\r\n if (!this.getState()) {\r\n this.setDock();\r\n }\r\n break;\r\n case 'zIndex':\r\n this.setZindex();\r\n break;\r\n case 'mediaQuery':\r\n this.setMediaQuery();\r\n break;\r\n case 'enableGestures':\r\n this.setEnableGestures();\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRTL();\r\n break;\r\n }\r\n }\r\n };\r\n Sidebar.prototype.setType = function (type) {\r\n var elementWidth = this.element.getBoundingClientRect().width;\r\n this.setZindex();\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n if (sibling) {\r\n sibling.style.transform = 'translateX(' + 0 + 'px)';\r\n if (!Browser.isDevice && this.type !== 'Auto') {\r\n sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = '0px';\r\n }\r\n }\r\n var margin = this.position === 'Left' ? elementWidth + 'px' : elementWidth + 'px';\r\n var eleWidth = this.position === 'Left' ? elementWidth : -(elementWidth);\r\n removeClass([this.element], [PUSH, OVER, SLIDE]);\r\n switch (type) {\r\n case 'Push':\r\n addClass([this.element], [PUSH]);\r\n if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) {\r\n sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin;\r\n }\r\n break;\r\n case 'Slide':\r\n addClass([this.element], [SLIDE]);\r\n if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) {\r\n sibling.style.transform = 'translateX(' + eleWidth + 'px)';\r\n }\r\n break;\r\n case 'Over':\r\n addClass([this.element], [OVER]);\r\n if (this.enableDock && this.element.classList.contains(CLOSE)) {\r\n if (sibling) {\r\n sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin;\r\n }\r\n }\r\n break;\r\n case 'Auto':\r\n addClass([this.element], [TRASITION]);\r\n if (Browser.isDevice) {\r\n if (sibling && (this.enableDock) && !this.getState()) {\r\n sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin;\r\n addClass([this.element], PUSH);\r\n }\r\n else {\r\n addClass([this.element], OVER);\r\n }\r\n }\r\n else {\r\n addClass([this.element], PUSH);\r\n if (sibling && (this.enableDock || this.element.classList.contains(OPEN))) {\r\n sibling.style[this.position === 'Left' ? 'marginLeft' : 'marginRight'] = margin;\r\n }\r\n }\r\n this.createBackDrop();\r\n }\r\n };\r\n /**\r\n * Removes the control from the DOM and detaches all its related event handlers. Also it removes the attributes and classes.\r\n *\r\n * @returns {void}\r\n *\r\n */\r\n Sidebar.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n if (this.target) {\r\n removeClass([this.target], CONTEXT);\r\n }\r\n this.destroyBackDrop();\r\n if (this.element) {\r\n removeClass([this.element], [OPEN, CLOSE, PUSH, SLIDE, OVER, LEFT, RIGHT, TRASITION]);\r\n removeClass([this.element], SIDEBARABSOLUTE);\r\n this.element.style.width = '';\r\n this.element.style.zIndex = '';\r\n this.element.style.transform = '';\r\n if (!isNullOrUndefined(this.sidebarEleCopy.getAttribute('tabindex'))) {\r\n this.element.setAttribute('tabindex', this.tabIndex);\r\n }\r\n else {\r\n this.element.removeAttribute('tabindex');\r\n }\r\n }\r\n this.windowWidth = null;\r\n var sibling = document.querySelector('.e-main-content') || this.targetEle;\r\n if (!isNullOrUndefined(sibling)) {\r\n sibling.style.margin = '';\r\n sibling.style.transform = '';\r\n }\r\n this.unWireEvents();\r\n };\r\n __decorate([\r\n Property('auto')\r\n ], Sidebar.prototype, \"dockSize\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Sidebar.prototype, \"mediaQuery\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"enableDock\", void 0);\r\n __decorate([\r\n Property('en-US')\r\n ], Sidebar.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Sidebar.prototype, \"enableGestures\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"isOpen\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"enableRtl\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Sidebar.prototype, \"animate\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Sidebar.prototype, \"height\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"closeOnDocumentClick\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], Sidebar.prototype, \"position\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Sidebar.prototype, \"target\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Sidebar.prototype, \"showBackdrop\", void 0);\r\n __decorate([\r\n Property('Auto')\r\n ], Sidebar.prototype, \"type\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Sidebar.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], Sidebar.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sidebar.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sidebar.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sidebar.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sidebar.prototype, \"change\", void 0);\r\n __decorate([\r\n Event()\r\n ], Sidebar.prototype, \"destroyed\", void 0);\r\n Sidebar = __decorate([\r\n NotifyPropertyChanges\r\n ], Sidebar);\r\n return Sidebar;\r\n}(Component));\r\nexport { Sidebar };\r\n","/**\n * Tab modules\n */\nexport * from './tab';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, Event, closest, Collection, Complex, attributes, detach, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty, select, isVisible } from '@syncfusion/ej2-base';\r\nimport { KeyboardEvents, Browser, formatUnit, L10n } from '@syncfusion/ej2-base';\r\nimport { setStyleAttribute as setStyle, isNullOrUndefined as isNOU, selectAll, addClass, removeClass, remove } from '@syncfusion/ej2-base';\r\nimport { EventHandler, rippleEffect, Touch, compile, Animation } from '@syncfusion/ej2-base';\r\nimport { getRandomId, SanitizeHtmlHelper, Draggable } from '@syncfusion/ej2-base';\r\nimport { Toolbar } from '../toolbar/toolbar';\r\nvar CLS_TAB = 'e-tab';\r\nvar CLS_HEADER = 'e-tab-header';\r\nvar CLS_BLA_TEM = 'blazor-template';\r\nvar CLS_CONTENT = 'e-content';\r\nvar CLS_NEST = 'e-nested';\r\nvar CLS_ITEMS = 'e-items';\r\nvar CLS_ITEM = 'e-item';\r\nvar CLS_TEMPLATE = 'e-template';\r\nvar CLS_RTL = 'e-rtl';\r\nvar CLS_ACTIVE = 'e-active';\r\nvar CLS_DISABLE = 'e-disable';\r\nvar CLS_HIDDEN = 'e-hidden';\r\nvar CLS_FOCUS = 'e-focused';\r\nvar CLS_ICONS = 'e-icons';\r\nvar CLS_ICON = 'e-icon';\r\nvar CLS_ICON_TAB = 'e-icon-tab';\r\nvar CLS_ICON_CLOSE = 'e-close-icon';\r\nvar CLS_CLOSE_SHOW = 'e-close-show';\r\nvar CLS_TEXT = 'e-tab-text';\r\nvar CLS_INDICATOR = 'e-indicator';\r\nvar CLS_WRAP = 'e-tab-wrap';\r\nvar CLS_TEXT_WRAP = 'e-text-wrap';\r\nvar CLS_TAB_ICON = 'e-tab-icon';\r\nvar CLS_TB_ITEMS = 'e-toolbar-items';\r\nvar CLS_TB_ITEM = 'e-toolbar-item';\r\nvar CLS_TB_POP = 'e-toolbar-pop';\r\nvar CLS_TB_POPUP = 'e-toolbar-popup';\r\nvar CLS_HOR_NAV = 'e-hor-nav';\r\nvar CLS_POPUP_OPEN = 'e-popup-open';\r\nvar CLS_POPUP_CLOSE = 'e-popup-close';\r\nvar CLS_PROGRESS = 'e-progress';\r\nvar CLS_IGNORE = 'e-ignore';\r\nvar CLS_OVERLAY = 'e-overlay';\r\nvar CLS_HSCRCNT = 'e-hscroll-content';\r\nvar CLS_VSCRCNT = 'e-vscroll-content';\r\nvar CLS_VTAB = 'e-vertical-tab';\r\nvar CLS_VERTICAL = 'e-vertical';\r\nvar CLS_VLEFT = 'e-vertical-left';\r\nvar CLS_VRIGHT = 'e-vertical-right';\r\nvar CLS_HBOTTOM = 'e-horizontal-bottom';\r\nvar CLS_FILL = 'e-fill-mode';\r\nvar TABITEMPREFIX = 'tabitem_';\r\n/**\r\n * Objects used for configuring the Tab selecting item action properties.\r\n */\r\nvar TabActionSettings = /** @class */ (function (_super) {\r\n __extends(TabActionSettings, _super);\r\n function TabActionSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('SlideLeftIn')\r\n ], TabActionSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property(600)\r\n ], TabActionSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('ease')\r\n ], TabActionSettings.prototype, \"easing\", void 0);\r\n return TabActionSettings;\r\n}(ChildProperty));\r\nexport { TabActionSettings };\r\n/**\r\n * Objects used for configuring the Tab animation properties.\r\n */\r\nvar TabAnimationSettings = /** @class */ (function (_super) {\r\n __extends(TabAnimationSettings, _super);\r\n function TabAnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Complex({ effect: 'SlideLeftIn', duration: 600, easing: 'ease' }, TabActionSettings)\r\n ], TabAnimationSettings.prototype, \"previous\", void 0);\r\n __decorate([\r\n Complex({ effect: 'SlideRightIn', duration: 600, easing: 'ease' }, TabActionSettings)\r\n ], TabAnimationSettings.prototype, \"next\", void 0);\r\n return TabAnimationSettings;\r\n}(ChildProperty));\r\nexport { TabAnimationSettings };\r\n/**\r\n * Objects used for configuring the Tab item header properties.\r\n */\r\nvar Header = /** @class */ (function (_super) {\r\n __extends(Header, _super);\r\n function Header() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], Header.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Header.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('left')\r\n ], Header.prototype, \"iconPosition\", void 0);\r\n return Header;\r\n}(ChildProperty));\r\nexport { Header };\r\n/**\r\n * An array of object that is used to configure the Tab.\r\n */\r\nvar TabItem = /** @class */ (function (_super) {\r\n __extends(TabItem, _super);\r\n function TabItem() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Complex({}, Header)\r\n ], TabItem.prototype, \"header\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TabItem.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Property('')\r\n ], TabItem.prototype, \"content\", void 0);\r\n __decorate([\r\n Property('')\r\n ], TabItem.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TabItem.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TabItem.prototype, \"visible\", void 0);\r\n __decorate([\r\n Property()\r\n ], TabItem.prototype, \"id\", void 0);\r\n return TabItem;\r\n}(ChildProperty));\r\nexport { TabItem };\r\n/**\r\n * Tab is a content panel to show multiple contents in a single space, one at a time.\r\n * Each Tab item has an associated content, that will be displayed based on the active Tab header item.\r\n * ```html\r\n *
      \r\n * \r\n * ```\r\n */\r\nvar Tab = /** @class */ (function (_super) {\r\n __extends(Tab, _super);\r\n /**\r\n * Initializes a new instance of the Tab class.\r\n *\r\n * @param {TabModel} options - Specifies Tab model properties as options.\r\n * @param {string | HTMLElement} element - Specifies the element that is rendered as a Tab.\r\n */\r\n function Tab(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.show = {};\r\n _this.hide = {};\r\n _this.maxHeight = 0;\r\n _this.title = 'Close';\r\n _this.lastIndex = 0;\r\n _this.isAdd = false;\r\n _this.isIconAlone = false;\r\n _this.draggableItems = [];\r\n _this.resizeContext = _this.refreshActElePosition.bind(_this);\r\n /**\r\n * Contains the keyboard configuration of the Tab.\r\n */\r\n _this.keyConfigs = {\r\n tab: 'tab',\r\n home: 'home',\r\n end: 'end',\r\n enter: 'enter',\r\n space: 'space',\r\n delete: 'delete',\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n moveUp: 'uparrow',\r\n moveDown: 'downarrow'\r\n };\r\n return _this;\r\n }\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers, attributes and classes.\r\n *\r\n * @returns {void}\r\n */\r\n Tab.prototype.destroy = function () {\r\n var _this = this;\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n if (!isNOU(this.tbObj)) {\r\n this.tbObj.destroy();\r\n }\r\n this.unWireEvents();\r\n ['role', 'aria-disabled', 'aria-activedescendant', 'tabindex', 'aria-orientation'].forEach(function (val) {\r\n _this.element.removeAttribute(val);\r\n });\r\n this.expTemplateContent();\r\n if (!this.isTemplate) {\r\n while (this.element.firstElementChild) {\r\n remove(this.element.firstElementChild);\r\n }\r\n }\r\n else {\r\n var cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\r\n this.element.classList.remove(CLS_TEMPLATE);\r\n if (!isNOU(cntEle)) {\r\n cntEle.innerHTML = this.cnt;\r\n }\r\n }\r\n _super.prototype.destroy.call(this);\r\n this.trigger('destroyed');\r\n };\r\n /**\r\n * Refresh the tab component\r\n *\r\n * @returns {void}\r\n */\r\n Tab.prototype.refresh = function () {\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n _super.prototype.refresh.call(this);\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * Initialize component\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Tab.prototype.preRender = function () {\r\n var nested = closest(this.element, '.' + CLS_CONTENT);\r\n this.prevIndex = 0;\r\n this.isNested = false;\r\n this.isPopup = false;\r\n this.initRender = true;\r\n this.isSwipeed = false;\r\n this.itemIndexArray = [];\r\n this.templateEle = [];\r\n if (!isNOU(nested)) {\r\n nested.parentElement.classList.add(CLS_NEST);\r\n this.isNested = true;\r\n }\r\n var name = Browser.info.name;\r\n var css = (name === 'msie') ? 'e-ie' : (name === 'edge') ? 'e-edge' : (name === 'safari') ? 'e-safari' : '';\r\n setStyle(this.element, { 'width': formatUnit(this.width), 'height': formatUnit(this.height) });\r\n this.setCssClass(this.element, this.cssClass, true);\r\n attributes(this.element, { role: 'tablist', 'aria-disabled': 'false', 'aria-activedescendant': '' });\r\n this.setCssClass(this.element, css, true);\r\n this.updatePopAnimationConfig();\r\n };\r\n /**\r\n * Initialize the component rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Tab.prototype.render = function () {\r\n this.btnCls = this.createElement('span', { className: CLS_ICONS + ' ' + CLS_ICON_CLOSE, attrs: { title: this.title } });\r\n this.tabId = this.element.id.length > 0 ? ('-' + this.element.id) : getRandomId();\r\n this.renderContainer();\r\n this.wireEvents();\r\n this.initRender = false;\r\n };\r\n Tab.prototype.renderContainer = function () {\r\n var ele = this.element;\r\n this.items.forEach(function (item, index) {\r\n if (isNOU(item.id) && !isNOU(item.setProperties)) {\r\n item.setProperties({ id: TABITEMPREFIX + index.toString() }, true);\r\n }\r\n });\r\n if (this.items.length > 0 && ele.children.length === 0) {\r\n ele.appendChild(this.createElement('div', { className: CLS_CONTENT }));\r\n this.setOrientation(this.headerPlacement, this.createElement('div', { className: CLS_HEADER }));\r\n this.isTemplate = false;\r\n }\r\n else if (this.element.children.length > 0) {\r\n this.isTemplate = true;\r\n ele.classList.add(CLS_TEMPLATE);\r\n var header = ele.querySelector('.' + CLS_HEADER);\r\n if (header && this.headerPlacement === 'Bottom') {\r\n this.setOrientation(this.headerPlacement, header);\r\n }\r\n }\r\n if (!isNOU(select('.' + CLS_HEADER, this.element)) && !isNOU(select('.' + CLS_CONTENT, this.element))) {\r\n this.renderHeader();\r\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\r\n if (!isNOU(this.tbItems)) {\r\n rippleEffect(this.tbItems, { selector: '.e-tab-wrap' });\r\n }\r\n this.renderContent();\r\n if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {\r\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\r\n this.bdrLine = this.createElement('div', { className: CLS_INDICATOR + ' ' + CLS_HIDDEN + ' ' + CLS_IGNORE });\r\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\r\n if (!isNOU(scrCnt)) {\r\n scrCnt.insertBefore(this.bdrLine, scrCnt.firstChild);\r\n }\r\n else {\r\n this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstChild);\r\n }\r\n this.setContentHeight(true);\r\n this.select(this.selectedItem);\r\n }\r\n if (!isNOU(this.tbItem)) {\r\n for (var i = 0; i < this.items.length; i++) {\r\n var tabID = this.items[i].id;\r\n this.tbItem[i].setAttribute('data-id', tabID);\r\n }\r\n }\r\n this.setRTL(this.enableRtl);\r\n }\r\n };\r\n Tab.prototype.serverItemsChanged = function () {\r\n this.enableAnimation = false;\r\n this.setActive(this.selectedItem, true);\r\n if (this.loadOn !== 'Dynamic' && !isNOU(this.cntEle)) {\r\n var itemCollection = [].slice.call(this.cntEle.children);\r\n var content_1 = CLS_CONTENT + this.tabId + '_' + this.selectedItem;\r\n itemCollection.forEach(function (item) {\r\n if (item.classList.contains(CLS_ACTIVE) && item.id !== content_1) {\r\n item.classList.remove(CLS_ACTIVE);\r\n }\r\n if (item.id === content_1) {\r\n item.classList.add(CLS_ACTIVE);\r\n }\r\n });\r\n this.prevIndex = this.selectedItem;\r\n this.triggerAnimation(CLS_ITEM + this.tabId + '_' + this.selectedItem, false);\r\n }\r\n this.enableAnimation = true;\r\n };\r\n Tab.prototype.headerReady = function () {\r\n this.initRender = true;\r\n this.hdrEle = this.getTabHeader();\r\n this.setOrientation(this.headerPlacement, this.hdrEle);\r\n if (!isNOU(this.hdrEle)) {\r\n this.tbObj = (this.hdrEle && this.hdrEle.ej2_instances[0]);\r\n }\r\n this.tbObj.clicked = this.clickHandler.bind(this);\r\n this.tbObj.on('onItemsChanged', this.serverItemsChanged.bind(this));\r\n this.tbItems = select('.' + CLS_HEADER + ' .' + CLS_TB_ITEMS, this.element);\r\n if (!isNOU(this.tbItems)) {\r\n rippleEffect(this.tbItems, { selector: '.e-tab-wrap' });\r\n }\r\n if (selectAll('.' + CLS_TB_ITEM, this.element).length > 0) {\r\n this.bdrLine = select('.' + CLS_INDICATOR + '.' + CLS_IGNORE, this.element);\r\n var scrollCnt = select('.' + this.scrCntClass, this.tbItems);\r\n if (!isNOU(scrollCnt)) {\r\n scrollCnt.insertBefore(this.bdrLine, scrollCnt.firstElementChild);\r\n }\r\n else {\r\n this.tbItems.insertBefore(this.bdrLine, this.tbItems.firstElementChild);\r\n }\r\n this.select(this.selectedItem);\r\n }\r\n this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\r\n if (!isNOU(this.cntEle)) {\r\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\r\n }\r\n if (this.loadOn === 'Demand') {\r\n var id = this.setActiveContent();\r\n this.triggerAnimation(id, false);\r\n }\r\n this.initRender = false;\r\n this.renderComplete();\r\n };\r\n Tab.prototype.setActiveContent = function () {\r\n var id = CLS_ITEM + this.tabId + '_' + this.selectedItem;\r\n var item = this.getTrgContent(this.cntEle, this.extIndex(id));\r\n if (!isNOU(item)) {\r\n item.classList.add(CLS_ACTIVE);\r\n }\r\n return id;\r\n };\r\n Tab.prototype.renderHeader = function () {\r\n var _this = this;\r\n var hdrPlace = this.headerPlacement;\r\n var tabItems = [];\r\n this.hdrEle = this.getTabHeader();\r\n this.addVerticalClass();\r\n if (!this.isTemplate) {\r\n tabItems = this.parseObject(this.items, 0);\r\n }\r\n else {\r\n if (this.element.children.length > 1 && this.element.children[1].classList.contains(CLS_HEADER)) {\r\n this.setProperties({ headerPlacement: 'Bottom' }, true);\r\n }\r\n var count = this.hdrEle.children.length;\r\n var hdrItems = [];\r\n for (var i = 0; i < count; i++) {\r\n hdrItems.push(this.hdrEle.children.item(i).innerHTML);\r\n }\r\n if (count > 0) {\r\n while (this.hdrEle.firstElementChild) {\r\n detach(this.hdrEle.firstElementChild);\r\n }\r\n var tabItems_1 = this.createElement('div', { className: CLS_ITEMS });\r\n this.hdrEle.appendChild(tabItems_1);\r\n hdrItems.forEach(function (item, index) {\r\n _this.lastIndex = index;\r\n var attr = {\r\n className: CLS_ITEM, id: CLS_ITEM + _this.tabId + '_' + index,\r\n attrs: { role: 'tab', 'aria-controls': CLS_CONTENT + _this.tabId + '_' + index, 'aria-selected': 'false' }\r\n };\r\n var txt = _this.createElement('span', {\r\n className: CLS_TEXT, innerHTML: item, attrs: { 'role': 'presentation' }\r\n }).outerHTML;\r\n var cont = _this.createElement('div', {\r\n className: CLS_TEXT_WRAP, innerHTML: txt + _this.btnCls.outerHTML\r\n }).outerHTML;\r\n var wrap = _this.createElement('div', { className: CLS_WRAP, innerHTML: cont, attrs: { tabIndex: '-1' } });\r\n tabItems_1.appendChild(_this.createElement('div', attr));\r\n selectAll('.' + CLS_ITEM, tabItems_1)[index].appendChild(wrap);\r\n });\r\n }\r\n }\r\n this.tbObj = new Toolbar({\r\n width: (hdrPlace === 'Left' || hdrPlace === 'Right') ? 'auto' : '100%',\r\n height: (hdrPlace === 'Left' || hdrPlace === 'Right') ? '100%' : 'auto',\r\n overflowMode: this.overflowMode,\r\n items: (tabItems.length !== 0) ? tabItems : [],\r\n clicked: this.clickHandler.bind(this),\r\n scrollStep: this.scrollStep,\r\n enableHtmlSanitizer: this.enableHtmlSanitizer\r\n });\r\n this.tbObj.isStringTemplate = true;\r\n this.tbObj.createElement = this.createElement;\r\n this.tbObj.appendTo(this.hdrEle);\r\n attributes(this.hdrEle, { 'aria-label': 'tab-header' });\r\n this.updateOrientationAttribute();\r\n this.setCloseButton(this.showCloseButton);\r\n };\r\n Tab.prototype.renderContent = function () {\r\n this.cntEle = select('.' + CLS_CONTENT, this.element);\r\n var hdrItem = selectAll('.' + CLS_TB_ITEM, this.element);\r\n if (this.isTemplate) {\r\n this.cnt = (this.cntEle.children.length > 0) ? this.cntEle.innerHTML : '';\r\n var contents = this.cntEle.children;\r\n for (var i = 0; i < hdrItem.length; i++) {\r\n if (contents.length - 1 >= i) {\r\n addClass([contents.item(i)], CLS_ITEM);\r\n attributes(contents.item(i), { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + i });\r\n contents.item(i).id = CLS_CONTENT + this.tabId + '_' + i;\r\n }\r\n }\r\n }\r\n };\r\n Tab.prototype.reRenderItems = function () {\r\n this.renderContainer();\r\n if (!isNOU(this.cntEle)) {\r\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\r\n }\r\n };\r\n Tab.prototype.parseObject = function (items, index) {\r\n var _this = this;\r\n var tbCount = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element).length;\r\n var tItems = [];\r\n var txtWrapEle;\r\n var spliceArray = [];\r\n var i = 0;\r\n items.forEach(function (item, i) {\r\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\r\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\r\n if ((isNOU(item.headerTemplate)) && (isNOU(item.header) || isNOU(item.header.text) ||\r\n ((item.header.text.length === 0)) && (css === ''))) {\r\n spliceArray.push(i);\r\n return;\r\n }\r\n var txt = item.headerTemplate || item.header.text;\r\n if (typeof txt === 'string' && _this.enableHtmlSanitizer) {\r\n txt = SanitizeHtmlHelper.sanitize(txt);\r\n }\r\n var itemIndex;\r\n if (_this.isReplace && !isNOU(_this.tbId) && _this.tbId !== '') {\r\n var num = (_this.tbId.indexOf('_'));\r\n itemIndex = parseInt(_this.tbId.substring(num + 1), 10);\r\n _this.tbId = '';\r\n }\r\n else {\r\n itemIndex = index + i;\r\n }\r\n var addIndex = _this.isAdd ? tbCount + i : _this.lastIndex + 1;\r\n _this.lastIndex = ((tbCount === 0) ? i : ((_this.isReplace) ? (itemIndex) : (addIndex)));\r\n var disabled = (item.disabled) ? ' ' + CLS_DISABLE + ' ' + CLS_OVERLAY : '';\r\n var hidden = (item.visible === false) ? ' ' + CLS_HIDDEN : '';\r\n txtWrapEle = _this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\r\n var tHtml = ((txt instanceof Object) ? txt.outerHTML : txt);\r\n var txtEmpty = (!isNOU(tHtml) && tHtml !== '');\r\n if (!isNOU(txt.tagName)) {\r\n txtWrapEle.appendChild(txt);\r\n }\r\n else {\r\n _this.headerTextCompile(txtWrapEle, txt, i);\r\n }\r\n var tEle;\r\n var icon = _this.createElement('span', {\r\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\r\n });\r\n var tCont = _this.createElement('div', { className: CLS_TEXT_WRAP });\r\n tCont.appendChild(txtWrapEle);\r\n if ((txt !== '' && txt !== undefined) && css !== '') {\r\n if ((pos === 'left' || pos === 'top')) {\r\n tCont.insertBefore(icon, tCont.firstElementChild);\r\n }\r\n else {\r\n tCont.appendChild(icon);\r\n }\r\n tEle = txtWrapEle;\r\n _this.isIconAlone = false;\r\n }\r\n else {\r\n tEle = ((css === '') ? txtWrapEle : icon);\r\n if (tEle === icon) {\r\n detach(txtWrapEle);\r\n tCont.appendChild(icon);\r\n _this.isIconAlone = true;\r\n }\r\n }\r\n var wrapAttrs = (item.disabled) ? {} : { tabIndex: '-1' };\r\n tCont.appendChild(_this.btnCls.cloneNode(true));\r\n var wrap = _this.createElement('div', { className: CLS_WRAP, attrs: wrapAttrs });\r\n wrap.appendChild(tCont);\r\n if (_this.itemIndexArray === []) {\r\n _this.itemIndexArray.push(CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\r\n }\r\n else {\r\n _this.itemIndexArray.splice((index + i), 0, CLS_ITEM + _this.tabId + '_' + _this.lastIndex);\r\n }\r\n var attrObj = {\r\n id: CLS_ITEM + _this.tabId + '_' + _this.lastIndex, role: 'tab', 'aria-selected': 'false'\r\n };\r\n var tItem = { htmlAttributes: attrObj, template: wrap };\r\n tItem.cssClass = ((item.cssClass !== undefined) ? item.cssClass : ' ') + ' ' + disabled + ' ' + hidden + ' '\r\n + ((css !== '') ? 'e-i' + pos : '') + ' ' + ((!txtEmpty) ? CLS_ICON : '');\r\n if (pos === 'top' || pos === 'bottom') {\r\n _this.element.classList.add('e-vertical-icon');\r\n }\r\n tItems.push(tItem);\r\n i++;\r\n });\r\n if (!this.isAdd) {\r\n spliceArray.forEach(function (spliceItemIndex) {\r\n _this.items.splice(spliceItemIndex, 1);\r\n });\r\n }\r\n if (this.isIconAlone) {\r\n this.element.classList.add(CLS_ICON_TAB);\r\n }\r\n else {\r\n this.element.classList.remove(CLS_ICON_TAB);\r\n }\r\n return tItems;\r\n };\r\n Tab.prototype.removeActiveClass = function () {\r\n var tabHeader = this.getTabHeader();\r\n if (tabHeader) {\r\n var tabItems = selectAll('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, tabHeader);\r\n [].slice.call(tabItems).forEach(function (node) { return node.classList.remove(CLS_ACTIVE); });\r\n }\r\n };\r\n Tab.prototype.checkPopupOverflow = function (ele) {\r\n this.tbPop = select('.' + CLS_TB_POP, this.element);\r\n var popIcon = select('.e-hor-nav', this.element);\r\n var tbrItems = select('.' + CLS_TB_ITEMS, this.element);\r\n var lastChild = tbrItems.lastChild;\r\n var isOverflow = false;\r\n if (!this.isVertical() && ((this.enableRtl && ((popIcon.offsetLeft + popIcon.offsetWidth) > tbrItems.offsetLeft))\r\n || (!this.enableRtl && popIcon.offsetLeft < tbrItems.offsetWidth))) {\r\n isOverflow = true;\r\n }\r\n else if (this.isVertical() && (popIcon.offsetTop < lastChild.offsetTop + lastChild.offsetHeight)) {\r\n isOverflow = true;\r\n }\r\n if (isOverflow) {\r\n ele.classList.add(CLS_TB_POPUP);\r\n this.tbPop.insertBefore(ele, selectAll('.' + CLS_TB_POPUP, this.tbPop)[0]);\r\n }\r\n return true;\r\n };\r\n Tab.prototype.popupHandler = function (target) {\r\n var ripEle = target.querySelector('.e-ripple-element');\r\n if (!isNOU(ripEle)) {\r\n ripEle.outerHTML = '';\r\n target.querySelector('.' + CLS_WRAP).classList.remove('e-ripple');\r\n }\r\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\r\n var lastChild = this.tbItem[this.tbItem.length - 1];\r\n if (this.tbItem.length !== 0) {\r\n target.classList.remove(CLS_TB_POPUP);\r\n target.removeAttribute('style');\r\n this.tbItems.appendChild(target);\r\n this.actEleId = target.id;\r\n if (this.checkPopupOverflow(lastChild)) {\r\n var prevEle = this.tbItems.lastChild.previousElementSibling;\r\n this.checkPopupOverflow(prevEle);\r\n }\r\n this.isPopup = true;\r\n }\r\n return selectAll('.' + CLS_TB_ITEM, this.tbItems).length - 1;\r\n };\r\n Tab.prototype.updateOrientationAttribute = function () {\r\n attributes(this.element, { 'aria-orientation': (this.isVertical() ? 'vertical' : 'horizontal') });\r\n };\r\n Tab.prototype.setCloseButton = function (val) {\r\n var trg = select('.' + CLS_HEADER, this.element);\r\n if (val === true) {\r\n trg.classList.add(CLS_CLOSE_SHOW);\r\n }\r\n else {\r\n trg.classList.remove(CLS_CLOSE_SHOW);\r\n }\r\n this.tbObj.refreshOverflow();\r\n this.refreshActElePosition();\r\n };\r\n Tab.prototype.prevCtnAnimation = function (prev, current) {\r\n var animation;\r\n var checkRTL = this.enableRtl || this.element.classList.contains(CLS_RTL);\r\n if (this.isPopup || prev <= current) {\r\n if (this.animation.previous.effect === 'SlideLeftIn') {\r\n animation = {\r\n name: 'SlideLeftOut',\r\n duration: this.animation.previous.duration, timingFunction: this.animation.previous.easing\r\n };\r\n }\r\n else {\r\n animation = null;\r\n }\r\n }\r\n else {\r\n if (this.animation.next.effect === 'SlideRightIn') {\r\n animation = {\r\n name: 'SlideRightOut',\r\n duration: this.animation.next.duration, timingFunction: this.animation.next.easing\r\n };\r\n }\r\n else {\r\n animation = null;\r\n }\r\n }\r\n return animation;\r\n };\r\n Tab.prototype.triggerPrevAnimation = function (oldCnt, prevIndex) {\r\n var _this = this;\r\n var animateObj = this.prevCtnAnimation(prevIndex, this.selectedItem);\r\n if (!isNOU(animateObj)) {\r\n animateObj.begin = function () {\r\n setStyle(oldCnt, { 'position': 'absolute' });\r\n oldCnt.classList.add(CLS_PROGRESS);\r\n oldCnt.classList.add('e-view');\r\n };\r\n animateObj.end = function () {\r\n oldCnt.style.display = 'none';\r\n oldCnt.classList.remove(CLS_ACTIVE);\r\n oldCnt.classList.remove(CLS_PROGRESS);\r\n oldCnt.classList.remove('e-view');\r\n setStyle(oldCnt, { 'display': '', 'position': '' });\r\n if (oldCnt.childNodes.length === 0 && !_this.isTemplate) {\r\n detach(oldCnt);\r\n }\r\n };\r\n new Animation(animateObj).animate(oldCnt);\r\n }\r\n else {\r\n oldCnt.classList.remove(CLS_ACTIVE);\r\n }\r\n };\r\n Tab.prototype.triggerAnimation = function (id, value) {\r\n var _this = this;\r\n var prevIndex = this.prevIndex;\r\n var oldCnt;\r\n var itemCollection = [].slice.call(this.element.querySelector('.' + CLS_CONTENT).children);\r\n itemCollection.forEach(function (item) {\r\n if (item.id === _this.prevActiveEle) {\r\n oldCnt = item;\r\n }\r\n });\r\n var prevEle = this.tbItem[prevIndex];\r\n var newCnt = this.getTrgContent(this.cntEle, this.extIndex(id));\r\n if (isNOU(oldCnt) && !isNOU(prevEle)) {\r\n var idNo = this.extIndex(prevEle.id);\r\n oldCnt = this.getTrgContent(this.cntEle, idNo);\r\n }\r\n if (!isNOU(newCnt)) {\r\n this.prevActiveEle = newCnt.id;\r\n }\r\n if (this.initRender || value === false || this.animation === {} || isNOU(this.animation)) {\r\n if (oldCnt && oldCnt !== newCnt) {\r\n oldCnt.classList.remove(CLS_ACTIVE);\r\n }\r\n return;\r\n }\r\n var cnt = select('.' + CLS_CONTENT, this.element);\r\n var animateObj;\r\n if (this.prevIndex > this.selectedItem && !this.isPopup) {\r\n var openEff = this.animation.previous.effect;\r\n animateObj = {\r\n name: ((openEff === 'None') ? '' : ((openEff !== 'SlideLeftIn') ? openEff : 'SlideLeftIn')),\r\n duration: this.animation.previous.duration,\r\n timingFunction: this.animation.previous.easing\r\n };\r\n }\r\n else if (this.isPopup || this.prevIndex < this.selectedItem || this.prevIndex === this.selectedItem) {\r\n var clsEff = this.animation.next.effect;\r\n animateObj = {\r\n name: ((clsEff === 'None') ? '' : ((clsEff !== 'SlideRightIn') ? clsEff : 'SlideRightIn')),\r\n duration: this.animation.next.duration,\r\n timingFunction: this.animation.next.easing\r\n };\r\n }\r\n animateObj.progress = function () {\r\n cnt.classList.add(CLS_PROGRESS);\r\n _this.setActiveBorder();\r\n };\r\n animateObj.end = function () {\r\n cnt.classList.remove(CLS_PROGRESS);\r\n newCnt.classList.add(CLS_ACTIVE);\r\n };\r\n if (!this.initRender && !isNOU(oldCnt)) {\r\n this.triggerPrevAnimation(oldCnt, prevIndex);\r\n }\r\n this.isPopup = false;\r\n if (animateObj.name === '') {\r\n newCnt.classList.add(CLS_ACTIVE);\r\n }\r\n else {\r\n new Animation(animateObj).animate(newCnt);\r\n }\r\n };\r\n Tab.prototype.keyPressed = function (trg) {\r\n var trgParent = closest(trg, '.' + CLS_HEADER + ' .' + CLS_TB_ITEM);\r\n var trgIndex = this.getEleIndex(trgParent);\r\n if (!isNOU(this.popEle) && trg.classList.contains('e-hor-nav')) {\r\n (this.popEle.classList.contains(CLS_POPUP_OPEN)) ? this.popObj.hide(this.hide) : this.popObj.show(this.show);\r\n }\r\n else if (trg.classList.contains('e-scroll-nav')) {\r\n trg.click();\r\n }\r\n else {\r\n if (!isNOU(trgParent) && trgParent.classList.contains(CLS_ACTIVE) === false) {\r\n this.select(trgIndex);\r\n if (!isNOU(this.popEle)) {\r\n this.popObj.hide(this.hide);\r\n }\r\n }\r\n }\r\n };\r\n Tab.prototype.getTabHeader = function () {\r\n if (isNOU(this.element)) {\r\n return undefined;\r\n }\r\n var headers = [].slice.call(this.element.children).filter(function (e) { return e.classList.contains(CLS_HEADER); });\r\n if (headers.length > 0) {\r\n return headers[0];\r\n }\r\n else {\r\n var wrap = [].slice.call(this.element.children).filter(function (e) { return !e.classList.contains(CLS_BLA_TEM); })[0];\r\n if (!wrap) {\r\n return undefined;\r\n }\r\n return [].slice.call(wrap.children).filter(function (e) { return e.classList.contains(CLS_HEADER); })[0];\r\n }\r\n };\r\n Tab.prototype.getEleIndex = function (item) {\r\n return Array.prototype.indexOf.call(selectAll('.' + CLS_TB_ITEM, this.getTabHeader()), item);\r\n };\r\n Tab.prototype.extIndex = function (id) {\r\n return id.replace(CLS_ITEM + this.tabId + '_', '');\r\n };\r\n Tab.prototype.expTemplateContent = function () {\r\n var _this = this;\r\n this.templateEle.forEach(function (eleStr) {\r\n if (!isNOU(_this.element.querySelector(eleStr))) {\r\n document.body.appendChild(_this.element.querySelector(eleStr)).style.display = 'none';\r\n }\r\n });\r\n };\r\n Tab.prototype.templateCompile = function (ele, cnt, index) {\r\n var tempEle = this.createElement('div');\r\n this.compileElement(tempEle, cnt, 'content', index);\r\n if (tempEle.childNodes.length !== 0) {\r\n ele.appendChild(tempEle);\r\n }\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Tab.prototype.compileElement = function (ele, val, prop, index) {\r\n var templateFn;\r\n if (typeof val === 'string') {\r\n val = val.trim();\r\n ele.innerHTML = SanitizeHtmlHelper.sanitize(val);\r\n }\r\n else {\r\n templateFn = compile(val);\r\n }\r\n var templateFUN;\r\n if (!isNOU(templateFn)) {\r\n templateFUN = templateFn({}, this, prop);\r\n }\r\n if (!isNOU(templateFn) && templateFUN.length > 0) {\r\n [].slice.call(templateFUN).forEach(function (el) {\r\n ele.appendChild(el);\r\n });\r\n }\r\n };\r\n Tab.prototype.headerTextCompile = function (element, text, index) {\r\n this.compileElement(element, text, 'headerTemplate', index);\r\n };\r\n Tab.prototype.getContent = function (ele, cnt, callType, index) {\r\n var eleStr;\r\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\r\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\r\n cnt = SanitizeHtmlHelper.sanitize(cnt);\r\n }\r\n if (cnt[0] === '.' || cnt[0] === '#') {\r\n if (document.querySelectorAll(cnt).length) {\r\n var eleVal = document.querySelector(cnt);\r\n eleStr = eleVal.outerHTML.trim();\r\n if (callType === 'clone') {\r\n ele.appendChild(eleVal.cloneNode(true));\r\n }\r\n else {\r\n ele.appendChild(eleVal);\r\n eleVal.style.display = '';\r\n }\r\n }\r\n else {\r\n this.templateCompile(ele, cnt, index);\r\n }\r\n }\r\n else {\r\n this.templateCompile(ele, cnt, index);\r\n }\r\n }\r\n else {\r\n ele.appendChild(cnt);\r\n }\r\n if (!isNOU(eleStr)) {\r\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\r\n this.templateEle.push(cnt.toString());\r\n }\r\n }\r\n };\r\n Tab.prototype.getTrgContent = function (cntEle, no) {\r\n var ele;\r\n if (this.element.classList.contains(CLS_NEST)) {\r\n ele = select('.' + CLS_NEST + '> .' + CLS_CONTENT + ' > #' + CLS_CONTENT + this.tabId + '_' + no, this.element);\r\n }\r\n else {\r\n ele = this.findEle(cntEle.children, CLS_CONTENT + this.tabId + '_' + no);\r\n }\r\n return ele;\r\n };\r\n Tab.prototype.findEle = function (items, key) {\r\n var ele;\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].id === key) {\r\n ele = items[i];\r\n break;\r\n }\r\n }\r\n return ele;\r\n };\r\n Tab.prototype.isVertical = function () {\r\n var isVertical = (this.headerPlacement === 'Left' || this.headerPlacement === 'Right') ? true : false;\r\n this.scrCntClass = (isVertical) ? CLS_VSCRCNT : CLS_HSCRCNT;\r\n return isVertical;\r\n };\r\n Tab.prototype.addVerticalClass = function () {\r\n if (this.isVertical()) {\r\n var tbPos = (this.headerPlacement === 'Left') ? CLS_VLEFT : CLS_VRIGHT;\r\n addClass([this.hdrEle], [CLS_VERTICAL, tbPos]);\r\n if (!this.element.classList.contains(CLS_NEST)) {\r\n addClass([this.element], [CLS_VTAB, tbPos]);\r\n }\r\n else {\r\n addClass([this.hdrEle], [CLS_VTAB, tbPos]);\r\n }\r\n }\r\n if (this.headerPlacement === 'Bottom') {\r\n addClass([this.hdrEle], [CLS_HBOTTOM]);\r\n }\r\n };\r\n Tab.prototype.updatePopAnimationConfig = function () {\r\n this.show = { name: (this.isVertical() ? 'FadeIn' : 'SlideDown'), duration: 100 };\r\n this.hide = { name: (this.isVertical() ? 'FadeOut' : 'SlideUp'), duration: 100 };\r\n };\r\n Tab.prototype.changeOrientation = function (place) {\r\n this.setOrientation(place, this.hdrEle);\r\n var activeTab = this.hdrEle.querySelector('.' + CLS_ACTIVE);\r\n var isVertical = this.hdrEle.classList.contains(CLS_VERTICAL) ? true : false;\r\n removeClass([this.element], [CLS_VTAB]);\r\n removeClass([this.hdrEle], [CLS_VERTICAL, CLS_VLEFT, CLS_VRIGHT]);\r\n if (isVertical !== this.isVertical()) {\r\n this.changeToolbarOrientation();\r\n if (!isNOU(activeTab) && activeTab.classList.contains(CLS_TB_POPUP)) {\r\n this.popupHandler(activeTab);\r\n }\r\n }\r\n this.addVerticalClass();\r\n this.updateOrientationAttribute();\r\n this.setActiveBorder();\r\n this.focusItem();\r\n };\r\n Tab.prototype.focusItem = function () {\r\n var curActItem = select(' #' + CLS_ITEM + this.tabId + '_' + this.selectedItem, this.hdrEle);\r\n if (!isNOU(curActItem)) {\r\n curActItem.firstElementChild.focus();\r\n }\r\n };\r\n Tab.prototype.changeToolbarOrientation = function () {\r\n this.tbObj.setProperties({ height: (this.isVertical() ? '100%' : 'auto'), width: (this.isVertical() ? 'auto' : '100%') }, true);\r\n this.tbObj.changeOrientation();\r\n this.updatePopAnimationConfig();\r\n };\r\n Tab.prototype.setOrientation = function (place, ele) {\r\n var headerPos = Array.prototype.indexOf.call(this.element.children, ele);\r\n var contentPos = Array.prototype.indexOf.call(this.element.children, this.element.querySelector('.' + CLS_CONTENT));\r\n if (place === 'Bottom' && (contentPos > headerPos)) {\r\n this.element.appendChild(ele);\r\n }\r\n else {\r\n removeClass([ele], [CLS_HBOTTOM]);\r\n this.element.insertBefore(ele, select('.' + CLS_CONTENT, this.element));\r\n }\r\n };\r\n Tab.prototype.setCssClass = function (ele, cls, val) {\r\n if (cls === '') {\r\n return;\r\n }\r\n var list = cls.split(' ');\r\n for (var i = 0; i < list.length; i++) {\r\n if (val) {\r\n ele.classList.add(list[i]);\r\n }\r\n else {\r\n ele.classList.remove(list[i]);\r\n }\r\n }\r\n };\r\n Tab.prototype.setContentHeight = function (val) {\r\n if (this.element.classList.contains(CLS_FILL)) {\r\n removeClass([this.element], [CLS_FILL]);\r\n }\r\n if (isNOU(this.cntEle)) {\r\n return;\r\n }\r\n var hdrEle = this.getTabHeader();\r\n if (this.heightAdjustMode === 'None') {\r\n if (this.height === 'auto') {\r\n return;\r\n }\r\n else {\r\n if (!this.isVertical()) {\r\n setStyle(this.cntEle, { 'height': (this.element.offsetHeight - hdrEle.offsetHeight) + 'px' });\r\n }\r\n }\r\n }\r\n else if (this.heightAdjustMode === 'Fill') {\r\n addClass([this.element], [CLS_FILL]);\r\n setStyle(this.element, { 'height': '100%' });\r\n setStyle(this.cntEle, { 'height': (this.element.offsetHeight - hdrEle.offsetHeight) + 'px' });\r\n }\r\n else if (this.heightAdjustMode === 'Auto') {\r\n if (this.isTemplate === true) {\r\n var cnt = selectAll('.' + CLS_CONTENT + ' > .' + CLS_ITEM, this.element);\r\n for (var i = 0; i < cnt.length; i++) {\r\n cnt[i].setAttribute('style', 'display:block; visibility: visible');\r\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(cnt[i]));\r\n cnt[i].style.removeProperty('display');\r\n cnt[i].style.removeProperty('visibility');\r\n }\r\n }\r\n else {\r\n this.cntEle = select('.' + CLS_CONTENT, this.element);\r\n if (val === true) {\r\n this.cntEle.appendChild(this.createElement('div', {\r\n id: (CLS_CONTENT + this.tabId + '_' + 0), className: CLS_ITEM + ' ' + CLS_ACTIVE,\r\n attrs: { 'role': 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + 0 }\r\n }));\r\n }\r\n var ele = this.cntEle.children.item(0);\r\n for (var i = 0; i < this.items.length; i++) {\r\n this.getContent(ele, this.items[i].content, 'clone', i);\r\n this.maxHeight = Math.max(this.maxHeight, this.getHeight(ele));\r\n while (ele.firstChild) {\r\n ele.removeChild(ele.firstChild);\r\n }\r\n }\r\n if (this.isReact) {\r\n this.clearTemplate(['content']);\r\n }\r\n this.templateEle = [];\r\n this.getContent(ele, this.items[0].content, 'render', 0);\r\n if (this.prevIndex !== this.selectedItem) {\r\n ele.classList.remove(CLS_ACTIVE);\r\n }\r\n }\r\n setStyle(this.cntEle, { 'height': this.maxHeight + 'px' });\r\n }\r\n else {\r\n setStyle(this.cntEle, { 'height': 'auto' });\r\n }\r\n };\r\n Tab.prototype.getHeight = function (ele) {\r\n var cs = window.getComputedStyle(ele);\r\n return ele.offsetHeight + parseFloat(cs.getPropertyValue('padding-top')) + parseFloat(cs.getPropertyValue('padding-bottom')) +\r\n parseFloat(cs.getPropertyValue('margin-top')) + parseFloat(cs.getPropertyValue('margin-bottom'));\r\n };\r\n Tab.prototype.setActiveBorder = function () {\r\n var trgHdrEle = this.getTabHeader();\r\n var trg = select('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE, trgHdrEle);\r\n if (trg === null) {\r\n return;\r\n }\r\n var root = closest(trg, '.' + CLS_TAB);\r\n if (this.element !== root) {\r\n return;\r\n }\r\n this.tbItems = select('.' + CLS_TB_ITEMS, trgHdrEle);\r\n var bar = select('.' + CLS_INDICATOR, trgHdrEle);\r\n var scrollCnt = select('.' + CLS_TB_ITEMS + ' .' + this.scrCntClass, trgHdrEle);\r\n if (this.isVertical()) {\r\n setStyle(bar, { 'left': '', 'right': '' });\r\n var tbHeight = (isNOU(scrollCnt)) ? this.tbItems.offsetHeight : scrollCnt.offsetHeight;\r\n if (tbHeight !== 0) {\r\n setStyle(bar, { 'top': trg.offsetTop + 'px', 'height': trg.offsetHeight + 'px' });\r\n }\r\n else {\r\n setStyle(bar, { 'top': 0, 'height': 0 });\r\n }\r\n }\r\n else {\r\n if (this.overflowMode === 'MultiRow') {\r\n var bar_1 = select('.' + CLS_INDICATOR, this.element);\r\n setStyle(bar_1, { 'top': trg.offsetHeight + trg.offsetTop + 'px', 'height': '' });\r\n }\r\n else {\r\n setStyle(bar, { 'top': '', 'height': '' });\r\n }\r\n var tbWidth = (isNOU(scrollCnt)) ? this.tbItems.offsetWidth : scrollCnt.offsetWidth;\r\n if (tbWidth !== 0) {\r\n setStyle(bar, { 'left': trg.offsetLeft + 'px', 'right': tbWidth - (trg.offsetLeft + trg.offsetWidth) + 'px' });\r\n }\r\n else {\r\n setStyle(bar, { 'left': 'auto', 'right': 'auto' });\r\n }\r\n }\r\n if (!isNOU(this.bdrLine)) {\r\n this.bdrLine.classList.remove(CLS_HIDDEN);\r\n }\r\n };\r\n Tab.prototype.setActive = function (value, skipDataBind) {\r\n if (skipDataBind === void 0) { skipDataBind = false; }\r\n this.tbItem = selectAll('.' + CLS_TB_ITEM, this.getTabHeader());\r\n var trg = this.tbItem[value];\r\n if (value < 0 || isNaN(value) || this.tbItem.length === 0) {\r\n return;\r\n }\r\n if (value >= 0 && !skipDataBind) {\r\n this.allowServerDataBinding = false;\r\n this.setProperties({ selectedItem: value }, true);\r\n this.allowServerDataBinding = true;\r\n if (!this.initRender) {\r\n this.serverDataBind();\r\n }\r\n }\r\n if (trg.classList.contains(CLS_ACTIVE)) {\r\n this.setActiveBorder();\r\n return;\r\n }\r\n if (!this.isTemplate) {\r\n var prev = this.tbItem[this.prevIndex];\r\n if (!isNOU(prev)) {\r\n prev.removeAttribute('aria-controls');\r\n }\r\n attributes(trg, { 'aria-controls': CLS_CONTENT + this.tabId + '_' + value });\r\n }\r\n var id = trg.id;\r\n this.removeActiveClass();\r\n trg.classList.add(CLS_ACTIVE);\r\n this.tbItem[this.prevIndex].setAttribute('aria-selected', 'false');\r\n trg.setAttribute('aria-selected', 'true');\r\n var no = Number(this.extIndex(id));\r\n if (isNOU(this.prevActiveEle)) {\r\n this.prevActiveEle = CLS_CONTENT + this.tabId + '_' + no;\r\n }\r\n attributes(this.element, { 'aria-activedescendant': id });\r\n if (this.isTemplate) {\r\n if (select('.' + CLS_CONTENT, this.element).children.length > 0) {\r\n var trg_1 = this.findEle(select('.' + CLS_CONTENT, this.element).children, CLS_CONTENT + this.tabId + '_' + no);\r\n if (!isNOU(trg_1)) {\r\n trg_1.classList.add(CLS_ACTIVE);\r\n }\r\n this.triggerAnimation(id, this.enableAnimation);\r\n }\r\n }\r\n else {\r\n this.cntEle = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\r\n var item = this.getTrgContent(this.cntEle, this.extIndex(id));\r\n if (isNOU(item)) {\r\n this.cntEle.appendChild(this.createElement('div', {\r\n id: CLS_CONTENT + this.tabId + '_' + this.extIndex(id), className: CLS_ITEM + ' ' + CLS_ACTIVE,\r\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + this.tabId + '_' + this.extIndex(id) }\r\n }));\r\n var eleTrg = this.getTrgContent(this.cntEle, this.extIndex(id));\r\n var itemIndex = Array.prototype.indexOf.call(this.itemIndexArray, id);\r\n this.getContent(eleTrg, this.items[itemIndex].content, 'render', itemIndex);\r\n }\r\n else {\r\n item.classList.add(CLS_ACTIVE);\r\n }\r\n this.triggerAnimation(id, this.enableAnimation);\r\n }\r\n this.setActiveBorder();\r\n this.refreshItemVisibility(trg);\r\n if (!this.initRender && !skipDataBind) {\r\n trg.firstElementChild.focus();\r\n var eventArg = {\r\n previousItem: this.prevItem,\r\n previousIndex: this.prevIndex,\r\n selectedItem: trg,\r\n selectedIndex: value,\r\n selectedContent: select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content),\r\n isSwiped: this.isSwipeed\r\n };\r\n this.trigger('selected', eventArg);\r\n }\r\n };\r\n Tab.prototype.contentReady = function () {\r\n var id = this.setActiveContent();\r\n this.triggerAnimation(id, this.enableAnimation);\r\n };\r\n Tab.prototype.setItems = function (items) {\r\n this.isReplace = true;\r\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\r\n this.tbObj.items = this.parseObject(items, 0);\r\n this.tbObj.dataBind();\r\n this.isReplace = false;\r\n };\r\n Tab.prototype.setRTL = function (value) {\r\n this.tbObj.enableRtl = value;\r\n this.tbObj.dataBind();\r\n this.setCssClass(this.element, CLS_RTL, value);\r\n this.refreshActiveBorder();\r\n };\r\n Tab.prototype.refreshActiveBorder = function () {\r\n if (!isNOU(this.bdrLine)) {\r\n this.bdrLine.classList.add(CLS_HIDDEN);\r\n }\r\n this.setActiveBorder();\r\n };\r\n Tab.prototype.showPopup = function (config) {\r\n var tbPop = select('.e-popup.e-toolbar-pop', this.hdrEle);\r\n if (tbPop.classList.contains('e-popup-close')) {\r\n var tbPopObj = (tbPop && tbPop.ej2_instances[0]);\r\n tbPopObj.position.X = (this.headerPlacement === 'Left') ? 'left' : 'right';\r\n tbPopObj.dataBind();\r\n tbPopObj.show(config);\r\n }\r\n };\r\n Tab.prototype.bindDraggable = function () {\r\n var _this = this;\r\n if (this.allowDragAndDrop) {\r\n var tabHeader = this.element.querySelector('.' + CLS_HEADER);\r\n var items = tabHeader.querySelectorAll('.' + CLS_TB_ITEM);\r\n items.forEach(function (element) {\r\n _this.initializeDrag(element);\r\n });\r\n }\r\n };\r\n Tab.prototype.wireEvents = function () {\r\n this.bindDraggable();\r\n window.addEventListener('resize', this.resizeContext);\r\n EventHandler.add(this.element, 'mouseover', this.hoverHandler, this);\r\n EventHandler.add(this.element, 'keydown', this.spaceKeyDown, this);\r\n if (!isNOU(this.cntEle)) {\r\n this.touchModule = new Touch(this.cntEle, { swipe: this.swipeHandler.bind(this) });\r\n }\r\n this.keyModule = new KeyboardEvents(this.element, { keyAction: this.keyHandler.bind(this), keyConfigs: this.keyConfigs });\r\n this.tabKeyModule = new KeyboardEvents(this.element, {\r\n keyAction: this.keyHandler.bind(this),\r\n keyConfigs: { openPopup: 'shift+f10', tab: 'tab', shiftTab: 'shift+tab' },\r\n eventName: 'keydown'\r\n });\r\n };\r\n Tab.prototype.unWireEvents = function () {\r\n if (!isNOU(this.keyModule)) {\r\n this.keyModule.destroy();\r\n }\r\n if (!isNOU(this.tabKeyModule)) {\r\n this.tabKeyModule.destroy();\r\n }\r\n if (!isNOU(this.cntEle) && !isNOU(this.touchModule)) {\r\n this.touchModule.destroy();\r\n }\r\n window.removeEventListener('resize', this.resizeContext);\r\n EventHandler.remove(this.element, 'mouseover', this.hoverHandler);\r\n EventHandler.remove(this.element, 'keydown', this.spaceKeyDown);\r\n this.element.classList.remove(CLS_RTL);\r\n this.element.classList.remove(CLS_FOCUS);\r\n };\r\n Tab.prototype.clickHandler = function (args) {\r\n this.element.classList.remove(CLS_FOCUS);\r\n var trg = args.originalEvent.target;\r\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\r\n var trgIndex = this.getEleIndex(trgParent);\r\n if (trg.classList.contains(CLS_ICON_CLOSE)) {\r\n this.removeTab(trgIndex);\r\n }\r\n else if (this.isVertical() && closest(trg, '.' + CLS_HOR_NAV)) {\r\n this.showPopup(this.show);\r\n }\r\n else {\r\n this.isPopup = false;\r\n if (!isNOU(trgParent) && (trgIndex !== this.selectedItem || trgIndex !== this.prevIndex)) {\r\n this.select(trgIndex, args.originalEvent);\r\n }\r\n }\r\n };\r\n Tab.prototype.swipeHandler = function (e) {\r\n if (e.velocity < 3 && isNOU(e.originalEvent.changedTouches)) {\r\n return;\r\n }\r\n if (e.originalEvent && this.isNested) {\r\n e.originalEvent.stopPropagation();\r\n }\r\n this.isSwipeed = true;\r\n if (e.swipeDirection === 'Right' && this.selectedItem !== 0) {\r\n for (var k = this.selectedItem - 1; k >= 0; k--) {\r\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\r\n this.select(k);\r\n break;\r\n }\r\n }\r\n }\r\n else if (e.swipeDirection === 'Left' && (this.selectedItem !== selectAll('.' + CLS_TB_ITEM, this.element).length - 1)) {\r\n for (var i = this.selectedItem + 1; i < this.tbItem.length; i++) {\r\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\r\n this.select(i);\r\n break;\r\n }\r\n }\r\n }\r\n this.isSwipeed = false;\r\n };\r\n Tab.prototype.spaceKeyDown = function (e) {\r\n if ((e.keyCode === 32 && e.which === 32) || (e.keyCode === 35 && e.which === 35)) {\r\n var clstHead = closest(e.target, '.' + CLS_HEADER);\r\n if (!isNOU(clstHead)) {\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n Tab.prototype.keyHandler = function (e) {\r\n if (this.element.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n this.element.classList.add(CLS_FOCUS);\r\n var trg = e.target;\r\n var tabHeader = this.getTabHeader();\r\n var actEle = select('.' + CLS_ACTIVE, tabHeader);\r\n this.popEle = select('.' + CLS_TB_POP, tabHeader);\r\n if (!isNOU(this.popEle)) {\r\n this.popObj = this.popEle.ej2_instances[0];\r\n }\r\n var item = closest(document.activeElement, '.' + CLS_TB_ITEM);\r\n var trgParent = closest(trg, '.' + CLS_TB_ITEM);\r\n switch (e.action) {\r\n case 'space':\r\n case 'enter':\r\n if (trg.parentElement.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n if (e.action === 'enter' && trg.classList.contains('e-hor-nav')) {\r\n this.showPopup(this.show);\r\n break;\r\n }\r\n this.keyPressed(trg);\r\n break;\r\n case 'tab':\r\n case 'shiftTab':\r\n if (trg.classList.contains(CLS_WRAP)\r\n && closest(trg, '.' + CLS_TB_ITEM).classList.contains(CLS_ACTIVE) === false) {\r\n trg.setAttribute('tabindex', '-1');\r\n }\r\n if (this.popObj && isVisible(this.popObj.element)) {\r\n this.popObj.hide(this.hide);\r\n }\r\n actEle.children.item(0).setAttribute('tabindex', '0');\r\n break;\r\n case 'moveLeft':\r\n case 'moveRight':\r\n if (!isNOU(item)) {\r\n this.refreshItemVisibility(item);\r\n }\r\n break;\r\n case 'openPopup':\r\n e.preventDefault();\r\n if (!isNOU(this.popEle) && this.popEle.classList.contains(CLS_POPUP_CLOSE)) {\r\n this.popObj.show(this.show);\r\n }\r\n break;\r\n case 'delete':\r\n if (this.showCloseButton === true && !isNOU(trgParent)) {\r\n var nxtSib = trgParent.nextSibling;\r\n if (!isNOU(nxtSib) && nxtSib.classList.contains(CLS_TB_ITEM)) {\r\n nxtSib.firstElementChild.focus();\r\n }\r\n this.removeTab(this.getEleIndex(trgParent));\r\n }\r\n this.setActiveBorder();\r\n break;\r\n }\r\n };\r\n Tab.prototype.refreshActElePosition = function () {\r\n var activeEle = select('.' + CLS_TB_ITEM + '.' + CLS_TB_POPUP + '.' + CLS_ACTIVE, this.element);\r\n if (!isNOU(activeEle)) {\r\n this.select(this.getEleIndex(activeEle));\r\n }\r\n this.refreshActiveBorder();\r\n };\r\n Tab.prototype.refreshItemVisibility = function (target) {\r\n var scrCnt = select('.' + this.scrCntClass, this.tbItems);\r\n if (!this.isVertical() && !isNOU(scrCnt)) {\r\n var scrBar = select('.e-hscroll-bar', this.tbItems);\r\n var scrStart = scrBar.scrollLeft;\r\n var scrEnd = scrStart + scrBar.offsetWidth;\r\n var eleStart = target.offsetLeft;\r\n var eleWidth = target.offsetWidth;\r\n var eleEnd = target.offsetLeft + target.offsetWidth;\r\n if ((scrStart < eleStart) && (scrEnd < eleEnd)) {\r\n var eleViewRange = scrEnd - eleStart;\r\n scrBar.scrollLeft = scrStart + (eleWidth - eleViewRange);\r\n }\r\n else {\r\n if ((scrStart > eleStart) && (scrEnd > eleEnd)) {\r\n var eleViewRange = eleEnd - scrStart;\r\n scrBar.scrollLeft = scrStart - (eleWidth - eleViewRange);\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n };\r\n Tab.prototype.hoverHandler = function (e) {\r\n var trg = e.target;\r\n if (!isNOU(trg.classList) && trg.classList.contains(CLS_ICON_CLOSE)) {\r\n trg.setAttribute('title', new L10n('tab', { closeButtonTitle: this.title }, this.locale).getConstant('closeButtonTitle'));\r\n }\r\n };\r\n Tab.prototype.evalOnPropertyChangeItems = function (newProp, oldProp) {\r\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\r\n var changedProp = Object.keys(newProp.items);\r\n for (var i = 0; i < changedProp.length; i++) {\r\n var index = parseInt(Object.keys(newProp.items)[i], 10);\r\n var properties = Object.keys(newProp.items[index]);\r\n for (var j = 0; j < properties.length; j++) {\r\n var oldVal = Object(oldProp.items[index])[properties[j]];\r\n var newVal = Object(newProp.items[index])[properties[j]];\r\n var hdr = this.element.querySelectorAll('.' + CLS_TB_ITEM)[index];\r\n var itemIndex = void 0;\r\n if (hdr && !isNOU(hdr.id) && hdr.id !== '') {\r\n var num = (hdr.id.lastIndexOf('_'));\r\n itemIndex = parseInt(hdr.id.substring(num + 1), 10);\r\n }\r\n else {\r\n itemIndex = index;\r\n }\r\n var hdrItem = select('.' + CLS_TB_ITEMS + ' #' + CLS_ITEM + this.tabId + '_' + itemIndex, this.element);\r\n var cntItem = select('.' + CLS_CONTENT + ' #' + CLS_CONTENT + this.tabId + '_' + itemIndex, this.element);\r\n if (properties[j] === 'header' || properties[j] === 'headerTemplate') {\r\n var icon = (isNOU(this.items[index].header) ||\r\n isNOU(this.items[index].header.iconCss)) ? '' : this.items[index].header.iconCss;\r\n var textVal = this.items[index].headerTemplate || this.items[index].header.text;\r\n if ((textVal === '') && (icon === '')) {\r\n this.removeTab(index);\r\n }\r\n else {\r\n this.tbId = hdr.id;\r\n var arr = [];\r\n arr.push(this.items[index]);\r\n this.items.splice(index, 1);\r\n this.itemIndexArray.splice(index, 1);\r\n this.tbObj.items.splice(index, 1);\r\n var isHiddenEle = hdrItem.classList.contains(CLS_HIDDEN);\r\n detach(hdrItem);\r\n this.isReplace = true;\r\n this.addTab(arr, index);\r\n if (isHiddenEle) {\r\n this.hideTab(index);\r\n }\r\n this.isReplace = false;\r\n }\r\n }\r\n if (properties[j] === 'content' && !isNOU(cntItem)) {\r\n var strVal = typeof newVal === 'string' || isNOU(newVal.innerHTML);\r\n if (strVal && (newVal[0] === '.' || newVal[0] === '#') && newVal.length) {\r\n var eleVal = document.querySelector(newVal);\r\n cntItem.appendChild(eleVal);\r\n eleVal.style.display = '';\r\n }\r\n else if (newVal === '' && oldVal[0] === '#') {\r\n document.body.appendChild(this.element.querySelector(oldVal)).style.display = 'none';\r\n cntItem.innerHTML = newVal;\r\n }\r\n else if (this.isReact) {\r\n cntItem.innerHTML = '';\r\n this.templateCompile(cntItem, newVal, index);\r\n }\r\n else if (typeof newVal !== 'function') {\r\n cntItem.innerHTML = newVal;\r\n }\r\n }\r\n if (properties[j] === 'cssClass') {\r\n if (!isNOU(hdrItem)) {\r\n hdrItem.classList.remove(oldVal);\r\n hdrItem.classList.add(newVal);\r\n }\r\n if (!isNOU(cntItem)) {\r\n cntItem.classList.remove(oldVal);\r\n cntItem.classList.add(newVal);\r\n }\r\n }\r\n if (properties[j] === 'disabled') {\r\n this.enableTab(index, ((newVal === true) ? false : true));\r\n }\r\n if (properties[j] === 'visible') {\r\n this.hideTab(index, ((newVal === true) ? false : true));\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.lastIndex = 0;\r\n if (isNOU(this.tbObj)) {\r\n this.reRenderItems();\r\n }\r\n else {\r\n if (this.isRect) {\r\n this.clearTemplate();\r\n }\r\n this.setItems(newProp.items);\r\n if (this.templateEle.length > 0) {\r\n this.expTemplateContent();\r\n }\r\n this.templateEle = [];\r\n var selectElement = select('.' + CLS_TAB + ' > .' + CLS_CONTENT, this.element);\r\n while (selectElement.firstElementChild) {\r\n detach(selectElement.firstElementChild);\r\n }\r\n this.select(this.selectedItem);\r\n }\r\n }\r\n };\r\n Tab.prototype.initializeDrag = function (target) {\r\n var _this = this;\r\n this.dragArea = !isNOU(this.dragArea) ? this.dragArea : '#' + this.element.id + ' ' + ('.' + CLS_HEADER);\r\n var dragObj = new Draggable(target, {\r\n dragArea: this.dragArea,\r\n dragTarget: '.' + CLS_TB_ITEM,\r\n clone: true,\r\n helper: this.helper.bind(this),\r\n dragStart: this.itemDragStart.bind(this),\r\n drag: function (e) {\r\n var dragIndex = _this.getEleIndex(_this.dragItem);\r\n var dropIndex;\r\n var dropItem;\r\n var dragArgs = {\r\n draggedItem: _this.dragItem,\r\n event: e.event,\r\n target: e.target,\r\n droppedItem: e.target.closest('.' + CLS_TB_ITEM),\r\n clonedElement: _this.cloneElement,\r\n index: dragIndex\r\n };\r\n if (!isNOU(e.target.closest('.' + CLS_TAB)) && !e.target.closest('.' + CLS_TAB).isEqualNode(_this.element) &&\r\n _this.dragArea !== '.' + CLS_HEADER) {\r\n _this.trigger('dragging', dragArgs);\r\n }\r\n else {\r\n if (!(e.target.closest(_this.dragArea)) && _this.overflowMode !== 'Popup') {\r\n document.body.style.cursor = 'not-allowed';\r\n addClass([_this.cloneElement], CLS_HIDDEN);\r\n if (_this.dragItem.classList.contains(CLS_HIDDEN)) {\r\n removeClass([_this.dragItem], CLS_HIDDEN);\r\n }\r\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\r\n }\r\n else {\r\n document.body.style.cursor = '';\r\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\r\n if (_this.cloneElement.classList.contains(CLS_HIDDEN)) {\r\n removeClass([_this.cloneElement], CLS_HIDDEN);\r\n }\r\n }\r\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\r\n var scrollRightNavEle = _this.element.querySelector('.e-scroll-right-nav');\r\n var scrollLeftNavEle = _this.element.querySelector('.e-scroll-left-nav');\r\n var hscrollBar = _this.element.querySelector('.e-hscroll-bar');\r\n if (!isNOU(scrollRightNavEle) && Math.abs((scrollRightNavEle.offsetWidth / 2) +\r\n scrollRightNavEle.offsetLeft) > _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\r\n hscrollBar.scrollLeft -= 10;\r\n }\r\n if (!isNOU(scrollLeftNavEle) && Math.abs((scrollLeftNavEle.offsetLeft + scrollLeftNavEle.offsetWidth) -\r\n _this.cloneElement.offsetLeft) > (scrollLeftNavEle.offsetWidth / 2)) {\r\n hscrollBar.scrollLeft += 10;\r\n }\r\n }\r\n _this.cloneElement.style.pointerEvents = 'none';\r\n dropItem = closest(e.target, '.' + CLS_TB_ITEM + '.e-draggable');\r\n var scrollContentWidth = 0;\r\n if (_this.overflowMode === 'Scrollable' && !isNOU(_this.element.querySelector('.e-hscroll'))) {\r\n scrollContentWidth = _this.element.querySelector('.e-hscroll-content').offsetWidth;\r\n }\r\n if (dropItem != null && !dropItem.isSameNode(_this.dragItem) &&\r\n dropItem.closest('.' + CLS_TAB).isSameNode(_this.dragItem.closest('.' + CLS_TAB))) {\r\n dropIndex = _this.getEleIndex(dropItem);\r\n if (dropIndex < dragIndex &&\r\n (Math.abs((dropItem.offsetLeft + dropItem.offsetWidth) -\r\n _this.cloneElement.offsetLeft) > (dropItem.offsetWidth / 2))) {\r\n _this.dragAction(dropItem, dragIndex, dropIndex);\r\n }\r\n if (dropIndex > dragIndex &&\r\n (Math.abs(dropItem.offsetWidth / 2) + dropItem.offsetLeft -\r\n scrollContentWidth) < _this.cloneElement.offsetLeft + _this.cloneElement.offsetWidth) {\r\n _this.dragAction(dropItem, dragIndex, dropIndex);\r\n }\r\n }\r\n _this.droppedIndex = _this.getEleIndex(_this.dragItem);\r\n _this.trigger('dragging', dragArgs);\r\n }\r\n },\r\n dragStop: this.itemDragStop.bind(this)\r\n });\r\n this.draggableItems.push(dragObj);\r\n };\r\n Tab.prototype.helper = function (e) {\r\n this.cloneElement = this.createElement('div');\r\n if (e.element) {\r\n this.cloneElement = (e.element.cloneNode(true));\r\n addClass([this.cloneElement], 'e-tab-clone-element');\r\n if (this.element.querySelector('.' + CLS_HEADER).classList.contains(CLS_CLOSE_SHOW)) {\r\n addClass([this.cloneElement], CLS_CLOSE_SHOW);\r\n }\r\n removeClass([this.cloneElement.querySelector('.' + CLS_WRAP)], 'e-ripple');\r\n if (!isNOU(this.cloneElement.querySelector('.e-ripple-element'))) {\r\n remove(this.cloneElement.querySelector('.e-ripple-element'));\r\n }\r\n document.body.appendChild(this.cloneElement);\r\n }\r\n return this.cloneElement;\r\n };\r\n Tab.prototype.itemDragStart = function (e) {\r\n var _this = this;\r\n this.draggingItems = this.items.map(function (x) { return x; });\r\n this.dragItem = e.element;\r\n var dragArgs = {\r\n draggedItem: e.element,\r\n event: e.event,\r\n target: e.target,\r\n droppedItem: null,\r\n index: this.getEleIndex(this.dragItem),\r\n clonedElement: this.cloneElement,\r\n cancel: false\r\n };\r\n this.trigger('onDragStart', dragArgs, function (tabitemDragArgs) {\r\n if (tabitemDragArgs.cancel) {\r\n detach(_this.cloneElement);\r\n }\r\n else {\r\n _this.removeActiveClass();\r\n addClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\r\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'hidden';\r\n }\r\n });\r\n };\r\n Tab.prototype.dragAction = function (dropItem, dragsIndex, dropIndex) {\r\n if (this.items.length > 0) {\r\n var item = this.draggingItems[dragsIndex];\r\n this.draggingItems.splice(dragsIndex, 1);\r\n this.draggingItems.splice(dropIndex, 0, item);\r\n }\r\n if (this.overflowMode === 'MultiRow') {\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextElementSibling);\r\n }\r\n if (dragsIndex > dropIndex) {\r\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\r\n if (this.overflowMode === 'Extended') {\r\n if (dropItem.isSameNode(dropItem.parentElement.lastChild)) {\r\n var popupContainer = this.dragItem.parentNode;\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n popupContainer.insertBefore(dropItem.parentElement.lastChild, popupContainer.childNodes[0]);\r\n }\r\n else {\r\n this.dragItem.parentNode.insertBefore((dropItem.parentElement.lastChild), this.dragItem.parentElement.childNodes[0]);\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n }\r\n }\r\n else {\r\n var lastEle = (dropItem.parentElement).lastChild;\r\n if (dropItem.isSameNode(lastEle)) {\r\n var popupContainer = this.dragItem.parentNode;\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n popupContainer.insertBefore(lastEle, popupContainer.childNodes[0]);\r\n }\r\n else {\r\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n }\r\n }\r\n }\r\n else {\r\n this.dragItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n }\r\n }\r\n if (dragsIndex < dropIndex) {\r\n if (!(this.dragItem.parentElement).isSameNode(dropItem.parentElement)) {\r\n if (this.overflowMode === 'Extended') {\r\n this.dragItem.parentElement.appendChild(dropItem.parentElement.firstElementChild);\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem.nextSibling);\r\n }\r\n else {\r\n this.dragItem.parentNode.insertBefore((dropItem.parentElement).lastChild, this.dragItem.parentElement.childNodes[0]);\r\n dropItem.parentNode.insertBefore(this.dragItem, dropItem);\r\n }\r\n }\r\n else {\r\n this.dragItem.parentNode.insertBefore(dropItem, this.dragItem);\r\n }\r\n }\r\n };\r\n Tab.prototype.itemDragStop = function (e) {\r\n var _this = this;\r\n detach(this.cloneElement);\r\n this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = 'visible';\r\n document.body.style.cursor = '';\r\n var dragStopArgs = {\r\n draggedItem: this.dragItem,\r\n event: e.event,\r\n target: e.target,\r\n droppedItem: this.tbItem[this.droppedIndex],\r\n clonedElement: null,\r\n index: this.droppedIndex,\r\n cancel: false\r\n };\r\n this.trigger('dragged', dragStopArgs, function (tabItemDropArgs) {\r\n if (tabItemDropArgs.cancel) {\r\n _this.refresh();\r\n }\r\n else {\r\n if (_this.items.length > 0 && _this.draggingItems.length > 0) {\r\n _this.items = _this.draggingItems;\r\n _this.selectedItem = _this.droppedIndex;\r\n _this.refresh();\r\n }\r\n else {\r\n _this.dragItem.querySelector('.' + CLS_WRAP).style.visibility = '';\r\n removeClass([_this.tbItems.querySelector('.' + CLS_INDICATOR)], CLS_HIDDEN);\r\n _this.select(_this.droppedIndex);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Enables or disables the specified Tab item. On passing value as `false`, the item will be disabled.\r\n *\r\n * @param {number} index - Index value of target Tab item.\r\n * @param {boolean} value - Boolean value that determines whether the command should be enabled or disabled.\r\n * By default, isEnable is true.\r\n * @returns {void}.\r\n */\r\n Tab.prototype.enableTab = function (index, value) {\r\n var tbItems = selectAll('.' + CLS_TB_ITEM, this.element)[index];\r\n if (isNOU(tbItems)) {\r\n return;\r\n }\r\n if (value === true) {\r\n tbItems.classList.remove(CLS_DISABLE, CLS_OVERLAY);\r\n tbItems.firstElementChild.setAttribute('tabindex', '-1');\r\n }\r\n else {\r\n tbItems.classList.add(CLS_DISABLE, CLS_OVERLAY);\r\n tbItems.firstElementChild.removeAttribute('tabindex');\r\n if (tbItems.classList.contains(CLS_ACTIVE)) {\r\n this.select(index + 1);\r\n }\r\n }\r\n if (!isNOU(this.items[index])) {\r\n this.items[index].disabled = !value;\r\n this.dataBind();\r\n }\r\n tbItems.setAttribute('aria-disabled', (value === true) ? 'false' : 'true');\r\n };\r\n /**\r\n * Adds new items to the Tab that accepts an array as Tab items.\r\n *\r\n * @param {TabItemModel[]} items - An array of item that is added to the Tab.\r\n * @param {number} index - Number value that determines where the items to be added. By default, index is 0.\r\n * @returns {void}.\r\n */\r\n Tab.prototype.addTab = function (items, index) {\r\n var _this = this;\r\n var addArgs = { addedItems: items, cancel: false };\r\n if (!this.isReplace) {\r\n this.trigger('adding', addArgs, function (tabAddingArgs) {\r\n if (!tabAddingArgs.cancel) {\r\n _this.addingTabContent(items, index);\r\n }\r\n });\r\n }\r\n else {\r\n this.addingTabContent(items, index);\r\n }\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Tab.prototype.addingTabContent = function (items, index) {\r\n var _this = this;\r\n var lastEleIndex = 0;\r\n this.hdrEle = select('.' + CLS_HEADER, this.element);\r\n if (isNOU(this.hdrEle)) {\r\n this.items = items;\r\n this.reRenderItems();\r\n }\r\n else {\r\n var itemsCount = selectAll('.e-tab-header .' + CLS_TB_ITEM, this.element).length;\r\n if (itemsCount !== 0) {\r\n lastEleIndex = this.lastIndex + 1;\r\n }\r\n if (isNOU(index)) {\r\n index = itemsCount - 1;\r\n }\r\n if (itemsCount < index || index < 0 || isNaN(index)) {\r\n return;\r\n }\r\n if (itemsCount === 0 && !isNOU(this.hdrEle)) {\r\n this.hdrEle.style.display = '';\r\n }\r\n if (!isNOU(this.bdrLine)) {\r\n this.bdrLine.classList.add(CLS_HIDDEN);\r\n }\r\n this.tbItems = select('.' + CLS_TB_ITEMS, this.getTabHeader());\r\n this.isAdd = true;\r\n var tabItems = this.parseObject(items, index);\r\n this.isAdd = false;\r\n var i_1 = 0;\r\n var textValue_1;\r\n items.forEach(function (item, place) {\r\n textValue_1 = item.headerTemplate || item.header.text;\r\n if (!(isNOU(item.headerTemplate || item.header) ||\r\n isNOU(textValue_1) || (textValue_1.length === 0) && isNOU(item.header.iconCss))) {\r\n _this.items.splice((index + i_1), 0, item);\r\n i_1++;\r\n }\r\n if (_this.isTemplate && !isNOU(item.header) && !isNOU(item.header.text)) {\r\n var no = lastEleIndex + place;\r\n var ele = _this.createElement('div', {\r\n id: CLS_CONTENT + _this.tabId + '_' + no, className: CLS_ITEM,\r\n attrs: { role: 'tabpanel', 'aria-labelledby': CLS_ITEM + '_' + no }\r\n });\r\n _this.cntEle.insertBefore(ele, _this.cntEle.children[(index + place)]);\r\n var eleTrg = _this.getTrgContent(_this.cntEle, no.toString());\r\n _this.getContent(eleTrg, item.content, 'render', index);\r\n }\r\n });\r\n this.tbObj.addItems(tabItems, index);\r\n if (!this.isReplace) {\r\n this.trigger('added', { addedItems: items });\r\n }\r\n if (this.selectedItem === index) {\r\n this.select(index);\r\n }\r\n else {\r\n this.setActiveBorder();\r\n }\r\n this.bindDraggable();\r\n }\r\n };\r\n /**\r\n * Removes the items in the Tab from the specified index.\r\n *\r\n * @param {number} index - Index of target item that is going to be removed.\r\n * @returns {void}.\r\n */\r\n Tab.prototype.removeTab = function (index) {\r\n var _this = this;\r\n var trg = selectAll('.' + CLS_TB_ITEM, this.element)[index];\r\n if (isNOU(trg)) {\r\n return;\r\n }\r\n var removeArgs = { removedItem: trg, removedIndex: index, cancel: false };\r\n this.trigger('removing', removeArgs, function (tabRemovingArgs) {\r\n if (!tabRemovingArgs.cancel) {\r\n _this.tbObj.removeItems(index);\r\n if (_this.allowDragAndDrop && (index !== Array.prototype.indexOf.call(_this.itemIndexArray, trg.id))) {\r\n index = Array.prototype.indexOf.call(_this.itemIndexArray, trg.id);\r\n }\r\n _this.items.splice(index, 1);\r\n _this.itemIndexArray.splice(index, 1);\r\n _this.refreshActiveBorder();\r\n var cntTrg = select('#' + CLS_CONTENT + _this.tabId + '_' + _this.extIndex(trg.id), select('.' + CLS_CONTENT, _this.element));\r\n if (!isNOU(cntTrg)) {\r\n detach(cntTrg);\r\n }\r\n _this.trigger('removed', tabRemovingArgs);\r\n if (trg.classList.contains(CLS_ACTIVE)) {\r\n index = (index > selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_TB_POPUP + ')', _this.element).length - 1) ? index - 1 : index;\r\n _this.enableAnimation = false;\r\n _this.selectedItem = index;\r\n _this.select(index);\r\n }\r\n if (selectAll('.' + CLS_TB_ITEM, _this.element).length === 0) {\r\n _this.hdrEle.style.display = 'none';\r\n }\r\n _this.enableAnimation = true;\r\n }\r\n });\r\n };\r\n /**\r\n * Shows or hides the Tab that is in the specified index.\r\n *\r\n * @param {number} index - Index value of target item.\r\n * @param {boolean} value - Based on this Boolean value, item will be hide (false) or show (true). By default, value is true.\r\n * @returns {void}.\r\n */\r\n Tab.prototype.hideTab = function (index, value) {\r\n var items;\r\n var item = selectAll('.' + CLS_TB_ITEM, this.element)[index];\r\n if (isNOU(item)) {\r\n return;\r\n }\r\n if (isNOU(value)) {\r\n value = true;\r\n }\r\n this.bdrLine.classList.add(CLS_HIDDEN);\r\n if (value === true) {\r\n item.classList.add(CLS_HIDDEN);\r\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\r\n if (items.length !== 0 && item.classList.contains(CLS_ACTIVE)) {\r\n if (index !== 0) {\r\n for (var i = index - 1; i >= 0; i--) {\r\n if (!this.tbItem[i].classList.contains(CLS_HIDDEN)) {\r\n this.select(i);\r\n break;\r\n }\r\n else if (i === 0) {\r\n for (var k = index + 1; k < this.tbItem.length; k++) {\r\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\r\n this.select(k);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var k = index + 1; k < this.tbItem.length; k++) {\r\n if (!this.tbItem[k].classList.contains(CLS_HIDDEN)) {\r\n this.select(k);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n else if (items.length === 0) {\r\n this.element.classList.add(CLS_HIDDEN);\r\n }\r\n }\r\n else {\r\n this.element.classList.remove(CLS_HIDDEN);\r\n items = selectAll('.' + CLS_TB_ITEM + ':not(.' + CLS_HIDDEN + ')', this.tbItems);\r\n item.classList.remove(CLS_HIDDEN);\r\n if (items.length === 0) {\r\n this.select(index);\r\n }\r\n }\r\n this.setActiveBorder();\r\n item.setAttribute('aria-hidden', '' + value);\r\n if (this.overflowMode === 'Popup' && this.tbObj) {\r\n this.tbObj.refreshOverflow();\r\n }\r\n };\r\n /**\r\n * Specifies the index or HTMLElement to select an item from the Tab.\r\n *\r\n * @param {number | HTMLElement} args - Index or DOM element is used for selecting an item from the Tab.\r\n * @param {Event} event - An event which takes place in DOM.\r\n * @returns {void}.\r\n */\r\n Tab.prototype.select = function (args, event) {\r\n var _this = this;\r\n var tabHeader = this.getTabHeader();\r\n this.tbItems = select('.' + CLS_TB_ITEMS, tabHeader);\r\n this.tbItem = selectAll('.' + CLS_TB_ITEM, tabHeader);\r\n this.content = select('.' + CLS_CONTENT, this.element);\r\n this.prevItem = this.tbItem[this.prevIndex];\r\n if (isNOU(this.selectedItem) || (this.selectedItem < 0) || (this.tbItem.length <= this.selectedItem) || isNaN(this.selectedItem)) {\r\n this.selectedItem = 0;\r\n }\r\n else {\r\n this.selectedID = this.extIndex(this.tbItem[this.selectedItem].id);\r\n }\r\n var trg = this.tbItem[args];\r\n if (isNOU(trg)) {\r\n this.selectedID = '0';\r\n }\r\n else {\r\n this.selectingID = this.extIndex(trg.id);\r\n }\r\n if (!isNOU(this.prevItem) && !this.prevItem.classList.contains(CLS_DISABLE)) {\r\n this.prevItem.children.item(0).setAttribute('tabindex', '-1');\r\n }\r\n var eventArg = {\r\n event: event,\r\n previousItem: this.prevItem,\r\n previousIndex: this.prevIndex,\r\n selectedItem: this.tbItem[this.selectedItem],\r\n selectedIndex: this.selectedItem,\r\n selectedContent: !isNOU(this.content) ?\r\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectedID, this.content) : null,\r\n selectingItem: trg,\r\n selectingIndex: args,\r\n selectingContent: !isNOU(this.content) ?\r\n select('#' + CLS_CONTENT + this.tabId + '_' + this.selectingID, this.content) : null,\r\n isSwiped: this.isSwipeed,\r\n cancel: false\r\n };\r\n if (!this.initRender) {\r\n this.trigger('selecting', eventArg, function (selectArgs) {\r\n if (!selectArgs.cancel) {\r\n _this.selectingContent(args);\r\n }\r\n });\r\n }\r\n else {\r\n this.selectingContent(args);\r\n }\r\n };\r\n Tab.prototype.selectingContent = function (args) {\r\n if (typeof args === 'number') {\r\n if (!isNOU(this.tbItem[args]) && (this.tbItem[args].classList.contains(CLS_DISABLE) ||\r\n this.tbItem[args].classList.contains(CLS_HIDDEN))) {\r\n for (var i = args + 1; i < this.items.length; i++) {\r\n if (this.items[i].disabled === false && this.items[i].visible === true) {\r\n args = i;\r\n break;\r\n }\r\n else {\r\n args = 0;\r\n }\r\n }\r\n }\r\n if (this.tbItem.length > args && args >= 0 && !isNaN(args)) {\r\n this.prevIndex = this.selectedItem;\r\n if (this.tbItem[args].classList.contains(CLS_TB_POPUP)) {\r\n this.setActive(this.popupHandler(this.tbItem[args]));\r\n if ((!isNOU(this.items) && this.items.length > 0) && this.allowDragAndDrop) {\r\n this.tbItem = selectAll('.' + CLS_TB_ITEMS + ' .' + CLS_TB_ITEM, this.hdrEle);\r\n var item = this.items[args];\r\n this.items.splice(args, 1);\r\n this.items.splice(this.tbItem.length - 1, 0, item);\r\n }\r\n }\r\n else {\r\n this.setActive(args);\r\n }\r\n }\r\n else {\r\n this.setActive(0);\r\n }\r\n }\r\n else if (args instanceof (HTMLElement)) {\r\n this.setActive(this.getEleIndex(args));\r\n }\r\n };\r\n /**\r\n * Gets the item index from the Tab.\r\n *\r\n * @param {string} tabItemId - Item ID is used for getting index from the Tab.\r\n * @returns {number} - It returns item index.\r\n */\r\n Tab.prototype.getItemIndex = function (tabItemId) {\r\n var tabIndex;\r\n for (var i = 0; i < this.tbItem.length; i++) {\r\n var value = this.tbItem[i].getAttribute('data-id');\r\n if (tabItemId === value) {\r\n tabIndex = i;\r\n break;\r\n }\r\n }\r\n return tabIndex;\r\n };\r\n /**\r\n * Specifies the value to disable/enable the Tab component.\r\n * When set to `true`, the component will be disabled.\r\n *\r\n * @param {boolean} value - Based on this Boolean value, Tab will be enabled (false) or disabled (true).\r\n * @returns {void}.\r\n */\r\n Tab.prototype.disable = function (value) {\r\n this.setCssClass(this.element, CLS_DISABLE, value);\r\n this.element.setAttribute('aria-disabled', '' + value);\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - It returns the persisted state.\r\n */\r\n Tab.prototype.getPersistData = function () {\r\n return this.addOnPersist(['selectedItem', 'actEleId']);\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - It returns the current module name.\r\n * @private\r\n */\r\n Tab.prototype.getModuleName = function () {\r\n return 'tab';\r\n };\r\n /**\r\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\r\n *\r\n * @param {TabModel} newProp - It contains the new value of data.\r\n * @param {TabModel} oldProp - It contains the old value of data.\r\n * @returns {void}\r\n * @private\r\n */\r\n Tab.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var _this = this;\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'width':\r\n setStyle(this.element, { width: formatUnit(newProp.width) });\r\n break;\r\n case 'height':\r\n setStyle(this.element, { height: formatUnit(newProp.height) });\r\n this.setContentHeight(false);\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass !== '' && !isNullOrUndefined(oldProp.cssClass)) {\r\n this.setCssClass(this.element, oldProp.cssClass, false);\r\n this.setCssClass(this.element, newProp.cssClass, true);\r\n }\r\n else {\r\n this.setCssClass(this.element, newProp.cssClass, true);\r\n }\r\n break;\r\n case 'items':\r\n this.evalOnPropertyChangeItems(newProp, oldProp);\r\n break;\r\n case 'showCloseButton':\r\n this.setCloseButton(newProp.showCloseButton);\r\n break;\r\n case 'selectedItem':\r\n this.selectedItem = oldProp.selectedItem;\r\n this.select(newProp.selectedItem);\r\n break;\r\n case 'headerPlacement':\r\n this.changeOrientation(newProp.headerPlacement);\r\n break;\r\n case 'enableRtl':\r\n this.setRTL(newProp.enableRtl);\r\n break;\r\n case 'overflowMode':\r\n this.tbObj.overflowMode = newProp.overflowMode;\r\n this.tbObj.dataBind();\r\n this.refreshActElePosition();\r\n break;\r\n case 'heightAdjustMode':\r\n this.setContentHeight(false);\r\n this.select(this.selectedItem);\r\n break;\r\n case 'scrollStep':\r\n if (this.tbObj) {\r\n this.tbObj.scrollStep = this.scrollStep;\r\n }\r\n break;\r\n case 'allowDragAndDrop':\r\n this.bindDraggable();\r\n break;\r\n case 'dragArea':\r\n if (this.allowDragAndDrop) {\r\n this.draggableItems.forEach(function (item) {\r\n item.dragArea = _this.dragArea;\r\n });\r\n this.refresh();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n Tab.prototype.refreshActiveTab = function () {\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n if (!this.isTemplate) {\r\n if (this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE)) {\r\n detach(this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).children[0]);\r\n detach(this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0]);\r\n var item = this.items[this.selectedItem];\r\n var pos = (isNOU(item.header) || isNOU(item.header.iconPosition)) ? '' : item.header.iconPosition;\r\n var css = (isNOU(item.header) || isNOU(item.header.iconCss)) ? '' : item.header.iconCss;\r\n var text = item.headerTemplate || item.header.text;\r\n var txtWrap = this.createElement('div', { className: CLS_TEXT, attrs: { 'role': 'presentation' } });\r\n if (!isNOU(text.tagName)) {\r\n txtWrap.appendChild(text);\r\n }\r\n else {\r\n this.headerTextCompile(txtWrap, text, this.selectedItem);\r\n }\r\n var tEle = void 0;\r\n var icon = this.createElement('span', {\r\n className: CLS_ICONS + ' ' + CLS_TAB_ICON + ' ' + CLS_ICON + '-' + pos + ' ' + css\r\n });\r\n var tConts = this.createElement('div', { className: CLS_TEXT_WRAP });\r\n tConts.appendChild(txtWrap);\r\n if ((text !== '' && text !== undefined) && css !== '') {\r\n if ((pos === 'left' || pos === 'top')) {\r\n tConts.insertBefore(icon, tConts.firstElementChild);\r\n }\r\n else {\r\n tConts.appendChild(icon);\r\n }\r\n tEle = txtWrap;\r\n this.isIconAlone = false;\r\n }\r\n else {\r\n tEle = ((css === '') ? txtWrap : icon);\r\n if (tEle === icon) {\r\n detach(txtWrap);\r\n tConts.appendChild(icon);\r\n this.isIconAlone = true;\r\n }\r\n }\r\n var wrapAtt = (item.disabled) ? {} : { tabIndex: '-1' };\r\n tConts.appendChild(this.btnCls.cloneNode(true));\r\n var wraper = this.createElement('div', { className: CLS_WRAP, attrs: wrapAtt });\r\n wraper.appendChild(tConts);\r\n if (pos === 'top' || pos === 'bottom') {\r\n this.element.classList.add('e-vertical-icon');\r\n }\r\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wraper);\r\n var crElem = this.createElement('div');\r\n var cnt = item.content;\r\n var eleStr = void 0;\r\n if (typeof cnt === 'string' || isNOU(cnt.innerHTML)) {\r\n if (typeof cnt === 'string' && this.enableHtmlSanitizer) {\r\n cnt = SanitizeHtmlHelper.sanitize(cnt);\r\n }\r\n if (cnt[0] === '.' || cnt[0] === '#') {\r\n if (document.querySelectorAll(cnt).length) {\r\n var eleVal = document.querySelector(cnt);\r\n eleStr = eleVal.outerHTML.trim();\r\n crElem.appendChild(eleVal);\r\n eleVal.style.display = '';\r\n }\r\n else {\r\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\r\n }\r\n }\r\n else {\r\n this.compileElement(crElem, cnt, 'content', this.selectedItem);\r\n }\r\n }\r\n else {\r\n crElem.appendChild(cnt);\r\n }\r\n if (!isNOU(eleStr)) {\r\n if (this.templateEle.indexOf(cnt.toString()) === -1) {\r\n this.templateEle.push(cnt.toString());\r\n }\r\n }\r\n this.element.querySelector('.' + CLS_ITEM + '.' + CLS_ACTIVE).appendChild(crElem);\r\n }\r\n }\r\n else {\r\n var tabItems = this.element.querySelector('.' + CLS_TB_ITEMS);\r\n var element = this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE);\r\n var id = element.id;\r\n var num = (id.indexOf('_'));\r\n var index = parseInt(id.substring(num + 1), 10);\r\n var header = element.innerText;\r\n var detachContent = this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).children[0];\r\n var mainContents = detachContent.innerHTML;\r\n detach(element);\r\n detach(detachContent);\r\n var attr = {\r\n className: CLS_TB_ITEM + ' ' + CLS_TEMPLATE + ' ' + CLS_ACTIVE, id: CLS_ITEM + this.tabId + '_' + index,\r\n attrs: {\r\n role: 'tab', 'aria-controls': CLS_CONTENT + this.tabId + '_' + index,\r\n 'aria-disabled': 'false', 'aria-selected': 'true'\r\n }\r\n };\r\n var txtString = this.createElement('span', {\r\n className: CLS_TEXT, innerHTML: header, attrs: { 'role': 'presentation' }\r\n }).outerHTML;\r\n var conte = this.createElement('div', {\r\n className: CLS_TEXT_WRAP, innerHTML: txtString + this.btnCls.outerHTML\r\n }).outerHTML;\r\n var wrap = this.createElement('div', { className: CLS_WRAP, innerHTML: conte, attrs: { tabIndex: '-1' } });\r\n tabItems.insertBefore(this.createElement('div', attr), tabItems.children[index + 1]);\r\n this.element.querySelector('.' + CLS_TB_ITEM + '.' + CLS_ACTIVE).appendChild(wrap);\r\n var crElem = this.createElement('div', { innerHTML: mainContents });\r\n this.element.querySelector('.' + CLS_CONTENT).querySelector('.' + CLS_ACTIVE).appendChild(crElem);\r\n }\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n __decorate([\r\n Collection([], TabItem)\r\n ], Tab.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], Tab.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Tab.prototype, \"height\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Tab.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Tab.prototype, \"selectedItem\", void 0);\r\n __decorate([\r\n Property('Top')\r\n ], Tab.prototype, \"headerPlacement\", void 0);\r\n __decorate([\r\n Property('Content')\r\n ], Tab.prototype, \"heightAdjustMode\", void 0);\r\n __decorate([\r\n Property('Scrollable')\r\n ], Tab.prototype, \"overflowMode\", void 0);\r\n __decorate([\r\n Property('Dynamic')\r\n ], Tab.prototype, \"loadOn\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tab.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tab.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tab.prototype, \"showCloseButton\", void 0);\r\n __decorate([\r\n Property()\r\n ], Tab.prototype, \"scrollStep\", void 0);\r\n __decorate([\r\n Property()\r\n ], Tab.prototype, \"dragArea\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tab.prototype, \"allowDragAndDrop\", void 0);\r\n __decorate([\r\n Complex({}, TabAnimationSettings)\r\n ], Tab.prototype, \"animation\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"adding\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"added\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"selecting\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"selected\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"removing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"removed\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"onDragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"dragging\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"dragged\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tab.prototype, \"destroyed\", void 0);\r\n Tab = __decorate([\r\n NotifyPropertyChanges\r\n ], Tab);\r\n return Tab;\r\n}(Component));\r\nexport { Tab };\r\n","/**\n * Toolbar modules\n */\nexport * from './toolbar';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, EventHandler, Property, Event } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, isVisible, closest, attributes, detach, classList, KeyboardEvents } from '@syncfusion/ej2-base';\r\nimport { selectAll, setStyleAttribute as setStyle, select } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined as isNOU, getUniqueID, formatUnit, Collection, compile as templateCompiler } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty, Browser, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { calculatePosition } from '@syncfusion/ej2-popups';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { HScroll } from '../common/h-scroll';\r\nimport { VScroll } from '../common/v-scroll';\r\nvar CLS_VERTICAL = 'e-vertical';\r\nvar CLS_ITEMS = 'e-toolbar-items';\r\nvar CLS_ITEM = 'e-toolbar-item';\r\nvar CLS_RTL = 'e-rtl';\r\nvar CLS_SEPARATOR = 'e-separator';\r\nvar CLS_POPUPICON = 'e-popup-up-icon';\r\nvar CLS_POPUPDOWN = 'e-popup-down-icon';\r\nvar CLS_POPUPOPEN = 'e-popup-open';\r\nvar CLS_TEMPLATE = 'e-template';\r\nvar CLS_DISABLE = 'e-overlay';\r\nvar CLS_POPUPTEXT = 'e-toolbar-text';\r\nvar CLS_TBARTEXT = 'e-popup-text';\r\nvar CLS_TBAROVERFLOW = 'e-overflow-show';\r\nvar CLS_POPOVERFLOW = 'e-overflow-hide';\r\nvar CLS_TBARBTN = 'e-tbar-btn';\r\nvar CLS_TBARNAV = 'e-hor-nav';\r\nvar CLS_TBARSCRLNAV = 'e-scroll-nav';\r\nvar CLS_TBARRIGHT = 'e-toolbar-right';\r\nvar CLS_TBARLEFT = 'e-toolbar-left';\r\nvar CLS_TBARCENTER = 'e-toolbar-center';\r\nvar CLS_TBARPOS = 'e-tbar-pos';\r\nvar CLS_HSCROLLCNT = 'e-hscroll-content';\r\nvar CLS_VSCROLLCNT = 'e-vscroll-content';\r\nvar CLS_HSCROLLBAR = 'e-hscroll-bar';\r\nvar CLS_POPUPNAV = 'e-hor-nav';\r\nvar CLS_POPUPCLASS = 'e-toolbar-pop';\r\nvar CLS_POPUP = 'e-toolbar-popup';\r\nvar CLS_TBARBTNTEXT = 'e-tbar-btn-text';\r\nvar CLS_TBARNAVACT = 'e-nav-active';\r\nvar CLS_TBARIGNORE = 'e-ignore';\r\nvar CLS_POPPRI = 'e-popup-alone';\r\nvar CLS_HIDDEN = 'e-hidden';\r\nvar CLS_MULTIROW = 'e-toolbar-multirow';\r\nvar CLS_MULTIROWPOS = 'e-multirow-pos';\r\nvar CLS_MULTIROW_SEPARATOR = 'e-multirow-separator';\r\nvar CLS_EXTENDABLE_SEPARATOR = 'e-extended-separator';\r\nvar CLS_EXTEANDABLE_TOOLBAR = 'e-extended-toolbar';\r\nvar CLS_EXTENDABLECLASS = 'e-toolbar-extended';\r\nvar CLS_EXTENDPOPUP = 'e-expended-nav';\r\nvar CLS_EXTENDEDPOPOPEN = 'e-tbar-extended';\r\n/**\r\n * An item object that is used to configure Toolbar commands.\r\n */\r\nvar Item = /** @class */ (function (_super) {\r\n __extends(Item, _super);\r\n function Item() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"id\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Item.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Item.prototype, \"showAlwaysInPopup\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Item.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"prefixIcon\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"suffixIcon\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Item.prototype, \"visible\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], Item.prototype, \"overflow\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"template\", void 0);\r\n __decorate([\r\n Property('Button')\r\n ], Item.prototype, \"type\", void 0);\r\n __decorate([\r\n Property('Both')\r\n ], Item.prototype, \"showTextOn\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Item.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"tooltipText\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], Item.prototype, \"align\", void 0);\r\n __decorate([\r\n Event()\r\n ], Item.prototype, \"click\", void 0);\r\n return Item;\r\n}(ChildProperty));\r\nexport { Item };\r\n/**\r\n * The Toolbar control contains a group of commands that are aligned horizontally.\r\n * ```html\r\n *
      \r\n * \r\n * ```\r\n */\r\nvar Toolbar = /** @class */ (function (_super) {\r\n __extends(Toolbar, _super);\r\n /**\r\n * Initializes a new instance of the Toolbar class.\r\n *\r\n * @param {ToolbarModel} options - Specifies Toolbar model properties as options.\r\n * @param { string | HTMLElement} element - Specifies the element that is rendered as a Toolbar.\r\n */\r\n function Toolbar(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.resizeContext = _this.resize.bind(_this);\r\n /**\r\n * Contains the keyboard configuration of the Toolbar.\r\n */\r\n _this.keyConfigs = {\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n moveUp: 'uparrow',\r\n moveDown: 'downarrow',\r\n popupOpen: 'enter',\r\n popupClose: 'escape',\r\n tab: 'tab',\r\n home: 'home',\r\n end: 'end'\r\n };\r\n return _this;\r\n }\r\n /**\r\n * Removes the control from the DOM and also removes all its related events.\r\n *\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.destroy = function () {\r\n var _this = this;\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n var btnItems = this.element.querySelectorAll('.e-control.e-btn');\r\n [].slice.call(btnItems).forEach(function (el) {\r\n if (!isNOU(el) && !isNOU(el.ej2_instances) && !isNOU(el.ej2_instances[0]) && !(el.ej2_instances[0].isDestroyed)) {\r\n el.ej2_instances[0].destroy();\r\n }\r\n });\r\n _super.prototype.destroy.call(this);\r\n this.unwireEvents();\r\n this.tempId.forEach(function (ele) {\r\n if (!isNOU(_this.element.querySelector(ele))) {\r\n document.body.appendChild(_this.element.querySelector(ele)).style.display = 'none';\r\n }\r\n });\r\n while (this.element.lastElementChild) {\r\n this.element.removeChild(this.element.lastElementChild);\r\n }\r\n if (this.trgtEle) {\r\n this.element.appendChild(this.ctrlTem);\r\n }\r\n this.clearProperty();\r\n this.popObj = null;\r\n this.tbarAlign = null;\r\n this.remove(this.element, 'e-toolpop');\r\n if (this.cssClass) {\r\n removeClass([this.element], this.cssClass.split(' '));\r\n }\r\n this.element.removeAttribute('style');\r\n ['aria-disabled', 'aria-orientation', 'aria-haspopup', 'role'].forEach(function (attrb) {\r\n return _this.element.removeAttribute(attrb);\r\n });\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Toolbar.prototype.preRender = function () {\r\n var eventArgs = { enableCollision: this.enableCollision, scrollStep: this.scrollStep };\r\n this.trigger('beforeCreate', eventArgs);\r\n this.enableCollision = eventArgs.enableCollision;\r\n this.scrollStep = eventArgs.scrollStep;\r\n this.scrollModule = null;\r\n this.popObj = null;\r\n this.tempId = [];\r\n this.tbarItemsCol = this.items;\r\n this.isVertical = this.element.classList.contains(CLS_VERTICAL) ? true : false;\r\n this.isExtendedOpen = false;\r\n this.popupPriCount = 0;\r\n if (this.enableRtl) {\r\n this.add(this.element, CLS_RTL);\r\n }\r\n };\r\n Toolbar.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n window.addEventListener('resize', this.resizeContext);\r\n if (this.allowKeyboard) {\r\n this.wireKeyboardEvent();\r\n }\r\n };\r\n Toolbar.prototype.wireKeyboardEvent = function () {\r\n this.keyModule = new KeyboardEvents(this.element, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs\r\n });\r\n EventHandler.add(this.element, 'keydown', this.docKeyDown, this);\r\n this.element.setAttribute('tabIndex', '0');\r\n };\r\n Toolbar.prototype.unwireKeyboardEvent = function () {\r\n if (this.keyModule) {\r\n EventHandler.remove(this.element, 'keydown', this.docKeyDown);\r\n this.keyModule.destroy();\r\n this.keyModule = null;\r\n }\r\n };\r\n Toolbar.prototype.docKeyDown = function (e) {\r\n if (e.target.tagName === 'INPUT') {\r\n return;\r\n }\r\n var popCheck = !isNOU(this.popObj) && isVisible(this.popObj.element) && this.overflowMode !== 'Extended';\r\n if (e.keyCode === 9 && e.target.classList.contains('e-hor-nav') === true && popCheck) {\r\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\r\n }\r\n var keyCheck = (e.keyCode === 40 || e.keyCode === 38 || e.keyCode === 35 || e.keyCode === 36);\r\n if (keyCheck) {\r\n e.preventDefault();\r\n }\r\n };\r\n Toolbar.prototype.unwireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n this.destroyScroll();\r\n this.unwireKeyboardEvent();\r\n window.removeEventListener('resize', this.resizeContext);\r\n EventHandler.remove(document, 'scroll', this.docEvent);\r\n EventHandler.remove(document, 'click', this.docEvent);\r\n };\r\n Toolbar.prototype.clearProperty = function () {\r\n this.tbarEle = [];\r\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\r\n };\r\n Toolbar.prototype.docEvent = function (e) {\r\n var popEle = closest(e.target, '.e-popup');\r\n if (this.popObj && isVisible(this.popObj.element) && !popEle && this.overflowMode === 'Popup') {\r\n this.popObj.hide({ name: 'FadeOut', duration: 100 });\r\n }\r\n };\r\n Toolbar.prototype.destroyScroll = function () {\r\n if (this.scrollModule) {\r\n if (this.tbarAlign) {\r\n this.add(this.scrollModule.element, CLS_TBARPOS);\r\n }\r\n this.scrollModule.destroy();\r\n this.scrollModule = null;\r\n }\r\n };\r\n Toolbar.prototype.destroyItems = function () {\r\n if (this.element) {\r\n [].slice.call(this.element.querySelectorAll('.' + CLS_ITEM)).forEach(function (el) { detach(el); });\r\n }\r\n var tbarItems = this.element.querySelector('.' + CLS_ITEMS);\r\n if (this.tbarAlign) {\r\n [].slice.call(tbarItems.children).forEach(function (el) {\r\n detach(el);\r\n });\r\n this.tbarAlign = false;\r\n this.remove(tbarItems, CLS_TBARPOS);\r\n }\r\n this.clearProperty();\r\n };\r\n Toolbar.prototype.destroyMode = function () {\r\n if (this.scrollModule) {\r\n this.remove(this.scrollModule.element, CLS_RTL);\r\n this.destroyScroll();\r\n }\r\n this.remove(this.element, CLS_EXTENDEDPOPOPEN);\r\n this.remove(this.element, CLS_EXTEANDABLE_TOOLBAR);\r\n var tempEle = this.element.querySelector('.e-toolbar-multirow');\r\n if (tempEle) {\r\n this.remove(tempEle, CLS_MULTIROW);\r\n }\r\n if (this.popObj) {\r\n this.popupRefresh(this.popObj.element, true);\r\n }\r\n };\r\n Toolbar.prototype.add = function (ele, val) {\r\n ele.classList.add(val);\r\n };\r\n Toolbar.prototype.remove = function (ele, val) {\r\n ele.classList.remove(val);\r\n };\r\n Toolbar.prototype.elementFocus = function (ele) {\r\n var fChild = ele.firstElementChild;\r\n if (fChild) {\r\n fChild.focus();\r\n this.activeEleSwitch(ele);\r\n }\r\n else {\r\n ele.focus();\r\n }\r\n };\r\n Toolbar.prototype.clstElement = function (tbrNavChk, trgt) {\r\n var clst;\r\n if (tbrNavChk && this.popObj && isVisible(this.popObj.element)) {\r\n clst = this.popObj.element.querySelector('.' + CLS_ITEM);\r\n }\r\n else if (this.element === trgt || tbrNavChk) {\r\n clst = this.element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_DISABLE + ' ):not(.' + CLS_SEPARATOR + ' ):not(.' + CLS_HIDDEN + ' )');\r\n }\r\n else {\r\n clst = closest(trgt, '.' + CLS_ITEM);\r\n }\r\n return clst;\r\n };\r\n Toolbar.prototype.keyHandling = function (clst, e, trgt, navChk, scrollChk) {\r\n var popObj = this.popObj;\r\n var rootEle = this.element;\r\n var popAnimate = { name: 'FadeOut', duration: 100 };\r\n var value = e.action === 'moveUp' ? 'previous' : 'next';\r\n var ele;\r\n var nodes;\r\n switch (e.action) {\r\n case 'moveRight':\r\n if (this.isVertical) {\r\n return;\r\n }\r\n if (rootEle === trgt) {\r\n this.elementFocus(clst);\r\n }\r\n else if (!navChk) {\r\n this.eleFocus(clst, 'next');\r\n }\r\n break;\r\n case 'moveLeft':\r\n if (this.isVertical) {\r\n return;\r\n }\r\n if (!navChk) {\r\n this.eleFocus(clst, 'previous');\r\n }\r\n break;\r\n case 'home':\r\n case 'end':\r\n if (clst) {\r\n var popupCheck = closest(clst, '.e-popup');\r\n if (popupCheck) {\r\n if (isVisible(this.popObj.element)) {\r\n nodes = [].slice.call(popupCheck.children);\r\n if (e.action === 'home') {\r\n ele = nodes[0];\r\n }\r\n else {\r\n ele = nodes[nodes.length - 1];\r\n }\r\n }\r\n }\r\n else {\r\n nodes = this.element.querySelectorAll('.' + CLS_ITEMS + ' .' + CLS_ITEM);\r\n if (e.action === 'home') {\r\n ele = nodes[0];\r\n }\r\n else {\r\n ele = nodes[nodes.length - 1];\r\n }\r\n }\r\n if (ele) {\r\n this.elementFocus(ele);\r\n }\r\n }\r\n break;\r\n case 'moveUp':\r\n case 'moveDown':\r\n if (!this.isVertical) {\r\n if (popObj && closest(trgt, '.e-popup')) {\r\n var popEle = popObj.element;\r\n var popFrstEle = popEle.firstElementChild;\r\n if ((value === 'previous' && popFrstEle === clst) || (value === 'next' && popEle.lastElementChild === clst)) {\r\n return;\r\n }\r\n else {\r\n this.eleFocus(clst, value);\r\n }\r\n }\r\n else if (e.action === 'moveDown' && popObj && isVisible(popObj.element)) {\r\n this.elementFocus(clst);\r\n }\r\n }\r\n else {\r\n if (e.action === 'moveUp') {\r\n this.eleFocus(clst, 'previous');\r\n }\r\n else {\r\n this.eleFocus(clst, 'next');\r\n }\r\n }\r\n break;\r\n case 'tab':\r\n if (!scrollChk && !navChk) {\r\n var ele_1 = clst.firstElementChild;\r\n if (rootEle === trgt) {\r\n if (this.activeEle) {\r\n this.activeEle.focus();\r\n }\r\n else {\r\n this.activeEleRemove(ele_1);\r\n ele_1.focus();\r\n }\r\n this.element.removeAttribute('tabindex');\r\n }\r\n }\r\n break;\r\n case 'popupClose':\r\n if (popObj && this.overflowMode !== 'Extended') {\r\n popObj.hide(popAnimate);\r\n }\r\n break;\r\n case 'popupOpen':\r\n if (!navChk) {\r\n return;\r\n }\r\n if (popObj && !isVisible(popObj.element)) {\r\n popObj.element.style.top = rootEle.offsetHeight + 'px';\r\n popObj.show({ name: 'FadeIn', duration: 100 });\r\n }\r\n else {\r\n popObj.hide(popAnimate);\r\n }\r\n break;\r\n }\r\n };\r\n Toolbar.prototype.keyActionHandler = function (e) {\r\n var trgt = e.target;\r\n if (trgt.tagName === 'INPUT' || trgt.tagName === 'TEXTAREA' || this.element.classList.contains(CLS_DISABLE)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n var tbrNavChk = trgt.classList.contains(CLS_TBARNAV);\r\n var tbarScrollChk = trgt.classList.contains(CLS_TBARSCRLNAV);\r\n var clst = this.clstElement(tbrNavChk, trgt);\r\n if (clst || tbarScrollChk) {\r\n this.keyHandling(clst, e, trgt, tbrNavChk, tbarScrollChk);\r\n }\r\n };\r\n /**\r\n * Specifies the value to disable/enable the Toolbar component.\r\n * When set to `true`, the component will be disabled.\r\n *\r\n * @param {boolean} value - Based on this Boolean value, Toolbar will be enabled (false) or disabled (true).\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.disable = function (value) {\r\n var rootEle = this.element;\r\n if (value) {\r\n rootEle.classList.add(CLS_DISABLE);\r\n }\r\n else {\r\n rootEle.classList.remove(CLS_DISABLE);\r\n }\r\n rootEle.setAttribute('tabindex', !value ? '0' : '-1');\r\n if (this.activeEle) {\r\n this.activeEle.setAttribute('tabindex', !value ? '0' : '-1');\r\n }\r\n if (this.scrollModule) {\r\n this.scrollModule.disable(value);\r\n }\r\n if (this.popObj) {\r\n if (isVisible(this.popObj.element) && this.overflowMode !== 'Extended') {\r\n this.popObj.hide();\r\n }\r\n rootEle.querySelector('#' + rootEle.id + '_nav').setAttribute('tabindex', !value ? '0' : '-1');\r\n }\r\n };\r\n Toolbar.prototype.eleContains = function (el) {\r\n return el.classList.contains(CLS_SEPARATOR) || el.classList.contains(CLS_DISABLE) || el.getAttribute('disabled') || el.classList.contains(CLS_HIDDEN) || !isVisible(el);\r\n };\r\n Toolbar.prototype.eleFocus = function (closest, pos) {\r\n var sib = Object(closest)[pos + 'ElementSibling'];\r\n if (sib) {\r\n var skipEle = this.eleContains(sib);\r\n if (skipEle) {\r\n this.eleFocus(sib, pos);\r\n return;\r\n }\r\n this.elementFocus(sib);\r\n }\r\n else if (this.tbarAlign) {\r\n var elem = Object(closest.parentElement)[pos + 'ElementSibling'];\r\n if (!isNOU(elem) && elem.children.length === 0) {\r\n elem = Object(elem)[pos + 'ElementSibling'];\r\n }\r\n if (!isNOU(elem) && elem.children.length > 0) {\r\n if (pos === 'next') {\r\n var el = elem.querySelector('.' + CLS_ITEM);\r\n if (this.eleContains(el)) {\r\n this.eleFocus(el, pos);\r\n }\r\n else {\r\n el.firstElementChild.focus();\r\n this.activeEleSwitch(el);\r\n }\r\n }\r\n else {\r\n var el = elem.lastElementChild;\r\n if (this.eleContains(el)) {\r\n this.eleFocus(el, pos);\r\n }\r\n else {\r\n this.elementFocus(el);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Toolbar.prototype.clickHandler = function (e) {\r\n var _this = this;\r\n var trgt = e.target;\r\n var ele = this.element;\r\n var isPopupElement = !isNOU(closest(trgt, '.' + CLS_POPUPCLASS));\r\n var clsList = trgt.classList;\r\n var popupNav = closest(trgt, ('.' + CLS_TBARNAV));\r\n if (!popupNav) {\r\n popupNav = trgt;\r\n }\r\n if (!ele.children[0].classList.contains('e-hscroll') && !ele.children[0].classList.contains('e-vscroll')\r\n && (clsList.contains(CLS_TBARNAV))) {\r\n clsList = trgt.querySelector('.e-icons').classList;\r\n }\r\n if (clsList.contains(CLS_POPUPICON) || clsList.contains(CLS_POPUPDOWN)) {\r\n this.popupClickHandler(ele, popupNav, CLS_RTL);\r\n }\r\n var itemObj;\r\n var clst = closest(e.target, '.' + CLS_ITEM);\r\n if ((isNOU(clst) || clst.classList.contains(CLS_DISABLE)) && !popupNav.classList.contains(CLS_TBARNAV)) {\r\n return;\r\n }\r\n if (clst) {\r\n var tempItem = this.items[this.tbarEle.indexOf(clst)];\r\n itemObj = tempItem;\r\n }\r\n var eventArgs = { originalEvent: e, item: itemObj };\r\n if (itemObj && !isNOU(itemObj.click)) {\r\n this.trigger('items[' + this.tbarEle.indexOf(clst) + '].click', eventArgs);\r\n }\r\n if (!eventArgs.cancel) {\r\n this.trigger('clicked', eventArgs, function (clickedArgs) {\r\n if (!isNOU(_this.popObj) && isPopupElement && !clickedArgs.cancel && _this.overflowMode === 'Popup' &&\r\n clickedArgs.item && clickedArgs.item.type !== 'Input') {\r\n _this.popObj.hide({ name: 'FadeOut', duration: 100 });\r\n }\r\n });\r\n }\r\n };\r\n Toolbar.prototype.popupClickHandler = function (ele, popupNav, CLS_RTL) {\r\n var popObj = this.popObj;\r\n if (isVisible(popObj.element)) {\r\n popupNav.classList.remove(CLS_TBARNAVACT);\r\n popObj.hide({ name: 'FadeOut', duration: 100 });\r\n }\r\n else {\r\n if (ele.classList.contains(CLS_RTL)) {\r\n popObj.enableRtl = true;\r\n popObj.position = { X: 'left', Y: 'top' };\r\n }\r\n if (popObj.offsetX === 0 && !ele.classList.contains(CLS_RTL)) {\r\n popObj.enableRtl = false;\r\n popObj.position = { X: 'right', Y: 'top' };\r\n }\r\n popObj.dataBind();\r\n popObj.refreshPosition();\r\n popObj.element.style.top = this.getElementOffsetY() + 'px';\r\n if (this.overflowMode === 'Extended') {\r\n popObj.element.style.minHeight = '0px';\r\n }\r\n popupNav.classList.add(CLS_TBARNAVACT);\r\n popObj.show({ name: 'FadeIn', duration: 100 });\r\n }\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Toolbar.prototype.render = function () {\r\n this.initialize();\r\n this.renderControl();\r\n this.wireEvents();\r\n this.renderComplete();\r\n };\r\n Toolbar.prototype.initialize = function () {\r\n var width = formatUnit(this.width);\r\n var height = formatUnit(this.height);\r\n if (Browser.info.name !== 'msie' || this.height !== 'auto' || this.overflowMode === 'MultiRow') {\r\n setStyle(this.element, { 'height': height });\r\n }\r\n setStyle(this.element, { 'width': width });\r\n var ariaAttr = {\r\n 'role': 'toolbar', 'aria-disabled': 'false', 'aria-haspopup': 'false',\r\n 'aria-orientation': !this.isVertical ? 'horizontal' : 'vertical'\r\n };\r\n attributes(this.element, ariaAttr);\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' '));\r\n }\r\n };\r\n Toolbar.prototype.renderControl = function () {\r\n var ele = this.element;\r\n this.trgtEle = (ele.children.length > 0) ? ele.querySelector('div') : null;\r\n this.tbarAlgEle = { lefts: [], centers: [], rights: [] };\r\n this.renderItems();\r\n this.renderLayout();\r\n };\r\n Toolbar.prototype.renderLayout = function () {\r\n this.renderOverflowMode();\r\n if (this.tbarAlign) {\r\n this.itemPositioning();\r\n }\r\n if (this.popObj && this.popObj.element.childElementCount > 1 && this.checkPopupRefresh(this.element, this.popObj.element)) {\r\n this.popupRefresh(this.popObj.element, false);\r\n }\r\n this.separator();\r\n };\r\n Toolbar.prototype.itemsAlign = function (items, itemEleDom) {\r\n var innerItem;\r\n var innerPos;\r\n if (!this.tbarEle) {\r\n this.tbarEle = [];\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n innerItem = this.renderSubComponent(items[i], i);\r\n if (this.tbarEle.indexOf(innerItem) === -1) {\r\n this.tbarEle.push(innerItem);\r\n }\r\n if (!this.tbarAlign) {\r\n this.tbarItemAlign(items[i], itemEleDom, i);\r\n }\r\n innerPos = itemEleDom.querySelector('.e-toolbar-' + items[i].align.toLowerCase());\r\n if (innerPos) {\r\n if (!(items[i].showAlwaysInPopup && items[i].overflow !== 'Show')) {\r\n this.tbarAlgEle[(items[i].align + 's').toLowerCase()].push(innerItem);\r\n }\r\n innerPos.appendChild(innerItem);\r\n }\r\n else {\r\n itemEleDom.appendChild(innerItem);\r\n }\r\n }\r\n if (this.isReact) {\r\n var portals = 'portals';\r\n this.notify('render-react-toolbar-template', this[portals]);\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * @hidden\r\n * @returns {void}\r\n */\r\n Toolbar.prototype.changeOrientation = function () {\r\n var ele = this.element;\r\n if (this.isVertical) {\r\n ele.classList.remove(CLS_VERTICAL);\r\n this.isVertical = false;\r\n if (this.height === 'auto' || this.height === '100%') {\r\n ele.style.height = this.height;\r\n }\r\n ele.setAttribute('aria-orientation', 'horizontal');\r\n }\r\n else {\r\n ele.classList.add(CLS_VERTICAL);\r\n this.isVertical = true;\r\n ele.setAttribute('aria-orientation', 'vertical');\r\n setStyle(this.element, { 'height': formatUnit(this.height), 'width': formatUnit(this.width) });\r\n }\r\n this.destroyMode();\r\n this.refreshOverflow();\r\n };\r\n Toolbar.prototype.initScroll = function (element, innerItems) {\r\n if (!this.scrollModule && this.checkOverflow(element, innerItems[0])) {\r\n if (this.tbarAlign) {\r\n this.element.querySelector('.' + CLS_ITEMS + ' .' + CLS_TBARCENTER).removeAttribute('style');\r\n }\r\n if (this.isVertical) {\r\n this.scrollModule = new VScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\r\n }\r\n else {\r\n this.scrollModule = new HScroll({ scrollStep: this.scrollStep, enableRtl: this.enableRtl }, innerItems[0]);\r\n }\r\n this.remove(this.scrollModule.element, CLS_TBARPOS);\r\n setStyle(this.element, { overflow: 'hidden' });\r\n }\r\n };\r\n Toolbar.prototype.itemWidthCal = function (items) {\r\n var _this = this;\r\n var width = 0;\r\n var style;\r\n [].slice.call(selectAll('.' + CLS_ITEM, items)).forEach(function (el) {\r\n if (isVisible(el)) {\r\n style = window.getComputedStyle(el);\r\n width += _this.isVertical ? el.offsetHeight : el.offsetWidth;\r\n width += parseFloat(_this.isVertical ? style.marginTop : style.marginRight);\r\n width += parseFloat(_this.isVertical ? style.marginBottom : style.marginLeft);\r\n }\r\n });\r\n return width;\r\n };\r\n Toolbar.prototype.getScrollCntEle = function (innerItem) {\r\n var trgClass = (this.isVertical) ? '.e-vscroll-content' : '.e-hscroll-content';\r\n return innerItem.querySelector(trgClass);\r\n };\r\n Toolbar.prototype.checkOverflow = function (element, innerItem) {\r\n if (isNOU(element) || isNOU(innerItem) || !isVisible(element)) {\r\n return false;\r\n }\r\n var eleWidth = this.isVertical ? element.offsetHeight : element.offsetWidth;\r\n var itemWidth = this.isVertical ? innerItem.offsetHeight : innerItem.offsetWidth;\r\n if (this.tbarAlign || this.scrollModule || (eleWidth === itemWidth)) {\r\n itemWidth = this.itemWidthCal(this.scrollModule ? this.getScrollCntEle(innerItem) : innerItem);\r\n }\r\n var popNav = element.querySelector('.' + CLS_TBARNAV);\r\n var scrollNav = element.querySelector('.' + CLS_TBARSCRLNAV);\r\n var navEleWidth = 0;\r\n if (popNav) {\r\n navEleWidth = this.isVertical ? popNav.offsetHeight : popNav.offsetWidth;\r\n }\r\n else if (scrollNav) {\r\n navEleWidth = this.isVertical ? (scrollNav.offsetHeight * (2)) : (scrollNav.offsetWidth * 2);\r\n }\r\n if (itemWidth > eleWidth - navEleWidth) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n /**\r\n * Refresh the whole Toolbar component without re-rendering.\r\n * - It is used to manually refresh the Toolbar overflow modes such as scrollable, popup, multi row, and extended.\r\n * - It will refresh the Toolbar component after loading items dynamically.\r\n *\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.refreshOverflow = function () {\r\n this.resize();\r\n };\r\n Toolbar.prototype.toolbarAlign = function (innerItems) {\r\n if (this.tbarAlign) {\r\n this.add(innerItems, CLS_TBARPOS);\r\n this.itemPositioning();\r\n }\r\n };\r\n Toolbar.prototype.renderOverflowMode = function () {\r\n var ele = this.element;\r\n var innerItems = ele.querySelector('.' + CLS_ITEMS);\r\n var priorityCheck = this.popupPriCount > 0;\r\n if (ele && ele.children.length > 0) {\r\n this.offsetWid = ele.offsetWidth;\r\n this.remove(this.element, 'e-toolpop');\r\n if (Browser.info.name === 'msie' && this.height === 'auto') {\r\n ele.style.height = '';\r\n }\r\n switch (this.overflowMode) {\r\n case 'Scrollable':\r\n if (isNOU(this.scrollModule)) {\r\n this.initScroll(ele, [].slice.call(ele.getElementsByClassName(CLS_ITEMS)));\r\n }\r\n break;\r\n case 'Popup':\r\n this.add(this.element, 'e-toolpop');\r\n if (this.tbarAlign) {\r\n this.removePositioning();\r\n }\r\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\r\n this.setOverflowAttributes(ele);\r\n }\r\n this.toolbarAlign(innerItems);\r\n break;\r\n case 'MultiRow':\r\n this.add(innerItems, CLS_MULTIROW);\r\n if (this.checkOverflow(ele, innerItems) && this.tbarAlign) {\r\n this.removePositioning();\r\n this.add(innerItems, CLS_MULTIROWPOS);\r\n }\r\n if (ele.style.overflow === 'hidden') {\r\n ele.style.overflow = '';\r\n }\r\n if (Browser.info.name === 'msie' || ele.style.height !== 'auto') {\r\n ele.style.height = 'auto';\r\n }\r\n break;\r\n case 'Extended':\r\n this.add(this.element, CLS_EXTEANDABLE_TOOLBAR);\r\n if (this.checkOverflow(ele, innerItems) || priorityCheck) {\r\n if (this.tbarAlign) {\r\n this.removePositioning();\r\n }\r\n this.setOverflowAttributes(ele);\r\n }\r\n this.toolbarAlign(innerItems);\r\n }\r\n }\r\n };\r\n Toolbar.prototype.setOverflowAttributes = function (ele) {\r\n this.createPopupEle(ele, [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, ele)));\r\n this.element.querySelector('.' + CLS_TBARNAV).setAttribute('tabIndex', '0');\r\n this.element.querySelector('.' + CLS_TBARNAV).setAttribute('role', 'list');\r\n };\r\n Toolbar.prototype.separator = function () {\r\n var element = this.element;\r\n var eleItem = [].slice.call(element.querySelectorAll('.' + CLS_SEPARATOR));\r\n var multiVar = element.querySelector('.' + CLS_MULTIROW_SEPARATOR);\r\n var extendVar = element.querySelector('.' + CLS_EXTENDABLE_SEPARATOR);\r\n var eleInlineItem = this.overflowMode === 'MultiRow' ? multiVar : extendVar;\r\n if (eleInlineItem !== null) {\r\n if (this.overflowMode === 'MultiRow') {\r\n eleInlineItem.classList.remove(CLS_MULTIROW_SEPARATOR);\r\n }\r\n else if (this.overflowMode === 'Extended') {\r\n eleInlineItem.classList.remove(CLS_EXTENDABLE_SEPARATOR);\r\n }\r\n }\r\n for (var i = 0; i <= eleItem.length - 1; i++) {\r\n if (eleItem[i].offsetLeft < 30 && eleItem[i].offsetLeft !== 0) {\r\n if (this.overflowMode === 'MultiRow') {\r\n eleItem[i].classList.add(CLS_MULTIROW_SEPARATOR);\r\n }\r\n else if (this.overflowMode === 'Extended') {\r\n eleItem[i].classList.add(CLS_EXTENDABLE_SEPARATOR);\r\n }\r\n }\r\n }\r\n };\r\n Toolbar.prototype.createPopupEle = function (ele, innerEle) {\r\n var innerNav = ele.querySelector('.' + CLS_TBARNAV);\r\n var vertical = this.isVertical;\r\n if (!innerNav) {\r\n this.createPopupIcon(ele);\r\n }\r\n innerNav = ele.querySelector('.' + CLS_TBARNAV);\r\n var innerNavDom = (vertical ? innerNav.offsetHeight : innerNav.offsetWidth);\r\n var eleWidth = ((vertical ? ele.offsetHeight : ele.offsetWidth) - (innerNavDom));\r\n this.element.classList.remove('e-rtl');\r\n setStyle(this.element, { direction: 'initial' });\r\n this.checkPriority(ele, innerEle, eleWidth, true);\r\n if (this.enableRtl) {\r\n this.element.classList.add('e-rtl');\r\n }\r\n this.element.style.removeProperty('direction');\r\n this.createPopup();\r\n };\r\n Toolbar.prototype.pushingPoppedEle = function (tbarObj, popupPri, ele, eleHeight, sepHeight) {\r\n var element = tbarObj.element;\r\n var poppedEle = [].slice.call(selectAll('.' + CLS_POPUP, element.querySelector('.' + CLS_ITEMS)));\r\n var nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\r\n var nodeIndex = 0;\r\n var nodePri = 0;\r\n poppedEle.forEach(function (el, index) {\r\n nodes = selectAll('.' + CLS_TBAROVERFLOW, ele);\r\n if (el.classList.contains(CLS_TBAROVERFLOW) && nodes.length > 0) {\r\n if (tbarObj.tbResize && nodes.length > index) {\r\n ele.insertBefore(el, nodes[index]);\r\n ++nodePri;\r\n }\r\n else {\r\n ele.insertBefore(el, ele.children[nodes.length]);\r\n ++nodePri;\r\n }\r\n }\r\n else if (el.classList.contains(CLS_TBAROVERFLOW)) {\r\n ele.insertBefore(el, ele.firstChild);\r\n ++nodePri;\r\n }\r\n else if (tbarObj.tbResize && el.classList.contains(CLS_POPOVERFLOW) && ele.children.length > 0 && nodes.length === 0) {\r\n ele.insertBefore(el, ele.firstChild);\r\n ++nodePri;\r\n }\r\n else if (el.classList.contains(CLS_POPOVERFLOW)) {\r\n popupPri.push(el);\r\n }\r\n else if (tbarObj.tbResize) {\r\n ele.insertBefore(el, ele.childNodes[nodeIndex + nodePri]);\r\n ++nodeIndex;\r\n }\r\n else {\r\n ele.appendChild(el);\r\n }\r\n if (el.classList.contains(CLS_SEPARATOR)) {\r\n setStyle(el, { display: '', height: sepHeight + 'px' });\r\n }\r\n else {\r\n setStyle(el, { display: '', height: eleHeight + 'px' });\r\n }\r\n });\r\n popupPri.forEach(function (el) {\r\n ele.appendChild(el);\r\n });\r\n var tbarEle = selectAll('.' + CLS_ITEM, element.querySelector('.' + CLS_ITEMS));\r\n for (var i = tbarEle.length - 1; i >= 0; i--) {\r\n var tbarElement = tbarEle[i];\r\n if (tbarElement.classList.contains(CLS_SEPARATOR) && this.overflowMode !== 'Extended') {\r\n setStyle(tbarElement, { display: 'none' });\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n };\r\n Toolbar.prototype.createPopup = function () {\r\n var element = this.element;\r\n var sepHeight;\r\n var sepItem;\r\n if (this.overflowMode === 'Extended') {\r\n sepItem = element.querySelector('.' + CLS_SEPARATOR + ':not(.' + CLS_POPUP + ')');\r\n sepHeight = (element.style.height === 'auto' || element.style.height === '') ? null : sepItem.offsetHeight;\r\n }\r\n var eleItem = element.querySelector('.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_POPUP + ')');\r\n var eleHeight = (element.style.height === 'auto' || element.style.height === '') ? null : (eleItem && eleItem.offsetHeight);\r\n var ele;\r\n var popupPri = [];\r\n if (select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element)) {\r\n ele = select('#' + element.id + '_popup.' + CLS_POPUPCLASS, element);\r\n }\r\n else {\r\n var extendEle = this.createElement('div', {\r\n id: element.id + '_popup', className: CLS_POPUPCLASS + ' ' + CLS_EXTENDABLECLASS\r\n });\r\n var popupEle = this.createElement('div', { id: element.id + '_popup', className: CLS_POPUPCLASS });\r\n ele = this.overflowMode === 'Extended' ? extendEle : popupEle;\r\n }\r\n this.pushingPoppedEle(this, popupPri, ele, eleHeight, sepHeight);\r\n this.popupInit(element, ele);\r\n };\r\n Toolbar.prototype.getElementOffsetY = function () {\r\n return (this.overflowMode === 'Extended' && window.getComputedStyle(this.element).getPropertyValue('box-sizing') === 'border-box' ?\r\n this.element.clientHeight : this.element.offsetHeight);\r\n };\r\n Toolbar.prototype.popupInit = function (element, ele) {\r\n if (!this.popObj) {\r\n element.appendChild(ele);\r\n setStyle(this.element, { overflow: '' });\r\n var eleStyles = window.getComputedStyle(this.element);\r\n var popup = new Popup(null, {\r\n relateTo: this.element,\r\n offsetY: (this.isVertical) ? 0 : this.getElementOffsetY(),\r\n enableRtl: this.enableRtl,\r\n open: this.popupOpen.bind(this),\r\n close: this.popupClose.bind(this),\r\n collision: { Y: this.enableCollision ? 'flip' : 'none' },\r\n position: this.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }\r\n });\r\n popup.appendTo(ele);\r\n if (this.overflowMode === 'Extended') {\r\n popup.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\r\n popup.offsetX = 0;\r\n }\r\n EventHandler.add(document, 'scroll', this.docEvent.bind(this));\r\n EventHandler.add(document, 'click ', this.docEvent.bind(this));\r\n popup.element.style.maxHeight = popup.element.offsetHeight + 'px';\r\n if (this.isVertical) {\r\n popup.element.style.visibility = 'hidden';\r\n }\r\n if (this.isExtendedOpen) {\r\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\r\n popupNav.classList.add(CLS_TBARNAVACT);\r\n classList(popupNav.firstElementChild, [CLS_POPUPICON], [CLS_POPUPDOWN]);\r\n this.element.querySelector('.' + CLS_EXTENDABLECLASS).classList.add(CLS_POPUPOPEN);\r\n }\r\n else {\r\n popup.hide();\r\n }\r\n this.popObj = popup;\r\n this.element.setAttribute('aria-haspopup', 'true');\r\n }\r\n else {\r\n var popupEle = this.popObj.element;\r\n setStyle(popupEle, { maxHeight: '', display: 'block' });\r\n setStyle(popupEle, { maxHeight: popupEle.offsetHeight + 'px', display: '' });\r\n }\r\n };\r\n Toolbar.prototype.tbarPopupHandler = function (isOpen) {\r\n if (this.overflowMode === 'Extended') {\r\n isOpen ? this.add(this.element, CLS_EXTENDEDPOPOPEN) : this.remove(this.element, CLS_EXTENDEDPOPOPEN);\r\n }\r\n };\r\n Toolbar.prototype.popupOpen = function (e) {\r\n var popObj = this.popObj;\r\n if (!this.isVertical) {\r\n popObj.offsetY = this.getElementOffsetY();\r\n popObj.dataBind();\r\n }\r\n var popupEle = this.popObj.element;\r\n var toolEle = this.popObj.element.parentElement;\r\n var popupNav = toolEle.querySelector('.' + CLS_TBARNAV);\r\n setStyle(popObj.element, { height: 'auto', maxHeight: '' });\r\n popObj.element.style.maxHeight = popObj.element.offsetHeight + 'px';\r\n if (this.overflowMode === 'Extended') {\r\n popObj.element.style.minHeight = '';\r\n }\r\n var popupElePos = popupEle.offsetTop + popupEle.offsetHeight + calculatePosition(toolEle).top;\r\n var popIcon = popupNav.firstElementChild;\r\n popupNav.classList.add(CLS_TBARNAVACT);\r\n classList(popIcon, [CLS_POPUPICON], [CLS_POPUPDOWN]);\r\n this.tbarPopupHandler(true);\r\n var scrollVal = isNOU(window.scrollY) ? 0 : window.scrollY;\r\n if (!this.isVertical && ((window.innerHeight + scrollVal) < popupElePos) && (this.element.offsetTop < popupEle.offsetHeight)) {\r\n var overflowHeight = (popupEle.offsetHeight - ((popupElePos - window.innerHeight - scrollVal) + 5));\r\n popObj.height = overflowHeight + 'px';\r\n for (var i = 0; i <= popupEle.childElementCount; i++) {\r\n var ele = popupEle.children[i];\r\n if (ele.offsetTop + ele.offsetHeight > overflowHeight) {\r\n overflowHeight = ele.offsetTop;\r\n break;\r\n }\r\n }\r\n setStyle(popObj.element, { maxHeight: overflowHeight + 'px' });\r\n }\r\n else if (this.isVertical) {\r\n var tbEleData = this.element.getBoundingClientRect();\r\n setStyle(popObj.element, { maxHeight: (tbEleData.top + this.element.offsetHeight) + 'px', bottom: 0, visibility: '' });\r\n }\r\n if (popObj) {\r\n var popupOffset = popupEle.getBoundingClientRect();\r\n if (popupOffset.right > document.documentElement.clientWidth && popupOffset.width > toolEle.getBoundingClientRect().width) {\r\n popObj.collision = { Y: 'none' };\r\n popObj.dataBind();\r\n }\r\n popObj.refreshPosition();\r\n }\r\n };\r\n Toolbar.prototype.popupClose = function (e) {\r\n var element = this.element;\r\n var popupNav = element.querySelector('.' + CLS_TBARNAV);\r\n var popIcon = popupNav.firstElementChild;\r\n popupNav.classList.remove(CLS_TBARNAVACT);\r\n classList(popIcon, [CLS_POPUPDOWN], [CLS_POPUPICON]);\r\n this.tbarPopupHandler(false);\r\n };\r\n Toolbar.prototype.checkPriority = function (ele, inEle, eleWidth, pre) {\r\n var popPriority = this.popupPriCount > 0;\r\n var len = inEle.length;\r\n var eleWid = eleWidth;\r\n var eleOffset;\r\n var checkoffset;\r\n var sepCheck = 0;\r\n var itemCount = 0;\r\n var itemPopCount = 0;\r\n var checkClass = function (ele, val) {\r\n var rVal = false;\r\n val.forEach(function (cls) {\r\n if (ele.classList.contains(cls)) {\r\n rVal = true;\r\n }\r\n });\r\n return rVal;\r\n };\r\n for (var i = len - 1; i >= 0; i--) {\r\n var mrgn = void 0;\r\n var compuStyle = window.getComputedStyle(inEle[i]);\r\n if (this.isVertical) {\r\n mrgn = parseFloat((compuStyle).marginTop);\r\n mrgn += parseFloat((compuStyle).marginBottom);\r\n }\r\n else {\r\n mrgn = parseFloat((compuStyle).marginRight);\r\n mrgn += parseFloat((compuStyle).marginLeft);\r\n }\r\n var fstEleCheck = inEle[i] === this.tbarEle[0];\r\n if (fstEleCheck) {\r\n this.tbarEleMrgn = mrgn;\r\n }\r\n eleOffset = this.isVertical ? inEle[i].offsetHeight : inEle[i].offsetWidth;\r\n var eleWid_1 = fstEleCheck ? (eleOffset + mrgn) : eleOffset;\r\n if (checkClass(inEle[i], [CLS_POPPRI]) && popPriority) {\r\n inEle[i].classList.add(CLS_POPUP);\r\n if (this.isVertical) {\r\n setStyle(inEle[i], { display: 'none', minHeight: eleWid_1 + 'px' });\r\n }\r\n else {\r\n setStyle(inEle[i], { display: 'none', minWidth: eleWid_1 + 'px' });\r\n }\r\n itemPopCount++;\r\n }\r\n if (this.isVertical) {\r\n checkoffset = (inEle[i].offsetTop + inEle[i].offsetHeight + mrgn) > eleWidth;\r\n }\r\n else {\r\n checkoffset = (inEle[i].offsetLeft + inEle[i].offsetWidth + mrgn) > eleWidth;\r\n }\r\n if (checkoffset) {\r\n if (inEle[i].classList.contains(CLS_SEPARATOR)) {\r\n if (this.overflowMode === 'Extended') {\r\n if (itemCount === itemPopCount) {\r\n var sepEle = inEle[i];\r\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\r\n inEle[i].classList.add(CLS_POPUP);\r\n itemPopCount++;\r\n }\r\n }\r\n itemCount++;\r\n }\r\n else if (this.overflowMode === 'Popup') {\r\n if (sepCheck > 0 && itemCount === itemPopCount) {\r\n var sepEle = inEle[i + itemCount + (sepCheck - 1)];\r\n if (checkClass(sepEle, [CLS_SEPARATOR, CLS_TBARIGNORE])) {\r\n setStyle(sepEle, { display: 'none' });\r\n }\r\n }\r\n sepCheck++;\r\n itemCount = 0;\r\n itemPopCount = 0;\r\n }\r\n }\r\n else {\r\n itemCount++;\r\n }\r\n if (inEle[i].classList.contains(CLS_TBAROVERFLOW) && pre) {\r\n eleWidth -= ((this.isVertical ? inEle[i].offsetHeight : inEle[i].offsetWidth) + (mrgn));\r\n }\r\n else if (!checkClass(inEle[i], [CLS_SEPARATOR, CLS_TBARIGNORE])) {\r\n inEle[i].classList.add(CLS_POPUP);\r\n if (this.isVertical) {\r\n setStyle(inEle[i], { display: 'none', minHeight: eleWid_1 + 'px' });\r\n }\r\n else {\r\n setStyle(inEle[i], { display: 'none', minWidth: eleWid_1 + 'px' });\r\n }\r\n itemPopCount++;\r\n }\r\n else {\r\n eleWidth -= ((this.isVertical ? inEle[i].offsetHeight : inEle[i].offsetWidth) + (mrgn));\r\n }\r\n }\r\n }\r\n if (pre) {\r\n var popedEle = selectAll('.' + CLS_ITEM + ':not(.' + CLS_POPUP + ')', this.element);\r\n this.checkPriority(ele, popedEle, eleWid, false);\r\n }\r\n };\r\n Toolbar.prototype.createPopupIcon = function (element) {\r\n var id = element.id.concat('_nav');\r\n var className = 'e-' + element.id.concat('_nav ' + CLS_POPUPNAV);\r\n className = this.overflowMode === 'Extended' ? className + ' ' + CLS_EXTENDPOPUP : className;\r\n var nav = this.createElement('div', { id: id, className: className });\r\n if (Browser.info.name === 'msie' || Browser.info.name === 'edge') {\r\n nav.classList.add('e-ie-align');\r\n }\r\n var navItem = this.createElement('div', { className: CLS_POPUPDOWN + ' e-icons' });\r\n nav.appendChild(navItem);\r\n nav.setAttribute('tabindex', '0');\r\n nav.setAttribute('role', 'list');\r\n element.appendChild(nav);\r\n };\r\n Toolbar.prototype.tbarPriRef = function (inEle, indx, sepPri, el, des, elWid, wid, ig) {\r\n var ignoreCount = ig;\r\n var popEle = this.popObj.element;\r\n var query = '.' + CLS_ITEM + ':not(.' + CLS_SEPARATOR + '):not(.' + CLS_TBAROVERFLOW + ')';\r\n var priEleCnt = selectAll('.' + CLS_POPUP + ':not(.' + CLS_TBAROVERFLOW + ')', popEle).length;\r\n var checkClass = function (ele, val) {\r\n return ele.classList.contains(val);\r\n };\r\n if (selectAll(query, inEle).length === 0) {\r\n var eleSep = inEle.children[indx - (indx - sepPri) - 1];\r\n var ignoreCheck = (!isNOU(eleSep) && checkClass(eleSep, CLS_TBARIGNORE));\r\n if ((!isNOU(eleSep) && checkClass(eleSep, CLS_SEPARATOR) && !isVisible(eleSep)) || ignoreCheck) {\r\n var sepDisplay = 'none';\r\n eleSep.style.display = 'inherit';\r\n var eleSepWidth = eleSep.offsetWidth + (parseFloat(window.getComputedStyle(eleSep).marginRight) * 2);\r\n var prevSep = eleSep.previousElementSibling;\r\n if ((elWid + eleSepWidth) < wid || des) {\r\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\r\n if (!isNOU(prevSep)) {\r\n prevSep.style.display = '';\r\n }\r\n }\r\n else {\r\n if (prevSep.classList.contains(CLS_SEPARATOR)) {\r\n prevSep.style.display = sepDisplay;\r\n }\r\n }\r\n eleSep.style.display = '';\r\n }\r\n else {\r\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - (indx - sepPri)]);\r\n }\r\n }\r\n else {\r\n inEle.insertBefore(el, inEle.children[(indx + ignoreCount) - priEleCnt]);\r\n }\r\n };\r\n Toolbar.prototype.popupRefresh = function (popupEle, destroy) {\r\n var _this = this;\r\n var ele = this.element;\r\n var isVer = this.isVertical;\r\n var innerEle = ele.querySelector('.' + CLS_ITEMS);\r\n var popNav = ele.querySelector('.' + CLS_TBARNAV);\r\n if (isNOU(popNav)) {\r\n return;\r\n }\r\n innerEle.removeAttribute('style');\r\n popupEle.style.display = 'block';\r\n var dimension;\r\n if (isVer) {\r\n dimension = ele.offsetHeight - (popNav.offsetHeight + innerEle.offsetHeight);\r\n }\r\n else {\r\n dimension = ele.offsetWidth - (popNav.offsetWidth + innerEle.offsetWidth);\r\n }\r\n var popupEleWidth = 0;\r\n [].slice.call(popupEle.children).forEach(function (el) {\r\n popupEleWidth += _this.popupEleWidth(el);\r\n setStyle(el, { 'position': '' });\r\n });\r\n if ((dimension + (isVer ? popNav.offsetHeight : popNav.offsetWidth)) > (popupEleWidth) && this.popupPriCount === 0) {\r\n destroy = true;\r\n }\r\n this.popupEleRefresh(dimension, popupEle, destroy);\r\n popupEle.style.display = '';\r\n if (popupEle.children.length === 0 && popNav && this.popObj) {\r\n detach(popNav);\r\n popNav = null;\r\n this.popObj.destroy();\r\n detach(this.popObj.element);\r\n this.popObj = null;\r\n ele.setAttribute('aria-haspopup', 'false');\r\n }\r\n };\r\n Toolbar.prototype.ignoreEleFetch = function (index, innerEle) {\r\n var ignoreEle = [].slice.call(innerEle.querySelectorAll('.' + CLS_TBARIGNORE));\r\n var ignoreInx = [];\r\n var count = 0;\r\n if (ignoreEle.length > 0) {\r\n ignoreEle.forEach(function (ele) {\r\n ignoreInx.push([].slice.call(innerEle.children).indexOf(ele));\r\n });\r\n }\r\n else {\r\n return 0;\r\n }\r\n ignoreInx.forEach(function (val) {\r\n if (val <= index) {\r\n count++;\r\n }\r\n });\r\n return count;\r\n };\r\n Toolbar.prototype.checkPopupRefresh = function (root, popEle) {\r\n popEle.style.display = 'block';\r\n var elWid = this.popupEleWidth(popEle.firstElementChild);\r\n popEle.firstElementChild.style.removeProperty('Position');\r\n var tbarWidth = root.offsetWidth - root.querySelector('.' + CLS_TBARNAV).offsetWidth;\r\n var tbarItemsWid = root.querySelector('.' + CLS_ITEMS).offsetWidth;\r\n popEle.style.removeProperty('display');\r\n if (tbarWidth > (elWid + tbarItemsWid)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n Toolbar.prototype.popupEleWidth = function (el) {\r\n el.style.position = 'absolute';\r\n var elWidth = this.isVertical ? el.offsetHeight : el.offsetWidth;\r\n var btnText = el.querySelector('.' + CLS_TBARBTNTEXT);\r\n if (el.classList.contains('e-tbtn-align') || el.classList.contains(CLS_TBARTEXT)) {\r\n var btn = el.children[0];\r\n if (!isNOU(btnText) && el.classList.contains(CLS_TBARTEXT)) {\r\n btnText.style.display = 'none';\r\n }\r\n else if (!isNOU(btnText) && el.classList.contains(CLS_POPUPTEXT)) {\r\n btnText.style.display = 'block';\r\n }\r\n btn.style.minWidth = '0%';\r\n elWidth = parseFloat(!this.isVertical ? el.style.minWidth : el.style.minHeight);\r\n btn.style.minWidth = '';\r\n btn.style.minHeight = '';\r\n if (!isNOU(btnText)) {\r\n btnText.style.display = '';\r\n }\r\n }\r\n return elWidth;\r\n };\r\n Toolbar.prototype.popupEleRefresh = function (width, popupEle, destroy) {\r\n var popPriority = this.popupPriCount > 0;\r\n var eleSplice = this.tbarEle;\r\n var priEleCnt;\r\n var index;\r\n var innerEle = this.element.querySelector('.' + CLS_ITEMS);\r\n var ignoreCount = 0;\r\n var _loop_1 = function (el) {\r\n if (el.classList.contains(CLS_POPPRI) && popPriority && !destroy) {\r\n return \"continue\";\r\n }\r\n var elWidth = this_1.popupEleWidth(el);\r\n if (el === this_1.tbarEle[0]) {\r\n elWidth += this_1.tbarEleMrgn;\r\n }\r\n el.style.position = '';\r\n if (elWidth < width || destroy) {\r\n setStyle(el, { minWidth: '', height: '', minHeight: '' });\r\n if (!el.classList.contains(CLS_POPOVERFLOW)) {\r\n el.classList.remove(CLS_POPUP);\r\n }\r\n index = this_1.tbarEle.indexOf(el);\r\n if (this_1.tbarAlign) {\r\n var pos = this_1.items[index].align;\r\n index = this_1.tbarAlgEle[(pos + 's').toLowerCase()].indexOf(el);\r\n eleSplice = this_1.tbarAlgEle[(pos + 's').toLowerCase()];\r\n innerEle = this_1.element.querySelector('.' + CLS_ITEMS + ' .' + 'e-toolbar-' + pos.toLowerCase());\r\n }\r\n var sepBeforePri_1 = 0;\r\n if (this_1.overflowMode !== 'Extended') {\r\n eleSplice.slice(0, index).forEach(function (el) {\r\n if (el.classList.contains(CLS_TBAROVERFLOW) || el.classList.contains(CLS_SEPARATOR)) {\r\n if (el.classList.contains(CLS_SEPARATOR)) {\r\n el.style.display = '';\r\n width -= el.offsetWidth;\r\n }\r\n sepBeforePri_1++;\r\n }\r\n });\r\n }\r\n ignoreCount = this_1.ignoreEleFetch(index, innerEle);\r\n if (el.classList.contains(CLS_TBAROVERFLOW)) {\r\n this_1.tbarPriRef(innerEle, index, sepBeforePri_1, el, destroy, elWidth, width, ignoreCount);\r\n width -= el.offsetWidth;\r\n }\r\n else if (index === 0) {\r\n innerEle.insertBefore(el, innerEle.firstChild);\r\n width -= el.offsetWidth;\r\n }\r\n else {\r\n priEleCnt = selectAll('.' + CLS_TBAROVERFLOW, this_1.popObj.element).length;\r\n innerEle.insertBefore(el, innerEle.children[(index + ignoreCount) - priEleCnt]);\r\n width -= el.offsetWidth;\r\n }\r\n el.style.height = '';\r\n }\r\n else {\r\n return \"break\";\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, _a = [].slice.call(popupEle.children); _i < _a.length; _i++) {\r\n var el = _a[_i];\r\n var state_1 = _loop_1(el);\r\n if (state_1 === \"break\")\r\n break;\r\n }\r\n var checkOverflow = this.checkOverflow(this.element, this.element.getElementsByClassName(CLS_ITEMS)[0]);\r\n if (checkOverflow && !destroy) {\r\n this.renderOverflowMode();\r\n }\r\n };\r\n Toolbar.prototype.removePositioning = function () {\r\n var item = this.element.querySelector('.' + CLS_ITEMS);\r\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\r\n return;\r\n }\r\n this.remove(item, CLS_TBARPOS);\r\n var innerItem = [].slice.call(item.childNodes);\r\n innerItem[1].removeAttribute('style');\r\n innerItem[2].removeAttribute('style');\r\n };\r\n Toolbar.prototype.refreshPositioning = function () {\r\n var item = this.element.querySelector('.' + CLS_ITEMS);\r\n this.add(item, CLS_TBARPOS);\r\n this.itemPositioning();\r\n };\r\n Toolbar.prototype.itemPositioning = function () {\r\n var item = this.element.querySelector('.' + CLS_ITEMS);\r\n var margin;\r\n if (isNOU(item) || !item.classList.contains(CLS_TBARPOS)) {\r\n return;\r\n }\r\n var popupNav = this.element.querySelector('.' + CLS_TBARNAV);\r\n var innerItem;\r\n if (this.scrollModule) {\r\n var trgClass = (this.isVertical) ? CLS_VSCROLLCNT : CLS_HSCROLLCNT;\r\n innerItem = [].slice.call(item.querySelector('.' + trgClass).children);\r\n }\r\n else {\r\n innerItem = [].slice.call(item.childNodes);\r\n }\r\n if (this.isVertical) {\r\n margin = innerItem[0].offsetHeight + innerItem[2].offsetHeight;\r\n }\r\n else {\r\n margin = innerItem[0].offsetWidth + innerItem[2].offsetWidth;\r\n }\r\n var tbarWid = this.isVertical ? this.element.offsetHeight : this.element.offsetWidth;\r\n if (popupNav) {\r\n tbarWid -= (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth);\r\n var popWid = (this.isVertical ? popupNav.offsetHeight : popupNav.offsetWidth) + 'px';\r\n innerItem[2].removeAttribute('style');\r\n if (this.isVertical) {\r\n this.enableRtl ? innerItem[2].style.top = popWid : innerItem[2].style.bottom = popWid;\r\n }\r\n else {\r\n this.enableRtl ? innerItem[2].style.left = popWid : innerItem[2].style.right = popWid;\r\n }\r\n }\r\n if (tbarWid <= margin) {\r\n return;\r\n }\r\n var value = (((tbarWid - margin)) - (!this.isVertical ? innerItem[1].offsetWidth : innerItem[1].offsetHeight)) / 2;\r\n innerItem[1].removeAttribute('style');\r\n var mrgn = ((!this.isVertical ? innerItem[0].offsetWidth : innerItem[0].offsetHeight) + value) + 'px';\r\n if (this.isVertical) {\r\n this.enableRtl ? innerItem[1].style.marginBottom = mrgn : innerItem[1].style.marginTop = mrgn;\r\n }\r\n else {\r\n this.enableRtl ? innerItem[1].style.marginRight = mrgn : innerItem[1].style.marginLeft = mrgn;\r\n }\r\n };\r\n Toolbar.prototype.tbarItemAlign = function (item, itemEle, pos) {\r\n var _this = this;\r\n if (item.showAlwaysInPopup && item.overflow !== 'Show') {\r\n return;\r\n }\r\n var alignDiv = [];\r\n alignDiv.push(this.createElement('div', { className: CLS_TBARLEFT }));\r\n alignDiv.push(this.createElement('div', { className: CLS_TBARCENTER }));\r\n alignDiv.push(this.createElement('div', { className: CLS_TBARRIGHT }));\r\n if (pos === 0 && item.align !== 'Left') {\r\n alignDiv.forEach(function (ele) {\r\n itemEle.appendChild(ele);\r\n });\r\n this.tbarAlign = true;\r\n this.add(itemEle, CLS_TBARPOS);\r\n }\r\n else if (item.align !== 'Left') {\r\n var alignEle = itemEle.childNodes;\r\n var leftAlign_1 = alignDiv[0];\r\n [].slice.call(alignEle).forEach(function (el) {\r\n _this.tbarAlgEle.lefts.push(el);\r\n leftAlign_1.appendChild(el);\r\n });\r\n itemEle.appendChild(leftAlign_1);\r\n itemEle.appendChild(alignDiv[1]);\r\n itemEle.appendChild(alignDiv[2]);\r\n this.tbarAlign = true;\r\n this.add(itemEle, CLS_TBARPOS);\r\n }\r\n };\r\n Toolbar.prototype.ctrlTemplate = function () {\r\n var _this = this;\r\n this.ctrlTem = this.trgtEle.cloneNode(true);\r\n this.add(this.trgtEle, CLS_ITEMS);\r\n this.tbarEle = [];\r\n var innerEle = [].slice.call(this.trgtEle.children);\r\n innerEle.forEach(function (ele) {\r\n if (ele.tagName === 'DIV') {\r\n _this.tbarEle.push(ele);\r\n ele.setAttribute('aria-disabled', 'false');\r\n _this.add(ele, CLS_ITEM);\r\n }\r\n });\r\n };\r\n Toolbar.prototype.renderItems = function () {\r\n var ele = this.element;\r\n var items = this.items;\r\n if (this.trgtEle != null) {\r\n this.ctrlTemplate();\r\n }\r\n else if (ele && items.length > 0) {\r\n var itemEleDom = void 0;\r\n if (ele && ele.children.length > 0) {\r\n itemEleDom = ele.querySelector('.' + CLS_ITEMS);\r\n }\r\n if (!itemEleDom) {\r\n itemEleDom = this.createElement('div', { className: CLS_ITEMS });\r\n }\r\n this.itemsAlign(items, itemEleDom);\r\n ele.appendChild(itemEleDom);\r\n }\r\n };\r\n Toolbar.prototype.setAttr = function (attr, element) {\r\n var key = Object.keys(attr);\r\n var keyVal;\r\n for (var i = 0; i < key.length; i++) {\r\n keyVal = key[i];\r\n keyVal === 'class' ? this.add(element, attr[keyVal]) : element.setAttribute(keyVal, attr[keyVal]);\r\n }\r\n };\r\n /**\r\n * Enables or disables the specified Toolbar item.\r\n *\r\n * @param {number|HTMLElement|NodeList} items - DOM element or an array of items to be enabled or disabled.\r\n * @param {boolean} isEnable - Boolean value that determines whether the command should be enabled or disabled.\r\n * By default, `isEnable` is set to true.\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.enableItems = function (items, isEnable) {\r\n var elements = items;\r\n var len = elements.length;\r\n var ele;\r\n if (isNOU(isEnable)) {\r\n isEnable = true;\r\n }\r\n var enable = function (isEnable, ele) {\r\n if (isEnable) {\r\n ele.classList.remove(CLS_DISABLE);\r\n ele.setAttribute('aria-disabled', 'false');\r\n }\r\n else {\r\n ele.classList.add(CLS_DISABLE);\r\n ele.setAttribute('aria-disabled', 'true');\r\n }\r\n };\r\n if (!isNOU(len) && len >= 1) {\r\n for (var a = 0, element = [].slice.call(elements); a < len; a++) {\r\n var itemElement = element[a];\r\n if (typeof (itemElement) === 'number') {\r\n ele = this.getElementByIndex(itemElement);\r\n if (isNOU(ele)) {\r\n return;\r\n }\r\n else {\r\n elements[a] = ele;\r\n }\r\n }\r\n else {\r\n ele = itemElement;\r\n }\r\n enable(isEnable, ele);\r\n }\r\n isEnable ? removeClass(elements, CLS_DISABLE) : addClass(elements, CLS_DISABLE);\r\n }\r\n else {\r\n if (typeof (elements) === 'number') {\r\n ele = this.getElementByIndex(elements);\r\n if (isNOU(ele)) {\r\n return;\r\n }\r\n }\r\n else {\r\n ele = items;\r\n }\r\n enable(isEnable, ele);\r\n }\r\n };\r\n Toolbar.prototype.getElementByIndex = function (index) {\r\n if (this.tbarEle[index]) {\r\n return this.tbarEle[index];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Adds new items to the Toolbar that accepts an array as Toolbar items.\r\n *\r\n * @param {ItemModel[]} items - DOM element or an array of items to be added to the Toolbar.\r\n * @param {number} index - Number value that determines where the command is to be added. By default, index is 0.\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.addItems = function (items, index) {\r\n var innerItems;\r\n this.extendedOpen();\r\n var itemsDiv = this.element.querySelector('.' + CLS_ITEMS);\r\n if (isNOU(itemsDiv)) {\r\n this.itemsRerender(items);\r\n return;\r\n }\r\n var innerEle;\r\n var itemAgn = 'Left';\r\n if (isNOU(index)) {\r\n index = 0;\r\n }\r\n items.forEach(function (e) {\r\n if (!isNOU(e.align) && e.align !== 'Left' && itemAgn === 'Left') {\r\n itemAgn = e.align;\r\n }\r\n });\r\n for (var _i = 0, items_1 = items; _i < items_1.length; _i++) {\r\n var item = items_1[_i];\r\n if (isNOU(item.type)) {\r\n item.type = 'Button';\r\n }\r\n innerItems = selectAll('.' + CLS_ITEM, this.element);\r\n item.align = itemAgn;\r\n innerEle = this.renderSubComponent(item, index);\r\n if (this.tbarEle.length >= index && innerItems.length >= 0) {\r\n if (isNOU(this.scrollModule)) {\r\n this.destroyMode();\r\n }\r\n var algIndex = item.align[0] === 'L' ? 0 : item.align[0] === 'C' ? 1 : 2;\r\n var ele = void 0;\r\n if (!this.tbarAlign && itemAgn !== 'Left') {\r\n this.tbarItemAlign(item, itemsDiv, 1);\r\n this.tbarAlign = true;\r\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[algIndex];\r\n ele.appendChild(innerEle);\r\n this.tbarAlgEle[(item.align + 's').toLowerCase()].push(innerEle);\r\n this.refreshPositioning();\r\n }\r\n else if (this.tbarAlign) {\r\n ele = closest(innerItems[0], '.' + CLS_ITEMS).children[algIndex];\r\n ele.insertBefore(innerEle, ele.children[index]);\r\n this.tbarAlgEle[(item.align + 's').toLowerCase()].splice(index, 0, innerEle);\r\n this.refreshPositioning();\r\n }\r\n else if (innerItems.length === 0) {\r\n innerItems = selectAll('.' + CLS_ITEMS, this.element);\r\n innerItems[0].appendChild(innerEle);\r\n }\r\n else {\r\n innerItems[0].parentNode.insertBefore(innerEle, innerItems[index]);\r\n }\r\n this.items.splice(index, 0, item);\r\n this.tbarEle.splice(index, 0, innerEle);\r\n index++;\r\n this.offsetWid = itemsDiv.offsetWidth;\r\n }\r\n }\r\n itemsDiv.style.width = '';\r\n this.renderOverflowMode();\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * Removes the items from the Toolbar. Acceptable arguments are index of item/HTMLElement/node list.\r\n *\r\n * @param {number|HTMLElement|NodeList|HTMLElement[]} args\r\n * Index or DOM element or an Array of item which is to be removed from the Toolbar.\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.removeItems = function (args) {\r\n var elements = args;\r\n var index;\r\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\r\n if (typeof (elements) === 'number') {\r\n index = parseInt(args.toString(), 10);\r\n this.removeItemByIndex(index, innerItems);\r\n }\r\n else {\r\n if (elements && elements.length > 1) {\r\n for (var _i = 0, _a = [].slice.call(elements); _i < _a.length; _i++) {\r\n var ele = _a[_i];\r\n index = this.tbarEle.indexOf(ele);\r\n this.removeItemByIndex(index, innerItems);\r\n innerItems = selectAll('.' + CLS_ITEM, this.element);\r\n }\r\n }\r\n else {\r\n var ele = (elements && elements.length && elements.length === 1) ? elements[0] : args;\r\n index = innerItems.indexOf(ele);\r\n this.removeItemByIndex(index, innerItems);\r\n }\r\n }\r\n this.resize();\r\n };\r\n Toolbar.prototype.removeItemByIndex = function (index, innerItems) {\r\n if (this.tbarEle[index] && innerItems[index]) {\r\n var eleIdx = this.tbarEle.indexOf(innerItems[index]);\r\n if (this.tbarAlign) {\r\n var indexAgn = this.tbarAlgEle[(this.items[eleIdx].align + 's').toLowerCase()].indexOf(this.tbarEle[eleIdx]);\r\n this.tbarAlgEle[(this.items[eleIdx].align + 's').toLowerCase()].splice(indexAgn, 1);\r\n }\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n var btnItem = innerItems[index].querySelector('.e-control.e-btn');\r\n if (!isNOU(btnItem) && !isNOU(btnItem.ej2_instances[0]) && !(btnItem.ej2_instances[0].isDestroyed)) {\r\n btnItem.ej2_instances[0].destroy();\r\n }\r\n detach(innerItems[index]);\r\n this.items.splice(eleIdx, 1);\r\n this.tbarEle.splice(eleIdx, 1);\r\n }\r\n };\r\n Toolbar.prototype.templateRender = function (templateProp, innerEle, item, index) {\r\n var itemType = item.type;\r\n var eleObj = templateProp;\r\n var isComponent;\r\n if (typeof (templateProp) === 'object') {\r\n isComponent = typeof (eleObj.appendTo) === 'function';\r\n }\r\n if (typeof (templateProp) === 'string' || !isComponent) {\r\n var templateFn = void 0;\r\n var val = templateProp;\r\n val = (typeof (templateProp) === 'string') ? templateProp.trim() : templateProp;\r\n try {\r\n if (typeof (templateProp) === 'object' && !isNOU(templateProp.tagName)) {\r\n innerEle.appendChild(templateProp);\r\n }\r\n else if (document.querySelectorAll(val).length) {\r\n var ele = document.querySelector(val);\r\n var tempStr = ele.outerHTML.trim();\r\n innerEle.appendChild(ele);\r\n ele.style.display = '';\r\n if (!isNOU(tempStr)) {\r\n this.tempId.push(val);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n templateFn = templateCompiler(val);\r\n }\r\n var tempArray = void 0;\r\n if (!isNOU(templateFn)) {\r\n var toolbarTemplateID = this.element.id + index + '_template';\r\n tempArray = templateFn({}, this, 'template', toolbarTemplateID, this.isStringTemplate);\r\n }\r\n if (!isNOU(tempArray) && tempArray.length > 0) {\r\n [].slice.call(tempArray).forEach(function (ele) {\r\n if (!isNOU(ele.tagName)) {\r\n ele.style.display = '';\r\n }\r\n innerEle.appendChild(ele);\r\n });\r\n }\r\n }\r\n else if (itemType === 'Input') {\r\n var ele = this.createElement('input');\r\n item.id ? (ele.id = item.id) : (ele.id = getUniqueID('tbr-ipt'));\r\n innerEle.appendChild(ele);\r\n eleObj.appendTo(ele);\r\n }\r\n this.add(innerEle, CLS_TEMPLATE);\r\n this.tbarEle.push(innerEle);\r\n };\r\n Toolbar.prototype.buttonRendering = function (item, innerEle) {\r\n var dom = this.createElement('button', { className: CLS_TBARBTN });\r\n dom.setAttribute('type', 'button');\r\n var textStr = item.text;\r\n var iconCss;\r\n var iconPos;\r\n item.id ? (dom.id = item.id) : dom.id = getUniqueID('e-tbr-btn');\r\n var btnTxt = this.createElement('span', { className: 'e-tbar-btn-text' });\r\n if (textStr) {\r\n btnTxt.innerHTML = this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(textStr) : textStr;\r\n dom.appendChild(btnTxt);\r\n dom.classList.add('e-tbtn-txt');\r\n }\r\n else {\r\n this.add(innerEle, 'e-tbtn-align');\r\n }\r\n if (item.prefixIcon || item.suffixIcon) {\r\n if ((item.prefixIcon && item.suffixIcon) || item.prefixIcon) {\r\n iconCss = item.prefixIcon + ' e-icons';\r\n iconPos = 'Left';\r\n }\r\n else {\r\n iconCss = item.suffixIcon + ' e-icons';\r\n iconPos = 'Right';\r\n }\r\n }\r\n var btnObj = new Button({ iconCss: iconCss, iconPosition: iconPos });\r\n btnObj.createElement = this.createElement;\r\n btnObj.appendTo(dom);\r\n if (item.width) {\r\n setStyle(dom, { 'width': formatUnit(item.width) });\r\n }\r\n return dom;\r\n };\r\n Toolbar.prototype.renderSubComponent = function (item, index) {\r\n var dom;\r\n var innerEle = this.createElement('div', { className: CLS_ITEM });\r\n innerEle.setAttribute('aria-disabled', 'false');\r\n var tempDom = this.createElement('div', {\r\n innerHTML: this.enableHtmlSanitizer ? SanitizeHtmlHelper.sanitize(item.tooltipText) : item.tooltipText\r\n });\r\n if (!this.tbarEle) {\r\n this.tbarEle = [];\r\n }\r\n if (item.htmlAttributes) {\r\n this.setAttr(item.htmlAttributes, innerEle);\r\n }\r\n if (item.tooltipText) {\r\n innerEle.setAttribute('title', tempDom.textContent);\r\n }\r\n if (item.cssClass) {\r\n innerEle.className = innerEle.className + ' ' + item.cssClass;\r\n }\r\n if (item.template) {\r\n this.templateRender(item.template, innerEle, item, index);\r\n }\r\n else {\r\n switch (item.type) {\r\n case 'Button':\r\n dom = this.buttonRendering(item, innerEle);\r\n dom.setAttribute('tabindex', '-1');\r\n dom.setAttribute('aria-label', (item.text || item.tooltipText));\r\n innerEle.appendChild(dom);\r\n innerEle.addEventListener('click', this.itemClick.bind(this));\r\n break;\r\n case 'Separator':\r\n this.add(innerEle, CLS_SEPARATOR);\r\n break;\r\n }\r\n }\r\n if (item.showTextOn) {\r\n var sTxt = item.showTextOn;\r\n if (sTxt === 'Toolbar') {\r\n this.add(innerEle, CLS_POPUPTEXT);\r\n this.add(innerEle, 'e-tbtn-align');\r\n }\r\n else if (sTxt === 'Overflow') {\r\n this.add(innerEle, CLS_TBARTEXT);\r\n }\r\n }\r\n if (item.overflow) {\r\n var overflow = item.overflow;\r\n if (overflow === 'Show') {\r\n this.add(innerEle, CLS_TBAROVERFLOW);\r\n }\r\n else if (overflow === 'Hide') {\r\n if (!innerEle.classList.contains(CLS_SEPARATOR)) {\r\n this.add(innerEle, CLS_POPOVERFLOW);\r\n }\r\n }\r\n }\r\n if (item.overflow !== 'Show' && item.showAlwaysInPopup && !innerEle.classList.contains(CLS_SEPARATOR)) {\r\n this.add(innerEle, CLS_POPPRI);\r\n this.popupPriCount++;\r\n }\r\n if (item.disabled) {\r\n this.add(innerEle, CLS_DISABLE);\r\n }\r\n if (item.visible === false) {\r\n this.add(innerEle, CLS_HIDDEN);\r\n }\r\n return innerEle;\r\n };\r\n Toolbar.prototype.itemClick = function (e) {\r\n this.activeEleSwitch(e.currentTarget);\r\n };\r\n Toolbar.prototype.activeEleSwitch = function (ele) {\r\n this.activeEleRemove(ele.firstElementChild);\r\n this.activeEle.focus();\r\n };\r\n Toolbar.prototype.activeEleRemove = function (curEle) {\r\n if (!isNOU(this.activeEle)) {\r\n this.activeEle.setAttribute('tabindex', '-1');\r\n }\r\n this.activeEle = curEle;\r\n if (isNOU(this.trgtEle) && !curEle.parentElement.classList.contains(CLS_TEMPLATE)) {\r\n curEle.removeAttribute('tabindex');\r\n }\r\n else {\r\n this.activeEle.setAttribute('tabindex', '0');\r\n }\r\n };\r\n Toolbar.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * Returns the current module name.\r\n *\r\n * @returns {string} - Returns the module name as string.\r\n * @private\r\n */\r\n Toolbar.prototype.getModuleName = function () {\r\n return 'toolbar';\r\n };\r\n Toolbar.prototype.itemsRerender = function (newProp) {\r\n this.items = this.tbarItemsCol;\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n this.destroyMode();\r\n this.destroyItems();\r\n this.items = newProp;\r\n this.tbarItemsCol = this.items;\r\n this.renderItems();\r\n this.renderOverflowMode();\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n Toolbar.prototype.resize = function () {\r\n var ele = this.element;\r\n this.tbResize = true;\r\n if (this.tbarAlign) {\r\n this.itemPositioning();\r\n }\r\n if (this.popObj && this.overflowMode === 'Popup') {\r\n this.popObj.hide();\r\n }\r\n var checkOverflow = this.checkOverflow(ele, ele.getElementsByClassName(CLS_ITEMS)[0]);\r\n if (!checkOverflow) {\r\n this.destroyScroll();\r\n var multirowele = ele.querySelector('.' + CLS_ITEMS);\r\n if (!isNOU(multirowele)) {\r\n this.remove(multirowele, CLS_MULTIROWPOS);\r\n if (this.tbarAlign) {\r\n this.add(multirowele, CLS_TBARPOS);\r\n }\r\n }\r\n }\r\n if (checkOverflow && this.scrollModule && (this.offsetWid === ele.offsetWidth)) {\r\n return;\r\n }\r\n if (this.offsetWid > ele.offsetWidth || checkOverflow) {\r\n this.renderOverflowMode();\r\n }\r\n if (this.popObj) {\r\n if (this.overflowMode === 'Extended') {\r\n var eleStyles = window.getComputedStyle(this.element);\r\n this.popObj.width = parseFloat(eleStyles.width) + ((parseFloat(eleStyles.borderRightWidth)) * 2);\r\n }\r\n if (this.tbarAlign) {\r\n this.removePositioning();\r\n }\r\n this.popupRefresh(this.popObj.element, false);\r\n if (this.tbarAlign) {\r\n this.refreshPositioning();\r\n }\r\n }\r\n if (this.element.querySelector('.' + CLS_HSCROLLBAR)) {\r\n this.scrollStep = this.element.querySelector('.' + CLS_HSCROLLBAR).offsetWidth;\r\n }\r\n this.offsetWid = ele.offsetWidth;\r\n this.tbResize = false;\r\n this.separator();\r\n };\r\n Toolbar.prototype.extendedOpen = function () {\r\n var sib = this.element.querySelector('.' + CLS_EXTENDABLECLASS);\r\n if (this.overflowMode === 'Extended' && sib) {\r\n this.isExtendedOpen = sib.classList.contains(CLS_POPUPOPEN);\r\n }\r\n };\r\n /**\r\n * Gets called when the model property changes.The data that describes the old and new values of the property that changed.\r\n *\r\n * @param {ToolbarModel} newProp - It contains new value of the data.\r\n * @param {ToolbarModel} oldProp - It contains old value of the data.\r\n * @returns {void}\r\n * @private\r\n */\r\n Toolbar.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var tEle = this.element;\r\n var wid = tEle.offsetWidth;\r\n this.extendedOpen();\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'items':\r\n if (!(newProp.items instanceof Array && oldProp.items instanceof Array)) {\r\n var changedProb = Object.keys(newProp.items);\r\n for (var i = 0; i < changedProb.length; i++) {\r\n var index = parseInt(Object.keys(newProp.items)[i], 10);\r\n var property = Object.keys(newProp.items[index])[0];\r\n var newProperty = Object(newProp.items[index])[property];\r\n if (typeof newProperty !== 'function') {\r\n if (this.tbarAlign || property === 'align') {\r\n this.refresh();\r\n this.trigger('created');\r\n break;\r\n }\r\n var popupPriCheck = property === 'showAlwaysInPopup' && !newProperty;\r\n var booleanCheck = property === 'overflow' && this.popupPriCount !== 0;\r\n if ((popupPriCheck) || (this.items[index].showAlwaysInPopup) && booleanCheck) {\r\n --this.popupPriCount;\r\n }\r\n if (isNOU(this.scrollModule)) {\r\n this.destroyMode();\r\n }\r\n var itemCol = [].slice.call(selectAll('.' + CLS_ITEMS + ' .' + CLS_ITEM, tEle));\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n detach(itemCol[index]);\r\n this.tbarEle.splice(index, 1);\r\n this.addItems([this.items[index]], index);\r\n this.items.splice(index, 1);\r\n if (this.items[index].template) {\r\n this.tbarEle.splice(this.items.length, 1);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.itemsRerender(newProp.items);\r\n }\r\n break;\r\n case 'width':\r\n setStyle(tEle, { 'width': formatUnit(newProp.width) });\r\n this.renderOverflowMode();\r\n if (this.popObj && wid < tEle.offsetWidth) {\r\n this.popupRefresh(this.popObj.element, false);\r\n }\r\n break;\r\n case 'height':\r\n setStyle(this.element, { 'height': formatUnit(newProp.height) });\r\n break;\r\n case 'overflowMode':\r\n this.destroyMode();\r\n this.renderOverflowMode();\r\n if (this.enableRtl) {\r\n this.add(tEle, CLS_RTL);\r\n }\r\n this.refreshOverflow();\r\n break;\r\n case 'enableRtl':\r\n newProp.enableRtl ? this.add(tEle, CLS_RTL) : this.remove(tEle, CLS_RTL);\r\n if (!isNOU(this.scrollModule)) {\r\n newProp.enableRtl ? this.add(this.scrollModule.element, CLS_RTL) : this.remove(this.scrollModule.element, CLS_RTL);\r\n }\r\n if (!isNOU(this.popObj)) {\r\n newProp.enableRtl ? this.add(this.popObj.element, CLS_RTL) : this.remove(this.popObj.element, CLS_RTL);\r\n }\r\n if (this.tbarAlign) {\r\n this.itemPositioning();\r\n }\r\n break;\r\n case 'scrollStep':\r\n if (this.scrollModule) {\r\n this.scrollModule.scrollStep = this.scrollStep;\r\n }\r\n break;\r\n case 'enableCollision':\r\n if (this.popObj) {\r\n this.popObj.collision = { Y: this.enableCollision ? 'flip' : 'none' };\r\n }\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.element], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.element], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'allowKeyboard':\r\n this.unwireKeyboardEvent();\r\n if (newProp.allowKeyboard) {\r\n this.wireKeyboardEvent();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Shows or hides the Toolbar item that is in the specified index.\r\n *\r\n * @param {number | HTMLElement} index - Index value of target item or DOM element of items to be hidden or shown.\r\n * @param {boolean} value - Based on this Boolean value, item will be hide (true) or show (false). By default, value is false.\r\n * @returns {void}.\r\n */\r\n Toolbar.prototype.hideItem = function (index, value) {\r\n var isElement = (typeof (index) === 'object') ? true : false;\r\n var eleIndex = index;\r\n var initIndex;\r\n var ele;\r\n var innerItems = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\r\n if (isElement) {\r\n ele = index;\r\n }\r\n else if (this.tbarEle[eleIndex]) {\r\n var innerItems_1 = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\r\n ele = innerItems_1[eleIndex];\r\n }\r\n if (ele) {\r\n value ? ele.classList.add(CLS_HIDDEN) : ele.classList.remove(CLS_HIDDEN);\r\n if (value && isNOU(this.element.getAttribute('tabindex')) && !ele.classList.contains(CLS_SEPARATOR)) {\r\n if (isNOU(ele.firstElementChild.getAttribute('tabindex'))) {\r\n ele.firstElementChild.setAttribute('tabindex', '-1');\r\n var innerItems_2 = [].slice.call(selectAll('.' + CLS_ITEM, this.element));\r\n if (isElement) {\r\n eleIndex = innerItems_2.indexOf(ele);\r\n }\r\n var nextEle = innerItems_2[++eleIndex];\r\n while (nextEle) {\r\n var skipEle = this.eleContains(nextEle);\r\n if (!skipEle) {\r\n nextEle.firstElementChild.removeAttribute('tabindex');\r\n break;\r\n }\r\n nextEle = innerItems_2[++eleIndex];\r\n }\r\n }\r\n }\r\n else if (isNOU(this.element.getAttribute('tabindex')) && !ele.classList.contains(CLS_SEPARATOR)) {\r\n initIndex = 0;\r\n var setFlag = false;\r\n var removeFlag = false;\r\n var initELe = innerItems[initIndex];\r\n while (initELe) {\r\n if (!initELe.classList.contains(CLS_SEPARATOR)) {\r\n if (isNOU(initELe.firstElementChild.getAttribute('tabindex'))) {\r\n initELe.firstElementChild.setAttribute('tabindex', '-1');\r\n setFlag = true;\r\n }\r\n else {\r\n if (setFlag && removeFlag) {\r\n break;\r\n }\r\n var skipEle = this.eleContains(initELe);\r\n if (!skipEle) {\r\n initELe.firstElementChild.removeAttribute('tabindex');\r\n removeFlag = true;\r\n }\r\n initELe = innerItems[++initIndex];\r\n }\r\n }\r\n else {\r\n initELe = innerItems[++initIndex];\r\n }\r\n }\r\n }\r\n this.refreshOverflow();\r\n }\r\n };\r\n __decorate([\r\n Collection([], Item)\r\n ], Toolbar.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Toolbar.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Toolbar.prototype, \"height\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Toolbar.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('Scrollable')\r\n ], Toolbar.prototype, \"overflowMode\", void 0);\r\n __decorate([\r\n Property()\r\n ], Toolbar.prototype, \"scrollStep\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Toolbar.prototype, \"enableCollision\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Toolbar.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Toolbar.prototype, \"allowKeyboard\", void 0);\r\n __decorate([\r\n Event()\r\n ], Toolbar.prototype, \"clicked\", void 0);\r\n __decorate([\r\n Event()\r\n ], Toolbar.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Toolbar.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], Toolbar.prototype, \"beforeCreate\", void 0);\r\n Toolbar = __decorate([\r\n NotifyPropertyChanges\r\n ], Toolbar);\r\n return Toolbar;\r\n}(Component));\r\nexport { Toolbar };\r\n","/**\n * TreeView modules\n */\nexport * from './treeview';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, isUndefined, Browser, compile, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { Property, NotifyPropertyChanges, ChildProperty, Complex } from '@syncfusion/ej2-base';\r\nimport { Event, EventHandler, KeyboardEvents } from '@syncfusion/ej2-base';\r\nimport { rippleEffect, Animation, remove } from '@syncfusion/ej2-base';\r\nimport { Draggable, Droppable } from '@syncfusion/ej2-base';\r\nimport { getElement } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, closest, matches, detach, select, selectAll, isVisible, append } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\nimport { isNullOrUndefined as isNOU, Touch, getValue, setValue, extend, merge, attributes } from '@syncfusion/ej2-base';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nimport { createCheckBox, rippleMouseHandler } from '@syncfusion/ej2-buttons';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nvar ROOT = 'e-treeview';\r\nvar CONTROL = 'e-control';\r\nvar COLLAPSIBLE = 'e-icon-collapsible';\r\nvar EXPANDABLE = 'e-icon-expandable';\r\nvar LISTITEM = 'e-list-item';\r\nvar LISTTEXT = 'e-list-text';\r\nvar PARENTITEM = 'e-list-parent';\r\nvar HOVER = 'e-hover';\r\nvar ACTIVE = 'e-active';\r\nvar LOAD = 'e-icons-spinner';\r\nvar PROCESS = 'e-process';\r\nvar ICON = 'e-icons';\r\nvar TEXTWRAP = 'e-text-content';\r\nvar INPUT = 'e-input';\r\nvar INPUTGROUP = 'e-input-group';\r\nvar TREEINPUT = 'e-tree-input';\r\nvar EDITING = 'e-editing';\r\nvar RTL = 'e-rtl';\r\nvar INTERACTION = 'e-interaction';\r\nvar DRAGITEM = 'e-drag-item';\r\nvar DROPPABLE = 'e-droppable';\r\nvar DRAGGING = 'e-dragging';\r\nvar SIBLING = 'e-sibling';\r\nvar DROPIN = 'e-drop-in';\r\nvar DROPNEXT = 'e-drop-next';\r\nvar DROPOUT = 'e-drop-out';\r\nvar NODROP = 'e-no-drop';\r\nvar FULLROWWRAP = 'e-fullrow-wrap';\r\nvar FULLROW = 'e-fullrow';\r\nvar SELECTED = 'e-selected';\r\nvar EXPANDED = 'e-expanded';\r\nvar NODECOLLAPSED = 'e-node-collapsed';\r\nvar DISABLE = 'e-disable';\r\nvar DROPCOUNT = 'e-drop-count';\r\nvar CHECK = 'e-check';\r\nvar INDETERMINATE = 'e-stop';\r\nvar CHECKBOXWRAP = 'e-checkbox-wrapper';\r\nvar CHECKBOXFRAME = 'e-frame';\r\nvar CHECKBOXRIPPLE = 'e-ripple-container';\r\nvar RIPPLE = 'e-ripple';\r\nvar RIPPLEELMENT = 'e-ripple-element';\r\nvar FOCUS = 'e-node-focus';\r\nvar IMAGE = 'e-list-img';\r\nvar BIGGER = 'e-bigger';\r\nvar SMALL = 'e-small';\r\nvar CHILD = 'e-has-child';\r\nvar ITEM_ANIMATION_ACTIVE = 'e-animation-active';\r\nvar DISABLED = 'e-disabled';\r\nvar treeAriaAttr = {\r\n treeRole: 'tree',\r\n itemRole: 'treeitem',\r\n listRole: 'group',\r\n itemText: '',\r\n wrapperRole: ''\r\n};\r\n/**\r\n * Configures the fields to bind to the properties of node in the TreeView component.\r\n */\r\nvar FieldsSettings = /** @class */ (function (_super) {\r\n __extends(FieldsSettings, _super);\r\n function FieldsSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('child')\r\n ], FieldsSettings.prototype, \"child\", void 0);\r\n __decorate([\r\n Property([])\r\n ], FieldsSettings.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property('expanded')\r\n ], FieldsSettings.prototype, \"expanded\", void 0);\r\n __decorate([\r\n Property('hasChildren')\r\n ], FieldsSettings.prototype, \"hasChildren\", void 0);\r\n __decorate([\r\n Property('htmlAttributes')\r\n ], FieldsSettings.prototype, \"htmlAttributes\", void 0);\r\n __decorate([\r\n Property('iconCss')\r\n ], FieldsSettings.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('id')\r\n ], FieldsSettings.prototype, \"id\", void 0);\r\n __decorate([\r\n Property('imageUrl')\r\n ], FieldsSettings.prototype, \"imageUrl\", void 0);\r\n __decorate([\r\n Property('isChecked')\r\n ], FieldsSettings.prototype, \"isChecked\", void 0);\r\n __decorate([\r\n Property('parentID')\r\n ], FieldsSettings.prototype, \"parentID\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], FieldsSettings.prototype, \"query\", void 0);\r\n __decorate([\r\n Property('selected')\r\n ], FieldsSettings.prototype, \"selected\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], FieldsSettings.prototype, \"tableName\", void 0);\r\n __decorate([\r\n Property('text')\r\n ], FieldsSettings.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('tooltip')\r\n ], FieldsSettings.prototype, \"tooltip\", void 0);\r\n __decorate([\r\n Property('navigateUrl')\r\n ], FieldsSettings.prototype, \"navigateUrl\", void 0);\r\n return FieldsSettings;\r\n}(ChildProperty));\r\nexport { FieldsSettings };\r\n/**\r\n * Configures animation settings for the TreeView component.\r\n */\r\nvar ActionSettings = /** @class */ (function (_super) {\r\n __extends(ActionSettings, _super);\r\n function ActionSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('SlideDown')\r\n ], ActionSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property(400)\r\n ], ActionSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('linear')\r\n ], ActionSettings.prototype, \"easing\", void 0);\r\n return ActionSettings;\r\n}(ChildProperty));\r\nexport { ActionSettings };\r\n/**\r\n * Configures the animation settings for expanding and collapsing nodes in TreeView.\r\n */\r\nvar NodeAnimationSettings = /** @class */ (function (_super) {\r\n __extends(NodeAnimationSettings, _super);\r\n function NodeAnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Complex({ effect: 'SlideUp', duration: 400, easing: 'linear' }, ActionSettings)\r\n ], NodeAnimationSettings.prototype, \"collapse\", void 0);\r\n __decorate([\r\n Complex({ effect: 'SlideDown', duration: 400, easing: 'linear' }, ActionSettings)\r\n ], NodeAnimationSettings.prototype, \"expand\", void 0);\r\n return NodeAnimationSettings;\r\n}(ChildProperty));\r\nexport { NodeAnimationSettings };\r\n/**\r\n * The TreeView component is used to represent hierarchical data in a tree like structure with advanced\r\n * functions to perform edit, drag and drop, selection with check-box, and more.\r\n * ```html\r\n *
      \r\n * ```\r\n * ```typescript\r\n * let treeObj: TreeView = new TreeView();\r\n * treeObj.appendTo('#tree');\r\n * ```\r\n */\r\nvar TreeView = /** @class */ (function (_super) {\r\n __extends(TreeView, _super);\r\n function TreeView(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isRefreshed = false;\r\n _this.preventExpand = false;\r\n _this.checkedElement = [];\r\n _this.disableNode = [];\r\n // eslint-disable-next-line\r\n _this.validArr = [];\r\n _this.validNodes = [];\r\n _this.expandChildren = [];\r\n _this.isFieldChange = false;\r\n _this.changeDataSource = false;\r\n _this.hasTemplate = false;\r\n _this.mouseDownStatus = false;\r\n return _this;\r\n }\r\n TreeView_1 = TreeView;\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - returns module name.\r\n * @private\r\n */\r\n TreeView.prototype.getModuleName = function () {\r\n return 'treeview';\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n */\r\n TreeView.prototype.preRender = function () {\r\n var _this = this;\r\n this.checkActionNodes = [];\r\n this.parentNodeCheck = [];\r\n this.dragStartAction = false;\r\n this.isAnimate = false;\r\n this.keyConfigs = {\r\n escape: 'escape',\r\n end: 'end',\r\n enter: 'enter',\r\n f2: 'f2',\r\n home: 'home',\r\n moveDown: 'downarrow',\r\n moveLeft: 'leftarrow',\r\n moveRight: 'rightarrow',\r\n moveUp: 'uparrow',\r\n ctrlDown: 'ctrl+downarrow',\r\n ctrlUp: 'ctrl+uparrow',\r\n ctrlEnter: 'ctrl+enter',\r\n ctrlHome: 'ctrl+home',\r\n ctrlEnd: 'ctrl+end',\r\n ctrlA: 'ctrl+A',\r\n shiftDown: 'shift+downarrow',\r\n shiftUp: 'shift+uparrow',\r\n shiftEnter: 'shift+enter',\r\n shiftHome: 'shift+home',\r\n shiftEnd: 'shift+end',\r\n csDown: 'ctrl+shift+downarrow',\r\n csUp: 'ctrl+shift+uparrow',\r\n csEnter: 'ctrl+shift+enter',\r\n csHome: 'ctrl+shift+home',\r\n csEnd: 'ctrl+shift+end',\r\n space: 'space'\r\n };\r\n this.listBaseOption = {\r\n expandCollapse: true,\r\n showIcon: true,\r\n expandIconClass: EXPANDABLE,\r\n ariaAttributes: treeAriaAttr,\r\n expandIconPosition: 'Left',\r\n itemCreated: function (e) {\r\n _this.beforeNodeCreate(e);\r\n },\r\n enableHtmlSanitizer: this.enableHtmlSanitizer,\r\n itemNavigable: this.fullRowNavigable\r\n };\r\n this.updateListProp(this.fields);\r\n this.aniObj = new Animation({});\r\n this.treeList = [];\r\n this.isLoaded = false;\r\n this.isInitalExpand = false;\r\n this.expandChildren = [];\r\n this.index = 0;\r\n this.setTouchClass();\r\n if (isNOU(this.selectedNodes)) {\r\n this.setProperties({ selectedNodes: [] }, true);\r\n }\r\n if (isNOU(this.checkedNodes)) {\r\n this.setProperties({ checkedNodes: [] }, true);\r\n }\r\n if (isNOU(this.expandedNodes)) {\r\n this.setProperties({ expandedNodes: [] }, true);\r\n }\r\n else {\r\n this.isInitalExpand = true;\r\n }\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - returns the persisted data\r\n * @hidden\r\n */\r\n TreeView.prototype.getPersistData = function () {\r\n var keyEntity = ['selectedNodes', 'checkedNodes', 'expandedNodes'];\r\n return this.addOnPersist(keyEntity);\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n TreeView.prototype.render = function () {\r\n this.initialRender = true;\r\n this.initialize();\r\n this.setDataBinding(false);\r\n this.setDisabledMode();\r\n this.setExpandOnType();\r\n if (!this.disabled) {\r\n this.setRipple();\r\n }\r\n this.wireEditingEvents(this.allowEditing);\r\n this.setDragAndDrop(this.allowDragAndDrop);\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n this.initialRender = false;\r\n this.renderComplete();\r\n };\r\n TreeView.prototype.initialize = function () {\r\n this.element.setAttribute('role', 'tree');\r\n this.element.setAttribute('tabindex', '0');\r\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\r\n this.setCssClass(null, this.cssClass);\r\n this.setEnableRtl();\r\n this.setFullRow(this.fullRowSelect);\r\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\r\n };\r\n TreeView.prototype.setDisabledMode = function () {\r\n if (this.disabled) {\r\n this.element.classList.add(DISABLED);\r\n }\r\n else {\r\n this.element.classList.remove(DISABLED);\r\n }\r\n };\r\n TreeView.prototype.setEnableRtl = function () {\r\n (this.enableRtl ? addClass : removeClass)([this.element], RTL);\r\n };\r\n TreeView.prototype.setRipple = function () {\r\n var tempStr = '.' + FULLROW + ',.' + TEXTWRAP;\r\n var rippleModel = {\r\n selector: tempStr,\r\n ignore: '.' + TEXTWRAP + ' > .' + ICON + ',.' + INPUTGROUP + ',.' + INPUT + ', .' + CHECKBOXWRAP\r\n };\r\n this.rippleFn = rippleEffect(this.element, rippleModel);\r\n var iconModel = {\r\n selector: '.' + TEXTWRAP + ' > .' + ICON,\r\n isCenterRipple: true\r\n };\r\n this.rippleIconFn = rippleEffect(this.element, iconModel);\r\n };\r\n TreeView.prototype.setFullRow = function (isEnabled) {\r\n (isEnabled ? addClass : removeClass)([this.element], FULLROWWRAP);\r\n };\r\n TreeView.prototype.setMultiSelect = function (isEnabled) {\r\n var firstUl = select('.' + PARENTITEM, this.element);\r\n if (isEnabled) {\r\n firstUl.setAttribute('aria-multiselectable', 'true');\r\n }\r\n else {\r\n firstUl.removeAttribute('aria-multiselectable');\r\n }\r\n };\r\n // eslint-disable-next-line\r\n TreeView.prototype.templateComplier = function (template) {\r\n if (template) {\r\n this.hasTemplate = true;\r\n // eslint-disable-next-line\r\n var e = void 0;\r\n this.element.classList.add(INTERACTION);\r\n try {\r\n if (document.querySelectorAll(template).length) {\r\n return compile(document.querySelector(template).innerHTML.trim());\r\n }\r\n }\r\n catch (e) {\r\n return compile(template);\r\n }\r\n }\r\n this.element.classList.remove(INTERACTION);\r\n return undefined;\r\n };\r\n TreeView.prototype.setDataBinding = function (changeDataSource) {\r\n var _this = this;\r\n this.treeList.push('false');\r\n if (this.fields.dataSource instanceof DataManager) {\r\n /* eslint-disable */\r\n this.isOffline = this.fields.dataSource.dataSource.offline;\r\n if (this.fields.dataSource.ready) {\r\n this.fields.dataSource.ready.then(function (e) {\r\n /* eslint-disable */\r\n _this.isOffline = _this.fields.dataSource.dataSource.offline;\r\n if (_this.fields.dataSource instanceof DataManager && _this.isOffline) {\r\n _this.treeList.pop();\r\n _this.treeData = e.result;\r\n _this.isNumberTypeId = _this.getType();\r\n _this.setRootData();\r\n _this.renderItems(true);\r\n if (_this.treeList.length === 0 && !_this.isLoaded) {\r\n _this.finalize();\r\n }\r\n }\r\n }).catch(function (e) {\r\n _this.trigger('actionFailure', { error: e });\r\n });\r\n }\r\n else {\r\n this.fields.dataSource.executeQuery(this.getQuery(this.fields)).then(function (e) {\r\n _this.treeList.pop();\r\n _this.treeData = e.result;\r\n _this.isNumberTypeId = _this.getType();\r\n _this.setRootData();\r\n if (changeDataSource) {\r\n _this.changeDataSource = true;\r\n }\r\n _this.renderItems(true);\r\n _this.changeDataSource = false;\r\n if (_this.treeList.length === 0 && !_this.isLoaded) {\r\n _this.finalize();\r\n }\r\n }).catch(function (e) {\r\n _this.trigger('actionFailure', { error: e });\r\n });\r\n }\r\n }\r\n else {\r\n this.treeList.pop();\r\n if (isNOU(this.fields.dataSource)) {\r\n this.rootData = this.treeData = [];\r\n }\r\n else {\r\n this.treeData = JSON.parse(JSON.stringify(this.fields.dataSource));\r\n this.setRootData();\r\n }\r\n this.isNumberTypeId = this.getType();\r\n this.renderItems(false);\r\n }\r\n if (this.treeList.length === 0 && !this.isLoaded) {\r\n this.finalize();\r\n }\r\n };\r\n TreeView.prototype.getQuery = function (mapper, value) {\r\n if (value === void 0) { value = null; }\r\n var columns = [];\r\n var query;\r\n if (!mapper.query) {\r\n query = new Query();\r\n var prop = this.getActualProperties(mapper);\r\n for (var _i = 0, _a = Object.keys(prop); _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n if (col !== 'dataSource' && col !== 'tableName' && col !== 'child' && !!mapper[col]\r\n && col !== 'url' && columns.indexOf(mapper[col]) === -1) {\r\n columns.push(mapper[col]);\r\n }\r\n }\r\n query.select(columns);\r\n if (prop.hasOwnProperty('tableName')) {\r\n query.from(mapper.tableName);\r\n }\r\n }\r\n else {\r\n query = mapper.query.clone();\r\n }\r\n ListBase.addSorting(this.sortOrder, mapper.text, query);\r\n if (!isNOU(value) && !isNOU(mapper.parentID)) {\r\n query.where(mapper.parentID, 'equal', (this.isNumberTypeId ? parseFloat(value) : value));\r\n }\r\n return query;\r\n };\r\n TreeView.prototype.getType = function () {\r\n return this.treeData[0] ? ((typeof getValue(this.fields.id, this.treeData[0]) === 'number') ? true : false) : false;\r\n };\r\n TreeView.prototype.setRootData = function () {\r\n this.dataType = this.getDataType(this.treeData, this.fields);\r\n if (this.dataType === 1) {\r\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\r\n var rootItems = this.getChildNodes(this.treeData, undefined, true);\r\n if (isNOU(rootItems)) {\r\n this.rootData = [];\r\n }\r\n else {\r\n this.rootData = rootItems;\r\n }\r\n }\r\n else {\r\n this.rootData = this.treeData;\r\n }\r\n };\r\n TreeView.prototype.renderItems = function (isSorted) {\r\n /* eslint-disable */\r\n this.listBaseOption.ariaAttributes.level = 1;\r\n var sortedData = this.getSortedData(this.rootData);\r\n this.ulElement = ListBase.createList(this.createElement, isSorted ? this.rootData : sortedData, this.listBaseOption);\r\n this.element.appendChild(this.ulElement);\r\n var rootNodes = this.ulElement.querySelectorAll('.e-list-item');\r\n if (this.loadOnDemand === false) {\r\n var i = 0;\r\n while (i < rootNodes.length) {\r\n this.renderChildNodes(rootNodes[i], true, null, true);\r\n i++;\r\n }\r\n }\r\n var parentEle = selectAll('.' + PARENTITEM, this.element);\r\n if ((parentEle.length === 1 && (rootNodes && rootNodes.length !== 0)) || this.loadOnDemand) {\r\n this.finalizeNode(this.element);\r\n }\r\n this.parentNodeCheck = [];\r\n this.parentCheckData = [];\r\n this.updateCheckedStateFromDS();\r\n if (this.autoCheck && this.showCheckBox && !this.isLoaded) {\r\n this.updateParentCheckState();\r\n }\r\n };\r\n /**\r\n * Update the checkedNodes from datasource at initial rendering\r\n */\r\n TreeView.prototype.updateCheckedStateFromDS = function (id) {\r\n this.validNodes = [];\r\n if (this.treeData && this.showCheckBox) {\r\n if (this.dataType === 1) {\r\n var mapper = this.fields;\r\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\r\n for (var i = 0; i < resultData.length; i++) {\r\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\r\n var resultPId = resultData[i][this.fields.parentID] ? resultData[i][this.fields.parentID].toString() : null;\r\n if (this.checkedNodes.indexOf(resultId) === -1 && !(this.isLoaded)) {\r\n this.checkedNodes.push(resultId);\r\n }\r\n if (resultData[i][this.fields.hasChildren]) {\r\n var id_1 = resultData[i][this.fields.id];\r\n var childData = new DataManager(this.treeData).\r\n executeLocal(new Query().where(mapper.parentID, 'equal', id_1, false));\r\n for (var child = 0; child < childData.length; child++) {\r\n var childId = childData[child][this.fields.id] ? childData[child][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(childId) === -1 && this.autoCheck) {\r\n this.checkedNodes.push(childId);\r\n }\r\n }\r\n }\r\n }\r\n for (var i = 0; i < this.checkedNodes.length; i++) {\r\n var mapper_1 = this.fields;\r\n var checkState = new DataManager(this.treeData).\r\n executeLocal(new Query().where(mapper_1.id, 'equal', this.checkedNodes[i], true));\r\n if (checkState[0] && this.autoCheck) {\r\n this.getCheckedNodeDetails(mapper_1, checkState);\r\n this.checkIndeterminateState(checkState[0]);\r\n }\r\n if (checkState.length > 0) {\r\n var checkedId = checkState[0][this.fields.id] ? checkState[0][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\r\n this.validNodes.push(checkedId);\r\n }\r\n }\r\n var checkedData = new DataManager(this.treeData).\r\n executeLocal(new Query().where(mapper_1.parentID, 'equal', this.checkedNodes[i], true));\r\n for (var index = 0; index < checkedData.length; index++) {\r\n var checkedId = checkedData[index][this.fields.id] ? checkedData[index][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(checkedId) === -1 && this.autoCheck) {\r\n this.checkedNodes.push(checkedId);\r\n }\r\n if (this.checkedNodes.indexOf(checkedId) > -1 && this.validNodes.indexOf(checkedId) === -1) {\r\n this.validNodes.push(checkedId);\r\n }\r\n }\r\n }\r\n }\r\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\r\n this.isOffline)) {\r\n for (var index = 0; index < this.treeData.length; index++) {\r\n var fieldId = this.treeData[index][this.fields.id] ? this.treeData[index][this.fields.id].toString() : '';\r\n if (this.treeData[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(fieldId) === -1) {\r\n this.checkedNodes.push(fieldId);\r\n }\r\n if (this.checkedNodes.indexOf(fieldId) > -1 && this.validNodes.indexOf(fieldId) === -1) {\r\n this.validNodes.push(fieldId);\r\n }\r\n var childItems = getValue(this.fields.child.toString(), this.treeData[index]);\r\n if (childItems) {\r\n this.updateChildCheckState(childItems, this.treeData[index]);\r\n }\r\n }\r\n }\r\n this.setProperties({ checkedNodes: this.validNodes }, true);\r\n }\r\n };\r\n /**\r\n * To check whether the list data has sub child and to change the parent check state accordingly\r\n */\r\n TreeView.prototype.getCheckedNodeDetails = function (mapper, checkNodes) {\r\n var id = checkNodes[0][this.fields.parentID] ? checkNodes[0][this.fields.parentID].toString() : null;\r\n var count = 0;\r\n var element = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.id] + '\"]');\r\n var parentEle = this.element.querySelector('[data-uid=\"' + checkNodes[0][this.fields.parentID] + '\"]');\r\n if (!element && !parentEle) {\r\n var len = this.parentNodeCheck.length;\r\n if (this.parentNodeCheck.indexOf(id) === -1) {\r\n this.parentNodeCheck.push(id);\r\n }\r\n var childNodes = this.getChildNodes(this.treeData, id);\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(childId) !== -1) {\r\n count++;\r\n }\r\n if (count === childNodes.length && this.checkedNodes.indexOf(id) === -1) {\r\n this.checkedNodes.push(id);\r\n }\r\n }\r\n var preElement = new DataManager(this.treeData).\r\n executeLocal(new Query().where(mapper.id, 'equal', id, true));\r\n this.getCheckedNodeDetails(mapper, preElement);\r\n }\r\n else if (parentEle) {\r\n var check = select('.' + CHECK, parentEle);\r\n if (!check) {\r\n this.changeState(parentEle, 'indeterminate', null, true, true);\r\n }\r\n }\r\n };\r\n /**\r\n * Update the checkedNodes and parent state when all the child Nodes are in checkedstate at initial rendering\r\n */\r\n TreeView.prototype.updateParentCheckState = function () {\r\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\r\n var childCheckedElement;\r\n for (var i = 0; i < indeterminate.length; i++) {\r\n var node = closest(indeterminate[i], '.' + LISTITEM);\r\n var nodeId = node.getAttribute('data-uid').toString();\r\n if (this.dataType === 1) {\r\n childCheckedElement = new DataManager(this.treeData).\r\n executeLocal(new Query().where(this.fields.parentID, 'equal', nodeId, true));\r\n }\r\n else {\r\n childCheckedElement = this.getChildNodes(this.treeData, nodeId);\r\n }\r\n var count = 0;\r\n if (childCheckedElement) {\r\n for (var j = 0; j < childCheckedElement.length; j++) {\r\n var childId = childCheckedElement[j][this.fields.id].toString();\r\n if (this.checkedNodes.indexOf(childId) !== -1) {\r\n count++;\r\n }\r\n }\r\n if (count === childCheckedElement.length) {\r\n var nodeCheck = node.getAttribute('data-uid');\r\n if (this.checkedNodes.indexOf(nodeCheck) === -1) {\r\n this.checkedNodes.push(nodeCheck);\r\n }\r\n this.changeState(node, 'check', null, true, true);\r\n }\r\n else if (count === 0 && this.checkedNodes.length === 0) {\r\n this.changeState(node, 'uncheck', null, true, true);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Change the parent to indeterminate state whenever the child is in checked state which is not rendered in DOM\r\n */\r\n TreeView.prototype.checkIndeterminateState = function (data) {\r\n var element;\r\n if (this.dataType === 1) {\r\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.parentID] + '\"]');\r\n }\r\n else {\r\n element = this.element.querySelector('[data-uid=\"' + data[this.fields.id] + '\"]');\r\n }\r\n if (element) {\r\n var ariaChecked = element.querySelector('.' + CHECKBOXWRAP).getAttribute('aria-checked');\r\n if (ariaChecked !== 'true') {\r\n this.changeState(element, 'indeterminate', null, true, true);\r\n }\r\n }\r\n else if (this.dataType === 2) {\r\n var len = this.parentNodeCheck.length;\r\n if (this.parentNodeCheck.indexOf(data[this.fields.id].toString()) === -1) {\r\n this.parentNodeCheck.push(data[this.fields.id].toString());\r\n }\r\n }\r\n };\r\n /**\r\n * Update the checkedNodes for child and subchild from datasource (hierarchical datasource) at initial rendering\r\n */\r\n TreeView.prototype.updateChildCheckState = function (childItems, treeData) {\r\n var count = 0;\r\n var checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\r\n for (var index = 0; index < childItems.length; index++) {\r\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\r\n if (childItems[index][this.fields.isChecked] && !(this.isLoaded) && this.checkedNodes.indexOf(checkedChild) === -1) {\r\n this.checkedNodes.push(checkedChild);\r\n }\r\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1 && this.autoCheck) {\r\n this.checkedNodes.push(checkedChild);\r\n }\r\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\r\n count++;\r\n }\r\n if (this.checkedNodes.indexOf(checkedChild) > -1 && this.validNodes.indexOf(checkedChild) === -1) {\r\n this.validNodes.push(checkedChild);\r\n }\r\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\r\n if (subChildItems) {\r\n this.parentCheckData.push(treeData);\r\n this.updateChildCheckState(subChildItems, childItems[index]);\r\n }\r\n if (count === childItems.length && this.autoCheck && this.checkedNodes.indexOf(checkedParent) === -1) {\r\n this.checkedNodes.push(checkedParent);\r\n }\r\n }\r\n if (count !== 0 && this.autoCheck) {\r\n this.checkIndeterminateState(treeData);\r\n for (var len = 0; len < this.parentCheckData.length; len++) {\r\n if ((treeData !== this.parentCheckData[len]) && (this.parentCheckData[len])) {\r\n this.checkIndeterminateState(this.parentCheckData[len]);\r\n }\r\n }\r\n }\r\n this.parentCheckData = [];\r\n };\r\n TreeView.prototype.beforeNodeCreate = function (e) {\r\n if (this.showCheckBox) {\r\n var checkboxEle = createCheckBox(this.createElement, true, { cssClass: this.touchClass });\r\n checkboxEle.setAttribute('role', 'checkbox');\r\n var icon = select('div.' + ICON, e.item);\r\n var id = e.item.getAttribute('data-uid');\r\n e.item.childNodes[0].insertBefore(checkboxEle, e.item.childNodes[0].childNodes[isNOU(icon) ? 0 : 1]);\r\n var checkValue = getValue(e.fields.isChecked, e.curData);\r\n if (this.checkedNodes.indexOf(id) > -1) {\r\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\r\n checkboxEle.setAttribute('aria-checked', 'true');\r\n this.addCheck(e.item);\r\n }\r\n else if (!isNOU(checkValue) && checkValue.toString() === 'true') {\r\n select('.' + CHECKBOXFRAME, checkboxEle).classList.add(CHECK);\r\n checkboxEle.setAttribute('aria-checked', 'true');\r\n this.addCheck(e.item);\r\n }\r\n else {\r\n checkboxEle.setAttribute('aria-checked', 'false');\r\n }\r\n var frame = select('.' + CHECKBOXFRAME, checkboxEle);\r\n EventHandler.add(frame, 'mousedown', this.frameMouseHandler, this);\r\n EventHandler.add(frame, 'mouseup', this.frameMouseHandler, this);\r\n }\r\n if (this.fullRowSelect) {\r\n this.createFullRow(e.item);\r\n }\r\n if (this.allowMultiSelection && !e.item.classList.contains(SELECTED)) {\r\n e.item.setAttribute('aria-selected', 'false');\r\n }\r\n var fields = e.fields;\r\n this.addActionClass(e, fields.selected, SELECTED);\r\n this.addActionClass(e, fields.expanded, EXPANDED);\r\n if (!isNOU(this.nodeTemplateFn)) {\r\n var textEle = e.item.querySelector('.' + LISTTEXT);\r\n var dataId = e.item.getAttribute('data-uid');\r\n textEle.innerHTML = '';\r\n this.renderNodeTemplate(e.curData, textEle, dataId);\r\n }\r\n var eventArgs = {\r\n node: e.item,\r\n nodeData: e.curData,\r\n text: e.text,\r\n };\r\n if (!this.isRefreshed) {\r\n this.trigger('drawNode', eventArgs);\r\n }\r\n };\r\n TreeView.prototype.frameMouseHandler = function (e) {\r\n var rippleSpan = select('.' + CHECKBOXRIPPLE, e.target.parentElement);\r\n rippleMouseHandler(e, rippleSpan);\r\n };\r\n TreeView.prototype.addActionClass = function (e, action, cssClass) {\r\n var data = e.curData;\r\n var actionValue = getValue(action, data);\r\n if (!isNOU(actionValue) && actionValue.toString() !== 'false') {\r\n e.item.classList.add(cssClass);\r\n }\r\n };\r\n TreeView.prototype.getDataType = function (ds, mapper) {\r\n if (this.fields.dataSource instanceof DataManager) {\r\n for (var i = 0; i < ds.length; i++) {\r\n if (this.isOffline) {\r\n if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i])) && !isNOU(getValue(mapper.parentID, ds[i]))) {\r\n return 1;\r\n }\r\n }\r\n else if ((typeof mapper.child === 'string') && isNOU(getValue(mapper.child, ds[i]))) {\r\n return 1;\r\n }\r\n }\r\n return 2;\r\n }\r\n for (var i = 0, len = ds.length; i < len; i++) {\r\n if ((typeof mapper.child === 'string') && !isNOU(getValue(mapper.child, ds[i]))) {\r\n return 2;\r\n }\r\n if (!isNOU(getValue(mapper.parentID, ds[i])) || !isNOU(getValue(mapper.hasChildren, ds[i]))) {\r\n return 1;\r\n }\r\n }\r\n return 1;\r\n };\r\n TreeView.prototype.getGroupedData = function (dataSource, groupBy) {\r\n var cusQuery = new Query().group(groupBy);\r\n var ds = ListBase.getDataSource(dataSource, cusQuery);\r\n var grpItem = [];\r\n for (var j = 0; j < ds.length; j++) {\r\n var itemObj = ds[j].items;\r\n grpItem.push(itemObj);\r\n }\r\n return grpItem;\r\n };\r\n TreeView.prototype.getSortedData = function (list) {\r\n if (list && this.sortOrder !== 'None') {\r\n list = ListBase.getDataSource(list, ListBase.addSorting(this.sortOrder, this.fields.text));\r\n }\r\n return list;\r\n };\r\n TreeView.prototype.finalizeNode = function (element) {\r\n var iNodes = selectAll('.' + IMAGE, element);\r\n for (var k = 0; k < iNodes.length; k++) {\r\n iNodes[k].setAttribute('alt', IMAGE);\r\n }\r\n if (this.isLoaded) {\r\n var sNodes = selectAll('.' + SELECTED, element);\r\n for (var i = 0; i < sNodes.length; i++) {\r\n this.selectNode(sNodes[i], null);\r\n break;\r\n }\r\n removeClass(sNodes, SELECTED);\r\n }\r\n var cNodes = selectAll('.' + LISTITEM + ':not(.' + EXPANDED + ')', element);\r\n for (var j = 0; j < cNodes.length; j++) {\r\n var icon = select('div.' + ICON, cNodes[j]);\r\n if (icon && icon.classList.contains(EXPANDABLE)) {\r\n this.disableExpandAttr(cNodes[j]);\r\n }\r\n }\r\n var eNodes = selectAll('.' + EXPANDED, element);\r\n if (!this.isInitalExpand) {\r\n for (var i = 0; i < eNodes.length; i++) {\r\n this.renderChildNodes(eNodes[i]);\r\n }\r\n }\r\n removeClass(eNodes, EXPANDED);\r\n this.updateList();\r\n if (this.isLoaded) {\r\n this.updateCheckedProp();\r\n }\r\n };\r\n TreeView.prototype.updateCheckedProp = function () {\r\n if (this.showCheckBox) {\r\n var nodes = [].concat([], this.checkedNodes);\r\n this.setProperties({ checkedNodes: nodes }, true);\r\n }\r\n };\r\n TreeView.prototype.ensureIndeterminate = function () {\r\n if (this.autoCheck) {\r\n var liElement = selectAll('li', this.element);\r\n var ulElement = void 0;\r\n for (var i = 0; i < liElement.length; i++) {\r\n if (liElement[i].classList.contains(LISTITEM)) {\r\n ulElement = select('.' + PARENTITEM, liElement[i]);\r\n if (ulElement) {\r\n this.ensureParentCheckState(liElement[i]);\r\n }\r\n else {\r\n this.ensureChildCheckState(liElement[i]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var indeterminate = selectAll('.' + INDETERMINATE, this.element);\r\n for (var i = 0; i < indeterminate.length; i++) {\r\n indeterminate[i].classList.remove(INDETERMINATE);\r\n }\r\n }\r\n };\r\n TreeView.prototype.ensureParentCheckState = function (element) {\r\n if (!isNOU(element)) {\r\n if (element.classList.contains(ROOT)) {\r\n return;\r\n }\r\n var ulElement = element;\r\n if (element.classList.contains(LISTITEM)) {\r\n ulElement = select('.' + PARENTITEM, element);\r\n }\r\n var checkedNodes = selectAll('.' + CHECK, ulElement);\r\n var indeterminateNodes = selectAll('.' + INDETERMINATE, ulElement);\r\n var nodes = selectAll('.' + LISTITEM, ulElement);\r\n var checkBoxEle = element.getElementsByClassName(CHECKBOXWRAP)[0];\r\n if (nodes.length === checkedNodes.length) {\r\n this.changeState(checkBoxEle, 'check', null, true, true);\r\n }\r\n else if (checkedNodes.length > 0 || indeterminateNodes.length > 0) {\r\n this.changeState(checkBoxEle, 'indeterminate', null, true, true);\r\n }\r\n else if (checkedNodes.length === 0) {\r\n this.changeState(checkBoxEle, 'uncheck', null, true, true);\r\n }\r\n var parentUL = closest(element, '.' + PARENTITEM);\r\n if (!isNOU(parentUL)) {\r\n var currentParent = closest(parentUL, '.' + LISTITEM);\r\n this.ensureParentCheckState(currentParent);\r\n }\r\n }\r\n };\r\n TreeView.prototype.ensureChildCheckState = function (element, e) {\r\n if (!isNOU(element)) {\r\n var childElement = select('.' + PARENTITEM, element);\r\n var checkBoxes = void 0;\r\n if (!isNOU(childElement)) {\r\n checkBoxes = selectAll('.' + CHECKBOXWRAP, childElement);\r\n var isChecked = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\r\n var parentCheck = element.getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(INDETERMINATE);\r\n var childCheck = childElement.querySelectorAll('li');\r\n var expandState = childElement.parentElement.getAttribute('aria-expanded');\r\n var checkedState = void 0;\r\n for (var index = 0; index < checkBoxes.length; index++) {\r\n var childId = childCheck[index].getAttribute('data-uid');\r\n if (!isNOU(this.currentLoadData) && !isNOU(getValue(this.fields.isChecked, this.currentLoadData[index]))) {\r\n checkedState = getValue(this.fields.isChecked, this.currentLoadData[index]) ? 'check' : 'uncheck';\r\n if (this.ele !== -1) {\r\n checkedState = isChecked ? 'check' : 'uncheck';\r\n }\r\n if ((checkedState === 'uncheck') && (!isUndefined(this.parentNodeCheck) && this.autoCheck\r\n && this.parentNodeCheck.indexOf(childId) !== -1)) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\r\n checkedState = 'indeterminate';\r\n }\r\n }\r\n else {\r\n var isNodeChecked = checkBoxes[index].getElementsByClassName(CHECKBOXFRAME)[0].classList.contains(CHECK);\r\n if (isChecked) {\r\n checkedState = 'check';\r\n }\r\n else if (isNodeChecked && !this.isLoaded) {\r\n checkedState = 'check';\r\n }\r\n else if (this.checkedNodes.indexOf(childId) !== -1 && this.isLoaded && (parentCheck || isChecked)) {\r\n checkedState = 'check';\r\n }\r\n else if (childCheck[index].classList.contains(CHILD) && (!isUndefined(this.parentNodeCheck) && this.autoCheck\r\n && (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\r\n checkedState = 'indeterminate';\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\r\n }\r\n else if (this.dataType === 1 && (!isUndefined(this.parentNodeCheck) && this.autoCheck &&\r\n (isChecked || parentCheck) && this.parentNodeCheck.indexOf(childId) !== -1)) {\r\n checkedState = 'indeterminate';\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(childId), 1);\r\n }\r\n else {\r\n checkedState = 'uncheck';\r\n }\r\n }\r\n this.changeState(checkBoxes[index], checkedState, e, true, true);\r\n }\r\n }\r\n if (this.autoCheck && this.isLoaded) {\r\n this.updateParentCheckState();\r\n }\r\n }\r\n };\r\n TreeView.prototype.doCheckBoxAction = function (nodes, doCheck) {\r\n var li = selectAll('.' + LISTITEM, this.element);\r\n if (!isNOU(nodes)) {\r\n for (var len = nodes.length; len >= 0; len--) {\r\n var liEle = void 0;\r\n if (nodes.length === 1) {\r\n liEle = this.getElement(nodes[len - 1]);\r\n }\r\n else {\r\n liEle = this.getElement(nodes[len]);\r\n }\r\n if (isNOU(liEle)) {\r\n var node = void 0;\r\n node = nodes[len - nodes.length] ? nodes[len - nodes.length].toString() : nodes[len] ? nodes[len].toString() : null;\r\n if (node !== '' && doCheck && node) {\r\n this.setValidCheckedNode(node);\r\n this.dynamicCheckState(node, doCheck);\r\n }\r\n else if (this.checkedNodes.indexOf(node) !== -1 && node !== '' && !doCheck) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(node), 1);\r\n var childItems = this.getChildNodes(this.treeData, node);\r\n if (childItems) {\r\n for (var i = 0; i < childItems.length; i++) {\r\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(id) !== -1) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\r\n var ele = this.element.querySelector('[data-uid=\"' + id + '\"]');\r\n if (ele) {\r\n this.changeState(ele, 'uncheck', null);\r\n }\r\n }\r\n }\r\n if (this.parentNodeCheck.indexOf(node) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(node), 1);\r\n }\r\n }\r\n if (node) {\r\n this.dynamicCheckState(node, doCheck);\r\n }\r\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\r\n }\r\n continue;\r\n }\r\n var checkBox = select('.' + PARENTITEM + ' .' + CHECKBOXWRAP, liEle);\r\n this.validateCheckNode(checkBox, !doCheck, liEle, null);\r\n }\r\n }\r\n else {\r\n var checkBoxes = selectAll('.' + CHECKBOXWRAP, this.element);\r\n if (this.loadOnDemand) {\r\n for (var index = 0; index < checkBoxes.length; index++) {\r\n this.updateFieldChecked(checkBoxes[index], doCheck);\r\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck', null, null, null, doCheck);\r\n }\r\n }\r\n else {\r\n for (var index = 0; index < checkBoxes.length; index++) {\r\n this.updateFieldChecked(checkBoxes[index], doCheck);\r\n this.changeState(checkBoxes[index], doCheck ? 'check' : 'uncheck');\r\n }\r\n }\r\n }\r\n if (nodes) {\r\n for (var j = 0; j < nodes.length; j++) {\r\n var node = nodes[j] ? nodes[j].toString() : '';\r\n if (!doCheck) {\r\n this.updateField(this.treeData, this.fields, node, 'isChecked', null);\r\n }\r\n }\r\n }\r\n if (this.autoCheck) {\r\n this.updateParentCheckState();\r\n }\r\n };\r\n TreeView.prototype.updateFieldChecked = function (checkbox, doCheck) {\r\n var currLi = closest(checkbox, '.' + LISTITEM);\r\n var id = currLi.getAttribute('data-uid');\r\n var nodeDetails = this.getNodeData(currLi);\r\n if (nodeDetails.isChecked === 'true' && !doCheck) {\r\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\r\n }\r\n };\r\n /**\r\n * Changes the parent and child check state while changing the checkedNodes via setmodel\r\n */\r\n TreeView.prototype.dynamicCheckState = function (node, doCheck) {\r\n if (this.dataType === 1) {\r\n var count = 0;\r\n var resultId = new DataManager(this.treeData).executeLocal(new Query().where(this.fields.id, 'equal', node, true));\r\n if (resultId[0]) {\r\n var id = resultId[0][this.fields.id] ? resultId[0][this.fields.id].toString() : null;\r\n var parent_1 = resultId[0][this.fields.parentID] ? resultId[0][this.fields.parentID].toString() : null;\r\n var parentElement = this.element.querySelector('[data-uid=\"' + parent_1 + '\"]');\r\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\r\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\r\n var element = this.element.querySelector('[data-uid=\"' + id + '\"]');\r\n var childNodes = this.getChildNodes(this.treeData, parent_1);\r\n if (childNodes) {\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(childId) !== -1) {\r\n count++;\r\n }\r\n }\r\n }\r\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (id === node) && this.autoCheck) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && element && (id === node) && !doCheck) {\r\n this.changeState(element, 'uncheck', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) !== -1 && element && (id === node) && doCheck) {\r\n this.changeState(element, 'check', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\r\n && count !== 0) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && !element && parentElement && (id === node) && this.autoCheck\r\n && count === 0) {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n else if (!element && !parentElement && (id === node) && this.autoCheck) {\r\n this.updateIndeterminate(node, doCheck);\r\n }\r\n }\r\n }\r\n else if (this.dataType === 2 || (this.fields.dataSource instanceof DataManager &&\r\n this.isOffline)) {\r\n var id = void 0;\r\n var parentElement = void 0;\r\n var check = void 0;\r\n for (var i = 0; i < this.treeData.length; i++) {\r\n id = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : '';\r\n parentElement = this.element.querySelector('[data-uid=\"' + id + '\"]');\r\n check = parentElement ? select('.' + CHECK, parentElement) : null;\r\n if (this.checkedNodes.indexOf(id) === -1 && parentElement && check && !doCheck) {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n var subChild = getValue(this.fields.child.toString(), this.treeData[i]);\r\n if (subChild) {\r\n this.updateChildIndeterminate(subChild, id, node, doCheck, id);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * updates the parent and child check state while changing the checkedNodes via setmodel for listData\r\n */\r\n TreeView.prototype.updateIndeterminate = function (node, doCheck) {\r\n var indeterminateData = this.getTreeData(node);\r\n var count = 0;\r\n var parent;\r\n if (this.dataType === 1) {\r\n parent = indeterminateData[0][this.fields.parentID] ? indeterminateData[0][this.fields.parentID].toString() : null;\r\n }\r\n var childNodes = this.getChildNodes(this.treeData, parent);\r\n if (childNodes) {\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var childId = childNodes[i][this.fields.id] ? childNodes[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(childId) !== -1) {\r\n count++;\r\n }\r\n }\r\n }\r\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\r\n if (parentElement && doCheck) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count !== 0) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else if (!doCheck && parentElement && this.parentNodeCheck.indexOf(parent) === -1 && count === 0) {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n else if (!parentElement) {\r\n if (!doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent), 1);\r\n }\r\n else if (doCheck && this.checkedNodes.indexOf(parent) === -1 && this.parentNodeCheck.indexOf(parent) === -1) {\r\n this.parentNodeCheck.push(parent);\r\n }\r\n else if (!doCheck && this.checkedNodes.indexOf(parent) !== -1 && this.parentNodeCheck.indexOf(parent) === -1\r\n && count !== 0) {\r\n this.parentNodeCheck.push(parent);\r\n }\r\n this.updateIndeterminate(parent, doCheck);\r\n if (this.checkedNodes.indexOf(parent) !== -1 && !doCheck) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(parent), 1);\r\n }\r\n }\r\n };\r\n /**\r\n * updates the parent and child check state while changing the checkedNodes via setmodel for hierarchical data\r\n */\r\n TreeView.prototype.updateChildIndeterminate = function (subChild, parent, node, doCheck, child) {\r\n var count = 0;\r\n for (var j = 0; j < subChild.length; j++) {\r\n var subId = subChild[j][this.fields.id] ? subChild[j][this.fields.id].toString() : '';\r\n if (this.checkedNodes.indexOf(subId) !== -1) {\r\n count++;\r\n }\r\n var parentElement = this.element.querySelector('[data-uid=\"' + parent + '\"]');\r\n var indeterminate = parentElement ? select('.' + INDETERMINATE, parentElement) : null;\r\n var check = parentElement ? select('.' + CHECK, parentElement) : null;\r\n var element = this.element.querySelector('[data-uid=\"' + subId + '\"]');\r\n var childElementCheck = element ? select('.' + CHECK, element) : null;\r\n if (this.checkedNodes.indexOf(node) !== -1 && parentElement && (subId === node) && this.autoCheck) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && parentElement && !element && (subId === node) && !doCheck) {\r\n if (this.autoCheck) {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n else {\r\n if (count !== 0) {\r\n this.changeState(parentElement, 'indeterminate', null);\r\n }\r\n else {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n }\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && element && (subId === node) && !doCheck) {\r\n this.changeState(element, 'uncheck', null);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && indeterminate && (subId === node) && this.autoCheck && count === 0\r\n && !doCheck) {\r\n indeterminate.classList.remove(INDETERMINATE);\r\n }\r\n else if (this.checkedNodes.indexOf(node) === -1 && !element && check && (subId === node) && count === 0) {\r\n this.changeState(parentElement, 'uncheck', null);\r\n }\r\n else if (this.checkedNodes.indexOf(subId) === -1 && element && childElementCheck && count === 0) {\r\n this.changeState(element, 'uncheck', null);\r\n }\r\n else if (!element && !parentElement && (subId === node) || (this.parentNodeCheck.indexOf(parent) !== -1) && this.autoCheck) {\r\n var childElement = this.element.querySelector('[data-uid=\"' + child + '\"]');\r\n if (doCheck && count !== 0) {\r\n this.changeState(childElement, 'indeterminate', null);\r\n }\r\n else if (doCheck && count === subChild.length && this.checkedNodes.indexOf(parent) === -1) {\r\n this.checkedNodes.push(parent);\r\n }\r\n else if (!doCheck && count === 0 && this.parentNodeCheck.indexOf(parent) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(parent));\r\n }\r\n if (this.parentNodeCheck.indexOf(parent) === -1) {\r\n this.parentNodeCheck.push(parent);\r\n }\r\n }\r\n var innerChild = getValue(this.fields.child.toString(), subChild[j]);\r\n if (innerChild) {\r\n this.updateChildIndeterminate(innerChild, subId, node, doCheck, child);\r\n }\r\n }\r\n };\r\n TreeView.prototype.changeState = function (wrapper, state, e, isPrevent, isAdd, doCheck) {\r\n var _this = this;\r\n var eventArgs;\r\n var currLi = closest(wrapper, '.' + LISTITEM);\r\n if (wrapper === currLi) {\r\n wrapper = select('.' + CHECKBOXWRAP, currLi);\r\n }\r\n if (!isPrevent) {\r\n this.checkActionNodes = [];\r\n eventArgs = this.getCheckEvent(currLi, state, e);\r\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.nodeCheckAction(wrapper, state, currLi, observedArgs, e, isPrevent, isAdd, doCheck);\r\n }\r\n });\r\n }\r\n else {\r\n this.nodeCheckAction(wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck);\r\n }\r\n };\r\n TreeView.prototype.nodeCheckAction = function (wrapper, state, currLi, eventArgs, e, isPrevent, isAdd, doCheck) {\r\n var ariaState;\r\n var frameSpan = wrapper.getElementsByClassName(CHECKBOXFRAME)[0];\r\n if (state === 'check' && !frameSpan.classList.contains(CHECK)) {\r\n frameSpan.classList.remove(INDETERMINATE);\r\n frameSpan.classList.add(CHECK);\r\n this.addCheck(currLi);\r\n ariaState = 'true';\r\n }\r\n else if (state === 'uncheck' && (frameSpan.classList.contains(CHECK) || frameSpan.classList.contains(INDETERMINATE))) {\r\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\r\n this.removeCheck(currLi);\r\n ariaState = 'false';\r\n }\r\n else if (state === 'indeterminate' && this.autoCheck) {\r\n frameSpan.classList.remove(CHECK);\r\n frameSpan.classList.add(INDETERMINATE);\r\n this.removeCheck(currLi);\r\n ariaState = 'mixed';\r\n }\r\n ariaState = state === 'check' ? 'true' : state === 'uncheck' ? 'false' : ariaState;\r\n if (!isNOU(ariaState)) {\r\n wrapper.setAttribute('aria-checked', ariaState);\r\n }\r\n if (isAdd) {\r\n var data = [].concat([], this.checkActionNodes);\r\n eventArgs = this.getCheckEvent(currLi, state, e);\r\n if (isUndefined(isPrevent)) {\r\n eventArgs.data = data;\r\n }\r\n }\r\n if (doCheck !== undefined) {\r\n this.ensureStateChange(currLi, doCheck);\r\n }\r\n if (!isPrevent) {\r\n if (!isNOU(ariaState)) {\r\n wrapper.setAttribute('aria-checked', ariaState);\r\n eventArgs.data[0].checked = ariaState;\r\n this.trigger('nodeChecked', eventArgs);\r\n this.checkActionNodes = [];\r\n }\r\n }\r\n };\r\n TreeView.prototype.addCheck = function (liEle) {\r\n var id = liEle.getAttribute('data-uid');\r\n if (!isNOU(id) && this.checkedNodes.indexOf(id) === -1) {\r\n this.checkedNodes.push(id);\r\n }\r\n };\r\n TreeView.prototype.removeCheck = function (liEle) {\r\n var index = this.checkedNodes.indexOf(liEle.getAttribute('data-uid'));\r\n if (index > -1) {\r\n this.checkedNodes.splice(index, 1);\r\n }\r\n };\r\n TreeView.prototype.getCheckEvent = function (currLi, action, e) {\r\n this.checkActionNodes.push(this.getNodeData(currLi));\r\n var nodeData = this.checkActionNodes;\r\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, data: nodeData };\r\n };\r\n TreeView.prototype.finalize = function () {\r\n var firstUl = select('.' + PARENTITEM, this.element);\r\n if (!isNullOrUndefined(firstUl)) {\r\n firstUl.setAttribute('role', treeAriaAttr.treeRole);\r\n this.setMultiSelect(this.allowMultiSelection);\r\n var firstNode = select('.' + LISTITEM, this.element);\r\n if (firstNode) {\r\n addClass([firstNode], FOCUS);\r\n this.updateIdAttr(null, firstNode);\r\n }\r\n this.renderReactTemplates();\r\n this.hasPid = this.rootData[0] ? this.rootData[0].hasOwnProperty(this.fields.parentID) : false;\r\n this.doExpandAction();\r\n }\r\n };\r\n TreeView.prototype.doExpandAction = function () {\r\n var eUids = this.expandedNodes;\r\n if (this.isInitalExpand && eUids.length > 0) {\r\n this.setProperties({ expandedNodes: [] }, true);\r\n /* eslint-disable */\r\n if (this.fields.dataSource instanceof DataManager) {\r\n this.expandGivenNodes(eUids);\r\n }\r\n else {\r\n for (var i = 0; i < eUids.length; i++) {\r\n var eNode = select('[data-uid=\"' + eUids[i] + '\"]', this.element);\r\n if (!isNOU(eNode)) {\r\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\r\n if (!isNOU(icon)) {\r\n this.expandAction(eNode, icon, null);\r\n }\r\n }\r\n else {\r\n if (eUids[i] && this.expandChildren.indexOf(eUids[i]) === -1) {\r\n this.expandChildren.push(eUids[i].toString());\r\n }\r\n continue;\r\n }\r\n }\r\n this.afterFinalized();\r\n }\r\n }\r\n else {\r\n this.afterFinalized();\r\n }\r\n };\r\n TreeView.prototype.expandGivenNodes = function (arr) {\r\n var proxy = this;\r\n this.expandCallback(arr[this.index], function () {\r\n proxy.index++;\r\n if (proxy.index < arr.length) {\r\n proxy.expandGivenNodes(arr);\r\n }\r\n else {\r\n proxy.afterFinalized();\r\n }\r\n });\r\n };\r\n TreeView.prototype.expandCallback = function (eUid, callback) {\r\n var eNode = select('[data-uid=\"' + eUid + '\"]', this.element);\r\n if (!isNOU(eNode)) {\r\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, eNode));\r\n if (!isNOU(icon)) {\r\n this.expandAction(eNode, icon, null, false, callback);\r\n }\r\n else {\r\n callback();\r\n }\r\n }\r\n else {\r\n callback();\r\n }\r\n };\r\n TreeView.prototype.afterFinalized = function () {\r\n this.doSelectionAction();\r\n this.updateCheckedProp();\r\n this.isAnimate = true;\r\n this.isInitalExpand = false;\r\n if (!this.isLoaded || this.isFieldChange) {\r\n var eventArgs = { data: this.treeData };\r\n this.trigger('dataBound', eventArgs);\r\n }\r\n this.isLoaded = true;\r\n };\r\n TreeView.prototype.doSelectionAction = function () {\r\n var sNodes = selectAll('.' + SELECTED, this.element);\r\n var sUids = this.selectedNodes;\r\n if (sUids.length > 0) {\r\n this.setProperties({ selectedNodes: [] }, true);\r\n for (var i = 0; i < sUids.length; i++) {\r\n var sNode = select('[data-uid=\"' + sUids[i] + '\"]', this.element);\r\n if (sNode && !(sNode.classList.contains('e-active'))) {\r\n this.selectNode(sNode, null, true);\r\n }\r\n else {\r\n this.selectedNodes.push(sUids[i]);\r\n }\r\n if (!this.allowMultiSelection) {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n this.selectGivenNodes(sNodes);\r\n }\r\n removeClass(sNodes, SELECTED);\r\n };\r\n TreeView.prototype.selectGivenNodes = function (sNodes) {\r\n for (var i = 0; i < sNodes.length; i++) {\r\n if (!sNodes[i].classList.contains('e-disable')) {\r\n this.selectNode(sNodes[i], null, true);\r\n }\r\n if (!this.allowMultiSelection) {\r\n break;\r\n }\r\n }\r\n };\r\n TreeView.prototype.clickHandler = function (event) {\r\n var target = event.originalEvent.target;\r\n EventHandler.remove(this.element, 'contextmenu', this.preventContextMenu);\r\n if (!target || this.dragStartAction) {\r\n return;\r\n }\r\n else {\r\n var classList = target.classList;\r\n var li = closest(target, '.' + LISTITEM);\r\n if (!li) {\r\n return;\r\n }\r\n else if (event.originalEvent.which !== 3) {\r\n var rippleElement = select('.' + RIPPLEELMENT, li);\r\n var rippleIcons = select('.' + ICON, li);\r\n this.removeHover();\r\n this.setFocusElement(li);\r\n if (this.showCheckBox && !li.classList.contains('e-disable')) {\r\n var checkWrapper = closest(target, '.' + CHECKBOXWRAP);\r\n if (!isNOU(checkWrapper)) {\r\n var checkElement = select('.' + CHECKBOXFRAME, checkWrapper);\r\n this.validateCheckNode(checkWrapper, checkElement.classList.contains(CHECK), li, event.originalEvent);\r\n this.triggerClickEvent(event.originalEvent, li);\r\n return;\r\n }\r\n }\r\n if (classList.contains(EXPANDABLE)) {\r\n this.expandAction(li, target, event);\r\n }\r\n else if (classList.contains(COLLAPSIBLE)) {\r\n this.collapseNode(li, target, event);\r\n }\r\n else if (rippleElement && rippleIcons) {\r\n if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(EXPANDABLE)) {\r\n this.expandAction(li, rippleIcons, event);\r\n }\r\n else if (rippleIcons.classList.contains(RIPPLE) && rippleIcons.classList.contains(COLLAPSIBLE)) {\r\n this.collapseNode(li, rippleIcons, event);\r\n }\r\n else if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\r\n this.toggleSelect(li, event.originalEvent, false);\r\n }\r\n }\r\n else {\r\n if (!classList.contains(PARENTITEM) && !classList.contains(LISTITEM)) {\r\n this.toggleSelect(li, event.originalEvent, false);\r\n }\r\n }\r\n }\r\n this.triggerClickEvent(event.originalEvent, li);\r\n }\r\n };\r\n TreeView.prototype.nodeCheckedEvent = function (wrapper, isCheck, e) {\r\n var currLi = closest(wrapper, '.' + LISTITEM);\r\n var eventArgs = this.getCheckEvent(wrapper, isCheck ? 'uncheck' : 'check', e);\r\n eventArgs.data = eventArgs.data.splice(0, eventArgs.data.length - 1);\r\n this.trigger('nodeChecked', eventArgs);\r\n };\r\n TreeView.prototype.triggerClickEvent = function (e, li) {\r\n var eventArgs = {\r\n event: e,\r\n node: li,\r\n };\r\n this.trigger('nodeClicked', eventArgs);\r\n };\r\n TreeView.prototype.expandNode = function (currLi, icon, loaded) {\r\n var _this = this;\r\n this.renderReactTemplates();\r\n if (icon.classList.contains(LOAD)) {\r\n this.hideSpinner(icon);\r\n }\r\n if (!this.initialRender) {\r\n icon.classList.add('interaction');\r\n }\r\n if (loaded !== true || (loaded === true && currLi.classList.contains('e-expanded'))) {\r\n if (this.preventExpand !== true) {\r\n removeClass([icon], EXPANDABLE);\r\n addClass([icon], COLLAPSIBLE);\r\n var start_1 = 0;\r\n var end_1 = 0;\r\n var proxy_1 = this;\r\n var ul_1 = select('.' + PARENTITEM, currLi);\r\n var liEle_1 = currLi;\r\n this.setHeight(liEle_1, ul_1);\r\n var activeElement_1 = select('.' + LISTITEM + '.' + ACTIVE, currLi);\r\n if (this.isAnimate && !this.isRefreshed) {\r\n this.aniObj.animate(ul_1, {\r\n name: this.animation.expand.effect,\r\n duration: this.animation.expand.duration,\r\n timingFunction: this.animation.expand.easing,\r\n begin: function (args) {\r\n liEle_1.style.overflow = 'hidden';\r\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\r\n activeElement_1.classList.add(ITEM_ANIMATION_ACTIVE);\r\n }\r\n start_1 = liEle_1.offsetHeight;\r\n end_1 = select('.' + TEXTWRAP, currLi).offsetHeight;\r\n },\r\n progress: function (args) {\r\n args.element.style.display = 'block';\r\n proxy_1.animateHeight(args, start_1, end_1);\r\n },\r\n end: function (args) {\r\n args.element.style.display = 'block';\r\n if (!isNullOrUndefined(activeElement_1) && activeElement_1 instanceof HTMLElement) {\r\n activeElement_1.classList.remove(ITEM_ANIMATION_ACTIVE);\r\n }\r\n _this.expandedNode(liEle_1, ul_1, icon);\r\n }\r\n });\r\n }\r\n else {\r\n this.expandedNode(liEle_1, ul_1, icon);\r\n }\r\n }\r\n }\r\n else {\r\n var ul = select('.' + PARENTITEM, currLi);\r\n ul.style.display = 'none';\r\n if (this.fields.dataSource instanceof DataManager === true) {\r\n this.preventExpand = false;\r\n }\r\n }\r\n if (this.initialRender) {\r\n icon.classList.add('interaction');\r\n }\r\n };\r\n TreeView.prototype.expandedNode = function (currLi, ul, icon) {\r\n ul.style.display = 'block';\r\n currLi.style.display = 'block';\r\n currLi.style.overflow = '';\r\n currLi.style.height = '';\r\n removeClass([icon], PROCESS);\r\n this.addExpand(currLi);\r\n if (this.isLoaded && this.expandArgs && !this.isRefreshed) {\r\n this.expandArgs = this.getExpandEvent(currLi, null);\r\n this.trigger('nodeExpanded', this.expandArgs);\r\n }\r\n };\r\n TreeView.prototype.addExpand = function (liEle) {\r\n liEle.setAttribute('aria-expanded', 'true');\r\n removeClass([liEle], NODECOLLAPSED);\r\n var id = liEle.getAttribute('data-uid');\r\n if (!isNOU(id) && this.expandedNodes.indexOf(id) === -1) {\r\n this.expandedNodes.push(id);\r\n }\r\n };\r\n TreeView.prototype.collapseNode = function (currLi, icon, e) {\r\n var _this = this;\r\n if (icon.classList.contains(PROCESS)) {\r\n return;\r\n }\r\n else {\r\n addClass([icon], PROCESS);\r\n }\r\n var colArgs;\r\n if (this.isLoaded) {\r\n colArgs = this.getExpandEvent(currLi, e);\r\n this.trigger('nodeCollapsing', colArgs, function (observedArgs) {\r\n if (observedArgs.cancel) {\r\n removeClass([icon], PROCESS);\r\n }\r\n else {\r\n _this.nodeCollapseAction(currLi, icon, observedArgs);\r\n }\r\n });\r\n }\r\n else {\r\n this.nodeCollapseAction(currLi, icon, colArgs);\r\n }\r\n };\r\n TreeView.prototype.nodeCollapseAction = function (currLi, icon, colArgs) {\r\n var _this = this;\r\n removeClass([icon], COLLAPSIBLE);\r\n addClass([icon], EXPANDABLE);\r\n var start = 0;\r\n var end = 0;\r\n var proxy = this;\r\n var ul = select('.' + PARENTITEM, currLi);\r\n var liEle = currLi;\r\n var activeElement = select('.' + LISTITEM + '.' + ACTIVE, currLi);\r\n if (this.isAnimate) {\r\n this.aniObj.animate(ul, {\r\n name: this.animation.collapse.effect,\r\n duration: this.animation.collapse.duration,\r\n timingFunction: this.animation.collapse.easing,\r\n begin: function (args) {\r\n liEle.style.overflow = 'hidden';\r\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\r\n activeElement.classList.add(ITEM_ANIMATION_ACTIVE);\r\n }\r\n start = select('.' + TEXTWRAP, currLi).offsetHeight;\r\n end = liEle.offsetHeight;\r\n },\r\n progress: function (args) {\r\n proxy.animateHeight(args, start, end);\r\n },\r\n end: function (args) {\r\n args.element.style.display = 'none';\r\n if (!isNullOrUndefined(activeElement) && activeElement instanceof HTMLElement) {\r\n activeElement.classList.remove(ITEM_ANIMATION_ACTIVE);\r\n }\r\n _this.collapsedNode(liEle, ul, icon, colArgs);\r\n }\r\n });\r\n }\r\n else {\r\n this.collapsedNode(liEle, ul, icon, colArgs);\r\n }\r\n };\r\n TreeView.prototype.collapsedNode = function (liEle, ul, icon, colArgs) {\r\n ul.style.display = 'none';\r\n liEle.style.overflow = '';\r\n liEle.style.height = '';\r\n removeClass([icon], PROCESS);\r\n this.removeExpand(liEle);\r\n if (this.isLoaded) {\r\n colArgs = this.getExpandEvent(liEle, null);\r\n this.trigger('nodeCollapsed', colArgs);\r\n }\r\n };\r\n TreeView.prototype.removeExpand = function (liEle, toRemove) {\r\n if (toRemove) {\r\n liEle.removeAttribute('aria-expanded');\r\n }\r\n else {\r\n this.disableExpandAttr(liEle);\r\n }\r\n var index = this.expandedNodes.indexOf(liEle.getAttribute('data-uid'));\r\n if (index > -1) {\r\n this.expandedNodes.splice(index, 1);\r\n }\r\n };\r\n TreeView.prototype.disableExpandAttr = function (liEle) {\r\n liEle.setAttribute('aria-expanded', 'false');\r\n addClass([liEle], NODECOLLAPSED);\r\n };\r\n TreeView.prototype.setHeight = function (currLi, ul) {\r\n ul.style.display = 'block';\r\n ul.style.visibility = 'hidden';\r\n currLi.style.height = currLi.offsetHeight + 'px';\r\n ul.style.display = 'none';\r\n ul.style.visibility = '';\r\n };\r\n TreeView.prototype.animateHeight = function (args, start, end) {\r\n var remaining = (args.duration - args.timeStamp) / args.duration;\r\n var currentHeight = (end - start) * remaining + start;\r\n args.element.parentElement.style.height = currentHeight + 'px';\r\n };\r\n TreeView.prototype.renderChildNodes = function (parentLi, expandChild, callback, loaded) {\r\n var _this = this;\r\n var eicon = select('div.' + ICON, parentLi);\r\n if (isNOU(eicon)) {\r\n return;\r\n }\r\n this.showSpinner(eicon);\r\n var childItems;\r\n /* eslint-disable */\r\n if (this.fields.dataSource instanceof DataManager) {\r\n var level = this.parents(parentLi, '.' + PARENTITEM).length;\r\n var mapper_2 = this.getChildFields(this.fields, level, 1);\r\n if (isNOU(mapper_2) || isNOU(mapper_2.dataSource)) {\r\n detach(eicon);\r\n this.removeExpand(parentLi, true);\r\n return;\r\n }\r\n this.treeList.push('false');\r\n if (this.fields.dataSource instanceof DataManager && this.isOffline) {\r\n this.treeList.pop();\r\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\r\n this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\r\n }\r\n else {\r\n mapper_2.dataSource.executeQuery(this.getQuery(mapper_2, parentLi.getAttribute('data-uid'))).then(function (e) {\r\n _this.treeList.pop();\r\n childItems = e.result;\r\n if (_this.dataType === 1) {\r\n _this.dataType = 2;\r\n }\r\n _this.loadChild(childItems, mapper_2, eicon, parentLi, expandChild, callback, loaded);\r\n }).catch(function (e) {\r\n _this.trigger('actionFailure', { error: e });\r\n });\r\n }\r\n }\r\n else {\r\n childItems = this.getChildNodes(this.treeData, parentLi.getAttribute('data-uid'));\r\n this.currentLoadData = this.getSortedData(childItems);\r\n if (isNOU(childItems) || childItems.length === 0) {\r\n detach(eicon);\r\n this.removeExpand(parentLi, true);\r\n return;\r\n }\r\n else {\r\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\r\n parentLi.appendChild(ListBase.createList(this.createElement, this.currentLoadData, this.listBaseOption));\r\n this.expandNode(parentLi, eicon, loaded);\r\n this.setSelectionForChildNodes(childItems);\r\n this.ensureCheckNode(parentLi);\r\n this.finalizeNode(parentLi);\r\n this.disableTreeNodes(childItems);\r\n this.renderSubChild(parentLi, expandChild, loaded);\r\n }\r\n }\r\n };\r\n TreeView.prototype.loadChild = function (childItems, mapper, eicon, parentLi, expandChild, callback, loaded) {\r\n this.currentLoadData = childItems;\r\n if (isNOU(childItems) || childItems.length === 0) {\r\n detach(eicon);\r\n this.removeExpand(parentLi, true);\r\n }\r\n else {\r\n this.updateListProp(mapper);\r\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\r\n var id = parentLi.getAttribute('data-uid');\r\n var nodeData = this.getNodeObject(id);\r\n setValue('child', childItems, nodeData);\r\n }\r\n this.listBaseOption.ariaAttributes.level = parseFloat(parentLi.getAttribute('aria-level')) + 1;\r\n parentLi.appendChild(ListBase.createList(this.createElement, childItems, this.listBaseOption));\r\n this.expandNode(parentLi, eicon, loaded);\r\n this.setSelectionForChildNodes(childItems);\r\n this.ensureCheckNode(parentLi);\r\n this.finalizeNode(parentLi);\r\n this.disableTreeNodes(childItems);\r\n this.renderSubChild(parentLi, expandChild, loaded);\r\n }\r\n if (callback) {\r\n callback();\r\n }\r\n if (this.treeList.length === 0 && !this.isLoaded) {\r\n this.finalize();\r\n }\r\n };\r\n TreeView.prototype.disableTreeNodes = function (childItems) {\r\n var i = 0;\r\n while (i < childItems.length) {\r\n var id = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\r\n if (this.disableNode !== undefined && this.disableNode.indexOf(id) !== -1) {\r\n this.doDisableAction([id]);\r\n }\r\n i++;\r\n }\r\n };\r\n /**\r\n * Sets the child Item in selectedState while rendering the child node\r\n */\r\n TreeView.prototype.setSelectionForChildNodes = function (nodes) {\r\n var i;\r\n for (i = 0; i < nodes.length; i++) {\r\n var id = nodes[i][this.fields.id] ? nodes[i][this.fields.id].toString() : null;\r\n if (this.selectedNodes !== undefined && this.selectedNodes.indexOf(id) !== -1) {\r\n this.doSelectionAction();\r\n }\r\n }\r\n };\r\n TreeView.prototype.ensureCheckNode = function (element) {\r\n if (this.showCheckBox) {\r\n this.ele = (this.checkedElement) ? this.checkedElement.indexOf(element.getAttribute('data-uid')) : null;\r\n if (this.autoCheck) {\r\n this.ensureChildCheckState(element);\r\n this.ensureParentCheckState(element);\r\n }\r\n }\r\n this.currentLoadData = null;\r\n };\r\n TreeView.prototype.getFields = function (mapper, nodeLevel, dataLevel) {\r\n if (nodeLevel === dataLevel) {\r\n return mapper;\r\n }\r\n else {\r\n return this.getFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\r\n }\r\n };\r\n TreeView.prototype.getChildFields = function (mapper, nodeLevel, dataLevel) {\r\n var childData;\r\n if (nodeLevel === dataLevel) {\r\n return this.getChildMapper(mapper);\r\n }\r\n else {\r\n return this.getChildFields(this.getChildMapper(mapper), nodeLevel, dataLevel + 1);\r\n }\r\n };\r\n TreeView.prototype.getChildMapper = function (mapper) {\r\n return (typeof mapper.child === 'string' || isNOU(mapper.child)) ? mapper : mapper.child;\r\n };\r\n TreeView.prototype.getChildNodes = function (obj, parentId, isRoot) {\r\n if (isRoot === void 0) { isRoot = false; }\r\n var childNodes;\r\n if (isNOU(obj)) {\r\n return childNodes;\r\n }\r\n else if (this.dataType === 1) {\r\n return this.getChildGroup(this.groupedData, parentId, isRoot);\r\n }\r\n else {\r\n if (typeof this.fields.child === 'string') {\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var dataId = getValue(this.fields.id, obj[i]);\r\n if (dataId && dataId.toString() === parentId) {\r\n return getValue(this.fields.child, obj[i]);\r\n }\r\n else if (!isNOU(getValue(this.fields.child, obj[i]))) {\r\n childNodes = this.getChildNodes(getValue(this.fields.child, obj[i]), parentId);\r\n if (childNodes !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return childNodes;\r\n };\r\n TreeView.prototype.getChildGroup = function (data, parentId, isRoot) {\r\n var childNodes;\r\n if (isNOU(data)) {\r\n return childNodes;\r\n }\r\n for (var i = 0, objlen = data.length; i < objlen; i++) {\r\n if (!isNOU(data[i][0]) && !isNOU(getValue(this.fields.parentID, data[i][0]))) {\r\n if (getValue(this.fields.parentID, data[i][0]).toString() === parentId) {\r\n return data[i];\r\n }\r\n }\r\n else if (isRoot) {\r\n return data[i];\r\n }\r\n else {\r\n return [];\r\n }\r\n }\r\n return childNodes;\r\n };\r\n TreeView.prototype.renderSubChild = function (element, expandChild, loaded) {\r\n if (expandChild) {\r\n var cIcons = selectAll('.' + EXPANDABLE, element);\r\n for (var i = 0, len = cIcons.length; i < len; i++) {\r\n var icon = cIcons[i];\r\n if (element.querySelector('.e-icons') !== cIcons[i]) {\r\n var curLi = closest(icon, '.' + LISTITEM);\r\n this.expandArgs = this.getExpandEvent(curLi, null);\r\n if (loaded !== true) {\r\n this.trigger('nodeExpanding', this.expandArgs);\r\n }\r\n this.renderChildNodes(curLi, expandChild, null, loaded);\r\n }\r\n }\r\n }\r\n };\r\n TreeView.prototype.toggleSelect = function (li, e, multiSelect) {\r\n if (!li.classList.contains('e-disable')) {\r\n if (this.allowMultiSelection && ((e && e.ctrlKey) || multiSelect) && this.isActive(li)) {\r\n this.unselectNode(li, e);\r\n }\r\n else {\r\n this.selectNode(li, e, multiSelect);\r\n }\r\n }\r\n };\r\n TreeView.prototype.isActive = function (li) {\r\n return li.classList.contains(ACTIVE) ? true : false;\r\n };\r\n TreeView.prototype.selectNode = function (li, e, multiSelect) {\r\n var _this = this;\r\n if (isNOU(li) || (!this.allowMultiSelection && this.isActive(li) && !isNOU(e))) {\r\n this.setFocusElement(li);\r\n return;\r\n }\r\n var eventArgs;\r\n if (this.isLoaded) {\r\n eventArgs = this.getSelectEvent(li, 'select', e);\r\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.nodeSelectAction(li, e, observedArgs, multiSelect);\r\n }\r\n });\r\n }\r\n else {\r\n this.nodeSelectAction(li, e, eventArgs, multiSelect);\r\n }\r\n };\r\n TreeView.prototype.nodeSelectAction = function (li, e, eventArgs, multiSelect) {\r\n if (!this.allowMultiSelection || (!multiSelect && (!e || (e && !e.ctrlKey)))) {\r\n this.removeSelectAll();\r\n }\r\n if (this.allowMultiSelection && e && e.shiftKey) {\r\n if (!this.startNode) {\r\n this.startNode = li;\r\n }\r\n var startIndex = this.liList.indexOf(this.startNode);\r\n var endIndex = this.liList.indexOf(li);\r\n if (startIndex > endIndex) {\r\n var temp = startIndex;\r\n startIndex = endIndex;\r\n endIndex = temp;\r\n }\r\n for (var i = startIndex; i <= endIndex; i++) {\r\n var currNode = this.liList[i];\r\n if (isVisible(currNode) && !currNode.classList.contains('e-disable')) {\r\n this.addSelect(currNode);\r\n }\r\n }\r\n }\r\n else {\r\n this.startNode = li;\r\n this.addSelect(li);\r\n }\r\n this.setFocusElement(li);\r\n if (this.isLoaded) {\r\n eventArgs.nodeData = this.getNodeData(li);\r\n this.trigger('nodeSelected', eventArgs);\r\n }\r\n };\r\n TreeView.prototype.unselectNode = function (li, e) {\r\n var _this = this;\r\n var eventArgs;\r\n if (this.isLoaded) {\r\n eventArgs = this.getSelectEvent(li, 'un-select', e);\r\n this.trigger('nodeSelecting', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.nodeUnselectAction(li, observedArgs);\r\n }\r\n });\r\n }\r\n else {\r\n this.nodeUnselectAction(li, eventArgs);\r\n }\r\n };\r\n TreeView.prototype.nodeUnselectAction = function (li, eventArgs) {\r\n this.removeSelect(li);\r\n this.setFocusElement(li);\r\n if (this.isLoaded) {\r\n eventArgs.nodeData = this.getNodeData(li);\r\n this.trigger('nodeSelected', eventArgs);\r\n }\r\n };\r\n TreeView.prototype.setFocusElement = function (li) {\r\n if (!isNOU(li)) {\r\n var focusedNode = this.getFocusedNode();\r\n if (focusedNode) {\r\n removeClass([focusedNode], FOCUS);\r\n }\r\n addClass([li], FOCUS);\r\n this.updateIdAttr(focusedNode, li);\r\n }\r\n };\r\n TreeView.prototype.addSelect = function (liEle) {\r\n liEle.setAttribute('aria-selected', 'true');\r\n addClass([liEle], ACTIVE);\r\n var id = liEle.getAttribute('data-uid');\r\n if (!isNOU(id) && this.selectedNodes.indexOf(id) === -1) {\r\n this.selectedNodes.push(id);\r\n }\r\n };\r\n TreeView.prototype.removeSelect = function (liEle) {\r\n if (this.allowMultiSelection) {\r\n liEle.setAttribute('aria-selected', 'false');\r\n }\r\n else {\r\n liEle.removeAttribute('aria-selected');\r\n }\r\n removeClass([liEle], ACTIVE);\r\n var index = this.selectedNodes.indexOf(liEle.getAttribute('data-uid'));\r\n if (index > -1) {\r\n this.selectedNodes.splice(index, 1);\r\n }\r\n };\r\n TreeView.prototype.removeSelectAll = function () {\r\n var selectedLI = this.element.querySelectorAll('.' + ACTIVE);\r\n for (var _i = 0, selectedLI_1 = selectedLI; _i < selectedLI_1.length; _i++) {\r\n var ele = selectedLI_1[_i];\r\n if (this.allowMultiSelection) {\r\n ele.setAttribute('aria-selected', 'false');\r\n }\r\n else {\r\n ele.removeAttribute('aria-selected');\r\n }\r\n }\r\n removeClass(selectedLI, ACTIVE);\r\n this.setProperties({ selectedNodes: [] }, true);\r\n };\r\n TreeView.prototype.getSelectEvent = function (currLi, action, e) {\r\n var nodeData = this.getNodeData(currLi);\r\n return { action: action, cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData };\r\n };\r\n TreeView.prototype.setExpandOnType = function () {\r\n this.expandOnType = (this.expandOn === 'Auto') ? (Browser.isDevice ? 'Click' : 'DblClick') : this.expandOn;\r\n };\r\n TreeView.prototype.expandHandler = function (e) {\r\n var target = e.originalEvent.target;\r\n if (!target || target.classList.contains(INPUT) || target.classList.contains(ROOT) ||\r\n target.classList.contains(PARENTITEM) || target.classList.contains(LISTITEM) ||\r\n target.classList.contains(ICON) || this.showCheckBox && closest(target, '.' + CHECKBOXWRAP)) {\r\n return;\r\n }\r\n else {\r\n this.expandCollapseAction(closest(target, '.' + LISTITEM), e);\r\n }\r\n };\r\n TreeView.prototype.expandCollapseAction = function (currLi, e) {\r\n var icon = select('div.' + ICON, currLi);\r\n if (!icon || icon.classList.contains(PROCESS)) {\r\n return;\r\n }\r\n else {\r\n var classList = icon.classList;\r\n if (classList.contains(EXPANDABLE)) {\r\n this.expandAction(currLi, icon, e);\r\n }\r\n else if (classList.contains(COLLAPSIBLE)) {\r\n this.collapseNode(currLi, icon, e);\r\n }\r\n }\r\n };\r\n TreeView.prototype.expandAction = function (currLi, icon, e, expandChild, callback) {\r\n var _this = this;\r\n if (icon.classList.contains(PROCESS)) {\r\n return;\r\n }\r\n else {\r\n addClass([icon], PROCESS);\r\n }\r\n if (this.isLoaded && !this.isRefreshed) {\r\n this.expandArgs = this.getExpandEvent(currLi, e);\r\n this.trigger('nodeExpanding', this.expandArgs, function (observedArgs) {\r\n if (observedArgs.cancel) {\r\n removeClass([icon], PROCESS);\r\n }\r\n else {\r\n _this.nodeExpandAction(currLi, icon, expandChild, callback);\r\n }\r\n });\r\n }\r\n else {\r\n this.nodeExpandAction(currLi, icon, expandChild, callback);\r\n }\r\n };\r\n TreeView.prototype.nodeExpandAction = function (currLi, icon, expandChild, callback) {\r\n var ul = select('.' + PARENTITEM, currLi);\r\n if (ul && ul.nodeName === 'UL') {\r\n this.expandNode(currLi, icon);\r\n }\r\n else {\r\n this.renderChildNodes(currLi, expandChild, callback);\r\n var liEles = selectAll('.' + LISTITEM, currLi);\r\n for (var i = 0; i < liEles.length; i++) {\r\n var id = this.getId(liEles[i]);\r\n if (this.expandChildren.indexOf(id) !== -1 && this.expandChildren !== undefined) {\r\n var icon_1 = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEles[i]));\r\n if (!isNOU(icon_1)) {\r\n this.expandAction(liEles[i], icon_1, null);\r\n }\r\n this.expandChildren.splice(this.expandChildren.indexOf(id), 1);\r\n }\r\n }\r\n }\r\n };\r\n TreeView.prototype.keyActionHandler = function (e) {\r\n var _this = this;\r\n var target = e.target;\r\n var focusedNode = this.getFocusedNode();\r\n if (target && target.classList.contains(INPUT)) {\r\n var inpEle = target;\r\n if (e.action === 'enter') {\r\n inpEle.blur();\r\n this.element.focus();\r\n addClass([focusedNode], HOVER);\r\n }\r\n else if (e.action === 'escape') {\r\n inpEle.value = this.oldText;\r\n inpEle.blur();\r\n this.element.focus();\r\n addClass([focusedNode], HOVER);\r\n }\r\n return;\r\n }\r\n e.preventDefault();\r\n var eventArgs = {\r\n cancel: false,\r\n event: e,\r\n node: focusedNode,\r\n };\r\n this.trigger('keyPress', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n switch (e.action) {\r\n case 'space':\r\n if (_this.showCheckBox) {\r\n _this.checkNode(e);\r\n }\r\n break;\r\n case 'moveRight':\r\n _this.openNode(_this.enableRtl ? false : true, e);\r\n break;\r\n case 'moveLeft':\r\n _this.openNode(_this.enableRtl ? true : false, e);\r\n break;\r\n case 'shiftDown':\r\n _this.shiftKeySelect(true, e);\r\n break;\r\n case 'moveDown':\r\n case 'ctrlDown':\r\n case 'csDown':\r\n _this.navigateNode(true);\r\n break;\r\n case 'shiftUp':\r\n _this.shiftKeySelect(false, e);\r\n break;\r\n case 'moveUp':\r\n case 'ctrlUp':\r\n case 'csUp':\r\n _this.navigateNode(false);\r\n break;\r\n case 'home':\r\n case 'shiftHome':\r\n case 'ctrlHome':\r\n case 'csHome':\r\n _this.navigateRootNode(true);\r\n break;\r\n case 'end':\r\n case 'shiftEnd':\r\n case 'ctrlEnd':\r\n case 'csEnd':\r\n _this.navigateRootNode(false);\r\n break;\r\n case 'enter':\r\n case 'ctrlEnter':\r\n case 'shiftEnter':\r\n case 'csEnter':\r\n _this.toggleSelect(focusedNode, e);\r\n break;\r\n case 'f2':\r\n if (_this.allowEditing && !focusedNode.classList.contains('e-disable')) {\r\n _this.createTextbox(focusedNode, e);\r\n }\r\n break;\r\n case 'ctrlA':\r\n if (_this.allowMultiSelection) {\r\n var sNodes = selectAll('.' + LISTITEM + ':not(.' + ACTIVE + ')', _this.element);\r\n _this.selectGivenNodes(sNodes);\r\n }\r\n break;\r\n }\r\n }\r\n });\r\n };\r\n TreeView.prototype.navigateToFocus = function (isUp) {\r\n var focusNode = this.getFocusedNode().querySelector('.' + TEXTWRAP);\r\n var pos = focusNode.getBoundingClientRect();\r\n var parent = this.getScrollParent(this.element);\r\n if (!isNOU(parent)) {\r\n var parentPos = parent.getBoundingClientRect();\r\n if (pos.bottom > parentPos.bottom) {\r\n parent.scrollTop += pos.bottom - parentPos.bottom;\r\n }\r\n else if (pos.top < parentPos.top) {\r\n parent.scrollTop -= parentPos.top - pos.top;\r\n }\r\n }\r\n var isVisible = this.isVisibleInViewport(focusNode);\r\n if (!isVisible) {\r\n focusNode.scrollIntoView(isUp);\r\n }\r\n };\r\n TreeView.prototype.isVisibleInViewport = function (txtWrap) {\r\n var pos = txtWrap.getBoundingClientRect();\r\n return (pos.top >= 0 && pos.left >= 0 && pos.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n pos.right <= (window.innerWidth || document.documentElement.clientWidth));\r\n };\r\n TreeView.prototype.getScrollParent = function (node) {\r\n if (isNOU(node)) {\r\n return null;\r\n }\r\n return (node.scrollHeight > node.clientHeight) ? node : this.getScrollParent(node.parentElement);\r\n };\r\n TreeView.prototype.shiftKeySelect = function (isTowards, e) {\r\n if (this.allowMultiSelection) {\r\n var focusedNode = this.getFocusedNode();\r\n var nextNode = isTowards ? this.getNextNode(focusedNode) : this.getPrevNode(focusedNode);\r\n this.removeHover();\r\n this.setFocusElement(nextNode);\r\n this.toggleSelect(nextNode, e, false);\r\n this.navigateToFocus(!isTowards);\r\n }\r\n else {\r\n this.navigateNode(isTowards);\r\n }\r\n };\r\n TreeView.prototype.checkNode = function (e) {\r\n var focusedNode = this.getFocusedNode();\r\n var checkWrap = select('.' + CHECKBOXWRAP, focusedNode);\r\n var isChecked = select(' .' + CHECKBOXFRAME, checkWrap).classList.contains(CHECK);\r\n if (!focusedNode.classList.contains('e-disable')) {\r\n if (focusedNode.getElementsByClassName(\"e-checkbox-disabled\").length == 0) {\r\n this.validateCheckNode(checkWrap, isChecked, focusedNode, e);\r\n }\r\n }\r\n };\r\n TreeView.prototype.validateCheckNode = function (checkWrap, isCheck, li, e) {\r\n var _this = this;\r\n var currLi = closest(checkWrap, '.' + LISTITEM);\r\n this.checkActionNodes = [];\r\n var ariaState = !isCheck ? 'true' : 'false';\r\n if (!isNOU(ariaState)) {\r\n checkWrap.setAttribute('aria-checked', ariaState);\r\n }\r\n var eventArgs = this.getCheckEvent(currLi, isCheck ? 'uncheck' : 'check', e);\r\n this.trigger('nodeChecking', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.nodeCheckingAction(checkWrap, isCheck, li, observedArgs, e);\r\n }\r\n });\r\n };\r\n TreeView.prototype.nodeCheckingAction = function (checkWrap, isCheck, li, eventArgs, e) {\r\n if (this.checkedElement.indexOf(li.getAttribute('data-uid')) === -1) {\r\n this.checkedElement.push(li.getAttribute('data-uid'));\r\n if (this.autoCheck) {\r\n var child = this.getChildNodes(this.treeData, li.getAttribute('data-uid'));\r\n (child !== null) ? this.allCheckNode(child, this.checkedElement, null, null, false) : child = null;\r\n }\r\n }\r\n this.changeState(checkWrap, isCheck ? 'uncheck' : 'check', e, true);\r\n if (this.autoCheck) {\r\n this.ensureChildCheckState(li);\r\n this.ensureParentCheckState(closest(closest(li, '.' + PARENTITEM), '.' + LISTITEM));\r\n var doCheck = void 0;\r\n if (eventArgs.action === 'check') {\r\n doCheck = true;\r\n }\r\n else if (eventArgs.action === 'uncheck') {\r\n doCheck = false;\r\n }\r\n this.ensureStateChange(li, doCheck);\r\n }\r\n this.nodeCheckedEvent(checkWrap, isCheck, e);\r\n };\r\n /**\r\n * Update checkedNodes when UI interaction happens before the child node renders in DOM\r\n */\r\n TreeView.prototype.ensureStateChange = function (li, doCheck) {\r\n var childElement = select('.' + PARENTITEM, li);\r\n var parentIndex = li.getAttribute('data-uid');\r\n var mapper = this.fields;\r\n if (this.dataType === 1 && this.autoCheck) {\r\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.parentID, 'equal', parentIndex, true));\r\n for (var i = 0; i < resultData.length; i++) {\r\n var resultId = resultData[i][this.fields.id] ? resultData[i][this.fields.id].toString() : null;\r\n var isCheck = resultData[i][this.fields.isChecked] ? resultData[i][this.fields.isChecked].toString() : null;\r\n if (this.checkedNodes.indexOf(parentIndex) !== -1 && this.checkedNodes.indexOf(resultId) === -1) {\r\n this.checkedNodes.push(resultId);\r\n var childItems = this.getChildNodes(this.treeData, resultId);\r\n this.getChildItems(childItems, doCheck);\r\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\r\n }\r\n }\r\n else if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null &&\r\n this.checkedNodes.indexOf(resultId) !== -1) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(resultId), 1);\r\n if (isCheck === 'true') {\r\n this.updateField(this.treeData, this.fields, resultId, 'isChecked', null);\r\n }\r\n if (this.checkedNodes.indexOf(parentIndex) === -1 && childElement === null ||\r\n this.parentNodeCheck.indexOf(resultId) !== -1) {\r\n var childNodes = this.getChildNodes(this.treeData, resultId);\r\n this.getChildItems(childNodes, doCheck);\r\n if (this.parentNodeCheck.indexOf(resultId) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(resultId), 1);\r\n }\r\n }\r\n }\r\n else {\r\n var childItems = this.getChildNodes(this.treeData, resultId);\r\n this.getChildItems(childItems, doCheck);\r\n }\r\n }\r\n }\r\n else if (this.dataType === 1 && !this.autoCheck) {\r\n if (!doCheck) {\r\n var checkedData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.isChecked, 'equal', true, false));\r\n for (var i = 0; i < checkedData.length; i++) {\r\n var id = checkedData[i][this.fields.id] ? checkedData[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(id) !== -1) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(id), 1);\r\n }\r\n this.updateField(this.treeData, this.fields, id, 'isChecked', null);\r\n }\r\n this.checkedNodes = [];\r\n }\r\n else {\r\n for (var i = 0; i < this.treeData.length; i++) {\r\n var checkedId = this.treeData[i][this.fields.id] ? this.treeData[i][this.fields.id].toString() : null;\r\n if (this.checkedNodes.indexOf(checkedId) === -1) {\r\n this.checkedNodes.push(checkedId);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var childItems = this.getChildNodes(this.treeData, parentIndex);\r\n if (childItems) {\r\n this.childStateChange(childItems, parentIndex, childElement, doCheck);\r\n }\r\n }\r\n };\r\n TreeView.prototype.getChildItems = function (childItems, doCheck) {\r\n for (var i = 0; i < childItems.length; i++) {\r\n var childId = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : null;\r\n var childIsCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() :\r\n null;\r\n if (this.checkedNodes.indexOf(childId) !== -1 && !doCheck) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(childId), 1);\r\n }\r\n if (this.checkedNodes.indexOf(childId) === -1 && doCheck) {\r\n this.checkedNodes.push(childId);\r\n }\r\n if (childIsCheck === 'true' && !doCheck) {\r\n this.updateField(this.treeData, this.fields, childId, 'isChecked', null);\r\n }\r\n var subChildItems = this.getChildNodes(this.treeData, childId);\r\n if (subChildItems.length > 0) {\r\n this.getChildItems(subChildItems, doCheck);\r\n }\r\n }\r\n };\r\n /**\r\n * Update checkedNodes when UI interaction happens before the child node renders in DOM for hierarchical DS\r\n */\r\n TreeView.prototype.childStateChange = function (childItems, parent, childElement, doCheck) {\r\n for (var i = 0; i < childItems.length; i++) {\r\n var checkedChild = childItems[i][this.fields.id] ? childItems[i][this.fields.id].toString() : '';\r\n var isCheck = childItems[i][this.fields.isChecked] ? childItems[i][this.fields.isChecked].toString() : null;\r\n if (this.autoCheck) {\r\n if (this.checkedNodes.indexOf(parent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\r\n this.checkedNodes.push(checkedChild);\r\n if (this.parentNodeCheck.indexOf(checkedChild) !== -1) {\r\n this.parentNodeCheck.splice(this.parentNodeCheck.indexOf(checkedChild), 1);\r\n }\r\n }\r\n else if (this.checkedNodes.indexOf(parent) === -1 && this.checkedNodes.indexOf(checkedChild) !== -1 && !doCheck) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\r\n if (isCheck === 'true') {\r\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\r\n }\r\n }\r\n }\r\n else if (!this.autoCheck) {\r\n if (!doCheck) {\r\n if (this.checkedNodes.indexOf(checkedChild) !== -1) {\r\n this.checkedNodes.splice(this.checkedNodes.indexOf(checkedChild), 1);\r\n }\r\n this.updateField(this.treeData, this.fields, checkedChild, 'isChecked', null);\r\n this.checkedNodes = [];\r\n }\r\n else {\r\n if (this.checkedNodes.indexOf(checkedChild) === -1) {\r\n this.checkedNodes.push(checkedChild);\r\n }\r\n }\r\n }\r\n var subChild = this.getChildNodes([childItems[i]], checkedChild);\r\n if (subChild) {\r\n this.childStateChange(subChild, parent, childElement, doCheck);\r\n }\r\n }\r\n };\r\n //This method can be used to get all child nodes of a parent by passing the children of a parent along with 'validateCheck' set to false\r\n TreeView.prototype.allCheckNode = function (child, newCheck, checked, childCheck, validateCheck) {\r\n if (child) {\r\n for (var length_1 = 0; length_1 < child.length; length_1++) {\r\n var childId = getValue(this.fields.id, child[length_1]);\r\n var check = this.element.querySelector('[data-uid=\"' + childId + '\"]');\r\n //Validates isChecked case while no UI interaction has been performed on the node or it's parent\r\n if (validateCheck !== false && this.checkedElement.indexOf(childId.toString()) === -1) {\r\n if (((check === null && !isNOU(child[length_1][this.fields.isChecked]) && newCheck.indexOf(childId.toString()) === -1)\r\n || childCheck === 0 || checked === 2)) {\r\n (child[length_1][this.fields.isChecked] !== false || checked === 2) ? newCheck.push(childId.toString())\r\n : childCheck = null;\r\n childCheck = (child[length_1][this.fields.isChecked] !== false || checked === 2) ? 0 : null;\r\n }\r\n }\r\n //Pushes child checked node done thro' UI interaction\r\n if (newCheck.indexOf(childId.toString()) === -1 && isNOU(checked)) {\r\n newCheck.push(childId.toString());\r\n }\r\n var hierChildId = getValue(this.fields.child.toString(), child[length_1]);\r\n //Gets if any next level children are available for child nodes\r\n if (getValue(this.fields.hasChildren, child[length_1]) === true || hierChildId) {\r\n var id = getValue(this.fields.id, child[length_1]);\r\n var childId_1 = void 0;\r\n if (this.dataType === 1) {\r\n childId_1 = this.getChildNodes(this.treeData, id.toString());\r\n }\r\n else {\r\n childId_1 = hierChildId;\r\n }\r\n if (childId_1) {\r\n (isNOU(validateCheck)) ? this.allCheckNode(childId_1, newCheck, checked, childCheck) :\r\n this.allCheckNode(childId_1, newCheck, checked, childCheck, validateCheck);\r\n childCheck = null;\r\n }\r\n }\r\n childCheck = null;\r\n }\r\n }\r\n };\r\n TreeView.prototype.openNode = function (toBeOpened, e) {\r\n var focusedNode = this.getFocusedNode();\r\n var icon = select('div.' + ICON, focusedNode);\r\n if (toBeOpened) {\r\n if (!icon) {\r\n return;\r\n }\r\n else if (icon.classList.contains(EXPANDABLE)) {\r\n this.expandAction(focusedNode, icon, e);\r\n }\r\n else {\r\n this.focusNextNode(focusedNode, true);\r\n }\r\n }\r\n else {\r\n if (icon && icon.classList.contains(COLLAPSIBLE)) {\r\n this.collapseNode(focusedNode, icon, e);\r\n }\r\n else {\r\n var parentLi = closest(closest(focusedNode, '.' + PARENTITEM), '.' + LISTITEM);\r\n if (!parentLi) {\r\n return;\r\n }\r\n else {\r\n if (!parentLi.classList.contains('e-disable')) {\r\n this.setFocus(focusedNode, parentLi);\r\n this.navigateToFocus(true);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TreeView.prototype.navigateNode = function (isTowards) {\r\n var focusedNode = this.getFocusedNode();\r\n this.focusNextNode(focusedNode, isTowards);\r\n };\r\n TreeView.prototype.navigateRootNode = function (isBackwards) {\r\n var focusedNode = this.getFocusedNode();\r\n var rootNode = isBackwards ? this.getRootNode() : this.getEndNode();\r\n if (!rootNode.classList.contains('e-disable')) {\r\n this.setFocus(focusedNode, rootNode);\r\n this.navigateToFocus(isBackwards);\r\n }\r\n };\r\n TreeView.prototype.getFocusedNode = function () {\r\n var selectedItem;\r\n var fNode = select('.' + LISTITEM + '.' + FOCUS, this.element);\r\n if (isNOU(fNode)) {\r\n selectedItem = select('.' + LISTITEM, this.element);\r\n }\r\n return isNOU(fNode) ? (isNOU(selectedItem) ? this.element.firstElementChild : selectedItem) : fNode;\r\n };\r\n TreeView.prototype.focusNextNode = function (li, isTowards) {\r\n var nextNode = isTowards ? this.getNextNode(li) : this.getPrevNode(li);\r\n this.setFocus(li, nextNode);\r\n this.navigateToFocus(!isTowards);\r\n if (nextNode.classList.contains('e-disable')) {\r\n var lastChild = nextNode.lastChild;\r\n if (nextNode.previousSibling == null && nextNode.classList.contains('e-level-1')) {\r\n this.focusNextNode(nextNode, true);\r\n }\r\n else if (nextNode.nextSibling == null && nextNode.classList.contains('e-node-collapsed')) {\r\n this.focusNextNode(nextNode, false);\r\n }\r\n else if (nextNode.nextSibling == null && lastChild.classList.contains(TEXTWRAP)) {\r\n this.focusNextNode(nextNode, false);\r\n }\r\n else {\r\n this.focusNextNode(nextNode, isTowards);\r\n }\r\n }\r\n };\r\n TreeView.prototype.getNextNode = function (li) {\r\n var index = this.liList.indexOf(li);\r\n var nextNode;\r\n do {\r\n index++;\r\n nextNode = this.liList[index];\r\n if (isNOU(nextNode)) {\r\n return li;\r\n }\r\n } while (!isVisible(nextNode));\r\n return nextNode;\r\n };\r\n TreeView.prototype.getPrevNode = function (li) {\r\n var index = this.liList.indexOf(li);\r\n var prevNode;\r\n do {\r\n index--;\r\n prevNode = this.liList[index];\r\n if (isNOU(prevNode)) {\r\n return li;\r\n }\r\n } while (!isVisible(prevNode));\r\n return prevNode;\r\n };\r\n TreeView.prototype.getRootNode = function () {\r\n var index = 0;\r\n var rootNode;\r\n do {\r\n rootNode = this.liList[index];\r\n index++;\r\n } while (!isVisible(rootNode));\r\n return rootNode;\r\n };\r\n TreeView.prototype.getEndNode = function () {\r\n var index = this.liList.length - 1;\r\n var endNode;\r\n do {\r\n endNode = this.liList[index];\r\n index--;\r\n } while (!isVisible(endNode));\r\n return endNode;\r\n };\r\n TreeView.prototype.setFocus = function (preNode, nextNode) {\r\n removeClass([preNode], [HOVER, FOCUS]);\r\n if (!nextNode.classList.contains('e-disable')) {\r\n addClass([nextNode], [HOVER, FOCUS]);\r\n this.updateIdAttr(preNode, nextNode);\r\n }\r\n };\r\n TreeView.prototype.updateIdAttr = function (preNode, nextNode) {\r\n this.element.removeAttribute('aria-activedescendant');\r\n if (preNode) {\r\n preNode.removeAttribute('id');\r\n }\r\n nextNode.setAttribute('id', this.element.id + '_active');\r\n this.element.setAttribute('aria-activedescendant', this.element.id + '_active');\r\n };\r\n TreeView.prototype.focusIn = function () {\r\n if (!this.mouseDownStatus) {\r\n addClass([this.getFocusedNode()], HOVER);\r\n }\r\n this.mouseDownStatus = false;\r\n };\r\n TreeView.prototype.focusOut = function () {\r\n removeClass([this.getFocusedNode()], HOVER);\r\n };\r\n TreeView.prototype.onMouseOver = function (e) {\r\n var target = e.target;\r\n var classList = target.classList;\r\n var currentLi = closest(target, '.' + LISTITEM);\r\n if (!currentLi || classList.contains(PARENTITEM) || classList.contains(LISTITEM)) {\r\n this.removeHover();\r\n return;\r\n }\r\n else {\r\n if (currentLi && !currentLi.classList.contains('e-disable')) {\r\n this.setHover(currentLi);\r\n }\r\n }\r\n };\r\n TreeView.prototype.setHover = function (li) {\r\n if (!li.classList.contains(HOVER)) {\r\n this.removeHover();\r\n addClass([li], HOVER);\r\n }\r\n };\r\n ;\r\n TreeView.prototype.onMouseLeave = function (e) {\r\n this.removeHover();\r\n };\r\n TreeView.prototype.removeHover = function () {\r\n var hoveredNode = selectAll('.' + HOVER, this.element);\r\n if (hoveredNode && hoveredNode.length) {\r\n removeClass(hoveredNode, HOVER);\r\n }\r\n };\r\n ;\r\n TreeView.prototype.getNodeData = function (currLi, fromDS) {\r\n if (!isNOU(currLi) && currLi.classList.contains(LISTITEM) &&\r\n !isNOU(closest(currLi, '.' + CONTROL)) && closest(currLi, '.' + CONTROL).classList.contains(ROOT)) {\r\n var id = currLi.getAttribute('data-uid');\r\n var text = this.getText(currLi, fromDS);\r\n var pNode = closest(currLi.parentNode, '.' + LISTITEM);\r\n var pid = pNode ? pNode.getAttribute('data-uid') : null;\r\n var selected = currLi.classList.contains(ACTIVE);\r\n var expanded = (currLi.getAttribute('aria-expanded') === 'true') ? true : false;\r\n var hasChildren = currLi.getAttribute('aria-expanded') !== null ? true : (select('.' + EXPANDABLE, currLi) || select('.' + COLLAPSIBLE, currLi)) != null ? true : false;\r\n var checked = null;\r\n if (this.showCheckBox) {\r\n checked = select('.' + CHECKBOXWRAP, currLi).getAttribute('aria-checked');\r\n }\r\n return {\r\n id: id, text: text, parentID: pid, selected: selected, expanded: expanded,\r\n isChecked: checked, hasChildren: hasChildren\r\n };\r\n }\r\n return { id: '', text: '', parentID: '', selected: false, expanded: false, isChecked: '', hasChildren: false };\r\n };\r\n TreeView.prototype.getText = function (currLi, fromDS) {\r\n if (fromDS) {\r\n var nodeData = this.getNodeObject(currLi.getAttribute('data-uid'));\r\n var level = parseFloat(currLi.getAttribute('aria-level'));\r\n var nodeFields = this.getFields(this.fields, level, 1);\r\n return getValue(nodeFields.text, nodeData);\r\n }\r\n return select('.' + LISTTEXT, currLi).textContent;\r\n };\r\n TreeView.prototype.getExpandEvent = function (currLi, e) {\r\n var nodeData = this.getNodeData(currLi);\r\n return { cancel: false, isInteracted: isNOU(e) ? false : true, node: currLi, nodeData: nodeData, event: e };\r\n };\r\n TreeView.prototype.renderNodeTemplate = function (data, textEle, dataId) {\r\n var tempArr = this.nodeTemplateFn(data, this, 'nodeTemplate' + dataId, this.element.id + 'nodeTemplate', this.isStringTemplate, undefined, textEle);\r\n if (tempArr) {\r\n tempArr = Array.prototype.slice.call(tempArr);\r\n append(tempArr, textEle);\r\n }\r\n };\r\n TreeView.prototype.destroyTemplate = function (liEle) {\r\n this.clearTemplate(['nodeTemplate' + liEle.getAttribute('data-uid')]);\r\n };\r\n TreeView.prototype.reRenderNodes = function () {\r\n this.updateListProp(this.fields);\r\n if (Browser.isIE) {\r\n this.ulElement = this.element.querySelector('.e-list-parent.e-ul');\r\n this.ulElement.parentElement.removeChild(this.ulElement);\r\n }\r\n else {\r\n this.element.innerHTML = '';\r\n }\r\n if (!isNOU(this.nodeTemplateFn)) {\r\n this.clearTemplate();\r\n }\r\n this.setTouchClass();\r\n this.setProperties({ selectedNodes: [], checkedNodes: [], expandedNodes: [] }, true);\r\n this.checkedElement = [];\r\n this.isLoaded = false;\r\n this.setDataBinding(true);\r\n };\r\n TreeView.prototype.setCssClass = function (oldClass, newClass) {\r\n if (!isNOU(oldClass) && oldClass !== '') {\r\n removeClass([this.element], oldClass.split(' '));\r\n }\r\n if (!isNOU(newClass) && newClass !== '') {\r\n addClass([this.element], newClass.split(' '));\r\n }\r\n };\r\n TreeView.prototype.editingHandler = function (e) {\r\n var target = e.target;\r\n if (!target || target.classList.contains(ROOT) || target.classList.contains(PARENTITEM) ||\r\n target.classList.contains(LISTITEM) || target.classList.contains(ICON) ||\r\n target.classList.contains(INPUT) || target.classList.contains(INPUTGROUP)) {\r\n return;\r\n }\r\n else {\r\n var liEle = closest(target, '.' + LISTITEM);\r\n this.createTextbox(liEle, e);\r\n }\r\n };\r\n TreeView.prototype.createTextbox = function (liEle, e) {\r\n var _this = this;\r\n var oldInpEle = select('.' + TREEINPUT, this.element);\r\n if (oldInpEle) {\r\n oldInpEle.blur();\r\n }\r\n var textEle = select('.' + LISTTEXT, liEle);\r\n this.updateOldText(liEle);\r\n var innerEle = this.createElement('input', { className: TREEINPUT, attrs: { value: this.oldText } });\r\n var eventArgs = this.getEditEvent(liEle, null, innerEle.outerHTML);\r\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n var inpWidth = textEle.offsetWidth + 5;\r\n var style = 'width:' + inpWidth + 'px';\r\n addClass([liEle], EDITING);\r\n if (!isNOU(_this.nodeTemplateFn)) {\r\n _this.destroyTemplate(liEle);\r\n }\r\n textEle.innerHTML = eventArgs.innerHtml;\r\n var inpEle = select('.' + TREEINPUT, textEle);\r\n _this.inputObj = Input.createInput({\r\n element: inpEle,\r\n properties: {\r\n enableRtl: _this.enableRtl,\r\n }\r\n }, _this.createElement);\r\n _this.inputObj.container.setAttribute('style', style);\r\n inpEle.focus();\r\n var inputEle = inpEle;\r\n inputEle.setSelectionRange(0, inputEle.value.length);\r\n _this.wireInputEvents(inpEle);\r\n }\r\n });\r\n };\r\n TreeView.prototype.updateOldText = function (liEle) {\r\n var id = liEle.getAttribute('data-uid');\r\n this.editData = this.getNodeObject(id);\r\n var level = parseFloat(liEle.getAttribute('aria-level'));\r\n this.editFields = this.getFields(this.fields, level, 1);\r\n this.oldText = getValue(this.editFields.text, this.editData);\r\n };\r\n TreeView.prototype.inputFocusOut = function (e) {\r\n if (!select('.' + TREEINPUT, this.element)) {\r\n return;\r\n }\r\n var target = e.target;\r\n var newText = target.value;\r\n var txtEle = closest(target, '.' + LISTTEXT);\r\n var liEle = closest(target, '.' + LISTITEM);\r\n detach(this.inputObj.container);\r\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\r\n this.crudOperation('update', null, liEle, newText, null, null, true);\r\n }\r\n else {\r\n this.appendNewText(liEle, txtEle, newText, true);\r\n }\r\n };\r\n TreeView.prototype.appendNewText = function (liEle, txtEle, newText, isInput) {\r\n var _this = this;\r\n var eventArgs = this.getEditEvent(liEle, newText, null);\r\n this.trigger('nodeEdited', eventArgs, function (observedArgs) {\r\n newText = observedArgs.cancel ? observedArgs.oldText : observedArgs.newText;\r\n _this.updateText(liEle, txtEle, newText, isInput);\r\n if (observedArgs.oldText !== newText) {\r\n _this.triggerEvent();\r\n }\r\n });\r\n };\r\n TreeView.prototype.updateText = function (liEle, txtEle, newText, isInput) {\r\n var newData = setValue(this.editFields.text, newText, this.editData);\r\n if (!isNOU(this.nodeTemplateFn)) {\r\n txtEle.innerText = '';\r\n var dataId = liEle.getAttribute('data-uid');\r\n this.renderNodeTemplate(newData, txtEle, dataId);\r\n this.renderReactTemplates();\r\n }\r\n else {\r\n txtEle.innerText = newText;\r\n }\r\n if (isInput) {\r\n removeClass([liEle], EDITING);\r\n txtEle.focus();\r\n }\r\n };\r\n TreeView.prototype.getElement = function (ele) {\r\n if (isNOU(ele)) {\r\n return null;\r\n }\r\n else if (typeof ele === 'string') {\r\n return this.element.querySelector('[data-uid=\"' + ele + '\"]');\r\n }\r\n else if (typeof ele === 'object') {\r\n return getElement(ele);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n TreeView.prototype.getId = function (ele) {\r\n if (isNOU(ele)) {\r\n return null;\r\n }\r\n else if (typeof ele === 'string') {\r\n return ele;\r\n }\r\n else if (typeof ele === 'object') {\r\n return (getElement(ele)).getAttribute('data-uid');\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n TreeView.prototype.getEditEvent = function (liEle, newText, inpEle) {\r\n var data = this.getNodeData(liEle);\r\n return { cancel: false, newText: newText, node: liEle, nodeData: data, oldText: this.oldText, innerHtml: inpEle };\r\n };\r\n TreeView.prototype.getNodeObject = function (id) {\r\n var childNodes;\r\n if (isNOU(id)) {\r\n return childNodes;\r\n }\r\n else if (this.dataType === 1) {\r\n for (var i = 0, objlen = this.treeData.length; i < objlen; i++) {\r\n var dataId = getValue(this.fields.id, this.treeData[i]);\r\n if (!isNOU(this.treeData[i]) && !isNOU(dataId) && dataId.toString() === id) {\r\n return this.treeData[i];\r\n }\r\n }\r\n }\r\n else {\r\n return this.getChildNodeObject(this.treeData, this.fields, id);\r\n }\r\n return childNodes;\r\n };\r\n TreeView.prototype.getChildNodeObject = function (obj, mapper, id) {\r\n var newList;\r\n if (isNOU(obj)) {\r\n return newList;\r\n }\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var dataId = getValue(mapper.id, obj[i]);\r\n if (obj[i] && dataId && dataId.toString() === id) {\r\n return obj[i];\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n var childData = getValue(mapper.child, obj[i]);\r\n newList = this.getChildNodeObject(childData, this.getChildMapper(mapper), id);\r\n if (newList !== undefined) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\r\n var child = 'child';\r\n newList = this.getChildNodeObject(getValue(child, obj[i]), this.getChildMapper(mapper), id);\r\n if (newList !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return newList;\r\n };\r\n TreeView.prototype.setDragAndDrop = function (toBind) {\r\n if (toBind && !this.disabled) {\r\n this.initializeDrag();\r\n }\r\n else {\r\n this.destroyDrag();\r\n }\r\n };\r\n TreeView.prototype.initializeDrag = function () {\r\n var _this = this;\r\n var virtualEle;\r\n var proxy = this;\r\n this.dragObj = new Draggable(this.element, {\r\n enableTailMode: true, enableAutoScroll: true,\r\n dragArea: this.dragArea,\r\n dragTarget: '.' + TEXTWRAP,\r\n helper: function (e) {\r\n _this.dragTarget = e.sender.target;\r\n var dragRoot = closest(_this.dragTarget, '.' + ROOT);\r\n var dragWrap = closest(_this.dragTarget, '.' + TEXTWRAP);\r\n _this.dragLi = closest(_this.dragTarget, '.' + LISTITEM);\r\n if (_this.fullRowSelect && !dragWrap && _this.dragTarget.classList.contains(FULLROW)) {\r\n dragWrap = _this.dragTarget.nextElementSibling;\r\n }\r\n if (!_this.dragTarget || !e.element.isSameNode(dragRoot) || !dragWrap ||\r\n _this.dragTarget.classList.contains(ROOT) || _this.dragTarget.classList.contains(PARENTITEM) ||\r\n _this.dragTarget.classList.contains(LISTITEM) || _this.dragLi.classList.contains('e-disable')) {\r\n return false;\r\n }\r\n var cloneEle = (dragWrap.cloneNode(true));\r\n if (isNOU(select('div.' + ICON, cloneEle))) {\r\n var icon = proxy.createElement('div', { className: ICON + ' ' + EXPANDABLE });\r\n cloneEle.insertBefore(icon, cloneEle.children[0]);\r\n }\r\n var cssClass = DRAGITEM + ' ' + ROOT + ' ' + _this.cssClass + ' ' + (_this.enableRtl ? RTL : '');\r\n virtualEle = proxy.createElement('div', { className: cssClass });\r\n virtualEle.appendChild(cloneEle);\r\n var nLen = _this.selectedNodes.length;\r\n if (nLen > 1 && _this.allowMultiSelection && _this.dragLi.classList.contains(ACTIVE)) {\r\n var cNode = proxy.createElement('span', { className: DROPCOUNT, innerHTML: '' + nLen });\r\n virtualEle.appendChild(cNode);\r\n }\r\n document.body.appendChild(virtualEle);\r\n document.body.style.cursor = '';\r\n _this.dragData = _this.getNodeData(_this.dragLi);\r\n return virtualEle;\r\n },\r\n dragStart: function (e) {\r\n addClass([_this.element], DRAGGING);\r\n var listItem = closest(e.target, '.e-list-item');\r\n var level;\r\n if (listItem) {\r\n level = parseInt(listItem.getAttribute('aria-level'), 10);\r\n }\r\n var eventArgs = _this.getDragEvent(e.event, _this, null, e.target, null, virtualEle, level);\r\n if (eventArgs.draggedNode.classList.contains(EDITING)) {\r\n _this.dragObj.intDestroy(e.event);\r\n _this.dragCancelAction(virtualEle);\r\n }\r\n else {\r\n _this.trigger('nodeDragStart', eventArgs, function (observedArgs) {\r\n if (observedArgs.cancel) {\r\n _this.dragObj.intDestroy(e.event);\r\n _this.dragCancelAction(virtualEle);\r\n }\r\n else {\r\n _this.dragStartAction = true;\r\n }\r\n });\r\n }\r\n },\r\n drag: function (e) {\r\n _this.dragObj.setProperties({ cursorAt: { top: (!isNOU(e.event.targetTouches) || Browser.isDevice) ? 60 : -20 } });\r\n _this.dragAction(e, virtualEle);\r\n },\r\n dragStop: function (e) {\r\n removeClass([_this.element], DRAGGING);\r\n _this.removeVirtualEle();\r\n var dropTarget = e.target;\r\n var preventTargetExpand = false;\r\n var dropRoot = (closest(dropTarget, '.' + DROPPABLE));\r\n var isHelperElement = true;\r\n if (!dropTarget || !dropRoot) {\r\n detach(e.helper);\r\n document.body.style.cursor = '';\r\n isHelperElement = false;\r\n }\r\n var listItem = closest(dropTarget, '.e-list-item');\r\n var level;\r\n if (listItem) {\r\n level = parseInt(listItem.getAttribute('aria-level'), 10);\r\n }\r\n var eventArgs = _this.getDragEvent(e.event, _this, dropTarget, dropTarget, null, e.helper, level);\r\n eventArgs.preventTargetExpand = preventTargetExpand;\r\n _this.trigger('nodeDragStop', eventArgs, function (observedArgs) {\r\n _this.dragParent = observedArgs.draggedParentNode;\r\n _this.preventExpand = observedArgs.preventTargetExpand;\r\n if (observedArgs.cancel) {\r\n if (e.helper.parentNode) {\r\n detach(e.helper);\r\n }\r\n document.body.style.cursor = '';\r\n isHelperElement = false;\r\n }\r\n _this.dragStartAction = false;\r\n });\r\n }\r\n });\r\n this.dropObj = new Droppable(this.element, {\r\n out: function (e) {\r\n if (!isNOU(e) && !e.target.classList.contains(SIBLING)) {\r\n document.body.style.cursor = 'not-allowed';\r\n }\r\n },\r\n over: function (e) {\r\n document.body.style.cursor = '';\r\n },\r\n drop: function (e) {\r\n _this.dropAction(e);\r\n }\r\n });\r\n };\r\n TreeView.prototype.dragCancelAction = function (virtualEle) {\r\n detach(virtualEle);\r\n removeClass([this.element], DRAGGING);\r\n this.dragStartAction = false;\r\n };\r\n TreeView.prototype.dragAction = function (e, virtualEle) {\r\n var dropRoot = closest(e.target, '.' + DROPPABLE);\r\n var dropWrap = closest(e.target, '.' + TEXTWRAP);\r\n var icon = select('div.' + ICON, virtualEle);\r\n removeClass([icon], [DROPIN, DROPNEXT, DROPOUT, NODROP]);\r\n this.removeVirtualEle();\r\n document.body.style.cursor = '';\r\n var classList = e.target.classList;\r\n if (this.fullRowSelect && !dropWrap && !isNOU(classList) && classList.contains(FULLROW)) {\r\n dropWrap = e.target.nextElementSibling;\r\n }\r\n if (dropRoot) {\r\n var dropLi = closest(e.target, '.' + LISTITEM);\r\n var checkWrapper = closest(e.target, '.' + CHECKBOXWRAP);\r\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\r\n var expand = closest(e.target, '.' + EXPANDABLE);\r\n if (!dropRoot.classList.contains(ROOT) || (dropWrap &&\r\n (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi)))) {\r\n if (this.hasTemplate && dropLi) {\r\n var templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\r\n if ((e && (!expand && !collapse) && e.event.offsetY < 7 && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\r\n var index = this.fullRowSelect ? (1) : (0);\r\n this.appendIndicator(dropLi, icon, index);\r\n }\r\n else if ((e && (!expand && !collapse) && !checkWrapper && templateTarget && e.event.offsetY > templateTarget.offsetHeight - 10) || ((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19))) {\r\n var index = this.fullRowSelect ? (2) : (1);\r\n this.appendIndicator(dropLi, icon, index);\r\n }\r\n else {\r\n addClass([icon], DROPIN);\r\n }\r\n }\r\n else {\r\n if ((dropLi && e && (!expand && !collapse) && (e.event.offsetY < 7) && !checkWrapper) || (((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3)))) {\r\n var index = this.fullRowSelect ? (1) : (0);\r\n this.appendIndicator(dropLi, icon, index);\r\n }\r\n else if ((dropLi && e && (!expand && !collapse) && (e.target.offsetHeight > 0 && e.event.offsetY > (e.target.offsetHeight - 10)) && !checkWrapper) || (((expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19)))) {\r\n var index = this.fullRowSelect ? (2) : (1);\r\n this.appendIndicator(dropLi, icon, index);\r\n }\r\n else {\r\n addClass([icon], DROPIN);\r\n }\r\n }\r\n }\r\n else if (e.target.nodeName === 'LI' && (!dropLi.isSameNode(this.dragLi) && !this.isDescendant(this.dragLi, dropLi))) {\r\n addClass([icon], DROPNEXT);\r\n this.renderVirtualEle(e);\r\n }\r\n else if (e.target.classList.contains(SIBLING)) {\r\n addClass([icon], DROPNEXT);\r\n }\r\n else {\r\n addClass([icon], DROPOUT);\r\n }\r\n }\r\n else {\r\n addClass([icon], NODROP);\r\n document.body.style.cursor = 'not-allowed';\r\n }\r\n var listItem = closest(e.target, '.e-list-item');\r\n var level;\r\n if (listItem) {\r\n level = parseInt(listItem.getAttribute('aria-level'), 10);\r\n }\r\n var eventArgs = this.getDragEvent(e.event, this, e.target, e.target, null, virtualEle, level);\r\n if (eventArgs.dropIndicator) {\r\n removeClass([icon], eventArgs.dropIndicator);\r\n }\r\n this.trigger('nodeDragging', eventArgs);\r\n if (eventArgs.dropIndicator) {\r\n addClass([icon], eventArgs.dropIndicator);\r\n }\r\n };\r\n TreeView.prototype.appendIndicator = function (dropLi, icon, index) {\r\n addClass([icon], DROPNEXT);\r\n var virEle = this.createElement('div', { className: SIBLING });\r\n dropLi.insertBefore(virEle, dropLi.children[index]);\r\n };\r\n /* eslint-disable */\r\n TreeView.prototype.dropAction = function (e) {\r\n var offsetY = e.event.offsetY;\r\n var dropTarget = e.target;\r\n var dragObj;\r\n var level;\r\n var drop = false;\r\n var dragInstance;\r\n dragInstance = e.dragData.draggable;\r\n for (var i = 0; i < dragInstance.ej2_instances.length; i++) {\r\n if (dragInstance.ej2_instances[i] instanceof TreeView_1) {\r\n dragObj = dragInstance.ej2_instances[i];\r\n break;\r\n }\r\n }\r\n if (dragObj && dragObj.dragTarget) {\r\n var dragTarget = dragObj.dragTarget;\r\n var dragLi = (closest(dragTarget, '.' + LISTITEM));\r\n var dropLi = (closest(dropTarget, '.' + LISTITEM));\r\n if (dropLi == null && dropTarget.classList.contains(ROOT)) {\r\n dropLi = dropTarget.firstElementChild;\r\n }\r\n detach(e.droppedElement);\r\n document.body.style.cursor = '';\r\n if (!dropLi || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\r\n if (this.fields.dataSource instanceof DataManager === false) {\r\n this.preventExpand = false;\r\n }\r\n return;\r\n }\r\n if (dragObj.allowMultiSelection && dragLi.classList.contains(ACTIVE)) {\r\n var sNodes = selectAll('.' + ACTIVE, dragObj.element);\r\n if (e.target.offsetHeight <= 33 && offsetY > e.target.offsetHeight - 10 && offsetY > 6) {\r\n for (var i = sNodes.length - 1; i >= 0; i--) {\r\n if (dropLi.isSameNode(sNodes[i]) || this.isDescendant(sNodes[i], dropLi)) {\r\n continue;\r\n }\r\n this.appendNode(dropTarget, sNodes[i], dropLi, e, dragObj, offsetY);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < sNodes.length; i++) {\r\n if (dropLi.isSameNode(sNodes[i]) || this.isDescendant(sNodes[i], dropLi)) {\r\n continue;\r\n }\r\n this.appendNode(dropTarget, sNodes[i], dropLi, e, dragObj, offsetY);\r\n }\r\n }\r\n }\r\n else {\r\n this.appendNode(dropTarget, dragLi, dropLi, e, dragObj, offsetY);\r\n }\r\n level = parseInt(dragLi.getAttribute('aria-level'), 10);\r\n drop = true;\r\n }\r\n if (this.fields.dataSource instanceof DataManager === false) {\r\n this.preventExpand = false;\r\n }\r\n this.trigger('nodeDropped', this.getDragEvent(e.event, dragObj, dropTarget, e.target, e.dragData.draggedElement, null, level, drop));\r\n if (dragObj.element.id !== this.element.id) {\r\n dragObj.triggerEvent();\r\n }\r\n this.triggerEvent();\r\n };\r\n TreeView.prototype.appendNode = function (dropTarget, dragLi, dropLi, e, dragObj, offsetY) {\r\n var checkWrapper = closest(dropTarget, '.' + CHECKBOXWRAP);\r\n var collapse = closest(e.target, '.' + COLLAPSIBLE);\r\n var expand = closest(e.target, '.' + EXPANDABLE);\r\n if (!dragLi.classList.contains('e-disable') && !checkWrapper && ((expand && e.event.offsetY < 5) || (collapse && e.event.offsetX < 3) || (expand && e.event.offsetY > 19) || (collapse && e.event.offsetX > 19) || (!expand && !collapse))) {\r\n if (dropTarget.nodeName === 'LI') {\r\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\r\n }\r\n else if (dropTarget.firstElementChild && dropTarget.classList.contains(ROOT)) {\r\n if (dropTarget.firstElementChild.nodeName === 'UL') {\r\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\r\n }\r\n }\r\n else if ((dropTarget.classList.contains('e-icon-collapsible')) || (dropTarget.classList.contains('e-icon-expandable'))) {\r\n this.dropAsSiblingNode(dragLi, dropLi, e, dragObj);\r\n }\r\n else {\r\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY);\r\n }\r\n }\r\n else {\r\n this.dropAsChildNode(dragLi, dropLi, dragObj, null, e, offsetY, true);\r\n }\r\n };\r\n TreeView.prototype.dropAsSiblingNode = function (dragLi, dropLi, e, dragObj) {\r\n var dropUl = closest(dropLi, '.' + PARENTITEM);\r\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\r\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\r\n var pre;\r\n if (e.target.offsetHeight > 0 && e.event.offsetY > e.target.offsetHeight - 2) {\r\n pre = false;\r\n }\r\n else if (e.event.offsetY < 2) {\r\n pre = true;\r\n }\r\n else if (e.target.classList.contains('e-icon-expandable') || (e.target.classList.contains('e-icon-collapsible'))) {\r\n if ((e.event.offsetY < 5) || (e.event.offsetX < 3)) {\r\n pre = true;\r\n }\r\n else if ((e.event.offsetY > 15) || (e.event.offsetX > 17)) {\r\n pre = false;\r\n }\r\n }\r\n if ((e.target.classList.contains('e-icon-expandable')) || (e.target.classList.contains('e-icon-collapsible'))) {\r\n var target = e.target.closest('li');\r\n dropUl.insertBefore(dragLi, pre ? target : target.nextElementSibling);\r\n }\r\n else {\r\n dropUl.insertBefore(dragLi, pre ? e.target : e.target.nextElementSibling);\r\n }\r\n this.moveData(dragLi, dropLi, dropUl, pre, dragObj);\r\n this.updateElement(dragParentUl, dragParentLi);\r\n this.updateAriaLevel(dragLi);\r\n if (dragObj.element.id === this.element.id) {\r\n this.updateList();\r\n }\r\n else {\r\n dragObj.updateInstance();\r\n this.updateInstance();\r\n }\r\n };\r\n TreeView.prototype.dropAsChildNode = function (dragLi, dropLi, dragObj, index, e, pos, isCheck) {\r\n var dragParentUl = closest(dragLi, '.' + PARENTITEM);\r\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\r\n var dropParentUl = closest(dropLi, '.' + PARENTITEM);\r\n var templateTarget;\r\n if (e && e.target) {\r\n templateTarget = select(this.fullRowSelect ? '.' + FULLROW : '.' + TEXTWRAP, dropLi);\r\n }\r\n if (e && (pos < 7) && !isCheck) {\r\n dropParentUl.insertBefore(dragLi, dropLi);\r\n this.moveData(dragLi, dropLi, dropParentUl, true, dragObj);\r\n }\r\n else if (e && (e.target.offsetHeight > 0 && pos > (e.target.offsetHeight - 10)) && !isCheck && !this.hasTemplate) {\r\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\r\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\r\n }\r\n else if (this.hasTemplate && templateTarget && pos > templateTarget.offsetHeight - 10 && !isCheck) {\r\n dropParentUl.insertBefore(dragLi, dropLi.nextElementSibling);\r\n this.moveData(dragLi, dropLi, dropParentUl, false, dragObj);\r\n }\r\n else {\r\n var dropUl = this.expandParent(dropLi);\r\n var childLi = dropUl.childNodes[index];\r\n dropUl.insertBefore(dragLi, childLi);\r\n this.moveData(dragLi, childLi, dropUl, true, dragObj);\r\n }\r\n this.updateElement(dragParentUl, dragParentLi);\r\n this.updateAriaLevel(dragLi);\r\n if (dragObj.element.id === this.element.id) {\r\n this.updateList();\r\n }\r\n else {\r\n dragObj.updateInstance();\r\n this.updateInstance();\r\n }\r\n };\r\n TreeView.prototype.moveData = function (dragLi, dropLi, dropUl, pre, dragObj) {\r\n var dropParentLi = closest(dropUl, '.' + LISTITEM);\r\n var id = this.getId(dragLi);\r\n var removedData = dragObj.updateChildField(dragObj.treeData, dragObj.fields, id, null, null, true);\r\n var refId = this.getId(dropLi);\r\n var index = this.getDataPos(this.treeData, this.fields, refId);\r\n var parentId = this.getId(dropParentLi);\r\n if (this.dataType === 1) {\r\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', true);\r\n var pos = isNOU(index) ? this.treeData.length : (pre ? index : index + 1);\r\n if (isNOU(parentId) && !this.hasPid) {\r\n delete removedData[0][this.fields.parentID];\r\n }\r\n else {\r\n var currPid = this.isNumberTypeId ? parseFloat(parentId) : parentId;\r\n setValue(this.fields.parentID, currPid, removedData[0]);\r\n }\r\n this.treeData.splice(pos, 0, removedData[0]);\r\n if (dragObj.element.id !== this.element.id) {\r\n var childData = dragObj.removeChildNodes(id);\r\n pos++;\r\n for (var i = 0, len = childData.length; i < len; i++) {\r\n this.treeData.splice(pos, 0, childData[i]);\r\n pos++;\r\n }\r\n dragObj.groupedData = dragObj.getGroupedData(dragObj.treeData, dragObj.fields.parentID);\r\n }\r\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\r\n }\r\n else {\r\n this.addChildData(this.treeData, this.fields, parentId, removedData, pre ? index : index + 1);\r\n }\r\n };\r\n TreeView.prototype.expandParent = function (dropLi) {\r\n var dropIcon = select('div.' + ICON, dropLi);\r\n if (dropIcon && dropIcon.classList.contains(EXPANDABLE) && this.preventExpand !== true) {\r\n this.expandAction(dropLi, dropIcon, null);\r\n }\r\n var dropUl = select('.' + PARENTITEM, dropLi);\r\n if (this.preventExpand === true && !dropUl && dropIcon) {\r\n this.renderChildNodes(dropLi);\r\n }\r\n dropUl = select('.' + PARENTITEM, dropLi);\r\n if (!isNOU(dropUl) && this.preventExpand === true) {\r\n dropUl.style.display = 'none';\r\n }\r\n if (!isNOU(dropUl) && this.preventExpand === false) {\r\n dropUl.style.display = 'block';\r\n }\r\n if (isNOU(dropUl) && this.preventExpand === true) {\r\n if (isNOU(dropIcon)) {\r\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\r\n }\r\n var icon = select('div.' + ICON, dropLi);\r\n if (icon) {\r\n icon.classList.add('e-icon-expandable');\r\n }\r\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\r\n dropLi.appendChild(dropUl);\r\n if (icon) {\r\n removeClass([icon], COLLAPSIBLE);\r\n }\r\n else {\r\n ListBase.generateIcon(this.createElement, dropLi, EXPANDABLE, this.listBaseOption);\r\n }\r\n dropLi.setAttribute('aria-expanded', 'false');\r\n dropUl.style.display = 'none';\r\n }\r\n if (isNOU(dropUl)) {\r\n this.trigger('nodeExpanding', this.getExpandEvent(dropLi, null));\r\n if (isNOU(dropIcon)) {\r\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\r\n }\r\n var icon = select('div.' + ICON, dropLi);\r\n if (icon) {\r\n removeClass([icon], EXPANDABLE);\r\n }\r\n else {\r\n ListBase.generateIcon(this.createElement, dropLi, COLLAPSIBLE, this.listBaseOption);\r\n icon = select('div.' + ICON, dropLi);\r\n removeClass([icon], EXPANDABLE);\r\n }\r\n dropUl = ListBase.generateUL(this.createElement, [], null, this.listBaseOption);\r\n dropLi.appendChild(dropUl);\r\n this.addExpand(dropLi);\r\n this.trigger('nodeExpanded', this.getExpandEvent(dropLi, null));\r\n }\r\n return dropUl;\r\n };\r\n TreeView.prototype.updateElement = function (dragParentUl, dragParentLi) {\r\n if (dragParentLi && dragParentUl.childElementCount === 0) {\r\n var dragIcon = select('div.' + ICON, dragParentLi);\r\n detach(dragParentUl);\r\n detach(dragIcon);\r\n var parentId = this.getId(dragParentLi);\r\n this.updateField(this.treeData, this.fields, parentId, 'hasChildren', false);\r\n this.removeExpand(dragParentLi, true);\r\n }\r\n };\r\n TreeView.prototype.updateAriaLevel = function (dragLi) {\r\n var level = this.parents(dragLi, '.' + PARENTITEM).length;\r\n dragLi.setAttribute('aria-level', '' + level);\r\n this.updateChildAriaLevel(select('.' + PARENTITEM, dragLi), level + 1);\r\n };\r\n TreeView.prototype.updateChildAriaLevel = function (element, level) {\r\n if (!isNOU(element)) {\r\n var cNodes = element.childNodes;\r\n for (var i = 0, len = cNodes.length; i < len; i++) {\r\n var liEle = cNodes[i];\r\n liEle.setAttribute('aria-level', '' + level);\r\n this.updateChildAriaLevel(select('.' + PARENTITEM, liEle), level + 1);\r\n }\r\n }\r\n };\r\n TreeView.prototype.renderVirtualEle = function (e) {\r\n var pre;\r\n if (e.event.offsetY > e.target.offsetHeight - 2) {\r\n pre = false;\r\n }\r\n else if (e.event.offsetY < 2) {\r\n pre = true;\r\n }\r\n var virEle = this.createElement('div', { className: SIBLING });\r\n var index = this.fullRowSelect ? (pre ? 1 : 2) : (pre ? 0 : 1);\r\n e.target.insertBefore(virEle, e.target.children[index]);\r\n };\r\n TreeView.prototype.removeVirtualEle = function () {\r\n var sibEle = select('.' + SIBLING);\r\n if (sibEle) {\r\n detach(sibEle);\r\n }\r\n };\r\n TreeView.prototype.destroyDrag = function () {\r\n if (this.dragObj && this.dropObj) {\r\n this.dragObj.destroy();\r\n this.dropObj.destroy();\r\n }\r\n };\r\n TreeView.prototype.getDragEvent = function (event, obj, dropTarget, target, dragNode, cloneEle, level, drop) {\r\n var dropLi = dropTarget ? closest(dropTarget, '.' + LISTITEM) : null;\r\n var dropData = dropLi ? this.getNodeData(dropLi) : null;\r\n var draggedNode = obj ? obj.dragLi : dragNode;\r\n var draggedNodeData = obj ? obj.dragData : null;\r\n var newParent = dropTarget ? this.parents(dropTarget, '.' + LISTITEM) : null;\r\n var dragLiParent = obj.dragLi.parentElement;\r\n var dragParent = obj.dragLi ? closest(dragLiParent, '.' + LISTITEM) : null;\r\n var targetParent = null;\r\n var indexValue = null;\r\n var iconCss = [DROPNEXT, DROPIN, DROPOUT, NODROP];\r\n var iconClass = null;\r\n var node = (drop === true) ? draggedNode : dropLi;\r\n var index = node ? closest(node, '.e-list-parent') : null;\r\n var i = 0;\r\n var position = null;\r\n dragParent = (obj.dragLi && dragParent === null) ? closest(dragLiParent, '.' + ROOT) : dragParent;\r\n dragParent = (drop === true) ? this.dragParent : dragParent;\r\n if (cloneEle) {\r\n while (i < 4) {\r\n if (select('.' + ICON, cloneEle).classList.contains(iconCss[i])) {\r\n iconClass = iconCss[i];\r\n break;\r\n }\r\n i++;\r\n }\r\n }\r\n if (index) {\r\n var dropTar = 0;\r\n for (i = 0; i < index.childElementCount; i++) {\r\n dropTar = (drop !== true && index.children[i] === draggedNode && dropLi !== draggedNode) ? ++dropTar : dropTar;\r\n if ((drop !== true && index.children[i].classList.contains('e-hover'))) {\r\n indexValue = (event.offsetY >= 23) ? i + 1 : i;\r\n break;\r\n }\r\n else if (index.children[i] === node) {\r\n indexValue = (event.offsetY >= 23) ? i : i;\r\n break;\r\n }\r\n }\r\n indexValue = (dropTar !== 0) ? --indexValue : indexValue;\r\n position = (iconClass == \"e-drop-in\") ? \"Inside\" : ((event.offsetY < 7) ? \"Before\" : \"After\");\r\n }\r\n if (dropTarget) {\r\n if (newParent.length === 0) {\r\n targetParent = null;\r\n }\r\n else if (dropTarget.classList.contains(LISTITEM)) {\r\n targetParent = newParent[0];\r\n }\r\n else {\r\n targetParent = newParent[1];\r\n }\r\n }\r\n if (dropLi === draggedNode) {\r\n targetParent = dropLi;\r\n }\r\n if (dropTarget && target.offsetHeight <= 33 && event.offsetY < target.offsetHeight - 10 && event.offsetY > 6) {\r\n targetParent = dropLi;\r\n if (drop !== true) {\r\n level = ++level;\r\n var parent_2 = targetParent ? select('.e-list-parent', targetParent) : null;\r\n indexValue = (parent_2) ? parent_2.children.length : 0;\r\n if (!(this.fields.dataSource instanceof DataManager) && parent_2 === null && targetParent) {\r\n var parent_3 = targetParent.hasAttribute('data-uid') ?\r\n this.getChildNodes(this.fields.dataSource, targetParent.getAttribute('data-uid').toString()) : null;\r\n indexValue = (parent_3) ? parent_3.length : 0;\r\n }\r\n }\r\n }\r\n return {\r\n cancel: false,\r\n clonedNode: cloneEle,\r\n event: event,\r\n draggedNode: draggedNode,\r\n draggedNodeData: draggedNodeData,\r\n droppedNode: dropLi,\r\n droppedNodeData: dropData,\r\n dropIndex: indexValue,\r\n dropLevel: level,\r\n draggedParentNode: dragParent,\r\n dropTarget: targetParent,\r\n dropIndicator: iconClass,\r\n target: target,\r\n position: position,\r\n };\r\n };\r\n TreeView.prototype.addFullRow = function (toAdd) {\r\n var len = this.liList.length;\r\n if (toAdd) {\r\n for (var i = 0; i < len; i++) {\r\n this.createFullRow(this.liList[i]);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < len; i++) {\r\n var rowDiv = select('.' + FULLROW, this.liList[i]);\r\n detach(rowDiv);\r\n }\r\n }\r\n };\r\n TreeView.prototype.createFullRow = function (item) {\r\n var rowDiv = this.createElement('div', { className: FULLROW });\r\n item.insertBefore(rowDiv, item.childNodes[0]);\r\n };\r\n TreeView.prototype.addMultiSelect = function (toAdd) {\r\n if (toAdd) {\r\n var liEles = selectAll('.' + LISTITEM + ':not([aria-selected=\"true\"])', this.element);\r\n for (var _i = 0, liEles_1 = liEles; _i < liEles_1.length; _i++) {\r\n var ele = liEles_1[_i];\r\n ele.setAttribute('aria-selected', 'false');\r\n }\r\n }\r\n else {\r\n var liEles = selectAll('.' + LISTITEM + '[aria-selected=\"false\"]', this.element);\r\n for (var _a = 0, liEles_2 = liEles; _a < liEles_2.length; _a++) {\r\n var ele = liEles_2[_a];\r\n ele.removeAttribute('aria-selected');\r\n }\r\n }\r\n };\r\n TreeView.prototype.collapseByLevel = function (element, level, excludeHiddenNodes) {\r\n if (level > 0 && !isNOU(element)) {\r\n var cNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\r\n for (var i = 0, len = cNodes.length; i < len; i++) {\r\n var liEle = cNodes[i];\r\n var icon = select('.' + COLLAPSIBLE, select('.' + TEXTWRAP, liEle));\r\n if (!isNOU(icon)) {\r\n this.collapseNode(liEle, icon, null);\r\n }\r\n this.collapseByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\r\n }\r\n }\r\n };\r\n TreeView.prototype.collapseAllNodes = function (excludeHiddenNodes) {\r\n var cIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + COLLAPSIBLE, this.element));\r\n for (var i = 0, len = cIcons.length; i < len; i++) {\r\n var icon = cIcons[i];\r\n var liEle = closest(icon, '.' + LISTITEM);\r\n this.collapseNode(liEle, icon, null);\r\n }\r\n };\r\n TreeView.prototype.expandByLevel = function (element, level, excludeHiddenNodes) {\r\n if (level > 0 && !isNOU(element)) {\r\n var eNodes = this.getVisibleNodes(excludeHiddenNodes, element.childNodes);\r\n for (var i = 0, len = eNodes.length; i < len; i++) {\r\n var liEle = eNodes[i];\r\n var icon = select('.' + EXPANDABLE, select('.' + TEXTWRAP, liEle));\r\n if (!isNOU(icon)) {\r\n this.expandAction(liEle, icon, null);\r\n }\r\n this.expandByLevel(select('.' + PARENTITEM, liEle), level - 1, excludeHiddenNodes);\r\n }\r\n }\r\n };\r\n TreeView.prototype.expandAllNodes = function (excludeHiddenNodes) {\r\n var eIcons = this.getVisibleNodes(excludeHiddenNodes, selectAll('.' + EXPANDABLE, this.element));\r\n for (var i = 0, len = eIcons.length; i < len; i++) {\r\n var icon = eIcons[i];\r\n var liEle = closest(icon, '.' + LISTITEM);\r\n this.expandAction(liEle, icon, null, true);\r\n }\r\n };\r\n TreeView.prototype.getVisibleNodes = function (excludeHiddenNodes, nodes) {\r\n var vNodes = Array.prototype.slice.call(nodes);\r\n if (excludeHiddenNodes) {\r\n for (var i = 0; i < vNodes.length; i++) {\r\n if (!isVisible(vNodes[i])) {\r\n vNodes.splice(i, 1);\r\n i--;\r\n }\r\n }\r\n }\r\n return vNodes;\r\n };\r\n TreeView.prototype.removeNode = function (node) {\r\n var dragParentUl = closest(node, '.' + PARENTITEM);\r\n var dragParentLi = closest(dragParentUl, '.' + LISTITEM);\r\n if (!isNOU(this.nodeTemplateFn)) {\r\n this.destroyTemplate(node);\r\n }\r\n detach(node);\r\n this.updateElement(dragParentUl, dragParentLi);\r\n this.removeData(node);\r\n };\r\n TreeView.prototype.updateInstance = function () {\r\n this.updateList();\r\n this.updateSelectedNodes();\r\n this.updateExpandedNodes();\r\n };\r\n TreeView.prototype.updateList = function () {\r\n this.liList = Array.prototype.slice.call(selectAll('.' + LISTITEM, this.element));\r\n };\r\n TreeView.prototype.updateSelectedNodes = function () {\r\n this.setProperties({ selectedNodes: [] }, true);\r\n var sNodes = selectAll('.' + ACTIVE, this.element);\r\n this.selectGivenNodes(sNodes);\r\n };\r\n TreeView.prototype.updateExpandedNodes = function () {\r\n this.setProperties({ expandedNodes: [] }, true);\r\n var eNodes = selectAll('[aria-expanded=\"true\"]', this.element);\r\n for (var i = 0, len = eNodes.length; i < len; i++) {\r\n this.addExpand(eNodes[i]);\r\n }\r\n };\r\n TreeView.prototype.removeData = function (node) {\r\n if (this.dataType === 1) {\r\n var dm = new DataManager(this.treeData);\r\n var id = this.getId(node);\r\n var data = {};\r\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\r\n data[this.fields.id] = newId;\r\n dm.remove(this.fields.id, data);\r\n this.removeChildNodes(id);\r\n }\r\n else {\r\n var id = this.getId(node);\r\n this.updateChildField(this.treeData, this.fields, id, null, null, true);\r\n }\r\n };\r\n TreeView.prototype.removeChildNodes = function (parentId) {\r\n var cNodes = this.getChildGroup(this.groupedData, parentId, false);\r\n var childData = [];\r\n if (cNodes) {\r\n for (var i = 0, len = cNodes.length; i < len; i++) {\r\n var dm = new DataManager(this.treeData);\r\n var id = getValue(this.fields.id, cNodes[i]).toString();\r\n var data = {};\r\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\r\n data[this.fields.id] = currId;\r\n var nodeData = dm.remove(this.fields.id, data);\r\n childData.push(nodeData[0]);\r\n this.removeChildNodes(id);\r\n }\r\n }\r\n return childData;\r\n };\r\n TreeView.prototype.doGivenAction = function (nodes, selector, toExpand) {\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n var liEle = this.getElement(nodes[i]);\r\n if (isNOU(liEle)) {\r\n continue;\r\n }\r\n var icon = select('.' + selector, select('.' + TEXTWRAP, liEle));\r\n if (!isNOU(icon)) {\r\n toExpand ? this.expandAction(liEle, icon, null) : this.collapseNode(liEle, icon, null);\r\n }\r\n }\r\n };\r\n TreeView.prototype.addGivenNodes = function (nodes, dropLi, index, isRemote, dropEle) {\r\n if (nodes.length === 0) {\r\n return;\r\n }\r\n var sNodes = this.getSortedData(nodes);\r\n var level = dropLi ? parseFloat(dropLi.getAttribute('aria-level')) + 1 : 1;\r\n if (isRemote) {\r\n this.updateMapper(level);\r\n }\r\n var li = ListBase.createListItemFromJson(this.createElement, sNodes, this.listBaseOption, level);\r\n var dropUl;\r\n if (!dropEle) {\r\n dropUl = dropLi ? this.expandParent(dropLi) : select('.' + PARENTITEM, this.element);\r\n }\r\n else {\r\n dropUl = dropEle;\r\n }\r\n var refNode = dropUl.childNodes[index];\r\n for (var i = 0; i < li.length; i++) {\r\n dropUl.insertBefore(li[i], refNode);\r\n }\r\n var id = this.getId(dropLi);\r\n if (this.dataType === 1) {\r\n this.updateField(this.treeData, this.fields, id, 'hasChildren', true);\r\n var refId = this.getId(refNode);\r\n var pos = isNOU(refId) ? this.treeData.length : this.getDataPos(this.treeData, this.fields, refId);\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (!isNOU(id)) {\r\n var currId = this.isNumberTypeId ? parseFloat(id) : id;\r\n setValue(this.fields.parentID, currId, nodes[j]);\r\n }\r\n this.treeData.splice(pos, 0, nodes[j]);\r\n pos++;\r\n }\r\n }\r\n else {\r\n this.addChildData(this.treeData, this.fields, id, nodes, index);\r\n }\r\n this.finalizeNode(dropUl);\r\n };\r\n TreeView.prototype.updateMapper = function (level) {\r\n var mapper = (level === 1) ? this.fields : this.getChildFields(this.fields, level - 1, 1);\r\n this.updateListProp(mapper);\r\n };\r\n TreeView.prototype.updateListProp = function (mapper) {\r\n var prop = this.getActualProperties(mapper);\r\n this.listBaseOption.fields = prop;\r\n this.listBaseOption.fields.url = prop.hasOwnProperty('navigateUrl') ? prop.navigateUrl : 'navigateUrl';\r\n };\r\n TreeView.prototype.getDataPos = function (obj, mapper, id) {\r\n var pos = null;\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var nodeId = getValue(mapper.id, obj[i]);\r\n if (obj[i] && nodeId && nodeId.toString() === id) {\r\n return i;\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n var data = getValue(mapper.child, obj[i]);\r\n pos = this.getDataPos(data, this.getChildMapper(mapper), id);\r\n if (pos !== null) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\r\n var items = getValue('child', obj[i]);\r\n pos = this.getDataPos(items, this.getChildMapper(mapper), id);\r\n if (pos !== null) {\r\n break;\r\n }\r\n }\r\n }\r\n return pos;\r\n };\r\n TreeView.prototype.addChildData = function (obj, mapper, id, data, index) {\r\n var updated;\r\n if (isNOU(id)) {\r\n index = isNOU(index) ? obj.length : index;\r\n for (var k = 0, len = data.length; k < len; k++) {\r\n obj.splice(index, 0, data[k]);\r\n index++;\r\n }\r\n return updated;\r\n }\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var nodeId = getValue(mapper.id, obj[i]);\r\n if (obj[i] && nodeId && nodeId.toString() === id) {\r\n if ((typeof mapper.child === 'string' && (obj[i].hasOwnProperty(mapper.child) && obj[i][mapper.child] !== null)) ||\r\n ((this.fields.dataSource instanceof DataManager) && obj[i].hasOwnProperty('child'))) {\r\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\r\n var childData = getValue(key, obj[i]);\r\n if (isNOU(childData)) {\r\n childData = [];\r\n }\r\n index = isNOU(index) ? childData.length : index;\r\n for (var k = 0, len = data.length; k < len; k++) {\r\n childData.splice(index, 0, data[k]);\r\n index++;\r\n }\r\n }\r\n else {\r\n var key = (typeof mapper.child === 'string') ? mapper.child : 'child';\r\n obj[i][key] = data;\r\n }\r\n return true;\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n var childObj = getValue(mapper.child, obj[i]);\r\n updated = this.addChildData(childObj, this.getChildMapper(mapper), id, data, index);\r\n if (updated !== undefined) {\r\n break;\r\n }\r\n }\r\n else if ((this.fields.dataSource instanceof DataManager) && !isNOU(getValue('child', obj[i]))) {\r\n var childData = getValue('child', obj[i]);\r\n updated = this.addChildData(childData, this.getChildMapper(mapper), id, data, index);\r\n if (updated !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return updated;\r\n };\r\n TreeView.prototype.doDisableAction = function (nodes) {\r\n var validNodes = this.nodeType(nodes);\r\n var validID = this.checkValidId(validNodes);\r\n this.validArr = [];\r\n for (var i = 0, len = validID.length; i < len; i++) {\r\n var id = validID[i][this.fields.id].toString();\r\n if (id && this.disableNode.indexOf(id) === -1) {\r\n this.disableNode.push(id);\r\n }\r\n var liEle = this.getElement(id);\r\n if (liEle) {\r\n liEle.setAttribute('aria-disabled', 'true');\r\n addClass([liEle], DISABLE);\r\n }\r\n }\r\n };\r\n TreeView.prototype.doEnableAction = function (nodes) {\r\n var strNodes = this.nodeType(nodes);\r\n for (var i = 0, len = strNodes.length; i < len; i++) {\r\n var liEle = this.getElement(strNodes[i]);\r\n var id = strNodes[i];\r\n if (id && this.disableNode.indexOf(id) !== -1) {\r\n this.disableNode.splice(this.disableNode.indexOf(id), 1);\r\n }\r\n if (liEle) {\r\n liEle.removeAttribute('aria-disabled');\r\n removeClass([liEle], DISABLE);\r\n }\r\n }\r\n };\r\n TreeView.prototype.nodeType = function (nodes) {\r\n var validID = [];\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n var id = void 0;\r\n if (typeof nodes[i] == \"string\") {\r\n id = (nodes[i]) ? nodes[i].toString() : null;\r\n }\r\n else if (typeof nodes[i] === \"object\") {\r\n id = nodes[i] ? nodes[i].getAttribute(\"data-uid\").toString() : null;\r\n }\r\n if (validID.indexOf(id) == -1) {\r\n validID.push(id);\r\n }\r\n }\r\n return validID;\r\n };\r\n TreeView.prototype.checkValidId = function (node) {\r\n var _this = this;\r\n if (this.dataType === 1) {\r\n this.validArr = this.treeData.filter(function (data) {\r\n return node.indexOf(data[_this.fields.id] ? data[_this.fields.id].toString() : null) !== -1;\r\n });\r\n }\r\n else if (this.dataType === 2) {\r\n for (var k = 0; k < this.treeData.length; k++) {\r\n var id = this.treeData[k][this.fields.id] ? this.treeData[k][this.fields.id].toString() : null;\r\n if (node.indexOf(id) !== -1) {\r\n this.validArr.push(this.treeData[k]);\r\n }\r\n var childItems = getValue(this.fields.child.toString(), this.treeData[k]);\r\n if (childItems) {\r\n this.filterNestedChild(childItems, node);\r\n }\r\n }\r\n }\r\n return this.validArr;\r\n };\r\n TreeView.prototype.filterNestedChild = function (treeData, nodes) {\r\n for (var k = 0; k < treeData.length; k++) {\r\n var id = treeData[k][this.fields.id] ? treeData[k][this.fields.id].toString() : null;\r\n if (nodes.indexOf(id) !== -1) {\r\n this.validArr.push(treeData[k]);\r\n }\r\n var childItems = getValue(this.fields.child.toString(), treeData[k]);\r\n if (childItems) {\r\n this.filterNestedChild(childItems, nodes);\r\n }\r\n }\r\n };\r\n TreeView.prototype.setTouchClass = function () {\r\n var ele = closest(this.element, '.' + BIGGER);\r\n this.touchClass = isNOU(ele) ? '' : SMALL;\r\n };\r\n TreeView.prototype.updatePersistProp = function () {\r\n this.removeField(this.treeData, this.fields, ['selected', 'expanded']);\r\n var sleNodes = this.selectedNodes;\r\n for (var l = 0, slelen = sleNodes.length; l < slelen; l++) {\r\n this.updateField(this.treeData, this.fields, sleNodes[l], 'selected', true);\r\n }\r\n var enodes = this.expandedNodes;\r\n for (var k = 0, nodelen = enodes.length; k < nodelen; k++) {\r\n this.updateField(this.treeData, this.fields, enodes[k], 'expanded', true);\r\n }\r\n if (this.showCheckBox) {\r\n this.removeField(this.treeData, this.fields, ['isChecked']);\r\n var cnodes = this.checkedNodes;\r\n for (var m = 0, nodelen = cnodes.length; m < nodelen; m++) {\r\n this.updateField(this.treeData, this.fields, cnodes[m], 'isChecked', true);\r\n }\r\n }\r\n };\r\n TreeView.prototype.removeField = function (obj, mapper, names) {\r\n if (isNOU(obj) || isNOU(mapper)) {\r\n return;\r\n }\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n for (var j = 0; j < names.length; j++) {\r\n var field = this.getMapperProp(mapper, names[j]);\r\n if (!isNOU(obj[i][field])) {\r\n delete obj[i][field];\r\n }\r\n }\r\n if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n this.removeField(getValue(mapper.child, obj[i]), this.getChildMapper(mapper), names);\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\r\n this.removeField(getValue('child', obj[i]), this.getChildMapper(mapper), names);\r\n }\r\n }\r\n };\r\n TreeView.prototype.getMapperProp = function (mapper, fieldName) {\r\n switch (fieldName) {\r\n case 'selected':\r\n return !isNOU(mapper.selected) ? mapper.selected : 'selected';\r\n case 'expanded':\r\n return !isNOU(mapper.expanded) ? mapper.expanded : 'expanded';\r\n case 'isChecked':\r\n return !isNOU(mapper.isChecked) ? mapper.isChecked : 'isChecked';\r\n case 'hasChildren':\r\n return !isNOU(mapper.hasChildren) ? mapper.hasChildren : 'hasChildren';\r\n default:\r\n return fieldName;\r\n }\r\n };\r\n TreeView.prototype.updateField = function (obj, mapper, id, key, value) {\r\n var childNodes;\r\n if (isNOU(id)) {\r\n return;\r\n }\r\n else if (this.dataType === 1) {\r\n var newId = this.isNumberTypeId ? parseFloat(id) : id;\r\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', newId, false));\r\n setValue(this.getMapperProp(mapper, key), value, resultData[0]);\r\n }\r\n else {\r\n this.updateChildField(obj, mapper, id, key, value);\r\n }\r\n };\r\n TreeView.prototype.updateChildField = function (obj, mapper, id, key, value, remove) {\r\n var removedData;\r\n if (isNOU(obj)) {\r\n return removedData;\r\n }\r\n for (var i = 0, objlen = obj.length; i < objlen; i++) {\r\n var nodeId = getValue(mapper.id, obj[i]);\r\n if (obj[i] && nodeId && nodeId.toString() === id) {\r\n if (remove) {\r\n removedData = obj.splice(i, 1);\r\n }\r\n else {\r\n setValue(this.getMapperProp(mapper, key), value, obj[i]);\r\n removedData = [];\r\n }\r\n return removedData;\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, obj[i]))) {\r\n var childData = getValue(mapper.child, obj[i]);\r\n removedData = this.updateChildField(childData, this.getChildMapper(mapper), id, key, value, remove);\r\n if (removedData !== undefined) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', obj[i]))) {\r\n var childItems = getValue('child', obj[i]);\r\n removedData = this.updateChildField(childItems, this.getChildMapper(mapper), id, key, value, remove);\r\n if (removedData !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return removedData;\r\n };\r\n TreeView.prototype.triggerEvent = function () {\r\n this.renderReactTemplates();\r\n var eventArgs = { data: this.treeData };\r\n this.trigger('dataSourceChanged', eventArgs);\r\n };\r\n TreeView.prototype.wireInputEvents = function (inpEle) {\r\n EventHandler.add(inpEle, 'blur', this.inputFocusOut, this);\r\n };\r\n TreeView.prototype.wireEditingEvents = function (toBind) {\r\n var _this = this;\r\n if (toBind && !this.disabled) {\r\n var proxy_2 = this;\r\n this.touchEditObj = new Touch(this.element, {\r\n tap: function (e) {\r\n if (_this.isDoubleTapped(e) && e.tapCount === 2) {\r\n e.originalEvent.preventDefault();\r\n proxy_2.editingHandler(e.originalEvent);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n if (this.touchEditObj) {\r\n this.touchEditObj.destroy();\r\n }\r\n }\r\n };\r\n TreeView.prototype.wireClickEvent = function (toBind) {\r\n if (toBind) {\r\n var proxy_3 = this;\r\n this.touchClickObj = new Touch(this.element, {\r\n tap: function (e) {\r\n proxy_3.clickHandler(e);\r\n }\r\n });\r\n }\r\n else {\r\n if (this.touchClickObj) {\r\n this.touchClickObj.destroy();\r\n }\r\n }\r\n };\r\n TreeView.prototype.wireExpandOnEvent = function (toBind) {\r\n var _this = this;\r\n if (toBind) {\r\n var proxy_4 = this;\r\n this.touchExpandObj = new Touch(this.element, {\r\n tap: function (e) {\r\n if ((_this.expandOnType === 'Click' || (_this.expandOnType === 'DblClick' && _this.isDoubleTapped(e) && e.tapCount === 2))\r\n && e.originalEvent.which !== 3) {\r\n proxy_4.expandHandler(e);\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n if (this.touchExpandObj) {\r\n this.touchExpandObj.destroy();\r\n }\r\n }\r\n };\r\n TreeView.prototype.mouseDownHandler = function (e) {\r\n this.mouseDownStatus = true;\r\n if (e.shiftKey || e.ctrlKey) {\r\n e.preventDefault();\r\n }\r\n if (e.ctrlKey && this.allowMultiSelection) {\r\n EventHandler.add(this.element, 'contextmenu', this.preventContextMenu, this);\r\n }\r\n };\r\n ;\r\n TreeView.prototype.preventContextMenu = function (e) {\r\n e.preventDefault();\r\n };\r\n TreeView.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\r\n this.wireClickEvent(true);\r\n if (this.expandOnType !== 'None') {\r\n this.wireExpandOnEvent(true);\r\n }\r\n EventHandler.add(this.element, 'focus', this.focusIn, this);\r\n EventHandler.add(this.element, 'blur', this.focusOut, this);\r\n EventHandler.add(this.element, 'mouseover', this.onMouseOver, this);\r\n EventHandler.add(this.element, 'mouseout', this.onMouseLeave, this);\r\n this.keyboardModule = new KeyboardEvents(this.element, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown',\r\n });\r\n };\r\n TreeView.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\r\n this.wireClickEvent(false);\r\n this.wireExpandOnEvent(false);\r\n EventHandler.remove(this.element, 'focus', this.focusIn);\r\n EventHandler.remove(this.element, 'blur', this.focusOut);\r\n EventHandler.remove(this.element, 'mouseover', this.onMouseOver);\r\n EventHandler.remove(this.element, 'mouseout', this.onMouseLeave);\r\n if (!this.disabled) {\r\n this.keyboardModule.destroy();\r\n }\r\n };\r\n TreeView.prototype.parents = function (element, selector) {\r\n var matched = [];\r\n var el = element.parentNode;\r\n while (!isNOU(el)) {\r\n if (matches(el, selector)) {\r\n matched.push(el);\r\n }\r\n el = el.parentNode;\r\n }\r\n return matched;\r\n };\r\n TreeView.prototype.isDoubleTapped = function (e) {\r\n var target = e.originalEvent.target;\r\n var secondTap;\r\n if (target && e.tapCount) {\r\n if (e.tapCount === 1) {\r\n this.firstTap = closest(target, '.' + LISTITEM);\r\n }\r\n else if (e.tapCount === 2) {\r\n secondTap = closest(target, '.' + LISTITEM);\r\n }\r\n }\r\n return (this.firstTap === secondTap);\r\n };\r\n TreeView.prototype.isDescendant = function (parent, child) {\r\n var node = child.parentNode;\r\n while (!isNOU(node)) {\r\n if (node === parent) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n };\r\n TreeView.prototype.showSpinner = function (element) {\r\n addClass([element], LOAD);\r\n createSpinner({\r\n target: element,\r\n width: Browser.isDevice ? 16 : 14\r\n }, this.createElement);\r\n showSpinner(element);\r\n };\r\n TreeView.prototype.hideSpinner = function (element) {\r\n hideSpinner(element);\r\n element.innerHTML = '';\r\n removeClass([element], LOAD);\r\n };\r\n TreeView.prototype.setCheckedNodes = function (nodes) {\r\n nodes = JSON.parse(JSON.stringify(nodes));\r\n this.uncheckAll(this.checkedNodes);\r\n this.setIndeterminate(nodes);\r\n if (nodes.length > 0) {\r\n this.checkAll(nodes);\r\n }\r\n };\r\n /**\r\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel\r\n */\r\n TreeView.prototype.setValidCheckedNode = function (node) {\r\n if (this.dataType === 1) {\r\n var mapper = this.fields;\r\n var resultData = new DataManager(this.treeData).executeLocal(new Query().where(mapper.id, 'equal', node, true));\r\n if (resultData[0]) {\r\n this.setChildCheckState(resultData, node, resultData[0]);\r\n if (this.autoCheck) {\r\n var parent_4 = resultData[0][this.fields.parentID] ? resultData[0][this.fields.parentID].toString() : null;\r\n var childNodes = this.getChildNodes(this.treeData, parent_4);\r\n var count = 0;\r\n for (var len = 0; len < childNodes.length; len++) {\r\n var childId = childNodes[len][this.fields.id].toString();\r\n if (this.checkedNodes.indexOf(childId) !== -1) {\r\n count++;\r\n }\r\n }\r\n if (count === childNodes.length && this.checkedNodes.indexOf(parent_4) === -1 && parent_4) {\r\n this.checkedNodes.push(parent_4);\r\n }\r\n }\r\n }\r\n }\r\n else if (this.dataType === 2) {\r\n for (var a = 0; a < this.treeData.length; a++) {\r\n var index = this.treeData[a][this.fields.id] ? this.treeData[a][this.fields.id].toString() : '';\r\n if (index === node && this.checkedNodes.indexOf(node) === -1) {\r\n this.checkedNodes.push(node);\r\n break;\r\n }\r\n var childItems = getValue(this.fields.child.toString(), this.treeData[a]);\r\n if (childItems) {\r\n this.setChildCheckState(childItems, node, this.treeData[a]);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Checks whether the checkedNodes entered are valid and sets the valid checkedNodes while changing via setmodel(for hierarchical DS)\r\n */\r\n TreeView.prototype.setChildCheckState = function (childItems, node, treeData) {\r\n var checkedParent;\r\n var count = 0;\r\n if (this.dataType === 1) {\r\n if (treeData) {\r\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : null;\r\n }\r\n for (var index = 0; index < childItems.length; index++) {\r\n var checkNode = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : null;\r\n if (treeData && checkedParent && this.autoCheck) {\r\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkNode) === -1) {\r\n this.checkedNodes.push(checkNode);\r\n }\r\n }\r\n if (checkNode === node && this.checkedNodes.indexOf(node) === -1) {\r\n this.checkedNodes.push(node);\r\n }\r\n var subChildItems = this.getChildNodes(this.treeData, checkNode);\r\n if (subChildItems) {\r\n this.setChildCheckState(subChildItems, node, treeData);\r\n }\r\n }\r\n }\r\n else {\r\n if (treeData) {\r\n checkedParent = treeData[this.fields.id] ? treeData[this.fields.id].toString() : '';\r\n }\r\n for (var index = 0; index < childItems.length; index++) {\r\n var checkedChild = childItems[index][this.fields.id] ? childItems[index][this.fields.id].toString() : '';\r\n if (treeData && checkedParent && this.autoCheck) {\r\n if (this.checkedNodes.indexOf(checkedParent) !== -1 && this.checkedNodes.indexOf(checkedChild) === -1) {\r\n this.checkedNodes.push(checkedChild);\r\n }\r\n }\r\n if (checkedChild === node && this.checkedNodes.indexOf(node) === -1) {\r\n this.checkedNodes.push(node);\r\n }\r\n var subChildItems = getValue(this.fields.child.toString(), childItems[index]);\r\n if (subChildItems) {\r\n this.setChildCheckState(subChildItems, node, childItems[index]);\r\n }\r\n if (this.checkedNodes.indexOf(checkedChild) !== -1 && this.autoCheck) {\r\n count++;\r\n }\r\n if (count === childItems.length && this.checkedNodes.indexOf(checkedParent) === -1 && this.autoCheck) {\r\n this.checkedNodes.push(checkedParent);\r\n }\r\n }\r\n }\r\n };\r\n TreeView.prototype.setIndeterminate = function (nodes) {\r\n for (var i = 0; i < nodes.length; i++) {\r\n this.setValidCheckedNode(nodes[i]);\r\n }\r\n };\r\n TreeView.prototype.updatePosition = function (id, newData, isRefreshChild, childValue) {\r\n if (this.dataType === 1) {\r\n var pos = this.getDataPos(this.treeData, this.fields, id);\r\n this.treeData.splice(pos, 1, newData);\r\n if (isRefreshChild) {\r\n this.removeChildNodes(id);\r\n for (var j = 0; j < childValue.length; j++) {\r\n this.treeData.splice(pos, 0, childValue[j]);\r\n pos++;\r\n }\r\n }\r\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\r\n }\r\n else {\r\n this.updateChildPosition(this.treeData, this.fields, id, [newData], undefined);\r\n }\r\n };\r\n TreeView.prototype.updateChildPosition = function (treeData, mapper, currID, newData, index) {\r\n var found;\r\n for (var i = 0, objlen = treeData.length; i < objlen; i++) {\r\n var nodeId = getValue(mapper.id, treeData[i]);\r\n if (treeData[i] && nodeId && nodeId.toString() === currID) {\r\n treeData[i] = newData[0];\r\n return true;\r\n }\r\n else if (typeof mapper.child === 'string' && !isNOU(getValue(mapper.child, treeData[i]))) {\r\n var childObj = getValue(mapper.child, treeData[i]);\r\n found = this.updateChildPosition(childObj, this.getChildMapper(mapper), currID, newData, index);\r\n if (found !== undefined) {\r\n break;\r\n }\r\n }\r\n else if (this.fields.dataSource instanceof DataManager && !isNOU(getValue('child', treeData[i]))) {\r\n var childData = getValue('child', treeData[i]);\r\n found = this.updateChildPosition(childData, this.getChildMapper(mapper), currID, newData, index);\r\n if (found !== undefined) {\r\n break;\r\n }\r\n }\r\n }\r\n return found;\r\n };\r\n TreeView.prototype.dynamicState = function () {\r\n this.setDragAndDrop(this.allowDragAndDrop);\r\n this.wireEditingEvents(this.allowEditing);\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n this.setRipple();\r\n }\r\n else {\r\n this.unWireEvents();\r\n this.rippleFn();\r\n this.rippleIconFn();\r\n }\r\n };\r\n TreeView.prototype.crudOperation = function (operation, nodes, target, newText, newNode, index, prevent) {\r\n var _this = this;\r\n var data = this.fields.dataSource;\r\n var matchedArr = [];\r\n var query = this.getQuery(this.fields);\r\n var key = this.fields.id;\r\n var crud;\r\n var changes = {\r\n addedRecords: [],\r\n deletedRecords: [],\r\n changedRecords: []\r\n };\r\n var nodesID = [];\r\n if (nodes) {\r\n nodesID = this.nodeType(nodes);\r\n }\r\n else if (target) {\r\n if (typeof target == \"string\") {\r\n nodesID[0] = target.toString();\r\n }\r\n else if (typeof target === \"object\") {\r\n nodesID[0] = target.getAttribute(\"data-uid\").toString();\r\n }\r\n }\r\n for (var i = 0, len = nodesID.length; i < len; i++) {\r\n var liEle = this.getElement(nodesID[i]);\r\n if (isNullOrUndefined(liEle)) {\r\n continue;\r\n }\r\n var removedData = this.getNodeObject(nodesID[i]);\r\n matchedArr.push(removedData);\r\n }\r\n switch (operation) {\r\n case 'delete':\r\n if (nodes.length == 1) {\r\n crud = data.remove(key, matchedArr[0], query.fromTable, query);\r\n }\r\n else {\r\n changes.deletedRecords = matchedArr;\r\n crud = data.saveChanges(changes, key, query.fromTable, query);\r\n }\r\n crud.then(function (e) { return _this.deleteSuccess(nodesID); })\r\n .catch(function (e) { return _this.dmFailure(e); });\r\n break;\r\n case 'update':\r\n matchedArr[0][this.fields.text] = newText;\r\n crud = data.update(key, matchedArr[0], query.fromTable, query);\r\n crud.then(function (e) { return _this.editSucess(target, newText, prevent); })\r\n .catch(function (e) { return _this.dmFailure(e, target, prevent); });\r\n break;\r\n case 'insert':\r\n if (newNode.length == 1) {\r\n crud = data.insert(newNode[0], query.fromTable, query);\r\n }\r\n else {\r\n var arr = [];\r\n for (var i = 0, len = newNode.length; i < len; i++) {\r\n arr.push(newNode[i]);\r\n }\r\n changes.addedRecords = arr;\r\n crud = data.saveChanges(changes, key, query.fromTable, query);\r\n }\r\n crud.then(function (e) {\r\n var dropLi = _this.getElement(target);\r\n _this.addSuccess(newNode, dropLi, index);\r\n _this.preventExpand = false;\r\n }).catch(function (e) { return _this.dmFailure(e); });\r\n break;\r\n }\r\n };\r\n TreeView.prototype.deleteSuccess = function (nodes) {\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n var liEle = this.getElement(nodes[i]);\r\n if (isNOU(liEle)) {\r\n continue;\r\n }\r\n this.removeNode(liEle);\r\n }\r\n this.updateInstance();\r\n if (this.dataType === 1) {\r\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\r\n }\r\n this.triggerEvent();\r\n };\r\n TreeView.prototype.editSucess = function (target, newText, prevent) {\r\n var liEle = this.getElement(target);\r\n var txtEle = select('.' + LISTTEXT, liEle);\r\n this.appendNewText(liEle, txtEle, newText, prevent);\r\n };\r\n TreeView.prototype.addSuccess = function (nodes, dropLi, index) {\r\n var dropUl;\r\n var icon = dropLi ? dropLi.querySelector('.' + ICON) : null;\r\n var proxy = this;\r\n if (dropLi && icon && icon.classList.contains(EXPANDABLE) &&\r\n dropLi.querySelector('.' + PARENTITEM) === null) {\r\n proxy.renderChildNodes(dropLi, null, function () {\r\n dropUl = dropLi.querySelector('.' + PARENTITEM);\r\n proxy.addGivenNodes(nodes, dropLi, index, true, dropUl);\r\n proxy.triggerEvent();\r\n });\r\n }\r\n else {\r\n this.addGivenNodes(nodes, dropLi, index, true);\r\n this.triggerEvent();\r\n }\r\n };\r\n TreeView.prototype.dmFailure = function (e, target, prevent) {\r\n if (target) {\r\n this.updatePreviousText(target, prevent);\r\n }\r\n this.trigger('actionFailure', { error: e });\r\n };\r\n TreeView.prototype.updatePreviousText = function (target, prevent) {\r\n var liEle = this.getElement(target);\r\n var txtEle = select('.' + LISTTEXT, liEle);\r\n this.updateText(liEle, txtEle, this.oldText, prevent);\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n * @param {TreeView} newProp\r\n * @param {TreeView} oldProp\r\n * @returns void\r\n * @private\r\n */\r\n TreeView.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'allowDragAndDrop':\r\n this.setDragAndDrop(this.allowDragAndDrop);\r\n break;\r\n case 'dragArea':\r\n if (this.allowDragAndDrop) {\r\n this.dragObj.dragArea = this.dragArea;\r\n }\r\n break;\r\n case 'allowEditing':\r\n this.wireEditingEvents(this.allowEditing);\r\n break;\r\n case 'allowMultiSelection':\r\n if (this.selectedNodes.length > 1) {\r\n var sNode = this.getElement(this.selectedNodes[0]);\r\n this.isLoaded = false;\r\n this.removeSelectAll();\r\n this.selectNode(sNode, null);\r\n this.isLoaded = true;\r\n }\r\n this.setMultiSelect(this.allowMultiSelection);\r\n this.addMultiSelect(this.allowMultiSelection);\r\n break;\r\n case 'checkedNodes':\r\n if (this.showCheckBox) {\r\n this.checkedNodes = oldProp.checkedNodes;\r\n this.setCheckedNodes(newProp.checkedNodes);\r\n }\r\n break;\r\n case 'autoCheck':\r\n if (this.showCheckBox) {\r\n this.autoCheck = newProp.autoCheck;\r\n this.ensureIndeterminate();\r\n }\r\n break;\r\n case 'cssClass':\r\n this.setCssClass(oldProp.cssClass, newProp.cssClass);\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRtl();\r\n break;\r\n case 'expandedNodes':\r\n this.isAnimate = false;\r\n this.setProperties({ expandedNodes: [] }, true);\r\n this.collapseAll();\r\n this.isInitalExpand = true;\r\n this.setProperties({ expandedNodes: isNOU(newProp.expandedNodes) ? [] : newProp.expandedNodes }, true);\r\n this.doExpandAction();\r\n this.isInitalExpand = false;\r\n this.isAnimate = true;\r\n break;\r\n case 'expandOn':\r\n this.wireExpandOnEvent(false);\r\n this.setExpandOnType();\r\n if (this.expandOnType !== 'None' && !this.disabled) {\r\n this.wireExpandOnEvent(true);\r\n }\r\n break;\r\n case 'disabled':\r\n this.setDisabledMode();\r\n this.dynamicState();\r\n break;\r\n case 'fields':\r\n this.isAnimate = false;\r\n this.isFieldChange = true;\r\n this.initialRender = true;\r\n this.reRenderNodes();\r\n this.initialRender = false;\r\n this.isAnimate = true;\r\n this.isFieldChange = false;\r\n break;\r\n case 'fullRowSelect':\r\n this.setFullRow(this.fullRowSelect);\r\n this.addFullRow(this.fullRowSelect);\r\n break;\r\n case 'loadOnDemand':\r\n if (this.loadOnDemand === false && !this.onLoaded) {\r\n var nodes = this.element.querySelectorAll('li');\r\n var i = 0;\r\n while (i < nodes.length) {\r\n if (nodes[i].getAttribute('aria-expanded') !== 'true') {\r\n this.renderChildNodes(nodes[i], true, null, true);\r\n }\r\n i++;\r\n }\r\n this.onLoaded = true;\r\n }\r\n break;\r\n case 'nodeTemplate':\r\n this.hasTemplate = false;\r\n this.nodeTemplateFn = this.templateComplier(this.nodeTemplate);\r\n this.reRenderNodes();\r\n break;\r\n case 'selectedNodes':\r\n this.removeSelectAll();\r\n this.setProperties({ selectedNodes: newProp.selectedNodes }, true);\r\n this.doSelectionAction();\r\n break;\r\n case 'showCheckBox':\r\n this.reRenderNodes();\r\n break;\r\n case 'sortOrder':\r\n this.reRenderNodes();\r\n break;\r\n case 'fullRowNavigable':\r\n this.setProperties({ fullRowNavigable: newProp.fullRowNavigable }, true);\r\n this.listBaseOption.itemNavigable = newProp.fullRowNavigable;\r\n this.reRenderNodes();\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Removes the component from the DOM and detaches all its related event handlers. It also removes the attributes and classes.\r\n */\r\n TreeView.prototype.destroy = function () {\r\n this.clearTemplate();\r\n this.element.removeAttribute('aria-activedescendant');\r\n this.element.removeAttribute('tabindex');\r\n this.unWireEvents();\r\n this.wireEditingEvents(false);\r\n if (!this.disabled) {\r\n this.rippleFn();\r\n this.rippleIconFn();\r\n }\r\n this.setCssClass(this.cssClass, null);\r\n this.setDragAndDrop(false);\r\n this.setFullRow(false);\r\n if (this.ulElement && this.ulElement.parentElement) {\r\n this.ulElement.parentElement.removeChild(this.ulElement);\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * Adds the collection of TreeView nodes based on target and index position. If target node is not specified,\r\n * then the nodes are added as children of the given parentID or in the root level of TreeView.\r\n * @param { { [key: string]: Object }[] } nodes - Specifies the array of JSON data that has to be added.\r\n * @param { string | Element } target - Specifies ID of TreeView node/TreeView node as target element.\r\n * @param { number } index - Specifies the index to place the newly added nodes in the target element.\r\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\r\n */\r\n TreeView.prototype.addNodes = function (nodes, target, index, preventTargetExpand) {\r\n if (isNOU(nodes)) {\r\n return;\r\n }\r\n nodes = JSON.parse(JSON.stringify(nodes));\r\n var dropLi = this.getElement(target);\r\n this.preventExpand = preventTargetExpand;\r\n if (this.fields.dataSource instanceof DataManager) {\r\n if (!this.isOffline) {\r\n this.crudOperation('insert', null, target, null, nodes, index, this.preventExpand);\r\n }\r\n else {\r\n this.addSuccess(nodes, dropLi, index);\r\n }\r\n }\r\n else if (this.dataType === 2) {\r\n this.addGivenNodes(nodes, dropLi, index);\r\n }\r\n else {\r\n if (dropLi) {\r\n this.addGivenNodes(nodes, dropLi, index);\r\n }\r\n else {\r\n nodes = this.getSortedData(nodes);\r\n for (var i = 0; i < nodes.length; i++) {\r\n var pid = getValue(this.fields.parentID, nodes[i]);\r\n dropLi = pid ? this.getElement(pid.toString()) : pid;\r\n this.addGivenNodes([nodes[i]], dropLi, index);\r\n }\r\n }\r\n this.groupedData = this.getGroupedData(this.treeData, this.fields.parentID);\r\n }\r\n this.updateCheckedStateFromDS();\r\n if (this.showCheckBox && dropLi) {\r\n this.ensureParentCheckState(dropLi);\r\n }\r\n if ((this.fields.dataSource instanceof DataManager === false)) {\r\n this.preventExpand = false;\r\n this.triggerEvent();\r\n }\r\n };\r\n /**\r\n * Instead of clicking on the TreeView node for editing, we can enable it by using\r\n * `beginEdit` property. On passing the node ID or element through this property, the edit textBox\r\n * will be created for the particular node thus allowing us to edit it.\r\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\r\n */\r\n TreeView.prototype.beginEdit = function (node) {\r\n var ele = this.getElement(node);\r\n if (isNOU(ele) || this.disabled) {\r\n return;\r\n }\r\n this.createTextbox(ele, null);\r\n };\r\n /**\r\n * Checks all the unchecked nodes. You can also check specific nodes by passing array of unchecked nodes\r\n * as argument to this method.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\r\n */\r\n TreeView.prototype.checkAll = function (nodes) {\r\n if (this.showCheckBox) {\r\n this.doCheckBoxAction(nodes, true);\r\n }\r\n };\r\n /**\r\n * Collapses all the expanded TreeView nodes. You can collapse specific nodes by passing array of nodes as argument to this method.\r\n * You can also collapse all the nodes excluding the hidden nodes by setting **excludeHiddenNodes** to true. If you want to collapse\r\n * a specific level of nodes, set **level** as argument to collapseAll method.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/ array of TreeView node.\r\n * @param {number} level - TreeView nodes will collapse up to the given level.\r\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes of TreeView when collapsing all nodes.\r\n */\r\n TreeView.prototype.collapseAll = function (nodes, level, excludeHiddenNodes) {\r\n if (!isNOU(nodes)) {\r\n this.doGivenAction(nodes, COLLAPSIBLE, false);\r\n }\r\n else {\r\n if (level > 0) {\r\n this.collapseByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\r\n }\r\n else {\r\n this.collapseAllNodes(excludeHiddenNodes);\r\n }\r\n }\r\n };\r\n /**\r\n * Disables the collection of nodes by passing the ID of nodes or node elements in the array.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\r\n */\r\n TreeView.prototype.disableNodes = function (nodes) {\r\n if (!isNOU(nodes)) {\r\n this.doDisableAction(nodes);\r\n }\r\n };\r\n /**\r\n * Enables the collection of disabled nodes by passing the ID of nodes or node elements in the array.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\r\n */\r\n TreeView.prototype.enableNodes = function (nodes) {\r\n if (!isNOU(nodes)) {\r\n this.doEnableAction(nodes);\r\n }\r\n };\r\n /**\r\n * Ensures visibility of the TreeView node by using node ID or node element.\r\n * When many TreeView nodes are present and we need to find a particular node, `ensureVisible` property\r\n * helps bring the node to visibility by expanding the TreeView and scrolling to the specific node.\r\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView nodes.\r\n */\r\n TreeView.prototype.ensureVisible = function (node) {\r\n var liEle = this.getElement(node);\r\n if (isNOU(liEle)) {\r\n return;\r\n }\r\n var parents = this.parents(liEle, '.' + LISTITEM);\r\n this.expandAll(parents);\r\n setTimeout(function () { liEle.scrollIntoView(true); }, 450);\r\n };\r\n /**\r\n * Expands all the collapsed TreeView nodes. You can expand the specific nodes by passing the array of collapsed nodes\r\n * as argument to this method. You can also expand all the collapsed nodes by excluding the hidden nodes by setting\r\n * **excludeHiddenNodes** to true to this method. To expand a specific level of nodes, set **level** as argument to expandAll method.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView nodes.\r\n * @param {number} level - TreeView nodes will expand up to the given level.\r\n * @param {boolean} excludeHiddenNodes - Whether or not to exclude hidden nodes when expanding all nodes.\r\n */\r\n TreeView.prototype.expandAll = function (nodes, level, excludeHiddenNodes) {\r\n if (!isNOU(nodes)) {\r\n this.doGivenAction(nodes, EXPANDABLE, true);\r\n }\r\n else {\r\n if (level > 0) {\r\n this.expandByLevel(select('.' + PARENTITEM, this.element), level, excludeHiddenNodes);\r\n }\r\n else {\r\n this.expandAllNodes(excludeHiddenNodes);\r\n }\r\n }\r\n };\r\n /**\r\n * Gets all the checked nodes including child, whether it is loaded or not.\r\n */\r\n TreeView.prototype.getAllCheckedNodes = function () {\r\n var checkNodes = this.checkedNodes;\r\n return checkNodes;\r\n };\r\n /**\r\n * Gets all the disabled nodes including child, whether it is loaded or not.\r\n */\r\n TreeView.prototype.getDisabledNodes = function () {\r\n var disabledNodes = this.disableNode;\r\n return disabledNodes;\r\n };\r\n /**\r\n * Get the node's data such as id, text, parentID, selected, isChecked, and expanded by passing the node element or it's ID.\r\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\r\n */\r\n TreeView.prototype.getNode = function (node) {\r\n var ele = this.getElement(node);\r\n return this.getNodeData(ele, true);\r\n };\r\n /**\r\n * To get the updated data source of TreeView after performing some operation like drag and drop, node editing,\r\n * node selecting/unSelecting, node expanding/collapsing, node checking/unChecking, adding and removing node.\r\n * * If you pass the ID of TreeView node as arguments for this method then it will return the updated data source\r\n * of the corresponding node otherwise it will return the entire updated data source of TreeView.\r\n * * The updated data source also contains custom attributes if you specified in data source.\r\n * @param {string | Element} node - Specifies ID of TreeView node/TreeView node.\r\n * @isGenericType true\r\n */\r\n TreeView.prototype.getTreeData = function (node) {\r\n var id = this.getId(node);\r\n this.updatePersistProp();\r\n if (isNOU(id)) {\r\n return this.treeData;\r\n }\r\n else {\r\n var data = this.getNodeObject(id);\r\n return isNOU(data) ? [] : [data];\r\n }\r\n };\r\n /**\r\n * Moves the collection of nodes within the same TreeView based on target or its index position.\r\n * @param {string[] | Element[]} sourceNodes - Specifies the array of TreeView nodes ID/array of TreeView node.\r\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\r\n * @param {number} index - Specifies the index to place the moved nodes in the target element.\r\n * @param { boolean } preventTargetExpand - If set to true, the target parent node will be prevented from auto expanding.\r\n */\r\n TreeView.prototype.moveNodes = function (sourceNodes, target, index, preventTargetExpand) {\r\n var dropLi = this.getElement(target);\r\n if (isNOU(dropLi)) {\r\n return;\r\n }\r\n for (var i = 0; i < sourceNodes.length; i++) {\r\n var dragLi = this.getElement(sourceNodes[i]);\r\n if (isNOU(dragLi) || dropLi.isSameNode(dragLi) || this.isDescendant(dragLi, dropLi)) {\r\n continue;\r\n }\r\n this.preventExpand = preventTargetExpand;\r\n this.dropAsChildNode(dragLi, dropLi, this, index);\r\n }\r\n if (this.fields.dataSource instanceof DataManager === false) {\r\n this.preventExpand = false;\r\n }\r\n this.triggerEvent();\r\n };\r\n /**\r\n * Refreshes a particular node of the TreeView.\r\n * @param {string | Element} target - Specifies the ID of TreeView node or TreeView node as target element.\r\n * @param {{ [key: string]: Object }[]} newData - Specifies the new data of TreeView node.\r\n */\r\n TreeView.prototype.refreshNode = function (target, newData) {\r\n if (isNOU(target) || isNOU(newData)) {\r\n return;\r\n }\r\n var id;\r\n var isRefreshChild = false;\r\n if (this.dataType == 1 && newData.length > 1) {\r\n isRefreshChild = true;\r\n }\r\n else if (this.dataType == 2 && newData.length === 1) {\r\n var updatedChildValue = getValue(this.fields.child.toString(), newData[0]);\r\n if (!isNOU(updatedChildValue)) {\r\n isRefreshChild = true;\r\n }\r\n }\r\n var liEle = this.getElement(target);\r\n id = liEle ? liEle.getAttribute('data-uid') : ((target) ? target.toString() : null);\r\n this.refreshData = this.getNodeObject(id);\r\n newData = JSON.parse(JSON.stringify(newData));\r\n /* eslint-disable */\r\n var newNodeData;\r\n var parentData;\r\n if (this.dataType == 1 && isRefreshChild) {\r\n for (var k = 0; k < newData.length; k++) {\r\n if (isNOU(newData[k][this.fields.parentID])) {\r\n parentData = newData[k];\r\n newData.splice(k, 1);\r\n break;\r\n }\r\n }\r\n newNodeData = extend({}, this.refreshData, parentData);\r\n }\r\n else {\r\n newNodeData = extend({}, this.refreshData, newData[0]);\r\n }\r\n if (isNOU(liEle)) {\r\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\r\n return;\r\n }\r\n this.isRefreshed = true;\r\n var level = parseFloat(liEle.getAttribute('aria-level'));\r\n var newliEle = ListBase.createListItemFromJson(this.createElement, [newNodeData], this.listBaseOption, level);\r\n var ul = select('.' + PARENTITEM, liEle);\r\n var childItems = getValue(this.fields.child.toString(), newNodeData);\r\n if ((isRefreshChild && ul) || (isRefreshChild && !isNOU(childItems))) {\r\n var parentEle = liEle.parentElement;\r\n var index = Array.prototype.indexOf.call(parentEle.childNodes, liEle);\r\n remove(liEle);\r\n parentEle.insertBefore(newliEle[0], parentEle.childNodes[index]);\r\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\r\n if (isRefreshChild && ul) {\r\n this.expandAll([id]);\r\n }\r\n }\r\n else {\r\n var txtEle = select('.' + TEXTWRAP, liEle);\r\n var newTextEle = select('.' + TEXTWRAP, newliEle[0]);\r\n var icon = select('div.' + ICON, txtEle);\r\n var newIcon = select('div.' + ICON, newTextEle);\r\n if (icon && newIcon) {\r\n if (newIcon.classList.contains(EXPANDABLE) && icon.classList.contains(COLLAPSIBLE)) {\r\n removeClass([newIcon], EXPANDABLE);\r\n addClass([newIcon], COLLAPSIBLE);\r\n }\r\n else if (newIcon.classList.contains(COLLAPSIBLE) && icon.classList.contains(EXPANDABLE)) {\r\n removeClass([newIcon], COLLAPSIBLE);\r\n addClass([newIcon], EXPANDABLE);\r\n }\r\n else if (icon.classList.contains('interaction')) {\r\n addClass([newIcon], 'interaction');\r\n }\r\n }\r\n remove(txtEle);\r\n var fullEle = select('.' + FULLROW, liEle);\r\n fullEle.parentNode.insertBefore(newTextEle, fullEle.nextSibling);\r\n this.updatePosition(id, newNodeData, isRefreshChild, newData);\r\n }\r\n liEle = this.getElement(target);\r\n if (newNodeData[this.fields.tooltip]) {\r\n liEle.setAttribute(\"title\", newNodeData[this.fields.tooltip]);\r\n }\r\n if (newNodeData.hasOwnProperty(this.fields.htmlAttributes) && newNodeData[this.fields.htmlAttributes]) {\r\n var attr = {};\r\n merge(attr, newNodeData[this.fields.htmlAttributes]);\r\n if (attr.class) {\r\n addClass([liEle], attr.class.split(' '));\r\n delete attr.class;\r\n }\r\n else {\r\n attributes(liEle, attr);\r\n }\r\n }\r\n if (this.selectedNodes.indexOf(id) !== -1) {\r\n liEle.setAttribute('aria-selected', 'true');\r\n addClass([liEle], ACTIVE);\r\n }\r\n this.isRefreshed = false;\r\n this.triggerEvent();\r\n };\r\n /**\r\n * Removes the collection of TreeView nodes by passing the array of node details as argument to this method.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\r\n */\r\n TreeView.prototype.removeNodes = function (nodes) {\r\n if (!isNOU(nodes)) {\r\n if (this.fields.dataSource instanceof DataManager && !this.isOffline) {\r\n this.crudOperation('delete', nodes);\r\n }\r\n else {\r\n this.deleteSuccess(nodes);\r\n }\r\n }\r\n };\r\n /**\r\n * Replaces the text of the TreeView node with the given text.\r\n * @param {string | Element} target - Specifies ID of TreeView node/TreeView node as target element.\r\n * @param {string} newText - Specifies the new text of TreeView node.\r\n */\r\n TreeView.prototype.updateNode = function (target, newText) {\r\n var _this = this;\r\n if (isNOU(target) || isNOU(newText) || !this.allowEditing) {\r\n return;\r\n }\r\n var liEle = this.getElement(target);\r\n if (isNOU(liEle)) {\r\n return;\r\n }\r\n var txtEle = select('.' + LISTTEXT, liEle);\r\n this.updateOldText(liEle);\r\n var eventArgs = this.getEditEvent(liEle, null, null);\r\n this.trigger('nodeEditing', eventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n if (_this.fields.dataSource instanceof DataManager && !_this.isOffline) {\r\n _this.crudOperation('update', null, target, newText, null, null, false);\r\n }\r\n else {\r\n _this.appendNewText(liEle, txtEle, newText, false);\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Unchecks all the checked nodes. You can also uncheck the specific nodes by passing array of checked nodes\r\n * as argument to this method.\r\n * @param {string[] | Element[]} nodes - Specifies the array of TreeView nodes ID/array of TreeView node.\r\n */\r\n TreeView.prototype.uncheckAll = function (nodes) {\r\n if (this.showCheckBox) {\r\n this.doCheckBoxAction(nodes, false);\r\n }\r\n };\r\n var TreeView_1;\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"allowDragAndDrop\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"allowEditing\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"allowMultiSelection\", void 0);\r\n __decorate([\r\n Complex({}, NodeAnimationSettings)\r\n ], TreeView.prototype, \"animation\", void 0);\r\n __decorate([\r\n Property()\r\n ], TreeView.prototype, \"checkedNodes\", void 0);\r\n __decorate([\r\n Property('')\r\n ], TreeView.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], TreeView.prototype, \"dragArea\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"enablePersistence\", void 0);\r\n __decorate([\r\n Property()\r\n ], TreeView.prototype, \"expandedNodes\", void 0);\r\n __decorate([\r\n Property('Auto')\r\n ], TreeView.prototype, \"expandOn\", void 0);\r\n __decorate([\r\n Complex({}, FieldsSettings)\r\n ], TreeView.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TreeView.prototype, \"fullRowSelect\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TreeView.prototype, \"loadOnDemand\", void 0);\r\n __decorate([\r\n Property()\r\n ], TreeView.prototype, \"locale\", void 0);\r\n __decorate([\r\n Property()\r\n ], TreeView.prototype, \"nodeTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], TreeView.prototype, \"selectedNodes\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], TreeView.prototype, \"sortOrder\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"showCheckBox\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], TreeView.prototype, \"autoCheck\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], TreeView.prototype, \"fullRowNavigable\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"actionFailure\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"dataBound\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"dataSourceChanged\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"drawNode\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"keyPress\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeChecked\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeChecking\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeClicked\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeCollapsed\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeCollapsing\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeDragging\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeDragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeDragStop\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeDropped\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeEdited\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeEditing\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeExpanded\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeExpanding\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeSelected\", void 0);\r\n __decorate([\r\n Event()\r\n ], TreeView.prototype, \"nodeSelecting\", void 0);\r\n TreeView = TreeView_1 = __decorate([\r\n NotifyPropertyChanges\r\n ], TreeView);\r\n return TreeView;\r\n}(Component));\r\nexport { TreeView };\r\n","/**\n * index\n */\nexport * from './src/index';\n","/**\r\n * Collision module.\r\n */\r\nimport { calculatePosition } from './position';\r\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\r\nvar parentDocument;\r\nvar targetContainer;\r\n/**\r\n *\r\n * @param {HTMLElement} element - specifies the element\r\n * @param {HTMLElement} viewPortElement - specifies the element\r\n * @param {CollisionCoordinates} axis - specifies the collision coordinates\r\n * @param {OffsetPosition} position - specifies the position\r\n * @returns {void}\r\n */\r\nexport function fit(element, viewPortElement, axis, position) {\r\n if (viewPortElement === void 0) { viewPortElement = null; }\r\n if (axis === void 0) { axis = { X: false, Y: false }; }\r\n if (!axis.Y && !axis.X) {\r\n return { left: 0, top: 0 };\r\n }\r\n var elemData = element.getBoundingClientRect();\r\n targetContainer = viewPortElement;\r\n parentDocument = element.ownerDocument;\r\n if (!position) {\r\n position = calculatePosition(element, 'left', 'top');\r\n }\r\n if (axis.X) {\r\n var containerWidth = targetContainer ? getTargetContainerWidth() : getViewPortWidth();\r\n var containerLeft = ContainerLeft();\r\n var containerRight = ContainerRight();\r\n var overLeft = containerLeft - position.left;\r\n var overRight = position.left + elemData.width - containerRight;\r\n if (elemData.width > containerWidth) {\r\n if (overLeft > 0 && overRight <= 0) {\r\n position.left = containerRight - elemData.width;\r\n }\r\n else if (overRight > 0 && overLeft <= 0) {\r\n position.left = containerLeft;\r\n }\r\n else {\r\n position.left = overLeft > overRight ? (containerRight - elemData.width) : containerLeft;\r\n }\r\n }\r\n else if (overLeft > 0) {\r\n position.left += overLeft;\r\n }\r\n else if (overRight > 0) {\r\n position.left -= overRight;\r\n }\r\n }\r\n if (axis.Y) {\r\n var containerHeight = targetContainer ? getTargetContainerHeight() : getViewPortHeight();\r\n var containerTop = ContainerTop();\r\n var containerBottom = ContainerBottom();\r\n var overTop = containerTop - position.top;\r\n var overBottom = position.top + elemData.height - containerBottom;\r\n if (elemData.height > containerHeight) {\r\n if (overTop > 0 && overBottom <= 0) {\r\n position.top = containerBottom - elemData.height;\r\n }\r\n else if (overBottom > 0 && overTop <= 0) {\r\n position.top = containerTop;\r\n }\r\n else {\r\n position.top = overTop > overBottom ? (containerBottom - elemData.height) : containerTop;\r\n }\r\n }\r\n else if (overTop > 0) {\r\n position.top += overTop;\r\n }\r\n else if (overBottom > 0) {\r\n position.top -= overBottom;\r\n }\r\n }\r\n return position;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} element - specifies the html element\r\n * @param {HTMLElement} viewPortElement - specifies the html element\r\n * @param {number} x - specifies the number\r\n * @param {number} y - specifies the number\r\n * @returns {string[]} - returns the string value\r\n */\r\nexport function isCollide(element, viewPortElement, x, y) {\r\n if (viewPortElement === void 0) { viewPortElement = null; }\r\n var elemOffset = calculatePosition(element, 'left', 'top');\r\n if (x) {\r\n elemOffset.left = x;\r\n }\r\n if (y) {\r\n elemOffset.top = y;\r\n }\r\n var data = [];\r\n targetContainer = viewPortElement;\r\n parentDocument = element.ownerDocument;\r\n var elementRect = element.getBoundingClientRect();\r\n var top = elemOffset.top;\r\n var left = elemOffset.left;\r\n var right = elemOffset.left + elementRect.width;\r\n var bottom = elemOffset.top + elementRect.height;\r\n // eslint-disable-next-line\r\n var topData = '', leftData = '';\r\n var yAxis = topCollideCheck(top, bottom);\r\n var xAxis = leftCollideCheck(left, right);\r\n if (yAxis.topSide) {\r\n data.push('top');\r\n }\r\n if (xAxis.rightSide) {\r\n data.push('right');\r\n }\r\n if (xAxis.leftSide) {\r\n data.push('left');\r\n }\r\n if (yAxis.bottomSide) {\r\n data.push('bottom');\r\n }\r\n return data;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} element - specifies the element\r\n * @param {HTMLElement} target - specifies the element\r\n * @param {number} offsetX - specifies the number\r\n * @param {number} offsetY - specifies the number\r\n * @param {string} positionX - specifies the string value\r\n * @param {string} positionY - specifies the string value\r\n * @param {HTMLElement} viewPortElement - specifies the element\r\n * @param {CollisionCoordinates} axis - specifies the collision axis\r\n * @param {boolean} fixedParent - specifies the boolean\r\n * @returns {void}\r\n */\r\nexport function flip(element, target, offsetX, offsetY, positionX, positionY, viewPortElement, \r\n/* eslint-disable */\r\naxis, fixedParent) {\r\n if (viewPortElement === void 0) { viewPortElement = null; }\r\n if (axis === void 0) { axis = { X: true, Y: true }; }\r\n if (!target || !element || !positionX || !positionY || (!axis.X && !axis.Y)) {\r\n return;\r\n }\r\n // eslint-disable-next-line\r\n var tEdge = { TL: null,\r\n TR: null,\r\n BL: null,\r\n BR: null\r\n }, eEdge = {\r\n TL: null,\r\n TR: null,\r\n BL: null,\r\n BR: null\r\n /* eslint-enable */\r\n };\r\n var elementRect;\r\n if (window.getComputedStyle(element).display === 'none') {\r\n var oldVisibility = element.style.visibility;\r\n element.style.visibility = 'hidden';\r\n element.style.display = 'block';\r\n elementRect = element.getBoundingClientRect();\r\n element.style.removeProperty('display');\r\n element.style.visibility = oldVisibility;\r\n }\r\n else {\r\n elementRect = element.getBoundingClientRect();\r\n }\r\n var pos = {\r\n posX: positionX, posY: positionY, offsetX: offsetX, offsetY: offsetY, position: { left: 0, top: 0 }\r\n };\r\n targetContainer = viewPortElement;\r\n parentDocument = target.ownerDocument;\r\n updateElementData(target, tEdge, pos, fixedParent, elementRect);\r\n setPosition(eEdge, pos, elementRect);\r\n if (axis.X) {\r\n leftFlip(target, eEdge, tEdge, pos, elementRect, true);\r\n }\r\n if (axis.Y && tEdge.TL.top > -1) {\r\n topFlip(target, eEdge, tEdge, pos, elementRect, true);\r\n }\r\n setPopup(element, pos, elementRect);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} element - specifies the element\r\n * @param {PositionLocation} pos - specifies the location\r\n * @param {ClientRect} elementRect - specifies the client rect\r\n * @returns {void}\r\n */\r\nfunction setPopup(element, pos, elementRect) {\r\n //eslint-disable-next-line\r\n var left = 0, top = 0;\r\n if (element.offsetParent != null\r\n && (getComputedStyle(element.offsetParent).position === 'absolute' ||\r\n getComputedStyle(element.offsetParent).position === 'relative')) {\r\n var data = calculatePosition(element.offsetParent, 'left', 'top', false, elementRect);\r\n left = data.left;\r\n top = data.top;\r\n }\r\n element.style.top = (pos.position.top + pos.offsetY - (top)) + 'px';\r\n element.style.left = (pos.position.left + pos.offsetX - (left)) + 'px';\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} target - specifies the element\r\n * @param {EdgeOffset} edge - specifies the offset\r\n * @param {PositionLocation} pos - specifies theloaction\r\n * @param {boolean} fixedParent - specifies the boolean\r\n * @param {ClientRect} elementRect - specifies the client rect\r\n * @returns {void}\r\n */\r\nfunction updateElementData(target, edge, pos, fixedParent, elementRect) {\r\n pos.position = calculatePosition(target, pos.posX, pos.posY, fixedParent, elementRect);\r\n edge.TL = calculatePosition(target, 'left', 'top', fixedParent, elementRect);\r\n edge.TR = calculatePosition(target, 'right', 'top', fixedParent, elementRect);\r\n edge.BR = calculatePosition(target, 'left', 'bottom', fixedParent, elementRect);\r\n edge.BL = calculatePosition(target, 'right', 'bottom', fixedParent, elementRect);\r\n}\r\n/**\r\n *\r\n * @param {EdgeOffset} eStatus - specifies the status\r\n * @param {PositionLocation} pos - specifies the location\r\n * @param {ClientRect} elementRect - specifies the client\r\n * @returns {void}\r\n */\r\nfunction setPosition(eStatus, pos, elementRect) {\r\n eStatus.TL = { top: pos.position.top + pos.offsetY, left: pos.position.left + pos.offsetX };\r\n eStatus.TR = { top: eStatus.TL.top, left: eStatus.TL.left + elementRect.width };\r\n eStatus.BL = { top: eStatus.TL.top + elementRect.height,\r\n left: eStatus.TL.left };\r\n eStatus.BR = { top: eStatus.TL.top + elementRect.height,\r\n left: eStatus.TL.left + elementRect.width };\r\n}\r\n/**\r\n *\r\n * @param {number} left - specifies the number\r\n * @param {number} right - specifies the number\r\n * @returns {LeftCorners} - returns the value\r\n */\r\nfunction leftCollideCheck(left, right) {\r\n //eslint-disable-next-line\r\n var leftSide = false, rightSide = false;\r\n if (((left - getBodyScrollLeft()) < ContainerLeft())) {\r\n leftSide = true;\r\n }\r\n if (right > ContainerRight()) {\r\n rightSide = true;\r\n }\r\n return { leftSide: leftSide, rightSide: rightSide };\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} target - specifies the element\r\n * @param {EdgeOffset} edge - specifes the element\r\n * @param {EdgeOffset} tEdge - specifies the edge offset\r\n * @param {PositionLocation} pos - specifes the location\r\n * @param {ClientRect} elementRect - specifies the client\r\n * @param {boolean} deepCheck - specifies the boolean value\r\n * @returns {void}\r\n */\r\nfunction leftFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\r\n var collideSide = leftCollideCheck(edge.TL.left, edge.TR.left);\r\n if ((tEdge.TL.left - getBodyScrollLeft()) <= ContainerLeft()) {\r\n collideSide.leftSide = false;\r\n }\r\n if (tEdge.TR.left > ContainerRight()) {\r\n collideSide.rightSide = false;\r\n }\r\n if ((collideSide.leftSide && !collideSide.rightSide) || (!collideSide.leftSide && collideSide.rightSide)) {\r\n if (pos.posX === 'right') {\r\n pos.posX = 'left';\r\n }\r\n else {\r\n pos.posX = 'right';\r\n }\r\n pos.offsetX = pos.offsetX + elementRect.width;\r\n pos.offsetX = -1 * pos.offsetX;\r\n pos.position = calculatePosition(target, pos.posX, pos.posY, false);\r\n setPosition(edge, pos, elementRect);\r\n if (deepCheck) {\r\n leftFlip(target, edge, tEdge, pos, elementRect, false);\r\n }\r\n }\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} target - specifies the element\r\n * @param {EdgeOffset} edge - specifies the offset\r\n * @param {EdgeOffset} tEdge - specifies the offset\r\n * @param {PositionLocation} pos - specifies the location\r\n * @param {ClientRect} elementRect - specifies the client rect\r\n * @param {boolean} deepCheck - specifies the boolean\r\n * @returns {void}\r\n */\r\nfunction topFlip(target, edge, tEdge, pos, elementRect, deepCheck) {\r\n var collideSide = topCollideCheck(edge.TL.top, edge.BL.top);\r\n if ((tEdge.TL.top - getBodyScrollTop()) <= ContainerTop()) {\r\n collideSide.topSide = false;\r\n }\r\n if (tEdge.BL.top >= ContainerBottom() && target.getBoundingClientRect().bottom < window.innerHeight) {\r\n collideSide.bottomSide = false;\r\n }\r\n if ((collideSide.topSide && !collideSide.bottomSide) || (!collideSide.topSide && collideSide.bottomSide)) {\r\n if (pos.posY === 'top') {\r\n pos.posY = 'bottom';\r\n }\r\n else {\r\n pos.posY = 'top';\r\n }\r\n pos.offsetY = pos.offsetY + elementRect.height;\r\n pos.offsetY = -1 * pos.offsetY;\r\n pos.position = calculatePosition(target, pos.posX, pos.posY, false, elementRect);\r\n setPosition(edge, pos, elementRect);\r\n if (deepCheck) {\r\n topFlip(target, edge, tEdge, pos, elementRect, false);\r\n }\r\n }\r\n}\r\n/**\r\n *\r\n * @param {number} top - specifies the number\r\n * @param {number} bottom - specifies the number\r\n * @returns {TopCorners} - retyrns the value\r\n */\r\nfunction topCollideCheck(top, bottom) {\r\n //eslint-disable-next-line\r\n var topSide = false, bottomSide = false;\r\n if ((top - getBodyScrollTop()) < ContainerTop()) {\r\n topSide = true;\r\n }\r\n if (bottom > ContainerBottom()) {\r\n bottomSide = true;\r\n }\r\n return { topSide: topSide, bottomSide: bottomSide };\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getTargetContainerWidth() {\r\n return targetContainer.getBoundingClientRect().width;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getTargetContainerHeight() {\r\n return targetContainer.getBoundingClientRect().height;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getTargetContainerLeft() {\r\n return targetContainer.getBoundingClientRect().left;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getTargetContainerTop() {\r\n return targetContainer.getBoundingClientRect().top;\r\n}\r\n//eslint-disable-next-line\r\nfunction ContainerTop() {\r\n if (targetContainer) {\r\n return getTargetContainerTop();\r\n }\r\n return 0;\r\n}\r\n//eslint-disable-next-line\r\nfunction ContainerLeft() {\r\n if (targetContainer) {\r\n return getTargetContainerLeft();\r\n }\r\n return 0;\r\n}\r\n//eslint-disable-next-line\r\nfunction ContainerRight() {\r\n if (targetContainer) {\r\n return (getBodyScrollLeft() + getTargetContainerLeft() + getTargetContainerWidth());\r\n }\r\n return (getBodyScrollLeft() + getViewPortWidth());\r\n}\r\n//eslint-disable-next-line\r\nfunction ContainerBottom() {\r\n if (targetContainer) {\r\n return (getBodyScrollTop() + getTargetContainerTop() + getTargetContainerHeight());\r\n }\r\n return (getBodyScrollTop() + getViewPortHeight());\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getBodyScrollTop() {\r\n // if(targetContainer)\r\n // return targetContainer.scrollTop;\r\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getBodyScrollLeft() {\r\n // if(targetContainer)\r\n // return targetContainer.scrollLeft;\r\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getViewPortHeight() {\r\n return window.innerHeight;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nfunction getViewPortWidth() {\r\n var windowWidth = window.innerWidth;\r\n var documentReact = document.documentElement.getBoundingClientRect();\r\n var offsetWidth = (isNullOrUndefined(document.documentElement)) ? 0 : documentReact.width;\r\n return windowWidth - (windowWidth - offsetWidth);\r\n}\r\n","/**\n * Popup Components\n */\nexport * from './position';\nexport * from './collision';\n","/**\r\n * Position library\r\n */\r\nimport { isNullOrUndefined } from '@syncfusion/ej2-base';\r\nvar elementRect;\r\nvar popupRect;\r\nvar element;\r\nvar parentDocument;\r\nvar fixedParent = false;\r\n/**\r\n *\r\n * @param {HTMLElement} anchor - specifies the element\r\n * @param {HTMLElement} element - specifies the element\r\n * @returns {OffsetPosition} - returns the value\r\n */\r\nexport function calculateRelativeBasedPosition(anchor, element) {\r\n var fixedElement = false;\r\n var anchorPos = { left: 0, top: 0 };\r\n var tempAnchor = anchor;\r\n if (!anchor || !element) {\r\n return anchorPos;\r\n }\r\n if (isNullOrUndefined(element.offsetParent) && element.style.position === 'fixed') {\r\n fixedElement = true;\r\n }\r\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\r\n anchorPos.left += anchor.offsetLeft;\r\n anchorPos.top += anchor.offsetTop;\r\n anchor = anchor.offsetParent;\r\n }\r\n anchor = tempAnchor;\r\n while ((element.offsetParent || fixedElement) && anchor && element.offsetParent !== anchor) {\r\n anchorPos.left -= anchor.scrollLeft;\r\n anchorPos.top -= anchor.scrollTop;\r\n anchor = anchor.parentElement;\r\n }\r\n return anchorPos;\r\n}\r\n/**\r\n *\r\n * @param {Element} currentElement - specifies the element\r\n * @param {string} positionX - specifies the position\r\n * @param {string} positionY - specifies the position\r\n * @param {boolean} parentElement - specifies the boolean\r\n * @param {ClientRect} targetValues - specifies the client\r\n * @returns {OffsetPosition} - returns the position\r\n */\r\nexport function calculatePosition(currentElement, positionX, positionY, parentElement, targetValues) {\r\n //eslint-disable-next-line\r\n popupRect = undefined;\r\n popupRect = targetValues;\r\n fixedParent = parentElement ? true : false;\r\n if (!currentElement) {\r\n return { left: 0, top: 0 };\r\n }\r\n if (!positionX) {\r\n positionX = 'left';\r\n }\r\n if (!positionY) {\r\n positionY = 'top';\r\n }\r\n parentDocument = currentElement.ownerDocument;\r\n element = currentElement;\r\n var pos = { left: 0, top: 0 };\r\n return updatePosition(positionX.toLowerCase(), positionY.toLowerCase(), pos);\r\n}\r\n/**\r\n *\r\n * @param {number} value - specifies the number\r\n * @param {OffsetPosition} pos - specifies the position\r\n * @returns {void}\r\n */\r\nfunction setPosx(value, pos) {\r\n pos.left = value;\r\n}\r\n/**\r\n *\r\n * @param {number} value - specifies the number\r\n * @param {OffsetPosition} pos - specifies the position\r\n * @returns {void}\r\n */\r\nfunction setPosy(value, pos) {\r\n pos.top = value;\r\n}\r\n/**\r\n *\r\n * @param {string} posX - specifies the position\r\n * @param {string} posY - specifies the position\r\n * @param {OffsetPosition} pos - specifies the position\r\n * @returns {OffsetPosition} - returns the postion\r\n */\r\nfunction updatePosition(posX, posY, pos) {\r\n elementRect = element.getBoundingClientRect();\r\n switch (posY + posX) {\r\n case 'topcenter':\r\n setPosx(getElementHCenter(), pos);\r\n setPosy(getElementTop(), pos);\r\n break;\r\n case 'topright':\r\n setPosx(getElementRight(), pos);\r\n setPosy(getElementTop(), pos);\r\n break;\r\n case 'centercenter':\r\n setPosx(getElementHCenter(), pos);\r\n setPosy(getElementVCenter(), pos);\r\n break;\r\n case 'centerright':\r\n setPosx(getElementRight(), pos);\r\n setPosy(getElementVCenter(), pos);\r\n break;\r\n case 'centerleft':\r\n setPosx(getElementLeft(), pos);\r\n setPosy(getElementVCenter(), pos);\r\n break;\r\n case 'bottomcenter':\r\n setPosx(getElementHCenter(), pos);\r\n setPosy(getElementBottom(), pos);\r\n break;\r\n case 'bottomright':\r\n setPosx(getElementRight(), pos);\r\n setPosy(getElementBottom(), pos);\r\n break;\r\n case 'bottomleft':\r\n setPosx(getElementLeft(), pos);\r\n setPosy(getElementBottom(), pos);\r\n break;\r\n default:\r\n case 'topleft':\r\n setPosx(getElementLeft(), pos);\r\n setPosy(getElementTop(), pos);\r\n break;\r\n }\r\n return pos;\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getBodyScrollTop() {\r\n return parentDocument.documentElement.scrollTop || parentDocument.body.scrollTop;\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getBodyScrollLeft() {\r\n return parentDocument.documentElement.scrollLeft || parentDocument.body.scrollLeft;\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementBottom() {\r\n return fixedParent ? elementRect.bottom : elementRect.bottom + getBodyScrollTop();\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementVCenter() {\r\n return getElementTop() + (elementRect.height / 2);\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementTop() {\r\n return fixedParent ? elementRect.top : elementRect.top + getBodyScrollTop();\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementLeft() {\r\n return elementRect.left + getBodyScrollLeft();\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementRight() {\r\n var popupWidth = (element && element.classList.contains('e-date-range-wrapper')) ? (popupRect ? popupRect.width : 0) :\r\n (popupRect && (elementRect.width >= popupRect.width) ? popupRect.width : 0);\r\n return elementRect.right + getBodyScrollLeft() - popupWidth;\r\n}\r\n/**\r\n * @returns {number} - specifies the number value\r\n */\r\nfunction getElementHCenter() {\r\n return getElementLeft() + (elementRect.width / 2);\r\n}\r\n","/**\r\n * Resize library\r\n */\r\nimport { isNullOrUndefined as isNOU, createElement, EventHandler, detach, Browser } from '@syncfusion/ej2-base';\r\n/* eslint-disable */\r\nvar elementClass = ['north-west', 'north', 'north-east', 'west', 'east', 'south-west', 'south', 'south-east'];\r\nvar RESIZE_HANDLER = 'e-resize-handle';\r\nvar FOCUSED_HANDLER = 'e-focused-handle';\r\nvar RESTRICT_LEFT = ['e-restrict-left'];\r\nvar RESIZE_WITHIN_VIEWPORT = 'e-resize-viewport';\r\nvar dialogBorderResize = ['north', 'west', 'east', 'south'];\r\nvar targetElement;\r\nvar selectedHandler;\r\nvar originalWidth = 0;\r\nvar originalHeight = 0;\r\nvar originalX = 0;\r\nvar originalY = 0;\r\nvar originalMouseX = 0;\r\nvar originalMouseY = 0;\r\nvar minHeight;\r\nvar maxHeight;\r\nvar minWidth;\r\nvar maxWidth;\r\nvar containerElement;\r\n/* eslint-disable */\r\nvar resizeStart = null;\r\nvar resize = null;\r\nvar resizeEnd = null;\r\n/* eslint-enable */\r\nvar resizeWestWidth;\r\nvar setLeft = true;\r\nvar previousWidth = 0;\r\nvar setWidth = true;\r\n// eslint-disable-next-line\r\nvar proxy;\r\n/**\r\n *\r\n * @param {ResizeArgs} args - specifies the resize args\r\n * @returns {void}\r\n */\r\nexport function createResize(args) {\r\n resizeStart = args.resizeBegin;\r\n resize = args.resizing;\r\n resizeEnd = args.resizeComplete;\r\n targetElement = getDOMElement(args.element);\r\n containerElement = getDOMElement(args.boundary);\r\n var directions = args.direction.split(' ');\r\n for (var i = 0; i < directions.length; i++) {\r\n if (dialogBorderResize.indexOf(directions[i]) >= 0 && directions[i]) {\r\n setBorderResizeElm(directions[i]);\r\n }\r\n else if (directions[i].trim() !== '') {\r\n var resizeHandler = createElement('div', { className: 'e-icons ' + RESIZE_HANDLER + ' ' + 'e-' + directions[i] });\r\n targetElement.appendChild(resizeHandler);\r\n }\r\n }\r\n minHeight = args.minHeight;\r\n minWidth = args.minWidth;\r\n maxWidth = args.maxWidth;\r\n maxHeight = args.maxHeight;\r\n if (args.proxy && args.proxy.element && args.proxy.element.classList.contains('e-dialog')) {\r\n wireEvents(args.proxy);\r\n }\r\n else {\r\n wireEvents();\r\n }\r\n}\r\n/**\r\n *\r\n * @param {string} direction - specifies the string\r\n * @returns {void}\r\n */\r\nfunction setBorderResizeElm(direction) {\r\n calculateValues();\r\n var borderBottom = createElement('span', {\r\n attrs: {\r\n 'unselectable': 'on', 'contenteditable': 'false'\r\n }\r\n });\r\n borderBottom.setAttribute('class', 'e-dialog-border-resize e-' + direction);\r\n if (direction === 'south') {\r\n borderBottom.style.height = '2px';\r\n borderBottom.style.width = '100%';\r\n borderBottom.style.bottom = '0px';\r\n borderBottom.style.left = '0px';\r\n }\r\n if (direction === 'north') {\r\n borderBottom.style.height = '2px';\r\n borderBottom.style.width = '100%';\r\n borderBottom.style.top = '0px';\r\n borderBottom.style.left = '0px';\r\n }\r\n if (direction === 'east') {\r\n borderBottom.style.height = '100%';\r\n borderBottom.style.width = '2px';\r\n borderBottom.style.right = '0px';\r\n borderBottom.style.top = '0px';\r\n }\r\n if (direction === 'west') {\r\n borderBottom.style.height = '100%';\r\n borderBottom.style.width = '2px';\r\n borderBottom.style.left = '0px';\r\n borderBottom.style.top = '0px';\r\n }\r\n targetElement.appendChild(borderBottom);\r\n}\r\n/**\r\n *\r\n * @param {string} element - specifies the element\r\n * @returns {HTMLElement} - returns the element\r\n */\r\nfunction getDOMElement(element) {\r\n var domElement;\r\n if (!isNOU(element)) {\r\n if (typeof (element) === 'string') {\r\n domElement = document.querySelector(element);\r\n }\r\n else {\r\n domElement = element;\r\n }\r\n }\r\n return domElement;\r\n}\r\n// eslint-disable-next-line\r\nfunction wireEvents(args) {\r\n if (isNOU(args)) {\r\n args = this;\r\n }\r\n var resizers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\r\n for (var i = 0; i < resizers.length; i++) {\r\n selectedHandler = resizers[i];\r\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\r\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\r\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\r\n }\r\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\r\n if (!isNOU(borderResizers)) {\r\n for (var i = 0; i < borderResizers.length; i++) {\r\n selectedHandler = borderResizers[i];\r\n EventHandler.add(selectedHandler, 'mousedown', onMouseDown, args);\r\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\r\n EventHandler.add(selectedHandler, eventName, onTouchStart, args);\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {string} e - specifies the string\r\n * @returns {string} - returns the string\r\n */\r\nfunction getEventType(e) {\r\n return (e.indexOf('mouse') > -1) ? 'mouse' : 'touch';\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {MouseEvent} e - specifies the mouse event\r\n * @returns {void}\r\n */\r\nfunction onMouseDown(e) {\r\n e.preventDefault();\r\n targetElement = e.target.parentElement;\r\n calculateValues();\r\n originalMouseX = e.pageX;\r\n originalMouseY = e.pageY;\r\n e.target.classList.add(FOCUSED_HANDLER);\r\n if (!isNOU(resizeStart)) {\r\n proxy = this;\r\n if (resizeStart(e, proxy) === true) {\r\n return;\r\n }\r\n }\r\n var target = (isNOU(containerElement)) ? document : containerElement;\r\n EventHandler.add(target, 'mousemove', onMouseMove, this);\r\n EventHandler.add(document, 'mouseup', onMouseUp, this);\r\n for (var i = 0; i < RESTRICT_LEFT.length; i++) {\r\n if (targetElement.classList.contains(RESTRICT_LEFT[i])) {\r\n setLeft = false;\r\n }\r\n else {\r\n setLeft = true;\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {MouseEvent} e - specifies the event\r\n * @returns {void}\r\n */\r\nfunction onMouseUp(e) {\r\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\r\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\r\n var target = (isNOU(containerElement)) ? document : containerElement;\r\n var eventName = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';\r\n EventHandler.remove(target, 'mousemove', onMouseMove);\r\n EventHandler.remove(target, touchMoveEvent, onMouseMove);\r\n EventHandler.remove(target, eventName, onMouseMove);\r\n if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\r\n document.body.querySelector('.' + FOCUSED_HANDLER).classList.remove(FOCUSED_HANDLER);\r\n }\r\n if (!isNOU(resizeEnd)) {\r\n proxy = this;\r\n resizeEnd(e, proxy);\r\n }\r\n EventHandler.remove(document, 'mouseup', onMouseUp);\r\n EventHandler.remove(document, touchEndEvent, onMouseUp);\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n * @returns {void}\r\n */\r\nfunction calculateValues() {\r\n originalWidth = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('width').replace('px', ''));\r\n originalHeight = parseFloat(getComputedStyle(targetElement, null).getPropertyValue('height').replace('px', ''));\r\n originalX = targetElement.getBoundingClientRect().left;\r\n originalY = targetElement.getBoundingClientRect().top;\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {MouseEvent} e - specifies the event\r\n * @returns {void}\r\n */\r\nfunction onTouchStart(e) {\r\n targetElement = e.target.parentElement;\r\n calculateValues();\r\n var coordinates = e.touches ? e.changedTouches[0] : e;\r\n originalMouseX = coordinates.pageX;\r\n originalMouseY = coordinates.pageY;\r\n if (!isNOU(resizeStart)) {\r\n proxy = this;\r\n if (resizeStart(e, proxy) === true) {\r\n return;\r\n }\r\n }\r\n var touchMoveEvent = (Browser.info.name === 'msie') ? 'pointermove' : 'touchmove';\r\n var touchEndEvent = (Browser.info.name === 'msie') ? 'pointerup' : 'touchend';\r\n var target = (isNOU(containerElement)) ? document : containerElement;\r\n EventHandler.add(target, touchMoveEvent, onMouseMove, this);\r\n EventHandler.add(document, touchEndEvent, onMouseUp);\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {MouseEvent} e - specifies the event\r\n * @returns {void}\r\n */\r\nfunction onMouseMove(e) {\r\n if (e.target.classList.contains(RESIZE_HANDLER) && e.target.classList.contains(FOCUSED_HANDLER)) {\r\n selectedHandler = e.target;\r\n }\r\n else if (!isNOU(document.body.querySelector('.' + FOCUSED_HANDLER))) {\r\n selectedHandler = document.body.querySelector('.' + FOCUSED_HANDLER);\r\n }\r\n if (!isNOU(selectedHandler)) {\r\n var resizeTowards = '';\r\n for (var i = 0; i < elementClass.length; i++) {\r\n if (selectedHandler.classList.contains('e-' + elementClass[i])) {\r\n resizeTowards = elementClass[i];\r\n }\r\n }\r\n if (!isNOU(resize)) {\r\n proxy = this;\r\n resize(e, proxy);\r\n }\r\n switch (resizeTowards) {\r\n case 'south':\r\n resizeSouth(e);\r\n break;\r\n case 'north':\r\n resizeNorth(e);\r\n break;\r\n case 'west':\r\n resizeWest(e);\r\n break;\r\n case 'east':\r\n resizeEast(e);\r\n break;\r\n case 'south-east':\r\n resizeSouth(e);\r\n resizeEast(e);\r\n break;\r\n case 'south-west':\r\n resizeSouth(e);\r\n resizeWest(e);\r\n break;\r\n case 'north-east':\r\n resizeNorth(e);\r\n resizeEast(e);\r\n break;\r\n case 'north-west':\r\n resizeNorth(e);\r\n resizeWest(e);\r\n break;\r\n default: break;\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {HTMLElement} element - specifies the eleemnt\r\n * @returns {ClientRect} - returns the client\r\n */\r\nfunction getClientRectValues(element) {\r\n return element.getBoundingClientRect();\r\n}\r\n/* istanbul ignore next */\r\n// eslint-disable-next-line\r\nfunction resizeSouth(e) {\r\n var documentHeight = document.documentElement.clientHeight;\r\n var calculateValue = false;\r\n var coordinates = e.touches ? e.changedTouches[0] : e;\r\n var currentpageY = coordinates.pageY;\r\n var targetRectValues = getClientRectValues(targetElement);\r\n var containerRectValues;\r\n if (!isNOU(containerElement)) {\r\n containerRectValues = getClientRectValues(containerElement);\r\n }\r\n if (!isNOU(containerElement)) {\r\n calculateValue = true;\r\n }\r\n else if (isNOU(containerElement) && ((documentHeight - currentpageY) >= 0 || (targetRectValues.top < 0))) {\r\n calculateValue = true;\r\n }\r\n var calculatedHeight = originalHeight + (currentpageY - originalMouseY);\r\n calculatedHeight = (calculatedHeight > minHeight) ? calculatedHeight : minHeight;\r\n var containerTop = 0;\r\n if (!isNOU(containerElement)) {\r\n containerTop = containerRectValues.top;\r\n }\r\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetHeight - containerElement.clientHeight;\r\n var topWithoutborder = (targetRectValues.top - containerTop) - (borderValue / 2);\r\n topWithoutborder = (topWithoutborder < 0) ? 0 : topWithoutborder;\r\n if (targetRectValues.top > 0 && (topWithoutborder + calculatedHeight) > maxHeight) {\r\n calculateValue = false;\r\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\r\n return;\r\n }\r\n targetElement.style.height = (maxHeight - parseInt(topWithoutborder.toString(), 10)) + 'px';\r\n return;\r\n }\r\n var targetTop = 0;\r\n if (calculateValue) {\r\n if (targetRectValues.top < 0 && (documentHeight + (targetRectValues.height + targetRectValues.top) > 0)) {\r\n targetTop = targetRectValues.top;\r\n if ((calculatedHeight + targetTop) <= 30) {\r\n calculatedHeight = (targetRectValues.height - (targetRectValues.height + targetRectValues.top)) + 30;\r\n }\r\n }\r\n if (((calculatedHeight + targetRectValues.top) >= maxHeight)) {\r\n targetElement.style.height = targetRectValues.height +\r\n (documentHeight - (targetRectValues.height + targetRectValues.top)) + 'px';\r\n }\r\n var calculatedTop = (isNOU(containerElement)) ? targetTop : topWithoutborder;\r\n if (calculatedHeight >= minHeight && ((calculatedHeight + calculatedTop) <= maxHeight)) {\r\n targetElement.style.height = calculatedHeight + 'px';\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n// eslint-disable-next-line\r\nfunction resizeNorth(e) {\r\n var calculateValue = false;\r\n var boundaryRectValues;\r\n var pageY = (getEventType(e.type) === 'mouse') ? e.pageY : e.touches[0].pageY;\r\n var targetRectValues = getClientRectValues(targetElement);\r\n if (!isNOU(containerElement)) {\r\n boundaryRectValues = getClientRectValues(containerElement);\r\n }\r\n if (!isNOU(containerElement) && (targetRectValues.top - boundaryRectValues.top) > 0) {\r\n calculateValue = true;\r\n }\r\n else if (isNOU(containerElement) && pageY > 0) {\r\n calculateValue = true;\r\n }\r\n var currentHeight = originalHeight - (pageY - originalMouseY);\r\n if (calculateValue) {\r\n if (currentHeight >= minHeight && currentHeight <= maxHeight) {\r\n var containerTop = 0;\r\n if (!isNOU(containerElement)) {\r\n containerTop = boundaryRectValues.top;\r\n }\r\n var top_1 = (originalY - containerTop) + (pageY - originalMouseY);\r\n top_1 = top_1 > 0 ? top_1 : 1;\r\n targetElement.style.height = currentHeight + 'px';\r\n targetElement.style.top = top_1 + 'px';\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n// eslint-disable-next-line\r\nfunction resizeWest(e) {\r\n var documentWidth = document.documentElement.clientWidth;\r\n var calculateValue = false;\r\n var rectValues;\r\n if (!isNOU(containerElement)) {\r\n rectValues = getClientRectValues(containerElement);\r\n }\r\n var pageX = (getEventType(e.type) === 'mouse') ? e.pageX : e.touches[0].pageX;\r\n var targetRectValues = getClientRectValues(targetElement);\r\n var borderValue = isNOU(containerElement) ? 0 : containerElement.offsetWidth - containerElement.clientWidth;\r\n /* eslint-disable */\r\n var left = isNOU(containerElement) ? 0 : rectValues.left;\r\n var containerWidth = isNOU(containerElement) ? 0 : rectValues.width;\r\n /* eslint-enable */\r\n if (isNOU(resizeWestWidth)) {\r\n if (!isNOU(containerElement)) {\r\n resizeWestWidth = (((targetRectValues.left - left) - borderValue / 2)) + targetRectValues.width;\r\n resizeWestWidth = resizeWestWidth + (containerWidth - borderValue - resizeWestWidth);\r\n }\r\n else {\r\n resizeWestWidth = documentWidth;\r\n }\r\n }\r\n if (!isNOU(containerElement) &&\r\n (Math.floor((targetRectValues.left - rectValues.left) + targetRectValues.width +\r\n (rectValues.right - targetRectValues.right)) - borderValue) <= maxWidth) {\r\n calculateValue = true;\r\n }\r\n else if (isNOU(containerElement) && pageX >= 0) {\r\n calculateValue = true;\r\n }\r\n var calculatedWidth = originalWidth - (pageX - originalMouseX);\r\n if (setLeft) {\r\n calculatedWidth = (calculatedWidth > resizeWestWidth) ? resizeWestWidth : calculatedWidth;\r\n }\r\n if (calculateValue) {\r\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\r\n var containerLeft = 0;\r\n if (!isNOU(containerElement)) {\r\n containerLeft = rectValues.left;\r\n }\r\n var left_1 = (originalX - containerLeft) + (pageX - originalMouseX);\r\n left_1 = (left_1 > 0) ? left_1 : 1;\r\n if (calculatedWidth !== previousWidth && setWidth) {\r\n targetElement.style.width = calculatedWidth + 'px';\r\n }\r\n if (setLeft) {\r\n targetElement.style.left = left_1 + 'px';\r\n if (left_1 === 1) {\r\n setWidth = false;\r\n }\r\n else {\r\n setWidth = true;\r\n }\r\n }\r\n }\r\n }\r\n previousWidth = calculatedWidth;\r\n}\r\n/* istanbul ignore next */\r\n// eslint-disable-next-line\r\nfunction resizeEast(e) {\r\n var documentWidth = document.documentElement.clientWidth;\r\n var calculateValue = false;\r\n var containerRectValues;\r\n if (!isNOU(containerElement)) {\r\n containerRectValues = getClientRectValues(containerElement);\r\n }\r\n var coordinates = e.touches ? e.changedTouches[0] : e;\r\n var pageX = coordinates.pageX;\r\n var targetRectValues = getClientRectValues(targetElement);\r\n if (!isNOU(containerElement) && (((targetRectValues.left - containerRectValues.left) + targetRectValues.width) <= maxWidth\r\n || (targetRectValues.right - containerRectValues.left) >= targetRectValues.width)) {\r\n calculateValue = true;\r\n }\r\n else if (isNOU(containerElement) && (documentWidth - pageX) > 0) {\r\n calculateValue = true;\r\n }\r\n var calculatedWidth = originalWidth + (pageX - originalMouseX);\r\n var containerLeft = 0;\r\n if (!isNOU(containerElement)) {\r\n containerLeft = containerRectValues.left;\r\n }\r\n if (((targetRectValues.left - containerLeft) + calculatedWidth) > maxWidth) {\r\n calculateValue = false;\r\n if (targetElement.classList.contains(RESIZE_WITHIN_VIEWPORT)) {\r\n return;\r\n }\r\n targetElement.style.width = maxWidth - (targetRectValues.left - containerLeft) + 'px';\r\n }\r\n if (calculateValue) {\r\n if (calculatedWidth >= minWidth && calculatedWidth <= maxWidth) {\r\n targetElement.style.width = calculatedWidth + 'px';\r\n }\r\n }\r\n}\r\n/* istanbul ignore next */\r\n/**\r\n *\r\n * @param {number} minimumHeight - specifies the number\r\n * @returns {void}\r\n */\r\nexport function setMinHeight(minimumHeight) {\r\n minHeight = minimumHeight;\r\n}\r\n/**\r\n *\r\n * @param {number} value - specifies the number value\r\n * @returns {void}\r\n */\r\nexport function setMaxWidth(value) {\r\n maxWidth = value;\r\n}\r\n/**\r\n *\r\n * @param {number} value - specifies the number value\r\n * @returns {void}\r\n */\r\nexport function setMaxHeight(value) {\r\n maxHeight = value;\r\n}\r\n/**\r\n * @returns {void}\r\n */\r\nexport function removeResize() {\r\n var handlers = targetElement.querySelectorAll('.' + RESIZE_HANDLER);\r\n for (var i = 0; i < handlers.length; i++) {\r\n detach(handlers[i]);\r\n }\r\n var borderResizers = targetElement.querySelectorAll('.e-dialog-border-resize');\r\n if (!isNOU(borderResizers)) {\r\n for (var i = 0; i < borderResizers.length; i++) {\r\n detach(borderResizers[i]);\r\n }\r\n }\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, Event, Collection, L10n, Complex, compile, createElement } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, detach, attributes, prepend, setStyleAttribute } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, ChildProperty, isBlazor } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, formatUnit, append, EventHandler, Draggable, extend } from '@syncfusion/ej2-base';\r\nimport { SanitizeHtmlHelper, Browser } from '@syncfusion/ej2-base';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { Popup, PositionData, getZindexPartial } from '../popup/popup';\r\nimport { createResize, removeResize, setMinHeight, setMaxWidth, setMaxHeight } from '../common/resize';\r\nvar ButtonProps = /** @class */ (function (_super) {\r\n __extends(ButtonProps, _super);\r\n function ButtonProps() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(true)\r\n ], ButtonProps.prototype, \"isFlat\", void 0);\r\n __decorate([\r\n Property()\r\n ], ButtonProps.prototype, \"buttonModel\", void 0);\r\n __decorate([\r\n Property('Button')\r\n ], ButtonProps.prototype, \"type\", void 0);\r\n __decorate([\r\n Event()\r\n ], ButtonProps.prototype, \"click\", void 0);\r\n return ButtonProps;\r\n}(ChildProperty));\r\nexport { ButtonProps };\r\n/**\r\n * Configures the animation properties for both open and close the dialog.\r\n */\r\nvar AnimationSettings = /** @class */ (function (_super) {\r\n __extends(AnimationSettings, _super);\r\n function AnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('Fade')\r\n ], AnimationSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property(400)\r\n ], AnimationSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], AnimationSettings.prototype, \"delay\", void 0);\r\n return AnimationSettings;\r\n}(ChildProperty));\r\nexport { AnimationSettings };\r\nvar ROOT = 'e-dialog';\r\nvar RTL = 'e-rtl';\r\nvar DLG_HEADER_CONTENT = 'e-dlg-header-content';\r\nvar DLG_HEADER = 'e-dlg-header';\r\nvar DLG_FOOTER_CONTENT = 'e-footer-content';\r\nvar MODAL_DLG = 'e-dlg-modal';\r\nvar DLG_CONTENT = 'e-dlg-content';\r\nvar DLG_CLOSE_ICON = 'e-icon-dlg-close';\r\nvar DLG_OVERLAY = 'e-dlg-overlay';\r\nvar DLG_TARGET = 'e-dlg-target';\r\nvar DLG_CONTAINER = 'e-dlg-container';\r\nvar SCROLL_DISABLED = 'e-scroll-disabled';\r\nvar DLG_PRIMARY_BUTTON = 'e-primary';\r\nvar ICON = 'e-icons';\r\nvar POPUP_ROOT = 'e-popup';\r\nvar DEVICE = 'e-device';\r\nvar FULLSCREEN = 'e-dlg-fullscreen';\r\nvar DLG_CLOSE_ICON_BTN = 'e-dlg-closeicon-btn';\r\nvar DLG_HIDE = 'e-popup-close';\r\nvar DLG_SHOW = 'e-popup-open';\r\nvar DLG_UTIL_DEFAULT_TITLE = 'Information';\r\nvar DLG_UTIL_ROOT = 'e-scroll-disabled';\r\nvar DLG_UTIL_ALERT = 'e-alert-dialog';\r\nvar DLG_UTIL_CONFIRM = 'e-confirm-dialog';\r\nvar DLG_RESIZABLE = 'e-dlg-resizable';\r\nvar DLG_RESTRICT_LEFT_VALUE = 'e-restrict-left';\r\nvar DLG_RESTRICT_WIDTH_VALUE = 'e-resize-viewport';\r\nvar DLG_REF_ELEMENT = 'e-dlg-ref-element';\r\nvar DLG_USER_ACTION_CLOSED = 'user action';\r\nvar DLG_CLOSE_ICON_CLOSED = 'close icon';\r\nvar DLG_ESCAPE_CLOSED = 'escape';\r\nvar DLG_OVERLAYCLICK_CLOSED = 'overlayClick';\r\n/**\r\n * Represents the dialog component that displays the information and get input from the user.\r\n * Two types of dialog components are `Modal and Modeless (non-modal)` depending on its interaction with parent application.\r\n * ```html\r\n *
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Dialog = /** @class */ (function (_super) {\r\n __extends(Dialog, _super);\r\n /*\r\n * * Constructor for creating the widget\r\n *\r\n * @param\r\n * @param\r\n * @hidden\r\n */\r\n function Dialog(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\r\n return _this;\r\n }\r\n /**\r\n *Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.render = function () {\r\n this.initialize();\r\n this.initRender();\r\n this.wireEvents();\r\n if (this.width === '100%') {\r\n this.element.style.width = '';\r\n }\r\n if (this.minHeight !== '') {\r\n this.element.style.minHeight = formatUnit(this.minHeight);\r\n }\r\n if (this.enableResize) {\r\n this.setResize();\r\n if (this.animationSettings.effect === 'None') {\r\n this.getMinHeight();\r\n }\r\n }\r\n this.renderComplete();\r\n };\r\n /**\r\n *Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.preRender = function () {\r\n var _this = this;\r\n this.headerContent = null;\r\n this.allowMaxHeight = true;\r\n this.preventVisibility = true;\r\n this.clonedEle = this.element.cloneNode(true);\r\n this.closeIconClickEventHandler = function (event) {\r\n _this.dlgClosedBy = DLG_CLOSE_ICON_CLOSED;\r\n _this.hide(event);\r\n };\r\n // eslint-disable-next-line\r\n this.dlgOverlayClickEventHandler = function (event) {\r\n _this.dlgClosedBy = DLG_OVERLAYCLICK_CLOSED;\r\n event.preventFocus = false;\r\n _this.trigger('overlayClick', event, function (overlayClickEventArgs) {\r\n if (!overlayClickEventArgs.preventFocus) {\r\n _this.focusContent();\r\n }\r\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\r\n });\r\n };\r\n // eslint-disable-next-line\r\n var localeText = { close: 'Close' };\r\n this.l10n = new L10n('dialog', localeText, this.locale);\r\n this.checkPositionData();\r\n if (isNullOrUndefined(this.target)) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.target = document.body;\r\n this.isProtectedOnChange = prevOnChange;\r\n }\r\n };\r\n Dialog.prototype.isNumberValue = function (value) {\r\n var isNumber = /^[-+]?\\d*\\.?\\d+$/.test(value);\r\n return isNumber;\r\n };\r\n Dialog.prototype.checkPositionData = function () {\r\n if (!isNullOrUndefined(this.position)) {\r\n if (!isNullOrUndefined(this.position.X) && (typeof (this.position.X) !== 'number')) {\r\n var isNumber = this.isNumberValue(this.position.X);\r\n if (isNumber) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.position.X = parseFloat(this.position.X);\r\n this.isProtectedOnChange = prevOnChange;\r\n }\r\n }\r\n if (!isNullOrUndefined(this.position.Y) && (typeof (this.position.Y) !== 'number')) {\r\n var isNumber = this.isNumberValue(this.position.Y);\r\n if (isNumber) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.position.Y = parseFloat(this.position.Y);\r\n this.isProtectedOnChange = prevOnChange;\r\n }\r\n }\r\n }\r\n };\r\n Dialog.prototype.getEle = function (list, selector) {\r\n var element = undefined;\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i].classList.contains(selector)) {\r\n element = list[i];\r\n break;\r\n }\r\n }\r\n return element;\r\n };\r\n /* istanbul ignore next */\r\n Dialog.prototype.getMinHeight = function () {\r\n var computedHeaderHeight = '0px';\r\n var computedFooterHeight = '0px';\r\n if (!isNullOrUndefined(this.element.querySelector('.' + DLG_HEADER_CONTENT))) {\r\n computedHeaderHeight = getComputedStyle(this.headerContent).height;\r\n }\r\n var footerEle = this.getEle(this.element.children, DLG_FOOTER_CONTENT);\r\n if (!isNullOrUndefined(footerEle)) {\r\n computedFooterHeight = getComputedStyle(footerEle).height;\r\n }\r\n var headerHeight = parseInt(computedHeaderHeight.slice(0, computedHeaderHeight.indexOf('p')), 10);\r\n var footerHeight = parseInt(computedFooterHeight.slice(0, computedFooterHeight.indexOf('p')), 10);\r\n setMinHeight(headerHeight + 30 + (isNaN(footerHeight) ? 0 : footerHeight));\r\n return (headerHeight + 30 + footerHeight);\r\n };\r\n Dialog.prototype.onResizeStart = function (args, dialogObj) {\r\n dialogObj.trigger('resizeStart', args);\r\n return args.cancel;\r\n };\r\n Dialog.prototype.onResizing = function (args, dialogObj) {\r\n dialogObj.trigger('resizing', args);\r\n };\r\n Dialog.prototype.onResizeComplete = function (args, dialogObj) {\r\n dialogObj.trigger('resizeStop', args);\r\n };\r\n Dialog.prototype.setResize = function () {\r\n if (this.enableResize) {\r\n if (this.isBlazorServerRender() && !isNullOrUndefined(this.element.querySelector('.e-icons.e-resize-handle'))) {\r\n return;\r\n }\r\n this.element.classList.add(DLG_RESIZABLE);\r\n var computedHeight = getComputedStyle(this.element).minHeight;\r\n var computedWidth = getComputedStyle(this.element).minWidth;\r\n var direction = '';\r\n for (var i = 0; i < this.resizeHandles.length; i++) {\r\n if (this.resizeHandles[i] === 'All') {\r\n direction = 'south north east west north-east north-west south-east south-west';\r\n break;\r\n }\r\n else {\r\n var directionValue = '';\r\n switch (this.resizeHandles[i].toString()) {\r\n case 'SouthEast':\r\n directionValue = 'south-east';\r\n break;\r\n case 'SouthWest':\r\n directionValue = 'south-west';\r\n break;\r\n case 'NorthEast':\r\n directionValue = 'north-east';\r\n break;\r\n case 'NorthWest':\r\n directionValue = 'north-west';\r\n break;\r\n default:\r\n directionValue = this.resizeHandles[i].toString();\r\n break;\r\n }\r\n direction += directionValue.toLocaleLowerCase() + ' ';\r\n }\r\n }\r\n if (this.enableRtl && direction.trim() === 'south-east') {\r\n direction = 'south-west';\r\n }\r\n else if (this.enableRtl && direction.trim() === 'south-west') {\r\n direction = 'south-east';\r\n }\r\n if (this.isModal && this.enableRtl) {\r\n this.element.classList.add(DLG_RESTRICT_LEFT_VALUE);\r\n }\r\n else if (this.isModal && this.target === document.body) {\r\n this.element.classList.add(DLG_RESTRICT_WIDTH_VALUE);\r\n }\r\n createResize({\r\n element: this.element,\r\n direction: direction,\r\n minHeight: parseInt(computedHeight.slice(0, computedWidth.indexOf('p')), 10),\r\n maxHeight: this.targetEle.clientHeight,\r\n minWidth: parseInt(computedWidth.slice(0, computedWidth.indexOf('p')), 10),\r\n maxWidth: this.targetEle.clientWidth,\r\n boundary: this.target === document.body ? null : this.targetEle,\r\n resizeBegin: this.onResizeStart.bind(this),\r\n resizeComplete: this.onResizeComplete.bind(this),\r\n resizing: this.onResizing.bind(this),\r\n proxy: this\r\n });\r\n this.wireWindowResizeEvent();\r\n }\r\n else {\r\n removeResize();\r\n this.unWireWindowResizeEvent();\r\n if (this.isModal) {\r\n this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\r\n }\r\n else {\r\n this.element.classList.remove(DLG_RESTRICT_WIDTH_VALUE);\r\n }\r\n this.element.classList.remove(DLG_RESIZABLE);\r\n }\r\n };\r\n Dialog.prototype.getFocusElement = function (target) {\r\n var value = 'input,select,textarea,button:enabled,a,[contenteditable=\"true\"],[tabindex]';\r\n var items = target.querySelectorAll(value);\r\n return { element: items[items.length - 1] };\r\n };\r\n /* istanbul ignore next */\r\n Dialog.prototype.keyDown = function (event) {\r\n var _this = this;\r\n if (event.keyCode === 9) {\r\n if (this.isModal) {\r\n var buttonObj = void 0;\r\n if (!isNullOrUndefined(this.btnObj)) {\r\n buttonObj = this.btnObj[this.btnObj.length - 1];\r\n }\r\n if ((isNullOrUndefined(this.btnObj)) && (!isNullOrUndefined(this.ftrTemplateContent))) {\r\n buttonObj = this.getFocusElement(this.ftrTemplateContent);\r\n }\r\n if (isNullOrUndefined(this.btnObj) && isNullOrUndefined(this.ftrTemplateContent) && !isNullOrUndefined(this.contentEle)) {\r\n buttonObj = this.getFocusElement(this.contentEle);\r\n }\r\n if (!isNullOrUndefined(buttonObj) && document.activeElement === buttonObj.element && !event.shiftKey) {\r\n event.preventDefault();\r\n this.focusableElements(this.element).focus();\r\n }\r\n if (document.activeElement === this.focusableElements(this.element) && event.shiftKey) {\r\n event.preventDefault();\r\n if (!isNullOrUndefined(buttonObj)) {\r\n buttonObj.element.focus();\r\n }\r\n }\r\n }\r\n }\r\n var element = document.activeElement;\r\n var isTagName = (['input', 'textarea'].indexOf(element.tagName.toLowerCase()) > -1);\r\n var isContentEdit = false;\r\n if (!isTagName) {\r\n isContentEdit = element.hasAttribute('contenteditable') && element.getAttribute('contenteditable') === 'true';\r\n }\r\n if (event.keyCode === 27 && this.closeOnEscape) {\r\n this.dlgClosedBy = DLG_ESCAPE_CLOSED;\r\n this.hide(event);\r\n }\r\n if ((event.keyCode === 13 && !event.ctrlKey && element.tagName.toLowerCase() !== 'textarea' &&\r\n isTagName && !isNullOrUndefined(this.primaryButtonEle)) ||\r\n (event.keyCode === 13 && event.ctrlKey && (element.tagName.toLowerCase() === 'textarea' ||\r\n isContentEdit)) && !isNullOrUndefined(this.primaryButtonEle)) {\r\n var buttonIndex_1;\r\n // eslint-disable-next-line\r\n var firstPrimary = this.buttons.some(function (data, index) {\r\n buttonIndex_1 = index;\r\n // eslint-disable-next-line\r\n var buttonModel = data.buttonModel;\r\n return !isNullOrUndefined(buttonModel) && buttonModel.isPrimary === true;\r\n });\r\n if (firstPrimary && typeof (this.buttons[buttonIndex_1].click) === 'function') {\r\n setTimeout(function () {\r\n _this.buttons[buttonIndex_1].click.call(_this, event);\r\n });\r\n }\r\n }\r\n };\r\n /**\r\n * Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.initialize = function () {\r\n if (!isNullOrUndefined(this.target)) {\r\n this.targetEle = ((typeof this.target) === 'string') ?\r\n document.querySelector(this.target) : this.target;\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n addClass([this.element], ROOT);\r\n }\r\n if (Browser.isDevice) {\r\n addClass([this.element], DEVICE);\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n this.setCSSClass();\r\n }\r\n this.setMaxHeight();\r\n };\r\n /**\r\n * Initialize the rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.initRender = function () {\r\n var _this = this;\r\n this.initialRender = true;\r\n if (!this.isBlazorServerRender()) {\r\n attributes(this.element, { role: 'dialog' });\r\n }\r\n if (this.zIndex === 1000) {\r\n this.setzIndex(this.element, false);\r\n this.calculatezIndex = true;\r\n }\r\n else {\r\n this.calculatezIndex = false;\r\n }\r\n if (this.isBlazorServerRender() && isNullOrUndefined(this.headerContent)) {\r\n this.headerContent = this.element.getElementsByClassName('e-dlg-header-content')[0];\r\n }\r\n if (this.isBlazorServerRender() && isNullOrUndefined(this.contentEle)) {\r\n this.contentEle = this.element.querySelector('#' + this.element.id + '_dialog-content');\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n this.setTargetContent();\r\n if (this.header !== '' && !isNullOrUndefined(this.header)) {\r\n this.setHeader();\r\n }\r\n if (this.showCloseIcon) {\r\n this.renderCloseIcon();\r\n }\r\n this.setContent();\r\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\r\n this.setFooterTemplate();\r\n }\r\n else if (!isNullOrUndefined(this.buttons[0].buttonModel)) {\r\n this.setButton();\r\n }\r\n }\r\n if (this.isBlazorServerRender()) {\r\n if (!isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\r\n this.setButton();\r\n }\r\n }\r\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\r\n this.setAllowDragging();\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n attributes(this.element, { 'aria-modal': (this.isModal ? 'true' : 'false') });\r\n if (this.isModal) {\r\n this.setIsModal();\r\n }\r\n }\r\n if (this.isBlazorServerRender() && isNullOrUndefined(this.dlgContainer)) {\r\n this.dlgContainer = this.element.parentElement;\r\n for (var i = 0, childNodes = this.dlgContainer.children; i < childNodes.length; i++) {\r\n if (childNodes[i].classList.contains('e-dlg-overlay')) {\r\n this.dlgOverlay = childNodes[i];\r\n }\r\n }\r\n }\r\n if (this.element.classList.contains(DLG_UTIL_ALERT) !== true && this.element.classList.contains(DLG_UTIL_CONFIRM) !== true\r\n && !isNullOrUndefined(this.element.parentElement)) {\r\n var parentEle = this.isModal ? this.dlgContainer.parentElement : this.element.parentElement;\r\n this.refElement = this.createElement('div', { className: DLG_REF_ELEMENT });\r\n parentEle.insertBefore(this.refElement, (this.isModal ? this.dlgContainer : this.element));\r\n }\r\n if (!isNullOrUndefined(this.targetEle)) {\r\n // eslint-disable-next-line\r\n this.isModal ? this.targetEle.appendChild(this.dlgContainer) : this.targetEle.appendChild(this.element);\r\n }\r\n this.popupObj = new Popup(this.element, {\r\n height: this.height,\r\n width: this.width,\r\n zIndex: this.zIndex,\r\n relateTo: this.target,\r\n actionOnScroll: 'none',\r\n enableRtl: this.enableRtl,\r\n // eslint-disable-next-line\r\n open: function (event) {\r\n // eslint-disable-next-line\r\n var eventArgs = {\r\n container: _this.isModal ? _this.dlgContainer : _this.element,\r\n element: _this.element,\r\n target: _this.target,\r\n preventFocus: false\r\n };\r\n if (_this.enableResize) {\r\n _this.resetResizeIcon();\r\n }\r\n // eslint-disable-next-line\r\n _this.trigger('open', eventArgs, function (openEventArgs) {\r\n if (!openEventArgs.preventFocus) {\r\n _this.focusContent();\r\n }\r\n });\r\n },\r\n // eslint-disable-next-line\r\n close: function (event) {\r\n if (_this.isModal) {\r\n addClass([_this.dlgOverlay], 'e-fade');\r\n }\r\n _this.unBindEvent(_this.element);\r\n if (_this.isModal) {\r\n _this.dlgContainer.style.display = 'none';\r\n }\r\n _this.trigger('close', _this.closeArgs);\r\n var activeEle = document.activeElement;\r\n if (!isNullOrUndefined(activeEle) && !isNullOrUndefined((activeEle).blur)) {\r\n activeEle.blur();\r\n }\r\n if (!isNullOrUndefined(_this.storeActiveElement) && !isNullOrUndefined(_this.storeActiveElement.focus)) {\r\n _this.storeActiveElement.focus();\r\n }\r\n }\r\n });\r\n this.positionChange();\r\n this.setEnableRTL();\r\n if (!this.isBlazorServerRender()) {\r\n addClass([this.element], DLG_HIDE);\r\n if (this.isModal) {\r\n this.setOverlayZindex();\r\n }\r\n }\r\n if (this.visible) {\r\n this.show();\r\n }\r\n else {\r\n if (this.isModal) {\r\n this.dlgOverlay.style.display = 'none';\r\n }\r\n }\r\n this.initialRender = false;\r\n };\r\n Dialog.prototype.resetResizeIcon = function () {\r\n var dialogConHeight = this.getMinHeight();\r\n if (this.targetEle.offsetHeight < dialogConHeight) {\r\n var className = this.enableRtl ? 'e-south-west' : 'e-south-east';\r\n var resizeIcon = this.element.querySelector('.' + className);\r\n if (!isNullOrUndefined(resizeIcon)) {\r\n resizeIcon.style.bottom = '-' + dialogConHeight.toString() + 'px';\r\n }\r\n }\r\n };\r\n Dialog.prototype.setOverlayZindex = function (zIndexValue) {\r\n var zIndex;\r\n if (isNullOrUndefined(zIndexValue)) {\r\n zIndex = parseInt(this.element.style.zIndex, 10) ? parseInt(this.element.style.zIndex, 10) : this.zIndex;\r\n }\r\n else {\r\n zIndex = zIndexValue;\r\n }\r\n this.dlgOverlay.style.zIndex = (zIndex - 1).toString();\r\n this.dlgContainer.style.zIndex = zIndex.toString();\r\n };\r\n Dialog.prototype.positionChange = function () {\r\n if (this.isModal) {\r\n if (!isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y))) {\r\n this.setPopupPosition();\r\n }\r\n else if ((!isNaN(parseFloat(this.position.X)) && isNaN(parseFloat(this.position.Y)))\r\n || (isNaN(parseFloat(this.position.X)) && !isNaN(parseFloat(this.position.Y)))) {\r\n this.setPopupPosition();\r\n }\r\n else {\r\n this.element.style.top = '0px';\r\n this.element.style.left = '0px';\r\n this.dlgContainer.classList.add('e-dlg-' + this.position.X + '-' + this.position.Y);\r\n }\r\n }\r\n else {\r\n this.setPopupPosition();\r\n }\r\n };\r\n Dialog.prototype.setPopupPosition = function () {\r\n this.popupObj.setProperties({\r\n position: {\r\n X: this.position.X, Y: this.position.Y\r\n }\r\n });\r\n };\r\n Dialog.prototype.setAllowDragging = function () {\r\n var _this = this;\r\n var handleContent = '.' + DLG_HEADER_CONTENT;\r\n this.dragObj = new Draggable(this.element, {\r\n clone: false,\r\n isDragScroll: true,\r\n abort: '.e-dlg-closeicon-btn',\r\n handle: handleContent,\r\n // eslint-disable-next-line\r\n dragStart: function (event) {\r\n // eslint-disable-next-line\r\n _this.trigger('dragStart', event, function (dragEventArgs) {\r\n if (isBlazor()) {\r\n dragEventArgs.bindEvents(event.dragElement);\r\n }\r\n });\r\n },\r\n // eslint-disable-next-line\r\n dragStop: function (event) {\r\n if (_this.isModal) {\r\n if (!isNullOrUndefined(_this.position)) {\r\n _this.dlgContainer.classList.remove('e-dlg-' + _this.position.X + '-' + _this.position.Y);\r\n }\r\n // Reset the dialog position after drag completion.\r\n _this.element.style.position = 'relative';\r\n }\r\n _this.trigger('dragStop', event);\r\n _this.element.classList.remove(DLG_RESTRICT_LEFT_VALUE);\r\n },\r\n // eslint-disable-next-line\r\n drag: function (event) {\r\n _this.trigger('drag', event);\r\n }\r\n });\r\n if (!isNullOrUndefined(this.targetEle)) {\r\n this.dragObj.dragArea = this.targetEle;\r\n }\r\n };\r\n Dialog.prototype.setButton = function () {\r\n if (!this.isBlazorServerRender()) {\r\n this.buttonContent = [];\r\n this.btnObj = [];\r\n // eslint-disable-next-line\r\n var primaryBtnFlag = true;\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n var buttonType = !isNullOrUndefined(this.buttons[i].type) ? this.buttons[i].type.toLowerCase() : 'button';\r\n var btn = this.createElement('button', { attrs: { type: buttonType } });\r\n this.buttonContent.push(btn.outerHTML);\r\n }\r\n this.setFooterTemplate();\r\n }\r\n var footerBtn;\r\n for (var i = 0, childNodes = this.element.children; i < childNodes.length; i++) {\r\n if (childNodes[i].classList.contains(DLG_FOOTER_CONTENT)) {\r\n footerBtn = childNodes[i].querySelectorAll('button');\r\n }\r\n }\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n if (!this.isBlazorServerRender()) {\r\n this.btnObj[i] = new Button(this.buttons[i].buttonModel);\r\n }\r\n if (this.isBlazorServerRender()) {\r\n this.ftrTemplateContent = this.element.querySelector('.' + DLG_FOOTER_CONTENT);\r\n }\r\n if (!isNullOrUndefined(this.ftrTemplateContent) && footerBtn.length > 0) {\r\n if (typeof (this.buttons[i].click) === 'function') {\r\n EventHandler.add(footerBtn[i], 'click', this.buttons[i].click, this);\r\n }\r\n if (typeof (this.buttons[i].click) === 'object') {\r\n EventHandler.add(footerBtn[i], 'click', this.buttonClickHandler.bind(this, i), this);\r\n }\r\n }\r\n if (!this.isBlazorServerRender() && !isNullOrUndefined(this.ftrTemplateContent)) {\r\n this.btnObj[i].appendTo(this.ftrTemplateContent.children[i]);\r\n if (this.buttons[i].isFlat) {\r\n this.btnObj[i].element.classList.add('e-flat');\r\n }\r\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\r\n }\r\n }\r\n };\r\n Dialog.prototype.buttonClickHandler = function (index) {\r\n this.trigger('buttons[' + index + '].click', {});\r\n };\r\n ;\r\n Dialog.prototype.setContent = function () {\r\n attributes(this.element, { 'aria-describedby': this.element.id + '_dialog-content' });\r\n this.contentEle = this.createElement('div', { className: DLG_CONTENT, id: this.element.id + '_dialog-content' });\r\n if (this.innerContentElement) {\r\n this.contentEle.appendChild(this.innerContentElement);\r\n }\r\n else if (!isNullOrUndefined(this.content) && this.content !== '' || !this.initialRender) {\r\n // eslint-disable-next-line\r\n var blazorContain = Object.keys(window);\r\n if (typeof (this.content) === 'string' && !isBlazor()) {\r\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\r\n }\r\n else if (this.content instanceof HTMLElement) {\r\n this.contentEle.appendChild(this.content);\r\n }\r\n else {\r\n this.setTemplate(this.content, this.contentEle, 'content');\r\n }\r\n }\r\n if (!isNullOrUndefined(this.headerContent)) {\r\n this.element.insertBefore(this.contentEle, this.element.children[1]);\r\n }\r\n else {\r\n this.element.insertBefore(this.contentEle, this.element.children[0]);\r\n }\r\n if (this.height === 'auto') {\r\n if (!this.isBlazorServerRender() && Browser.isIE && this.element.style.width === '' && !isNullOrUndefined(this.width)) {\r\n this.element.style.width = formatUnit(this.width);\r\n }\r\n this.setMaxHeight();\r\n }\r\n };\r\n Dialog.prototype.setTemplate = function (template, toElement, prop) {\r\n // eslint-disable-next-line\r\n var templateFn;\r\n var templateProps;\r\n // eslint-disable-next-line\r\n var blazorContain = Object.keys(window);\r\n if (toElement.classList.contains(DLG_HEADER)) {\r\n templateProps = this.element.id + 'header';\r\n }\r\n else if (toElement.classList.contains(DLG_FOOTER_CONTENT)) {\r\n templateProps = this.element.id + 'footerTemplate';\r\n }\r\n else {\r\n templateProps = this.element.id + 'content';\r\n }\r\n var templateValue;\r\n if (!isNullOrUndefined(template.outerHTML)) {\r\n toElement.appendChild(template);\r\n }\r\n else if ((typeof template !== 'string') || (isBlazor() && !this.isStringTemplate)) {\r\n templateFn = compile(template);\r\n templateValue = template;\r\n }\r\n else {\r\n toElement.innerHTML = this.sanitizeHelper(template);\r\n }\r\n var fromElements = [];\r\n if (!isNullOrUndefined(templateFn)) {\r\n var isString = (isBlazor() &&\r\n !this.isStringTemplate && (templateValue).indexOf('
      Blazor') === 0) ?\r\n this.isStringTemplate : true;\r\n for (var _i = 0, _a = templateFn({}, this, prop, templateProps, isString); _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n fromElements.push(item);\r\n }\r\n append([].slice.call(fromElements), toElement);\r\n }\r\n };\r\n /*\r\n * @returns {void}\r\n * @hidden\r\n * @value\r\n */\r\n Dialog.prototype.sanitizeHelper = function (value) {\r\n if (this.enableHtmlSanitizer) {\r\n var dialogItem = SanitizeHtmlHelper.beforeSanitize();\r\n var beforeEvent = {\r\n cancel: false,\r\n helper: null\r\n };\r\n extend(dialogItem, dialogItem, beforeEvent);\r\n this.trigger('beforeSanitizeHtml', dialogItem);\r\n if (dialogItem.cancel && !isNullOrUndefined(dialogItem.helper)) {\r\n value = dialogItem.helper(value);\r\n }\r\n else if (!dialogItem.cancel) {\r\n value = SanitizeHtmlHelper.serializeValue(dialogItem, value);\r\n }\r\n }\r\n return value;\r\n };\r\n Dialog.prototype.setMaxHeight = function () {\r\n if (!this.allowMaxHeight) {\r\n return;\r\n }\r\n var display = this.element.style.display;\r\n this.element.style.display = 'none';\r\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) && (this.targetEle.offsetHeight < window.innerHeight) ?\r\n (this.targetEle.offsetHeight - 20) + 'px' : (window.innerHeight - 20) + 'px';\r\n this.element.style.display = display;\r\n if (Browser.isIE && this.height === 'auto' && !isNullOrUndefined(this.contentEle)\r\n && this.element.offsetHeight < this.contentEle.offsetHeight) {\r\n this.element.style.height = 'inherit';\r\n }\r\n };\r\n Dialog.prototype.setEnableRTL = function () {\r\n if (!this.isBlazorServerRender()) {\r\n // eslint-disable-next-line\r\n this.enableRtl ? addClass([this.element], RTL) : removeClass([this.element], RTL);\r\n }\r\n if (!isNullOrUndefined(this.element.querySelector('.e-resize-handle'))) {\r\n removeResize();\r\n this.setResize();\r\n }\r\n };\r\n Dialog.prototype.setTargetContent = function () {\r\n var _this = this;\r\n if (isNullOrUndefined(this.content) || this.content === '') {\r\n var isContent = this.element.innerHTML.replace(/\\s|<(\\/?|\\/?)(!--!--)>/g, '') !== '';\r\n if (this.element.children.length > 0 || isContent) {\r\n this.innerContentElement = document.createDocumentFragment();\r\n [].slice.call(this.element.childNodes).forEach(function (el) {\r\n if (el.nodeType !== 8) {\r\n _this.innerContentElement.appendChild(el);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Dialog.prototype.setHeader = function () {\r\n if (this.headerEle) {\r\n this.headerEle.innerHTML = '';\r\n }\r\n else {\r\n this.headerEle = this.createElement('div', { id: this.element.id + '_title', className: DLG_HEADER });\r\n }\r\n this.createHeaderContent();\r\n this.headerContent.appendChild(this.headerEle);\r\n this.setTemplate(this.header, this.headerEle, 'header');\r\n attributes(this.element, { 'aria-labelledby': this.element.id });\r\n this.element.insertBefore(this.headerContent, this.element.children[0]);\r\n };\r\n Dialog.prototype.setFooterTemplate = function () {\r\n if (this.ftrTemplateContent) {\r\n this.ftrTemplateContent.innerHTML = '';\r\n }\r\n else {\r\n this.ftrTemplateContent = this.createElement('div', {\r\n className: DLG_FOOTER_CONTENT\r\n });\r\n }\r\n if (this.footerTemplate !== '' && !isNullOrUndefined(this.footerTemplate)) {\r\n this.setTemplate(this.footerTemplate, this.ftrTemplateContent, 'footerTemplate');\r\n }\r\n else {\r\n this.ftrTemplateContent.innerHTML = this.buttonContent.join('');\r\n }\r\n this.element.appendChild(this.ftrTemplateContent);\r\n };\r\n Dialog.prototype.createHeaderContent = function () {\r\n if (isNullOrUndefined(this.headerContent)) {\r\n this.headerContent = this.createElement('div', { id: this.element.id + '_dialog-header', className: DLG_HEADER_CONTENT });\r\n }\r\n };\r\n Dialog.prototype.renderCloseIcon = function () {\r\n this.closeIcon = this.createElement('button', { className: DLG_CLOSE_ICON_BTN, attrs: { type: 'button' } });\r\n this.closeIconBtnObj = new Button({ cssClass: 'e-flat', iconCss: DLG_CLOSE_ICON + ' ' + ICON });\r\n this.closeIconTitle();\r\n if (!isNullOrUndefined(this.headerContent)) {\r\n prepend([this.closeIcon], this.headerContent);\r\n }\r\n else {\r\n this.createHeaderContent();\r\n prepend([this.closeIcon], this.headerContent);\r\n this.element.insertBefore(this.headerContent, this.element.children[0]);\r\n }\r\n this.closeIconBtnObj.appendTo(this.closeIcon);\r\n };\r\n Dialog.prototype.closeIconTitle = function () {\r\n this.l10n.setLocale(this.locale);\r\n var closeIconTitle = this.l10n.getConstant('close');\r\n this.closeIcon.setAttribute('title', closeIconTitle);\r\n this.closeIcon.setAttribute('aria-label', closeIconTitle);\r\n };\r\n Dialog.prototype.setCSSClass = function (oldCSSClass) {\r\n if (this.cssClass) {\r\n addClass([this.element], this.cssClass.split(' '));\r\n }\r\n if (oldCSSClass) {\r\n removeClass([this.element], oldCSSClass.split(' '));\r\n }\r\n };\r\n Dialog.prototype.setIsModal = function () {\r\n this.dlgContainer = this.createElement('div', { className: DLG_CONTAINER });\r\n this.element.classList.remove(DLG_SHOW);\r\n this.element.parentNode.insertBefore(this.dlgContainer, this.element);\r\n this.dlgContainer.appendChild(this.element);\r\n addClass([this.element], MODAL_DLG);\r\n this.dlgOverlay = this.createElement('div', { className: DLG_OVERLAY });\r\n this.dlgOverlay.style.zIndex = (this.zIndex - 1).toString();\r\n this.dlgContainer.appendChild(this.dlgOverlay);\r\n };\r\n Dialog.prototype.getValidFocusNode = function (items) {\r\n var node;\r\n for (var u = 0; u < items.length; u++) {\r\n node = items[u];\r\n if ((node.clientHeight > 0 || (node.tagName.toLowerCase() === 'a' && node.hasAttribute('href'))) && node.tabIndex > -1 &&\r\n !node.disabled && !this.disableElement(node, '[disabled],[aria-disabled=\"true\"],[type=\"hidden\"]')) {\r\n return node;\r\n }\r\n else {\r\n node = null;\r\n }\r\n }\r\n return node;\r\n };\r\n Dialog.prototype.focusableElements = function (content) {\r\n if (!isNullOrUndefined(content)) {\r\n var value = 'input,select,textarea,button,a,[contenteditable=\"true\"],[tabindex]';\r\n var items = content.querySelectorAll(value);\r\n return this.getValidFocusNode(items);\r\n }\r\n return null;\r\n };\r\n Dialog.prototype.getAutoFocusNode = function (container) {\r\n var node = container.querySelector('.' + DLG_CLOSE_ICON_BTN);\r\n var value = '[autofocus]';\r\n var items = container.querySelectorAll(value);\r\n var validNode = this.getValidFocusNode(items);\r\n if (isBlazor()) {\r\n this.primaryButtonEle = this.element.getElementsByClassName('e-primary')[0];\r\n }\r\n if (!isNullOrUndefined(validNode)) {\r\n node = validNode;\r\n }\r\n else {\r\n validNode = this.focusableElements(this.contentEle);\r\n if (!isNullOrUndefined(validNode)) {\r\n return node = validNode;\r\n }\r\n else if (!isNullOrUndefined(this.primaryButtonEle)) {\r\n return this.element.querySelector('.' + DLG_PRIMARY_BUTTON);\r\n }\r\n }\r\n return node;\r\n };\r\n Dialog.prototype.disableElement = function (element, t) {\r\n // eslint-disable-next-line\r\n var elementMatch = element ? element.matches || element.webkitMatchesSelector || element.msGetRegionContent : null;\r\n if (elementMatch) {\r\n for (; element; element = element.parentNode) {\r\n if (element instanceof Element && elementMatch.call(element, t)) {\r\n /* istanbul ignore next */\r\n return element;\r\n }\r\n }\r\n }\r\n return null;\r\n };\r\n Dialog.prototype.focusContent = function () {\r\n var element = this.getAutoFocusNode(this.element);\r\n var node = !isNullOrUndefined(element) ? element : this.element;\r\n var userAgent = Browser.userAgent;\r\n if (userAgent.indexOf('MSIE ') > 0 || userAgent.indexOf('Trident/') > 0) {\r\n this.element.focus();\r\n }\r\n node.focus();\r\n this.bindEvent(this.element);\r\n };\r\n Dialog.prototype.bindEvent = function (element) {\r\n EventHandler.add(element, 'keydown', this.keyDown, this);\r\n };\r\n Dialog.prototype.unBindEvent = function (element) {\r\n EventHandler.remove(element, 'keydown', this.keyDown);\r\n };\r\n Dialog.prototype.updateSanitizeContent = function () {\r\n if (!this.isBlazorServerRender()) {\r\n this.contentEle.innerHTML = this.sanitizeHelper(this.content);\r\n }\r\n };\r\n Dialog.prototype.isBlazorServerRender = function () {\r\n return isBlazor() && this.isServerRendered;\r\n };\r\n /**\r\n * Module required function\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.getModuleName = function () {\r\n return 'dialog';\r\n };\r\n /**\r\n * Called internally if any of the property value changed\r\n *\r\n * @param {DialogModel} newProp - specifies the new property\r\n * @param {DialogModel} oldProp - specifies the old property\r\n * @private\r\n * @returns {void}\r\n */\r\n Dialog.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (!this.element.classList.contains(ROOT)) {\r\n return;\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'content':\r\n if (!isNullOrUndefined(this.content) && this.content !== '') {\r\n if (this.isBlazorServerRender()) {\r\n this.contentEle = this.element.querySelector('.e-dlg-content');\r\n }\r\n if (!isNullOrUndefined(this.contentEle) && this.contentEle.getAttribute('role') !== 'dialog') {\r\n if (!this.isBlazorServerRender()) {\r\n this.contentEle.innerHTML = '';\r\n }\r\n // eslint-disable-next-line\r\n if (typeof (this.content) === 'function') {\r\n this.clearTemplate(['content']);\r\n detach(this.contentEle);\r\n this.contentEle = null;\r\n this.setContent();\r\n }\r\n else {\r\n typeof (this.content) === 'string' ? (this.isBlazorServerRender() && (this.contentEle.innerText === '')) ?\r\n this.contentEle.insertAdjacentHTML('beforeend', this.sanitizeHelper(this.content)) :\r\n this.updateSanitizeContent() : this.contentEle.appendChild(this.content);\r\n }\r\n this.setMaxHeight();\r\n }\r\n else {\r\n if (!this.isBlazorServerRender() ||\r\n isNullOrUndefined(this.element.querySelector('.e-dlg-content'))) {\r\n this.setContent();\r\n }\r\n }\r\n }\r\n else if (!isNullOrUndefined(this.contentEle)) {\r\n detach(this.contentEle);\r\n this.contentEle = null;\r\n }\r\n break;\r\n case 'header':\r\n if (this.header === '' || isNullOrUndefined(this.header)) {\r\n if (this.headerEle) {\r\n detach(this.headerEle);\r\n this.headerEle = null;\r\n }\r\n }\r\n else {\r\n if (!this.isBlazorServerRender() ||\r\n isNullOrUndefined(this.element.querySelector('.e-dlg-header-content'))) {\r\n this.setHeader();\r\n }\r\n }\r\n break;\r\n case 'footerTemplate':\r\n if (this.footerTemplate === '' || isNullOrUndefined(this.footerTemplate)) {\r\n if (!this.ftrTemplateContent) {\r\n return;\r\n }\r\n detach(this.ftrTemplateContent);\r\n this.ftrTemplateContent = null;\r\n this.buttons = [{}];\r\n }\r\n else {\r\n if (!this.isBlazorServerRender() ||\r\n isNullOrUndefined(this.element.querySelector('.e-footer-content'))) {\r\n this.setFooterTemplate();\r\n }\r\n this.buttons = [{}];\r\n }\r\n break;\r\n case 'showCloseIcon':\r\n if (this.element.getElementsByClassName(DLG_CLOSE_ICON).length > 0) {\r\n if (!this.showCloseIcon && (this.header === '' || isNullOrUndefined(this.header))) {\r\n detach(this.headerContent);\r\n this.headerContent = null;\r\n }\r\n else if (!this.showCloseIcon) {\r\n detach(this.closeIcon);\r\n }\r\n else {\r\n if (this.isBlazorServerRender()) {\r\n this.wireEvents();\r\n }\r\n }\r\n }\r\n else {\r\n if (!this.isBlazorServerRender()) {\r\n this.renderCloseIcon();\r\n }\r\n this.wireEvents();\r\n }\r\n break;\r\n case 'locale':\r\n if (this.showCloseIcon) {\r\n this.closeIconTitle();\r\n }\r\n break;\r\n case 'visible':\r\n // eslint-disable-next-line\r\n this.visible ? this.show() : this.hide();\r\n break;\r\n case 'isModal':\r\n this.updateIsModal();\r\n break;\r\n case 'height':\r\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\r\n break;\r\n case 'width':\r\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\r\n break;\r\n case 'zIndex':\r\n this.popupObj.zIndex = this.zIndex;\r\n if (this.isModal) {\r\n this.setOverlayZindex(this.zIndex);\r\n }\r\n if (this.element.style.zIndex !== this.zIndex.toString()) {\r\n this.calculatezIndex = false;\r\n }\r\n break;\r\n case 'cssClass':\r\n this.setCSSClass(oldProp.cssClass);\r\n break;\r\n case 'buttons': {\r\n var buttonCount = this.buttons.length;\r\n if (!isNullOrUndefined(this.ftrTemplateContent) && !this.isBlazorServerRender()) {\r\n detach(this.ftrTemplateContent);\r\n this.ftrTemplateContent = null;\r\n }\r\n for (var i = 0; i < buttonCount; i++) {\r\n if (!isNullOrUndefined(this.buttons[i].buttonModel)) {\r\n this.footerTemplate = '';\r\n this.setButton();\r\n }\r\n }\r\n break;\r\n }\r\n case 'allowDragging':\r\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\r\n this.setAllowDragging();\r\n }\r\n else {\r\n this.dragObj.destroy();\r\n }\r\n break;\r\n case 'target':\r\n this.setTarget(newProp.target);\r\n break;\r\n case 'position':\r\n this.checkPositionData();\r\n if (this.isModal) {\r\n var positionX = isNullOrUndefined(oldProp.position.X) ? this.position.X : oldProp.position.X;\r\n var positionY = isNullOrUndefined(oldProp.position.Y) ? this.position.Y : oldProp.position.Y;\r\n if (this.dlgContainer.classList.contains('e-dlg-' + positionX + '-' + positionY)) {\r\n this.dlgContainer.classList.remove('e-dlg-' + positionX + '-' + positionY);\r\n }\r\n }\r\n this.positionChange();\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRTL();\r\n break;\r\n case 'enableResize':\r\n this.setResize();\r\n break;\r\n }\r\n }\r\n };\r\n Dialog.prototype.setTarget = function (target) {\r\n this.popupObj.relateTo = target;\r\n this.target = target;\r\n this.targetEle = ((typeof this.target) === 'string') ?\r\n document.querySelector(this.target) : this.target;\r\n if (this.dragObj) {\r\n this.dragObj.dragArea = this.targetEle;\r\n }\r\n this.setMaxHeight();\r\n if (this.isModal) {\r\n this.updateIsModal();\r\n }\r\n if (this.enableResize) {\r\n this.setResize();\r\n }\r\n };\r\n Dialog.prototype.updateIsModal = function () {\r\n this.element.setAttribute('aria-modal', this.isModal ? 'true' : 'false');\r\n if (this.isModal) {\r\n if (isNullOrUndefined(this.dlgOverlay)) {\r\n this.setIsModal();\r\n this.element.style.top = '0px';\r\n this.element.style.left = '0px';\r\n if (!isNullOrUndefined(this.targetEle)) {\r\n this.targetEle.appendChild(this.dlgContainer);\r\n }\r\n }\r\n }\r\n else {\r\n removeClass([this.element], MODAL_DLG);\r\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n detach(this.dlgOverlay);\r\n while (this.dlgContainer.firstChild) {\r\n this.dlgContainer.parentElement.insertBefore(this.dlgContainer.firstChild, this.dlgContainer);\r\n }\r\n this.dlgContainer.parentElement.removeChild(this.dlgContainer);\r\n }\r\n if (this.visible) {\r\n this.show();\r\n }\r\n this.positionChange();\r\n if (this.isModal && this.dlgOverlay) {\r\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\r\n }\r\n };\r\n Dialog.prototype.setzIndex = function (zIndexElement, setPopupZindex) {\r\n var prevOnChange = this.isProtectedOnChange;\r\n this.isProtectedOnChange = true;\r\n this.zIndex = getZindexPartial(zIndexElement);\r\n this.isProtectedOnChange = prevOnChange;\r\n if (setPopupZindex) {\r\n this.popupObj.zIndex = this.zIndex;\r\n }\r\n };\r\n Dialog.prototype.windowResizeHandler = function () {\r\n setMaxWidth(this.targetEle.clientWidth);\r\n setMaxHeight(this.targetEle.clientHeight);\r\n this.setMaxHeight();\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * To destroy the widget\r\n *\r\n * @returns {void}\r\n */\r\n Dialog.prototype.destroy = function () {\r\n if (this.isDestroyed) {\r\n return;\r\n }\r\n var classArray = [RTL, MODAL_DLG, DLG_RESIZABLE, DLG_RESTRICT_LEFT_VALUE, FULLSCREEN, DEVICE];\r\n var attrs = ['role', 'aria-modal', 'aria-labelledby', 'aria-describedby', 'aria-grabbed', 'tabindex', 'style'];\r\n removeClass([this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\r\n if (!isNullOrUndefined(this.element) && this.element.classList.contains(FULLSCREEN)) {\r\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n }\r\n if (this.isModal) {\r\n removeClass([(!isNullOrUndefined(this.targetEle) ? this.targetEle : document.body)], SCROLL_DISABLED);\r\n }\r\n this.unWireEvents();\r\n if (!isNullOrUndefined(this.btnObj)) {\r\n for (var i = 0; i < this.btnObj.length; i++) {\r\n this.btnObj[i].destroy();\r\n }\r\n }\r\n if (!isNullOrUndefined(this.dragObj)) {\r\n this.dragObj.destroy();\r\n }\r\n if (!isNullOrUndefined(this.popupObj.element) && this.popupObj.element.classList.contains(POPUP_ROOT)) {\r\n this.popupObj.destroy();\r\n }\r\n removeClass([this.element], classArray);\r\n if (!isNullOrUndefined(this.cssClass) && this.cssClass !== '') {\r\n removeClass([this.element], this.cssClass.split(' '));\r\n }\r\n if (!isNullOrUndefined(this.refElement) && !isNullOrUndefined(this.refElement.parentElement)) {\r\n this.refElement.parentElement.insertBefore((this.isModal ? this.dlgContainer : this.element), this.refElement);\r\n detach(this.refElement);\r\n this.refElement = undefined;\r\n }\r\n if (this.isModal && !this.isBlazorServerRender()) {\r\n detach(this.dlgOverlay);\r\n this.dlgContainer.parentNode.insertBefore(this.element, this.dlgContainer);\r\n detach(this.dlgContainer);\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n this.element.innerHTML = this.clonedEle.innerHTML;\r\n }\r\n if (this.isBlazorServerRender()) {\r\n if (!isNullOrUndefined(this.element.children)) {\r\n for (var i = 0; i <= this.element.children.length; i++) {\r\n i = i - i;\r\n detach(this.element.children[i]);\r\n }\r\n }\r\n }\r\n for (var i = 0; i < attrs.length; i++) {\r\n this.element.removeAttribute(attrs[i]);\r\n }\r\n if (!this.isBlazorServerRender()) {\r\n _super.prototype.destroy.call(this);\r\n }\r\n else {\r\n this.isDestroyed = true;\r\n }\r\n // eslint-disable-next-line\r\n if (this.isReact) {\r\n this.clearTemplate();\r\n }\r\n };\r\n Dialog.prototype.wireWindowResizeEvent = function () {\r\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\r\n };\r\n Dialog.prototype.unWireWindowResizeEvent = function () {\r\n window.removeEventListener('resize', this.windowResizeHandler.bind(this));\r\n };\r\n /**\r\n * Binding event to the element while widget creation\r\n *\r\n * @returns {void}\r\n * @hidden\r\n */\r\n Dialog.prototype.wireEvents = function () {\r\n if (this.isBlazorServerRender() && this.showCloseIcon) {\r\n this.closeIcon = this.element.getElementsByClassName('e-dlg-closeicon-btn')[0];\r\n }\r\n if (this.showCloseIcon) {\r\n EventHandler.add(this.closeIcon, 'click', this.closeIconClickEventHandler, this);\r\n }\r\n if (this.isModal && this.dlgOverlay) {\r\n EventHandler.add(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler, this);\r\n }\r\n };\r\n /**\r\n * Unbinding event to the element while widget destroy\r\n *\r\n * @returns {void}\r\n * @hidden\r\n */\r\n Dialog.prototype.unWireEvents = function () {\r\n if (this.showCloseIcon) {\r\n EventHandler.remove(this.closeIcon, 'click', this.closeIconClickEventHandler);\r\n }\r\n if (this.isModal) {\r\n EventHandler.remove(this.dlgOverlay, 'click', this.dlgOverlayClickEventHandler);\r\n }\r\n if (this.buttons.length > 0 && !isNullOrUndefined(this.buttons[0].buttonModel) && this.footerTemplate === '') {\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n if (typeof (this.buttons[i].click) === 'function') {\r\n EventHandler.remove(this.ftrTemplateContent.children[i], 'click', this.buttons[i].click);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Refreshes the dialog's position when the user changes its header and footer height/width dynamically.\r\n *\r\n * @returns {void}\r\n */\r\n Dialog.prototype.refreshPosition = function () {\r\n this.popupObj.refreshPosition();\r\n };\r\n /**\r\n * Opens the dialog if it is in hidden state.\r\n * To open the dialog with full screen width, set the parameter to true.\r\n *\r\n * @param { boolean } isFullScreen - Enable the fullScreen Dialog.\r\n * @returns {void}\r\n */\r\n Dialog.prototype.show = function (isFullScreen) {\r\n var _this = this;\r\n if (!this.element.classList.contains(ROOT)) {\r\n return;\r\n }\r\n if (!this.element.classList.contains(DLG_SHOW) || (!isNullOrUndefined(isFullScreen))) {\r\n if (!isNullOrUndefined(isFullScreen)) {\r\n this.fullScreen(isFullScreen);\r\n }\r\n var eventArgs_1 = isBlazor() ? {\r\n cancel: false,\r\n element: this.element,\r\n container: this.isModal ? this.dlgContainer : this.element,\r\n maxHeight: this.element.style.maxHeight\r\n } : {\r\n cancel: false,\r\n element: this.element,\r\n container: this.isModal ? this.dlgContainer : this.element,\r\n target: this.target,\r\n maxHeight: this.element.style.maxHeight\r\n };\r\n this.trigger('beforeOpen', eventArgs_1, function (beforeOpenArgs) {\r\n if (!beforeOpenArgs.cancel) {\r\n if (_this.element.style.maxHeight !== eventArgs_1.maxHeight) {\r\n _this.allowMaxHeight = false;\r\n _this.element.style.maxHeight = eventArgs_1.maxHeight;\r\n }\r\n _this.storeActiveElement = document.activeElement;\r\n _this.element.tabIndex = -1;\r\n if (_this.isModal && (!isNullOrUndefined(_this.dlgOverlay))) {\r\n _this.dlgOverlay.style.display = 'block';\r\n _this.dlgContainer.style.display = 'flex';\r\n removeClass([_this.dlgOverlay], 'e-fade');\r\n if (!isNullOrUndefined(_this.targetEle)) {\r\n if (_this.targetEle === document.body) {\r\n _this.dlgContainer.style.position = 'fixed';\r\n }\r\n else {\r\n _this.dlgContainer.style.position = 'absolute';\r\n }\r\n _this.dlgOverlay.style.position = 'absolute';\r\n _this.element.style.position = 'relative';\r\n addClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\r\n }\r\n else {\r\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n var openAnimation = {\r\n name: _this.animationSettings.effect + 'In',\r\n duration: _this.animationSettings.duration,\r\n delay: _this.animationSettings.delay\r\n };\r\n var zIndexElement = (_this.isModal) ? _this.element.parentElement : _this.element;\r\n if (_this.calculatezIndex) {\r\n _this.setzIndex(zIndexElement, true);\r\n setStyleAttribute(_this.element, { 'zIndex': _this.zIndex });\r\n if (_this.isModal) {\r\n _this.setOverlayZindex(_this.zIndex);\r\n }\r\n }\r\n // eslint-disable-next-line\r\n _this.animationSettings.effect === 'None' ? _this.popupObj.show() : _this.popupObj.show(openAnimation);\r\n _this.dialogOpen = true;\r\n var prevOnChange = _this.isProtectedOnChange;\r\n _this.isProtectedOnChange = true;\r\n _this.visible = true;\r\n _this.preventVisibility = true;\r\n _this.isProtectedOnChange = prevOnChange;\r\n }\r\n });\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * Closes the dialog if it is in visible state.\r\n *\r\n * @param { Event } event - specifies the event\r\n * @returns {void}\r\n */\r\n Dialog.prototype.hide = function (event) {\r\n var _this = this;\r\n if (!this.element.classList.contains(ROOT)) {\r\n return;\r\n }\r\n if (this.preventVisibility) {\r\n var eventArgs = isBlazor() ? {\r\n cancel: false,\r\n isInteracted: event ? true : false,\r\n element: this.element,\r\n container: this.isModal ? this.dlgContainer : this.element,\r\n event: event\r\n } : {\r\n cancel: false,\r\n isInteracted: event ? true : false,\r\n element: this.element,\r\n target: this.target,\r\n container: this.isModal ? this.dlgContainer : this.element,\r\n event: event,\r\n closedBy: this.dlgClosedBy\r\n };\r\n this.closeArgs = eventArgs;\r\n this.trigger('beforeClose', eventArgs, function (beforeCloseArgs) {\r\n if (!beforeCloseArgs.cancel) {\r\n if (_this.isModal) {\r\n if (!isNullOrUndefined(_this.targetEle)) {\r\n removeClass([_this.targetEle], [DLG_TARGET, SCROLL_DISABLED]);\r\n }\r\n }\r\n if (document.body.classList.contains(DLG_TARGET) &&\r\n document.body.classList.contains(SCROLL_DISABLED)) {\r\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n }\r\n // eslint-disable-next-line\r\n var closeAnimation = {\r\n name: _this.animationSettings.effect + 'Out',\r\n duration: _this.animationSettings.duration,\r\n delay: _this.animationSettings.delay\r\n };\r\n // eslint-disable-next-line\r\n _this.animationSettings.effect === 'None' ? _this.popupObj.hide() : _this.popupObj.hide(closeAnimation);\r\n _this.dialogOpen = false;\r\n var prevOnChange = _this.isProtectedOnChange;\r\n _this.isProtectedOnChange = true;\r\n _this.visible = false;\r\n _this.preventVisibility = false;\r\n _this.isProtectedOnChange = prevOnChange;\r\n }\r\n _this.dlgClosedBy = DLG_USER_ACTION_CLOSED;\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line\r\n /**\r\n * Specifies to view the Full screen Dialog.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Dialog.prototype.fullScreen = function (args) {\r\n /* eslint-disable */\r\n var top = this.element.offsetTop;\r\n var left = this.element.offsetLeft;\r\n /* eslint-enable */\r\n if (args) {\r\n addClass([this.element], FULLSCREEN);\r\n var display = this.element.style.display;\r\n this.element.style.display = 'none';\r\n this.element.style.maxHeight = (!isNullOrUndefined(this.target)) ?\r\n (this.targetEle.offsetHeight) + 'px' : (window.innerHeight) + 'px';\r\n this.element.style.display = display;\r\n addClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n if (this.allowDragging && !isNullOrUndefined(this.dragObj)) {\r\n this.dragObj.destroy();\r\n }\r\n }\r\n else {\r\n removeClass([this.element], FULLSCREEN);\r\n removeClass([document.body], [DLG_TARGET, SCROLL_DISABLED]);\r\n if (this.allowDragging && (!isNullOrUndefined(this.headerContent))) {\r\n this.setAllowDragging();\r\n }\r\n }\r\n return args;\r\n };\r\n /**\r\n * Returns the dialog button instances.\r\n * Based on that, you can dynamically change the button states.\r\n *\r\n * @param { number } index - Index of the button.\r\n * @returns {Button} - returns the button element\r\n */\r\n Dialog.prototype.getButtons = function (index) {\r\n if (!isNullOrUndefined(index)) {\r\n return this.btnObj[index];\r\n }\r\n return this.btnObj;\r\n };\r\n __decorate([\r\n Property('')\r\n ], Dialog.prototype, \"content\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Dialog.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Dialog.prototype, \"showCloseIcon\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Dialog.prototype, \"isModal\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Dialog.prototype, \"header\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Dialog.prototype, \"visible\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Dialog.prototype, \"enableResize\", void 0);\r\n __decorate([\r\n Property(['South-East'])\r\n ], Dialog.prototype, \"resizeHandles\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Dialog.prototype, \"height\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Dialog.prototype, \"minHeight\", void 0);\r\n __decorate([\r\n Property('100%')\r\n ], Dialog.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Dialog.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], Dialog.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Dialog.prototype, \"target\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Dialog.prototype, \"footerTemplate\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Dialog.prototype, \"allowDragging\", void 0);\r\n __decorate([\r\n Collection([{}], ButtonProps)\r\n ], Dialog.prototype, \"buttons\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Dialog.prototype, \"closeOnEscape\", void 0);\r\n __decorate([\r\n Complex({}, AnimationSettings)\r\n ], Dialog.prototype, \"animationSettings\", void 0);\r\n __decorate([\r\n Complex({ X: 'center', Y: 'center' }, PositionData)\r\n ], Dialog.prototype, \"position\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"beforeSanitizeHtml\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"dragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"dragStop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"drag\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"overlayClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"resizeStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"resizing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"resizeStop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Dialog.prototype, \"destroyed\", void 0);\r\n Dialog = __decorate([\r\n NotifyPropertyChanges\r\n ], Dialog);\r\n return Dialog;\r\n}(Component));\r\nexport { Dialog };\r\n/**\r\n * Base for creating Alert and Confirmation Dialog through util method.\r\n */\r\n// eslint-disable-next-line\r\nexport var DialogUtility;\r\n(function (DialogUtility) {\r\n /**\r\n * An alert dialog box is used to display warning like messages to the users.\r\n * ```\r\n * Eg : DialogUtility.alert('Alert message');\r\n *\r\n * ```\r\n */\r\n /* istanbul ignore next */\r\n /**\r\n *\r\n * @param {AlertDialogArgs} args - specifies the string\r\n * @returns {Dialog} - returns the dialog element.\r\n */\r\n function alert(args) {\r\n // eslint-disable-next-line\r\n var dialogComponent;\r\n var dialogElement = createElement('div', { 'className': DLG_UTIL_ALERT });\r\n document.body.appendChild(dialogElement);\r\n var alertDialogObj;\r\n var okButtonModel = [{\r\n buttonModel: { isPrimary: true, content: 'OK' },\r\n click: function () {\r\n this.hide();\r\n }\r\n }];\r\n if (typeof (args) === 'string') {\r\n alertDialogObj = createDialog({ content: args,\r\n position: { X: 'center', Y: 'top' },\r\n isModal: true, header: DLG_UTIL_DEFAULT_TITLE,\r\n buttons: okButtonModel }, dialogElement);\r\n }\r\n else {\r\n alertDialogObj = createDialog(alertOptions(args), dialogElement);\r\n }\r\n alertDialogObj.close = function () {\r\n if (args && args.close) {\r\n args.close.apply(alertDialogObj);\r\n }\r\n alertDialogObj.destroy();\r\n if (alertDialogObj.element.classList.contains('e-dlg-modal')) {\r\n alertDialogObj.element.parentElement.remove();\r\n alertDialogObj.target.classList.remove(DLG_UTIL_ROOT);\r\n }\r\n else {\r\n alertDialogObj.element.remove();\r\n }\r\n };\r\n return alertDialogObj;\r\n }\r\n DialogUtility.alert = alert;\r\n /**\r\n * A confirm dialog displays a specified message along with ‘OK’ and ‘Cancel’ button.\r\n * ```\r\n * Eg : DialogUtility.confirm('Confirm dialog message');\r\n *\r\n * ```\r\n */\r\n /* istanbul ignore next */\r\n /**\r\n *\r\n * @param {ConfirmDialogArgs} args - specifies the args\r\n * @returns {Dialog} - returns te element\r\n */\r\n function confirm(args) {\r\n // eslint-disable-next-line\r\n var dialogComponent;\r\n var dialogElement = createElement('div', { 'className': DLG_UTIL_CONFIRM });\r\n document.body.appendChild(dialogElement);\r\n var confirmDialogObj;\r\n var okCancelButtonModel = [{\r\n buttonModel: { isPrimary: true, content: 'OK' },\r\n click: function () {\r\n this.hide();\r\n }\r\n }, {\r\n buttonModel: { content: 'Cancel' },\r\n click: function () {\r\n this.hide();\r\n }\r\n }];\r\n if (typeof (args) === 'string') {\r\n confirmDialogObj = createDialog({ position: { X: 'center', Y: 'top' }, content: args, isModal: true,\r\n header: DLG_UTIL_DEFAULT_TITLE, buttons: okCancelButtonModel\r\n }, dialogElement);\r\n }\r\n else {\r\n confirmDialogObj = createDialog(confirmOptions(args), dialogElement);\r\n }\r\n confirmDialogObj.close = function () {\r\n if (args && args.close) {\r\n args.close.apply(confirmDialogObj);\r\n }\r\n confirmDialogObj.destroy();\r\n if (confirmDialogObj.element.classList.contains('e-dlg-modal')) {\r\n confirmDialogObj.element.parentElement.remove();\r\n confirmDialogObj.target.classList.remove(DLG_UTIL_ROOT);\r\n }\r\n else {\r\n confirmDialogObj.element.remove();\r\n }\r\n };\r\n return confirmDialogObj;\r\n }\r\n DialogUtility.confirm = confirm;\r\n // eslint-disable-next-line\r\n function createDialog(options, element) {\r\n var dialogObject = new Dialog(options);\r\n dialogObject.appendTo(element);\r\n return dialogObject;\r\n }\r\n // eslint-disable-next-line\r\n function alertOptions(option) {\r\n var options = {};\r\n options.buttons = [];\r\n options = formOptions(options, option);\r\n options = setAlertButtonModel(options, option);\r\n return options;\r\n }\r\n // eslint-disable-next-line\r\n function confirmOptions(option) {\r\n var options = {};\r\n options.buttons = [];\r\n options = formOptions(options, option);\r\n options = setConfirmButtonModel(options, option);\r\n return options;\r\n }\r\n // eslint-disable-next-line\r\n function formOptions(options, option) {\r\n options.header = !isNullOrUndefined(option.title) ? option.title : DLG_UTIL_DEFAULT_TITLE;\r\n options.content = !isNullOrUndefined(option.content) ? option.content : '';\r\n options.isModal = !isNullOrUndefined(option.isModal) ? option.isModal : true;\r\n options.showCloseIcon = !isNullOrUndefined(option.showCloseIcon) ? option.showCloseIcon : false;\r\n options.allowDragging = !isNullOrUndefined(option.isDraggable) ? option.isDraggable : false;\r\n options.closeOnEscape = !isNullOrUndefined(option.closeOnEscape) ? option.closeOnEscape : false;\r\n options.position = !isNullOrUndefined(option.position) ? option.position : { X: 'center', Y: 'top' };\r\n options.animationSettings = !isNullOrUndefined(option.animationSettings) ? option.animationSettings :\r\n { effect: 'Fade', duration: 400, delay: 0 };\r\n options.cssClass = !isNullOrUndefined(option.cssClass) ? option.cssClass : '';\r\n options.zIndex = !isNullOrUndefined(option.zIndex) ? option.zIndex : 1000;\r\n options.open = !isNullOrUndefined(option.open) ? option.open : null;\r\n return options;\r\n }\r\n // eslint-disable-next-line\r\n function setAlertButtonModel(options, option) {\r\n var alertButtonModel = [{\r\n buttonModel: { isPrimary: true, content: 'OK' },\r\n click: function () {\r\n this.hide();\r\n }\r\n }];\r\n if (!isNullOrUndefined(option.okButton)) {\r\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, alertButtonModel[0]);\r\n }\r\n else {\r\n options.buttons = alertButtonModel;\r\n }\r\n return options;\r\n }\r\n // eslint-disable-next-line\r\n function setConfirmButtonModel(options, option) {\r\n var okButtonModel = {\r\n buttonModel: { isPrimary: true, content: 'OK' },\r\n click: function () {\r\n this.hide();\r\n }\r\n };\r\n var cancelButtonModel = {\r\n buttonModel: { content: 'Cancel' },\r\n click: function () {\r\n this.hide();\r\n }\r\n };\r\n if (!isNullOrUndefined(option.okButton)) {\r\n options.buttons[0] = formButtonModel(options.buttons[0], option.okButton, okButtonModel);\r\n }\r\n else {\r\n options.buttons[0] = okButtonModel;\r\n }\r\n if (!isNullOrUndefined(option.cancelButton)) {\r\n options.buttons[1] = formButtonModel(options.buttons[1], option.cancelButton, cancelButtonModel);\r\n }\r\n else {\r\n options.buttons[1] = cancelButtonModel;\r\n }\r\n return options;\r\n }\r\n // eslint-disable-next-line\r\n function formButtonModel(buttonModel, option, buttonPropModel) {\r\n var buttonProps = buttonPropModel;\r\n if (!isNullOrUndefined(option.text)) {\r\n buttonProps.buttonModel.content = option.text;\r\n }\r\n if (!isNullOrUndefined(option.icon)) {\r\n buttonProps.buttonModel.iconCss = option.icon;\r\n }\r\n if (!isNullOrUndefined(option.cssClass)) {\r\n buttonProps.buttonModel.cssClass = option.cssClass;\r\n }\r\n if (!isNullOrUndefined(option.click)) {\r\n buttonProps.click = option.click;\r\n }\r\n return buttonProps;\r\n }\r\n})(DialogUtility || (DialogUtility = {}));\r\n","/**\n * Dialog Component\n */\nexport * from './dialog';\n","/**\n * Popup Components\n */\nexport * from './popup/index';\nexport * from './common/index';\nexport * from './dialog/index';\nexport * from './tooltip/index';\nexport * from './spinner/index';\n","/**\n * Popup Components\n */\nexport * from './popup';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { setStyleAttribute, addClass, removeClass, ChildProperty, Complex } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, formatUnit } from '@syncfusion/ej2-base';\r\nimport { Browser } from '@syncfusion/ej2-base';\r\nimport { calculatePosition, calculateRelativeBasedPosition } from '../common/position';\r\nimport { Animation, Property, Event, Component } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges } from '@syncfusion/ej2-base';\r\nimport { EventHandler } from '@syncfusion/ej2-base';\r\nimport { flip, fit, isCollide } from '../common/collision';\r\n/**\r\n * Specifies the offset position values.\r\n */\r\nvar PositionData = /** @class */ (function (_super) {\r\n __extends(PositionData, _super);\r\n function PositionData() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('left')\r\n ], PositionData.prototype, \"X\", void 0);\r\n __decorate([\r\n Property('top')\r\n ], PositionData.prototype, \"Y\", void 0);\r\n return PositionData;\r\n}(ChildProperty));\r\nexport { PositionData };\r\n// don't use space in classNames\r\nvar CLASSNAMES = {\r\n ROOT: 'e-popup',\r\n RTL: 'e-rtl',\r\n OPEN: 'e-popup-open',\r\n CLOSE: 'e-popup-close'\r\n};\r\n/**\r\n * Represents the Popup Component\r\n * ```html\r\n *
      \r\n *
      Popup Content
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Popup = /** @class */ (function (_super) {\r\n __extends(Popup, _super);\r\n function Popup(element, options) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {PopupModel} newProp - specifies the new property\r\n * @param {PopupModel} oldProp - specifies the old property\r\n * @private\r\n * @returns {void}\r\n */\r\n Popup.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'width':\r\n setStyleAttribute(this.element, { 'width': formatUnit(newProp.width) });\r\n break;\r\n case 'height':\r\n setStyleAttribute(this.element, { 'height': formatUnit(newProp.height) });\r\n break;\r\n case 'zIndex':\r\n setStyleAttribute(this.element, { 'zIndex': newProp.zIndex });\r\n break;\r\n case 'enableRtl':\r\n this.setEnableRtl();\r\n break;\r\n case 'position':\r\n case 'relateTo':\r\n this.refreshPosition();\r\n break;\r\n case 'offsetX':\r\n // eslint-disable-next-line\r\n var x = newProp.offsetX - oldProp.offsetX;\r\n this.element.style.left = (parseInt(this.element.style.left, 10) + (x)).toString() + 'px';\r\n break;\r\n case 'offsetY':\r\n // eslint-disable-next-line\r\n var y = newProp.offsetY - oldProp.offsetY;\r\n this.element.style.top = (parseInt(this.element.style.top, 10) + (y)).toString() + 'px';\r\n break;\r\n case 'content':\r\n this.setContent();\r\n break;\r\n case 'actionOnScroll':\r\n if (newProp.actionOnScroll !== 'none') {\r\n this.wireScrollEvents();\r\n }\r\n else {\r\n this.unwireScrollEvents();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * gets the Component module name.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Popup.prototype.getModuleName = function () {\r\n return 'popup';\r\n };\r\n /**\r\n * To resolve if any collision occurs.\r\n *\r\n * @returns {void}\r\n */\r\n Popup.prototype.resolveCollision = function () {\r\n this.checkCollision();\r\n };\r\n /**\r\n * gets the persisted state properties of the Component.\r\n *\r\n * @returns {void}\r\n */\r\n Popup.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * To destroy the control.\r\n *\r\n * @returns {void}\r\n */\r\n Popup.prototype.destroy = function () {\r\n this.element.classList.remove(CLASSNAMES.ROOT, CLASSNAMES.RTL, CLASSNAMES.OPEN, CLASSNAMES.CLOSE);\r\n this.unwireEvents();\r\n _super.prototype.destroy.call(this);\r\n };\r\n /**\r\n * To Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Popup.prototype.render = function () {\r\n this.element.classList.add(CLASSNAMES.ROOT);\r\n var styles = {};\r\n if (this.zIndex !== 1000) {\r\n styles.zIndex = this.zIndex;\r\n }\r\n if (this.width !== 'auto') {\r\n styles.width = formatUnit(this.width);\r\n }\r\n if (this.height !== 'auto') {\r\n styles.height = formatUnit(this.height);\r\n }\r\n setStyleAttribute(this.element, styles);\r\n this.fixedParent = false;\r\n this.setEnableRtl();\r\n this.setContent();\r\n };\r\n Popup.prototype.wireEvents = function () {\r\n if (Browser.isDevice) {\r\n EventHandler.add(window, 'orientationchange', this.orientationOnChange, this);\r\n }\r\n if (this.actionOnScroll !== 'none') {\r\n this.wireScrollEvents();\r\n }\r\n };\r\n Popup.prototype.wireScrollEvents = function () {\r\n if (this.getRelateToElement()) {\r\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\r\n var parent_1 = _a[_i];\r\n EventHandler.add(parent_1, 'scroll', this.scrollRefresh, this);\r\n }\r\n }\r\n };\r\n Popup.prototype.unwireEvents = function () {\r\n if (Browser.isDevice) {\r\n EventHandler.remove(window, 'orientationchange', this.orientationOnChange);\r\n }\r\n if (this.actionOnScroll !== 'none') {\r\n this.unwireScrollEvents();\r\n }\r\n };\r\n Popup.prototype.unwireScrollEvents = function () {\r\n if (this.getRelateToElement()) {\r\n for (var _i = 0, _a = this.getScrollableParent(this.getRelateToElement()); _i < _a.length; _i++) {\r\n var parent_2 = _a[_i];\r\n EventHandler.remove(parent_2, 'scroll', this.scrollRefresh);\r\n }\r\n }\r\n };\r\n Popup.prototype.getRelateToElement = function () {\r\n var relateToElement = this.relateTo === '' || isNullOrUndefined(this.relateTo) ?\r\n document.body : this.relateTo;\r\n this.setProperties({ relateTo: relateToElement }, true);\r\n return ((typeof this.relateTo) === 'string') ?\r\n document.querySelector(this.relateTo) : this.relateTo;\r\n };\r\n Popup.prototype.scrollRefresh = function (e) {\r\n if (this.actionOnScroll === 'reposition') {\r\n if (!isNullOrUndefined(this.element) && !(this.element.offsetParent === e.target ||\r\n (this.element.offsetParent && this.element.offsetParent.tagName === 'BODY' &&\r\n e.target.parentElement == null))) {\r\n this.refreshPosition();\r\n }\r\n }\r\n else if (this.actionOnScroll === 'hide') {\r\n this.hide();\r\n }\r\n if (this.actionOnScroll !== 'none') {\r\n if (this.getRelateToElement()) {\r\n var targetVisible = this.isElementOnViewport(this.getRelateToElement(), e.target);\r\n if (!targetVisible && !this.targetInvisibleStatus) {\r\n this.trigger('targetExitViewport');\r\n this.targetInvisibleStatus = true;\r\n }\r\n else if (targetVisible) {\r\n this.targetInvisibleStatus = false;\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * This method is to get the element visibility on viewport when scroll\r\n * the page. This method will returns true even though 1 px of element\r\n * part is in visible.\r\n *\r\n * @param {HTMLElement} relateToElement - specifies the element\r\n * @param {HTMLElement} scrollElement - specifies the scroll element\r\n * @returns {boolean} - retruns the boolean\r\n */\r\n // eslint-disable-next-line\r\n Popup.prototype.isElementOnViewport = function (relateToElement, scrollElement) {\r\n var scrollParents = this.getScrollableParent(relateToElement);\r\n for (var parent_3 = 0; parent_3 < scrollParents.length; parent_3++) {\r\n if (this.isElementVisible(relateToElement, scrollParents[parent_3])) {\r\n continue;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n Popup.prototype.isElementVisible = function (relateToElement, scrollElement) {\r\n var rect = this.checkGetBoundingClientRect(relateToElement);\r\n if (!rect.height || !rect.width) {\r\n return false;\r\n }\r\n if (!isNullOrUndefined(this.checkGetBoundingClientRect(scrollElement))) {\r\n var parent_4 = scrollElement.getBoundingClientRect();\r\n return !(rect.bottom < parent_4.top) &&\r\n (!(rect.bottom > parent_4.bottom) &&\r\n (!(rect.right > parent_4.right) &&\r\n !(rect.left < parent_4.left)));\r\n }\r\n else {\r\n var win = window;\r\n var windowView = {\r\n top: win.scrollY,\r\n left: win.scrollX,\r\n right: win.scrollX + win.outerWidth,\r\n bottom: win.scrollY + win.outerHeight\r\n };\r\n var off = calculatePosition(relateToElement);\r\n var ele = {\r\n top: off.top,\r\n left: off.left,\r\n right: off.left + rect.width,\r\n bottom: off.top + rect.height\r\n };\r\n var elementView = {\r\n top: windowView.bottom - ele.top,\r\n left: windowView.right - ele.left,\r\n bottom: ele.bottom - windowView.top,\r\n right: ele.right - windowView.left\r\n };\r\n return elementView.top > 0\r\n && elementView.left > 0\r\n && elementView.right > 0\r\n && elementView.bottom > 0;\r\n }\r\n };\r\n /**\r\n * Initialize the event handler\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Popup.prototype.preRender = function () {\r\n //There is no event handler\r\n };\r\n Popup.prototype.setEnableRtl = function () {\r\n this.reposition();\r\n // eslint-disable-next-line\r\n this.enableRtl ? this.element.classList.add(CLASSNAMES.RTL) : this.element.classList.remove(CLASSNAMES.RTL);\r\n };\r\n Popup.prototype.setContent = function () {\r\n if (!isNullOrUndefined(this.content)) {\r\n this.element.innerHTML = '';\r\n if (typeof (this.content) === 'string') {\r\n this.element.textContent = this.content;\r\n }\r\n else {\r\n this.element.appendChild(this.content);\r\n }\r\n }\r\n };\r\n Popup.prototype.orientationOnChange = function () {\r\n var _this = this;\r\n setTimeout(function () {\r\n _this.refreshPosition();\r\n }, 200);\r\n };\r\n // eslint-disable-next-line\r\n /**\r\n * Based on the `relative` element and `offset` values, `Popup` element position will refreshed.\r\n *\r\n * @returns {void}\r\n */\r\n Popup.prototype.refreshPosition = function (target, collision) {\r\n if (!isNullOrUndefined(target)) {\r\n this.checkFixedParent(target);\r\n }\r\n this.reposition();\r\n if (!collision) {\r\n this.checkCollision();\r\n }\r\n };\r\n Popup.prototype.reposition = function () {\r\n var pos;\r\n var position;\r\n var relateToElement = this.getRelateToElement();\r\n if (typeof this.position.X === 'number' && typeof this.position.Y === 'number') {\r\n pos = { left: this.position.X, top: this.position.Y };\r\n }\r\n else if ((typeof this.position.X === 'string' && typeof this.position.Y === 'number') ||\r\n (typeof this.position.X === 'number' && typeof this.position.Y === 'string')) {\r\n var parentDisplay = void 0;\r\n var display = this.element.style.display;\r\n this.element.style.display = 'block';\r\n if (this.element.classList.contains('e-dlg-modal')) {\r\n parentDisplay = this.element.parentElement.style.display;\r\n this.element.parentElement.style.display = 'block';\r\n }\r\n position = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\r\n if (typeof this.position.X === 'string') {\r\n pos = { left: position.left, top: this.position.Y };\r\n }\r\n else {\r\n pos = { left: this.position.X, top: position.top };\r\n }\r\n this.element.style.display = display;\r\n if (this.element.classList.contains('e-dlg-modal')) {\r\n this.element.parentElement.style.display = parentDisplay;\r\n }\r\n }\r\n else if (relateToElement) {\r\n var display = this.element.style.display;\r\n this.element.style.display = 'block';\r\n pos = this.getAnchorPosition(relateToElement, this.element, this.position, this.offsetX, this.offsetY);\r\n this.element.style.display = display;\r\n }\r\n else {\r\n pos = { left: 0, top: 0 };\r\n }\r\n if (!isNullOrUndefined(pos)) {\r\n this.element.style.left = pos.left + 'px';\r\n this.element.style.top = pos.top + 'px';\r\n }\r\n };\r\n Popup.prototype.checkGetBoundingClientRect = function (ele) {\r\n var eleRect;\r\n try {\r\n eleRect = ele.getBoundingClientRect();\r\n return eleRect;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n Popup.prototype.getAnchorPosition = function (anchorEle, ele, position, offsetX, offsetY) {\r\n var eleRect = this.checkGetBoundingClientRect(ele);\r\n var anchorRect = this.checkGetBoundingClientRect(anchorEle);\r\n if (isNullOrUndefined(eleRect) || isNullOrUndefined(anchorRect)) {\r\n return null;\r\n }\r\n var anchor = anchorEle;\r\n var anchorPos = { left: 0, top: 0 };\r\n if (ele.offsetParent && ele.offsetParent.tagName === 'BODY' && anchorEle.tagName === 'BODY') {\r\n anchorPos = calculatePosition(anchorEle);\r\n }\r\n else {\r\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName !== 'BODY')) {\r\n ele = ele.parentElement;\r\n }\r\n anchorPos = calculateRelativeBasedPosition(anchor, ele);\r\n }\r\n switch (position.X) {\r\n default:\r\n case 'left':\r\n break;\r\n case 'center':\r\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\r\n anchorPos.left += (window.innerWidth / 2 - eleRect.width / 2);\r\n }\r\n else if (this.targetType === 'container') {\r\n anchorPos.left += (anchorRect.width / 2 - eleRect.width / 2);\r\n }\r\n else {\r\n anchorPos.left += (anchorRect.width / 2);\r\n }\r\n break;\r\n case 'right':\r\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\r\n anchorPos.left += (window.innerWidth - eleRect.width);\r\n }\r\n else if (this.targetType === 'container') {\r\n anchorPos.left += (anchorRect.width - eleRect.width);\r\n }\r\n else {\r\n anchorPos.left += (anchorRect.width);\r\n }\r\n break;\r\n }\r\n switch (position.Y) {\r\n default:\r\n case 'top':\r\n break;\r\n case 'center':\r\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\r\n anchorPos.top += (window.innerHeight / 2 - eleRect.height / 2);\r\n }\r\n else if (this.targetType === 'container') {\r\n anchorPos.top += (anchorRect.height / 2 - eleRect.height / 2);\r\n }\r\n else {\r\n anchorPos.top += (anchorRect.height / 2);\r\n }\r\n break;\r\n case 'bottom':\r\n if ((ele.classList.contains('e-dlg-modal') && anchor.tagName === 'BODY' && this.targetType === 'container')) {\r\n anchorPos.top += (window.innerHeight - eleRect.height);\r\n }\r\n else if (this.targetType === 'container') {\r\n anchorPos.top += (anchorRect.height - eleRect.height);\r\n }\r\n else {\r\n anchorPos.top += (anchorRect.height);\r\n }\r\n break;\r\n }\r\n anchorPos.left += offsetX;\r\n anchorPos.top += offsetY;\r\n return anchorPos;\r\n };\r\n Popup.prototype.callFlip = function (param) {\r\n var relateToElement = this.getRelateToElement();\r\n flip(this.element, relateToElement, this.offsetX, this.offsetY, this.position.X, this.position.Y, this.viewPortElement, param, this.fixedParent);\r\n };\r\n Popup.prototype.callFit = function (param) {\r\n if (isCollide(this.element, this.viewPortElement).length !== 0) {\r\n if (isNullOrUndefined(this.viewPortElement)) {\r\n var data = fit(this.element, this.viewPortElement, param);\r\n if (param.X) {\r\n this.element.style.left = data.left + 'px';\r\n }\r\n if (param.Y) {\r\n this.element.style.top = data.top + 'px';\r\n }\r\n }\r\n else {\r\n var elementRect = this.checkGetBoundingClientRect(this.element);\r\n var viewPortRect = this.checkGetBoundingClientRect(this.viewPortElement);\r\n if (isNullOrUndefined(elementRect) || isNullOrUndefined(viewPortRect)) {\r\n return null;\r\n }\r\n if (param && param.Y === true) {\r\n if (viewPortRect.top > elementRect.top) {\r\n this.element.style.top = '0px';\r\n }\r\n else if (viewPortRect.bottom < elementRect.bottom) {\r\n this.element.style.top = parseInt(this.element.style.top, 10) - (elementRect.bottom - viewPortRect.bottom) + 'px';\r\n }\r\n }\r\n if (param && param.X === true) {\r\n if (viewPortRect.right < elementRect.right) {\r\n this.element.style.left = parseInt(this.element.style.left, 10) - (elementRect.right - viewPortRect.right) + 'px';\r\n }\r\n else if (viewPortRect.left > elementRect.left) {\r\n this.element.style.left = parseInt(this.element.style.left, 10) + (viewPortRect.left - elementRect.left) + 'px';\r\n }\r\n }\r\n }\r\n }\r\n };\r\n Popup.prototype.checkCollision = function () {\r\n var horz = this.collision.X;\r\n var vert = this.collision.Y;\r\n if (horz === 'none' && vert === 'none') {\r\n return;\r\n }\r\n if (horz === 'flip' && vert === 'flip') {\r\n this.callFlip({ X: true, Y: true });\r\n }\r\n else if (horz === 'fit' && vert === 'fit') {\r\n this.callFit({ X: true, Y: true });\r\n }\r\n else {\r\n if (horz === 'flip') {\r\n this.callFlip({ X: true, Y: false });\r\n }\r\n else if (vert === 'flip') {\r\n this.callFlip({ Y: true, X: false });\r\n }\r\n if (horz === 'fit') {\r\n this.callFit({ X: true, Y: false });\r\n }\r\n else if (vert === 'fit') {\r\n this.callFit({ X: false, Y: true });\r\n }\r\n }\r\n };\r\n /**\r\n * Shows the popup element from screen.\r\n *\r\n * @returns {void}\r\n * @param {AnimationModel} animationOptions - specifies the model\r\n * @param { HTMLElement } relativeElement - To calculate the zIndex value dynamically.\r\n */\r\n Popup.prototype.show = function (animationOptions, relativeElement) {\r\n var _this = this;\r\n this.wireEvents();\r\n if (this.zIndex === 1000 || !isNullOrUndefined(relativeElement)) {\r\n var zIndexElement = (isNullOrUndefined(relativeElement)) ? this.element : relativeElement;\r\n this.zIndex = getZindexPartial(zIndexElement);\r\n setStyleAttribute(this.element, { 'zIndex': this.zIndex });\r\n }\r\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\r\n animationOptions : this.showAnimation;\r\n if (this.collision.X !== 'none' || this.collision.Y !== 'none') {\r\n removeClass([this.element], CLASSNAMES.CLOSE);\r\n addClass([this.element], CLASSNAMES.OPEN);\r\n this.checkCollision();\r\n removeClass([this.element], CLASSNAMES.OPEN);\r\n addClass([this.element], CLASSNAMES.CLOSE);\r\n }\r\n if (!isNullOrUndefined(animationOptions)) {\r\n animationOptions.begin = function () {\r\n if (!_this.isDestroyed) {\r\n removeClass([_this.element], CLASSNAMES.CLOSE);\r\n addClass([_this.element], CLASSNAMES.OPEN);\r\n }\r\n };\r\n animationOptions.end = function () {\r\n if (!_this.isDestroyed) {\r\n _this.trigger('open');\r\n }\r\n };\r\n new Animation(animationOptions).animate(this.element);\r\n }\r\n else {\r\n removeClass([this.element], CLASSNAMES.CLOSE);\r\n addClass([this.element], CLASSNAMES.OPEN);\r\n this.trigger('open');\r\n }\r\n };\r\n /**\r\n * Hides the popup element from screen.\r\n *\r\n * @param {AnimationModel} animationOptions - To give the animation options.\r\n * @returns {void}\r\n */\r\n Popup.prototype.hide = function (animationOptions) {\r\n var _this = this;\r\n animationOptions = (!isNullOrUndefined(animationOptions) && typeof animationOptions === 'object') ?\r\n animationOptions : this.hideAnimation;\r\n if (!isNullOrUndefined(animationOptions)) {\r\n animationOptions.end = function () {\r\n if (!_this.isDestroyed) {\r\n removeClass([_this.element], CLASSNAMES.OPEN);\r\n addClass([_this.element], CLASSNAMES.CLOSE);\r\n _this.trigger('close');\r\n }\r\n };\r\n new Animation(animationOptions).animate(this.element);\r\n }\r\n else {\r\n removeClass([this.element], CLASSNAMES.OPEN);\r\n addClass([this.element], CLASSNAMES.CLOSE);\r\n this.trigger('close');\r\n }\r\n this.unwireEvents();\r\n };\r\n /**\r\n * Gets scrollable parent elements for the given element.\r\n *\r\n * @returns {void}\r\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\r\n */\r\n Popup.prototype.getScrollableParent = function (element) {\r\n this.checkFixedParent(element);\r\n return getScrollableParent(element, this.fixedParent);\r\n };\r\n Popup.prototype.checkFixedParent = function (element) {\r\n var parent = element.parentElement;\r\n while (parent && parent.tagName !== 'HTML') {\r\n var parentStyle = getComputedStyle(parent);\r\n if (parentStyle.position === 'fixed' && !isNullOrUndefined(this.element) && this.element.offsetParent && this.element.offsetParent.tagName === 'BODY') {\r\n this.element.style.top = window.scrollY > parseInt(this.element.style.top) ? formatUnit(window.scrollY - parseInt(this.element.style.top))\r\n : formatUnit(parseInt(this.element.style.top) - window.scrollY);\r\n this.element.style.position = 'fixed';\r\n this.fixedParent = true;\r\n }\r\n parent = parent.parentElement;\r\n if (!isNullOrUndefined(this.element) && isNullOrUndefined(this.element.offsetParent) && parentStyle.position === 'fixed'\r\n && this.element.style.position === 'fixed') {\r\n this.fixedParent = true;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property('auto')\r\n ], Popup.prototype, \"height\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Popup.prototype, \"width\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Popup.prototype, \"content\", void 0);\r\n __decorate([\r\n Property('container')\r\n ], Popup.prototype, \"targetType\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Popup.prototype, \"viewPortElement\", void 0);\r\n __decorate([\r\n Property({ X: 'none', Y: 'none' })\r\n ], Popup.prototype, \"collision\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Popup.prototype, \"relateTo\", void 0);\r\n __decorate([\r\n Complex({}, PositionData)\r\n ], Popup.prototype, \"position\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Popup.prototype, \"offsetX\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Popup.prototype, \"offsetY\", void 0);\r\n __decorate([\r\n Property(1000)\r\n ], Popup.prototype, \"zIndex\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Popup.prototype, \"enableRtl\", void 0);\r\n __decorate([\r\n Property('reposition')\r\n ], Popup.prototype, \"actionOnScroll\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Popup.prototype, \"showAnimation\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Popup.prototype, \"hideAnimation\", void 0);\r\n __decorate([\r\n Event()\r\n ], Popup.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], Popup.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], Popup.prototype, \"targetExitViewport\", void 0);\r\n Popup = __decorate([\r\n NotifyPropertyChanges\r\n ], Popup);\r\n return Popup;\r\n}(Component));\r\nexport { Popup };\r\n/**\r\n * Gets scrollable parent elements for the given element.\r\n *\r\n * @param { HTMLElement } element - Specify the element to get the scrollable parents of it.\r\n * @param {boolean} fixedParent - specifies the parent element\r\n * @private\r\n * @returns {void}\r\n */\r\nexport function getScrollableParent(element, fixedParent) {\r\n var eleStyle = getComputedStyle(element);\r\n var scrollParents = [];\r\n var overflowRegex = /(auto|scroll)/;\r\n var parent = element.parentElement;\r\n while (parent && parent.tagName !== 'HTML') {\r\n var parentStyle = getComputedStyle(parent);\r\n if (!(eleStyle.position === 'absolute' && parentStyle.position === 'static')\r\n && overflowRegex.test(parentStyle.overflow + parentStyle.overflowY + parentStyle.overflowX)) {\r\n scrollParents.push(parent);\r\n }\r\n parent = parent.parentElement;\r\n }\r\n if (!fixedParent) {\r\n scrollParents.push(document);\r\n }\r\n return scrollParents;\r\n}\r\n/**\r\n * Gets the maximum z-index of the given element.\r\n *\r\n * @returns {void}\r\n * @param { HTMLElement } element - Specify the element to get the maximum z-index of it.\r\n * @private\r\n */\r\nexport function getZindexPartial(element) {\r\n // upto body traversal\r\n var parent = element.parentElement;\r\n var parentZindex = [];\r\n while (parent) {\r\n if (parent.tagName !== 'BODY') {\r\n var index = document.defaultView.getComputedStyle(parent, null).getPropertyValue('z-index');\r\n var position = document.defaultView.getComputedStyle(parent, null).getPropertyValue('position');\r\n if (index !== 'auto' && position !== 'static') {\r\n parentZindex.push(index);\r\n }\r\n parent = parent.parentElement;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n var childrenZindex = [];\r\n for (var i = 0; i < document.body.children.length; i++) {\r\n if (!element.isEqualNode(document.body.children[i])) {\r\n var index = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('z-index');\r\n var position = document.defaultView.getComputedStyle(document.body.children[i], null).getPropertyValue('position');\r\n if (index !== 'auto' && position !== 'static') {\r\n childrenZindex.push(index);\r\n }\r\n }\r\n }\r\n childrenZindex.push('999');\r\n var siblingsZindex = [];\r\n if (!isNullOrUndefined(element.parentElement) && element.parentElement.tagName !== 'BODY') {\r\n var childNodes = [].slice.call(element.parentElement.children);\r\n for (var i = 0; i < childNodes.length; i++) {\r\n if (!element.isEqualNode(childNodes[i])) {\r\n var index = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('z-index');\r\n var position = document.defaultView.getComputedStyle(childNodes[i], null).getPropertyValue('position');\r\n if (index !== 'auto' && position !== 'static') {\r\n siblingsZindex.push(index);\r\n }\r\n }\r\n }\r\n }\r\n var finalValue = parentZindex.concat(childrenZindex, siblingsZindex);\r\n // eslint-disable-next-line\r\n var currentZindexValue = Math.max.apply(Math, finalValue) + 1;\r\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\r\n}\r\n/**\r\n * Gets the maximum z-index of the page.\r\n *\r\n * @returns {void}\r\n * @param { HTMLElement } tagName - Specify the tagName to get the maximum z-index of it.\r\n * @private\r\n */\r\nexport function getMaxZindex(tagName) {\r\n if (tagName === void 0) { tagName = ['*']; }\r\n var maxZindex = [];\r\n for (var i = 0; i < tagName.length; i++) {\r\n var elements = document.getElementsByTagName(tagName[i]);\r\n for (var i_1 = 0; i_1 < elements.length; i_1++) {\r\n var index = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('z-index');\r\n var position = document.defaultView.getComputedStyle(elements[i_1], null).getPropertyValue('position');\r\n if (index !== 'auto' && position !== 'static') {\r\n maxZindex.push(index);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line\r\n var currentZindexValue = Math.max.apply(Math, maxZindex) + 1;\r\n return currentZindexValue > 2147483647 ? 2147483647 : currentZindexValue;\r\n}\r\n","/**\n * spinner modules\n */\nexport * from './spinner';\n","import { isNullOrUndefined, classList, createElement } from '@syncfusion/ej2-base';\r\nvar globalTimeOut = {};\r\nvar DEFT_MAT_WIDTH = 30;\r\nvar DEFT_FAB_WIDTH = 30;\r\nvar DEFT_TAIL_WIDTH = 24;\r\nvar DEFT_BOOT_WIDTH = 30;\r\nvar DEFT_BOOT4_WIDTH = 36;\r\nvar DEFT_BOOT5_WIDTH = 36;\r\nvar CLS_SHOWSPIN = 'e-spin-show';\r\nvar CLS_HIDESPIN = 'e-spin-hide';\r\nvar CLS_MATERIALSPIN = 'e-spin-material';\r\nvar CLS_FABRICSPIN = 'e-spin-fabric';\r\nvar CLS_TAILWINDSPIN = 'e-spin-tailwind';\r\nvar CLS_BOOTSPIN = 'e-spin-bootstrap';\r\nvar CLS_BOOT4SPIN = 'e-spin-bootstrap4';\r\nvar CLS_BOOT5SPIN = 'e-spin-bootstrap5';\r\nvar CLS_HIGHCONTRASTSPIN = 'e-spin-high-contrast';\r\nvar CLS_SPINWRAP = 'e-spinner-pane';\r\nvar CLS_SPININWRAP = 'e-spinner-inner';\r\nvar CLS_SPINCIRCLE = 'e-path-circle';\r\nvar CLS_SPINARC = 'e-path-arc';\r\nvar CLS_SPINLABEL = 'e-spin-label';\r\nvar CLS_SPINTEMPLATE = 'e-spin-template';\r\nvar spinTemplate = null;\r\nvar spinCSSClass = null;\r\n// eslint-disable-next-line\r\n/**\r\n * Function to change the Spinners in a page globally from application end.\r\n * ```\r\n * E.g : blazorSpinner({ action: \"Create\", options: {target: targetElement}, type: \"\" });\r\n * ```\r\n *\r\n * @param {string} action - specifies the string\r\n * @param {CreateArgs} options - specifies the args\r\n * @param {string} target - specifies the target\r\n * @param {string} type - specifes the type\r\n * @returns {void}\r\n * @private\r\n */\r\nexport function Spinner(action, options, target, type) {\r\n switch (action) {\r\n case 'Create':\r\n /* eslint-disable */\r\n var element = document.querySelector(options.target);\r\n var args = { type: type, target: element, cssClass: options.cssClass,\r\n label: options.label, width: options.width };\r\n /* eslint-enable */\r\n createSpinner(args);\r\n break;\r\n case 'Show':\r\n showSpinner(document.querySelector(target));\r\n break;\r\n case 'Hide':\r\n hideSpinner(document.querySelector(target));\r\n break;\r\n case 'Set':\r\n // eslint-disable-next-line\r\n var setArgs = { cssClass: options.cssClass, type: type };\r\n setSpinner(setArgs);\r\n break;\r\n }\r\n}\r\n/**\r\n * Create a spinner for the specified target element.\r\n * ```\r\n * E.g : createSpinner({ target: targetElement, width: '34px', label: 'Loading..' });\r\n * ```\r\n *\r\n * @param {SpinnerArgs} args - specifies the args\r\n * @param {CreateElementArgs} internalCreateElement - specifis the element args\r\n * @returns {void}\r\n * @private\r\n */\r\nexport function createSpinner(args, internalCreateElement) {\r\n if (!args.target) {\r\n return;\r\n }\r\n var radius;\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n // eslint-disable-next-line\r\n var container = create_spinner_container(args.target, makeElement);\r\n if (!isNullOrUndefined(args.cssClass)) {\r\n container.wrap.classList.add(args.cssClass);\r\n }\r\n if (!isNullOrUndefined(args.template) || !isNullOrUndefined(spinTemplate)) {\r\n var template = !isNullOrUndefined(args.template) ? args.template : spinTemplate;\r\n container.wrap.classList.add(CLS_SPINTEMPLATE);\r\n replaceContent(container.wrap, template, spinCSSClass);\r\n }\r\n else {\r\n var theme = !isNullOrUndefined(args.type) ? args.type : getTheme(container.wrap);\r\n var width = !isNullOrUndefined(args.width) ? args.width : undefined;\r\n radius = calculateRadius(width, theme);\r\n setTheme(theme, container.wrap, radius, makeElement);\r\n if (!isNullOrUndefined(args.label)) {\r\n createLabel(container.inner_wrap, args.label, makeElement);\r\n }\r\n }\r\n container.wrap.classList.add(CLS_HIDESPIN);\r\n container = null;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {string} label - specifies the string\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {HTMLElement} - returns the element\r\n */\r\nfunction createLabel(container, label, makeElement) {\r\n var labelEle = makeElement('div', {});\r\n labelEle.classList.add(CLS_SPINLABEL);\r\n labelEle.innerHTML = label;\r\n container.appendChild(labelEle);\r\n return labelEle;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createMaterialSpinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Material', radius: radius };\r\n create_material_element(container, uniqueID, makeElement, CLS_MATERIALSPIN);\r\n mat_calculate_attributes(radius, container, 'Material', CLS_MATERIALSPIN);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createBootstrap4Spinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Bootstrap4', radius: radius };\r\n create_material_element(container, uniqueID, makeElement, CLS_BOOT4SPIN);\r\n mat_calculate_attributes(radius, container, 'Bootstrap4', CLS_BOOT4SPIN);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createBootstrap5Spinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Bootstrap5', radius: radius };\r\n create_material_element(container, uniqueID, makeElement, CLS_BOOT5SPIN);\r\n mat_calculate_attributes(radius, container, 'Bootstrap5', CLS_BOOT5SPIN);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {string} uniqueID - specifies the id.\r\n * @param {number} radius - specifies the radius\r\n * @returns {void}\r\n */\r\nfunction startMatAnimate(container, uniqueID, radius) {\r\n var globalObject = {};\r\n var timeOutVar = 0;\r\n globalTimeOut[uniqueID].timeOut = 0;\r\n globalObject[uniqueID] = globalVariables(uniqueID, radius, 0, 0);\r\n // eslint-disable-next-line\r\n var spinnerInfo = { uniqueID: uniqueID, container: container, globalInfo: globalObject, timeOutVar: timeOutVar };\r\n animateMaterial(spinnerInfo);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createFabricSpinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Fabric', radius: radius };\r\n create_fabric_element(container, uniqueID, CLS_FABRICSPIN, makeElement);\r\n fb_calculate_attributes(radius, container, CLS_FABRICSPIN);\r\n}\r\nfunction createTailwindSpinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Tailwind', radius: radius };\r\n create_fabric_element(container, uniqueID, CLS_TAILWINDSPIN, makeElement);\r\n fb_calculate_attributes(radius, container, CLS_TAILWINDSPIN);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createHighContrastSpinner(container, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'HighContrast', radius: radius };\r\n create_fabric_element(container, uniqueID, CLS_HIGHCONTRASTSPIN, makeElement);\r\n fb_calculate_attributes(radius, container, CLS_HIGHCONTRASTSPIN);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @returns {string} - returns the string\r\n */\r\nfunction getTheme(container) {\r\n var theme = window.getComputedStyle(container, ':after').getPropertyValue('content');\r\n return theme.replace(/['\"]+/g, '');\r\n}\r\n/**\r\n *\r\n * @param {string} theme - specifies the theme\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction setTheme(theme, container, radius, makeElement) {\r\n var innerContainer = container.querySelector('.' + CLS_SPININWRAP);\r\n var svg = innerContainer.querySelector('svg');\r\n if (!isNullOrUndefined(svg)) {\r\n innerContainer.removeChild(svg);\r\n }\r\n switch (theme) {\r\n case 'Material':\r\n createMaterialSpinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'Fabric':\r\n createFabricSpinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'Bootstrap':\r\n createBootstrapSpinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'HighContrast':\r\n createHighContrastSpinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'Bootstrap4':\r\n createBootstrap4Spinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'Bootstrap5':\r\n createBootstrap5Spinner(innerContainer, radius, makeElement);\r\n break;\r\n case 'Tailwind':\r\n case 'Tailwind-dark':\r\n createTailwindSpinner(innerContainer, radius, makeElement);\r\n break;\r\n }\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerContainer - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\nfunction createBootstrapSpinner(innerContainer, radius, makeElement) {\r\n var uniqueID = random_generator();\r\n globalTimeOut[uniqueID] = { timeOut: 0, type: 'Bootstrap', radius: radius };\r\n create_bootstrap_element(innerContainer, uniqueID, makeElement);\r\n boot_calculate_attributes(innerContainer, radius);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerContainer - specifies the element\r\n * @param {string} uniqueID - specifies the id\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction create_bootstrap_element(innerContainer, uniqueID, makeElement) {\r\n var svgBoot = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n var viewBoxValue = 64;\r\n var trans = 32;\r\n var defaultRadius = 2;\r\n svgBoot.setAttribute('id', uniqueID);\r\n svgBoot.setAttribute('class', CLS_BOOTSPIN);\r\n svgBoot.setAttribute('viewBox', '0 0 ' + viewBoxValue + ' ' + viewBoxValue);\r\n innerContainer.insertBefore(svgBoot, innerContainer.firstChild);\r\n for (var item = 0; item <= 7; item++) {\r\n var bootCircle = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r\n bootCircle.setAttribute('class', CLS_SPINCIRCLE + '_' + item);\r\n bootCircle.setAttribute('r', defaultRadius + '');\r\n bootCircle.setAttribute('transform', 'translate(' + trans + ',' + trans + ')');\r\n svgBoot.appendChild(bootCircle);\r\n }\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerContainer - specifies the element\r\n * @param {number} radius - specifies the radius\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction boot_calculate_attributes(innerContainer, radius) {\r\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\r\n var x = 0;\r\n var y = 0;\r\n var rad = 24;\r\n svg.style.width = svg.style.height = radius + 'px';\r\n var startArc = 90;\r\n for (var item = 0; item <= 7; item++) {\r\n var start = defineArcPoints(x, y, rad, startArc);\r\n var circleEle = svg.querySelector('.' + CLS_SPINCIRCLE + '_' + item);\r\n circleEle.setAttribute('cx', start.x + '');\r\n circleEle.setAttribute('cy', start.y + '');\r\n startArc = startArc >= 360 ? 0 : startArc;\r\n startArc = startArc + 45;\r\n }\r\n}\r\n/**\r\n *\r\n * @param {number} begin - specifies the number\r\n * @param {number} stop - specifirs the number\r\n * @returns {number[]} - returns the array of number\r\n */\r\nfunction generateSeries(begin, stop) {\r\n var series = [];\r\n var start = begin;\r\n var end = stop;\r\n // eslint-disable-next-line\r\n var increment = false, count = 1;\r\n formSeries(start);\r\n /**\r\n *\r\n * @param {number} i - specifies the number\r\n * @returns {void}\r\n */\r\n function formSeries(i) {\r\n series.push(i);\r\n if (i !== end || count === 1) {\r\n if (i <= start && i > 1 && !increment) {\r\n i = parseFloat((i - 0.2).toFixed(2));\r\n }\r\n else if (i === 1) {\r\n i = 7;\r\n i = parseFloat((i + 0.2).toFixed(2));\r\n increment = true;\r\n }\r\n else if (i < 8 && increment) {\r\n i = parseFloat((i + 0.2).toFixed(2));\r\n if (i === 8) {\r\n increment = false;\r\n }\r\n }\r\n else if (i <= 8 && !increment) {\r\n i = parseFloat((i - 0.2).toFixed(2));\r\n }\r\n ++count;\r\n formSeries(i);\r\n }\r\n }\r\n return series;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerContainer - specifies the element\r\n * @returns {void}\r\n */\r\nfunction animateBootstrap(innerContainer) {\r\n var svg = innerContainer.querySelector('svg.e-spin-bootstrap');\r\n var id = svg.getAttribute('id');\r\n for (var i = 1; i <= 8; i++) {\r\n var circleEle = (innerContainer.getElementsByClassName('e-path-circle_' +\r\n (i === 8 ? 0 : i))[0]);\r\n rotation(circleEle, i, i, generateSeries(i, i), id);\r\n }\r\n /**\r\n *\r\n * @param {SVGCircleElement} circle - specifies the circl element\r\n * @param {number} start - specifies the number\r\n * @param {number} end - specifies the end number\r\n * @param {number} series - specifies the series\r\n * @param {string} id - specifies the id\r\n * @returns {void}\r\n */\r\n function rotation(circle, start, end, series, id) {\r\n var count = 0;\r\n boot_animate(start);\r\n // eslint-disable-next-line\r\n function boot_animate(radius) {\r\n if (globalTimeOut[id].isAnimate) {\r\n ++count;\r\n circle.setAttribute('r', radius + '');\r\n if (count >= series.length) {\r\n count = 0;\r\n }\r\n // eslint-disable-next-line\r\n globalTimeOut[id].timeOut = setTimeout(boot_animate.bind(null, series[count]), 18);\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {string} template - specifies the template\r\n * @param {string} cssClass - specifies the css class.\r\n * @returns {void}\r\n */\r\nfunction replaceContent(container, template, cssClass) {\r\n if (!isNullOrUndefined(cssClass)) {\r\n container.classList.add(cssClass);\r\n }\r\n var inner = container.querySelector('.e-spinner-inner');\r\n inner.innerHTML = template;\r\n}\r\n/**\r\n *\r\n * @param {string} width - specifies the width\r\n * @param {string} theme - specifies the string\r\n * @returns {number} - returns the number\r\n */\r\nfunction calculateRadius(width, theme) {\r\n var defaultSize;\r\n switch (theme) {\r\n case 'Material':\r\n defaultSize = DEFT_MAT_WIDTH;\r\n break;\r\n case 'Fabric':\r\n defaultSize = DEFT_FAB_WIDTH;\r\n break;\r\n case 'Tailwind':\r\n case 'Tailwind-dark':\r\n defaultSize = DEFT_FAB_WIDTH;\r\n break;\r\n case 'Bootstrap4':\r\n defaultSize = DEFT_BOOT4_WIDTH;\r\n break;\r\n case 'Bootstrap5':\r\n defaultSize = DEFT_BOOT5_WIDTH;\r\n break;\r\n default:\r\n defaultSize = DEFT_BOOT_WIDTH;\r\n }\r\n width = width ? parseFloat(width + '') : defaultSize;\r\n return theme === 'Bootstrap' ? width : width / 2;\r\n}\r\n/**\r\n *\r\n * @param {string} id - specifies the id\r\n * @param {number} radius - specifies the radius\r\n * @param {number} count - specifies the number count\r\n * @param {number} previousId - specifies the previous id\r\n * @returns {GlobalVariables} - returns the variables\r\n */\r\nfunction globalVariables(id, radius, count, previousId) {\r\n return {\r\n radius: radius,\r\n count: count,\r\n previousId: previousId\r\n };\r\n}\r\n/**\r\n * @returns {string} - returns the string\r\n */\r\n// eslint-disable-next-line\r\nfunction random_generator() {\r\n var random = '';\r\n var combine = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n for (var i = 0; i < 5; i++) {\r\n random += combine.charAt(Math.floor(Math.random() * combine.length));\r\n }\r\n return random;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerCon - specifies the element\r\n * @param {string} uniqueID - specifies the unique id\r\n * @param {string} themeClass - specifies the string\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction create_fabric_element(innerCon, uniqueID, themeClass, makeElement) {\r\n var svgFabric = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n svgFabric.setAttribute('id', uniqueID);\r\n svgFabric.setAttribute('class', themeClass);\r\n var fabricCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n fabricCirclePath.setAttribute('class', CLS_SPINCIRCLE);\r\n var fabricCircleArc = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n fabricCircleArc.setAttribute('class', CLS_SPINARC);\r\n innerCon.insertBefore(svgFabric, innerCon.firstChild);\r\n svgFabric.appendChild(fabricCirclePath);\r\n svgFabric.appendChild(fabricCircleArc);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} innerContainer - specifies the element\r\n * @param {string} uniqueID - specifies the unique id\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @param {string} cls - specifies the string\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction create_material_element(innerContainer, uniqueID, makeElement, cls) {\r\n var svgMaterial = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n var matCirclePath = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n svgMaterial.setAttribute('class', cls);\r\n svgMaterial.setAttribute('id', uniqueID);\r\n matCirclePath.setAttribute('class', CLS_SPINCIRCLE);\r\n innerContainer.insertBefore(svgMaterial, innerContainer.firstChild);\r\n svgMaterial.appendChild(matCirclePath);\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} target - specifies the element\r\n * @param {createElementParams} makeElement - specifies the element\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction create_spinner_container(target, makeElement) {\r\n var spinnerContainer = makeElement('div', {});\r\n var spinnerInnerContainer = makeElement('div', {});\r\n spinnerContainer.classList.add(CLS_SPINWRAP);\r\n spinnerInnerContainer.classList.add(CLS_SPININWRAP);\r\n target.appendChild(spinnerContainer);\r\n spinnerContainer.appendChild(spinnerInnerContainer);\r\n // eslint-disable-next-line\r\n return { wrap: spinnerContainer, inner_wrap: spinnerInnerContainer };\r\n}\r\n/**\r\n *\r\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner\r\n * @returns {void}\r\n */\r\nfunction animateMaterial(spinnerInfo) {\r\n var start = 1;\r\n var end = 149;\r\n var duration = 1333;\r\n var max = 75;\r\n createCircle(start, end, easeAnimation, duration, spinnerInfo.globalInfo[spinnerInfo.uniqueID].count, max, spinnerInfo);\r\n spinnerInfo.globalInfo[spinnerInfo.uniqueID].count = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].count % 4;\r\n}\r\n/**\r\n *\r\n * @param {number} start - specifies the number\r\n * @param {number} end - specifies the end number\r\n * @param {Function} easing - specifies the function\r\n * @param {number} duration - specifies the duration\r\n * @param {number} count - specifies the count\r\n * @param {number} max - specifies the max number\r\n * @param {SpinnerInfo} spinnerInfo - specifies the spinner info\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction createCircle(start, end, easing, duration, count, max, spinnerInfo) {\r\n var id = ++spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId;\r\n var startTime = new Date().getTime();\r\n var change = end - start;\r\n var diameter = getSize((spinnerInfo.globalInfo[spinnerInfo.uniqueID].radius * 2) + '');\r\n var strokeSize = getStrokeSize(diameter);\r\n var rotate = -90 * (spinnerInfo.globalInfo[spinnerInfo.uniqueID].count || 0);\r\n mat_animation(spinnerInfo);\r\n // eslint-disable-next-line\r\n function mat_animation(spinnerInfo) {\r\n var currentTime = Math.max(0, Math.min(new Date().getTime() - startTime, duration));\r\n updatePath(easing(currentTime, start, change, duration), spinnerInfo.container);\r\n if (id === spinnerInfo.globalInfo[spinnerInfo.uniqueID].previousId && currentTime < duration) {\r\n // eslint-disable-next-line\r\n globalTimeOut[spinnerInfo.uniqueID].timeOut = setTimeout(mat_animation.bind(null, spinnerInfo), 1);\r\n }\r\n else {\r\n animateMaterial(spinnerInfo);\r\n }\r\n }\r\n /**\r\n *\r\n * @param {number} value - specifies the number value\r\n * @param {HTMLElement} container - specifies the container\r\n * @returns {void}\r\n */\r\n function updatePath(value, container) {\r\n if ((!isNullOrUndefined(container.querySelector('svg.e-spin-material')))\r\n && (!isNullOrUndefined(container.querySelector('svg.e-spin-material').querySelector('path.e-path-circle')))) {\r\n var svg = container.querySelector('svg.e-spin-material');\r\n var path = svg.querySelector('path.e-path-circle');\r\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, value, max) + '');\r\n path.setAttribute('transform', 'rotate(' + (rotate) + ' ' + diameter / 2 + ' ' + diameter / 2 + ')');\r\n }\r\n }\r\n}\r\n/**\r\n *\r\n * @param {number} radius - specifies the number\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {string} type - specifies the string type\r\n * @param {string} cls - specifies the string\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction mat_calculate_attributes(radius, container, type, cls) {\r\n var diameter = radius * 2;\r\n var svg = container.querySelector('svg.' + cls);\r\n var path = svg.querySelector('path.e-path-circle');\r\n var strokeSize = getStrokeSize(diameter);\r\n var transformOrigin = (diameter / 2) + 'px';\r\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\r\n svg.style.width = svg.style.height = diameter + 'px';\r\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\r\n path.setAttribute('d', drawArc(diameter, strokeSize));\r\n if (type === 'Material') {\r\n path.setAttribute('stroke-width', strokeSize + '');\r\n path.setAttribute('stroke-dasharray', ((diameter - strokeSize) * Math.PI * 0.75) + '');\r\n path.setAttribute('stroke-dashoffset', getDashOffset(diameter, strokeSize, 1, 75) + '');\r\n }\r\n}\r\n/**\r\n *\r\n * @param {string} value - specifies the value\r\n * @returns {number} - returns the number\r\n */\r\nfunction getSize(value) {\r\n var parsed = parseFloat(value);\r\n return parsed;\r\n}\r\n/**\r\n *\r\n * @param {number} diameter - specifies the diameter\r\n * @param {number} strokeSize - specifies the size\r\n * @returns {string} - returns the string\r\n */\r\nfunction drawArc(diameter, strokeSize) {\r\n var radius = diameter / 2;\r\n var offset = strokeSize / 2;\r\n return 'M' + radius + ',' + offset\r\n + 'A' + (radius - offset) + ',' + (radius - offset) + ' 0 1 1 ' + offset + ',' + radius;\r\n}\r\n/**\r\n *\r\n * @param {number} diameter - specifies the number\r\n * @returns {number} - returns the number\r\n */\r\nfunction getStrokeSize(diameter) {\r\n return 10 / 100 * diameter;\r\n}\r\n/**\r\n *\r\n * @param {number} diameter - specifies the number\r\n * @param {number} strokeSize - specifies the stroke size\r\n * @param {number} value - specifies the value\r\n * @param {number} max - specifies the max number\r\n * @returns {number} - returns the number\r\n */\r\nfunction getDashOffset(diameter, strokeSize, value, max) {\r\n return (diameter - strokeSize) * Math.PI * ((3 * (max) / 100) - (value / 100));\r\n}\r\n/**\r\n *\r\n * @param {number} current - specifies the number\r\n * @param {number} start - specifies the stroke size\r\n * @param {number} change - specifies the value\r\n * @param {number} duration - specifies the max number\r\n * @returns {number} - returns the number\r\n */\r\nfunction easeAnimation(current, start, change, duration) {\r\n var timestamp = (current /= duration) * current;\r\n var timecount = timestamp * current;\r\n return start + change * (6 * timecount * timestamp + -15 * timestamp * timestamp + 10 * timecount);\r\n}\r\n/**\r\n *\r\n * @param {number} radius - specifies the number\r\n * @param {HTMLElement} innerConainer - specifies the element\r\n * @param {string} trgClass - specifies the class\r\n * @returns {void}\r\n */\r\n// eslint-disable-next-line\r\nfunction fb_calculate_attributes(radius, innerConainer, trgClass) {\r\n var centerX = radius;\r\n var centerY = radius;\r\n var diameter = radius * 2;\r\n // eslint-disable-next-line\r\n var startArc = 315, endArc = 45;\r\n var svg = innerConainer.querySelector('.' + trgClass);\r\n var circle = svg.querySelector('.e-path-circle');\r\n var path = svg.querySelector('.e-path-arc');\r\n var transformOrigin = (diameter / 2) + 'px';\r\n circle.setAttribute('d', defineCircle(centerX, centerY, radius));\r\n path.setAttribute('d', defineArc(centerX, centerY, radius, startArc, endArc));\r\n svg.setAttribute('viewBox', '0 0 ' + diameter + ' ' + diameter);\r\n svg.style.transformOrigin = transformOrigin + ' ' + transformOrigin + ' ' + transformOrigin;\r\n svg.style.width = svg.style.height = diameter + 'px';\r\n}\r\n/**\r\n *\r\n * @param {number} centerX - specifies the number\r\n * @param {number} centerY - specifies the stroke size\r\n * @param {number} radius - specifies the value\r\n * @param {number} angle - specifies the max number\r\n * @returns {number} - returns the number\r\n */\r\nfunction defineArcPoints(centerX, centerY, radius, angle) {\r\n var radians = (angle - 90) * Math.PI / 180.0;\r\n return {\r\n x: centerX + (radius * Math.cos(radians)),\r\n y: centerY + (radius * Math.sin(radians))\r\n };\r\n}\r\n/**\r\n *\r\n * @param {number} x - specifies the number\r\n * @param {number} y - specifies the stroke size\r\n * @param {number} radius - specifies the radius\r\n * @param {number} startArc - specifies the value\r\n * @param {number} endArc - specifies the max number\r\n * @returns {number} - returns the number\r\n */\r\nfunction defineArc(x, y, radius, startArc, endArc) {\r\n var start = defineArcPoints(x, y, radius, endArc);\r\n var end = defineArcPoints(x, y, radius, startArc);\r\n var d = [\r\n 'M', start.x, start.y,\r\n 'A', radius, radius, 0, 0, 0, end.x, end.y\r\n ].join(' ');\r\n return d;\r\n}\r\n/**\r\n *\r\n * @param {number} x - specifies the number\r\n * @param {number} y - specifies the stroke size\r\n * @param {number} radius - specifies the value\r\n * @returns {string} - returns the string\r\n */\r\nfunction defineCircle(x, y, radius) {\r\n var d = [\r\n 'M', x, y,\r\n 'm', -radius, 0,\r\n 'a', radius, radius, 0, 1, 0, radius * 2, 0,\r\n 'a', radius, radius, 0, 1, 0, -radius * 2, 0\r\n ].join(' ');\r\n return d;\r\n}\r\n// eslint-disable-next-line\r\n/**\r\n * Function to show the Spinner.\r\n *\r\n * @param {HTMLElement} container - Specify the target of the Spinner.\r\n * @returns {void}\r\n * @private\r\n */\r\nexport function showSpinner(container) {\r\n showHideSpinner(container, false);\r\n container = null;\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the element\r\n * @param {boolean} isHide - specifies the boolean\r\n * @returns {void}\r\n */\r\nfunction showHideSpinner(container, isHide) {\r\n var spinnerWrap;\r\n if (container) {\r\n spinnerWrap = container.classList.contains(CLS_SPINWRAP) ? container :\r\n container.querySelector('.' + CLS_SPINWRAP);\r\n }\r\n if (container && spinnerWrap) {\r\n var inner = spinnerWrap.querySelector('.' + CLS_SPININWRAP);\r\n var spinCheck = void 0;\r\n // eslint-disable-next-line\r\n spinCheck = isHide ? !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_HIDESPIN) :\r\n !spinnerWrap.classList.contains(CLS_SPINTEMPLATE) && !spinnerWrap.classList.contains(CLS_SHOWSPIN);\r\n if (spinCheck) {\r\n var svgEle = spinnerWrap.querySelector('svg');\r\n if (isNullOrUndefined(svgEle)) {\r\n return;\r\n }\r\n var id = svgEle.getAttribute('id');\r\n globalTimeOut[id].isAnimate = !isHide;\r\n switch (globalTimeOut[id].type) {\r\n case 'Material':\r\n // eslint-disable-next-line\r\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : startMatAnimate(inner, id, globalTimeOut[id].radius);\r\n break;\r\n case 'Bootstrap':\r\n // eslint-disable-next-line\r\n isHide ? clearTimeout(globalTimeOut[id].timeOut) : animateBootstrap(inner);\r\n break;\r\n }\r\n }\r\n // eslint-disable-next-line\r\n isHide ? classList(spinnerWrap, [CLS_HIDESPIN], [CLS_SHOWSPIN]) : classList(spinnerWrap, [CLS_SHOWSPIN], [CLS_HIDESPIN]);\r\n container = null;\r\n }\r\n}\r\n/**\r\n * Function to hide the Spinner.\r\n *\r\n * @param {HTMLElement} container - Specify the target of the Spinner.\r\n * @returns {void}\r\n * @private\r\n */\r\nexport function hideSpinner(container) {\r\n showHideSpinner(container, true);\r\n container = null;\r\n}\r\n// eslint-disable-next-line\r\n/**\r\n * Function to change the Spinners in a page globally from application end.\r\n * ```\r\n * E.g : setSpinner({ cssClass: 'custom-css'; type: 'Material' });\r\n * ```\r\n *\r\n * @param {SetSpinnerArgs} args - specifies the args\r\n * @param {createElementParams} internalCreateElement - specifies the element params\r\n * @returns {void}\r\n * @private\r\n */\r\nexport function setSpinner(args, internalCreateElement) {\r\n var makeElement = !isNullOrUndefined(internalCreateElement) ? internalCreateElement : createElement;\r\n if (args.template !== undefined) {\r\n spinTemplate = args.template;\r\n if (args.template !== undefined) {\r\n spinCSSClass = args.cssClass;\r\n }\r\n }\r\n var container = document.querySelectorAll('.' + CLS_SPINWRAP);\r\n for (var index = 0; index < container.length; index++) {\r\n ensureTemplate(args.template, container[index], args.type, args.cssClass, makeElement);\r\n }\r\n}\r\n/**\r\n *\r\n * @param {string} template - specifies the string\r\n * @param {HTMLElement} container - specifies the container\r\n * @param {string} theme - specifies the theme\r\n * @param {string} cssClass - specifies the string class\r\n * @param {createElementParams} makeEle - specifies the params\r\n * @returns {void}\r\n */\r\nfunction ensureTemplate(template, container, theme, cssClass, makeEle) {\r\n if (isNullOrUndefined(template) && !container.classList.contains(CLS_SPINTEMPLATE)) {\r\n replaceTheme(container, theme, cssClass, makeEle);\r\n if (container.classList.contains(CLS_SHOWSPIN)) {\r\n container.classList.remove(CLS_SHOWSPIN);\r\n showSpinner(container);\r\n }\r\n else {\r\n container.classList.remove(CLS_HIDESPIN);\r\n hideSpinner(container);\r\n }\r\n }\r\n else {\r\n spinTemplate = template;\r\n if (!isNullOrUndefined(cssClass)) {\r\n spinCSSClass = cssClass;\r\n }\r\n }\r\n}\r\n/**\r\n *\r\n * @param {HTMLElement} container - specifies the container\r\n * @param {string} theme - specifies the theme\r\n * @param {string} cssClass - specifies the string class\r\n * @param {createElementParams} makeEle - specifies the params\r\n * @returns {void}\r\n */\r\nfunction replaceTheme(container, theme, cssClass, makeEle) {\r\n if (!isNullOrUndefined(cssClass)) {\r\n container.classList.add(cssClass);\r\n }\r\n var svgElement = container.querySelector('svg');\r\n var radius = theme === 'Bootstrap' ? parseFloat(svgElement.style.height) : parseFloat(svgElement.style.height) / 2;\r\n var classNames = svgElement.getAttribute('class');\r\n var svgClassList = classNames.split(/\\s/);\r\n if (svgClassList.indexOf('e-spin-material') >= 0) {\r\n var id = svgElement.getAttribute('id');\r\n clearTimeout(globalTimeOut[id].timeOut);\r\n }\r\n setTheme(theme, container, radius, makeEle);\r\n}\r\n","/**\n * Tooltip modules\n */\nexport * from './tooltip';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, ChildProperty, Event, append, compile } from '@syncfusion/ej2-base';\r\nimport { EventHandler, Touch, Browser, Animation as PopupAnimation } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, getUniqueID, formatUnit, select, selectAll } from '@syncfusion/ej2-base';\r\nimport { attributes, closest, removeClass, addClass, remove } from '@syncfusion/ej2-base';\r\nimport { NotifyPropertyChanges, Complex, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { Popup } from '../popup/popup';\r\nimport { calculatePosition } from '../common/position';\r\nimport { isCollide, fit } from '../common/collision';\r\nvar TOUCHEND_HIDE_DELAY = 1500;\r\nvar TAPHOLD_THRESHOLD = 500;\r\nvar SHOW_POINTER_TIP_GAP = 0;\r\nvar HIDE_POINTER_TIP_GAP = 8;\r\nvar MOUSE_TRAIL_GAP = 2;\r\nvar POINTER_ADJUST = 2;\r\nvar ROOT = 'e-tooltip';\r\nvar RTL = 'e-rtl';\r\nvar DEVICE = 'e-bigger';\r\nvar ICON = 'e-icons';\r\nvar CLOSE = 'e-tooltip-close';\r\nvar TOOLTIP_WRAP = 'e-tooltip-wrap';\r\nvar CONTENT = 'e-tip-content';\r\nvar ARROW_TIP = 'e-arrow-tip';\r\nvar ARROW_TIP_OUTER = 'e-arrow-tip-outer';\r\nvar ARROW_TIP_INNER = 'e-arrow-tip-inner';\r\nvar TIP_BOTTOM = 'e-tip-bottom';\r\nvar TIP_TOP = 'e-tip-top';\r\nvar TIP_LEFT = 'e-tip-left';\r\nvar TIP_RIGHT = 'e-tip-right';\r\nvar POPUP_ROOT = 'e-popup';\r\nvar POPUP_OPEN = 'e-popup-open';\r\nvar POPUP_CLOSE = 'e-popup-close';\r\nvar POPUP_LIB = 'e-lib';\r\nvar HIDE_POPUP = 'e-hidden';\r\nvar Animation = /** @class */ (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property({ effect: 'FadeIn', duration: 150, delay: 0 })\r\n ], Animation.prototype, \"open\", void 0);\r\n __decorate([\r\n Property({ effect: 'FadeOut', duration: 150, delay: 0 })\r\n ], Animation.prototype, \"close\", void 0);\r\n return Animation;\r\n}(ChildProperty));\r\nexport { Animation };\r\n/**\r\n * Represents the Tooltip component that displays a piece of information about the target element on mouse hover.\r\n * ```html\r\n *
      Show Tooltip
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Tooltip = /** @class */ (function (_super) {\r\n __extends(Tooltip, _super);\r\n /* eslint-enable */\r\n /**\r\n * Constructor for creating the Tooltip Component\r\n *\r\n * @param {TooltipModel} options - specifies the options for the constructor\r\n * @param {string| HTMLElement} element - specifies the element for the constructor\r\n *\r\n */\r\n function Tooltip(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.mouseMoveEvent = null;\r\n _this.mouseMoveTarget = null;\r\n return _this;\r\n }\r\n Tooltip.prototype.initialize = function () {\r\n this.formatPosition();\r\n addClass([this.element], ROOT);\r\n };\r\n Tooltip.prototype.formatPosition = function () {\r\n var _a, _b;\r\n if (this.position.indexOf('Top') === 0 || this.position.indexOf('Bottom') === 0) {\r\n _a = this.position.split(/(?=[A-Z])/), this.tooltipPositionY = _a[0], this.tooltipPositionX = _a[1];\r\n }\r\n else {\r\n _b = this.position.split(/(?=[A-Z])/), this.tooltipPositionX = _b[0], this.tooltipPositionY = _b[1];\r\n }\r\n };\r\n Tooltip.prototype.renderArrow = function () {\r\n this.setTipClass(this.position);\r\n var tip = this.createElement('div', { className: ARROW_TIP + ' ' + this.tipClass });\r\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_OUTER + ' ' + this.tipClass }));\r\n tip.appendChild(this.createElement('div', { className: ARROW_TIP_INNER + ' ' + this.tipClass }));\r\n this.tooltipEle.appendChild(tip);\r\n };\r\n Tooltip.prototype.setTipClass = function (position) {\r\n if (position.indexOf('Right') === 0) {\r\n this.tipClass = TIP_LEFT;\r\n }\r\n else if (position.indexOf('Bottom') === 0) {\r\n this.tipClass = TIP_TOP;\r\n }\r\n else if (position.indexOf('Left') === 0) {\r\n this.tipClass = TIP_RIGHT;\r\n }\r\n else {\r\n this.tipClass = TIP_BOTTOM;\r\n }\r\n };\r\n Tooltip.prototype.renderPopup = function (target) {\r\n var elePos = this.mouseTrail ? { top: 0, left: 0 } : this.getTooltipPosition(target);\r\n this.tooltipEle.classList.remove(POPUP_LIB);\r\n this.popupObj = new Popup(this.tooltipEle, {\r\n height: this.height,\r\n width: this.width,\r\n position: { X: elePos.left, Y: elePos.top },\r\n enableRtl: this.enableRtl,\r\n open: this.openPopupHandler.bind(this),\r\n close: this.closePopupHandler.bind(this)\r\n });\r\n };\r\n Tooltip.prototype.getTooltipPosition = function (target) {\r\n this.tooltipEle.style.display = 'block';\r\n var pos = calculatePosition(target, this.tooltipPositionX, this.tooltipPositionY);\r\n var offsetPos = this.calculateTooltipOffset(this.position);\r\n var elePos = this.collisionFlipFit(target, pos.left + offsetPos.left, pos.top + offsetPos.top);\r\n this.tooltipEle.style.display = '';\r\n return elePos;\r\n };\r\n Tooltip.prototype.windowResize = function () {\r\n this.reposition(this.findTarget());\r\n };\r\n Tooltip.prototype.reposition = function (target) {\r\n if (this.popupObj && target) {\r\n var elePos = this.getTooltipPosition(target);\r\n this.popupObj.position = { X: elePos.left, Y: elePos.top };\r\n this.popupObj.dataBind();\r\n }\r\n };\r\n Tooltip.prototype.openPopupHandler = function () {\r\n if (!this.mouseTrail && this.needTemplateReposition()) {\r\n this.reposition(this.findTarget());\r\n }\r\n this.trigger('afterOpen', this.tooltipEventArgs);\r\n };\r\n Tooltip.prototype.closePopupHandler = function () {\r\n this.clearTemplate(['content']);\r\n this.clear();\r\n this.trigger('afterClose', this.tooltipEventArgs);\r\n };\r\n Tooltip.prototype.calculateTooltipOffset = function (position) {\r\n var pos = { top: 0, left: 0 };\r\n var tooltipEleWidth = this.tooltipEle.offsetWidth;\r\n var tooltipEleHeight = this.tooltipEle.offsetHeight;\r\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\r\n var tipWidth = arrowEle ? arrowEle.offsetWidth : 0;\r\n var tipHeight = arrowEle ? arrowEle.offsetHeight : 0;\r\n var tipAdjust = (this.showTipPointer ? SHOW_POINTER_TIP_GAP : HIDE_POINTER_TIP_GAP);\r\n var tipHeightAdjust = (tipHeight / 2) + POINTER_ADJUST + (this.tooltipEle.offsetHeight - this.tooltipEle.clientHeight);\r\n var tipWidthAdjust = (tipWidth / 2) + POINTER_ADJUST + (this.tooltipEle.offsetWidth - this.tooltipEle.clientWidth);\r\n if (this.mouseTrail) {\r\n tipAdjust += MOUSE_TRAIL_GAP;\r\n }\r\n switch (position) {\r\n case 'RightTop':\r\n pos.left += tipWidth + tipAdjust;\r\n pos.top -= tooltipEleHeight - tipHeightAdjust;\r\n break;\r\n case 'RightCenter':\r\n pos.left += tipWidth + tipAdjust;\r\n pos.top -= (tooltipEleHeight / 2);\r\n break;\r\n case 'RightBottom':\r\n pos.left += tipWidth + tipAdjust;\r\n pos.top -= (tipHeightAdjust);\r\n break;\r\n case 'BottomRight':\r\n pos.top += (tipHeight + tipAdjust);\r\n pos.left -= (tipWidthAdjust);\r\n break;\r\n case 'BottomCenter':\r\n pos.top += (tipHeight + tipAdjust);\r\n pos.left -= (tooltipEleWidth / 2);\r\n break;\r\n case 'BottomLeft':\r\n pos.top += (tipHeight + tipAdjust);\r\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\r\n break;\r\n case 'LeftBottom':\r\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\r\n pos.top -= (tipHeightAdjust);\r\n break;\r\n case 'LeftCenter':\r\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\r\n pos.top -= (tooltipEleHeight / 2);\r\n break;\r\n case 'LeftTop':\r\n pos.left -= (tipWidth + tooltipEleWidth + tipAdjust);\r\n pos.top -= (tooltipEleHeight - tipHeightAdjust);\r\n break;\r\n case 'TopLeft':\r\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\r\n pos.left -= (tooltipEleWidth - tipWidthAdjust);\r\n break;\r\n case 'TopRight':\r\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\r\n pos.left -= (tipWidthAdjust);\r\n break;\r\n default:\r\n pos.top -= (tooltipEleHeight + tipHeight + tipAdjust);\r\n pos.left -= (tooltipEleWidth / 2);\r\n break;\r\n }\r\n pos.left += this.offsetX;\r\n pos.top += this.offsetY;\r\n return pos;\r\n };\r\n Tooltip.prototype.updateTipPosition = function (position) {\r\n var selEle = selectAll('.' + ARROW_TIP + ',.' + ARROW_TIP_OUTER + ',.' + ARROW_TIP_INNER, this.tooltipEle);\r\n var removeList = [TIP_BOTTOM, TIP_TOP, TIP_LEFT, TIP_RIGHT];\r\n removeClass(selEle, removeList);\r\n this.setTipClass(position);\r\n addClass(selEle, this.tipClass);\r\n };\r\n Tooltip.prototype.adjustArrow = function (target, position, tooltipPositionX, tooltipPositionY) {\r\n if (this.showTipPointer === false) {\r\n return;\r\n }\r\n this.updateTipPosition(position);\r\n var leftValue;\r\n var topValue;\r\n this.tooltipEle.style.display = 'block';\r\n var tooltipWidth = this.tooltipEle.clientWidth;\r\n var tooltipHeight = this.tooltipEle.clientHeight;\r\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\r\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\r\n var tipWidth = arrowEle.offsetWidth;\r\n var tipHeight = arrowEle.offsetHeight;\r\n this.tooltipEle.style.display = '';\r\n if (this.tipClass === TIP_BOTTOM || this.tipClass === TIP_TOP) {\r\n if (this.tipClass === TIP_BOTTOM) {\r\n topValue = '99.9%';\r\n // Arrow icon aligned -2px height from ArrowOuterTip div\r\n arrowInnerELe.style.top = '-' + (tipHeight - 2) + 'px';\r\n }\r\n else {\r\n topValue = -(tipHeight - 1) + 'px';\r\n // Arrow icon aligned -6px height from ArrowOuterTip div\r\n arrowInnerELe.style.top = '-' + (tipHeight - 6) + 'px';\r\n }\r\n if (target) {\r\n var tipPosExclude = tooltipPositionX !== 'Center' || (tooltipWidth > target.offsetWidth) || this.mouseTrail;\r\n if ((tipPosExclude && tooltipPositionX === 'Left') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\r\n leftValue = (tooltipWidth - tipWidth - POINTER_ADJUST) + 'px';\r\n }\r\n else if ((tipPosExclude && tooltipPositionX === 'Right') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\r\n leftValue = POINTER_ADJUST + 'px';\r\n }\r\n else {\r\n leftValue = ((tooltipWidth / 2) - (tipWidth / 2)) + 'px';\r\n }\r\n }\r\n }\r\n else {\r\n if (this.tipClass === TIP_RIGHT) {\r\n leftValue = '99.9%';\r\n // Arrow icon aligned -2px left from ArrowOuterTip div\r\n arrowInnerELe.style.left = '-' + (tipWidth - 2) + 'px';\r\n }\r\n else {\r\n leftValue = -(tipWidth - 1) + 'px';\r\n // Arrow icon aligned -2px from ArrowOuterTip width\r\n arrowInnerELe.style.left = (-(tipWidth) + (tipWidth - 2)) + 'px';\r\n }\r\n var tipPosExclude = tooltipPositionY !== 'Center' || (tooltipHeight > target.offsetHeight) || this.mouseTrail;\r\n if ((tipPosExclude && tooltipPositionY === 'Top') || (!tipPosExclude && this.tipPointerPosition === 'End')) {\r\n topValue = (tooltipHeight - tipHeight - POINTER_ADJUST) + 'px';\r\n }\r\n else if ((tipPosExclude && tooltipPositionY === 'Bottom') || (!tipPosExclude && this.tipPointerPosition === 'Start')) {\r\n topValue = POINTER_ADJUST + 'px';\r\n }\r\n else {\r\n topValue = ((tooltipHeight / 2) - (tipHeight / 2)) + 'px';\r\n }\r\n }\r\n arrowEle.style.top = topValue;\r\n arrowEle.style.left = leftValue;\r\n };\r\n Tooltip.prototype.renderContent = function (target) {\r\n var tooltipContent = select('.' + CONTENT, this.tooltipEle);\r\n if (this.cssClass) {\r\n addClass([this.tooltipEle], this.cssClass.split(' '));\r\n }\r\n if (target && !isNullOrUndefined(target.getAttribute('title'))) {\r\n target.setAttribute('data-content', target.getAttribute('title'));\r\n target.removeAttribute('title');\r\n }\r\n if (!isNullOrUndefined(this.content)) {\r\n tooltipContent.innerHTML = '';\r\n if (this.content instanceof HTMLElement) {\r\n tooltipContent.appendChild(this.content);\r\n }\r\n else if (typeof this.content === 'string') {\r\n if (this.enableHtmlSanitizer) {\r\n this.setProperties({ content: SanitizeHtmlHelper.sanitize(this.content) }, true);\r\n }\r\n tooltipContent[this.enableHtmlParse ? 'innerHTML' : 'textContent'] = this.content;\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n var templateFunction = compile(this.content);\r\n var tempArr = templateFunction({}, this, 'content', this.element.id + 'content', undefined, undefined, tooltipContent);\r\n if (tempArr) {\r\n append(tempArr, tooltipContent);\r\n }\r\n this.renderReactTemplates();\r\n }\r\n }\r\n else {\r\n if (target && !isNullOrUndefined(target.getAttribute('data-content'))) {\r\n tooltipContent.innerHTML = target.getAttribute('data-content');\r\n }\r\n }\r\n };\r\n Tooltip.prototype.renderCloseIcon = function () {\r\n if (!this.isSticky) {\r\n return;\r\n }\r\n var tipClose = this.createElement('div', { className: ICON + ' ' + CLOSE });\r\n this.tooltipEle.appendChild(tipClose);\r\n EventHandler.add(tipClose, Browser.touchStartEvent, this.onStickyClose, this);\r\n };\r\n Tooltip.prototype.addDescribedBy = function (target, id) {\r\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\r\n if (describedby.indexOf(id) < 0) {\r\n describedby.push(id);\r\n }\r\n attributes(target, { 'aria-describedby': describedby.join(' ').trim(), 'data-tooltip-id': id });\r\n };\r\n Tooltip.prototype.removeDescribedBy = function (target) {\r\n var id = target.getAttribute('data-tooltip-id');\r\n var describedby = (target.getAttribute('aria-describedby') || '').split(/\\s+/);\r\n var index = describedby.indexOf(id);\r\n if (index !== -1) {\r\n describedby.splice(index, 1);\r\n }\r\n target.removeAttribute('data-tooltip-id');\r\n var orgdescribedby = describedby.join(' ').trim();\r\n if (orgdescribedby) {\r\n target.setAttribute('aria-describedby', orgdescribedby);\r\n }\r\n else {\r\n target.removeAttribute('aria-describedby');\r\n }\r\n };\r\n Tooltip.prototype.tapHoldHandler = function (evt) {\r\n clearTimeout(this.autoCloseTimer);\r\n this.targetHover(evt.originalEvent);\r\n };\r\n Tooltip.prototype.touchEndHandler = function (e) {\r\n var _this = this;\r\n if (this.isSticky) {\r\n return;\r\n }\r\n // eslint-disable-next-line\r\n var close = function () {\r\n _this.close();\r\n };\r\n this.autoCloseTimer = setTimeout(close, TOUCHEND_HIDE_DELAY);\r\n };\r\n Tooltip.prototype.targetClick = function (e) {\r\n var target;\r\n if (this.target) {\r\n target = closest(e.target, this.target);\r\n }\r\n else {\r\n target = this.element;\r\n }\r\n if (isNullOrUndefined(target)) {\r\n return;\r\n }\r\n if (target.getAttribute('data-tooltip-id') === null) {\r\n this.targetHover(e);\r\n }\r\n else if (!this.isSticky) {\r\n this.hideTooltip(this.animation.close, e, target);\r\n }\r\n };\r\n Tooltip.prototype.targetHover = function (e) {\r\n var target;\r\n if (this.target) {\r\n target = closest(e.target, this.target);\r\n }\r\n else {\r\n target = this.element;\r\n }\r\n if (isNullOrUndefined(target) || (target.getAttribute('data-tooltip-id') !== null && this.closeDelay === 0)) {\r\n return;\r\n }\r\n var targetList = [].slice.call(selectAll('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document));\r\n for (var _i = 0, targetList_1 = targetList; _i < targetList_1.length; _i++) {\r\n var target_1 = targetList_1[_i];\r\n this.restoreElement(target_1);\r\n }\r\n this.showTooltip(target, this.animation.open, e);\r\n };\r\n Tooltip.prototype.mouseMoveBeforeOpen = function (e) {\r\n this.mouseMoveEvent = e;\r\n };\r\n Tooltip.prototype.mouseMoveBeforeRemove = function () {\r\n if (this.mouseMoveTarget) {\r\n EventHandler.remove(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen);\r\n }\r\n };\r\n Tooltip.prototype.showTooltip = function (target, showAnimation, e) {\r\n var _this = this;\r\n clearTimeout(this.showTimer);\r\n clearTimeout(this.hideTimer);\r\n if (this.openDelay && this.mouseTrail) {\r\n this.mouseMoveBeforeRemove();\r\n this.mouseMoveTarget = target;\r\n EventHandler.add(this.mouseMoveTarget, 'mousemove touchstart', this.mouseMoveBeforeOpen, this);\r\n }\r\n this.tooltipEventArgs = {\r\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\r\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\r\n };\r\n // eslint-disable-next-line\r\n var observeCallback = function (beforeRenderArgs) {\r\n _this.beforeRenderCallback(beforeRenderArgs, target, e, showAnimation);\r\n };\r\n this.trigger('beforeRender', this.tooltipEventArgs, observeCallback.bind(this));\r\n };\r\n Tooltip.prototype.beforeRenderCallback = function (beforeRenderArgs, target, e, showAnimation) {\r\n if (beforeRenderArgs.cancel) {\r\n this.isHidden = true;\r\n this.clear();\r\n this.mouseMoveBeforeRemove();\r\n }\r\n else {\r\n this.isHidden = false;\r\n if (isNullOrUndefined(this.tooltipEle)) {\r\n this.ctrlId = this.element.getAttribute('id') ?\r\n getUniqueID(this.element.getAttribute('id')) : getUniqueID('tooltip');\r\n this.tooltipEle = this.createElement('div', {\r\n className: TOOLTIP_WRAP + ' ' + POPUP_ROOT + ' ' + POPUP_LIB, attrs: {\r\n role: 'tooltip', 'aria-hidden': 'false', 'id': this.ctrlId + '_content'\r\n }, styles: 'width:' +\r\n formatUnit(this.width) + ';height:' + formatUnit(this.height) + ';position:absolute;'\r\n });\r\n this.tooltipBeforeRender(target, this);\r\n this.tooltipAfterRender(target, e, showAnimation, this);\r\n }\r\n else {\r\n if (target) {\r\n this.adjustArrow(target, this.position, this.tooltipPositionX, this.tooltipPositionY);\r\n this.addDescribedBy(target, this.ctrlId + '_content');\r\n this.renderContent(target);\r\n PopupAnimation.stop(this.tooltipEle);\r\n this.reposition(target);\r\n this.tooltipAfterRender(target, e, showAnimation, this);\r\n }\r\n }\r\n }\r\n };\r\n Tooltip.prototype.tooltipBeforeRender = function (target, ctrlObj) {\r\n if (target) {\r\n if (Browser.isDevice) {\r\n addClass([ctrlObj.tooltipEle], DEVICE);\r\n }\r\n if (ctrlObj.width !== 'auto') {\r\n ctrlObj.tooltipEle.style.maxWidth = formatUnit(ctrlObj.width);\r\n }\r\n ctrlObj.tooltipEle.appendChild(ctrlObj.createElement('div', { className: CONTENT }));\r\n document.body.appendChild(ctrlObj.tooltipEle);\r\n removeClass([ctrlObj.tooltipEle], HIDE_POPUP);\r\n ctrlObj.addDescribedBy(target, ctrlObj.ctrlId + '_content');\r\n ctrlObj.renderContent(target);\r\n addClass([ctrlObj.tooltipEle], POPUP_OPEN);\r\n if (ctrlObj.showTipPointer) {\r\n ctrlObj.renderArrow();\r\n }\r\n ctrlObj.renderCloseIcon();\r\n ctrlObj.renderPopup(target);\r\n ctrlObj.adjustArrow(target, ctrlObj.position, ctrlObj.tooltipPositionX, ctrlObj.tooltipPositionY);\r\n PopupAnimation.stop(ctrlObj.tooltipEle);\r\n ctrlObj.reposition(target);\r\n }\r\n };\r\n Tooltip.prototype.tooltipAfterRender = function (target, e, showAnimation, ctrlObj) {\r\n if (target) {\r\n removeClass([ctrlObj.tooltipEle], POPUP_OPEN);\r\n addClass([ctrlObj.tooltipEle], POPUP_CLOSE);\r\n ctrlObj.tooltipEventArgs = {\r\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\r\n element: ctrlObj.tooltipEle, isInteracted: !isNullOrUndefined(e)\r\n };\r\n if (ctrlObj.needTemplateReposition() && !ctrlObj.mouseTrail) {\r\n ctrlObj.tooltipEle.style.display = 'none';\r\n }\r\n // eslint-disable-next-line\r\n var observeCallback = function (observedArgs) {\r\n ctrlObj.beforeOpenCallback(observedArgs, target, showAnimation, e);\r\n };\r\n ctrlObj.trigger('beforeOpen', ctrlObj.tooltipEventArgs, observeCallback.bind(ctrlObj));\r\n }\r\n };\r\n Tooltip.prototype.beforeOpenCallback = function (observedArgs, target, showAnimation, e) {\r\n var _this = this;\r\n if (observedArgs.cancel) {\r\n this.isHidden = true;\r\n this.clear();\r\n this.mouseMoveBeforeRemove();\r\n this.restoreElement(target);\r\n }\r\n else {\r\n // eslint-disable-next-line\r\n var openAnimation_1 = {\r\n name: showAnimation.effect,\r\n duration: showAnimation.duration,\r\n delay: showAnimation.delay,\r\n timingFunction: 'easeOut'\r\n };\r\n if (showAnimation.effect === 'None') {\r\n openAnimation_1 = undefined;\r\n }\r\n if (this.openDelay > 0) {\r\n // eslint-disable-next-line\r\n var show = function () {\r\n if (_this.mouseTrail) {\r\n EventHandler.add(target, 'mousemove touchstart mouseenter', _this.onMouseMove, _this);\r\n }\r\n if (_this.popupObj) {\r\n _this.popupObj.show(openAnimation_1, target);\r\n if (_this.mouseMoveEvent && _this.mouseTrail) {\r\n _this.onMouseMove(_this.mouseMoveEvent);\r\n }\r\n }\r\n };\r\n this.showTimer = setTimeout(show, this.openDelay);\r\n }\r\n else {\r\n if (this.popupObj) {\r\n this.popupObj.show(openAnimation_1, target);\r\n }\r\n }\r\n }\r\n if (e) {\r\n this.wireMouseEvents(e, target);\r\n }\r\n };\r\n Tooltip.prototype.needTemplateReposition = function () {\r\n // eslint-disable-next-line\r\n var tooltip = this;\r\n return !isNullOrUndefined(tooltip.viewContainerRef)\r\n && typeof tooltip.viewContainerRef !== 'string';\r\n };\r\n Tooltip.prototype.checkCollision = function (target, x, y) {\r\n var elePos = {\r\n left: x, top: y, position: this.position,\r\n horizontal: this.tooltipPositionX, vertical: this.tooltipPositionY\r\n };\r\n var affectedPos = isCollide(this.tooltipEle, this.checkCollideTarget(), x, y);\r\n if (affectedPos.length > 0) {\r\n elePos.horizontal = affectedPos.indexOf('left') >= 0 ? 'Right' : affectedPos.indexOf('right') >= 0 ? 'Left' :\r\n this.tooltipPositionX;\r\n elePos.vertical = affectedPos.indexOf('top') >= 0 ? 'Bottom' : affectedPos.indexOf('bottom') >= 0 ? 'Top' :\r\n this.tooltipPositionY;\r\n }\r\n return elePos;\r\n };\r\n Tooltip.prototype.collisionFlipFit = function (target, x, y) {\r\n var elePos = this.checkCollision(target, x, y);\r\n var newpos = elePos.position;\r\n if (this.tooltipPositionY !== elePos.vertical) {\r\n newpos = ((this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\r\n elePos.vertical + this.tooltipPositionX : this.tooltipPositionX + elePos.vertical);\r\n }\r\n if (this.tooltipPositionX !== elePos.horizontal) {\r\n if (newpos.indexOf('Left') === 0) {\r\n elePos.vertical = (newpos === 'LeftTop' || newpos === 'LeftCenter') ? 'Top' : 'Bottom';\r\n newpos = (elePos.vertical + 'Left');\r\n }\r\n if (newpos.indexOf('Right') === 0) {\r\n elePos.vertical = (newpos === 'RightTop' || newpos === 'RightCenter') ? 'Top' : 'Bottom';\r\n newpos = (elePos.vertical + 'Right');\r\n }\r\n elePos.horizontal = this.tooltipPositionX;\r\n }\r\n this.tooltipEventArgs = {\r\n type: null, cancel: false, target: target, event: null,\r\n element: this.tooltipEle, collidedPosition: newpos\r\n };\r\n this.trigger('beforeCollision', this.tooltipEventArgs);\r\n if (elePos.position !== newpos) {\r\n var pos = calculatePosition(target, elePos.horizontal, elePos.vertical);\r\n this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical);\r\n var offsetPos = this.calculateTooltipOffset(newpos);\r\n offsetPos.top -= (('TopBottom'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\r\n ('TopBottom'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetY) : 0;\r\n offsetPos.left -= (('RightLeft'.indexOf(this.position.split(/(?=[A-Z])/)[0]) !== -1) &&\r\n ('RightLeft'.indexOf(newpos.split(/(?=[A-Z])/)[0]) !== -1)) ? (2 * this.offsetX) : 0;\r\n elePos.position = newpos;\r\n elePos.left = pos.left + offsetPos.left;\r\n elePos.top = pos.top + offsetPos.top;\r\n }\r\n else {\r\n this.adjustArrow(target, newpos, elePos.horizontal, elePos.vertical);\r\n }\r\n var eleOffset = { left: elePos.left, top: elePos.top };\r\n var left = fit(this.tooltipEle, this.checkCollideTarget(), { X: true, Y: false }, eleOffset).left;\r\n this.tooltipEle.style.display = 'block';\r\n if (this.showTipPointer && (newpos.indexOf('Bottom') === 0 || newpos.indexOf('Top') === 0)) {\r\n var arrowEle = select('.' + ARROW_TIP, this.tooltipEle);\r\n var arrowleft = parseInt(arrowEle.style.left, 10) - (left - elePos.left);\r\n if (arrowleft < 0) {\r\n arrowleft = 0;\r\n }\r\n else if ((arrowleft + arrowEle.offsetWidth) > this.tooltipEle.clientWidth) {\r\n arrowleft = this.tooltipEle.clientWidth - arrowEle.offsetWidth;\r\n }\r\n arrowEle.style.left = arrowleft.toString() + 'px';\r\n }\r\n this.tooltipEle.style.display = '';\r\n eleOffset.left = left;\r\n return eleOffset;\r\n };\r\n Tooltip.prototype.checkCollideTarget = function () {\r\n return !this.windowCollision && this.target ? this.element : null;\r\n };\r\n Tooltip.prototype.hideTooltip = function (hideAnimation, e, targetElement) {\r\n var _this = this;\r\n if (this.closeDelay > 0) {\r\n clearTimeout(this.hideTimer);\r\n clearTimeout(this.showTimer);\r\n // eslint-disable-next-line\r\n var hide = function () {\r\n if (_this.closeDelay && _this.tooltipEle && _this.isTooltipOpen) {\r\n return;\r\n }\r\n _this.tooltipHide(hideAnimation, e, targetElement);\r\n };\r\n this.hideTimer = setTimeout(hide, this.closeDelay);\r\n }\r\n else {\r\n this.tooltipHide(hideAnimation, e, targetElement);\r\n }\r\n };\r\n Tooltip.prototype.tooltipHide = function (hideAnimation, e, targetElement) {\r\n var _this = this;\r\n var target;\r\n if (e) {\r\n target = this.target ? (targetElement || e.target) : this.element;\r\n }\r\n else {\r\n target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\r\n }\r\n this.tooltipEventArgs = {\r\n type: e ? e.type : null, cancel: false, target: target, event: e ? e : null,\r\n element: this.tooltipEle, isInteracted: !isNullOrUndefined(e)\r\n };\r\n // this line commented for close the tooltip popup element even the target element destroyed in a page.\r\n //if (isNullOrUndefined(target)) { return; }\r\n this.trigger('beforeClose', this.tooltipEventArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.mouseMoveBeforeRemove();\r\n _this.popupHide(hideAnimation, target);\r\n }\r\n else {\r\n _this.isHidden = false;\r\n }\r\n });\r\n };\r\n Tooltip.prototype.popupHide = function (hideAnimation, target) {\r\n if (target) {\r\n this.restoreElement(target);\r\n }\r\n this.isHidden = true;\r\n // eslint-disable-next-line\r\n var closeAnimation = {\r\n name: hideAnimation.effect,\r\n duration: hideAnimation.duration,\r\n delay: hideAnimation.delay,\r\n timingFunction: 'easeIn'\r\n };\r\n if (hideAnimation.effect === 'None') {\r\n closeAnimation = undefined;\r\n }\r\n if (this.popupObj) {\r\n this.popupObj.hide(closeAnimation);\r\n }\r\n };\r\n Tooltip.prototype.restoreElement = function (target) {\r\n this.unwireMouseEvents(target);\r\n if (!isNullOrUndefined(target.getAttribute('data-content'))) {\r\n target.setAttribute('title', target.getAttribute('data-content'));\r\n target.removeAttribute('data-content');\r\n }\r\n this.removeDescribedBy(target);\r\n };\r\n Tooltip.prototype.clear = function () {\r\n if (this.tooltipEle) {\r\n removeClass([this.tooltipEle], POPUP_CLOSE);\r\n addClass([this.tooltipEle], POPUP_OPEN);\r\n }\r\n if (this.isHidden) {\r\n if (this.popupObj) {\r\n this.popupObj.destroy();\r\n }\r\n if (this.tooltipEle) {\r\n remove(this.tooltipEle);\r\n }\r\n this.tooltipEle = null;\r\n this.popupObj = null;\r\n }\r\n };\r\n Tooltip.prototype.tooltipHover = function (e) {\r\n if (this.tooltipEle) {\r\n this.isTooltipOpen = true;\r\n }\r\n };\r\n Tooltip.prototype.tooltipMouseOut = function (e) {\r\n this.isTooltipOpen = false;\r\n this.hideTooltip(this.animation.close, e, this.findTarget());\r\n };\r\n Tooltip.prototype.onMouseOut = function (e) {\r\n var enteredElement = e.relatedTarget;\r\n // don't close the tooltip only if it is tooltip content element\r\n if (enteredElement && !this.mouseTrail) {\r\n var checkForTooltipElement = closest(enteredElement, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT);\r\n if (checkForTooltipElement) {\r\n EventHandler.add(checkForTooltipElement, 'mouseleave', this.tooltipElementMouseOut, this);\r\n }\r\n else {\r\n this.hideTooltip(this.animation.close, e, this.findTarget());\r\n if (this.closeDelay === 0) {\r\n this.clear();\r\n }\r\n }\r\n }\r\n else {\r\n this.hideTooltip(this.animation.close, e, this.findTarget());\r\n this.clear();\r\n }\r\n };\r\n Tooltip.prototype.tooltipElementMouseOut = function (e) {\r\n this.hideTooltip(this.animation.close, e, this.findTarget());\r\n EventHandler.remove(this.element, 'mouseleave', this.tooltipElementMouseOut);\r\n this.clear();\r\n };\r\n Tooltip.prototype.onStickyClose = function (e) {\r\n this.close();\r\n };\r\n Tooltip.prototype.onMouseMove = function (event) {\r\n var eventPageX = 0;\r\n var eventPageY = 0;\r\n if (event.type.indexOf('touch') > -1) {\r\n event.preventDefault();\r\n eventPageX = event.touches[0].pageX;\r\n eventPageY = event.touches[0].pageY;\r\n }\r\n else {\r\n eventPageX = event.pageX;\r\n eventPageY = event.pageY;\r\n }\r\n PopupAnimation.stop(this.tooltipEle);\r\n removeClass([this.tooltipEle], POPUP_CLOSE);\r\n addClass([this.tooltipEle], POPUP_OPEN);\r\n this.adjustArrow(event.target, this.position, this.tooltipPositionX, this.tooltipPositionY);\r\n var pos = this.calculateTooltipOffset(this.position);\r\n var x = eventPageX + pos.left + this.offsetX;\r\n var y = eventPageY + pos.top + this.offsetY;\r\n var elePos = this.checkCollision(event.target, x, y);\r\n if (this.tooltipPositionX !== elePos.horizontal || this.tooltipPositionY !== elePos.vertical) {\r\n var newpos = (this.position.indexOf('Bottom') === 0 || this.position.indexOf('Top') === 0) ?\r\n elePos.vertical + elePos.horizontal : elePos.horizontal + elePos.vertical;\r\n elePos.position = newpos;\r\n this.adjustArrow(event.target, elePos.position, elePos.horizontal, elePos.vertical);\r\n var colpos = this.calculateTooltipOffset(elePos.position);\r\n elePos.left = eventPageX + colpos.left - this.offsetX;\r\n elePos.top = eventPageY + colpos.top - this.offsetY;\r\n }\r\n this.tooltipEle.style.left = elePos.left + 'px';\r\n this.tooltipEle.style.top = elePos.top + 'px';\r\n };\r\n Tooltip.prototype.keyDown = function (event) {\r\n if (this.tooltipEle && event.keyCode === 27) {\r\n this.close();\r\n }\r\n };\r\n Tooltip.prototype.touchEnd = function (e) {\r\n if (this.tooltipEle && closest(e.target, '.' + ROOT) === null && !this.isSticky) {\r\n this.close();\r\n }\r\n };\r\n Tooltip.prototype.scrollHandler = function (e) {\r\n if (this.tooltipEle) {\r\n if (!(closest(e.target, \".\" + TOOLTIP_WRAP + \".\" + POPUP_LIB + \".\" + POPUP_ROOT))) {\r\n this.close();\r\n }\r\n }\r\n };\r\n /**\r\n * Core method that initializes the control rendering.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Tooltip.prototype.render = function () {\r\n this.initialize();\r\n this.wireEvents(this.opensOn);\r\n this.renderComplete();\r\n };\r\n /**\r\n * Initializes the values of private members.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n Tooltip.prototype.preRender = function () {\r\n this.tipClass = TIP_BOTTOM;\r\n this.tooltipPositionX = 'Center';\r\n this.tooltipPositionY = 'Top';\r\n this.isHidden = true;\r\n };\r\n /**\r\n * Binding events to the Tooltip element.\r\n *\r\n * @hidden\r\n * @param {string} trigger - specify the trigger string to the function\r\n * @returns {void}\r\n *\r\n */\r\n Tooltip.prototype.wireEvents = function (trigger) {\r\n var triggerList = this.getTriggerList(trigger);\r\n for (var _i = 0, triggerList_1 = triggerList; _i < triggerList_1.length; _i++) {\r\n var opensOn = triggerList_1[_i];\r\n if (opensOn === 'Custom') {\r\n return;\r\n }\r\n if (opensOn === 'Focus') {\r\n this.wireFocusEvents();\r\n }\r\n if (opensOn === 'Click') {\r\n EventHandler.add(this.element, Browser.touchStartEvent, this.targetClick, this);\r\n }\r\n if (opensOn === 'Hover') {\r\n if (Browser.isDevice) {\r\n this.touchModule = new Touch(this.element, {\r\n tapHoldThreshold: TAPHOLD_THRESHOLD,\r\n tapHold: this.tapHoldHandler.bind(this)\r\n });\r\n EventHandler.add(this.element, Browser.touchEndEvent, this.touchEndHandler, this);\r\n }\r\n else {\r\n EventHandler.add(this.element, 'mouseover', this.targetHover, this);\r\n }\r\n }\r\n }\r\n EventHandler.add(document, 'touchend', this.touchEnd, this);\r\n EventHandler.add(document, 'scroll wheel', this.scrollHandler, this);\r\n EventHandler.add(window, 'resize', this.windowResize, this);\r\n EventHandler.add(document, 'keydown', this.keyDown, this);\r\n };\r\n Tooltip.prototype.getTriggerList = function (trigger) {\r\n if (trigger === 'Auto') {\r\n trigger = (Browser.isDevice) ? 'Hover' : 'Hover Focus';\r\n }\r\n return trigger.split(' ');\r\n };\r\n Tooltip.prototype.wireFocusEvents = function () {\r\n if (!isNullOrUndefined(this.target)) {\r\n var targetList = [].slice.call(selectAll(this.target, this.element));\r\n for (var _i = 0, targetList_2 = targetList; _i < targetList_2.length; _i++) {\r\n var target = targetList_2[_i];\r\n EventHandler.add(target, 'focus', this.targetHover, this);\r\n }\r\n }\r\n else {\r\n EventHandler.add(this.element, 'focus', this.targetHover, this);\r\n }\r\n };\r\n Tooltip.prototype.wireMouseEvents = function (e, target) {\r\n if (this.tooltipEle) {\r\n if (!this.isSticky) {\r\n if (e.type === 'focus') {\r\n EventHandler.add(target, 'blur', this.onMouseOut, this);\r\n }\r\n if (e.type === 'mouseover') {\r\n EventHandler.add(target, 'mouseleave', this.onMouseOut, this);\r\n }\r\n if (this.closeDelay) {\r\n EventHandler.add(this.tooltipEle, 'mouseenter', this.tooltipHover, this);\r\n EventHandler.add(this.tooltipEle, 'mouseleave', this.tooltipMouseOut, this);\r\n }\r\n }\r\n if (this.mouseTrail && this.openDelay === 0) {\r\n EventHandler.add(target, 'mousemove touchstart mouseenter', this.onMouseMove, this);\r\n }\r\n }\r\n };\r\n /**\r\n * Unbinding events from the element on widget destroy.\r\n *\r\n * @hidden\r\n *\r\n * @param {string} trigger - specify the trigger string to the function\r\n * @returns {void}\r\n *\r\n */\r\n Tooltip.prototype.unwireEvents = function (trigger) {\r\n var triggerList = this.getTriggerList(trigger);\r\n for (var _i = 0, triggerList_2 = triggerList; _i < triggerList_2.length; _i++) {\r\n var opensOn = triggerList_2[_i];\r\n if (opensOn === 'Custom') {\r\n return;\r\n }\r\n if (opensOn === 'Focus') {\r\n this.unwireFocusEvents();\r\n }\r\n if (opensOn === 'Click') {\r\n EventHandler.remove(this.element, Browser.touchStartEvent, this.targetClick);\r\n }\r\n if (opensOn === 'Hover') {\r\n if (Browser.isDevice) {\r\n if (this.touchModule) {\r\n this.touchModule.destroy();\r\n }\r\n EventHandler.remove(this.element, Browser.touchEndEvent, this.touchEndHandler);\r\n }\r\n else {\r\n EventHandler.remove(this.element, 'mouseover', this.targetHover);\r\n }\r\n }\r\n }\r\n EventHandler.remove(document, 'touchend', this.touchEnd);\r\n EventHandler.remove(document, 'scroll wheel', this.scrollHandler);\r\n EventHandler.remove(window, 'resize', this.windowResize);\r\n EventHandler.remove(document, 'keydown', this.keyDown);\r\n };\r\n Tooltip.prototype.unwireFocusEvents = function () {\r\n if (!isNullOrUndefined(this.target)) {\r\n var targetList = [].slice.call(selectAll(this.target, this.element));\r\n for (var _i = 0, targetList_3 = targetList; _i < targetList_3.length; _i++) {\r\n var target = targetList_3[_i];\r\n EventHandler.remove(target, 'focus', this.targetHover);\r\n }\r\n }\r\n else {\r\n EventHandler.remove(this.element, 'focus', this.targetHover);\r\n }\r\n };\r\n Tooltip.prototype.unwireMouseEvents = function (target) {\r\n if (!this.isSticky) {\r\n var triggerList = this.getTriggerList(this.opensOn);\r\n for (var _i = 0, triggerList_3 = triggerList; _i < triggerList_3.length; _i++) {\r\n var opensOn = triggerList_3[_i];\r\n if (opensOn === 'Focus') {\r\n EventHandler.remove(target, 'blur', this.onMouseOut);\r\n }\r\n if (opensOn === 'Hover' && !Browser.isDevice) {\r\n EventHandler.remove(target, 'mouseleave', this.onMouseOut);\r\n }\r\n }\r\n if (this.closeDelay) {\r\n EventHandler.remove(target, 'mouseenter', this.tooltipHover);\r\n EventHandler.remove(target, 'mouseleave', this.tooltipMouseOut);\r\n }\r\n }\r\n if (this.mouseTrail) {\r\n EventHandler.remove(target, 'mousemove touchstart mouseenter', this.onMouseMove);\r\n }\r\n };\r\n Tooltip.prototype.findTarget = function () {\r\n var target = select('[data-tooltip-id= \"' + this.ctrlId + '_content\"]', document);\r\n return target;\r\n };\r\n /**\r\n * Core method to return the component name.\r\n *\r\n * @private\r\n *\r\n * @returns {string} - this method returns module name.\r\n */\r\n Tooltip.prototype.getModuleName = function () {\r\n return 'tooltip';\r\n };\r\n /**\r\n * Returns the properties to be maintained in the persisted state.\r\n *\r\n * @private\r\n *\r\n * @returns {string} - this method returns persisted data.\r\n */\r\n Tooltip.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * Called internally, if any of the property value changed.\r\n *\r\n * @private\r\n *\r\n * @param {TooltipModel} newProp - this param gives new property values to the method\r\n * @param {TooltipModel} oldProp - this param gives old property values to the method\r\n * @returns {void}\r\n *\r\n */\r\n Tooltip.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var targetElement = this.findTarget();\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'width':\r\n if (this.tooltipEle && targetElement) {\r\n this.tooltipEle.style.width = this.tooltipEle.style.maxWidth = formatUnit(newProp.width);\r\n this.reposition(targetElement);\r\n }\r\n break;\r\n case 'height':\r\n if (this.tooltipEle && targetElement) {\r\n this.tooltipEle.style.height = formatUnit(newProp.height);\r\n this.reposition(targetElement);\r\n }\r\n break;\r\n case 'content':\r\n if (this.tooltipEle) {\r\n this.renderContent();\r\n }\r\n break;\r\n case 'opensOn':\r\n this.unwireEvents(oldProp.opensOn);\r\n this.wireEvents(newProp.opensOn);\r\n break;\r\n case 'position':\r\n this.formatPosition();\r\n if (this.tooltipEle && targetElement) {\r\n var arrowInnerELe = select('.' + ARROW_TIP_INNER, this.tooltipEle);\r\n arrowInnerELe.style.top = arrowInnerELe.style.left = null;\r\n this.reposition(targetElement);\r\n }\r\n break;\r\n case 'tipPointerPosition':\r\n if (this.tooltipEle && targetElement) {\r\n this.reposition(targetElement);\r\n }\r\n break;\r\n case 'offsetX':\r\n if (this.tooltipEle) {\r\n var x = newProp.offsetX - oldProp.offsetX;\r\n this.tooltipEle.style.left = (parseInt(this.tooltipEle.style.left, 10) + (x)).toString() + 'px';\r\n }\r\n break;\r\n case 'offsetY':\r\n if (this.tooltipEle) {\r\n var y = newProp.offsetY - oldProp.offsetY;\r\n this.tooltipEle.style.top = (parseInt(this.tooltipEle.style.top, 10) + (y)).toString() + 'px';\r\n }\r\n break;\r\n case 'cssClass':\r\n if (this.tooltipEle) {\r\n if (oldProp.cssClass) {\r\n removeClass([this.tooltipEle], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.tooltipEle], newProp.cssClass.split(' '));\r\n }\r\n }\r\n break;\r\n case 'enableRtl':\r\n if (this.tooltipEle) {\r\n if (this.enableRtl) {\r\n addClass([this.tooltipEle], RTL);\r\n }\r\n else {\r\n removeClass([this.tooltipEle], RTL);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * It is used to show the Tooltip on the specified target with specific animation settings.\r\n *\r\n * @param {HTMLElement} element - Target element where the Tooltip is to be displayed. (It is an optional parameter)\r\n * @param {TooltipAnimationSettings} animation - Sets the specific animation, while showing the Tooltip on the screen. (It is an optional parameter)\r\n * @returns {void}\r\n */\r\n Tooltip.prototype.open = function (element, animation) {\r\n if (isNullOrUndefined(animation)) {\r\n animation = this.animation.open;\r\n }\r\n if (isNullOrUndefined(element)) {\r\n element = this.element;\r\n }\r\n if (element.style.display === 'none') {\r\n return;\r\n }\r\n this.showTooltip(element, animation);\r\n };\r\n /**\r\n * It is used to hide the Tooltip with specific animation effect.\r\n *\r\n * @param {TooltipAnimationSettings} animation - Sets the specific animation when hiding Tooltip from the screen. (It is an optional parameter)\r\n * @returns {void}\r\n */\r\n Tooltip.prototype.close = function (animation) {\r\n if (!animation) {\r\n animation = this.animation.close;\r\n }\r\n this.hideTooltip(animation);\r\n };\r\n /**\r\n * It is used to refresh the Tooltip content and its position.\r\n *\r\n * @param {HTMLElement} target - Target element where the Tooltip content or position needs to be refreshed.\r\n * @returns {void}\r\n */\r\n Tooltip.prototype.refresh = function (target) {\r\n if (this.tooltipEle) {\r\n this.renderContent(target);\r\n }\r\n if (this.popupObj && target) {\r\n this.reposition(target);\r\n }\r\n };\r\n /**\r\n * It is used to destroy the Tooltip component.\r\n * @method destroy\r\n * @returns {void}\r\n * @memberof Tooltip\r\n */\r\n Tooltip.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n if (this.tooltipEle) {\r\n remove(this.tooltipEle);\r\n }\r\n if (this.popupObj) {\r\n this.popupObj.destroy();\r\n }\r\n removeClass([this.element], ROOT);\r\n this.unwireEvents(this.opensOn);\r\n this.unwireMouseEvents(this.element);\r\n this.tooltipEle = null;\r\n this.popupObj = null;\r\n };\r\n __decorate([\r\n Property('auto')\r\n ], Tooltip.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Tooltip.prototype, \"height\", void 0);\r\n __decorate([\r\n Property()\r\n ], Tooltip.prototype, \"content\", void 0);\r\n __decorate([\r\n Property()\r\n ], Tooltip.prototype, \"target\", void 0);\r\n __decorate([\r\n Property('TopCenter')\r\n ], Tooltip.prototype, \"position\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Tooltip.prototype, \"offsetX\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Tooltip.prototype, \"offsetY\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Tooltip.prototype, \"showTipPointer\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Tooltip.prototype, \"enableHtmlParse\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tooltip.prototype, \"windowCollision\", void 0);\r\n __decorate([\r\n Property('Auto')\r\n ], Tooltip.prototype, \"tipPointerPosition\", void 0);\r\n __decorate([\r\n Property('Auto')\r\n ], Tooltip.prototype, \"opensOn\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tooltip.prototype, \"mouseTrail\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tooltip.prototype, \"isSticky\", void 0);\r\n __decorate([\r\n Complex({}, Animation)\r\n ], Tooltip.prototype, \"animation\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Tooltip.prototype, \"openDelay\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Tooltip.prototype, \"closeDelay\", void 0);\r\n __decorate([\r\n Property()\r\n ], Tooltip.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Tooltip.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"beforeRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"afterOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"afterClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"beforeCollision\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Tooltip.prototype, \"destroyed\", void 0);\r\n Tooltip = __decorate([\r\n NotifyPropertyChanges\r\n ], Tooltip);\r\n return Tooltip;\r\n}(Component));\r\nexport { Tooltip };\r\n","/**\n * index\n */\nexport * from './src/index';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { HijriParser, isNullOrUndefined } from '@syncfusion/ej2-base';\r\n/** @private */\r\nvar Gregorian = /** @class */ (function () {\r\n function Gregorian() {\r\n }\r\n Gregorian.prototype.firstDateOfMonth = function (date) {\r\n return new Date(date.getFullYear(), date.getMonth());\r\n };\r\n Gregorian.prototype.lastDateOfMonth = function (dt) {\r\n return new Date(dt.getFullYear(), dt.getMonth() + 1, 0);\r\n };\r\n Gregorian.prototype.isMonthStart = function (date) {\r\n return (date.getDate() === 1);\r\n };\r\n Gregorian.prototype.getLeapYearDaysCount = function () {\r\n return 366;\r\n };\r\n Gregorian.prototype.getYearDaysCount = function (date, interval) {\r\n return ((date.getFullYear() + interval) % 4 === 0) ? 366 : 365;\r\n };\r\n Gregorian.prototype.getDate = function (date) {\r\n return date.getDate();\r\n };\r\n Gregorian.prototype.getMonth = function (date) {\r\n return (date.getMonth() + 1);\r\n };\r\n Gregorian.prototype.getFullYear = function (date) {\r\n return date.getFullYear();\r\n };\r\n Gregorian.prototype.getYearLastDate = function (date, interval) {\r\n return new Date(date.getFullYear() + interval, 0, 0);\r\n };\r\n Gregorian.prototype.getMonthDaysCount = function (date) {\r\n return this.lastDateOfMonth(date).getDate();\r\n };\r\n Gregorian.prototype.getMonthStartDate = function (date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1, date.getHours(), date.getMinutes());\r\n };\r\n Gregorian.prototype.getMonthEndDate = function (date) {\r\n date.setDate(1);\r\n return new Date(date.setMonth(date.getMonth() + 1));\r\n };\r\n Gregorian.prototype.getExpectedDays = function (date, days) {\r\n return days;\r\n };\r\n Gregorian.prototype.setDate = function (dateObj, date) {\r\n dateObj.setDate(date);\r\n };\r\n Gregorian.prototype.setValidDate = function (date, interval, startDate, monthValue, beginDate) {\r\n if (!isNullOrUndefined(beginDate)) {\r\n date.setMonth((beginDate ? monthValue : date.getMonth()) + interval);\r\n }\r\n else {\r\n date.setMonth(date.getMonth() + interval, startDate);\r\n }\r\n };\r\n Gregorian.prototype.setMonth = function (date, interval, startDate) {\r\n date.setFullYear(date.getFullYear());\r\n date.setMonth(interval - 1);\r\n date.setDate(startDate);\r\n };\r\n Gregorian.prototype.addYears = function (date, interval) {\r\n date.setFullYear(date.getFullYear() + interval);\r\n };\r\n Gregorian.prototype.isSameMonth = function (date1, date2) {\r\n return (date1.getMonth() === date2.getMonth());\r\n };\r\n Gregorian.prototype.checkMonth = function (date, months) {\r\n return (months.indexOf(date.getMonth() + 1) === -1);\r\n };\r\n Gregorian.prototype.compareMonth = function (date1, date2) {\r\n return (date1.getMonth() > date2.getMonth());\r\n };\r\n Gregorian.prototype.isSameYear = function (date1, date2) {\r\n return (date1.getFullYear() === date2.getFullYear());\r\n };\r\n Gregorian.prototype.isLastMonth = function (date) {\r\n return (date.getMonth() === 11);\r\n };\r\n Gregorian.prototype.isLeapYear = function (year, interval) {\r\n return ((year + interval) % 4 === 0);\r\n };\r\n return Gregorian;\r\n}());\r\nexport { Gregorian };\r\n/** @private */\r\nvar Islamic = /** @class */ (function () {\r\n function Islamic() {\r\n }\r\n Islamic.prototype.firstDateOfMonth = function (date) {\r\n var hDate = this.getHijriDate(date);\r\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, 1);\r\n return gDate;\r\n };\r\n Islamic.prototype.lastDateOfMonth = function (date) {\r\n var hDate = this.getHijriDate(date);\r\n var daysInMonth = this.getDaysInMonth(hDate.month, hDate.year);\r\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, daysInMonth);\r\n var finalGDate = new Date(gDate.getTime());\r\n finalGDate = new Date(finalGDate.setDate(finalGDate.getDate() + 1));\r\n var finalHDate = this.getHijriDate(finalGDate);\r\n if (hDate.month === finalHDate.month) {\r\n return finalGDate;\r\n }\r\n finalHDate = this.getHijriDate(gDate);\r\n if (hDate.month === finalHDate.month) {\r\n return gDate;\r\n }\r\n return new Date(gDate.setDate(gDate.getDate() - 1));\r\n };\r\n Islamic.prototype.isMonthStart = function (date) {\r\n var hijriDate = this.getHijriDate(date);\r\n return (hijriDate.date === 1);\r\n };\r\n Islamic.prototype.getLeapYearDaysCount = function () {\r\n return 355;\r\n };\r\n Islamic.prototype.getYearDaysCount = function (date, interval) {\r\n var hDate = this.getHijriDate(date);\r\n return this.isLeapYear(hDate.year, interval) ? 355 : 354;\r\n };\r\n Islamic.prototype.getDate = function (date) {\r\n var hijriDate = this.getHijriDate(date);\r\n return hijriDate.date;\r\n };\r\n Islamic.prototype.getMonth = function (date) {\r\n var hDate = this.getHijriDate(date);\r\n return hDate.month;\r\n };\r\n Islamic.prototype.getFullYear = function (date) {\r\n var hDate = this.getHijriDate(date);\r\n return hDate.year;\r\n };\r\n Islamic.prototype.getYearLastDate = function (date, interval) {\r\n var hDate = this.getHijriDate(date);\r\n var gDate = HijriParser.toGregorian(hDate.year + interval, 1, 0);\r\n return gDate;\r\n };\r\n Islamic.prototype.getMonthDaysCount = function (date) {\r\n var maxDate = this.lastDateOfMonth(date);\r\n var hijriDate = this.getHijriDate(maxDate);\r\n return hijriDate.date;\r\n };\r\n Islamic.prototype.getMonthStartDate = function (date) {\r\n var firstDate = this.firstDateOfMonth(date);\r\n return new Date(firstDate.getFullYear(), firstDate.getMonth(), firstDate.getDate(), date.getHours(), date.getMinutes());\r\n };\r\n Islamic.prototype.getMonthEndDate = function (date) {\r\n var lastDate = this.lastDateOfMonth(date);\r\n lastDate.setDate(lastDate.getDate() + 1);\r\n return new Date(lastDate.setMonth(lastDate.getMonth()));\r\n };\r\n Islamic.prototype.getExpectedDays = function (date, days) {\r\n var hDate = this.getHijriDate(date);\r\n var day = [];\r\n for (var i = 0; i < days.length; i++) {\r\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, days[i]);\r\n day.push(gDate.getDate());\r\n }\r\n return day;\r\n };\r\n Islamic.prototype.setDate = function (dateObj, date) {\r\n var hDate = this.getHijriDate(dateObj);\r\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month, date);\r\n this.updateDateObj(dateObj, gDate);\r\n };\r\n Islamic.prototype.setValidDate = function (date, interval, startDate, monthValue, beginDate) {\r\n var firstDate = (!isNullOrUndefined(beginDate)) ? this.firstDateOfMonth(beginDate) : date;\r\n var hDate = this.getHijriDate(firstDate);\r\n var gDate = HijriParser.toGregorian(hDate.year, hDate.month + interval, startDate);\r\n this.updateDateObj(date, gDate);\r\n };\r\n Islamic.prototype.setMonth = function (date, interval, startDate) {\r\n var hDate = this.getHijriDate(date);\r\n var gDate = HijriParser.toGregorian(hDate.year, interval, startDate);\r\n this.updateDateObj(date, gDate);\r\n };\r\n Islamic.prototype.addYears = function (date, interval, monthValue) {\r\n var hDate = this.getHijriDate(date);\r\n var gDate = HijriParser.toGregorian(hDate.year + interval, monthValue, 1);\r\n this.updateDateObj(date, gDate);\r\n };\r\n Islamic.prototype.isSameMonth = function (date1, date2) {\r\n var currentHijri = this.getHijriDate(date1);\r\n var tempHijri = this.getHijriDate(date2);\r\n return (currentHijri.month === tempHijri.month);\r\n };\r\n Islamic.prototype.checkMonth = function (date, months) {\r\n var hDate = this.getHijriDate(date);\r\n return (months.indexOf(hDate.month) === -1);\r\n };\r\n Islamic.prototype.compareMonth = function (date1, date2) {\r\n var hDate = this.getHijriDate(date1);\r\n var hDate1 = this.getHijriDate(date2);\r\n return (hDate.month > hDate1.month);\r\n };\r\n Islamic.prototype.isSameYear = function (date1, date2) {\r\n var hDate = this.getHijriDate(date1);\r\n var hDate1 = this.getHijriDate(date2);\r\n return (hDate.year === hDate1.year);\r\n };\r\n Islamic.prototype.isLastMonth = function (date) {\r\n var hDate = this.getHijriDate(date);\r\n return (hDate.month === 12);\r\n };\r\n Islamic.prototype.updateDateObj = function (date, gDate) {\r\n date.setFullYear(gDate.getFullYear(), gDate.getMonth(), gDate.getDate());\r\n };\r\n Islamic.prototype.isLeapYear = function (year, interval) {\r\n return (14 + 11 * (year + interval)) % 30 < 11;\r\n };\r\n Islamic.prototype.getDaysInMonth = function (month, year) {\r\n var length = 0;\r\n length = 29 + ((month + 1) % 2);\r\n if (month === 11 && this.isLeapYear(year, 0)) {\r\n length++;\r\n }\r\n return length;\r\n };\r\n Islamic.prototype.getHijriDate = function (date) {\r\n return HijriParser.getHijriDate(date);\r\n };\r\n return Islamic;\r\n}());\r\nexport { Islamic };\r\n","/**\n * Calendar util exported items\n */\nexport * from './calendar-util';\n","/**\n * Export Schedule components\n */\nexport * from './schedule/index';\nexport * from './recurrence-editor/index';\nexport * from './common/index';\n","/* eslint-disable max-len */\r\nimport { isNullOrUndefined, getDefaultDateObject, getValue, cldrData } from '@syncfusion/ej2-base';\r\nimport { MS_PER_DAY, addDays, resetTime, capitalizeFirstWord } from '../schedule/base/util';\r\nimport { Islamic, Gregorian } from '../common/calendar-util';\r\nimport { Timezone } from '../schedule/timezone/timezone';\r\n/**\r\n * Date Generator from Recurrence Rule\r\n */\r\n/**\r\n * Generate Summary from Recurrence Rule\r\n *\r\n * @param {string} rule Accepts the Recurrence rule\r\n * @param {L10n} localeObject Accepts the locale object\r\n * @param {string} locale Accepts the locale name\r\n * @param {CalendarType} calendarType Accepts the calendar type\r\n * @returns {string} Returns the summary string from given recurrence rule\r\n */\r\nexport function generateSummary(rule, localeObject, locale, calendarType) {\r\n if (calendarType === void 0) { calendarType = 'Gregorian'; }\r\n var ruleObject = extractObjectFromRule(rule);\r\n var summary = localeObject.getConstant(EVERY) + ' ';\r\n var cldrObj;\r\n var cldrObj1;\r\n var calendarMode = calendarType.toLowerCase();\r\n if (locale === 'en' || locale === 'en-US') {\r\n var nameSpace1 = 'months.stand-alone.abbreviated';\r\n var nameSpace = 'days.stand-alone.abbreviated';\r\n cldrObj1 = (getValue(nameSpace1, getDefaultDateObject(calendarMode)));\r\n cldrObj = (getValue(nameSpace, getDefaultDateObject(calendarMode)));\r\n }\r\n else {\r\n var nameSpace1 = 'main.' + locale + '.dates.calendars.' + calendarMode + '.months.stand-alone.abbreviated';\r\n var nameSpace = 'main.' + locale + '.dates.calendars.' + calendarMode + '.days.stand-alone.abbreviated';\r\n cldrObj1 =\r\n (getValue(nameSpace1, cldrData));\r\n cldrObj =\r\n (getValue(nameSpace, cldrData));\r\n }\r\n if (ruleObject.interval > 1) {\r\n summary += ruleObject.interval + ' ';\r\n }\r\n switch (ruleObject.freq) {\r\n case 'DAILY':\r\n summary += localeObject.getConstant(DAYS);\r\n break;\r\n case 'WEEKLY':\r\n summary += localeObject.getConstant(WEEKS) + ' ' + localeObject.getConstant(ON) + ' ';\r\n ruleObject.day.forEach(function (day, index) {\r\n summary += capitalizeFirstWord(getValue(DAYINDEXOBJECT[day], cldrObj), 'single');\r\n summary += (((ruleObject.day.length - 1) === index) ? '' : ', ');\r\n });\r\n break;\r\n case 'MONTHLY':\r\n summary += localeObject.getConstant(MONTHS) + ' ' + localeObject.getConstant(ON) + ' ';\r\n summary += getMonthSummary(ruleObject, cldrObj, localeObject);\r\n break;\r\n case 'YEARLY':\r\n summary += localeObject.getConstant(YEARS) + ' ' + localeObject.getConstant(ON) + ' ';\r\n summary += capitalizeFirstWord(getValue((ruleObject.month[0]).toString(), cldrObj1), 'single') + ' ';\r\n summary += getMonthSummary(ruleObject, cldrObj, localeObject);\r\n break;\r\n }\r\n if (ruleObject.count) {\r\n summary += ', ' + (ruleObject.count) + ' ' + localeObject.getConstant(TIMES);\r\n }\r\n else if (ruleObject.until) {\r\n var tempDate = ruleObject.until;\r\n summary += ', ' + localeObject.getConstant(UNTIL)\r\n + ' ' + tempDate.getDate()\r\n + ' ' + capitalizeFirstWord(getValue((tempDate.getMonth() + 1).toString(), cldrObj1), 'single')\r\n + ' ' + tempDate.getFullYear();\r\n }\r\n return summary;\r\n}\r\n/**\r\n * Generates Month summary\r\n *\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @param {string[]} cldrObj Accepts the collections of month name from calendar\r\n * @param {L10n} localeObj Accepts the locale object\r\n * @returns {string} Returns the month summary string from given recurrence rule object\r\n * @private\r\n */\r\nfunction getMonthSummary(ruleObject, cldrObj, localeObj) {\r\n var summary = '';\r\n if (ruleObject.monthDay.length) {\r\n summary += ruleObject.monthDay[0];\r\n }\r\n else if (ruleObject.day) {\r\n var pos = ruleObject.setPosition - 1;\r\n summary += localeObj.getConstant(WEEKPOS[pos > -1 ? pos : (WEEKPOS.length - 1)])\r\n + ' ' + capitalizeFirstWord(getValue(DAYINDEXOBJECT[ruleObject.day[0]], cldrObj), 'single');\r\n }\r\n return summary;\r\n}\r\n/**\r\n * Generates the date collections from the given recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the rule start date\r\n * @param {string} rule Accepts the recurrence rule\r\n * @param {string} excludeDate Accepts the exception dates in string format\r\n * @param {number} startDayOfWeek Accepts the start day index of week\r\n * @param {number} maximumCount Accepts the maximum number count to generate date collections\r\n * @param {Date} viewDate Accepts the current date instead of start date\r\n * @param {CalendarType} calendarMode Accepts the calendar type\r\n * @param {string} oldTimezone Accepts the timezone name\r\n * @param {string} newTimezone Accepts the timezone name\r\n * @returns {number[]} Returns the collection of dates\r\n */\r\nexport function generate(startDate, rule, excludeDate, startDayOfWeek, maximumCount, viewDate, calendarMode, oldTimezone, newTimezone) {\r\n if (maximumCount === void 0) { maximumCount = MAXOCCURRENCE; }\r\n if (viewDate === void 0) { viewDate = null; }\r\n if (calendarMode === void 0) { calendarMode = 'Gregorian'; }\r\n if (oldTimezone === void 0) { oldTimezone = null; }\r\n if (newTimezone === void 0) { newTimezone = null; }\r\n var ruleObject = extractObjectFromRule(rule);\r\n var cacheDate;\r\n calendarUtil = getCalendarUtil(calendarMode);\r\n var data = [];\r\n var modifiedDate = new Date(startDate.getTime());\r\n tempExcludeDate = [];\r\n var tempDate = isNullOrUndefined(excludeDate) ? [] : excludeDate.split(',');\r\n var tz = new Timezone();\r\n tempDate.forEach(function (content) {\r\n var parsedDate = getDateFromRecurrenceDateString(content);\r\n if (oldTimezone && newTimezone) {\r\n parsedDate = tz.convert(new Date(parsedDate.getTime()), oldTimezone, newTimezone);\r\n }\r\n tempExcludeDate.push(new Date(parsedDate.getTime()).setHours(0, 0, 0, 0));\r\n });\r\n ruleObject.recExceptionCount = !isNullOrUndefined(ruleObject.count) ? tempExcludeDate.length : 0;\r\n if (viewDate && viewDate > startDate && !ruleObject.count) {\r\n tempViewDate = new Date(new Date(viewDate.getTime()).setHours(0, 0, 0));\r\n }\r\n else {\r\n tempViewDate = null;\r\n }\r\n if (!ruleObject.until && tempViewDate) {\r\n cacheDate = new Date(tempViewDate.getTime());\r\n cacheDate.setDate(tempViewDate.getDate() + maximumCount * (ruleObject.interval));\r\n ruleObject.until = cacheDate;\r\n }\r\n if (ruleObject.until && startDate > ruleObject.until) {\r\n return data;\r\n }\r\n maxOccurrence = maximumCount;\r\n setFirstDayOfWeek(DAYINDEX[startDayOfWeek]);\r\n switch (ruleObject.freq) {\r\n case 'DAILY':\r\n dailyType(modifiedDate, ruleObject.until, data, ruleObject);\r\n break;\r\n case 'WEEKLY':\r\n weeklyType(modifiedDate, ruleObject.until, data, ruleObject);\r\n break;\r\n case 'MONTHLY':\r\n monthlyType(modifiedDate, ruleObject.until, data, ruleObject);\r\n break;\r\n case 'YEARLY':\r\n yearlyType(modifiedDate, ruleObject.until, data, ruleObject);\r\n }\r\n return data;\r\n}\r\n/**\r\n * Generate date object from given date string\r\n *\r\n * @param {string} recDateString Accepts the exception date as string\r\n * @returns {Date} Returns the date from exception date string\r\n */\r\nexport function getDateFromRecurrenceDateString(recDateString) {\r\n return new Date(recDateString.substr(0, 4) +\r\n '-' + recDateString.substr(4, 2) +\r\n '-' + recDateString.substr(6, 5) +\r\n ':' + recDateString.substr(11, 2) +\r\n ':' + recDateString.substr(13));\r\n}\r\n/**\r\n * Internal method to handle exclude date\r\n *\r\n * @param {number[]} data Accepts the exception date collections\r\n * @param {number} date Accepts the new exclude date\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction excludeDateHandler(data, date) {\r\n var zeroIndex = new Date(date).setHours(0, 0, 0, 0);\r\n if (tempExcludeDate.indexOf(zeroIndex) === -1 && (!tempViewDate || zeroIndex >= tempViewDate.getTime())) {\r\n data.push(date);\r\n }\r\n}\r\n/**\r\n * Internal method for get date count\r\n *\r\n * @param {Date} startDate Accepts the date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {number} Returns the number of date count\r\n * @private\r\n */\r\nfunction getDateCount(startDate, ruleObject) {\r\n var count = maxOccurrence;\r\n if (ruleObject.count) {\r\n count = ruleObject.count;\r\n }\r\n else if (ruleObject.until) {\r\n if (ruleObject.freq === 'DAILY' || ruleObject.freq === 'WEEKLY') {\r\n count = Math.floor((ruleObject.until.getTime() - startDate.getTime()) / MS_PER_DAY) + 1;\r\n }\r\n else if (ruleObject.freq === 'MONTHLY' || ruleObject.freq === 'YEARLY') {\r\n count = Math.floor(((ruleObject.until.getMonth() + 12 * ruleObject.until.getFullYear()) -\r\n (startDate.getMonth() + 12 * startDate.getFullYear())) / ruleObject.interval) +\r\n (ruleObject.day.length > 1 ? (Math.floor((ruleObject.until.getTime() - startDate.getTime()) / MS_PER_DAY) + 1) : 1);\r\n if (ruleObject.freq === 'YEARLY') {\r\n count = ruleObject.month.length > 1 ? (count * ruleObject.month.length) : count;\r\n }\r\n }\r\n }\r\n return count;\r\n}\r\n/**\r\n * Internal method for daily type recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction dailyType(startDate, endDate, data, ruleObject) {\r\n var tempDate = new Date(startDate.getTime());\r\n var interval = ruleObject.interval;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var state;\r\n var expectedDays = ruleObject.day;\r\n while (compareDates(tempDate, endDate)) {\r\n state = true;\r\n state = validateRules(tempDate, ruleObject);\r\n if (state && (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1 || expectedDays.length === 0)) {\r\n excludeDateHandler(data, tempDate.getTime());\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n break;\r\n }\r\n }\r\n tempDate.setDate(tempDate.getDate() + interval);\r\n }\r\n}\r\n/**\r\n * Internal method for weekly type recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction weeklyType(startDate, endDate, data, ruleObject) {\r\n var tempDate = new Date(startDate.getTime());\r\n if (!ruleObject.day.length) {\r\n ruleObject.day.push(DAYINDEX[startDate.getDay()]);\r\n }\r\n var interval = ruleObject.interval;\r\n var expectedDays = ruleObject.day;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var weekState = true;\r\n var wkstIndex;\r\n var weekCollection = [];\r\n if (expectedDays.length > 1) {\r\n if (isNullOrUndefined(ruleObject.wkst) || ruleObject.wkst === '') {\r\n ruleObject.wkst = dayIndex[0];\r\n }\r\n wkstIndex = DAYINDEX.indexOf(ruleObject.wkst);\r\n while (compareDates(tempDate, endDate)) {\r\n var startDateDiff = DAYINDEX.indexOf(DAYINDEX[tempDate.getDay()]) - wkstIndex;\r\n startDateDiff = startDateDiff === -1 ? 6 : startDateDiff;\r\n var weekstartDate = addDays(tempDate, -startDateDiff);\r\n var weekendDate = addDays(weekstartDate, 6);\r\n var compareTempDate = new Date(tempDate.getTime());\r\n weekendDate = resetTime(weekendDate);\r\n compareTempDate = resetTime(compareTempDate);\r\n while (weekendDate >= compareTempDate) {\r\n if (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\r\n weekCollection.push([tempDate.getTime()]);\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n break;\r\n }\r\n tempDate.setDate(tempDate.getDate() + 1);\r\n compareTempDate = new Date(tempDate.getTime());\r\n compareTempDate = resetTime(compareTempDate);\r\n }\r\n tempDate.setDate(tempDate.getDate() - 1);\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n break;\r\n }\r\n tempDate.setDate((tempDate.getDate()) + 1 + ((interval - 1) * 7));\r\n insertDataCollection(weekCollection, weekState, startDate, endDate, data, ruleObject);\r\n weekCollection = [];\r\n }\r\n }\r\n else {\r\n tempDate = getStartDateForWeek(startDate, ruleObject.day);\r\n while (compareDates(tempDate, endDate)) {\r\n weekState = validateRules(tempDate, ruleObject);\r\n if (weekState && (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1)) {\r\n excludeDateHandler(data, tempDate.getTime());\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n break;\r\n }\r\n tempDate.setDate(tempDate.getDate() + (interval * 7));\r\n }\r\n insertDataCollection(weekCollection, weekState, startDate, endDate, data, ruleObject);\r\n weekCollection = [];\r\n }\r\n}\r\n/**\r\n * Internal method for monthly type recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction monthlyType(startDate, endDate, data, ruleObject) {\r\n // Set monthday value if BYDAY, BYMONTH and Month day property is not set based on start date\r\n if (!ruleObject.month.length && !ruleObject.day.length && !ruleObject.monthDay.length) {\r\n ruleObject.monthDay.push(startDate.getDate());\r\n if (ruleObject.freq === 'YEARLY') {\r\n ruleObject.month.push(startDate.getMonth() + 1);\r\n }\r\n }\r\n else if (ruleObject.month.length > 0 && !ruleObject.day.length && !ruleObject.monthDay.length) {\r\n ruleObject.monthDay.push(startDate.getDate());\r\n }\r\n var ruleType = validateMonthlyRuleType(ruleObject);\r\n switch (ruleType) {\r\n case 'day':\r\n switch (ruleObject.freq) {\r\n case 'MONTHLY':\r\n monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\r\n break;\r\n case 'YEARLY':\r\n monthlyDayTypeProcess(startDate, endDate, data, ruleObject);\r\n break;\r\n }\r\n break;\r\n case 'both':\r\n case 'date':\r\n switch (ruleObject.freq) {\r\n case 'MONTHLY':\r\n monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\r\n break;\r\n case 'YEARLY':\r\n monthlyDateTypeProcess(startDate, endDate, data, ruleObject);\r\n break;\r\n }\r\n break;\r\n }\r\n}\r\n/**\r\n * Internal method for yearly type recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction yearlyType(startDate, endDate, data, ruleObject) {\r\n var typeValue = checkYearlyType(ruleObject);\r\n switch (typeValue) {\r\n case 'MONTH':\r\n monthlyType(startDate, endDate, data, ruleObject);\r\n break;\r\n case 'WEEKNO':\r\n processWeekNo(startDate, endDate, data, ruleObject);\r\n break;\r\n case 'YEARDAY':\r\n processYearDay(startDate, endDate, data, ruleObject);\r\n break;\r\n }\r\n}\r\n/**\r\n * Internal method for process week no\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction processWeekNo(startDate, endDate, data, ruleObject) {\r\n var stDate = calendarUtil.getYearLastDate(startDate, 0);\r\n var tempDate;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var state;\r\n var startDay;\r\n var firstWeekSpan;\r\n var weekNos = ruleObject.weekNo;\r\n var weekNo;\r\n var maxDate;\r\n var minDate;\r\n var weekCollection = [];\r\n var expectedDays = ruleObject.day;\r\n while (compareDates(stDate, endDate)) {\r\n startDay = dayIndex.indexOf(DAYINDEX[stDate.getDay()]);\r\n firstWeekSpan = (6 - startDay) + 1;\r\n for (var index = 0; index < weekNos.length; index++) {\r\n weekNo = weekNos[index];\r\n weekNo = (weekNo > 0) ? weekNo : 53 + weekNo + 1;\r\n maxDate = (weekNo === 1) ? firstWeekSpan : firstWeekSpan + ((weekNo - 1) * 7);\r\n minDate = (weekNo === 1) ? firstWeekSpan - 7 : firstWeekSpan + ((weekNo - 2) * 7);\r\n while (minDate < maxDate) {\r\n tempDate = new Date(stDate.getTime() + (MS_PER_DAY * minDate));\r\n if (expectedDays.length === 0 || expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\r\n if (isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDateCollection(state, startDate, endDate, data, ruleObject, tempDate.getTime());\r\n }\r\n else {\r\n weekCollection.push([tempDate.getTime()]);\r\n }\r\n }\r\n minDate++;\r\n }\r\n }\r\n if (!isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDatasIntoExistingCollection(weekCollection, state, startDate, endDate, data, ruleObject);\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n stDate = calendarUtil.getYearLastDate(tempDate, ruleObject.interval);\r\n weekCollection = [];\r\n }\r\n}\r\n/**\r\n * Internal method for process year day\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction processYearDay(startDate, endDate, data, ruleObject) {\r\n var stDate = calendarUtil.getYearLastDate(startDate, 0);\r\n var tempDate;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var state;\r\n var dateCollection = [];\r\n var date;\r\n var expectedDays = ruleObject.day;\r\n while (compareDates(stDate, endDate)) {\r\n for (var index = 0; index < ruleObject.yearDay.length; index++) {\r\n date = ruleObject.yearDay[index];\r\n tempDate = new Date(stDate.getTime());\r\n if ((date === calendarUtil.getLeapYearDaysCount() || date === -calendarUtil.getLeapYearDaysCount()) &&\r\n (!calendarUtil.isLeapYear(calendarUtil.getFullYear(tempDate), 1))) {\r\n tempDate.setDate(tempDate.getDate() + 1);\r\n continue;\r\n }\r\n tempDate.setDate(tempDate.getDate() + ((date < 0) ?\r\n calendarUtil.getYearDaysCount(tempDate, 1) + 1 + date : date));\r\n if (expectedDays.length === 0 || expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\r\n if (ruleObject.setPosition == null) {\r\n insertDateCollection(state, startDate, endDate, data, ruleObject, tempDate.getTime());\r\n }\r\n else {\r\n dateCollection.push([tempDate.getTime()]);\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDatasIntoExistingCollection(dateCollection, state, startDate, endDate, data, ruleObject);\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n stDate = calendarUtil.getYearLastDate(tempDate, ruleObject.interval);\r\n dateCollection = [];\r\n }\r\n}\r\n/**\r\n * Internal method to check yearly type\r\n *\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {YearRuleType} Returns the Yearly rule type object\r\n * @private\r\n */\r\nfunction checkYearlyType(ruleObject) {\r\n if (ruleObject.yearDay.length) {\r\n return 'YEARDAY';\r\n }\r\n else if (ruleObject.weekNo.length) {\r\n return 'WEEKNO';\r\n }\r\n return 'MONTH';\r\n}\r\n/**\r\n * Internal method to initialize recurrence rule variables\r\n *\r\n * @param {Date} startDate Accepts the start date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {RuleData} Return the rule data object\r\n * @private\r\n */\r\nfunction initializeRecRuleVariables(startDate, ruleObject) {\r\n var ruleData = {\r\n monthCollection: [],\r\n index: 0,\r\n tempDate: new Date(startDate.getTime()),\r\n mainDate: new Date(startDate.getTime()),\r\n expectedCount: getDateCount(startDate, ruleObject),\r\n monthInit: 0,\r\n dateCollection: []\r\n };\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(ruleData.tempDate, ruleObject.month[0], ruleData.tempDate.getDate());\r\n }\r\n return ruleData;\r\n}\r\n/**\r\n * Internal method for process monthly date type recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction monthlyDateTypeProcess(startDate, endDate, data, ruleObject) {\r\n if (ruleObject.month.length) {\r\n monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\r\n return;\r\n }\r\n var ruleData = initializeRecRuleVariables(startDate, ruleObject);\r\n var currentMonthDate;\r\n ruleData.tempDate = ruleData.mainDate = calendarUtil.getMonthStartDate(ruleData.tempDate);\r\n while (compareDates(ruleData.tempDate, endDate)) {\r\n currentMonthDate = new Date(ruleData.tempDate.getTime());\r\n while (calendarUtil.isSameYear(currentMonthDate, ruleData.tempDate) &&\r\n (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) <= ruleData.expectedCount)) {\r\n if (ruleObject.month.length === 0 || (ruleObject.month.length > 0\r\n && !calendarUtil.checkMonth(ruleData.tempDate, ruleObject.month))) {\r\n processDateCollectionForByMonthDay(ruleObject, ruleData, endDate, false);\r\n ruleData.beginDate = new Date(ruleData.tempDate.getTime());\r\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\r\n }\r\n else {\r\n calendarUtil.setValidDate(ruleData.tempDate, 1, 1);\r\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\r\n break;\r\n }\r\n }\r\n ruleData.tempDate.setFullYear(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), currentMonthDate.getDate());\r\n insertDataCollection(ruleData.dateCollection, ruleData.state, startDate, endDate, data, ruleObject);\r\n if (calendarUtil.isLastMonth(ruleData.tempDate)) {\r\n calendarUtil.setValidDate(ruleData.tempDate, 1, 1);\r\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\r\n }\r\n if (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) >= ruleData.expectedCount) {\r\n return;\r\n }\r\n ruleData.tempDate.setFullYear(ruleData.tempDate.getFullYear() + ruleObject.interval - 1);\r\n ruleData.tempDate = getStartDateForWeek(ruleData.tempDate, ruleObject.day);\r\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\r\n ruleData.dateCollection = [];\r\n }\r\n}\r\n/**\r\n * Internal method for process monthly date type with month frequency from recurrence rule\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction monthlyDateTypeProcessforMonthFreq(startDate, endDate, data, ruleObject) {\r\n var ruleData = initializeRecRuleVariables(startDate, ruleObject);\r\n ruleData.tempDate = ruleData.mainDate = calendarUtil.getMonthStartDate(ruleData.tempDate);\r\n if (((ruleObject.freq === 'MONTHLY' && ruleObject.interval === 12) || (ruleObject.freq === 'YEARLY')) &&\r\n calendarUtil.getMonthDaysCount(startDate) < ruleObject.monthDay[0]) {\r\n return;\r\n }\r\n while (compareDates(ruleData.tempDate, endDate)) {\r\n ruleData.beginDate = new Date(ruleData.tempDate.getTime());\r\n processDateCollectionForByMonthDay(ruleObject, ruleData, endDate, true, startDate, data);\r\n if (!isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDatasIntoExistingCollection(ruleData.dateCollection, ruleData.state, startDate, endDate, data, ruleObject);\r\n }\r\n if (ruleData.expectedCount && (data.length + ruleObject.recExceptionCount) >= ruleData.expectedCount) {\r\n return;\r\n }\r\n ruleData.monthInit = setNextValidDate(ruleData.tempDate, ruleObject, ruleData.monthInit, ruleData.beginDate);\r\n ruleData.dateCollection = [];\r\n }\r\n}\r\n/**\r\n * To process date collection for Monthly & Yearly based on BYMONTH Day property\r\n *\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @param {RuleData} recRuleVariables Accepts the rule data\r\n * @param {Date} endDate Accepts the end date\r\n * @param {boolean} isByMonth Accepts the boolean to validate either month or not\r\n * @param {Date} startDate Accepts the start date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction processDateCollectionForByMonthDay(ruleObject, recRuleVariables, endDate, isByMonth, startDate, data) {\r\n for (var index = 0; index < ruleObject.monthDay.length; index++) {\r\n recRuleVariables.date = ruleObject.monthDay[index];\r\n recRuleVariables.tempDate = calendarUtil.getMonthStartDate(recRuleVariables.tempDate);\r\n var maxDate = calendarUtil.getMonthDaysCount(recRuleVariables.tempDate);\r\n recRuleVariables.date = recRuleVariables.date > 0 ? recRuleVariables.date : (maxDate + recRuleVariables.date + 1);\r\n if (validateProperDate(recRuleVariables.tempDate, recRuleVariables.date, recRuleVariables.mainDate)\r\n && (recRuleVariables.date > 0)) {\r\n calendarUtil.setDate(recRuleVariables.tempDate, recRuleVariables.date);\r\n if (endDate && recRuleVariables.tempDate > endDate) {\r\n return;\r\n }\r\n if (ruleObject.day.length === 0 || ruleObject.day.indexOf(DAYINDEX[recRuleVariables.tempDate.getDay()]) > -1) {\r\n if (isByMonth && isNullOrUndefined(ruleObject.setPosition) && (recRuleVariables.expectedCount\r\n && (data.length + ruleObject.recExceptionCount) < recRuleVariables.expectedCount)) {\r\n insertDateCollection(recRuleVariables.state, startDate, endDate, data, ruleObject, recRuleVariables.tempDate.getTime());\r\n }\r\n else {\r\n recRuleVariables.dateCollection.push([recRuleVariables.tempDate.getTime()]);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Internal method to set next valid date\r\n *\r\n * @param {Date} tempDate Accepts the date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @param {number} monthInit Accepts the initial month\r\n * @param {Date} beginDate Accepts the initial date\r\n * @param {number} interval Accepts the interval duration\r\n * @returns {number} Returnx the next valid date\r\n * @private\r\n */\r\nfunction setNextValidDate(tempDate, ruleObject, monthInit, beginDate, interval) {\r\n if (beginDate === void 0) { beginDate = null; }\r\n var monthData = beginDate ? beginDate.getMonth() : 0;\r\n var startDate = calendarUtil.getMonthStartDate(tempDate);\r\n interval = isNullOrUndefined(interval) ? ruleObject.interval : interval;\r\n tempDate.setFullYear(startDate.getFullYear());\r\n tempDate.setMonth(startDate.getMonth());\r\n tempDate.setDate(startDate.getDate());\r\n if (ruleObject.month.length) {\r\n monthInit++;\r\n monthInit = monthInit % ruleObject.month.length;\r\n calendarUtil.setMonth(tempDate, ruleObject.month[monthInit], 1);\r\n if (monthInit === 0) {\r\n calendarUtil.addYears(tempDate, interval, ruleObject.month[0]);\r\n }\r\n }\r\n else {\r\n if (beginDate && (beginDate.getFullYear() < tempDate.getFullYear())) {\r\n monthData = tempDate.getMonth() - 1;\r\n }\r\n calendarUtil.setValidDate(tempDate, interval, 1, monthData, beginDate);\r\n }\r\n return monthInit;\r\n}\r\n/**\r\n * To get month collection when BYDAY property having more than one value in list.\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction getMonthCollection(startDate, endDate, data, ruleObject) {\r\n var expectedDays = ruleObject.day;\r\n var tempDate = new Date(startDate.getTime());\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n var monthCollection = [];\r\n var dateCollection = [];\r\n var dates = [];\r\n var index;\r\n var state;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var monthInit = 0;\r\n var beginDate;\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\r\n }\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n while (compareDates(tempDate, endDate)\r\n && (expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount)) {\r\n var currentMonthDate = new Date(tempDate.getTime());\r\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\r\n if (isHavingNumber.indexOf(true) > -1) {\r\n for (var j = 0; j <= expectedDays.length - 1; j++) {\r\n var expectedDaysArray = expectedDays[j].match(SPLITNUMBERANDSTRING);\r\n var position = parseInt(expectedDaysArray[0], 10);\r\n tempDate = new Date(tempDate.getTime());\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n tempDate = getStartDateForWeek(tempDate, expectedDays);\r\n currentMonthDate.setFullYear(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());\r\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) && calendarUtil.isSameMonth(currentMonthDate, tempDate)) {\r\n if (expectedDaysArray[expectedDaysArray.length - 1] === DAYINDEX[currentMonthDate.getDay()]) {\r\n monthCollection.push([currentMonthDate.getTime()]);\r\n }\r\n currentMonthDate.setDate(currentMonthDate.getDate() + (1));\r\n }\r\n currentMonthDate.setDate(currentMonthDate.getDate() - (1));\r\n if (expectedDaysArray[0].indexOf('-') > -1) {\r\n index = monthCollection.length - (-1 * position);\r\n }\r\n else {\r\n index = position - 1;\r\n }\r\n index = isNaN(index) ? 0 : index;\r\n if (monthCollection.length > 0) {\r\n if (isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\r\n }\r\n else {\r\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, dates))];\r\n }\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n monthCollection = [];\r\n }\r\n if (!isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\r\n dates = [];\r\n }\r\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n monthCollection = [];\r\n }\r\n else {\r\n var weekCollection = [];\r\n var dayCycleData = processWeekDays(expectedDays);\r\n currentMonthDate.setFullYear(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate());\r\n var initialDate = new Date(tempDate.getTime());\r\n beginDate = new Date(tempDate.getTime());\r\n while (calendarUtil.isSameMonth(initialDate, tempDate)) {\r\n weekCollection.push(tempDate.getTime());\r\n if (expectedDays.indexOf(DAYINDEX[tempDate.getDay()]) > -1) {\r\n monthCollection.push(weekCollection);\r\n weekCollection = [];\r\n }\r\n tempDate.setDate(tempDate.getDate()\r\n + dayCycleData[DAYINDEX[tempDate.getDay()]]);\r\n }\r\n index = ((ruleObject.setPosition < 1) ? (monthCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\r\n if (isNullOrUndefined(ruleObject.setPosition)) {\r\n index = 0;\r\n var datas = [];\r\n for (var week = 0; week < monthCollection.length; week++) {\r\n for (var row = 0; row < monthCollection[week].length; row++) {\r\n datas.push(monthCollection[week][row]);\r\n }\r\n }\r\n monthCollection = [datas];\r\n }\r\n if (monthCollection.length > 0) {\r\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n monthCollection = [];\r\n }\r\n }\r\n}\r\n/**\r\n * To process monday day type for FREQ=MONTHLY\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject) {\r\n var expectedDays = ruleObject.day;\r\n // When BYDAY property having more than 1 value.\r\n if (expectedDays.length > 1) {\r\n getMonthCollection(startDate, endDate, data, ruleObject);\r\n return;\r\n }\r\n var tempDate = new Date(startDate.getTime());\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var monthCollection = [];\r\n var beginDate;\r\n var monthInit = 0;\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\r\n }\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n while (compareDates(tempDate, endDate) && (expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount)) {\r\n beginDate = new Date(tempDate.getTime());\r\n var currentMonthDate = new Date(tempDate.getTime());\r\n while (calendarUtil.isSameMonth(tempDate, currentMonthDate)) {\r\n monthCollection.push([currentMonthDate.getTime()]);\r\n currentMonthDate.setDate(currentMonthDate.getDate() + (7));\r\n }\r\n // To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\r\n insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject);\r\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n monthCollection = [];\r\n }\r\n}\r\n/**\r\n * To process monday day type for FREQ=YEARLY\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction monthlyDayTypeProcess(startDate, endDate, data, ruleObject) {\r\n var expectedDays = ruleObject.day;\r\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\r\n // If BYDAY property having more than 1 value in list\r\n if (expectedDays.length > 1 && isHavingNumber.indexOf(true) > -1) {\r\n processDateCollectionforByDayWithInteger(startDate, endDate, data, ruleObject);\r\n return;\r\n }\r\n else if (ruleObject.month.length && expectedDays.length === 1 && isHavingNumber.indexOf(true) > -1) {\r\n monthlyDayTypeProcessforMonthFreq(startDate, endDate, data, ruleObject);\r\n return;\r\n }\r\n var tempDate = new Date(startDate.getTime());\r\n var currentMonthDate;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var interval = ruleObject.interval;\r\n var monthCollection = [];\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(tempDate, ruleObject.month[0], tempDate.getDate());\r\n }\r\n // Set the date as start date of the yeear if yearly freq having ByDay property alone\r\n if (isNullOrUndefined(ruleObject.setPosition) && ruleObject.month.length === 0 && ruleObject.weekNo.length === 0) {\r\n tempDate.setFullYear(startDate.getFullYear(), 0, 1);\r\n }\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n while (compareDates(tempDate, endDate)) {\r\n currentMonthDate = new Date(tempDate.getTime());\r\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) &&\r\n (expectedCount && (data.length + ruleObject.recExceptionCount) <= expectedCount)) {\r\n currentMonthDate = new Date(tempDate.getTime());\r\n while (calendarUtil.isSameYear(currentMonthDate, tempDate)) {\r\n if (ruleObject.month.length === 0 || (ruleObject.month.length > 0\r\n && !calendarUtil.checkMonth(tempDate, ruleObject.month))) {\r\n if (expectedDays.length > 1) {\r\n if (calendarUtil.compareMonth(currentMonthDate, tempDate)) {\r\n calendarUtil.setValidDate(tempDate, 1, 1);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n break;\r\n }\r\n if (expectedDays.indexOf(DAYINDEX[currentMonthDate.getDay()]) > -1) {\r\n monthCollection.push([currentMonthDate.getTime()]);\r\n }\r\n currentMonthDate.setDate(currentMonthDate.getDate() + (1));\r\n }\r\n else {\r\n // If BYDAY property having 1 value in list\r\n if (currentMonthDate.getFullYear() > tempDate.getFullYear()) {\r\n calendarUtil.setValidDate(tempDate, 1, 1);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n break;\r\n }\r\n var newstr = getDayString(expectedDays[0]);\r\n if (DAYINDEX[currentMonthDate.getDay()] === newstr\r\n && new Date(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), 0)\r\n > new Date(startDate.getFullYear())) {\r\n monthCollection.push([currentMonthDate.getTime()]);\r\n }\r\n currentMonthDate.setDate(currentMonthDate.getDate() + (7));\r\n }\r\n }\r\n else {\r\n calendarUtil.setValidDate(tempDate, 1, 1);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n break;\r\n }\r\n }\r\n }\r\n tempDate.setFullYear(currentMonthDate.getFullYear(), currentMonthDate.getMonth(), currentMonthDate.getDate());\r\n // To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\r\n insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject);\r\n if (calendarUtil.isLastMonth(tempDate)) {\r\n calendarUtil.setValidDate(tempDate, 1, 1);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n }\r\n tempDate.setFullYear(tempDate.getFullYear() + interval - 1);\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n monthCollection = [];\r\n }\r\n}\r\n/**\r\n * To process the recurrence rule when BYDAY property having values with integer\r\n *\r\n * @param {Date} startDate Accepts the strat date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of dates\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction processDateCollectionforByDayWithInteger(startDate, endDate, data, ruleObject) {\r\n var expectedDays = ruleObject.day;\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var tempDate = new Date(startDate.getTime());\r\n var interval = ruleObject.interval;\r\n var monthCollection = [];\r\n var dateCollection = [];\r\n var index;\r\n var state;\r\n var monthInit = 0;\r\n var currentMonthDate;\r\n var currentDate;\r\n var beginDate;\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n var datas = [];\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(tempDate, ruleObject.month[0], 1);\r\n }\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n while (compareDates(tempDate, endDate)) {\r\n currentMonthDate = new Date(tempDate.getTime());\r\n for (var i = 0; i <= ruleObject.month.length; i++) {\r\n for (var j = 0; j <= expectedDays.length - 1; j++) {\r\n tempDate = calendarUtil.getMonthStartDate(tempDate);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n monthCollection = [];\r\n while (calendarUtil.isSameYear(currentMonthDate, tempDate) &&\r\n (expectedCount && (data.length + ruleObject.recExceptionCount) <= expectedCount)) {\r\n while (calendarUtil.isSameYear(currentMonthDate, tempDate)) {\r\n currentMonthDate = new Date(tempDate.getTime());\r\n if (ruleObject.month.length === 0 ||\r\n (ruleObject.month.length > 0 && ruleObject.month[i] === calendarUtil.getMonth(currentMonthDate))) {\r\n var expectedDaysArray = expectedDays[j].match(SPLITNUMBERANDSTRING);\r\n var position = parseInt(expectedDaysArray[0], 10);\r\n currentDate = new Date(tempDate.getTime());\r\n while (calendarUtil.isSameYear(currentDate, tempDate)\r\n && calendarUtil.isSameMonth(currentDate, tempDate)) {\r\n if (expectedDaysArray[expectedDaysArray.length - 1] === DAYINDEX[currentDate.getDay()]) {\r\n monthCollection.push([currentDate.getTime()]);\r\n }\r\n currentDate.setDate(currentDate.getDate() + (1));\r\n }\r\n currentDate.setDate(currentDate.getDate() - (1));\r\n if (expectedDaysArray[0].indexOf('-') > -1) {\r\n index = monthCollection.length - (-1 * position);\r\n }\r\n else {\r\n index = position - 1;\r\n }\r\n index = isNaN(index) ? 0 : index;\r\n }\r\n monthInit = setNextValidDate(tempDate, ruleObject, monthInit, beginDate, 1);\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n }\r\n }\r\n tempDate = j === 0 && currentDate ? new Date(currentDate.getTime()) : new Date(currentMonthDate.getTime());\r\n if (monthCollection.length > 0) {\r\n if (isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\r\n }\r\n else {\r\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, datas))];\r\n }\r\n }\r\n if (expectedCount && (data.length + ruleObject.recExceptionCount) >= expectedCount) {\r\n return;\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(ruleObject.setPosition)) {\r\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\r\n datas = [];\r\n }\r\n if (calendarUtil.isLastMonth(tempDate)) {\r\n calendarUtil.setValidDate(tempDate, 1, 1);\r\n tempDate.setFullYear(tempDate.getFullYear() + interval - 1);\r\n }\r\n else {\r\n tempDate.setFullYear(tempDate.getFullYear() + interval);\r\n }\r\n tempDate = getStartDateForWeek(tempDate, ruleObject.day);\r\n if (ruleObject.month.length) {\r\n calendarUtil.setMonth(tempDate, ruleObject.month[0], tempDate.getDate());\r\n }\r\n }\r\n}\r\n/**\r\n * To get recurrence collection if BYSETPOS is null\r\n *\r\n * @param {number[]} monthCollection Accepts the month collection dates\r\n * @param {string[]} expectedDays Accepts the exception dates\r\n * @returns {RuleData} Returns the rule data object\r\n * @private\r\n */\r\nfunction getRecurrenceCollection(monthCollection, expectedDays) {\r\n var index;\r\n var recurrenceCollectionObject = { monthCollection: [], index: 0 };\r\n if (expectedDays.length === 1) {\r\n // To split numeric value from BYDAY property value\r\n var expectedDaysArrays = expectedDays[0].match(SPLITNUMBERANDSTRING);\r\n var arrPosition = void 0;\r\n if (expectedDaysArrays.length > 1) {\r\n arrPosition = parseInt(expectedDaysArrays[0], 10);\r\n index = ((arrPosition < 1) ? (monthCollection.length + arrPosition) : arrPosition - 1);\r\n }\r\n else {\r\n index = 0;\r\n monthCollection = getDateCollectionforBySetPosNull(monthCollection);\r\n }\r\n }\r\n else {\r\n index = 0;\r\n monthCollection = getDateCollectionforBySetPosNull(monthCollection);\r\n }\r\n recurrenceCollectionObject.monthCollection = monthCollection;\r\n recurrenceCollectionObject.index = index;\r\n return recurrenceCollectionObject;\r\n}\r\n/**\r\n * Internal method to process the data collections\r\n *\r\n * @param {number[]} dateCollection Accepts the date collections\r\n * @param {boolean} state Accepts the state\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of numbers\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction insertDataCollection(dateCollection, state, startDate, endDate, data, ruleObject) {\r\n var index = ((ruleObject.setPosition < 1) ?\r\n (dateCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\r\n if (isNullOrUndefined(ruleObject.setPosition)) {\r\n index = 0;\r\n dateCollection = getDateCollectionforBySetPosNull(dateCollection);\r\n }\r\n if (dateCollection.length > 0) {\r\n insertDatasIntoExistingCollection(dateCollection, state, startDate, endDate, data, ruleObject, index);\r\n }\r\n}\r\n/**\r\n * To process month collection if BYSETPOS is null\r\n *\r\n * @param {number[]} monthCollection Accepts the month date collections\r\n * @returns {number[]} Returns the month date collections\r\n * @private\r\n */\r\nfunction getDateCollectionforBySetPosNull(monthCollection) {\r\n var datas = [];\r\n for (var week = 0; week < monthCollection.length; week++) {\r\n for (var row = 0; row < monthCollection[week].length; row++) {\r\n datas.push(new Date(monthCollection[week][row]).getTime());\r\n }\r\n }\r\n monthCollection = datas.length > 0 ? [datas] : [];\r\n return monthCollection;\r\n}\r\n/**\r\n * To filter date collection based on BYDAY Index, then BYSETPOS and to insert datas into existing collection\r\n *\r\n * @param {number[]} monthCollection Accepts the month date collections\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the date collections\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction insertDateCollectionBasedonIndex(monthCollection, startDate, endDate, data, ruleObject) {\r\n var expectedDays = ruleObject.day;\r\n var state;\r\n var datas = [];\r\n var dateCollection = [];\r\n var recurrenceCollections = getRecurrenceCollection(monthCollection, expectedDays);\r\n monthCollection = recurrenceCollections.monthCollection;\r\n var index = recurrenceCollections.index;\r\n if (ruleObject.setPosition != null) {\r\n dateCollection = [(filterDateCollectionByIndex(monthCollection, index, datas))];\r\n insertDateCollectionBasedonBySetPos(dateCollection, state, startDate, endDate, data, ruleObject);\r\n }\r\n else {\r\n if (monthCollection.length > 0) {\r\n insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index);\r\n }\r\n }\r\n datas = [];\r\n}\r\n/**\r\n * To filter date collection when BYDAY property having values with number\r\n *\r\n * @param {number[]} monthCollection Accepts the date collections\r\n * @param {number} index Accepts the index of date collections\r\n * @param {number[]} datas Accepts the collection of dates\r\n * @returns {number[]} Returns the collection of dates\r\n * @private\r\n */\r\nfunction filterDateCollectionByIndex(monthCollection, index, datas) {\r\n for (var week = 0; week < monthCollection[index].length; week++) {\r\n datas.push(monthCollection[index][week]);\r\n }\r\n return datas;\r\n}\r\n/**\r\n * To insert processed date collection in final array element\r\n *\r\n * @param {boolean} state Accepts the state of the recurrence rule\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @param {number} dayData Accepts the date index\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction insertDateCollection(state, startDate, endDate, data, ruleObject, dayData) {\r\n var expectedCount = getDateCount(startDate, ruleObject);\r\n var chDate = new Date(dayData);\r\n state = validateRules(chDate, ruleObject);\r\n if ((chDate >= startDate) && compareDates(chDate, endDate) && state\r\n && expectedCount && (data.length + ruleObject.recExceptionCount) < expectedCount) {\r\n excludeDateHandler(data, dayData);\r\n }\r\n}\r\n/**\r\n * Return the last week number of given month and year.\r\n *\r\n * @param {number} year Accepts the Year in number format\r\n * @param {number} startDayOfWeek Accepts the start date\r\n * @param {number[]} monthCollection Accepts the collection of dates\r\n * @param {number} week Accepts the week in number format\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {number} returns week number\r\n * @private\r\n */\r\nfunction weekCount(year, startDayOfWeek, monthCollection, week, ruleObject) {\r\n var firstDayOfWeek = startDayOfWeek || 0;\r\n var firstOfMonth = new Date(year, ruleObject.month[0] - 1, 1);\r\n var lastOfMonth = new Date(year, ruleObject.month[0] - 1, 0);\r\n var numberOfDaysInMonth = lastOfMonth.getDate();\r\n var firstWeekDay = (firstOfMonth.getDay() - firstDayOfWeek + 7) % 7;\r\n var used = firstWeekDay + numberOfDaysInMonth;\r\n var count = Math.ceil(used / 7) - 1;\r\n var dayData = monthCollection[week][count];\r\n var chDate = new Date(dayData);\r\n var state = validateRules(chDate, ruleObject);\r\n return (state) ? count : count - 1;\r\n}\r\n/**\r\n * To process date collection based on Byset position after process the collection based on BYDAY property value index: EX:BYDAY=1SUm-1SU\r\n *\r\n * @param {number[]} monthCollection Accepts the collection of dates\r\n * @param {boolean} state Accepts the state of the recurrence rule\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction insertDateCollectionBasedonBySetPos(monthCollection, state, startDate, endDate, data, ruleObject) {\r\n if (monthCollection.length > 0) {\r\n for (var week = 0; week < monthCollection.length; week++) {\r\n monthCollection[week].sort();\r\n var expectedDays = ruleObject.day;\r\n var isHavingNumber = expectedDays.map(function (item) { return HASNUMBER.test(item); });\r\n var weekIndex = (ruleObject.freq === 'YEARLY' && (ruleObject.validRules.indexOf('BYMONTH') > -1) &&\r\n !(isHavingNumber.indexOf(true) > -1)) ?\r\n weekCount(new Date(monthCollection[0][0]).getFullYear(), 0, monthCollection, week, ruleObject)\r\n : (monthCollection[week].length + ruleObject.setPosition);\r\n var index = ((ruleObject.setPosition < 1) ? weekIndex : ruleObject.setPosition - 1);\r\n var dayData = monthCollection[week][index];\r\n insertDateCollection(state, startDate, endDate, data, ruleObject, dayData);\r\n }\r\n }\r\n}\r\n/**\r\n * To insert datas into existing collection which is processed from previous loop.\r\n *\r\n * @param {number[]} monthCollection Accepts the collection of dates\r\n * @param {boolean} state Accepts the state of the recurrence rule\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @param {number[]} data Accepts the collection of date\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @param {number} index Accepts the index value\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction insertDatasIntoExistingCollection(monthCollection, state, startDate, endDate, data, ruleObject, index) {\r\n if (monthCollection.length > 0) {\r\n index = !isNullOrUndefined(index) ? index :\r\n ((ruleObject.setPosition < 1)\r\n ? (monthCollection.length + ruleObject.setPosition) : ruleObject.setPosition - 1);\r\n monthCollection[index].sort();\r\n for (var week = 0; week < monthCollection[index].length; week++) {\r\n var dayData = monthCollection[index][week];\r\n insertDateCollection(state, startDate, endDate, data, ruleObject, dayData);\r\n }\r\n }\r\n}\r\n/**\r\n * Internal method to compare dates\r\n *\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @returns {boolean} Returns the result of checking start and end dates\r\n * @private\r\n */\r\nfunction compareDates(startDate, endDate) {\r\n return endDate ? (startDate <= endDate) : true;\r\n}\r\n/**\r\n * Internal method to get day string\r\n *\r\n * @param {string} expectedDays Accepts the exception date string\r\n * @returns {string} Returns the valid string\r\n * @private\r\n */\r\nfunction getDayString(expectedDays) {\r\n // To get BYDAY value without numeric value\r\n var newstr = expectedDays.replace(REMOVENUMBERINSTRING, '');\r\n return newstr;\r\n}\r\n/**\r\n * Internal method to check day index\r\n *\r\n * @param {number} day Accepts the day index\r\n * @param {string[]} expectedDays Accepts the exception dates\r\n * @returns {boolean} Returns the index date\r\n * @private\r\n */\r\nfunction checkDayIndex(day, expectedDays) {\r\n var sortedExpectedDays = [];\r\n expectedDays.forEach(function (element) {\r\n var expectedDaysNumberSplit = element.match(SPLITNUMBERANDSTRING);\r\n if (expectedDaysNumberSplit.length === 2) {\r\n sortedExpectedDays.push(expectedDaysNumberSplit[1]);\r\n }\r\n else {\r\n sortedExpectedDays.push(expectedDaysNumberSplit[0]);\r\n }\r\n });\r\n return (sortedExpectedDays.indexOf(DAYINDEX[day]) === -1);\r\n}\r\n/**\r\n * Internal method to get start date of week\r\n *\r\n * @param {Date} startDate Accepts the start date\r\n * @param {string[]} expectedDays Accepts the exception dates\r\n * @returns {Date} Return the week start date\r\n * @private\r\n */\r\nfunction getStartDateForWeek(startDate, expectedDays) {\r\n var tempDate = new Date(startDate.getTime());\r\n var newstr;\r\n if (expectedDays.length > 0) {\r\n var expectedDaysArr = [];\r\n for (var i = 0; i <= expectedDays.length - 1; i++) {\r\n newstr = getDayString(expectedDays[i]);\r\n expectedDaysArr.push(newstr);\r\n }\r\n if (expectedDaysArr.indexOf(DAYINDEX[tempDate.getDay()]) === -1) {\r\n do {\r\n tempDate.setDate(tempDate.getDate() + 1);\r\n } while (expectedDaysArr.indexOf(DAYINDEX[tempDate.getDay()]) === -1);\r\n }\r\n }\r\n return tempDate;\r\n}\r\n/**\r\n * Method to generate recurrence rule object from given rule\r\n *\r\n * @param {string} rules Accepts the recurrence rule\r\n * @returns {RecRule} Returns the recurrence rule object\r\n */\r\nexport function extractObjectFromRule(rules) {\r\n var ruleObject = {\r\n freq: null,\r\n interval: 1,\r\n count: null,\r\n until: null,\r\n day: [],\r\n wkst: null,\r\n month: [],\r\n weekNo: [],\r\n monthDay: [],\r\n yearDay: [],\r\n setPosition: null,\r\n validRules: []\r\n };\r\n var rulesList = rules.split(';');\r\n var splitData = [];\r\n var temp;\r\n rulesList.forEach(function (data) {\r\n splitData = data.split('=');\r\n switch (splitData[0]) {\r\n case 'UNTIL':\r\n temp = splitData[1];\r\n ruleObject.until = getDateFromRecurrenceDateString(temp);\r\n break;\r\n case 'BYDAY':\r\n ruleObject.day = splitData[1].split(',');\r\n ruleObject.validRules.push(splitData[0]);\r\n break;\r\n case 'BYMONTHDAY':\r\n ruleObject.monthDay = splitData[1].split(',').map(Number);\r\n ruleObject.validRules.push(splitData[0]);\r\n break;\r\n case 'BYMONTH':\r\n ruleObject.month = splitData[1].split(',').map(Number);\r\n ruleObject.validRules.push(splitData[0]);\r\n break;\r\n case 'BYYEARDAY':\r\n ruleObject.yearDay = splitData[1].split(',').map(Number);\r\n ruleObject.validRules.push(splitData[0]);\r\n break;\r\n case 'BYWEEKNO':\r\n ruleObject.weekNo = splitData[1].split(',').map(Number);\r\n ruleObject.validRules.push(splitData[0]);\r\n break;\r\n case 'INTERVAL':\r\n ruleObject.interval = parseInt(splitData[1], 10);\r\n break;\r\n case 'COUNT':\r\n ruleObject.count = parseInt(splitData[1], 10);\r\n break;\r\n case 'BYSETPOS':\r\n ruleObject.setPosition = parseInt(splitData[1], 10) > 4 ? -1 : parseInt(splitData[1], 10);\r\n break;\r\n case 'FREQ':\r\n ruleObject.freq = splitData[1];\r\n break;\r\n case 'WKST':\r\n ruleObject.wkst = splitData[1];\r\n break;\r\n }\r\n });\r\n if ((ruleObject.freq === 'MONTHLY') && (ruleObject.monthDay.length === 0)) {\r\n var index = ruleObject.validRules.indexOf('BYDAY');\r\n ruleObject.validRules.splice(index, 1);\r\n }\r\n return ruleObject;\r\n}\r\n/**\r\n * Internal method to validate proper date\r\n *\r\n * @param {Date} tempDate Accepts the date value\r\n * @param {number} data Accepts the data value\r\n * @param {Date} startDate Accepts the start date\r\n * @returns {boolean} Returns the result of date validate\r\n * @private\r\n */\r\nfunction validateProperDate(tempDate, data, startDate) {\r\n var maxDate = calendarUtil.getMonthDaysCount(tempDate);\r\n return (data <= maxDate) && (tempDate >= startDate);\r\n}\r\n/**\r\n * Internal method to process week days\r\n *\r\n * @param {string[]} expectedDays Accepts the expection dates\r\n * @returns {Object} Returns the weekdays object\r\n * @private\r\n */\r\nfunction processWeekDays(expectedDays) {\r\n var dayCycle = {};\r\n expectedDays.forEach(function (element, index) {\r\n if (index === expectedDays.length - 1) {\r\n var startIndex = dayIndex.indexOf(element);\r\n var temp = startIndex;\r\n while (temp % 7 !== dayIndex.indexOf(expectedDays[0])) {\r\n temp++;\r\n }\r\n dayCycle[element] = temp - startIndex;\r\n }\r\n else {\r\n dayCycle[element] = dayIndex.indexOf(expectedDays[(index + 1)]) - dayIndex.indexOf(element);\r\n }\r\n });\r\n return dayCycle;\r\n}\r\n/**\r\n * Internal method to check date\r\n *\r\n * @param {Date} tempDate Accepts the date value\r\n * @param {number[]} expectedDate Accepts the exception dates\r\n * @returns {boolean} Returns the boolean value\r\n * @private\r\n */\r\nfunction checkDate(tempDate, expectedDate) {\r\n var temp = expectedDate.slice(0);\r\n var data;\r\n var maxDate = calendarUtil.getMonthDaysCount(tempDate);\r\n data = temp.shift();\r\n while (data) {\r\n if (data < 0) {\r\n data = data + maxDate + 1;\r\n }\r\n if (data === tempDate.getDate()) {\r\n return false;\r\n }\r\n data = temp.shift();\r\n }\r\n return true;\r\n}\r\n/**\r\n * Internal method to check the year value\r\n *\r\n * @param {Date} tempDate Accepts the date value\r\n * @param {number[]} expectedyearDay Accepts the exception dates in year\r\n * @returns {boolean} Returns the boolean value\r\n * @private\r\n */\r\nfunction checkYear(tempDate, expectedyearDay) {\r\n var temp = expectedyearDay.slice(0);\r\n var data;\r\n var yearDay = getYearDay(tempDate);\r\n data = temp.shift();\r\n while (data) {\r\n if (data < 0) {\r\n data = data + calendarUtil.getYearDaysCount(tempDate, 0) + 1;\r\n }\r\n if (data === yearDay) {\r\n return false;\r\n }\r\n data = temp.shift();\r\n }\r\n return true;\r\n}\r\n/**\r\n * Internal method to get the year day\r\n *\r\n * @param {Date} currentDate Accepts the date value\r\n * @returns {number} Returns the boolean value\r\n * @private\r\n */\r\nfunction getYearDay(currentDate) {\r\n if (!startDateCollection[calendarUtil.getFullYear(currentDate)]) {\r\n startDateCollection[calendarUtil.getFullYear(currentDate)] = calendarUtil.getYearLastDate(currentDate, 0);\r\n }\r\n var tempDate = startDateCollection[calendarUtil.getFullYear(currentDate)];\r\n var diff = currentDate.getTime() - tempDate.getTime();\r\n return Math.ceil(diff / MS_PER_DAY);\r\n}\r\n/**\r\n * Internal method to validate monthly rule type\r\n *\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {MonthlyType} Returns the monthly type object\r\n * @private\r\n */\r\nfunction validateMonthlyRuleType(ruleObject) {\r\n if (ruleObject.monthDay.length && !ruleObject.day.length) {\r\n return 'date';\r\n }\r\n else if (!ruleObject.monthDay.length && ruleObject.day.length) {\r\n return 'day';\r\n }\r\n return 'both';\r\n}\r\n/**\r\n * Internal method to re-order the week days based on first day of week\r\n *\r\n * @param {string[]} days Accepts the week days value\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction rotate(days) {\r\n var data = days.shift();\r\n days.push(data);\r\n}\r\n/**\r\n * Internal method to set first day of week\r\n *\r\n * @param {string} day Accepts the first day string\r\n * @returns {void}\r\n * @private\r\n */\r\nfunction setFirstDayOfWeek(day) {\r\n while (dayIndex[0] !== day) {\r\n rotate(dayIndex);\r\n }\r\n}\r\n/**\r\n * Internal method to validate recurrence rule\r\n *\r\n * @param {Date} tempDate Accepts the date value\r\n * @param {RecRule} ruleObject Accepts the recurrence rule object\r\n * @returns {boolean} Returns the boolean value\r\n * @private\r\n */\r\nfunction validateRules(tempDate, ruleObject) {\r\n var state = true;\r\n var expectedDays = ruleObject.day;\r\n var expectedMonth = ruleObject.month;\r\n var expectedDate = calendarUtil.getExpectedDays(tempDate, ruleObject.monthDay);\r\n var expectedyearDay = ruleObject.yearDay;\r\n ruleObject.validRules.forEach(function (rule) {\r\n switch (rule) {\r\n case 'BYDAY':\r\n if (checkDayIndex(tempDate.getDay(), expectedDays)) {\r\n state = false;\r\n }\r\n break;\r\n case 'BYMONTH':\r\n if (calendarUtil.checkMonth(tempDate, expectedMonth)) {\r\n state = false;\r\n }\r\n break;\r\n case 'BYMONTHDAY':\r\n if (checkDate(tempDate, expectedDate)) {\r\n state = false;\r\n }\r\n break;\r\n case 'BYYEARDAY':\r\n if (checkYear(tempDate, expectedyearDay)) {\r\n state = false;\r\n }\r\n break;\r\n }\r\n });\r\n return state;\r\n}\r\n/**\r\n * Internal method to get calendar util\r\n *\r\n * @param {CalendarType} calendarMode Accepts the calendar type object\r\n * @returns {CalendarUtil} Returns the calendar util object\r\n * @private\r\n */\r\nexport function getCalendarUtil(calendarMode) {\r\n if (calendarMode === 'Islamic') {\r\n return new Islamic();\r\n }\r\n return new Gregorian();\r\n}\r\nvar startDateCollection = {};\r\nvar tempExcludeDate;\r\nvar dayIndex = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\r\nvar maxOccurrence;\r\nvar tempViewDate;\r\nvar calendarUtil;\r\nvar DAYINDEX = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];\r\nvar MAXOCCURRENCE = 43;\r\nvar WEEKPOS = ['first', 'second', 'third', 'fourth', 'last'];\r\nvar TIMES = 'summaryTimes';\r\nvar ON = 'summaryOn';\r\nvar EVERY = 'every';\r\nvar UNTIL = 'summaryUntil';\r\nvar DAYS = 'summaryDay';\r\nvar WEEKS = 'summaryWeek';\r\nvar MONTHS = 'summaryMonth';\r\nvar YEARS = 'summaryYear';\r\nvar DAYINDEXOBJECT = {\r\n SU: 'sun',\r\n MO: 'mon',\r\n TU: 'tue',\r\n WE: 'wed',\r\n TH: 'thu',\r\n FR: 'fri',\r\n SA: 'sat'\r\n};\r\n// To check string has number\r\nvar HASNUMBER = /\\d/;\r\n// To find the numbers in string\r\nvar REMOVENUMBERINSTRING = /[^A-Z]+/;\r\n// To split number and string\r\nvar SPLITNUMBERANDSTRING = /[a-z]+|[^a-z]+/gi;\r\n/**\r\n * Method to generate string from date\r\n *\r\n * @param {Date} date Accepts the date value\r\n * @returns {string} Returns the string value\r\n */\r\nexport function getRecurrenceStringFromDate(date) {\r\n return [date.getUTCFullYear(),\r\n roundDateValues(date.getUTCMonth() + 1),\r\n roundDateValues(date.getUTCDate()),\r\n 'T',\r\n roundDateValues(date.getUTCHours()),\r\n roundDateValues(date.getUTCMinutes()),\r\n roundDateValues(date.getUTCSeconds()),\r\n 'Z'].join('');\r\n}\r\n/**\r\n * Internal method to round the date values\r\n *\r\n * @param {string | number} date Accepts the date value in either string or number format\r\n * @returns {string} Returns the date value in string format\r\n * @private\r\n */\r\nfunction roundDateValues(date) {\r\n return ('0' + date).slice(-2);\r\n}\r\n","/**\n * Recurrence-Editor component exported items\n */\nexport * from './recurrence-editor';\nexport * from './date-generator';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Component, Property, NotifyPropertyChanges, Event, Browser } from '@syncfusion/ej2-base';\r\nimport { getDefaultDateObject, getValue, cldrData, L10n, isNullOrUndefined, removeClass, addClass } from '@syncfusion/ej2-base';\r\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\r\nimport { NumericTextBox } from '@syncfusion/ej2-inputs';\r\nimport { DatePicker } from '@syncfusion/ej2-calendars';\r\nimport { Button, RadioButton } from '@syncfusion/ej2-buttons';\r\nimport { EventHandler, classList } from '@syncfusion/ej2-base';\r\nimport { extractObjectFromRule, generate, generateSummary, getRecurrenceStringFromDate, getCalendarUtil } from './date-generator';\r\nimport { capitalizeFirstWord } from '../schedule/base/util';\r\nvar HEADER = 'e-editor';\r\nvar INPUTWARAPPER = 'e-input-wrapper';\r\nvar INPUTWARAPPERSIDE = 'e-input-wrapper-side';\r\nvar REPEATELEMENT = 'e-repeat-element';\r\nvar REPEATINTERVAL = 'e-repeat-interval';\r\nvar INTERVALCLASS = 'e-interval';\r\nvar DAYWRAPPER = 'e-days';\r\nvar WEEKWRAPPER = 'e-non-week';\r\nvar WEEKPOSITION = 'e-week-position';\r\nvar YEAREXPANDERWRAPPER = 'e-year-expander';\r\nvar YEAREXPANDERELEMENT = 'e-year-expander-element';\r\nvar MONETHEXPANDERWRAPPER = 'e-month-expander';\r\nvar MONETHEXPANDWRAPPER = 'e-month-expand-wrapper';\r\nvar MONTHEXPANDERELEMENT = 'e-month-expander-element';\r\nvar MONTHEXPANDERCHECKBOXWRAPPER = 'e-month-expander-checkbox-wrapper';\r\nvar FORMLEFT = 'e-form-left';\r\nvar FORMRIGHT = 'e-form-right';\r\nvar MONTHDAYWRAPPER = 'e-month-day';\r\nvar MONTHEXPANNDERELEM = 'e-month-expander-wrapper';\r\nvar MONTHPOS = 'e-month-pos';\r\nvar MONTHWEEK = 'e-month-week';\r\nvar ENDON = 'e-end-on';\r\nvar MONTHEXPANDERLABEL = 'e-month-expander-label';\r\nvar WEEKEXPANDERLABEL = 'e-week-expander-label';\r\nvar ENDONLABEL = 'e-end-on-label';\r\nvar ENDONLEFT = 'e-end-on-left';\r\nvar MONTHDAYELEMENT = 'e-monthday-element';\r\nvar ENDONELEMENT = 'e-end-on-element';\r\nvar ENDONDATE = 'e-end-on-date';\r\nvar UNTILDATE = 'e-until-date';\r\nvar ENDONCOUNTWRAPPER = 'e-end-on-count';\r\nvar ENDONCOUNT = 'e-recurrence-count';\r\nvar HIDEWRAPPER = 'e-hide-recurrence-element';\r\nvar RTLCLASS = 'e-rtl';\r\nvar PRIMARY = 'e-primary';\r\nvar ACTIVE = 'e-active';\r\nvar RECURRENCETABLE = 'e-recurrence-table';\r\nvar REPEATCONTENT = 'e-repeat-content';\r\nvar REPEATCONTENTWRAPPER = 'e-repeat-content-wrapper';\r\nvar NONE = 'none';\r\nvar DAILY = 'daily';\r\nvar WEEKLY = 'weekly';\r\nvar MONTHLY = 'monthly';\r\nvar YEARLY = 'yearly';\r\nvar NEVER = 'never';\r\nvar UNTIL = 'until';\r\nvar COUNT = 'count';\r\nvar TEXTFIELD = 'text';\r\nvar VALUEFIELD = 'value';\r\nvar LAST = 'last';\r\nvar REPEAT = 'repeat';\r\nvar REPEATEVERY = 'repeatEvery';\r\nvar ON = 'on';\r\nvar END = 'end';\r\nvar RADIOLABEL = 'onDay';\r\nvar RULEUNTIL = 'UNTIL';\r\nvar RULEBYDAY = 'BYDAY';\r\nvar RULEBYMONTHDAY = 'BYMONTHDAY';\r\nvar RULEBYMONTH = 'BYMONTH';\r\nvar RULEINTERVAL = 'INTERVAL';\r\nvar RULECOUNT = 'COUNT';\r\nvar RULESETPOS = 'BYSETPOS';\r\nvar RULEFREQ = 'FREQ';\r\nvar RULEDAILY = 'DAILY';\r\nvar RULEWEEKLY = 'WEEKLY';\r\nvar RULEMONTHLY = 'MONTHLY';\r\nvar RULEYEARLY = 'YEARLY';\r\nvar RULESUNDAY = 'SU';\r\nvar RULEMONDAY = 'MO';\r\nvar RULETUESDAY = 'TU';\r\nvar RULEWEDNESDAY = 'WE';\r\nvar RULETHURSDAY = 'TH';\r\nvar RULEFRIDAY = 'FR';\r\nvar RULESATURDAY = 'SA';\r\nvar KEYSUNDAY = 'sun';\r\nvar KEYMONDAY = 'mon';\r\nvar KEYTUESDAY = 'tue';\r\nvar KEYWEDNESDAY = 'wed';\r\nvar KEYTHURSDAY = 'thu';\r\nvar KEYFRIDAY = 'fri';\r\nvar KEYSATURDAY = 'sat';\r\nvar EQUAL = '=';\r\nvar SEMICOLON = ';';\r\nvar COMMA = ',';\r\nvar FIRST = 'first';\r\nvar SECOND = 'second';\r\nvar THIRD = 'third';\r\nvar FOURTH = 'fourth';\r\nvar contentType = {\r\n none: '',\r\n daily: 'days',\r\n weekly: 'weeks',\r\n monthly: 'months',\r\n yearly: 'years'\r\n};\r\nvar valueData = {\r\n 'sun': RULESUNDAY,\r\n 'mon': RULEMONDAY,\r\n 'tue': RULETUESDAY,\r\n 'wed': RULEWEDNESDAY,\r\n 'thu': RULETHURSDAY,\r\n 'fri': RULEFRIDAY,\r\n 'sat': RULESATURDAY\r\n};\r\nvar neverClassList = [DAYWRAPPER, WEEKWRAPPER, ENDON, INTERVALCLASS, YEAREXPANDERWRAPPER, MONETHEXPANDERWRAPPER];\r\nvar weekClassList = [WEEKWRAPPER];\r\nvar monthClassList = [DAYWRAPPER, YEAREXPANDERWRAPPER];\r\nvar yearClassList = [DAYWRAPPER];\r\nvar dailyClassList = [DAYWRAPPER, WEEKWRAPPER, YEAREXPANDERWRAPPER, MONETHEXPANDERWRAPPER];\r\nvar noEndClassList = [ENDONDATE, ENDONCOUNTWRAPPER];\r\nvar endOnCountClassList = [ENDONDATE];\r\nvar endOnDateClassList = [ENDONCOUNTWRAPPER];\r\n/**\r\n * Represents the RecurrenceEditor component.\r\n * ```html\r\n *
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar RecurrenceEditor = /** @class */ (function (_super) {\r\n __extends(RecurrenceEditor, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {RecurrenceEditorModel} options Accepts the recurrence editor model properties to initiate the rendering\r\n * @param {string | HTMLElement} element Accepts the DOM element reference\r\n */\r\n function RecurrenceEditor(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n _this.defaultLocale = {\r\n none: 'None',\r\n daily: 'Daily',\r\n weekly: 'Weekly',\r\n monthly: 'Monthly',\r\n month: 'Month',\r\n yearly: 'Yearly',\r\n never: 'Never',\r\n until: 'Until',\r\n count: 'Count',\r\n first: 'First',\r\n second: 'Second',\r\n third: 'Third',\r\n fourth: 'Fourth',\r\n last: 'Last',\r\n repeat: 'Repeat',\r\n repeatEvery: 'Repeat every',\r\n on: 'Repeat On',\r\n end: 'End',\r\n onDay: 'Day',\r\n days: 'Day(s)',\r\n weeks: 'Week(s)',\r\n months: 'Month(s)',\r\n years: 'Year(s)',\r\n every: 'every',\r\n summaryTimes: 'time(s)',\r\n summaryOn: 'on',\r\n summaryUntil: 'until',\r\n summaryRepeat: 'Repeats',\r\n summaryDay: 'day(s)',\r\n summaryWeek: 'week(s)',\r\n summaryMonth: 'month(s)',\r\n summaryYear: 'year(s)',\r\n monthWeek: 'Month Week',\r\n monthPosition: 'Month Position',\r\n monthExpander: 'Month Expander',\r\n yearExpander: 'Year Expander',\r\n repeatInterval: 'Repeat Interval'\r\n };\r\n _this.renderStatus = false;\r\n _this.dayButtons = [];\r\n _this.monthButtons = [];\r\n return _this;\r\n }\r\n RecurrenceEditor.prototype.startState = function (freq, endOn, startDate) {\r\n this.showFormElement();\r\n this.updateForm(freq);\r\n this.freshOnEndForm();\r\n this.updateEndOnForm(endOn);\r\n this.selectMonthDay(startDate);\r\n this.updateUntilDate(startDate);\r\n this.onMonthDay.setProperties({ checked: true });\r\n };\r\n RecurrenceEditor.prototype.preRender = function () {\r\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\r\n this.calendarUtil = getCalendarUtil(this.calendarMode);\r\n };\r\n RecurrenceEditor.prototype.applyCustomClass = function (cssClass) {\r\n if (cssClass) {\r\n addClass([this.element], cssClass.split(' '));\r\n }\r\n };\r\n RecurrenceEditor.prototype.initialize = function () {\r\n addClass([this.element], 'e-' + this.getModuleName());\r\n this.renderComponent();\r\n if (!isNullOrUndefined(this.value) && this.value !== '') {\r\n this.setRecurrenceRule(this.value);\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.repeatType.value)) {\r\n this.startState(this.repeatType.value.toString().toUpperCase(), NEVER, this.startDate);\r\n this.updateForm(this.repeatType.value.toString());\r\n }\r\n if (this.selectedType > 0) {\r\n this.setProperties({ value: this.getRecurrenceRule() }, false);\r\n }\r\n }\r\n this.applyCustomClass(this.cssClass);\r\n };\r\n RecurrenceEditor.prototype.triggerChangeEvent = function () {\r\n var _this = this;\r\n if (this.renderStatus) {\r\n var value = this.getRecurrenceRule();\r\n this.trigger('change', { value: value }, function (args) { return _this.setProperties({ value: args.value }, false); });\r\n }\r\n };\r\n RecurrenceEditor.prototype.resetDayButton = function () {\r\n var elements = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button'));\r\n elements.forEach(function (element) { return removeClass([element], [ACTIVE, PRIMARY]); });\r\n };\r\n RecurrenceEditor.prototype.daySelection = function (dayIndex) {\r\n this.resetDayButton();\r\n var days = [0, 1, 2, 3, 4, 5, 6];\r\n this.rotateArray(days, this.firstDayOfWeek);\r\n var element = this.element.querySelector('.' + DAYWRAPPER + ' button[data-index=\"' + days.indexOf(dayIndex) + '\"]');\r\n if (element) {\r\n addClass([element], [ACTIVE, PRIMARY]);\r\n }\r\n };\r\n RecurrenceEditor.prototype.rtlClass = function (status) {\r\n if (status) {\r\n addClass([this.element], RTLCLASS);\r\n }\r\n else {\r\n removeClass([this.element], RTLCLASS);\r\n }\r\n };\r\n RecurrenceEditor.prototype.updateUntilDate = function (date) {\r\n var tempDate = new Date(date.getTime());\r\n tempDate.setDate(tempDate.getDate() + 60);\r\n this.untilDateObj.setProperties({ value: tempDate });\r\n };\r\n RecurrenceEditor.prototype.selectMonthDay = function (date) {\r\n var weekday = [KEYSUNDAY, KEYMONDAY, KEYTUESDAY, KEYWEDNESDAY, KEYTHURSDAY, KEYFRIDAY, KEYSATURDAY];\r\n this.monthDate.setProperties({ value: this.calendarUtil.getDate(date) });\r\n this.monthWeekDays.setProperties({ value: valueData[weekday[date.getDay()]] });\r\n this.monthValue.setProperties({ value: '' + this.calendarUtil.getMonth(date) });\r\n this.monthWeekPos.setProperties({ value: this.getDayPosition(date) });\r\n this.daySelection(date.getDay());\r\n };\r\n RecurrenceEditor.prototype.updateForm = function (state) {\r\n var _this = this;\r\n this.repeatType.setProperties({ value: state });\r\n var end = this.element.querySelector('.' + ENDON);\r\n if (state === DAILY) {\r\n classList(end, [FORMLEFT], [FORMRIGHT]);\r\n }\r\n else {\r\n classList(end, [FORMRIGHT], [FORMLEFT]);\r\n }\r\n switch (state) {\r\n case NONE:\r\n neverClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case WEEKLY:\r\n weekClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case MONTHLY:\r\n monthClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case YEARLY:\r\n yearClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case DAILY:\r\n dailyClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n }\r\n };\r\n RecurrenceEditor.prototype.updateEndOnForm = function (state) {\r\n var _this = this;\r\n this.endType.setProperties({ value: state });\r\n switch (state) {\r\n case NEVER:\r\n noEndClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case UNTIL:\r\n endOnDateClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n case COUNT:\r\n endOnCountClassList.forEach(function (className) { return addClass([_this.element.querySelector('.' + className)], HIDEWRAPPER); });\r\n break;\r\n }\r\n };\r\n RecurrenceEditor.prototype.freshOnEndForm = function () {\r\n var _this = this;\r\n noEndClassList.forEach(function (className) {\r\n var element = _this.element.querySelector('.' + className);\r\n if (element) {\r\n removeClass([element], HIDEWRAPPER);\r\n }\r\n });\r\n };\r\n RecurrenceEditor.prototype.showFormElement = function () {\r\n var _this = this;\r\n neverClassList.forEach(function (className) {\r\n var hideElement = _this.element.querySelector('.' + className);\r\n if (hideElement) {\r\n removeClass([hideElement], HIDEWRAPPER);\r\n }\r\n });\r\n };\r\n RecurrenceEditor.prototype.renderDropdowns = function () {\r\n var _this = this;\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n this.repeatType = new DropDownList({\r\n //set the data to dataSource property\r\n dataSource: this.getRepeatData(),\r\n floatLabelType: 'Always',\r\n enableRtl: this.enableRtl,\r\n index: this.selectedType,\r\n fields: {\r\n text: TEXTFIELD,\r\n value: VALUEFIELD\r\n },\r\n placeholder: this.localeObj.getConstant(REPEAT),\r\n htmlAttributes: { 'title': this.localeObj.getConstant(REPEAT) },\r\n change: function (args) {\r\n self.setProperties({ selectedType: _this.frequencies.indexOf(args.value) }, false);\r\n self.element.querySelector('.' + REPEATCONTENT).innerHTML =\r\n self.localeObj.getConstant(contentType[args.value]);\r\n self.showFormElement();\r\n self.updateForm(args.value);\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n // set placeholder to DropDownList input element\r\n this.repeatType.appendTo(this.element.querySelector('.' + REPEATELEMENT));\r\n this.endType = new DropDownList({\r\n dataSource: this.getEndData(),\r\n popupWidth: this.getPopupWidth(),\r\n enableRtl: this.enableRtl,\r\n index: 1,\r\n fields: {\r\n text: TEXTFIELD,\r\n value: VALUEFIELD\r\n },\r\n change: function (args) {\r\n self.freshOnEndForm();\r\n self.updateEndOnForm(args.value);\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.endType.appendTo(this.element.querySelector('.' + ENDONELEMENT));\r\n // eslint-disable-next-line @typescript-eslint/ban-types\r\n var renderDropDownList = function (dropDownData) {\r\n return new DropDownList({\r\n dataSource: dropDownData,\r\n popupWidth: _this.getPopupWidth(),\r\n enableRtl: _this.enableRtl,\r\n fields: {\r\n text: TEXTFIELD,\r\n value: VALUEFIELD\r\n },\r\n index: 1,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n change: function (args) {\r\n self.onWeekDay.setProperties({ checked: true });\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n };\r\n this.monthWeekPos = renderDropDownList(this.getMonthPosData());\r\n this.monthWeekPos.appendTo(this.element.querySelector('.' + MONTHPOS));\r\n this.monthWeekDays = renderDropDownList(this.getDayData('wide'));\r\n this.monthWeekDays.appendTo(this.element.querySelector('.' + MONTHWEEK));\r\n this.monthValue = new DropDownList({\r\n dataSource: this.getMonthData(),\r\n fields: {\r\n text: TEXTFIELD,\r\n value: VALUEFIELD\r\n },\r\n enableRtl: this.enableRtl,\r\n index: 7,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n change: function (args) {\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.monthValue.appendTo(this.element.querySelector('.' + YEAREXPANDERELEMENT));\r\n };\r\n RecurrenceEditor.prototype.setDefaultValue = function () {\r\n var formelement = [].slice.call(this.element.querySelectorAll('.e-control .e-numerictextbox'));\r\n for (var _i = 0, formelement_1 = formelement; _i < formelement_1.length; _i++) {\r\n var element = formelement_1[_i];\r\n var instance = element.ej2_instances[0];\r\n if (instance.element.classList.contains(REPEATINTERVAL)) {\r\n instance.value = 1;\r\n instance.dataBind();\r\n }\r\n else if (instance.element.classList.contains(ENDONCOUNT)) {\r\n instance.value = 10;\r\n instance.dataBind();\r\n }\r\n }\r\n };\r\n RecurrenceEditor.prototype.resetFormValues = function () {\r\n var recurreneElement = [].slice.call(this.element.querySelectorAll('.e-control [type=\"text\"]'));\r\n for (var _i = 0, recurreneElement_1 = recurreneElement; _i < recurreneElement_1.length; _i++) {\r\n var element = recurreneElement_1[_i];\r\n var instance = void 0;\r\n if (element.classList.contains('e-datepicker')) {\r\n instance = element.ej2_instances[0];\r\n if (instance.value) {\r\n // eslint-disable-next-line no-self-assign\r\n instance.value = instance.value;\r\n instance.dataBind();\r\n }\r\n else {\r\n this.updateUntilDate(this.startDate);\r\n }\r\n }\r\n else if (element.classList.contains('e-dropdownlist')) {\r\n instance = element.ej2_instances[0];\r\n instance.index = instance.index || 0;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-numerictextbox')) {\r\n instance = element.ej2_instances[0];\r\n var value = void 0;\r\n if (instance.element.classList.contains(REPEATINTERVAL)) {\r\n value = 1;\r\n }\r\n else if (instance.element.classList.contains(ENDONCOUNT)) {\r\n value = 10;\r\n }\r\n else {\r\n value = this.startDate.getDate();\r\n }\r\n instance.value = instance.value || value;\r\n instance.dataBind();\r\n }\r\n }\r\n };\r\n RecurrenceEditor.prototype.getPopupWidth = function () {\r\n return Browser.isDevice ? '100%' : 'auto';\r\n };\r\n RecurrenceEditor.prototype.renderDatePickers = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n this.untilDateObj = new DatePicker({\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n enableRtl: this.enableRtl,\r\n locale: this.locale,\r\n min: this.minDate,\r\n max: this.maxDate,\r\n format: (isNullOrUndefined(this.dateFormat) ? this.getFormat('dateFormats') : this.dateFormat),\r\n change: function (args) {\r\n if (args.value) {\r\n self.triggerChangeEvent();\r\n }\r\n }\r\n });\r\n this.untilDateObj.appendTo(this.element.querySelector('.' + UNTILDATE));\r\n };\r\n RecurrenceEditor.prototype.getFormat = function (formatType) {\r\n var format;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n format = getValue(formatType + '.short', getDefaultDateObject(this.getCalendarMode()));\r\n }\r\n else {\r\n format = getValue('main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.' + formatType + '.short', cldrData);\r\n }\r\n return format;\r\n };\r\n RecurrenceEditor.prototype.dayButtonRender = function () {\r\n var _this = this;\r\n var btns = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button'));\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n for (var _i = 0, btns_1 = btns; _i < btns_1.length; _i++) {\r\n var btn = btns_1[_i];\r\n var button = new Button({ isToggle: true, enableRtl: this.enableRtl }, btn);\r\n this.dayButtons.push(button);\r\n EventHandler.add(btn, 'click', function (args) {\r\n var btns = [].slice.call(_this.element.querySelectorAll('.' + DAYWRAPPER + ' button.' + PRIMARY));\r\n var element = args.target;\r\n if (!element.classList.contains(PRIMARY)) {\r\n addClass([element], PRIMARY);\r\n self.triggerChangeEvent();\r\n }\r\n else if (btns.length > 1) {\r\n removeClass([element], PRIMARY);\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n }\r\n };\r\n RecurrenceEditor.prototype.radioButtonRender = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n this.onMonthDay = new RadioButton({\r\n label: this.localeObj.getConstant(RADIOLABEL),\r\n enableRtl: this.enableRtl,\r\n name: 'monthType',\r\n value: 'day',\r\n change: function () {\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.onMonthDay.appendTo(this.element.querySelector('.' + MONTHEXPANDERELEMENT));\r\n this.monthButtons.push(this.onMonthDay);\r\n this.onWeekDay = new RadioButton({\r\n label: this.localeObj.getConstant('monthExpander'),\r\n cssClass: 'e-month-type',\r\n name: 'monthType',\r\n enableRtl: this.enableRtl,\r\n value: 'daypos',\r\n change: function () {\r\n self.resetFormValues();\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.onWeekDay.appendTo(this.element.querySelector('.' + MONTHEXPANNDERELEM));\r\n this.monthButtons.push(this.onWeekDay);\r\n };\r\n RecurrenceEditor.prototype.numericTextboxRender = function () {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n this.recurrenceCount = new NumericTextBox({\r\n value: 10,\r\n format: '#',\r\n enableRtl: this.enableRtl,\r\n min: 1,\r\n max: 999,\r\n change: function () {\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.recurrenceCount.appendTo(this.element.querySelector('.' + ENDONCOUNT));\r\n this.monthDate = new NumericTextBox({\r\n value: 1,\r\n format: '#',\r\n enableRtl: this.enableRtl,\r\n min: 1,\r\n max: 31,\r\n change: function () {\r\n self.onMonthDay.setProperties({ checked: true });\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.monthDate.appendTo(this.element.querySelector('.' + MONTHDAYWRAPPER));\r\n this.repeatInterval = new NumericTextBox({\r\n value: 1,\r\n format: '#',\r\n min: 1,\r\n max: 999,\r\n enableRtl: this.enableRtl,\r\n floatLabelType: 'Always',\r\n placeholder: this.localeObj.getConstant(REPEATEVERY),\r\n change: function () {\r\n self.triggerChangeEvent();\r\n }\r\n });\r\n this.repeatInterval.appendTo(this.element.querySelector('.' + REPEATINTERVAL));\r\n };\r\n RecurrenceEditor.prototype.renderComponent = function () {\r\n this.setTemplate();\r\n this.renderDropdowns();\r\n this.renderDatePickers();\r\n this.dayButtonRender();\r\n this.radioButtonRender();\r\n this.numericTextboxRender();\r\n };\r\n RecurrenceEditor.prototype.rotateArray = function (data, count) {\r\n var temp;\r\n for (var index = 0; index < count; index++) {\r\n temp = data.shift();\r\n data.push(temp);\r\n }\r\n };\r\n RecurrenceEditor.prototype.getEndData = function () {\r\n var endData = [NEVER, UNTIL, COUNT];\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n var dataSource = [];\r\n endData.forEach(function (data) {\r\n dataSource.push({ text: self.localeObj.getConstant(data), value: data });\r\n });\r\n return dataSource;\r\n };\r\n RecurrenceEditor.prototype.getDayPosition = function (date) {\r\n var temp = new Date(date.getTime());\r\n var endDate = new Date(date.getTime());\r\n var day = date.getDay();\r\n var positionCollection = [];\r\n temp = this.calendarUtil.getMonthStartDate(temp);\r\n endDate = this.calendarUtil.getMonthEndDate(endDate);\r\n while (temp < endDate) {\r\n if (temp.getDay() === day) {\r\n positionCollection.push(temp.getTime());\r\n }\r\n temp.setDate(temp.getDate() + 1);\r\n }\r\n if (positionCollection.indexOf(date.getTime()) === positionCollection.length - 1) {\r\n return -1;\r\n }\r\n return (positionCollection.indexOf(date.getTime()) + 1);\r\n };\r\n RecurrenceEditor.prototype.getRepeatData = function () {\r\n var data = [];\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n this.frequencies.forEach(function (element) {\r\n var textValue = (element === NONE) ? NEVER : element;\r\n data.push({ text: self.localeObj.getConstant(textValue), value: element });\r\n });\r\n return data;\r\n };\r\n RecurrenceEditor.prototype.getMonthPosData = function () {\r\n var monthpos = [FIRST, SECOND, THIRD, FOURTH, LAST];\r\n var monthposValue = {\r\n first: 1,\r\n second: 2,\r\n third: 3,\r\n fourth: 4,\r\n last: -1\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n var self = this;\r\n var dataSource = [];\r\n monthpos.forEach(function (data) {\r\n dataSource.push({ text: self.localeObj.getConstant(data), value: monthposValue[data] });\r\n });\r\n return dataSource;\r\n };\r\n RecurrenceEditor.prototype.getDayData = function (format) {\r\n var weekday = [KEYSUNDAY, KEYMONDAY, KEYTUESDAY, KEYWEDNESDAY, KEYTHURSDAY, KEYFRIDAY, KEYSATURDAY];\r\n var dayData = [];\r\n var cldrObj;\r\n this.rotateArray(weekday, this.firstDayOfWeek);\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n var nameSpaceString = 'days.stand-alone.';\r\n cldrObj = (getValue(nameSpaceString + format, getDefaultDateObject(this.getCalendarMode())));\r\n }\r\n else {\r\n var nameSpaceString = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.days.stand-alone.' + format;\r\n cldrObj = (getValue(nameSpaceString, cldrData));\r\n }\r\n for (var _i = 0, weekday_1 = weekday; _i < weekday_1.length; _i++) {\r\n var obj = weekday_1[_i];\r\n var day = getValue(obj, cldrObj);\r\n dayData.push({ text: format === 'narrow' ? day : capitalizeFirstWord(day, 'single'), value: valueData[obj] });\r\n }\r\n return dayData;\r\n };\r\n RecurrenceEditor.prototype.getMonthData = function () {\r\n var monthData = [];\r\n var cldrObj;\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n var nameSpaceString = 'months.stand-alone.wide';\r\n cldrObj = (getValue(nameSpaceString, getDefaultDateObject(this.getCalendarMode())));\r\n }\r\n else {\r\n var nameSpaceString = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.months.stand-alone.wide';\r\n cldrObj = (getValue(nameSpaceString, cldrData));\r\n }\r\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\r\n var obj = _a[_i];\r\n monthData.push({\r\n text: capitalizeFirstWord(getValue(obj, cldrObj), 'single'),\r\n value: obj\r\n });\r\n }\r\n return monthData;\r\n };\r\n RecurrenceEditor.prototype.setTemplate = function () {\r\n var dayData = this.getDayData('narrow');\r\n var fullDay = this.getDayData('wide');\r\n this.element.innerHTML = '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '' +\r\n '' +\r\n '
      ' +\r\n '
      ' + this.localeObj.getConstant(ON) + '
      ' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '
      ' + this.localeObj.getConstant(ON) + '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '
      ' +\r\n '
      ' + this.localeObj.getConstant(END) + '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ' +\r\n '' +\r\n '
      ' +\r\n '
      ';\r\n };\r\n RecurrenceEditor.prototype.getSelectedDaysData = function () {\r\n var ruleData = RULEBYDAY + EQUAL;\r\n var elements = [].slice.call(this.element.querySelectorAll('.' + DAYWRAPPER + ' button.' + PRIMARY));\r\n var weekday = [RULESUNDAY, RULEMONDAY, RULETUESDAY, RULEWEDNESDAY, RULETHURSDAY, RULEFRIDAY, RULESATURDAY];\r\n this.rotateArray(weekday, this.firstDayOfWeek);\r\n for (var index = 0; index < elements.length; index++) {\r\n ruleData += weekday[parseInt(elements[index].getAttribute('data-index'), 10)] + (index === (elements.length - 1) ? '' : COMMA);\r\n }\r\n return ruleData + SEMICOLON;\r\n };\r\n RecurrenceEditor.prototype.getSelectedMonthData = function () {\r\n var ruleData;\r\n if (this.onWeekDay.checked) {\r\n ruleData = RULEBYDAY + EQUAL + this.monthWeekDays.value + SEMICOLON\r\n + RULESETPOS + EQUAL + this.monthWeekPos.value + SEMICOLON;\r\n }\r\n else {\r\n ruleData = RULEBYMONTHDAY + EQUAL + this.monthDate.value + SEMICOLON;\r\n }\r\n return ruleData;\r\n };\r\n RecurrenceEditor.prototype.getIntervalData = function () {\r\n return RULEINTERVAL + EQUAL + this.repeatInterval.value + SEMICOLON;\r\n };\r\n RecurrenceEditor.prototype.getEndOnCount = function () {\r\n return RULECOUNT + EQUAL + this.recurrenceCount.value + SEMICOLON;\r\n };\r\n RecurrenceEditor.prototype.getYearMonthRuleData = function () {\r\n return RULEBYMONTH + EQUAL + this.monthValue.value + SEMICOLON;\r\n };\r\n RecurrenceEditor.prototype.updateWeekButton = function (keys) {\r\n var weekday = [RULESUNDAY, RULEMONDAY, RULETUESDAY, RULEWEDNESDAY, RULETHURSDAY, RULEFRIDAY, RULESATURDAY];\r\n this.rotateArray(weekday, this.firstDayOfWeek);\r\n for (var _i = 0, _a = this.dayButtons; _i < _a.length; _i++) {\r\n var obj = _a[_i];\r\n var index = parseInt(obj.element.getAttribute('data-index'), 10);\r\n if (keys.indexOf(weekday[index]) !== -1) {\r\n obj.setProperties({ isPrimary: true });\r\n }\r\n else {\r\n obj.setProperties({ isPrimary: false });\r\n }\r\n }\r\n };\r\n RecurrenceEditor.prototype.updateMonthUI = function () {\r\n if (this.ruleObject.monthDay.length) {\r\n this.monthDate.setProperties({ value: this.ruleObject.monthDay[0] });\r\n this.onMonthDay.setProperties({ checked: true });\r\n }\r\n else {\r\n this.onWeekDay.setProperties({ checked: true });\r\n this.monthWeekPos.setProperties({ value: this.ruleObject.setPosition });\r\n for (var _i = 0, _a = Object.keys(valueData); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n if (valueData[key] === this.ruleObject.day[0]) {\r\n this.monthWeekDays.setProperties({ value: this.ruleObject.day[0] });\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n RecurrenceEditor.prototype.updateUI = function (repeat, state) {\r\n this.repeatInterval.setProperties({ value: this.ruleObject.interval });\r\n switch (state) {\r\n case UNTIL:\r\n this.untilDateObj.setProperties({ value: this.ruleObject.until });\r\n break;\r\n case COUNT:\r\n this.recurrenceCount.setProperties({ value: this.ruleObject.count });\r\n break;\r\n }\r\n switch (repeat) {\r\n case WEEKLY:\r\n this.updateWeekButton(this.ruleObject.day);\r\n break;\r\n case YEARLY:\r\n this.monthValue.setProperties({ index: (this.ruleObject.month[0] - 1) });\r\n this.updateMonthUI();\r\n break;\r\n case MONTHLY:\r\n this.updateMonthUI();\r\n break;\r\n }\r\n };\r\n RecurrenceEditor.prototype.getUntilData = function () {\r\n if (!this.untilDateObj.value) {\r\n return '';\r\n }\r\n var tempStr = getRecurrenceStringFromDate(this.untilDateObj.value);\r\n return RULEUNTIL + EQUAL + tempStr + SEMICOLON;\r\n };\r\n RecurrenceEditor.prototype.destroyComponents = function () {\r\n if (!this.recurrenceCount.isDestroyed) {\r\n this.recurrenceCount.destroy();\r\n }\r\n if (!this.monthDate.isDestroyed) {\r\n this.monthDate.destroy();\r\n }\r\n if (!this.repeatInterval.isDestroyed) {\r\n this.repeatInterval.destroy();\r\n }\r\n if (!this.untilDateObj.isDestroyed) {\r\n this.untilDateObj.destroy();\r\n }\r\n if (!this.repeatType.isDestroyed) {\r\n this.repeatType.destroy();\r\n }\r\n if (!this.endType.isDestroyed) {\r\n this.endType.destroy();\r\n }\r\n if (!this.monthWeekPos.isDestroyed) {\r\n this.monthWeekPos.destroy();\r\n }\r\n if (!this.monthWeekDays.isDestroyed) {\r\n this.monthWeekDays.destroy();\r\n }\r\n if (!this.monthValue.isDestroyed) {\r\n this.monthValue.destroy();\r\n }\r\n this.dayButtons.forEach(function (element) {\r\n if (!element.isDestroyed) {\r\n element.destroy();\r\n }\r\n });\r\n this.dayButtons = [];\r\n this.monthButtons.forEach(function (element) {\r\n if (!element.isDestroyed) {\r\n element.destroy();\r\n }\r\n });\r\n this.monthButtons = [];\r\n };\r\n RecurrenceEditor.prototype.resetFields = function () {\r\n this.startState(NONE, NEVER, this.startDate);\r\n this.setDefaultValue();\r\n };\r\n RecurrenceEditor.prototype.updateRuleUntilDate = function (startDate) {\r\n if (this.untilDateObj.value && startDate) {\r\n var untilDate = this.untilDateObj.value;\r\n var newUntilDate = new Date(untilDate.getFullYear(), untilDate.getMonth(), untilDate.getDate(), startDate.getHours(), startDate.getMinutes(), startDate.getMilliseconds());\r\n this.untilDateObj.setProperties({ value: newUntilDate });\r\n }\r\n };\r\n RecurrenceEditor.prototype.getCalendarMode = function () {\r\n return this.calendarMode.toLowerCase();\r\n };\r\n RecurrenceEditor.prototype.getRuleSummary = function (rule) {\r\n if (rule === void 0) { rule = this.getRecurrenceRule(); }\r\n return generateSummary(rule, this.localeObj, this.locale, this.calendarMode);\r\n };\r\n RecurrenceEditor.prototype.getRecurrenceDates = function (startDate, rule, excludeDate, maximumCount, viewDate) {\r\n viewDate = isNullOrUndefined(viewDate) ? this.startDate : viewDate;\r\n return generate(startDate, rule, excludeDate, this.firstDayOfWeek, maximumCount, viewDate, this.calendarMode);\r\n };\r\n RecurrenceEditor.prototype.getRecurrenceRule = function () {\r\n var ruleData = RULEFREQ + EQUAL;\r\n switch (this.repeatType.value) {\r\n case DAILY:\r\n ruleData += RULEDAILY + SEMICOLON;\r\n break;\r\n case WEEKLY:\r\n ruleData += RULEWEEKLY + SEMICOLON + this.getSelectedDaysData();\r\n break;\r\n case MONTHLY:\r\n ruleData += RULEMONTHLY + SEMICOLON + this.getSelectedMonthData();\r\n break;\r\n case YEARLY:\r\n ruleData += RULEYEARLY + SEMICOLON + this.getSelectedMonthData() + this.getYearMonthRuleData();\r\n break;\r\n case NONE:\r\n return '';\r\n }\r\n ruleData += this.getIntervalData();\r\n switch (this.endType.value) {\r\n case UNTIL:\r\n ruleData += this.getUntilData();\r\n break;\r\n case COUNT:\r\n ruleData += this.getEndOnCount();\r\n break;\r\n }\r\n return ruleData;\r\n };\r\n RecurrenceEditor.prototype.setRecurrenceRule = function (rule, startDate) {\r\n if (startDate === void 0) { startDate = this.startDate; }\r\n if (!rule) {\r\n this.repeatType.setProperties({ value: NONE });\r\n return;\r\n }\r\n this.renderStatus = false;\r\n this.ruleObject = extractObjectFromRule(rule);\r\n var endon = this.ruleObject.count ? COUNT : (this.ruleObject.until ? UNTIL : NEVER);\r\n switch (this.ruleObject.freq) {\r\n case RULEDAILY:\r\n this.startState(DAILY, endon, startDate);\r\n this.updateUI(DAILY, endon);\r\n break;\r\n case RULEWEEKLY:\r\n this.startState(WEEKLY, endon, startDate);\r\n this.updateUI(WEEKLY, endon);\r\n break;\r\n case RULEMONTHLY:\r\n this.startState(MONTHLY, endon, startDate);\r\n this.updateUI(MONTHLY, endon);\r\n break;\r\n case RULEYEARLY:\r\n this.startState(YEARLY, endon, startDate);\r\n this.updateUI(YEARLY, endon);\r\n break;\r\n }\r\n this.renderStatus = true;\r\n this.triggerChangeEvent();\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n RecurrenceEditor.prototype.destroy = function () {\r\n this.destroyComponents();\r\n _super.prototype.destroy.call(this);\r\n var removeClasses = ['e-' + this.getModuleName()];\r\n if (this.cssClass) {\r\n removeClasses = removeClasses.concat(this.cssClass.split(' '));\r\n }\r\n removeClass([this.element], removeClasses);\r\n while (this.element.firstElementChild) {\r\n this.element.removeChild(this.element.firstElementChild);\r\n }\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} Returns the module name\r\n * @private\r\n */\r\n RecurrenceEditor.prototype.getModuleName = function () {\r\n return 'recurrenceeditor';\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} Returns the persisted state\r\n */\r\n RecurrenceEditor.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * Initialize the control rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n RecurrenceEditor.prototype.render = function () {\r\n this.initialize();\r\n this.rtlClass(this.enableRtl);\r\n this.renderStatus = true;\r\n this.renderComplete();\r\n };\r\n /**\r\n * Called internally, if any of the property value changed.\r\n *\r\n * @param {RecurrenceEditorModel} newProp Accepts the changed properties new values\r\n * @param {RecurrenceEditorModel} oldProp Accepts the changed properties old values\r\n * @returns {void}\r\n * @private\r\n */\r\n RecurrenceEditor.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'startDate':\r\n this.selectMonthDay(newProp.startDate);\r\n this.updateUntilDate(newProp.startDate);\r\n this.endType.setProperties({ index: 0 });\r\n break;\r\n case 'enableRtl':\r\n this.rtlClass(newProp.enableRtl);\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.element], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.element], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'selectedType':\r\n this.repeatType.setProperties({ index: this.selectedType });\r\n break;\r\n case 'minDate':\r\n this.untilDateObj.setProperties({ minDate: this.minDate });\r\n break;\r\n case 'maxDate':\r\n this.untilDateObj.setProperties({ maxDate: this.maxDate });\r\n break;\r\n case 'value':\r\n if (this.getRecurrenceRule() !== this.value) {\r\n this.setRecurrenceRule(this.value);\r\n }\r\n break;\r\n case 'calendarMode':\r\n this.calendarMode = newProp.calendarMode;\r\n this.calendarUtil = getCalendarUtil(newProp.calendarMode);\r\n break;\r\n case 'locale':\r\n case 'frequencies':\r\n case 'firstDayOfWeek':\r\n this.refresh();\r\n break;\r\n case 'dateFormat':\r\n this.untilDateObj.setProperties({ format: newProp.dateFormat });\r\n break;\r\n }\r\n }\r\n };\r\n __decorate([\r\n Property(['none', 'daily', 'weekly', 'monthly', 'yearly'])\r\n ], RecurrenceEditor.prototype, \"frequencies\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], RecurrenceEditor.prototype, \"firstDayOfWeek\", void 0);\r\n __decorate([\r\n Property(new Date())\r\n ], RecurrenceEditor.prototype, \"startDate\", void 0);\r\n __decorate([\r\n Property()\r\n ], RecurrenceEditor.prototype, \"dateFormat\", void 0);\r\n __decorate([\r\n Property('Gregorian')\r\n ], RecurrenceEditor.prototype, \"calendarMode\", void 0);\r\n __decorate([\r\n Property()\r\n ], RecurrenceEditor.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property()\r\n ], RecurrenceEditor.prototype, \"value\", void 0);\r\n __decorate([\r\n Property(new Date(1900, 0, 1))\r\n ], RecurrenceEditor.prototype, \"minDate\", void 0);\r\n __decorate([\r\n Property(new Date(2099, 11, 31))\r\n ], RecurrenceEditor.prototype, \"maxDate\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], RecurrenceEditor.prototype, \"selectedType\", void 0);\r\n __decorate([\r\n Event()\r\n ], RecurrenceEditor.prototype, \"change\", void 0);\r\n RecurrenceEditor = __decorate([\r\n NotifyPropertyChanges\r\n ], RecurrenceEditor);\r\n return RecurrenceEditor;\r\n}(Component));\r\nexport { RecurrenceEditor };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { addClass, createElement, extend, isNullOrUndefined, closest, setStyleAttribute } from '@syncfusion/ej2-base';\r\nimport { formatUnit, remove, removeClass } from '@syncfusion/ej2-base';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Base class for the common drag and resize related actions\r\n */\r\nvar ActionBase = /** @class */ (function () {\r\n function ActionBase(parent) {\r\n this.daysVariation = 0;\r\n this.parent = parent;\r\n this.actionObj = {\r\n X: 0, Y: 0, groupIndex: 0, cellWidth: 0, cellHeight: 0, slotInterval: 0, interval: 0, actionIndex: 0,\r\n cloneElement: [], originalElement: [], action: null, isAllDay: null, excludeSelectors: null,\r\n index: 0, navigationInterval: null, scrollInterval: null\r\n };\r\n this.scrollArgs = { element: null, width: 0, height: 0 };\r\n this.resizeEdges = { left: false, right: false, top: false, bottom: false };\r\n this.scrollEdges = { left: false, right: false, top: false, bottom: false };\r\n }\r\n ActionBase.prototype.getChangedData = function (multiData) {\r\n var _this = this;\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n eventObj[this.parent.eventFields.startTime] = this.actionObj.start;\r\n eventObj[this.parent.eventFields.endTime] = this.actionObj.end;\r\n if (!isNullOrUndefined(this.actionObj.isAllDay)) {\r\n eventObj[this.parent.eventFields.isAllDay] = this.actionObj.isAllDay;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var originalElement = this.getOriginalElement(this.actionObj.element);\r\n if (originalElement) {\r\n var indexCol_1 = originalElement.map(function (element) { return parseInt(element.getAttribute('data-group-index'), 10); });\r\n if (indexCol_1.indexOf(this.actionObj.groupIndex) === -1 || (!isNullOrUndefined(multiData) && multiData.length > 0)) {\r\n var cloneIndex_1 = parseInt(this.actionObj.clone.getAttribute('data-group-index'), 10);\r\n indexCol_1 = indexCol_1.filter(function (index) { return index !== cloneIndex_1; });\r\n indexCol_1.push(this.actionObj.groupIndex);\r\n if (multiData && multiData.length > 0) {\r\n multiData.forEach(function (data) {\r\n _this.parent.resourceBase.getResourceData(data, _this.actionObj.groupIndex, indexCol_1);\r\n });\r\n }\r\n else {\r\n this.parent.resourceBase.getResourceData(eventObj, this.actionObj.groupIndex, indexCol_1);\r\n }\r\n }\r\n }\r\n }\r\n return eventObj;\r\n };\r\n ActionBase.prototype.saveChangedData = function (eventArgs, isMultiSelect) {\r\n if (isMultiSelect === void 0) { isMultiSelect = false; }\r\n this.parent.activeEventData.event = this.actionObj.event;\r\n this.parent.currentAction = 'Save';\r\n var currentAction;\r\n var eventsCollection = [eventArgs.data];\r\n if (isMultiSelect) {\r\n eventsCollection = eventArgs.selectedData;\r\n }\r\n for (var _i = 0, eventsCollection_1 = eventsCollection; _i < eventsCollection_1.length; _i++) {\r\n var eventObj = eventsCollection_1[_i];\r\n var isSameResource = (this.parent.activeViewOptions.group.resources.length > 0) ?\r\n parseInt(this.actionObj.element.getAttribute('data-group-index'), 10) === this.actionObj.groupIndex : true;\r\n if (+eventObj[this.parent.eventFields.startTime] === +this.actionObj.event[this.parent.eventFields.startTime] &&\r\n +eventObj[this.parent.eventFields.endTime] === +this.actionObj.event[this.parent.eventFields.endTime] && isSameResource) {\r\n return;\r\n }\r\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\r\n var eveId = (eventObj[this.parent.eventFields.recurrenceID] || eventObj[this.parent.eventFields.id]);\r\n if (eventObj[this.parent.eventFields.id] === eventObj[this.parent.eventFields.recurrenceID]) {\r\n eventObj[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\r\n currentAction = 'EditOccurrence';\r\n }\r\n if (this.parent.enableRecurrenceValidation\r\n && this.parent.eventWindow.editOccurrenceValidation(eveId, eventObj, this.actionObj.event)) {\r\n return;\r\n }\r\n }\r\n else {\r\n currentAction = null;\r\n }\r\n if (eventObj[this.parent.eventFields.startTimezone] || eventObj[this.parent.eventFields.endTimezone]) {\r\n this.parent.eventBase.timezoneConvert(eventObj);\r\n }\r\n this.parent.crudModule.saveEvent(eventObj, currentAction);\r\n }\r\n };\r\n ActionBase.prototype.calculateIntervalTime = function (date) {\r\n var intervalTime = new Date(+date);\r\n intervalTime.setMinutes(Math.floor(intervalTime.getMinutes() / this.actionObj.interval) * this.actionObj.interval);\r\n return intervalTime;\r\n };\r\n ActionBase.prototype.getContentAreaDimension = function () {\r\n var viewElement = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var trElement = [].slice.call(viewElement.querySelector('tr').children);\r\n if (!this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !this.parent.isAdaptive && !this.parent.enableAdaptiveUI) {\r\n trElement = this.getResourceElements(trElement);\r\n }\r\n var leftOffset = trElement[0].getBoundingClientRect();\r\n var rightOffset = trElement.slice(-1)[0].getBoundingClientRect();\r\n var viewDimension = {\r\n bottom: viewElement.scrollHeight - 5,\r\n left: this.parent.enableRtl ? rightOffset.left : leftOffset.left,\r\n right: this.parent.enableRtl ? leftOffset.right : rightOffset.right,\r\n top: 0,\r\n leftOffset: this.parent.enableRtl ? rightOffset.right : leftOffset.right,\r\n rightOffset: this.parent.enableRtl ? leftOffset.left : rightOffset.left\r\n };\r\n return viewDimension;\r\n };\r\n ActionBase.prototype.getPageCoordinates = function (e) {\r\n var eventArgs = e.event;\r\n return eventArgs && eventArgs.changedTouches ? eventArgs.changedTouches[0] : e.changedTouches ? e.changedTouches[0] :\r\n eventArgs || e;\r\n };\r\n ActionBase.prototype.getIndex = function (index) {\r\n var contentElements = [].slice.call(this.parent.getContentTable().querySelector('tr').children);\r\n var indexes = { minIndex: 0, maxIndex: contentElements.length - 1 };\r\n if (this.actionObj.action === 'resize' && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !this.parent.uiStateValues.isGroupAdaptive && !this.parent.activeView.isTimelineView()) {\r\n var groupElements = this.getResourceElements(contentElements);\r\n indexes.minIndex = groupElements[0].cellIndex;\r\n indexes.maxIndex = groupElements.slice(-1)[0].cellIndex;\r\n }\r\n if (index < indexes.minIndex) {\r\n index = indexes.minIndex;\r\n }\r\n if (index > indexes.maxIndex) {\r\n index = indexes.maxIndex;\r\n }\r\n return index;\r\n };\r\n ActionBase.prototype.updateTimePosition = function (date, multiData) {\r\n var index = 0;\r\n for (var _i = 0, _a = this.actionObj.cloneElement; _i < _a.length; _i++) {\r\n var cloneElement = _a[_i];\r\n var timeElement = cloneElement.querySelector('.' + cls.APPOINTMENT_TIME);\r\n if (timeElement) {\r\n var startTime = this.actionObj.start;\r\n var endTime = this.actionObj.end;\r\n if (multiData && multiData.length > 0) {\r\n startTime = multiData[index][this.parent.eventFields.startTime];\r\n endTime = multiData[index][this.parent.eventFields.endTime];\r\n }\r\n timeElement.innerHTML = this.parent.getTimeString(startTime) + ' - ' +\r\n this.parent.getTimeString(endTime);\r\n }\r\n index++;\r\n }\r\n if (!this.parent.activeViewOptions.timeScale.enable || !this.parent.isAdaptive || this.parent.currentView === 'Month' ||\r\n this.parent.currentView === 'TimelineMonth') {\r\n return;\r\n }\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CLONE_TIME_INDICATOR_CLASS);\r\n if (!timeIndicator) {\r\n timeIndicator = createElement('div', { className: cls.CLONE_TIME_INDICATOR_CLASS });\r\n var wrapperClass = this.parent.activeView.isTimelineView() ? cls.DATE_HEADER_WRAP_CLASS : cls.TIME_CELLS_WRAP_CLASS;\r\n this.parent.element.querySelector('.' + wrapperClass).appendChild(timeIndicator);\r\n }\r\n timeIndicator.innerHTML = this.parent.getTimeString(date);\r\n var offsetValue = 0;\r\n if (this.parent.activeView.isTimelineView()) {\r\n if (this.parent.enableRtl) {\r\n var rightValue = parseInt(this.actionObj.clone.style.right, 10);\r\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.left ?\r\n rightValue + this.actionObj.clone.offsetWidth : rightValue;\r\n timeIndicator.style.right = formatUnit(offsetValue);\r\n }\r\n else {\r\n var leftValue = parseInt(this.actionObj.clone.style.left, 10);\r\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.left ?\r\n leftValue : leftValue + this.actionObj.clone.offsetWidth;\r\n timeIndicator.style.left = formatUnit(offsetValue);\r\n }\r\n }\r\n else {\r\n offsetValue = this.actionObj.action === 'drag' || this.resizeEdges.top ? this.actionObj.clone.offsetTop :\r\n this.actionObj.clone.offsetTop + this.actionObj.clone.offsetHeight;\r\n timeIndicator.style.top = formatUnit(offsetValue);\r\n }\r\n };\r\n ActionBase.prototype.getResourceElements = function (table) {\r\n var _this = this;\r\n return table.filter(function (element) {\r\n return parseInt(element.getAttribute('data-group-index'), 10) === _this.actionObj.groupIndex;\r\n });\r\n };\r\n ActionBase.prototype.getOriginalElement = function (element) {\r\n var originalElement;\r\n var guid = element.getAttribute('data-guid');\r\n var isMorePopup = element.offsetParent && element.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS);\r\n if (isMorePopup || this.parent.activeView.isTimelineView()) {\r\n originalElement = [].slice.call(this.parent.element.querySelectorAll('[data-guid=\"' + guid + '\"]'));\r\n }\r\n else {\r\n var tr = closest(element, 'tr');\r\n if (tr) {\r\n originalElement = [].slice.call(tr.querySelectorAll('[data-guid=\"' + guid + '\"]'));\r\n }\r\n }\r\n return originalElement;\r\n };\r\n ActionBase.prototype.createCloneElement = function (element) {\r\n var cloneWrapper = createElement('div', { innerHTML: element.outerHTML });\r\n var cloneElement = cloneWrapper.children[0];\r\n var cloneClassLists = [cls.CLONE_ELEMENT_CLASS];\r\n cloneClassLists.push((this.actionObj.action === 'drag') ? cls.DRAG_CLONE_CLASS : cls.RESIZE_CLONE_CLASS);\r\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineMonth') {\r\n cloneClassLists.push(cls.MONTH_CLONE_ELEMENT_CLASS);\r\n }\r\n addClass([cloneElement], cloneClassLists);\r\n addClass([element], cls.EVENT_ACTION_CLASS);\r\n if (!isNullOrUndefined(element.parentElement)) {\r\n element.parentElement.appendChild(cloneElement);\r\n }\r\n cloneElement.style.width = formatUnit(cloneElement.offsetWidth - 2);\r\n var dragElement = document.querySelector(this.parent.eventDragArea);\r\n if (this.parent.eventDragArea && this.actionObj.action === 'drag' && dragElement) {\r\n dragElement.appendChild(cloneElement);\r\n }\r\n setStyleAttribute(cloneElement, { border: '0px' });\r\n return cloneElement;\r\n };\r\n ActionBase.prototype.removeCloneElementClasses = function () {\r\n var elements = this.actionObj.originalElement;\r\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineYear' ||\r\n this.parent.currentView === 'Day' || this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek') {\r\n elements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.EVENT_ACTION_CLASS));\r\n }\r\n removeClass(elements, cls.EVENT_ACTION_CLASS);\r\n };\r\n ActionBase.prototype.removeCloneElement = function () {\r\n this.actionObj.originalElement = [];\r\n var dynamicEle = [].slice.call(this.parent.element.querySelectorAll('.e-dynamic-clone'));\r\n for (var _i = 0, dynamicEle_1 = dynamicEle; _i < dynamicEle_1.length; _i++) {\r\n var cloneEle = dynamicEle_1[_i];\r\n remove(cloneEle);\r\n }\r\n for (var _a = 0, _b = this.actionObj.cloneElement; _a < _b.length; _a++) {\r\n var cloneElement = _b[_a];\r\n if (!isNullOrUndefined(cloneElement.parentNode)) {\r\n remove(cloneElement);\r\n }\r\n }\r\n this.actionObj.cloneElement = [];\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CLONE_TIME_INDICATOR_CLASS);\r\n if (timeIndicator) {\r\n remove(timeIndicator);\r\n }\r\n };\r\n ActionBase.prototype.getCursorElement = function (e) {\r\n var pages = this.getPageCoordinates(e);\r\n return document.elementFromPoint(pages.clientX, pages.clientY);\r\n };\r\n ActionBase.prototype.autoScroll = function () {\r\n var parent = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var yIsScrollable = parent.offsetHeight <= parent.scrollHeight;\r\n var xIsScrollable = parent.offsetWidth <= parent.scrollWidth;\r\n var yInBounds = yIsScrollable && parent.scrollTop >= 0 && parent.scrollTop + parent.offsetHeight <= parent.scrollHeight;\r\n var xInBounds = xIsScrollable && parent.scrollLeft >= 0 && parent.scrollLeft + parent.offsetWidth <= parent.scrollWidth;\r\n if (this.actionObj.action === 'resize' && this.scrollEdges.right && (parent.scrollLeft + parent.offsetWidth) > parent.scrollWidth) {\r\n var tdCollections = ([].slice.call(this.parent.getContentTable().querySelector('tr').children)).length - 1;\r\n var cellIndex = Math.ceil((this.actionObj.clone.offsetLeft + (this.actionObj.clone.offsetWidth)) /\r\n this.actionObj.cellWidth);\r\n xInBounds = cellIndex === tdCollections;\r\n }\r\n if (yInBounds && (this.scrollEdges.top || this.scrollEdges.bottom)) {\r\n parent.scrollTop += this.scrollEdges.top ? -this.actionObj.scroll.scrollBy : this.actionObj.scroll.scrollBy;\r\n if (this.actionObj.action === 'resize') {\r\n if (parent.scrollHeight !== parent.offsetHeight + parent.scrollTop && parent.scrollTop > 0) {\r\n this.actionObj.Y += this.scrollEdges.top ? this.actionObj.scroll.scrollBy : -this.actionObj.scroll.scrollBy;\r\n }\r\n }\r\n }\r\n if (xInBounds && (this.scrollEdges.left || this.scrollEdges.right)) {\r\n parent.scrollLeft += this.scrollEdges.left ? -this.actionObj.scroll.scrollBy : this.actionObj.scroll.scrollBy;\r\n if (this.actionObj.action === 'resize') {\r\n if (parent.scrollWidth !== parent.offsetWidth + parent.scrollLeft && parent.scrollLeft > 0) {\r\n this.actionObj.X += this.scrollEdges.left ? this.actionObj.scroll.scrollBy : -this.actionObj.scroll.scrollBy;\r\n }\r\n }\r\n }\r\n };\r\n ActionBase.prototype.autoScrollValidation = function () {\r\n if (!this.actionObj.scroll.enable) {\r\n return false;\r\n }\r\n var res = this.parent.boundaryValidation(this.actionObj.pageY, this.actionObj.pageX);\r\n this.scrollEdges = res;\r\n return res.bottom || res.top || res.left || res.right;\r\n };\r\n ActionBase.prototype.actionClass = function (type) {\r\n if (type === 'addClass') {\r\n addClass([this.parent.element], cls.EVENT_ACTION_CLASS);\r\n }\r\n else {\r\n removeClass([this.parent.element], cls.EVENT_ACTION_CLASS);\r\n }\r\n };\r\n ActionBase.prototype.updateScrollPosition = function (e) {\r\n var _this = this;\r\n if (this.actionObj.scroll.enable && isNullOrUndefined(this.actionObj.scrollInterval)) {\r\n this.actionObj.scrollInterval = window.setInterval(function () {\r\n if (_this.autoScrollValidation() && !_this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n if (_this.parent.activeView.isTimelineView() && _this.parent.activeViewOptions.group.resources.length > 0\r\n && _this.actionObj.groupIndex < 0) {\r\n return;\r\n }\r\n _this.autoScroll();\r\n if (_this.actionObj.action === 'drag') {\r\n _this.parent.dragAndDropModule.updateDraggingDateTime(e);\r\n }\r\n else {\r\n _this.parent.resizeModule.updateResizingDirection(e);\r\n }\r\n }\r\n }, this.actionObj.scroll.timeDelay);\r\n }\r\n };\r\n ActionBase.prototype.updateOriginalElement = function (cloneElement) {\r\n var query = '[data-id=\"' + cloneElement.getAttribute('data-id') + '\"]';\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n query = query.concat('[data-group-index = \"' + cloneElement.getAttribute('data-group-index') + '\"]');\r\n }\r\n var elements = [].slice.call(this.parent.element.querySelectorAll(query));\r\n addClass(elements, cls.EVENT_ACTION_CLASS);\r\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\r\n removeClass(eventWrappers, cls.EVENT_ACTION_CLASS);\r\n };\r\n ActionBase.prototype.getUpdatedEvent = function (startTime, endTime, eventObj) {\r\n var event = JSON.parse(JSON.stringify(eventObj));\r\n event[this.parent.eventFields.startTime] = startTime;\r\n event[this.parent.eventFields.endTime] = endTime;\r\n return event;\r\n };\r\n ActionBase.prototype.dynamicYearlyEventsRendering = function (event, isResize) {\r\n if (isResize === void 0) { isResize = false; }\r\n var appWidth = this.actionObj.cellWidth - 7;\r\n if (isResize && (this.resizeEdges.left || this.resizeEdges.right)) {\r\n appWidth = this.actionObj.cellWidth * event.count;\r\n }\r\n if (!isResize && (this.parent.activeViewOptions.orientation === 'Horizontal' && this.parent.activeViewOptions.group.resources.length === 0)) {\r\n var eventObj = this.yearEvent.isSpannedEvent(event, event[this.parent.eventFields.startTime]);\r\n if (eventObj[this.parent.eventFields.startTime].getTime() ===\r\n eventObj[this.parent.eventFields.endTime].getTime()) {\r\n eventObj.isSpanned.count = 1;\r\n }\r\n appWidth = eventObj.isSpanned.count * this.actionObj.cellWidth;\r\n }\r\n var appointmentElement = this.createAppointmentElement(this.actionObj.groupIndex, event[this.parent.eventFields.subject]);\r\n appointmentElement.setAttribute('drag', 'true');\r\n addClass([appointmentElement], cls.CLONE_ELEMENT_CLASS);\r\n setStyleAttribute(appointmentElement, {\r\n 'width': appWidth + 'px', 'border': '0px', 'pointer-events': 'none',\r\n 'position': 'absolute', 'overflow': 'hidden', 'padding': '3px'\r\n });\r\n if (this.actionObj.clone.style.backgroundColor !== '') {\r\n setStyleAttribute(appointmentElement, { 'backgroundColor': this.actionObj.clone.style.backgroundColor });\r\n }\r\n var date = util.resetTime(event[this.parent.eventFields.startTime]).getTime();\r\n var query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + date + '\"]';\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n query = '.' + cls.WORK_CELLS_CLASS + '[data-date=\"' + date + '\"][data-group-index=\"' + this.actionObj.groupIndex + '\"]';\r\n }\r\n var cellTd = this.parent.element.querySelector(query);\r\n if (isNullOrUndefined(cellTd)) {\r\n return;\r\n }\r\n if (isResize) {\r\n var dateHeader = cellTd.querySelector('.' + cls.DATE_HEADER_CLASS);\r\n var appHeight = this.actionObj.cellHeight * event.count -\r\n (dateHeader ? dateHeader.offsetHeight : 0) - 7;\r\n if (this.resizeEdges.right || this.resizeEdges.left) {\r\n appHeight = parseInt(this.actionObj.clone.style.height, 10);\r\n }\r\n setStyleAttribute(appointmentElement, { 'height': appHeight + 'px' });\r\n }\r\n this.renderDynamicElement(cellTd, appointmentElement, true);\r\n this.actionObj.cloneElement.push(appointmentElement);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ActionBase.prototype.renderDynamicElement = function (cellTd, element, isAppointment) {\r\n if (isAppointment === void 0) { isAppointment = false; }\r\n if (cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS)) {\r\n cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS).appendChild(element);\r\n }\r\n else {\r\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n wrapper.appendChild(element);\r\n cellTd.appendChild(wrapper);\r\n }\r\n };\r\n ActionBase.prototype.createAppointmentElement = function (resIndex, innerText) {\r\n var appointmentWrapper = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS,\r\n innerHTML: innerText\r\n });\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n appointmentWrapper.setAttribute('data-group-index', resIndex.toString());\r\n }\r\n return appointmentWrapper;\r\n };\r\n ActionBase.prototype.dynamicEventsRendering = function (event) {\r\n var _this = this;\r\n var dateRender = this.parent.activeView.renderDates;\r\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n var workDays = this.parent.activeViewOptions.workDays;\r\n var groupOrder;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resources = this.parent.resourceBase.lastResourceLevel.\r\n filter(function (res) { return res.groupIndex === _this.actionObj.groupIndex; });\r\n dateRender = resources[0].renderDates;\r\n var elementSelector = \".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + this.actionObj.groupIndex + \"\\\"]\";\r\n workCells = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\r\n workDays = resources[0].workDays;\r\n groupOrder = resources[0].groupOrder;\r\n }\r\n this.monthEvent.dateRender = dateRender;\r\n this.monthEvent.getSlotDates(workDays);\r\n if (this.resizeEdges.left || this.resizeEdges.right) {\r\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\r\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\r\n var wrapper = eventWrappers_1[_i];\r\n remove(wrapper);\r\n }\r\n }\r\n var spannedEvents = this.monthEvent.splitEvent(event, dateRender);\r\n for (var _a = 0, spannedEvents_1 = spannedEvents; _a < spannedEvents_1.length; _a++) {\r\n var event_1 = spannedEvents_1[_a];\r\n var day = this.parent.getIndexOfDate(dateRender, util.resetTime(event_1[this.monthEvent.fields.startTime]));\r\n var diffInDays = event_1.data.count;\r\n var appWidth = (diffInDays * this.actionObj.cellWidth) - 7;\r\n var appointmentElement = this.monthEvent.createAppointmentElement(event_1, this.actionObj.groupIndex, true);\r\n appointmentElement.setAttribute('drag', 'true');\r\n addClass([appointmentElement], cls.CLONE_ELEMENT_CLASS);\r\n this.monthEvent.applyResourceColor(appointmentElement, event_1, 'backgroundColor', groupOrder);\r\n setStyleAttribute(appointmentElement, { 'width': appWidth + 'px', 'border': '0px', 'pointer-events': 'none' });\r\n var cellTd = workCells[day];\r\n if (cellTd && isNullOrUndefined(this.parent.eventDragArea)) {\r\n this.monthEvent.renderElement(cellTd, appointmentElement, true);\r\n this.actionObj.cloneElement.push(appointmentElement);\r\n }\r\n }\r\n };\r\n ActionBase.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.actionObj = {};\r\n this.scrollArgs = {};\r\n this.resizeEdges = { left: false, right: false, top: false, bottom: false };\r\n this.scrollEdges = { left: false, right: false, top: false, bottom: false };\r\n };\r\n return ActionBase;\r\n}());\r\nexport { ActionBase };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable max-len */\r\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\r\nimport { getRecurrenceStringFromDate, generate } from '../../recurrence-editor/date-generator';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Schedule CRUD operations\r\n */\r\nvar Crud = /** @class */ (function () {\r\n function Crud(parent) {\r\n this.parent = parent;\r\n this.crudObj = { sourceEvent: null, targetEvent: null, isCrudAction: false };\r\n }\r\n Crud.prototype.getQuery = function () {\r\n var start = this.parent.activeView.startDate();\r\n var end = this.parent.activeView.endDate();\r\n return this.parent.dataModule.generateQuery(start, end);\r\n };\r\n Crud.prototype.getTable = function () {\r\n if (this.parent.eventSettings.query) {\r\n var query = this.parent.eventSettings.query.clone();\r\n return query.fromTable;\r\n }\r\n return null;\r\n };\r\n Crud.prototype.refreshDataManager = function () {\r\n var _this = this;\r\n if (!this.parent.activeView) {\r\n return;\r\n }\r\n var start = this.parent.activeView.startDate();\r\n var end = this.parent.activeView.endDate();\r\n var dataManager = this.parent.dataModule.getData(this.parent.dataModule.generateQuery(start, end));\r\n dataManager.then(function (e) { return _this.dataManagerSuccess(e); }).catch(function (e) { return _this.dataManagerFailure(e); });\r\n };\r\n Crud.prototype.dataManagerSuccess = function (e) {\r\n var _this = this;\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.trigger(events.dataBinding, e, function (args) {\r\n var resultData = extend([], args.result, null, true);\r\n _this.parent.eventsData = resultData.filter(function (data) { return !data[_this.parent.eventFields.isBlock]; });\r\n _this.parent.blockData = resultData.filter(function (data) { return data[_this.parent.eventFields.isBlock]; });\r\n _this.parent.refreshEvents(false);\r\n if (_this.parent.dragAndDropModule && _this.parent.dragAndDropModule.actionObj.action === 'drag') {\r\n _this.parent.dragAndDropModule.navigationWrapper();\r\n }\r\n _this.parent.trigger(events.dataBound, null, function () {\r\n _this.parent.hideSpinner();\r\n if (_this.parent.isPrinting) {\r\n _this.parent.notify(events.print, {});\r\n }\r\n });\r\n });\r\n };\r\n Crud.prototype.dataManagerFailure = function (e) {\r\n var _this = this;\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.trigger(events.actionFailure, { error: e }, function () { return _this.parent.hideSpinner(); });\r\n };\r\n Crud.prototype.refreshData = function (args) {\r\n var _this = this;\r\n var actionArgs = {\r\n requestType: args.requestType, cancel: false, data: args.data,\r\n addedRecords: args.editParams.addedRecords, changedRecords: args.editParams.changedRecords,\r\n deletedRecords: args.editParams.deletedRecords\r\n };\r\n if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj && this.parent.dragAndDropModule.actionObj.element) {\r\n this.parent.dragAndDropModule.actionObj.element.style.display = 'none';\r\n }\r\n if (this.parent.resizeModule && this.parent.resizeModule.actionObj && this.parent.resizeModule.actionObj.element) {\r\n this.parent.resizeModule.actionObj.element.style.display = 'none';\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.activeViewOptions.group.allowGroupEdit\r\n && !this.parent.rowAutoHeight && !this.parent.virtualScrollModule && this.parent.activeViewOptions.group.byGroupID) {\r\n if (args.requestType === 'eventCreated' || args.requestType === 'eventRemoved') {\r\n this.crudObj.isCrudAction = true;\r\n this.crudObj.sourceEvent = [];\r\n var crudData = args.data instanceof Array ? (args.data.length === 0 &&\r\n args.requestType === 'eventRemoved' ? args.editParams.deletedRecords : args.data) :\r\n ((typeof args.data === 'string' || typeof args.data === 'number') && args.requestType === 'eventRemoved') ?\r\n args.editParams.deletedRecords : [args.data];\r\n var _loop_1 = function (data) {\r\n this_1.crudObj.isCrudAction = !(args.requestType === 'eventRemoved' && !isNullOrUndefined(data.parent));\r\n var groupIndex = this_1.parent.eventBase.getGroupIndexFromEvent(data);\r\n if (groupIndex > -1 && this_1.parent.crudModule.crudObj.sourceEvent.filter(function (tdData) { return tdData.groupIndex === groupIndex; }).length === 0\r\n && this_1.crudObj.isCrudAction) {\r\n this_1.crudObj.sourceEvent.push(this_1.parent.resourceBase.lastResourceLevel[groupIndex]);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, crudData_1 = crudData; _i < crudData_1.length; _i++) {\r\n var data = crudData_1[_i];\r\n _loop_1(data);\r\n }\r\n this.crudObj.targetEvent = this.crudObj.sourceEvent;\r\n }\r\n }\r\n if (this.parent.dataModule.dataManager.dataSource.offline) {\r\n this.parent.trigger(events.actionComplete, actionArgs, function (offlineArgs) {\r\n if (!offlineArgs.cancel) {\r\n _this.refreshDataManager();\r\n }\r\n });\r\n }\r\n else {\r\n args.promise.then(function () {\r\n if (!_this.parent || _this.parent && _this.parent.isDestroyed) {\r\n return;\r\n }\r\n _this.parent.trigger(events.actionComplete, actionArgs, function (onlineArgs) {\r\n if (!onlineArgs.cancel) {\r\n _this.refreshDataManager();\r\n }\r\n });\r\n }).catch(function (e) {\r\n if (!_this.parent || _this.parent && _this.parent.isDestroyed) {\r\n return;\r\n }\r\n _this.parent.trigger(events.actionFailure, { error: e });\r\n });\r\n }\r\n };\r\n Crud.prototype.addEvent = function (eventData) {\r\n var _this = this;\r\n if (this.parent.eventSettings.allowAdding && !this.parent.activeViewOptions.readonly) {\r\n if (!this.isBlockEvent(eventData) && this.parent.eventBase.isBlockRange(eventData)) {\r\n this.parent.quickPopup.openValidationError('blockAlert', eventData);\r\n return;\r\n }\r\n var addEvents = (eventData instanceof Array) ? eventData : [eventData];\r\n var args = {\r\n requestType: 'eventCreate', cancel: false, data: addEvents,\r\n addedRecords: addEvents, changedRecords: [], deletedRecords: []\r\n };\r\n this.parent.trigger(events.actionBegin, args, function (addArgs) {\r\n if (!addArgs.cancel) {\r\n var fields = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n var promise = void 0;\r\n if (addArgs.addedRecords instanceof Array) {\r\n for (var _i = 0, _a = addArgs.addedRecords; _i < _a.length; _i++) {\r\n var event_1 = _a[_i];\r\n event_1 = _this.parent.eventBase.updateEventDateTime(event_1);\r\n var eventData_1 = extend({}, _this.parent.eventBase.processTimezone(event_1, true), null, true);\r\n editParams.addedRecords.push(eventData_1);\r\n }\r\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\r\n }\r\n else {\r\n var event_2 = _this.parent.eventBase.processTimezone(addArgs.addedRecords, true);\r\n editParams.addedRecords.push(event_2);\r\n promise = _this.parent.dataModule.dataManager.insert(event_2, _this.getTable(), _this.getQuery());\r\n }\r\n var crudArgs = {\r\n requestType: 'eventCreated', cancel: false, data: addArgs.addedRecords, promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n }\r\n };\r\n Crud.prototype.saveEvent = function (eventData, action) {\r\n var _this = this;\r\n if (this.parent.eventSettings.allowEditing && !this.parent.activeViewOptions.readonly) {\r\n if (this.parent.currentAction !== 'EditFollowingEvents' && !this.isBlockEvent(eventData)\r\n && this.parent.eventBase.isBlockRange(eventData)) {\r\n this.parent.quickPopup.openValidationError('blockAlert', eventData);\r\n return;\r\n }\r\n this.parent.currentAction = action;\r\n if (action) {\r\n switch (action) {\r\n case 'Save':\r\n this.processSave(eventData);\r\n break;\r\n case 'EditOccurrence':\r\n this.processOccurrences(eventData, action);\r\n break;\r\n case 'EditFollowingEvents':\r\n this.processFollowSeries(eventData, action);\r\n break;\r\n case 'EditSeries':\r\n this.processEntireSeries(eventData, action);\r\n break;\r\n }\r\n }\r\n else {\r\n var updateEvents = (eventData instanceof Array) ? eventData : [eventData];\r\n var args = {\r\n requestType: 'eventChange', cancel: false, data: eventData,\r\n addedRecords: [], changedRecords: updateEvents, deletedRecords: []\r\n };\r\n this.parent.trigger(events.actionBegin, args, function (saveArgs) {\r\n if (!saveArgs.cancel) {\r\n var promise = void 0;\r\n var fields = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n if (saveArgs.changedRecords instanceof Array) {\r\n for (var _i = 0, _a = saveArgs.changedRecords; _i < _a.length; _i++) {\r\n var event_3 = _a[_i];\r\n event_3 = _this.parent.eventBase.updateEventDateTime(event_3);\r\n var eventData_2 = extend({}, _this.parent.eventBase.processTimezone(event_3, true), null, true);\r\n editParams.changedRecords.push(eventData_2);\r\n }\r\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\r\n }\r\n else {\r\n var event_4 = _this.parent.eventBase.processTimezone(saveArgs.changedRecords, true);\r\n editParams.changedRecords.push(event_4);\r\n promise = _this.parent.dataModule.dataManager.update(fields.id, event_4, _this.getTable(), _this.getQuery());\r\n }\r\n var crudArgs = {\r\n requestType: 'eventChanged', cancel: false,\r\n data: saveArgs.changedRecords, promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Crud.prototype.deleteEvent = function (eventData, action) {\r\n var _this = this;\r\n if (this.parent.eventSettings.allowDeleting && !this.parent.activeViewOptions.readonly) {\r\n this.parent.currentAction = action;\r\n var deleteEvents = [];\r\n if (typeof eventData === 'string' || typeof eventData === 'number') {\r\n deleteEvents = this.parent.eventsData.filter(function (eventObj) {\r\n return eventObj[_this.parent.eventFields.id] === eventData;\r\n });\r\n }\r\n else {\r\n deleteEvents = (eventData instanceof Array ? eventData : [eventData]);\r\n }\r\n if (action) {\r\n switch (action) {\r\n case 'Delete':\r\n this.processDelete(deleteEvents);\r\n break;\r\n case 'DeleteOccurrence':\r\n this.processOccurrences(deleteEvents, action);\r\n break;\r\n case 'DeleteFollowingEvents':\r\n this.processFollowSeries(deleteEvents, action);\r\n break;\r\n case 'DeleteSeries':\r\n this.processEntireSeries(deleteEvents, action);\r\n break;\r\n }\r\n }\r\n else {\r\n var args = {\r\n requestType: 'eventRemove', cancel: false, data: eventData,\r\n addedRecords: [], changedRecords: [], deletedRecords: deleteEvents\r\n };\r\n this.parent.trigger(events.actionBegin, args, function (deleteArgs) {\r\n if (!deleteArgs.cancel) {\r\n var promise = void 0;\r\n var fields = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n if (deleteArgs.deletedRecords.length > 1) {\r\n editParams.deletedRecords = editParams.deletedRecords.concat(deleteArgs.deletedRecords);\r\n promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\r\n }\r\n else {\r\n editParams.deletedRecords.push(deleteArgs.deletedRecords[0]);\r\n promise = _this.parent.dataModule.dataManager.remove(fields.id, deleteArgs.deletedRecords[0], _this.getTable(), _this.getQuery());\r\n }\r\n _this.parent.eventBase.selectWorkCellByTime(deleteArgs.deletedRecords);\r\n var crudArgs = {\r\n requestType: 'eventRemoved', cancel: false,\r\n data: deleteArgs.deletedRecords, promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Crud.prototype.processOccurrences = function (eventData, action) {\r\n var _this = this;\r\n var occurrenceData = [];\r\n var isDeletedRecords = false;\r\n if (eventData instanceof Array) {\r\n for (var _i = 0, eventData_3 = eventData; _i < eventData_3.length; _i++) {\r\n var event_5 = eventData_3[_i];\r\n occurrenceData.push({ occurrence: event_5, parent: this.getParentEvent(event_5) });\r\n }\r\n }\r\n else {\r\n occurrenceData = { occurrence: eventData, parent: this.getParentEvent(eventData) };\r\n }\r\n var updateEvents = (eventData instanceof Array) ? eventData : [eventData];\r\n var args = {\r\n requestType: action === 'EditOccurrence' ? 'eventChange' : 'eventRemove', cancel: false,\r\n addedRecords: [], changedRecords: updateEvents, deletedRecords: []\r\n };\r\n args.data = occurrenceData;\r\n this.parent.trigger(events.actionBegin, args, function (occurrenceArgs) {\r\n if (!occurrenceArgs.cancel) {\r\n var fields = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n var occurrenceEvents = (occurrenceData instanceof Array ? occurrenceData : [occurrenceData]);\r\n var _loop_2 = function (a, count) {\r\n var childEvent = occurrenceArgs.changedRecords[a];\r\n var parentEvent = occurrenceEvents[a].parent;\r\n var parentException = parentEvent[fields.recurrenceException];\r\n var editedData = void 0;\r\n var exceptionDate = void 0;\r\n switch (action) {\r\n case 'EditOccurrence':\r\n editedData = _this.parent.eventsProcessed.filter(function (event) { return event.Guid === childEvent.Guid; })[0];\r\n exceptionDate = _this.excludeDateCheck(editedData[fields.startTime], parentException);\r\n if (exceptionDate !== parentEvent[fields.recurrenceException]) {\r\n parentEvent[fields.recurrenceException] = exceptionDate;\r\n childEvent[fields.recurrenceException] = getRecurrenceStringFromDate(editedData[fields.startTime]);\r\n childEvent[fields.recurrenceID] = parentEvent[fields.id];\r\n childEvent[fields.followingID] = null;\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\r\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\r\n }\r\n else {\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\r\n }\r\n break;\r\n case 'DeleteOccurrence':\r\n if (!childEvent[fields.recurrenceException]) {\r\n parentEvent[fields.recurrenceException] =\r\n _this.excludeDateCheck(childEvent[fields.startTime], parentException);\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\r\n }\r\n if (childEvent[fields.id] !== parentEvent[fields.id]) {\r\n editParams.deletedRecords.push(childEvent);\r\n isDeletedRecords = true;\r\n }\r\n break;\r\n }\r\n };\r\n for (var a = 0, count = occurrenceArgs.changedRecords.length; a < count; a++) {\r\n _loop_2(a, count);\r\n }\r\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\r\n _this.parent.eventBase.selectWorkCellByTime(occurrenceArgs.changedRecords);\r\n var crudArgs = {\r\n requestType: action === 'EditOccurrence' ? 'eventChanged' : 'eventRemoved',\r\n cancel: false, data: isDeletedRecords ? occurrenceArgs.deletedRecords : occurrenceArgs.changedRecords,\r\n promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n };\r\n Crud.prototype.processFollowSeries = function (eventData, action) {\r\n var _this = this;\r\n var followData = [];\r\n if (eventData instanceof Array) {\r\n for (var _i = 0, eventData_4 = eventData; _i < eventData_4.length; _i++) {\r\n var event_6 = eventData_4[_i];\r\n followData.push({ occurrence: event_6, parent: this.getParentEvent(event_6) });\r\n }\r\n }\r\n else {\r\n followData = { occurrence: eventData, parent: this.getParentEvent(eventData) };\r\n }\r\n var updateFollowEvents = (eventData instanceof Array) ? eventData : [eventData];\r\n var args = {\r\n requestType: action === 'EditFollowingEvents' ? 'eventChange' : 'eventRemove', cancel: false,\r\n addedRecords: [], changedRecords: updateFollowEvents, deletedRecords: []\r\n };\r\n args.data = followData;\r\n this.parent.trigger(events.actionBegin, args, function (followArgs) {\r\n if (!followArgs.cancel) {\r\n var fields_1 = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n var followEvents = followData instanceof Array ? followData : [followData];\r\n var _loop_3 = function (a, count) {\r\n var childEvent = followArgs.changedRecords[a];\r\n var parentEvent = followEvents[a].parent;\r\n var followData_1 = _this.parent.eventBase.getEventCollections(parentEvent, childEvent);\r\n var isSpanned = void 0;\r\n switch (action) {\r\n case 'EditFollowingEvents':\r\n _this.processRecurrenceRule(parentEvent, childEvent);\r\n isSpanned = !_this.parent.eventBase.isFollowingEvent(parentEvent, childEvent);\r\n childEvent[fields_1.followingID] = isSpanned ? null : parentEvent[fields_1.id];\r\n childEvent[fields_1.recurrenceID] = null;\r\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\r\n if (!_this.parent.uiStateValues.isIgnoreOccurrence) {\r\n childEvent[fields_1.recurrenceException] = null;\r\n if (followData_1.occurrence.length > 0) {\r\n var rule = followData_1.occurrence.slice(-1)[0][fields_1.recurrenceRule];\r\n if (rule.indexOf('COUNT') === -1) {\r\n childEvent[fields_1.recurrenceRule] = rule;\r\n }\r\n }\r\n if (followData_1.follow.length > 0) {\r\n childEvent[fields_1.recurrenceRule] = followData_1.follow.slice(-1)[0][fields_1.recurrenceRule];\r\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.follow);\r\n }\r\n if (isSpanned) {\r\n followData_1.occurrence = followData_1.occurrence.filter(function (eventObj) {\r\n return eventObj[fields_1.recurrenceID] === childEvent[fields_1.id];\r\n });\r\n }\r\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.occurrence);\r\n }\r\n break;\r\n case 'DeleteFollowingEvents':\r\n _this.processRecurrenceRule(parentEvent, childEvent[fields_1.startTime]);\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent, true));\r\n editParams.deletedRecords = editParams.deletedRecords.concat(followData_1.occurrence).concat(followData_1.follow);\r\n break;\r\n }\r\n };\r\n for (var a = 0, count = followArgs.changedRecords.length; a < count; a++) {\r\n _loop_3(a, count);\r\n }\r\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_1.id, _this.getTable(), _this.getQuery());\r\n _this.parent.eventBase.selectWorkCellByTime(followArgs.changedRecords);\r\n var crudArgs = {\r\n requestType: action === 'EditFollowingEvents' ? 'eventChanged' : 'eventRemoved',\r\n cancel: false, data: followArgs.changedRecords, promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n };\r\n Crud.prototype.processEntireSeries = function (eventData, action) {\r\n var _this = this;\r\n var seriesData = [];\r\n var isDeletedRecords = false;\r\n if (eventData instanceof Array) {\r\n for (var _i = 0, eventData_5 = eventData; _i < eventData_5.length; _i++) {\r\n var event_7 = eventData_5[_i];\r\n seriesData.push(this.getParentEvent(event_7, true));\r\n }\r\n }\r\n else {\r\n seriesData = this.getParentEvent(eventData, true);\r\n }\r\n var updateSeriesEvents = (eventData instanceof Array) ? eventData : [eventData];\r\n var args = {\r\n requestType: action === 'EditSeries' ? 'eventChange' : 'eventRemove', cancel: false,\r\n addedRecords: [], changedRecords: updateSeriesEvents, deletedRecords: []\r\n };\r\n args.data = seriesData;\r\n this.parent.trigger(events.actionBegin, args, function (seriesArgs) {\r\n if (!seriesArgs.cancel) {\r\n var fields_2 = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n var seriesEvents = seriesData instanceof Array ? seriesData : [seriesData];\r\n var _loop_4 = function (a, count) {\r\n var childEvent = seriesArgs.changedRecords[a];\r\n var parentEvent = seriesEvents[a];\r\n var eventCollections = _this.parent.eventBase.getEventCollections(parentEvent);\r\n var deletedEvents = eventCollections.follow.concat(eventCollections.occurrence);\r\n switch (action) {\r\n case 'EditSeries':\r\n if ((childEvent[fields_2.startTime] > parentEvent[fields_2.startTime]) && childEvent[fields_2.recurrenceRule]) {\r\n _this.processRecurrenceRule(parentEvent, childEvent);\r\n }\r\n childEvent[fields_2.id] = parentEvent[fields_2.id];\r\n childEvent[fields_2.recurrenceID] = null;\r\n childEvent[fields_2.followingID] = null;\r\n if (_this.parent.uiStateValues.isIgnoreOccurrence && childEvent[fields_2.recurrenceException]) {\r\n var originalParent = _this.parent.eventsData.filter(function (eventObj) {\r\n return eventObj[fields_2.id] === childEvent[fields_2.id];\r\n });\r\n if (originalParent.length > 0) {\r\n childEvent[fields_2.recurrenceRule] = originalParent[0][fields_2.recurrenceRule];\r\n }\r\n }\r\n else {\r\n childEvent[fields_2.recurrenceException] = null;\r\n editParams.deletedRecords = editParams.deletedRecords.concat(deletedEvents);\r\n }\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(childEvent, true));\r\n _this.parent.uiStateValues.isIgnoreOccurrence = false;\r\n break;\r\n case 'DeleteSeries':\r\n editParams.deletedRecords = editParams.deletedRecords.concat(deletedEvents.concat(parentEvent));\r\n isDeletedRecords = true;\r\n break;\r\n }\r\n };\r\n for (var a = 0, count = seriesArgs.changedRecords.length; a < count; a++) {\r\n _loop_4(a, count);\r\n }\r\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_2.id, _this.getTable(), _this.getQuery());\r\n _this.parent.eventBase.selectWorkCellByTime(seriesArgs.changedRecords);\r\n var crudArgs = {\r\n requestType: action === 'EditSeries' ? 'eventChanged' : 'eventRemoved',\r\n cancel: false, data: isDeletedRecords ? seriesArgs.deletedRecords : seriesArgs.changedRecords,\r\n promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n };\r\n Crud.prototype.processDelete = function (eventData) {\r\n var _this = this;\r\n var deleteData = [];\r\n for (var _i = 0, eventData_6 = eventData; _i < eventData_6.length; _i++) {\r\n var eventObj = eventData_6[_i];\r\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\r\n deleteData.push({ occurrence: eventObj, parent: this.getParentEvent(eventObj) });\r\n }\r\n else {\r\n deleteData.push(eventObj);\r\n }\r\n }\r\n var args = {\r\n requestType: 'eventRemove', cancel: false,\r\n addedRecords: [], changedRecords: [], deletedRecords: eventData\r\n };\r\n args.data = deleteData;\r\n this.parent.trigger(events.actionBegin, args, function (deleteArgs) {\r\n if (!deleteArgs.cancel) {\r\n var fields_3 = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n var _loop_5 = function (a, count) {\r\n var isDelete = isNullOrUndefined(deleteArgs.deletedRecords[a][_this.parent.eventFields.recurrenceRule]);\r\n if (!isDelete) {\r\n var parentEvent_1 = deleteData[a].parent;\r\n var isEdited = editParams.changedRecords.filter(function (obj) {\r\n return obj[fields_3.id] === parentEvent_1[fields_3.id];\r\n });\r\n var editedDate = deleteArgs.deletedRecords[a][fields_3.startTime];\r\n if (isEdited.length > 0) {\r\n var editedData = isEdited[0];\r\n editedData[fields_3.recurrenceException] =\r\n _this.excludeDateCheck(editedDate, editedData[fields_3.recurrenceException]);\r\n }\r\n else {\r\n parentEvent_1[fields_3.recurrenceException] =\r\n _this.excludeDateCheck(editedDate, parentEvent_1[fields_3.recurrenceException]);\r\n }\r\n if (isEdited.length === 0) {\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEvent_1, true));\r\n }\r\n isDelete = deleteArgs.deletedRecords[a][fields_3.id] !== parentEvent_1[fields_3.id];\r\n }\r\n if (isDelete) {\r\n editParams.deletedRecords.push(deleteArgs.deletedRecords[a]);\r\n }\r\n };\r\n for (var a = 0, count = deleteArgs.deletedRecords.length; a < count; a++) {\r\n _loop_5(a, count);\r\n }\r\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields_3.id, _this.getTable(), _this.getQuery());\r\n var crudArgs = {\r\n requestType: 'eventRemoved', cancel: false, data: deleteArgs.deletedRecords, promise: promise, editParams: editParams\r\n };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n };\r\n Crud.prototype.processSave = function (data) {\r\n var _this = this;\r\n var eventData = (data instanceof Array) ? data : [data];\r\n var editData = [];\r\n for (var _i = 0, eventData_7 = eventData; _i < eventData_7.length; _i++) {\r\n var eventObj = eventData_7[_i];\r\n if (eventObj[this.parent.eventFields.recurrenceRule]) {\r\n editData.push({ occurrence: eventObj, parent: this.getParentEvent(eventObj) });\r\n }\r\n else {\r\n editData.push(eventObj);\r\n }\r\n }\r\n var args = { requestType: 'eventChange', cancel: false, addedRecords: [], changedRecords: eventData, deletedRecords: [] };\r\n args.data = editData;\r\n this.parent.trigger(events.actionBegin, args, function (editArgs) {\r\n if (!editArgs.cancel) {\r\n var fields = _this.parent.eventFields;\r\n var editParams = { addedRecords: [], changedRecords: [], deletedRecords: [] };\r\n for (var _i = 0, _a = editArgs.changedRecords; _i < _a.length; _i++) {\r\n var record = _a[_i];\r\n if (!isNullOrUndefined(record[fields.recurrenceRule]) && isNullOrUndefined(record[fields.recurrenceException])) {\r\n var exceptionString = getRecurrenceStringFromDate(record[fields.startTime]);\r\n var parentEle = _this.getParentEvent(record);\r\n parentEle[fields.recurrenceException] = isNullOrUndefined(parentEle[fields.recurrenceException]) ?\r\n exceptionString : parentEle[fields.recurrenceException].concat(',' + exceptionString);\r\n record[fields.id] = _this.parent.getEventMaxID();\r\n record[fields.recurrenceException] = exceptionString;\r\n editParams.addedRecords.push(_this.parent.eventBase.processTimezone(record, true));\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(parentEle, true));\r\n }\r\n else {\r\n editParams.changedRecords.push(_this.parent.eventBase.processTimezone(record, true));\r\n }\r\n }\r\n var promise = _this.parent.dataModule.dataManager.saveChanges(editParams, fields.id, _this.getTable(), _this.getQuery());\r\n var crudArgs = { requestType: 'eventChanged', cancel: false, data: editArgs.changedRecords, promise: promise, editParams: editParams };\r\n _this.refreshData(crudArgs);\r\n }\r\n });\r\n };\r\n Crud.prototype.getParentEvent = function (event, isParent) {\r\n if (isParent === void 0) { isParent = false; }\r\n var parentEvent = this.parent.eventBase.getParentEvent(event, isParent) || event;\r\n if (parentEvent[this.parent.eventFields.startTimezone] || parentEvent[this.parent.eventFields.endTimezone]) {\r\n this.parent.eventBase.timezoneConvert(parentEvent);\r\n }\r\n return parentEvent;\r\n };\r\n Crud.prototype.excludeDateCheck = function (eventStartTime, exceptionDateList) {\r\n var exDate = getRecurrenceStringFromDate(eventStartTime);\r\n if (!isNullOrUndefined(exceptionDateList)) {\r\n if (exceptionDateList.indexOf(exDate) === -1) {\r\n exceptionDateList = !(isNullOrUndefined(exceptionDateList)) ? exceptionDateList + ',' + exDate : exDate;\r\n }\r\n }\r\n else {\r\n exceptionDateList = exDate;\r\n }\r\n return exceptionDateList;\r\n };\r\n Crud.prototype.processRecurrenceRule = function (parentEvent, followEvent) {\r\n var fields = this.parent.eventFields;\r\n var recurrenceRule = parentEvent[fields.recurrenceRule];\r\n var endDate;\r\n if (followEvent instanceof Date) {\r\n endDate = new Date(+followEvent);\r\n }\r\n else {\r\n endDate = new Date(+followEvent[fields.startTime]);\r\n var newRecurrenceRule = followEvent[fields.recurrenceRule];\r\n var startDate = parentEvent[fields.startTime];\r\n var ruleException = (this.parent.currentAction === 'DeleteFollowingEvents') ? followEvent[fields.recurrenceException] : null;\r\n var dateCollection = generate(startDate, newRecurrenceRule, ruleException, this.parent.activeViewOptions.firstDayOfWeek);\r\n var untilDate = new Date(dateCollection.slice(-1)[0]);\r\n untilDate.setHours(endDate.getHours(), endDate.getMinutes(), endDate.getSeconds());\r\n endDate.setHours(startDate.getHours(), startDate.getMinutes(), startDate.getSeconds());\r\n followEvent[fields.recurrenceRule] = this.getUpdatedRecurrenceRule(newRecurrenceRule, new Date(+untilDate), false);\r\n }\r\n parentEvent[fields.recurrenceRule] = this.getUpdatedRecurrenceRule(recurrenceRule, util.addDays(new Date(endDate.getTime()), -1), true);\r\n };\r\n Crud.prototype.getUpdatedRecurrenceRule = function (recurrenceRule, untilDate, isParent) {\r\n var splitRule = recurrenceRule.split(';');\r\n var updatedRule = '';\r\n for (var _i = 0, splitRule_1 = splitRule; _i < splitRule_1.length; _i++) {\r\n var rule = splitRule_1[_i];\r\n if (rule !== '') {\r\n var ruleKey = rule.split('=')[0];\r\n var ruleValue = rule.split('=')[1];\r\n if (ruleKey === 'COUNT' || ruleKey === 'UNTIL') {\r\n ruleValue = getRecurrenceStringFromDate(untilDate);\r\n rule = rule.replace(rule, 'UNTIL=' + ruleValue);\r\n }\r\n updatedRule += rule + ';';\r\n }\r\n }\r\n if (isParent && updatedRule.indexOf('UNTIL') === -1) {\r\n updatedRule += 'UNTIL=' + getRecurrenceStringFromDate(untilDate);\r\n }\r\n return updatedRule;\r\n };\r\n Crud.prototype.isBlockEvent = function (eventData) {\r\n var eventCollection = (eventData instanceof Array) ? eventData : [eventData];\r\n var value = false;\r\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\r\n var event_8 = eventCollection_1[_i];\r\n value = event_8[this.parent.eventFields.isBlock] || false;\r\n }\r\n return value;\r\n };\r\n /**\r\n * To destroy the crud module.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Crud.prototype.destroy = function () {\r\n this.crudObj = null;\r\n this.parent = null;\r\n };\r\n return Crud;\r\n}());\r\nexport { Crud };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Query, DataManager } from '@syncfusion/ej2-data';\r\n/**\r\n * data module is used to generate query and data source.\r\n *\r\n * @private\r\n */\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructor for data module\r\n *\r\n * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager\r\n * @param {Query} query Accepts the query to process the data\r\n * @private\r\n */\r\n function Data(dataSource, query) {\r\n this.initDataManager(dataSource, query);\r\n }\r\n /**\r\n * The function used to initialize dataManager and query\r\n *\r\n * @param {Object | DataManager} dataSource Accepts the datasource as JSON objects or DataManager\r\n * @param {Query} query Accepts the query to process the data\r\n * @returns {void}\r\n * @private\r\n */\r\n Data.prototype.initDataManager = function (dataSource, query) {\r\n this.dataManager = dataSource instanceof DataManager ? dataSource : new DataManager(dataSource);\r\n this.query = query instanceof Query ? query : new Query();\r\n };\r\n /**\r\n * The function used to generate updated Query from schedule model\r\n *\r\n * @param {Date} startDate Accepts the start date\r\n * @param {Date} endDate Accepts the end date\r\n * @returns {void}\r\n * @private\r\n */\r\n Data.prototype.generateQuery = function (startDate, endDate) {\r\n var query = this.query.clone();\r\n if (startDate) {\r\n query.addParams('StartDate', startDate.toISOString());\r\n }\r\n if (endDate) {\r\n query.addParams('EndDate', endDate.toISOString());\r\n }\r\n return query;\r\n };\r\n /**\r\n * The function used to get dataSource by executing given Query\r\n *\r\n * @param {Query} query - A Query that specifies to generate dataSource\r\n * @returns {void}\r\n * @private\r\n */\r\n Data.prototype.getData = function (query) {\r\n return this.dataManager.executeQuery(query);\r\n };\r\n /**\r\n * To destroy the crud module.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Data.prototype.destroy = function () {\r\n this.dataManager = null;\r\n this.query = null;\r\n };\r\n return Data;\r\n}());\r\nexport { Data };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { createElement, closest, Draggable, extend, formatUnit, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { addClass, remove, removeClass, setStyleAttribute } from '@syncfusion/ej2-base';\r\nimport { ActionBase } from '../actions/action-base';\r\nimport { MonthEvent } from '../event-renderer/month';\r\nimport { TimelineEvent } from '../event-renderer/timeline-view';\r\nimport { YearEvent } from '../event-renderer/year';\r\nimport { VerticalEvent } from '../event-renderer/vertical-view';\r\nimport * as cls from '../base/css-constant';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\nvar MINUTES_PER_DAY = 1440;\r\n/**\r\n * Schedule events drag actions\r\n */\r\nvar DragAndDrop = /** @class */ (function (_super) {\r\n __extends(DragAndDrop, _super);\r\n function DragAndDrop() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.widthUptoCursorPoint = 0;\r\n _this.heightUptoCursorPoint = 0;\r\n _this.cursorPointIndex = 0;\r\n _this.isHeaderRows = false;\r\n _this.isTimelineDayProcess = false;\r\n _this.widthPerMinute = 0;\r\n _this.heightPerMinute = 0;\r\n _this.minDiff = 0;\r\n _this.isStepDragging = false;\r\n _this.isMorePopupOpened = false;\r\n _this.isAllDayDrag = false;\r\n _this.isMultiSelect = false;\r\n _this.multiData = [];\r\n _this.updatedData = [];\r\n _this.swagData = [];\r\n _this.startTime = 0;\r\n _this.isAllDayTarget = false;\r\n _this.targetTd = null;\r\n _this.isCursorAhead = false;\r\n return _this;\r\n }\r\n DragAndDrop.prototype.wireDragEvent = function (element) {\r\n new Draggable(element, {\r\n abort: '.' + cls.EVENT_RESIZE_CLASS,\r\n clone: true,\r\n isDragScroll: true,\r\n enableTapHold: this.parent.isAdaptive,\r\n enableTailMode: (this.parent.eventDragArea) ? true : false,\r\n cursorAt: (this.parent.eventDragArea) ? { left: -20, top: -20 } : { left: 0, top: 0 },\r\n dragArea: this.dragArea,\r\n dragStart: this.dragStart.bind(this),\r\n drag: this.drag.bind(this),\r\n dragStop: this.dragStop.bind(this),\r\n enableAutoScroll: false,\r\n helper: this.dragHelper.bind(this),\r\n queryPositionInfo: this.dragPosition.bind(this)\r\n });\r\n };\r\n DragAndDrop.prototype.setDragArea = function () {\r\n var dragElement = document.querySelector(this.parent.eventDragArea);\r\n this.dragArea = this.parent.eventDragArea && dragElement ? dragElement :\r\n this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\r\n };\r\n DragAndDrop.prototype.dragHelper = function (e) {\r\n var _this = this;\r\n this.setDragActionDefaultValues();\r\n this.actionObj.element = e.element;\r\n this.actionObj.action = 'drag';\r\n var elements = [];\r\n if (!this.parent.allowMultiDrag || isNullOrUndefined(this.parent.selectedElements) || this.parent.selectedElements.length === 0 ||\r\n (this.parent.selectedElements.length > 0 && this.parent.selectedElements.indexOf(this.actionObj.element) === -1)) {\r\n elements = [e.element];\r\n }\r\n else {\r\n elements = this.parent.selectedElements;\r\n this.isMultiSelect = true;\r\n }\r\n elements.forEach(function (ele) {\r\n var cloneElement = _this.createCloneElement(ele);\r\n if (ele.getAttribute('data-guid') === _this.actionObj.element.getAttribute('data-guid')) {\r\n _this.actionObj.clone = cloneElement;\r\n if (!_this.parent.eventDragArea && _this.parent.currentView !== 'Month' &&\r\n _this.parent.activeViewOptions.timeScale.enable && !_this.parent.activeView.isTimelineView() &&\r\n !_this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n setStyleAttribute(_this.actionObj.clone, { cursor: 'move', left: '0%', right: '0%', width: '100%' });\r\n }\r\n _this.actionObj.clone.style.top = formatUnit(_this.actionObj.element.offsetTop);\r\n }\r\n _this.actionObj.cloneElement.push(cloneElement);\r\n _this.actionObj.originalElement.push(ele);\r\n });\r\n return this.actionObj.clone;\r\n };\r\n DragAndDrop.prototype.dragPosition = function (e) {\r\n if (this.parent.eventDragArea) {\r\n return { left: e.left, top: e.top };\r\n }\r\n var cellHeight = (this.actionObj.cellHeight / this.actionObj.slotInterval) * this.actionObj.interval;\r\n var leftValue = formatUnit(0);\r\n if (this.parent.currentView === 'Month') {\r\n leftValue = e.left;\r\n }\r\n var cloneRight;\r\n if (this.isStepDragging) {\r\n cloneRight = Math.ceil(this.actionObj.clone.getBoundingClientRect().right) + this.actionObj.interval;\r\n }\r\n else {\r\n cloneRight = this.actionObj.clone.getBoundingClientRect().right;\r\n }\r\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var contentWrapRight = dragArea.getBoundingClientRect().right;\r\n if (this.parent.activeView.isTimelineView() && this.parent.currentView !== 'TimelineYear' && !this.parent.enableRtl &&\r\n this.actionObj.pageX > cloneRight && !this.isMorePopupOpened && !(this.actionObj.pageX > contentWrapRight)) {\r\n this.isCursorAhead = true;\r\n }\r\n if (this.parent.activeView.isTimelineView()) {\r\n leftValue = formatUnit(this.actionObj.clone.offsetLeft);\r\n }\r\n var topValue;\r\n if ((this.parent.activeView.isTimelineView() || !this.parent.timeScale.enable ||\r\n (!isNullOrUndefined(this.actionObj.clone.offsetParent) &&\r\n this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)))) {\r\n topValue = formatUnit(this.actionObj.clone.offsetTop);\r\n }\r\n else if (this.parent.currentView === 'Month') {\r\n topValue = formatUnit(0);\r\n }\r\n else if (this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n topValue = formatUnit(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop);\r\n setStyleAttribute(this.actionObj.clone, {\r\n width: formatUnit(Math.ceil(this.actionObj.clone.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth),\r\n right: this.parent.enableRtl && formatUnit(0)\r\n });\r\n }\r\n else {\r\n if (this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) &&\r\n !this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n setStyleAttribute(this.actionObj.clone, {\r\n height: formatUnit(this.actionObj.cellHeight),\r\n width: formatUnit(this.actionObj.cellWidth - 1),\r\n pointerEvents: 'none'\r\n });\r\n }\r\n var top_1 = parseInt(e.top, 10);\r\n top_1 = top_1 < 0 ? 0 : top_1;\r\n topValue = formatUnit(Math.ceil(top_1 / cellHeight) * cellHeight);\r\n var scrollHeight = this.parent.element.querySelector('.e-content-wrap').scrollHeight;\r\n var cloneBottom = parseInt(topValue, 10) + this.actionObj.clone.offsetHeight;\r\n if (cloneBottom > scrollHeight) {\r\n topValue = (parseInt(topValue, 10) - (cloneBottom - scrollHeight)) + 'px';\r\n }\r\n }\r\n return { left: leftValue, top: topValue };\r\n };\r\n DragAndDrop.prototype.setDragActionDefaultValues = function () {\r\n this.actionObj.action = 'drag';\r\n this.actionObj.isAllDay = null;\r\n this.actionObj.slotInterval = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\r\n this.actionObj.interval = this.actionObj.slotInterval;\r\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n this.actionObj.cellWidth = workCell.offsetWidth;\r\n this.actionObj.cellHeight = workCell.offsetHeight;\r\n };\r\n DragAndDrop.prototype.dragStart = function (e) {\r\n var _this = this;\r\n var eventGuid = this.actionObj.element.getAttribute('data-guid');\r\n this.actionObj.event = this.parent.eventBase.getEventByGuid(eventGuid);\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n this.startTime = eventObj[this.parent.eventFields.startTime].getTime();\r\n var dragArgs = {\r\n cancel: false,\r\n data: eventObj,\r\n selectedData: this.getSelectedData(),\r\n event: e,\r\n excludeSelectors: null,\r\n element: this.actionObj.element,\r\n interval: this.actionObj.interval,\r\n navigation: { enable: false, timeDelay: 2000 },\r\n scroll: { enable: true, scrollBy: 30, timeDelay: 100 }\r\n };\r\n this.parent.trigger(events.dragStart, dragArgs, function (dragEventArgs) {\r\n if (dragEventArgs.cancel || (!isNullOrUndefined(_this.actionObj.element) &&\r\n isNullOrUndefined(_this.actionObj.element.parentElement))) {\r\n var dragObj = _this.actionObj.element.ej2_instances[0];\r\n if (!isNullOrUndefined(dragObj)) {\r\n dragObj.intDestroy(e.event);\r\n }\r\n _this.actionObj.action = '';\r\n _this.removeCloneElementClasses();\r\n _this.removeCloneElement();\r\n return;\r\n }\r\n _this.actionClass('addClass');\r\n _this.parent.uiStateValues.action = true;\r\n _this.actionObj.start = eventObj[_this.parent.eventFields.startTime];\r\n _this.actionObj.end = eventObj[_this.parent.eventFields.endTime];\r\n _this.actionObj.groupIndex = parseInt(_this.actionObj.element.getAttribute('data-group-index') || '0', 10);\r\n _this.actionObj.interval = dragEventArgs.interval;\r\n _this.actionObj.navigation = dragEventArgs.navigation;\r\n _this.actionObj.scroll = dragEventArgs.scroll;\r\n _this.actionObj.excludeSelectors = dragEventArgs.excludeSelectors;\r\n var viewElement = _this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n _this.scrollArgs = { element: viewElement, width: viewElement.scrollWidth, height: viewElement.scrollHeight };\r\n _this.widthPerMinute = (_this.actionObj.cellWidth / _this.actionObj.slotInterval) * _this.actionObj.interval;\r\n _this.heightPerMinute = (_this.actionObj.cellHeight / _this.actionObj.slotInterval) * _this.actionObj.interval;\r\n _this.widthUptoCursorPoint = 0;\r\n _this.heightUptoCursorPoint = 0;\r\n _this.cursorPointIndex = -1;\r\n _this.isHeaderRows = false;\r\n _this.isTimelineDayProcess = false;\r\n _this.minDiff = 0;\r\n _this.isMorePopupOpened = false;\r\n _this.daysVariation = -1;\r\n _this.isAllDayTarget = _this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS);\r\n if ((_this.parent.activeView.isTimelineView() || !_this.parent.timeScale.enable) && _this.parent.currentView !== 'TimelineYear') {\r\n if (!isNullOrUndefined(_this.actionObj.clone.offsetParent) &&\r\n _this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)) {\r\n _this.isMorePopupOpened = true;\r\n }\r\n _this.actionObj.pageX = e.event.pageX;\r\n var rows = _this.parent.activeViewOptions.headerRows;\r\n _this.isHeaderRows = rows.length > 0 && rows[rows.length - 1].option !== 'Hour' &&\r\n rows[rows.length - 1].option !== 'Date';\r\n _this.isTimelineDayProcess = !_this.parent.activeViewOptions.timeScale.enable || _this.isHeaderRows ||\r\n _this.parent.currentView === 'TimelineMonth' || (rows.length > 0 && rows[rows.length - 1].option === 'Date');\r\n _this.isStepDragging = !_this.isTimelineDayProcess && (_this.actionObj.slotInterval !== _this.actionObj.interval);\r\n if (_this.isTimelineDayProcess) {\r\n _this.timelineEventModule = new TimelineEvent(_this.parent, 'day');\r\n }\r\n else {\r\n _this.timelineEventModule = new TimelineEvent(_this.parent, 'hour');\r\n }\r\n }\r\n if (_this.parent.currentView === 'TimelineYear') {\r\n _this.yearEvent = new YearEvent(_this.parent);\r\n }\r\n if (_this.parent.currentView === 'Month') {\r\n _this.startTime = util.resetTime(new Date(_this.startTime)).getTime();\r\n _this.updateOriginalElement(_this.actionObj.clone);\r\n _this.monthEvent = new MonthEvent(_this.parent);\r\n }\r\n if (_this.parent.currentView === 'Day' || _this.parent.currentView === 'Week' || _this.parent.currentView === 'WorkWeek') {\r\n _this.verticalEvent = new VerticalEvent(_this.parent);\r\n _this.verticalEvent.initializeValues();\r\n var splitEvents = _this.splitEvent(_this.actionObj.event);\r\n splitEvents.forEach(function (event) {\r\n var query = \".e-day-wrapper[data-date=\\\"\" + util.resetTime(event[_this.parent.eventFields.startTime]).getTime() + \"\\\"]\";\r\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\r\n query = query.concat('[data-group-index = \"' + _this.actionObj.groupIndex + '\"]');\r\n }\r\n var appWrap = _this.parent.element.querySelector(query);\r\n if (appWrap) {\r\n var appEle = appWrap.querySelector('[data-id=\"' + _this.actionObj.clone.getAttribute('data-id') + '\"]');\r\n if (appEle) {\r\n addClass([appEle], cls.EVENT_ACTION_CLASS);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n };\r\n DragAndDrop.prototype.getSelectedData = function () {\r\n if (this.isMultiSelect && this.multiData.length === 0 && this.parent.selectedElements.length > 0) {\r\n for (var _i = 0, _a = this.parent.selectedElements; _i < _a.length; _i++) {\r\n var element = _a[_i];\r\n var eventGuid = element.getAttribute('data-guid');\r\n var data = this.parent.eventBase.getEventByGuid(eventGuid);\r\n this.multiData.push(extend({}, data, null, true));\r\n }\r\n }\r\n return this.multiData;\r\n };\r\n DragAndDrop.prototype.drag = function (e) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide(true);\r\n }\r\n if ((!isNullOrUndefined(e.target)) && e.target.classList.contains(cls.DISABLE_DATES)) {\r\n return;\r\n }\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var eventArgs = this.getPageCoordinates(e);\r\n this.actionObj.Y = this.actionObj.pageY = eventArgs.pageY;\r\n this.actionObj.X = this.actionObj.pageX = eventArgs.pageX;\r\n this.actionObj.target = e.target;\r\n this.widthUptoCursorPoint = (this.widthUptoCursorPoint === 0) ?\r\n Math.ceil((Math.abs(this.actionObj.clone.getBoundingClientRect().left - this.actionObj.X) / this.widthPerMinute)) *\r\n this.widthPerMinute : this.widthUptoCursorPoint;\r\n this.widthUptoCursorPoint = this.isMorePopupOpened ? this.actionObj.cellWidth : this.widthUptoCursorPoint;\r\n this.heightUptoCursorPoint = (this.heightUptoCursorPoint === 0) ?\r\n Math.ceil((Math.abs(this.actionObj.clone.getBoundingClientRect().top - this.actionObj.Y) / this.heightPerMinute)) *\r\n this.heightPerMinute : this.heightUptoCursorPoint;\r\n this.isAllDayDrag = (this.parent.activeViewOptions.timeScale.enable) ?\r\n this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) :\r\n this.actionObj.event[this.parent.eventFields.isAllDay];\r\n if (this.isStepDragging && this.minDiff === 0) {\r\n this.calculateMinutesDiff(eventObj);\r\n }\r\n if ((this.parent.currentView === 'Month' || this.isAllDayDrag) && this.daysVariation < 0) {\r\n var date = this.parent.getDateFromElement(this.actionObj.target);\r\n if (!isNullOrUndefined(date)) {\r\n var currentDate = util.resetTime(date);\r\n var startDate = util.resetTime(new Date(eventObj[this.parent.eventFields.startTime].getTime()));\r\n this.daysVariation = (currentDate.getTime() - startDate.getTime()) / util.MS_PER_DAY;\r\n }\r\n else {\r\n this.daysVariation = 0;\r\n }\r\n }\r\n else {\r\n this.daysVariation = 0;\r\n }\r\n if (this.parent.eventDragArea) {\r\n var targetElement = eventArgs.target;\r\n this.actionObj.clone.style.top = formatUnit(targetElement.offsetTop);\r\n this.actionObj.clone.style.left = formatUnit(targetElement.offsetLeft);\r\n var currentTarget = closest(targetElement, '.' + cls.ROOT);\r\n if (!currentTarget) {\r\n this.actionObj.clone.style.height = '';\r\n this.actionObj.clone.style.width = '';\r\n }\r\n else {\r\n if (!(this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'Day')) {\r\n this.actionObj.clone.style.width = formatUnit(this.actionObj.element.offsetWidth);\r\n }\r\n }\r\n }\r\n this.updateScrollPosition(e);\r\n this.updateNavigatingPosition(e);\r\n this.updateDraggingDateTime(e);\r\n var dragArgs = {\r\n data: eventObj, event: e, element: this.actionObj.element, startTime: this.actionObj.start,\r\n endTime: this.actionObj.end, selectedData: this.updatedData\r\n };\r\n if (this.parent.group.resources.length > 0) {\r\n dragArgs.groupIndex = this.actionObj.groupIndex;\r\n }\r\n this.parent.trigger(events.drag, dragArgs);\r\n };\r\n DragAndDrop.prototype.calculateMinutesDiff = function (eventObj) {\r\n if (this.parent.enableRtl) {\r\n this.minDiff =\r\n ((this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint) / this.widthPerMinute) * this.actionObj.interval;\r\n }\r\n else {\r\n this.minDiff = (this.widthUptoCursorPoint / this.widthPerMinute) * this.actionObj.interval;\r\n }\r\n var startDate = eventObj[this.parent.eventFields.startTime];\r\n var startTime = this.parent.activeView.renderDates[0];\r\n var startEndHours = util.getStartEndHours(startTime, this.parent.activeView.getStartHour(), this.parent.activeView.getEndHour());\r\n if (startEndHours.startHour.getTime() > startDate.getTime()) {\r\n this.minDiff = this.minDiff + ((startEndHours.startHour.getTime() - startDate.getTime()) / util.MS_PER_MINUTE);\r\n }\r\n };\r\n DragAndDrop.prototype.dragStop = function (e) {\r\n var _this = this;\r\n this.isCursorAhead = false;\r\n this.removeCloneElementClasses();\r\n this.removeCloneElement();\r\n clearInterval(this.actionObj.navigationInterval);\r\n this.actionObj.navigationInterval = null;\r\n clearInterval(this.actionObj.scrollInterval);\r\n this.actionObj.scrollInterval = null;\r\n this.actionClass('removeClass');\r\n this.parent.uiStateValues.action = false;\r\n this.actionObj.action = null;\r\n if (this.isAllowDrop(e)) {\r\n return;\r\n }\r\n var target = ((!e.target.classList.contains('e-work-cells') && this.parent.cellTemplate) ?\r\n closest(e.target, '.e-work-cells') : e.target);\r\n var dragArgs = {\r\n cancel: false, data: this.getChangedData(this.updatedData), selectedData: this.updatedData,\r\n event: e, element: this.actionObj.element, target: target\r\n };\r\n this.parent.trigger(events.dragStop, dragArgs, function (dragEventArgs) {\r\n if (dragEventArgs.cancel) {\r\n return;\r\n }\r\n if (_this.parent.activeViewOptions.group.resources.length > 0 && !_this.parent.activeViewOptions.group.allowGroupEdit\r\n && !_this.parent.rowAutoHeight && !_this.parent.virtualScrollModule && _this.parent.activeViewOptions.group.byGroupID) {\r\n _this.parent.crudModule.crudObj.isCrudAction = true;\r\n _this.parent.crudModule.crudObj.sourceEvent =\r\n [_this.parent.resourceBase.lastResourceLevel[parseInt(dragArgs.element.getAttribute('data-group-index'), 10)]];\r\n var currentGroupIndex = parseInt(dragArgs.target.getAttribute('data-group-index'), 10) || _this.actionObj.groupIndex;\r\n _this.parent.crudModule.crudObj.targetEvent = [_this.parent.resourceBase.lastResourceLevel[currentGroupIndex]];\r\n }\r\n _this.saveChangedData(dragEventArgs, _this.isMultiSelect);\r\n });\r\n this.updatedData = [];\r\n this.multiData = [];\r\n this.isMultiSelect = false;\r\n this.parent.selectedElements = [];\r\n };\r\n DragAndDrop.prototype.updateNavigatingPosition = function (e) {\r\n var _this = this;\r\n if (this.actionObj.navigation.enable) {\r\n var currentDate_1 = this.parent.getCurrentTime();\r\n if (isNullOrUndefined(this.actionObj.navigationInterval)) {\r\n this.actionObj.navigationInterval = window.setInterval(function () {\r\n if (currentDate_1) {\r\n var crtDate = _this.parent.getCurrentTime();\r\n var end = crtDate.getSeconds();\r\n var start = currentDate_1.getSeconds() + (_this.actionObj.navigation.timeDelay / 1000);\r\n start = (start >= 60) ? start - 60 : start;\r\n if (start === end) {\r\n currentDate_1 = _this.parent.getCurrentTime();\r\n _this.viewNavigation(e);\r\n _this.updateDraggingDateTime(e);\r\n }\r\n }\r\n }, this.actionObj.navigation.timeDelay);\r\n }\r\n }\r\n };\r\n DragAndDrop.prototype.updateDraggingDateTime = function (e) {\r\n if (!isNullOrUndefined(this.actionObj.clone.offsetParent) &&\r\n this.actionObj.clone.offsetParent.classList.contains(cls.MORE_EVENT_POPUP_CLASS)) {\r\n this.morePopupEventDragging(e);\r\n }\r\n else if (this.parent.activeView.isTimelineView() && this.parent.currentView !== 'TimelineYear') {\r\n this.timelineEventModule.dateRender = this.parent.activeView.renderDates;\r\n this.timelineEventModule.cellWidth = this.actionObj.cellWidth;\r\n this.timelineEventModule.getSlotDates();\r\n this.actionObj.cellWidth = this.isHeaderRows ? this.timelineEventModule.cellWidth : this.actionObj.cellWidth;\r\n this.calculateTimelineTime(e);\r\n }\r\n else {\r\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineYear') {\r\n this.calculateVerticalDate(e);\r\n }\r\n else {\r\n this.calculateVerticalTime(e);\r\n }\r\n }\r\n };\r\n DragAndDrop.prototype.navigationWrapper = function () {\r\n if (!this.parent.activeView.isTimelineView()) {\r\n if (this.parent.currentView === 'Month' || !this.parent.timeScale.enable) {\r\n var outerWrapperCls = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n this.actionObj.index = (this.parent.activeView.renderDates.length < this.actionObj.index) ?\r\n this.parent.activeView.renderDates.length - 1 : this.actionObj.index;\r\n var targetWrapper = outerWrapperCls[this.actionObj.index].querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!targetWrapper) {\r\n targetWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n outerWrapperCls[this.actionObj.index].appendChild(targetWrapper);\r\n }\r\n targetWrapper.appendChild(this.actionObj.clone);\r\n }\r\n else {\r\n var wrapperClass = this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) ?\r\n '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : '.' + cls.APPOINTMENT_WRAPPER_CLASS;\r\n this.parent.element.querySelectorAll(wrapperClass)\r\n .item(this.actionObj.index).appendChild(this.actionObj.clone);\r\n if (wrapperClass === '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS) {\r\n var elementHeight = this.getAllDayEventHeight();\r\n var event_2 = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS + ':first-child'));\r\n if (event_2[0].offsetHeight < elementHeight) {\r\n for (var _i = 0, event_1 = event_2; _i < event_1.length; _i++) {\r\n var e = event_1[_i];\r\n e.style.height = ((elementHeight + 2) / 12) + 'em';\r\n }\r\n }\r\n this.actionObj.clone.style.height = formatUnit(elementHeight);\r\n }\r\n this.actionObj.height = parseInt(this.actionObj.clone.style.height, 10);\r\n }\r\n }\r\n else {\r\n var outWrapper = void 0;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n outWrapper = this.parent.element.querySelectorAll('.e-appointment-container:not(.e-hidden)').item(this.actionObj.index);\r\n }\r\n else {\r\n outWrapper = this.parent.element.querySelector('.' + cls.APPOINTMENT_CONTAINER_CLASS);\r\n }\r\n var tarWrapper_1 = outWrapper.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!tarWrapper_1) {\r\n tarWrapper_1 = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n outWrapper.appendChild(tarWrapper_1);\r\n }\r\n this.actionObj.cloneElement.forEach(function (ele) {\r\n tarWrapper_1.appendChild(ele);\r\n });\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DragAndDrop.prototype.viewNavigation = function (e) {\r\n var navigationType;\r\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (dragArea && ((!this.scrollEdges.top && !this.scrollEdges.bottom) ||\r\n closest(this.actionObj.clone, '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS))) {\r\n if ((dragArea.scrollLeft === 0) &&\r\n (Math.round(this.actionObj.X) <=\r\n Math.round(dragArea.getBoundingClientRect().left + this.actionObj.cellWidth + window.pageXOffset))) {\r\n navigationType = this.parent.enableRtl ? 'next' : 'previous';\r\n }\r\n else if ((Math.round(dragArea.scrollLeft) + dragArea.clientWidth === dragArea.scrollWidth) &&\r\n (Math.round(this.actionObj.X) >=\r\n Math.round(dragArea.getBoundingClientRect().right - this.actionObj.cellWidth + window.pageXOffset))) {\r\n navigationType = this.parent.enableRtl ? 'previous' : 'next';\r\n }\r\n if (navigationType) {\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate(navigationType));\r\n }\r\n }\r\n };\r\n DragAndDrop.prototype.morePopupEventDragging = function (e) {\r\n if (isNullOrUndefined(e.target) || (e.target && isNullOrUndefined(closest(e.target, 'td')))) {\r\n return;\r\n }\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\r\n eventObj[this.parent.eventFields.startTime].getTime();\r\n var td = closest(e.target, 'td');\r\n if (this.parent.currentView === 'TimelineYear' && !td.classList.contains('e-work-cells')) {\r\n return;\r\n }\r\n var dragStart = this.parent.getDateFromElement(td);\r\n var dragEnd = new Date(dragStart.getTime());\r\n dragEnd.setMilliseconds(eventDuration);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\r\n }\r\n this.actionObj.start = new Date(dragStart.getTime());\r\n this.actionObj.end = new Date(dragEnd.getTime());\r\n this.actionObj.clone.style.top = formatUnit(td.offsetParent.offsetTop);\r\n this.actionObj.clone.style.left = formatUnit(td.offsetLeft);\r\n this.actionObj.clone.style.width = formatUnit(td.offsetWidth);\r\n var eventContainer = td;\r\n var eventWrapper;\r\n if (this.parent.activeView.isTimelineView()) {\r\n var rowIndex = closest(td, 'tr').rowIndex;\r\n eventContainer = this.parent.element.querySelectorAll('.e-appointment-container').item(rowIndex);\r\n }\r\n eventWrapper = eventContainer.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!eventWrapper) {\r\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n eventContainer.appendChild(eventWrapper);\r\n }\r\n this.appendCloneElement(eventWrapper);\r\n };\r\n DragAndDrop.prototype.calculateVerticalTime = function (e) {\r\n var _this = this;\r\n if (isNullOrUndefined(this.actionObj.target) ||\r\n (this.actionObj.target && isNullOrUndefined(closest(this.actionObj.target, 'tr'))) ||\r\n (!(closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS)) &&\r\n !(closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)))) {\r\n return;\r\n }\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n this.swapDragging(e);\r\n }\r\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var eventStart = eventObj[this.parent.eventFields.startTime];\r\n var eventEnd = eventObj[this.parent.eventFields.endTime];\r\n var eventDuration = eventEnd.getTime() - eventStart.getTime();\r\n var offsetTop = Math.floor(parseInt(this.actionObj.clone.style.top, 10) / this.actionObj.cellHeight)\r\n * this.actionObj.cellHeight;\r\n offsetTop = offsetTop < 0 ? 0 : offsetTop;\r\n if (this.scrollEdges.top || this.scrollEdges.bottom) {\r\n offsetTop = this.scrollEdges.top ? dragArea.scrollTop - this.heightUptoCursorPoint +\r\n this.actionObj.cellHeight + window.pageYOffset :\r\n (dragArea.scrollTop + dragArea.offsetHeight - this.actionObj.clone.offsetHeight + window.pageYOffset) +\r\n (this.actionObj.clone.offsetHeight - this.heightUptoCursorPoint);\r\n offsetTop = Math.round(offsetTop / this.actionObj.cellHeight) * this.actionObj.cellHeight;\r\n this.actionObj.clone.style.top = formatUnit(offsetTop);\r\n }\r\n var rowIndex = (this.parent.activeViewOptions.timeScale.enable) ? (offsetTop / this.actionObj.cellHeight) : 0;\r\n var heightPerMinute = this.actionObj.cellHeight / this.actionObj.slotInterval;\r\n var diffInMinutes = parseInt(this.actionObj.clone.style.top, 10) - offsetTop;\r\n var tr;\r\n if (this.isAllDayDrag) {\r\n tr = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\r\n }\r\n else {\r\n var trCollections = [].slice.call(this.parent.getContentTable().querySelectorAll('tr'));\r\n tr = trCollections[rowIndex];\r\n }\r\n var index;\r\n if (closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS) ||\r\n closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n index = closest(this.actionObj.target, 'td').cellIndex;\r\n }\r\n var colIndex = isNullOrUndefined(index) ? closest(this.actionObj.clone, 'td').cellIndex : index;\r\n this.actionObj.index = colIndex;\r\n if (isNullOrUndefined(tr)) {\r\n return;\r\n }\r\n var td = tr.children[colIndex];\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\r\n }\r\n var dragStart;\r\n var dragEnd;\r\n if (this.parent.activeViewOptions.timeScale.enable && !this.isAllDayDrag) {\r\n this.appendCloneElement(this.getEventWrapper(colIndex));\r\n dragStart = this.parent.getDateFromElement(td);\r\n dragStart.setMinutes(dragStart.getMinutes() + (diffInMinutes / heightPerMinute));\r\n dragEnd = new Date(dragStart.getTime());\r\n if (this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n dragEnd.setMinutes(dragEnd.getMinutes() + this.actionObj.slotInterval);\r\n }\r\n else {\r\n dragEnd.setMilliseconds(eventDuration);\r\n }\r\n }\r\n else {\r\n dragStart = this.parent.getDateFromElement(td);\r\n dragStart.setDate(dragStart.getDate() - this.daysVariation);\r\n dragStart.setHours(eventStart.getHours(), eventStart.getMinutes(), eventStart.getSeconds());\r\n dragEnd = new Date(dragStart.getTime());\r\n dragEnd.setMilliseconds(eventDuration);\r\n if (!this.actionObj.element.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) &&\r\n this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS)) {\r\n dragEnd = util.addDays(util.resetTime(dragEnd), 1);\r\n }\r\n this.updateAllDayEvents(dragStart, dragEnd, this.parent.activeViewOptions.group.byDate ? colIndex : undefined);\r\n }\r\n this.actionObj.start = new Date(+dragStart);\r\n this.actionObj.end = new Date(+dragEnd);\r\n var event = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);\r\n var dynamicWrappers = [].slice.call(this.parent.element.querySelectorAll('.e-dynamic-clone'));\r\n for (var _i = 0, dynamicWrappers_1 = dynamicWrappers; _i < dynamicWrappers_1.length; _i++) {\r\n var wrapper = dynamicWrappers_1[_i];\r\n remove(wrapper);\r\n }\r\n if (this.multiData.length > 0) {\r\n if (this.isAllDayTarget && this.isAllDayDrag && !isNullOrUndefined(this.actionObj.isAllDay) && !this.actionObj.isAllDay) {\r\n var targetCellTime_1 = parseInt((closest(this.actionObj.target, 'td')).getAttribute('data-date'), 10);\r\n this.multiData.forEach(function (data) {\r\n _this.swagData.push(extend({}, data, null, true));\r\n if (data[_this.parent.eventFields.isAllDay]) {\r\n data[_this.parent.eventFields.startTime] =\r\n new Date(data[_this.parent.eventFields.startTime].getTime() + (targetCellTime_1 - _this.startTime));\r\n var startTime = new Date(data[_this.parent.eventFields.startTime]);\r\n var endTime = new Date(startTime.setMinutes(startTime.getMinutes() + _this.actionObj.slotInterval));\r\n data[_this.parent.eventFields.endTime] = endTime;\r\n data[_this.parent.eventFields.isAllDay] = false;\r\n }\r\n });\r\n this.startTime = targetCellTime_1;\r\n }\r\n if (this.isAllDayTarget && this.isAllDayDrag &&\r\n !isNullOrUndefined(this.actionObj.isAllDay) && this.actionObj.isAllDay && this.swagData.length > 0) {\r\n this.multiData = this.swagData;\r\n this.swagData = [];\r\n var eventObj_1 = extend({}, this.actionObj.event, null, true);\r\n this.startTime = eventObj_1[this.parent.eventFields.startTime].getTime();\r\n }\r\n var startTimeDiff = event[this.parent.eventFields.startTime].getTime() - this.startTime;\r\n for (var index_1 = 0; index_1 < this.multiData.length; index_1++) {\r\n this.updatedData[index_1] = this.updateMultipleData(this.multiData[index_1], startTimeDiff);\r\n var dayIndex = this.getDayIndex(this.updatedData[index_1]);\r\n if (dayIndex >= 0) {\r\n var wrapper = this.getEventWrapper(dayIndex, this.updatedData[index_1][this.parent.eventFields.isAllDay]);\r\n this.appendCloneElement(wrapper, this.actionObj.cloneElement[index_1]);\r\n this.updateEventHeight(this.updatedData[index_1], index_1, dayIndex);\r\n }\r\n else {\r\n if (!isNullOrUndefined(this.actionObj.cloneElement[index_1].parentNode)) {\r\n remove(this.actionObj.cloneElement[index_1]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.updateEventHeight(event);\r\n }\r\n this.updateTimePosition(this.actionObj.start, this.updatedData);\r\n };\r\n DragAndDrop.prototype.splitEvent = function (event) {\r\n var eventFields = this.parent.eventFields;\r\n var eventData = [];\r\n var startTime = event[eventFields.startTime];\r\n var endTime = event[eventFields.endTime];\r\n if (util.resetTime(new Date(startTime.getTime())) < util.resetTime(new Date(endTime.getTime()))) {\r\n var startReferenceDate = util.resetTime(new Date(startTime.getTime()));\r\n var endReferenceDate = new Date(startReferenceDate.getTime());\r\n for (var i = 0; startReferenceDate < new Date(endTime.getTime()); i++) {\r\n endReferenceDate = new Date(endReferenceDate.setDate(startReferenceDate.getDate() + 1));\r\n var eventObj = extend({}, event, null, true);\r\n eventObj[eventFields.startTime] = new Date(startReferenceDate);\r\n eventObj[eventFields.endTime] = new Date(endReferenceDate);\r\n startReferenceDate = new Date(startReferenceDate.setDate(startReferenceDate.getDate() + 1));\r\n eventData.push(eventObj);\r\n }\r\n var index = eventData.length - 1;\r\n eventData[0][eventFields.startTime] = startTime;\r\n eventData[index][eventFields.endTime] = endTime;\r\n }\r\n else {\r\n eventData.push(event);\r\n }\r\n return eventData;\r\n };\r\n DragAndDrop.prototype.updateMultipleData = function (data, timeDifference) {\r\n var eventObj = extend({}, data, null, true);\r\n if (!isNullOrUndefined(this.actionObj.isAllDay) && this.parent.activeViewOptions.timeScale.enable &&\r\n ((this.isAllDayTarget && eventObj[this.parent.eventFields.isAllDay]) ||\r\n (!this.isAllDayTarget && !eventObj[this.parent.eventFields.isAllDay]))) {\r\n eventObj[this.parent.eventFields.isAllDay] = this.actionObj.isAllDay;\r\n }\r\n var endTimeDiff = eventObj[this.parent.eventFields.endTime].getTime() -\r\n eventObj[this.parent.eventFields.startTime].getTime();\r\n if (eventObj[this.parent.eventFields.isAllDay]) {\r\n var differInDays = Math.ceil(timeDifference / (1000 * 3600 * 24));\r\n var day = Math.ceil(endTimeDiff / (1000 * 3600 * 24));\r\n var startTime = new Date(eventObj[this.parent.eventFields.startTime]);\r\n eventObj[this.parent.eventFields.startTime] = util.resetTime(new Date(startTime.setDate(startTime.getDate() + differInDays)));\r\n eventObj[this.parent.eventFields.endTime] = util.addDays(eventObj[this.parent.eventFields.startTime], day);\r\n }\r\n else {\r\n eventObj[this.parent.eventFields.startTime] =\r\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + timeDifference);\r\n eventObj[this.parent.eventFields.endTime] =\r\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + endTimeDiff);\r\n }\r\n return eventObj;\r\n };\r\n DragAndDrop.prototype.getDayIndex = function (event) {\r\n var eventObj = extend({}, event, null, true);\r\n var startTime = util.resetTime(eventObj[this.parent.eventFields.startTime]).getTime();\r\n var query = '';\r\n var wrapper = cls.DAY_WRAPPER_CLASS;\r\n if (this.parent.activeViewOptions.timeScale.enable && (eventObj[this.parent.eventFields.isAllDay])) {\r\n wrapper = cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS;\r\n }\r\n else {\r\n wrapper = cls.WORK_CELLS_CLASS;\r\n }\r\n query = '.' + wrapper + '[data-date=\"' + startTime + '\"]';\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n query = query + '[data-group-index=\"' + this.actionObj.groupIndex + '\"]';\r\n }\r\n this.targetTd = this.parent.element.querySelector(query);\r\n if (isNullOrUndefined(this.targetTd)) {\r\n return -1;\r\n }\r\n return this.targetTd.cellIndex;\r\n };\r\n DragAndDrop.prototype.updateEventHeight = function (event, index, colIndex) {\r\n this.verticalEvent.initializeValues();\r\n var datesCount = 0;\r\n if (!this.parent.uiStateValues.isGroupAdaptive) {\r\n for (var i = 0; i < this.actionObj.groupIndex; i++) {\r\n datesCount = datesCount + this.verticalEvent.dateRender[i].length;\r\n }\r\n }\r\n var indexGroup = this.parent.uiStateValues.isGroupAdaptive ? datesCount : this.actionObj.groupIndex;\r\n var target = (this.parent.activeViewOptions.group.byDate &&\r\n !isNullOrUndefined(this.parent.getDateFromElement(this.actionObj.target))) ? true : false;\r\n if (target || !this.parent.activeViewOptions.group.byDate) {\r\n var dynamicIndex = -1;\r\n var dayIndex = !this.parent.activeViewOptions.group.byDate ?\r\n isNullOrUndefined(index) ? this.actionObj.index - datesCount : colIndex - datesCount\r\n : this.parent.getIndexOfDate(this.verticalEvent.dateRender[indexGroup], util.resetTime(\r\n // eslint-disable-next-line max-len\r\n this.parent.getDateFromElement(isNullOrUndefined(index) ? this.actionObj.target : this.targetTd)));\r\n var splitEvents = this.splitEvent(event);\r\n var events_1 = this.parent.eventBase.isAllDayAppointment(event) || splitEvents.length > 2 ||\r\n this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' ? [event] : splitEvents;\r\n for (var i = 0; i < events_1.length; i++) {\r\n if (i > 0) {\r\n var filterQuery = \".e-day-wrapper[data-date=\\\"\" + util.resetTime(events_1[i][this.parent.eventFields.startTime]).getTime() + \"\\\"]\";\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n filterQuery = filterQuery.concat('[data-group-index = \"' + this.actionObj.groupIndex + '\"]');\r\n }\r\n var appWrap = this.parent.element.querySelector(filterQuery);\r\n if (appWrap) {\r\n dayIndex = dayIndex + 1;\r\n dynamicIndex = appWrap.cellIndex;\r\n }\r\n else {\r\n dayIndex = -1;\r\n }\r\n }\r\n if (dayIndex >= 0) {\r\n var record = this.verticalEvent.isSpannedEvent(events_1[i], dayIndex, indexGroup);\r\n var eStart = record[this.verticalEvent.fields.startTime];\r\n var eEnd = record[this.verticalEvent.fields.endTime];\r\n var appHeight = this.parent.activeViewOptions.timeScale.enable ? this.verticalEvent.getHeight(eStart, eEnd) :\r\n this.actionObj.element.offsetHeight;\r\n var topValue = this.parent.activeViewOptions.timeScale.enable ?\r\n this.verticalEvent.getTopValue(eStart, dayIndex, indexGroup) : this.actionObj.element.offsetTop;\r\n if (isNullOrUndefined(index)) {\r\n if (i === 0) {\r\n this.actionObj.clone.style.top = formatUnit(topValue);\r\n this.actionObj.clone.style.height = formatUnit(appHeight);\r\n }\r\n else {\r\n this.renderSpannedEvents(record, dynamicIndex, topValue, appHeight);\r\n }\r\n }\r\n else {\r\n var appWidth = this.actionObj.cellWidth;\r\n if (event[this.parent.eventFields.isAllDay]) {\r\n topValue = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop;\r\n appHeight = this.getAllDayEventHeight();\r\n var timeDiff = event[this.parent.eventFields.endTime].getTime() -\r\n event[this.parent.eventFields.startTime].getTime();\r\n var allDayDifference = Math.ceil(timeDiff / (1000 * 3600 * 24));\r\n if (allDayDifference >= 0) {\r\n appWidth = (allDayDifference * this.actionObj.cellWidth);\r\n }\r\n }\r\n if (this.actionObj.cloneElement[index]) {\r\n if (i === 0) {\r\n this.actionObj.cloneElement[index].style.top = formatUnit(topValue);\r\n this.actionObj.cloneElement[index].style.height = formatUnit(appHeight);\r\n this.actionObj.cloneElement[index].style.width = formatUnit(appWidth);\r\n this.actionObj.cloneElement[index].style.left = formatUnit(0);\r\n }\r\n else {\r\n this.renderSpannedEvents(record, dynamicIndex, topValue, appHeight);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n DragAndDrop.prototype.renderSpannedEvents = function (record, index, top, height) {\r\n var startTime = record[this.parent.eventFields.startTime].getTime();\r\n var endTime = record[this.parent.eventFields.endTime].getTime();\r\n if (startTime !== endTime) {\r\n var appointmentElement = this.verticalEvent.\r\n createAppointmentElement(record, false, record.isSpanned, this.actionObj.groupIndex);\r\n addClass([appointmentElement], [cls.CLONE_ELEMENT_CLASS, 'e-dynamic-clone']);\r\n setStyleAttribute(appointmentElement, {\r\n 'width': '100%',\r\n 'height': height + 'px',\r\n 'top': top + 'px',\r\n 'border': '0px'\r\n });\r\n var appointmentWrap = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_CLASS));\r\n appointmentWrap[index].appendChild(appointmentElement);\r\n }\r\n };\r\n DragAndDrop.prototype.getRenderedDates = function () {\r\n var _this = this;\r\n var _a, _b;\r\n var renderDates = this.parent.activeView.renderDates;\r\n (_a = this.parent.eventBase.slots).push.apply(_a, this.parent.activeView.renderDates.map(function (date) { return +date; }));\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.parent.eventBase.slots = [];\r\n var resources = this.parent.resourceBase.lastResourceLevel.\r\n filter(function (res) { return res.groupIndex === _this.actionObj.groupIndex; });\r\n renderDates = resources[0].renderDates;\r\n (_b = this.parent.eventBase.slots).push.apply(_b, renderDates.map(function (date) { return +date; }));\r\n }\r\n return renderDates;\r\n };\r\n DragAndDrop.prototype.updateAllDayEvents = function (startDate, endDate, colIndex) {\r\n this.parent.eventBase.slots = [];\r\n var event = this.getUpdatedEvent(startDate, endDate, this.actionObj.event);\r\n var renderDates = this.getRenderedDates();\r\n var events = this.parent.eventBase.splitEvent(event, renderDates);\r\n var query = \".e-all-day-cells[data-date=\\\"\" + events[0][this.parent.eventFields.startTime].getTime() + \"\\\"]\";\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n query = query.concat('[data-group-index = \"' + this.actionObj.groupIndex + '\"]');\r\n }\r\n var cell = [].slice.call(this.parent.element.querySelectorAll(query));\r\n if (cell.length > 0 || !isNullOrUndefined(colIndex)) {\r\n var cellIndex = !isNullOrUndefined(colIndex) ? colIndex : cell[0].cellIndex;\r\n this.appendCloneElement(this.getEventWrapper(cellIndex));\r\n // eslint-disable-next-line max-len\r\n this.actionObj.clone.style.width = formatUnit(events[0].data.count * this.actionObj.cellWidth);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n DragAndDrop.prototype.swapDragging = function (e) {\r\n var colIndex = closest(this.actionObj.target, 'td').cellIndex;\r\n if (closest(this.actionObj.target, '.' + cls.DATE_HEADER_WRAP_CLASS) &&\r\n !closest(this.actionObj.clone, '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS)) {\r\n addClass([this.actionObj.clone], cls.ALLDAY_APPOINTMENT_CLASS);\r\n this.appendCloneElement(this.getEventWrapper(colIndex));\r\n this.actionObj.isAllDay = true;\r\n var eventHeight = this.getAllDayEventHeight();\r\n var allDayElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS + ':first-child'));\r\n if (allDayElement[0].offsetHeight < eventHeight) {\r\n for (var _i = 0, allDayElement_1 = allDayElement; _i < allDayElement_1.length; _i++) {\r\n var element = allDayElement_1[_i];\r\n element.style.height = ((eventHeight + 2) / 12) + 'em';\r\n }\r\n }\r\n setStyleAttribute(this.actionObj.clone, {\r\n width: formatUnit(this.actionObj.cellWidth),\r\n height: formatUnit(eventHeight),\r\n top: formatUnit(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).offsetTop)\r\n });\r\n }\r\n if (closest(this.actionObj.target, '.' + cls.WORK_CELLS_CLASS) &&\r\n !closest(this.actionObj.clone, '.' + cls.DAY_WRAPPER_CLASS)) {\r\n removeClass([this.actionObj.clone], cls.ALLDAY_APPOINTMENT_CLASS);\r\n this.appendCloneElement(this.getEventWrapper(colIndex));\r\n this.actionObj.isAllDay = false;\r\n // eslint-disable-next-line max-len\r\n var height = (this.actionObj.element.offsetHeight === 0) ? this.actionObj.height : this.actionObj.element.offsetHeight;\r\n setStyleAttribute(this.actionObj.clone, {\r\n left: formatUnit(0),\r\n height: formatUnit(height),\r\n width: formatUnit(this.actionObj.cellWidth)\r\n });\r\n }\r\n };\r\n DragAndDrop.prototype.calculateVerticalDate = function (e) {\r\n if (isNullOrUndefined(e.target) || (e.target && isNullOrUndefined(closest(e.target, 'tr'))) ||\r\n (e.target && e.target.tagName === 'DIV')) {\r\n return;\r\n }\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n if (isNullOrUndefined(this.parent.eventDragArea)) {\r\n this.removeCloneElement();\r\n }\r\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\r\n eventObj[this.parent.eventFields.startTime].getTime();\r\n var td = closest(this.actionObj.target, 'td');\r\n if (!isNullOrUndefined(td)) {\r\n var tr = td.parentElement;\r\n this.actionObj.index = (tr.rowIndex * tr.children.length) + td.cellIndex;\r\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n td = workCells[this.actionObj.index];\r\n var currentDate = this.parent.getDateFromElement(td);\r\n if (!isNullOrUndefined(currentDate)) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.actionObj.groupIndex = parseInt(td.getAttribute('data-group-index'), 10);\r\n }\r\n var timeString = new Date(currentDate.setDate(currentDate.getDate() - this.daysVariation));\r\n var dragStart = new Date(timeString.getTime());\r\n var dragEnd = new Date(dragStart.getTime());\r\n var startTimeDiff = eventObj[this.parent.eventFields.startTime].getTime() -\r\n (util.resetTime(new Date(+eventObj[this.parent.eventFields.startTime]))).getTime();\r\n dragStart = new Date(dragStart.getTime() + startTimeDiff);\r\n dragEnd = new Date(dragStart.getTime() + eventDuration);\r\n this.actionObj.start = new Date(dragStart.getTime());\r\n this.actionObj.end = new Date(dragEnd.getTime());\r\n }\r\n }\r\n var event = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);\r\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\r\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\r\n var wrapper = eventWrappers_1[_i];\r\n remove(wrapper);\r\n }\r\n if (this.multiData && this.multiData.length > 0) {\r\n var startTime = util.resetTime(new Date(event[this.parent.eventFields.startTime]));\r\n var startTimeDiff = startTime.getTime() - this.startTime;\r\n if (this.parent.currentView === 'TimelineYear' && this.parent.group.resources.length > 0) {\r\n startTimeDiff = (startTime.getFullYear() - new Date(this.startTime).getFullYear()) * 12;\r\n startTimeDiff -= new Date(this.startTime).getMonth();\r\n startTimeDiff += startTime.getMonth();\r\n }\r\n for (var index = 0; index < this.multiData.length; index++) {\r\n this.updatedData[index] = this.updateMultipleVerticalDate(this.multiData[index], startTimeDiff);\r\n if (this.parent.currentView === 'TimelineYear') {\r\n this.dynamicYearlyEventsRendering(this.updatedData[index]);\r\n }\r\n else {\r\n this.dynamicEventsRendering(this.updatedData[index]);\r\n }\r\n }\r\n }\r\n else {\r\n if (this.parent.currentView === 'TimelineYear') {\r\n this.dynamicYearlyEventsRendering(event);\r\n }\r\n else {\r\n this.dynamicEventsRendering(event);\r\n }\r\n }\r\n };\r\n DragAndDrop.prototype.updateMultipleVerticalDate = function (data, timeDifference) {\r\n var eventObj = extend({}, data, null, true);\r\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\r\n eventObj[this.parent.eventFields.startTime].getTime();\r\n var startDate = new Date(eventObj[this.parent.eventFields.startTime]);\r\n if (this.parent.currentView === 'TimelineYear' && this.parent.group.resources.length > 0) {\r\n eventObj[this.parent.eventFields.startTime] = new Date(startDate.setMonth(startDate.getMonth() + timeDifference));\r\n }\r\n else {\r\n var differInDays = Math.ceil(timeDifference / util.MS_PER_DAY);\r\n eventObj[this.parent.eventFields.startTime] = new Date(startDate.setDate(startDate.getDate() + differInDays));\r\n }\r\n eventObj[this.parent.eventFields.endTime] =\r\n new Date(eventObj[this.parent.eventFields.startTime].getTime() + eventDuration);\r\n return eventObj;\r\n };\r\n DragAndDrop.prototype.calculateTimelineTime = function (e) {\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var eventDuration = eventObj[this.parent.eventFields.endTime].getTime() -\r\n eventObj[this.parent.eventFields.startTime].getTime();\r\n var offsetLeft = this.parent.enableRtl ? Math.abs(this.actionObj.clone.offsetLeft) - this.actionObj.clone.offsetWidth :\r\n parseInt(this.actionObj.clone.style.left, 10);\r\n offsetLeft = Math.floor(offsetLeft / this.actionObj.cellWidth) * this.actionObj.cellWidth;\r\n var rightOffset;\r\n if (this.parent.enableRtl) {\r\n rightOffset = Math.abs(parseInt(this.actionObj.clone.style.right, 10));\r\n this.actionObj.clone.style.right = formatUnit(rightOffset);\r\n }\r\n offsetLeft = this.getOffsetValue(offsetLeft, rightOffset);\r\n var colIndex = this.getColumnIndex(offsetLeft);\r\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var contentWrapRight = dragArea.getBoundingClientRect().right;\r\n var cursorDrag = this.parent.activeView.isTimelineView() && !this.parent.enableRtl &&\r\n this.actionObj.pageX > this.actionObj.clone.getBoundingClientRect().right &&\r\n !this.isMorePopupOpened && !(this.actionObj.pageX > contentWrapRight);\r\n var leftVal = (this.parent.eventDragArea) ? dragArea.scrollLeft - dragArea.offsetLeft : 0;\r\n if ((this.isCursorAhead || cursorDrag) && !this.isStepDragging) {\r\n this.isCursorAhead = true;\r\n }\r\n var cloneIndex = Math.floor((this.actionObj.pageX - this.actionObj.clone.getBoundingClientRect().left + leftVal) / this.actionObj.cellWidth);\r\n if (this.parent.enableRtl) {\r\n cloneIndex = Math.abs(Math.floor((this.actionObj.pageX - this.actionObj.clone.getBoundingClientRect().right) /\r\n this.actionObj.cellWidth)) - 1;\r\n }\r\n if (this.cursorPointIndex < 0) {\r\n this.cursorIndex(e, eventObj, offsetLeft, cloneIndex);\r\n }\r\n var tr = this.parent.getContentTable().querySelector('tr');\r\n var index = this.getCursorCurrentIndex(colIndex, cloneIndex, tr);\r\n index = index < 0 ? 0 : index;\r\n var eventStart = this.isHeaderRows ? new Date(this.timelineEventModule.dateRender[index].getTime()) :\r\n this.parent.getDateFromElement(tr.children[index]);\r\n if (this.isStepDragging) {\r\n var widthDiff = this.getWidthDiff(tr, index);\r\n if (widthDiff !== 0) {\r\n var timeDiff = Math.round(widthDiff / this.widthPerMinute);\r\n eventStart.setMinutes(eventStart.getMinutes() + (timeDiff * this.actionObj.interval));\r\n if (this.isCursorAhead || cursorDrag) {\r\n eventStart.setMilliseconds(-(eventDuration));\r\n }\r\n else {\r\n eventStart.setMinutes(eventStart.getMinutes() - this.minDiff);\r\n }\r\n }\r\n else {\r\n eventStart = this.actionObj.start;\r\n }\r\n }\r\n else {\r\n if (this.isCursorAhead || cursorDrag) {\r\n eventStart.setMinutes(eventStart.getMinutes() +\r\n (this.isTimelineDayProcess ? MINUTES_PER_DAY : this.actionObj.slotInterval));\r\n eventStart.setMilliseconds(-(eventDuration));\r\n }\r\n else {\r\n eventStart.setMinutes(eventStart.getMinutes() -\r\n (this.cursorPointIndex * (this.isTimelineDayProcess ? MINUTES_PER_DAY : this.actionObj.slotInterval)));\r\n }\r\n }\r\n eventStart = this.calculateIntervalTime(eventStart);\r\n if (this.isTimelineDayProcess) {\r\n var eventSrt = eventObj[this.parent.eventFields.startTime];\r\n eventStart.setHours(eventSrt.getHours(), eventSrt.getMinutes(), eventSrt.getSeconds());\r\n }\r\n if (this.parent.eventDragArea) {\r\n var targetDate = this.parent.getDateFromElement(e.target);\r\n if (!isNullOrUndefined(targetDate)) {\r\n eventStart = targetDate;\r\n }\r\n }\r\n var eventEnd = new Date(eventStart.getTime());\r\n eventEnd.setMilliseconds(eventDuration);\r\n var eventsData = [this.getUpdatedEvent(eventStart, eventEnd, this.actionObj.event)];\r\n if (this.multiData.length > 0) {\r\n var startTimeDiff = eventsData[0][this.parent.eventFields.startTime].getTime() - this.startTime;\r\n for (var i = 0; i < this.multiData.length; i++) {\r\n this.updatedData[i] = this.updateMultipleData(this.multiData[i], startTimeDiff);\r\n }\r\n eventsData = this.updatedData;\r\n }\r\n for (var dataIndex = 0; dataIndex < eventsData.length; dataIndex++) {\r\n var events_2 = this.timelineEventModule.splitEvent(eventsData[dataIndex], this.timelineEventModule.dateRender);\r\n var eventData = events_2[0].data;\r\n var startTime = this.timelineEventModule.getStartTime(events_2[0], eventData);\r\n var endTime = this.timelineEventModule.getEndTime(events_2[0], eventData);\r\n // eslint-disable-next-line max-len\r\n var width = this.timelineEventModule.getEventWidth(startTime, endTime, eventObj[this.parent.eventFields.isAllDay], eventData.count);\r\n // eslint-disable-next-line max-len\r\n var day = this.parent.getIndexOfDate(this.timelineEventModule.dateRender, util.resetTime(new Date(startTime.getTime())));\r\n day = day < 0 ? 0 : day;\r\n var left = this.timelineEventModule.getPosition(startTime, endTime, eventObj[this.parent.eventFields.isAllDay], day);\r\n var cloneElement = this.multiData.length > 0 ? this.actionObj.cloneElement[dataIndex] : this.actionObj.clone;\r\n if (this.parent.enableRtl) {\r\n cloneElement.style.right = formatUnit(left);\r\n }\r\n else {\r\n cloneElement.style.left = formatUnit(left);\r\n }\r\n if (!this.isMorePopupOpened) {\r\n cloneElement.style.width = formatUnit(width);\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.calculateResourceGroupingPosition(e, cloneElement);\r\n }\r\n this.actionObj.start = new Date(eventStart.getTime());\r\n this.actionObj.end = new Date(eventEnd.getTime());\r\n this.updateTimePosition(this.actionObj.start, this.updatedData);\r\n }\r\n };\r\n DragAndDrop.prototype.getOffsetValue = function (offsetLeft, rightOffset) {\r\n if (this.scrollEdges.left || this.scrollEdges.right) {\r\n var viewEle = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (this.parent.enableRtl) {\r\n rightOffset = viewEle.offsetWidth - viewEle.scrollLeft;\r\n if (this.scrollEdges.right) {\r\n rightOffset = (rightOffset - viewEle.offsetWidth + this.actionObj.clone.offsetWidth) -\r\n (this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint);\r\n }\r\n else {\r\n rightOffset = rightOffset + this.widthUptoCursorPoint;\r\n if (rightOffset - this.widthUptoCursorPoint >= viewEle.scrollWidth) {\r\n this.actionObj.clone.style.width =\r\n formatUnit(this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint + this.actionObj.cellWidth);\r\n rightOffset = (viewEle.scrollLeft - viewEle.scrollWidth);\r\n }\r\n }\r\n this.actionObj.clone.style.left = formatUnit(rightOffset);\r\n }\r\n else {\r\n if (this.scrollEdges.left) {\r\n offsetLeft = viewEle.scrollLeft - this.widthUptoCursorPoint + this.actionObj.cellWidth;\r\n if (viewEle.scrollLeft + viewEle.offsetWidth >= viewEle.offsetWidth) {\r\n viewEle.scrollLeft = viewEle.scrollLeft - 1;\r\n }\r\n else if (this.actionObj.clone.offsetLeft === 0) {\r\n offsetLeft = viewEle.scrollLeft;\r\n }\r\n }\r\n else {\r\n offsetLeft = (viewEle.scrollLeft + viewEle.offsetWidth -\r\n this.actionObj.clone.offsetWidth) + (this.actionObj.clone.offsetWidth - this.widthUptoCursorPoint);\r\n }\r\n offsetLeft = offsetLeft < 0 ? 0 : offsetLeft;\r\n this.actionObj.clone.style.left = formatUnit(offsetLeft);\r\n }\r\n }\r\n return offsetLeft;\r\n };\r\n DragAndDrop.prototype.getWidthDiff = function (tr, index) {\r\n var pages = this.scrollArgs.element.getBoundingClientRect();\r\n if (pages.left <= this.actionObj.pageX && pages.right >= this.actionObj.pageX) {\r\n var targetLeft = tr.children[index].offsetLeft;\r\n var pageX = this.actionObj.pageX - pages.left;\r\n if (this.parent.enableRtl) {\r\n return (targetLeft + this.actionObj.cellWidth) - (this.scrollArgs.element.scrollLeft + pageX);\r\n }\r\n else {\r\n return (this.scrollArgs.element.scrollLeft + pageX) - targetLeft;\r\n }\r\n }\r\n return 0;\r\n };\r\n DragAndDrop.prototype.getColumnIndex = function (offsetLeft) {\r\n var index = Math.floor(offsetLeft / this.actionObj.cellWidth);\r\n if (this.isHeaderRows) {\r\n return index;\r\n }\r\n return this.getIndex(index);\r\n };\r\n DragAndDrop.prototype.getCursorCurrentIndex = function (colIndex, cloneIndex, tr) {\r\n var index = colIndex + cloneIndex;\r\n if (this.isHeaderRows) {\r\n var dateLength = Math.floor(tr.offsetWidth / this.actionObj.cellWidth);\r\n return (index > dateLength - 1) ? dateLength - 1 : index;\r\n }\r\n return (index > tr.children.length - 1) ? tr.children.length - 1 : index;\r\n };\r\n DragAndDrop.prototype.cursorIndex = function (e, event, left, index) {\r\n var td = closest(e.target, '.e-work-cells');\r\n if (!isNullOrUndefined(td) && !this.isMorePopupOpened) {\r\n var targetDate = this.parent.getDateFromElement(td);\r\n if (this.isHeaderRows) {\r\n var currentIndex = Math.floor(left / this.actionObj.cellWidth);\r\n targetDate = new Date(this.timelineEventModule.dateRender[currentIndex + index].getTime());\r\n }\r\n var timeDiff = targetDate.getTime() - event[this.parent.eventFields.startTime].getTime();\r\n if (this.isTimelineDayProcess) {\r\n this.cursorPointIndex = Math.abs(Math.ceil(timeDiff / (util.MS_PER_DAY)));\r\n }\r\n else {\r\n var widthDiff = Math.floor((timeDiff / util.MS_PER_MINUTE) / (this.actionObj.slotInterval / this.actionObj.cellWidth));\r\n this.cursorPointIndex = Math.floor(widthDiff / this.actionObj.cellWidth);\r\n this.cursorPointIndex = this.cursorPointIndex < 0 ? 0 : this.cursorPointIndex;\r\n }\r\n }\r\n else {\r\n this.cursorPointIndex = 0;\r\n }\r\n };\r\n DragAndDrop.prototype.calculateResourceGroupingPosition = function (e, cloneElement) {\r\n var dragArea = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var trCollection = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap .e-content-table tr:not(.e-hidden)'));\r\n var translateY = util.getTranslateY(dragArea.querySelector('table'));\r\n translateY = (isNullOrUndefined(translateY)) ? 0 : translateY;\r\n var rowHeight = (this.parent.rowAutoHeight) ?\r\n ~~(dragArea.querySelector('table').offsetHeight / trCollection.length) : this.actionObj.cellHeight;\r\n var rowIndex = Math.floor(Math.floor((this.actionObj.Y +\r\n (dragArea.scrollTop - translateY - (window.scrollY || window.pageYOffset))) -\r\n dragArea.getBoundingClientRect().top) / rowHeight);\r\n rowIndex = (rowIndex < 0) ? 0 : (rowIndex > trCollection.length - 1) ? trCollection.length - 1 : rowIndex;\r\n this.actionObj.index = rowIndex;\r\n var eventContainer = this.parent.element.querySelectorAll('.e-appointment-container:not(.e-hidden)').item(rowIndex);\r\n var eventWrapper = eventContainer.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!eventWrapper) {\r\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n eventContainer.appendChild(eventWrapper);\r\n }\r\n this.appendCloneElement(eventWrapper, cloneElement);\r\n var td = closest(this.actionObj.target, 'td');\r\n this.actionObj.groupIndex = (td && !isNaN(parseInt(td.getAttribute('data-group-index'), 10)))\r\n ? parseInt(td.getAttribute('data-group-index'), 10) : this.actionObj.groupIndex;\r\n var top = trCollection[rowIndex].getBoundingClientRect().height * rowIndex;\r\n if (this.parent.rowAutoHeight) {\r\n var cursorElement = this.getCursorElement(e);\r\n if (cursorElement) {\r\n top = cursorElement.classList.contains(cls.WORK_CELLS_CLASS) ? cursorElement.offsetTop :\r\n cursorElement.offsetParent.classList.contains(cls.APPOINTMENT_CLASS) ?\r\n cursorElement.offsetParent.offsetTop : top;\r\n }\r\n }\r\n cloneElement.style.top = formatUnit(top);\r\n };\r\n DragAndDrop.prototype.appendCloneElement = function (element, cloneElement) {\r\n if (cloneElement === void 0) { cloneElement = null; }\r\n cloneElement = isNullOrUndefined(cloneElement) ? this.actionObj.clone : cloneElement;\r\n var dragElement = document.querySelector(this.parent.eventDragArea);\r\n if (this.parent.eventDragArea && dragElement) {\r\n dragElement.appendChild(cloneElement);\r\n }\r\n else {\r\n element.appendChild(cloneElement);\r\n }\r\n };\r\n DragAndDrop.prototype.getEventWrapper = function (index, isAllDayDrag) {\r\n var eventWrapper;\r\n if (isNullOrUndefined(isAllDayDrag)) {\r\n isAllDayDrag = this.actionObj.clone.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS);\r\n }\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n var wrapperClass = isAllDayDrag ? '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : '.' + cls.APPOINTMENT_WRAPPER_CLASS;\r\n eventWrapper = this.parent.element.querySelectorAll(wrapperClass).item(index);\r\n }\r\n else {\r\n var targetWrapper = this.parent.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS).item(index);\r\n eventWrapper = targetWrapper.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!eventWrapper) {\r\n eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n targetWrapper.appendChild(eventWrapper);\r\n }\r\n }\r\n return eventWrapper;\r\n };\r\n DragAndDrop.prototype.getAllDayEventHeight = function () {\r\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_CLASS });\r\n this.parent.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS).appendChild(eventWrapper);\r\n var eventHeight = eventWrapper.offsetHeight;\r\n remove(eventWrapper);\r\n return eventHeight;\r\n };\r\n DragAndDrop.prototype.isAllowDrop = function (e) {\r\n if (!this.actionObj.excludeSelectors) {\r\n return false;\r\n }\r\n var dropSelectors = this.actionObj.excludeSelectors.split(',');\r\n var isAllowDrop = false;\r\n for (var _i = 0, dropSelectors_1 = dropSelectors; _i < dropSelectors_1.length; _i++) {\r\n var selector = dropSelectors_1[_i];\r\n if (e.target.classList.contains(selector)) {\r\n isAllowDrop = true;\r\n break;\r\n }\r\n }\r\n return isAllowDrop;\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} Returns the module name\r\n */\r\n DragAndDrop.prototype.getModuleName = function () {\r\n return 'dragAndDrop';\r\n };\r\n return DragAndDrop;\r\n}(ActionBase));\r\nexport { DragAndDrop };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { KeyboardEvents, closest, EventHandler, extend } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport * as event from '../base/constant';\r\nimport * as util from '../base/util';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Keyboard interaction\r\n */\r\nvar KeyboardInteraction = /** @class */ (function () {\r\n function KeyboardInteraction(parent) {\r\n this.selectedCells = [];\r\n this.keyConfigs = {\r\n downArrow: 'downarrow',\r\n upArrow: 'uparrow',\r\n rightArrow: 'rightarrow',\r\n leftArrow: 'leftarrow',\r\n shiftDownArrow: 'shift+downarrow',\r\n shiftUpArrow: 'shift+uparrow',\r\n shiftRightArrow: 'shift+rightarrow',\r\n shiftLeftArrow: 'shift+leftarrow',\r\n ctrlLeftArrow: 'ctrl+leftarrow',\r\n ctrlRightArrow: 'ctrl+rightarrow',\r\n altOne: 'alt+1',\r\n altTwo: 'alt+2',\r\n altThree: 'alt+3',\r\n altFour: 'alt+4',\r\n altFive: 'alt+5',\r\n altSix: 'alt+6',\r\n altSeven: 'alt+7',\r\n altEight: 'alt+8',\r\n altNine: 'alt+9',\r\n enter: 'enter',\r\n escape: 'escape',\r\n delete: 'delete',\r\n home: 'home',\r\n pageUp: 'pageup',\r\n pageDown: 'pagedown',\r\n tab: 'tab',\r\n shiftTab: 'shift+tab',\r\n ctrlShiftUpArrow: 'ctrl+shift+uparrow',\r\n ctrlShiftDownArrow: 'ctrl+shift+downarrow',\r\n ctrlShiftLeftArrow: 'ctrl+shift+leftarrow',\r\n ctrlShiftRightArrow: 'ctrl+shift+rightarrow'\r\n };\r\n this.parent = parent;\r\n this.parent.element.tabIndex = this.parent.element.tabIndex === -1 ? 0 : this.parent.element.tabIndex;\r\n this.keyboardModule = new KeyboardEvents(this.parent.element, {\r\n keyAction: this.keyActionHandler.bind(this),\r\n keyConfigs: this.keyConfigs,\r\n eventName: 'keydown'\r\n });\r\n this.addEventListener();\r\n }\r\n KeyboardInteraction.prototype.keyActionHandler = function (e) {\r\n switch (e.action) {\r\n case 'downArrow':\r\n case 'shiftDownArrow':\r\n this.processDown(e, e.shiftKey);\r\n break;\r\n case 'upArrow':\r\n case 'shiftUpArrow':\r\n this.processUp(e, e.shiftKey);\r\n break;\r\n case 'leftArrow':\r\n case 'shiftLeftArrow':\r\n this.processLeft(e, e.shiftKey);\r\n break;\r\n case 'rightArrow':\r\n case 'shiftRightArrow':\r\n this.processRight(e, e.shiftKey);\r\n break;\r\n case 'ctrlLeftArrow':\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.element.querySelector('.e-prev button').focus();\r\n }\r\n break;\r\n case 'ctrlRightArrow':\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.element.querySelector('.e-next button').focus();\r\n }\r\n break;\r\n case 'altOne':\r\n case 'altTwo':\r\n case 'altThree':\r\n case 'altFour':\r\n case 'altFive':\r\n case 'altSix':\r\n case 'altSeven':\r\n case 'altEight':\r\n case 'altNine':\r\n this.processViewNavigation(e);\r\n break;\r\n case 'enter':\r\n this.processEnter(e);\r\n break;\r\n case 'home':\r\n this.focusFirstCell();\r\n break;\r\n case 'tab':\r\n case 'shiftTab':\r\n this.processTab(e, e.shiftKey);\r\n break;\r\n case 'delete':\r\n this.processDelete(e);\r\n break;\r\n case 'ctrlShiftUpArrow':\r\n case 'ctrlShiftDownArrow':\r\n case 'ctrlShiftLeftArrow':\r\n case 'ctrlShiftRightArrow':\r\n this.processCtrlShiftNavigationArrows(e);\r\n break;\r\n case 'escape':\r\n this.processEscape(e);\r\n }\r\n };\r\n KeyboardInteraction.prototype.addEventListener = function () {\r\n this.parent.on(event.cellMouseDown, this.onCellMouseDown, this);\r\n };\r\n KeyboardInteraction.prototype.removeEventListener = function () {\r\n this.parent.off(event.cellMouseDown, this.onCellMouseDown);\r\n };\r\n KeyboardInteraction.prototype.onCellMouseDown = function (e) {\r\n if (e.event.shiftKey) {\r\n return;\r\n }\r\n this.initialTarget = this.getClosestCell(e.event);\r\n if (this.parent.activeViewOptions.readonly || this.parent.currentView === 'MonthAgenda' || !this.initialTarget) {\r\n return;\r\n }\r\n if (e.event.target.classList.contains(cls.WORK_CELLS_CLASS) && e.event.which !== 3) {\r\n this.parent.removeSelectedClass();\r\n EventHandler.add(this.parent.getContentTable(), 'mousemove', this.onMouseSelection, this);\r\n EventHandler.add(this.parent.getContentTable(), 'mouseup', this.onMoveUp, this);\r\n }\r\n if (e.event.target.classList.contains(cls.ALLDAY_CELLS_CLASS) && e.event.which !== 3) {\r\n this.parent.removeSelectedClass();\r\n var allDayRow = this.parent.getAllDayRow();\r\n EventHandler.add(allDayRow, 'mousemove', this.onMouseSelection, this);\r\n EventHandler.add(allDayRow, 'mouseup', this.onMoveUp, this);\r\n }\r\n };\r\n KeyboardInteraction.prototype.onMouseSelection = function (e) {\r\n var appointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n addClass(appointments, 'e-allow-select');\r\n var selectionEdges = this.parent.boundaryValidation(e.pageY, e.pageX);\r\n if (selectionEdges.bottom || selectionEdges.top || selectionEdges.left || selectionEdges.right) {\r\n var parent_1 = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var yInBounds = parent_1.offsetHeight <= parent_1.scrollHeight && parent_1.scrollTop >= 0 &&\r\n parent_1.scrollTop + parent_1.offsetHeight <= parent_1.scrollHeight;\r\n var xInBounds = parent_1.offsetWidth <= parent_1.scrollWidth && parent_1.scrollLeft >= 0 &&\r\n parent_1.scrollLeft + parent_1.offsetWidth <= parent_1.scrollWidth;\r\n if (yInBounds && (selectionEdges.top || selectionEdges.bottom)) {\r\n parent_1.scrollTop += selectionEdges.top ? -e.target.offsetHeight : e.target.offsetHeight;\r\n }\r\n if (xInBounds && (selectionEdges.left || selectionEdges.right)) {\r\n parent_1.scrollLeft += selectionEdges.left ? -e.target.offsetWidth : e.target.offsetWidth;\r\n }\r\n }\r\n var target = this.getClosestCell(e);\r\n if (target) {\r\n this.selectCells(true, target);\r\n }\r\n };\r\n KeyboardInteraction.prototype.getClosestCell = function (e) {\r\n return closest(e.target, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS);\r\n };\r\n KeyboardInteraction.prototype.onMoveUp = function (e) {\r\n var _this = this;\r\n var appointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n removeClass(appointments, 'e-allow-select');\r\n if (e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\r\n EventHandler.remove(this.parent.getContentTable(), 'mousemove', this.onMouseSelection);\r\n EventHandler.remove(this.parent.getContentTable(), 'mouseup', this.onMoveUp);\r\n }\r\n if (e.target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var allDayRow = this.parent.getAllDayRow();\r\n EventHandler.remove(allDayRow, 'mousemove', this.onMouseSelection);\r\n EventHandler.remove(allDayRow, 'mouseup', this.onMoveUp);\r\n }\r\n if (this.isPreventAction(e)) {\r\n return;\r\n }\r\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\r\n var target = closest(e.target, queryStr);\r\n this.parent.activeCellsData = this.getSelectedElements(target);\r\n var cellData = {};\r\n if (this.parent.eventWindow) {\r\n this.parent.eventWindow.convertToEventData(this.parent.activeCellsData, cellData);\r\n }\r\n var selectedCells = this.parent.getSelectedElements();\r\n var args = {\r\n data: cellData, element: this.parent.activeCellsData.element, event: e,\r\n requestType: 'cellSelect', showQuickPopup: false\r\n };\r\n this.parent.trigger(event.select, args, function (selectArgs) {\r\n var isPopupShow = selectArgs.showQuickPopup || _this.parent.quickInfoOnSelectionEnd;\r\n if (isPopupShow && selectedCells.length > 1) {\r\n var cellArgs = extend(_this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });\r\n _this.parent.notify(event.cellClick, cellArgs);\r\n }\r\n });\r\n };\r\n KeyboardInteraction.prototype.processEnter = function (e) {\r\n if ((this.parent.activeViewOptions.readonly && !e.target.classList.contains(cls.APPOINTMENT_CLASS))\r\n || this.isPreventAction(e)) {\r\n return;\r\n }\r\n var target = e.target;\r\n if (closest(target, '.' + cls.POPUP_WRAPPER_CLASS)) {\r\n if (target.classList.contains(cls.QUICK_POPUP_EVENT_DETAILS_CLASS) ||\r\n target.classList.contains(cls.EVENT_CREATE_CLASS) ||\r\n target.classList.contains(cls.EDIT_EVENT_CLASS) ||\r\n target.classList.contains(cls.DELETE_EVENT_CLASS) ||\r\n target.classList.contains(cls.CLOSE_CLASS)) {\r\n target.click();\r\n e.preventDefault();\r\n }\r\n else if (target.classList.contains(cls.SUBJECT_CLASS)) {\r\n this.parent.element.querySelector('.' + cls.EVENT_CREATE_CLASS).click();\r\n e.preventDefault();\r\n }\r\n return;\r\n }\r\n if (target.classList.contains(cls.RESOURCE_CELLS_CLASS) && target.classList.contains(cls.RESOURCE_PARENT_CLASS)) {\r\n var resourceIcon = target.querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\r\n if (resourceIcon) {\r\n resourceIcon.click();\r\n }\r\n return;\r\n }\r\n if (target.classList.contains(cls.WORK_CELLS_CLASS) || target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n this.parent.activeCellsData = this.getSelectedElements(target);\r\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e });\r\n if (this.parent.allowInline) {\r\n var inlineArgs = {\r\n element: args.element,\r\n groupIndex: args.groupIndex, type: 'Cell'\r\n };\r\n this.parent.notify(event.inlineClick, inlineArgs);\r\n }\r\n else {\r\n this.parent.notify(event.cellClick, args);\r\n }\r\n return;\r\n }\r\n if (target.classList.contains(cls.INLINE_SUBJECT_CLASS)) {\r\n this.parent.inlineModule.inlineCrudActions(target);\r\n return;\r\n }\r\n if (target.classList.contains(cls.APPOINTMENT_CLASS) || target.classList.contains(cls.MORE_EVENT_CLOSE_CLASS) ||\r\n target.classList.contains(cls.ALLDAY_APPOINTMENT_SECTION_CLASS) || target.classList.contains(cls.MORE_INDICATOR_CLASS)) {\r\n target.click();\r\n return;\r\n }\r\n if (target.classList.contains(cls.MORE_EVENT_HEADER_DATE_CLASS)) {\r\n this.parent.setProperties({ selectedDate: this.parent.getDateFromElement(target) }, true);\r\n this.parent.changeView(this.parent.getNavigateView(), e);\r\n this.processEscape(e);\r\n return;\r\n }\r\n };\r\n KeyboardInteraction.prototype.getSelectedElements = function (target) {\r\n var cellDetails;\r\n if (this.selectedCells.length > 1 && target.classList.contains(cls.SELECTED_CELL_CLASS)) {\r\n var start = this.parent.getCellDetails(this.selectedCells[0]);\r\n var end = this.parent.getCellDetails(this.selectedCells.slice(-1)[0]);\r\n start.endTime = end.endTime;\r\n start.element = target;\r\n cellDetails = start;\r\n }\r\n else {\r\n cellDetails = this.parent.getCellDetails(target);\r\n }\r\n return cellDetails;\r\n };\r\n KeyboardInteraction.prototype.getCells = function (isInverseTable, start, end) {\r\n var tableEle = this.parent.getContentTable();\r\n var cells = [].slice.call(tableEle.querySelectorAll('td'));\r\n var maxRow = tableEle.rows.length;\r\n var maxColumn = tableEle.rows[0].cells.length;\r\n if (start && start.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var allDayRow = this.parent.getAllDayRow();\r\n cells = [].slice.call(allDayRow.cells);\r\n maxRow = 1;\r\n maxColumn = allDayRow.cells.length;\r\n }\r\n var startIndex = cells.indexOf(start);\r\n var endIndex = cells.indexOf(end);\r\n var inverseCells = [];\r\n if (isInverseTable) {\r\n for (var i = 0; i < maxColumn; i++) {\r\n for (var j = 0; j < maxRow; j++) {\r\n inverseCells.push(cells[maxColumn * j + i]);\r\n }\r\n }\r\n startIndex = inverseCells.indexOf(start);\r\n endIndex = inverseCells.indexOf(end);\r\n }\r\n if (startIndex > endIndex) {\r\n var temp = startIndex;\r\n startIndex = endIndex;\r\n endIndex = temp;\r\n }\r\n var sCells = isInverseTable ? inverseCells : cells;\r\n return sCells.slice(startIndex, endIndex + 1);\r\n };\r\n KeyboardInteraction.prototype.focusFirstCell = function () {\r\n if (this.parent.currentView === 'Agenda') {\r\n var focusCell = this.parent.getContentTable().querySelector('.' + cls.AGENDA_CELLS_CLASS);\r\n focusCell.setAttribute('tabindex', '0');\r\n focusCell.focus();\r\n return;\r\n }\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n if (this.parent.activeView.isTimelineView()) {\r\n var cell = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS +\r\n ' tr:not(.' + cls.HIDDEN_CLASS + ') .' + cls.WORK_CELLS_CLASS + ':not(.' + cls.RESOURCE_GROUP_CELLS_CLASS + ')');\r\n this.selectCells(false, cell);\r\n }\r\n else {\r\n this.selectCells(false, this.parent.getWorkCellElements()[0]);\r\n }\r\n };\r\n KeyboardInteraction.prototype.isInverseTableSelect = function () {\r\n return this.parent.activeView.isInverseTableSelect;\r\n };\r\n /**\r\n * Internal method to select cells\r\n *\r\n * @param {boolean} isMultiple Accepts to select multiple cells or not\r\n * @param {HTMLTableCellElement} targetCell Accepts the target cells\r\n * @returns {void}\r\n * @private\r\n */\r\n KeyboardInteraction.prototype.selectCells = function (isMultiple, targetCell) {\r\n var _this = this;\r\n this.parent.removeSelectedClass();\r\n var target = (targetCell instanceof Array) ? targetCell.slice(-1)[0] : targetCell;\r\n if (isMultiple) {\r\n var initialId_1;\r\n var views_1 = ['Day', 'Week', 'WorkWeek', 'Month', 'TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'];\r\n var args = { element: targetCell, requestType: 'mousemove', allowMultipleRow: true };\r\n this.parent.inlineModule.removeInlineAppointmentElement();\r\n this.parent.trigger(event.select, args, function (selectArgs) {\r\n var allowMultipleRow = (!selectArgs.allowMultipleRow) || (!_this.parent.allowMultiRowSelection);\r\n if (allowMultipleRow && (views_1.indexOf(_this.parent.currentView) > -1)) {\r\n target = target.parentElement.children[_this.initialTarget.cellIndex];\r\n }\r\n var selectedCells = _this.getCells(_this.isInverseTableSelect(), _this.initialTarget, target);\r\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\r\n initialId_1 = _this.initialTarget.getAttribute('data-group-index');\r\n var resourceSelectedCells = [];\r\n for (var _i = 0, selectedCells_1 = selectedCells; _i < selectedCells_1.length; _i++) {\r\n var cell = selectedCells_1[_i];\r\n if (cell.getAttribute('data-group-index') === initialId_1) {\r\n resourceSelectedCells.push(cell);\r\n }\r\n }\r\n selectedCells = resourceSelectedCells;\r\n }\r\n if (!_this.parent.allowMultiCellSelection) {\r\n selectedCells = [_this.initialTarget];\r\n }\r\n _this.selectedCells = selectedCells;\r\n if (selectedCells.length > 2 && !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var allDayCells = _this.getAllDayCells(selectedCells);\r\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resourceAllDayCells = [];\r\n for (var _a = 0, allDayCells_1 = allDayCells; _a < allDayCells_1.length; _a++) {\r\n var cell = allDayCells_1[_a];\r\n if (cell.getAttribute('data-group-index') === initialId_1) {\r\n resourceAllDayCells.push(cell);\r\n }\r\n }\r\n allDayCells = resourceAllDayCells;\r\n }\r\n selectedCells = selectedCells.concat(allDayCells);\r\n }\r\n if ((target.getAttribute('data-group-index') !== initialId_1) && _this.parent.activeViewOptions.group.resources.length > 0) {\r\n target = _this.selectedCells[_this.selectedCells.length - 1];\r\n }\r\n _this.parent.addSelectedClass(selectedCells, target);\r\n });\r\n }\r\n else {\r\n this.initialTarget = target;\r\n this.selectedCells = [target];\r\n this.parent.addSelectedClass([target], target);\r\n }\r\n };\r\n KeyboardInteraction.prototype.selectAppointment = function (isReverse, target) {\r\n var appointments = this.getAppointmentElements();\r\n if (appointments.length < 0) {\r\n return;\r\n }\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n var nextAppEle;\r\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n var targetIndex = appointments.indexOf(target);\r\n nextAppEle = appointments[(isReverse ? targetIndex - 1 : targetIndex + 1)];\r\n }\r\n else {\r\n nextAppEle = isReverse ? appointments[appointments.length - 1] : appointments[0];\r\n }\r\n if (nextAppEle) {\r\n this.parent.eventBase.addSelectedAppointments([nextAppEle]);\r\n nextAppEle.focus();\r\n addClass([nextAppEle], cls.AGENDA_SELECTED_CELL);\r\n }\r\n };\r\n KeyboardInteraction.prototype.selectAppointmentElementFromWorkCell = function (isReverse, target) {\r\n var _this = this;\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n this.parent.removeSelectedClass();\r\n if (target.classList.contains(cls.WORK_CELLS_CLASS) || target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var appointmentElements_1 = this.getUniqueAppointmentElements();\r\n var filteredElements_1 = [];\r\n var selectedDate_1 = this.parent.getDateFromElement(target).getTime();\r\n var selectedSeriesEvents = this.parent.eventsProcessed.filter(function (eventObject) {\r\n return (!isReverse ? (eventObject[_this.parent.eventFields.startTime].getTime() >= selectedDate_1) :\r\n (eventObject[_this.parent.eventFields.startTime].getTime() <= selectedDate_1));\r\n });\r\n selectedSeriesEvents.filter(function (event) {\r\n appointmentElements_1.filter(function (element) {\r\n if (JSON.stringify(event.Guid) === JSON.stringify(element.getAttribute('data-guid'))) {\r\n filteredElements_1.push(element);\r\n }\r\n });\r\n });\r\n if (filteredElements_1.length > 0) {\r\n var selectedElement = isReverse ? filteredElements_1[filteredElements_1.length - 1] : filteredElements_1[0];\r\n var focusElements = this.getAppointmentElementsByGuid(selectedElement.getAttribute('data-guid'));\r\n this.parent.eventBase.addSelectedAppointments(focusElements);\r\n (focusElements[focusElements.length - 1]).focus();\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.getAllDayCells = function (cells) {\r\n var allDayRow = this.parent.getAllDayRow();\r\n if (!allDayRow) {\r\n return [];\r\n }\r\n var startCell = cells[0];\r\n var endCell = cells[cells.length - 1];\r\n var start = this.parent.getCellDetails(startCell);\r\n var end = this.parent.getCellDetails(endCell);\r\n if (end.endTime.getTime() - start.startTime.getTime() >= util.MS_PER_DAY) {\r\n var allDayCells = [].slice.call(allDayRow.cells);\r\n return allDayCells.slice(startCell.cellIndex, endCell.cellIndex + 1);\r\n }\r\n return [];\r\n };\r\n KeyboardInteraction.prototype.getAppointmentElements = function () {\r\n return [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n };\r\n KeyboardInteraction.prototype.getAppointmentElementsByGuid = function (guid) {\r\n return [].slice.call(this.parent.element.querySelectorAll('div[data-guid=\"' + guid + '\"]'));\r\n };\r\n KeyboardInteraction.prototype.getUniqueAppointmentElements = function () {\r\n var appointments = this.getAppointmentElements();\r\n var appointmentElements = [];\r\n appointments.map(function (value) { return value.getAttribute('data-guid'); }).filter(function (value, index, self) {\r\n if (self.indexOf(value) === index) {\r\n appointmentElements.push(appointments[index]);\r\n }\r\n });\r\n return appointmentElements;\r\n };\r\n KeyboardInteraction.prototype.getWorkCellFromAppointmentElement = function (target) {\r\n var selectedObject = this.parent.eventBase.getEventByGuid(target.getAttribute('data-guid'));\r\n return this.parent.eventBase.selectWorkCellByTime([selectedObject]);\r\n };\r\n KeyboardInteraction.prototype.processViewNavigation = function (e) {\r\n var index = parseInt(e.key, 10) - 1;\r\n if (index < this.parent.views.length) {\r\n var view = this.parent.viewCollections[index].option;\r\n this.parent.changeView(view, e, undefined, index);\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.element.querySelector('.e-active-view button').focus();\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.processUp = function (e, isMultiple) {\r\n if ((isMultiple && (this.parent.activeView.isTimelineView() || this.parent.currentView === 'MonthAgenda'))) {\r\n return;\r\n }\r\n var target = (e.target);\r\n var selectedElements = this.parent.getSelectedElements();\r\n var selectedEventElements = this.parent.eventBase.getSelectedAppointments();\r\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\r\n var quickPopupWrapper = this.getQuickPopupElement();\r\n if (selectedElements.length > 0 && !e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\r\n target = selectedElements[selectedElements.length - 1];\r\n }\r\n if (selectedEventElements.length > 0 && !moreEventWrapper.classList.contains(cls.POPUP_OPEN) &&\r\n !quickPopupWrapper.classList.contains(cls.POPUP_OPEN) &&\r\n ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.parent.currentView) !== -1) {\r\n target = this.getWorkCellFromAppointmentElement(selectedEventElements[selectedEventElements.length - 1]);\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n }\r\n if (!target) {\r\n return;\r\n }\r\n if (target.classList.contains(cls.WORK_CELLS_CLASS) && !this.parent.element.querySelector('.' + cls.POPUP_OPEN)) {\r\n var tableRows = this.parent.getTableRows();\r\n var curRowIndex = tableRows.indexOf(target.parentElement);\r\n if (curRowIndex > 0 && curRowIndex < tableRows.length) {\r\n this.selectCells(isMultiple, (tableRows[curRowIndex - 1]).cells[target.cellIndex]);\r\n }\r\n }\r\n else if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n this.selectAppointment(true, target);\r\n }\r\n };\r\n KeyboardInteraction.prototype.processDown = function (e, isMultiple) {\r\n if (isMultiple && (this.parent.activeView.isTimelineView() || this.parent.currentView === 'MonthAgenda')) {\r\n return;\r\n }\r\n var target = (e.target);\r\n var selectedCells = this.parent.getSelectedElements();\r\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\r\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\r\n var quickPopupWrapper = this.getQuickPopupElement();\r\n if (selectedCells.length > 0 && !e.target.classList.contains(cls.WORK_CELLS_CLASS)) {\r\n target = selectedCells[selectedCells.length - 1];\r\n }\r\n if (selectedElements.length > 0 && !moreEventWrapper.classList.contains(cls.POPUP_OPEN) &&\r\n !quickPopupWrapper.classList.contains(cls.POPUP_OPEN) &&\r\n ['Day', 'Week', 'WorkWeek', 'Month'].indexOf(this.parent.currentView) !== -1) {\r\n target = this.getWorkCellFromAppointmentElement(selectedElements[selectedElements.length - 1]);\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n }\r\n var tableRows = this.parent.getTableRows();\r\n if (!target) {\r\n return;\r\n }\r\n if (target.classList.contains(cls.WORK_CELLS_CLASS) && !this.parent.element.querySelector('.' + cls.POPUP_OPEN)) {\r\n var curRowIndex = tableRows.indexOf(target.parentElement);\r\n if (curRowIndex >= 0 && curRowIndex < tableRows.length - 1) {\r\n this.selectCells(isMultiple, (tableRows[curRowIndex + 1]).cells[target.cellIndex]);\r\n }\r\n }\r\n else if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n this.selectAppointment(false, target);\r\n }\r\n };\r\n KeyboardInteraction.prototype.processLeftRight = function (target) {\r\n var tableEle = this.parent.getContentTable();\r\n var curRowIndex = target.parentNode.sectionRowIndex;\r\n var key = {\r\n element: tableEle,\r\n rowIndex: curRowIndex,\r\n columnIndex: target.cellIndex,\r\n maxIndex: tableEle.rows[curRowIndex].cells.length\r\n };\r\n return key;\r\n };\r\n KeyboardInteraction.prototype.getQuickPopupElement = function () {\r\n return (this.parent.isAdaptive ? document.body : this.parent.element).querySelector('.' + cls.POPUP_WRAPPER_CLASS);\r\n };\r\n KeyboardInteraction.prototype.isCancelLeftRightAction = function (e, isMultiple) {\r\n if (this.parent.currentView === 'Agenda' || (isMultiple && this.parent.currentView === 'MonthAgenda')) {\r\n return true;\r\n }\r\n if (this.isPreventAction(e) && isMultiple) {\r\n return true;\r\n }\r\n var moreEventWrapper = this.parent.element.querySelector('.' + cls.MORE_POPUP_WRAPPER_CLASS);\r\n var quickPopupWrapper = this.getQuickPopupElement();\r\n if (moreEventWrapper.classList.contains(cls.POPUP_OPEN) || quickPopupWrapper.classList.contains(cls.POPUP_OPEN)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n KeyboardInteraction.prototype.processRight = function (e, isMultiple) {\r\n if (this.isCancelLeftRightAction(e, isMultiple)) {\r\n return;\r\n }\r\n var selectedCells = this.parent.getSelectedElements();\r\n var targetCell;\r\n var selectedAppointments = this.parent.eventBase.getSelectedAppointments();\r\n var target = (e.target);\r\n if (selectedCells.length > 0 && !target.classList.contains(cls.WORK_CELLS_CLASS) &&\r\n !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n target = selectedCells[selectedCells.length - 1];\r\n }\r\n if (selectedAppointments.length > 0) {\r\n target = this.getWorkCellFromAppointmentElement(selectedAppointments[selectedAppointments.length - 1]);\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n if (!target) {\r\n return;\r\n }\r\n }\r\n if (target.classList.contains(cls.WORK_CELLS_CLASS) &&\r\n (e.target).classList.contains(cls.WORK_CELLS_CLASS)) {\r\n var key = this.processLeftRight(target);\r\n if (key.columnIndex >= 0 && key.columnIndex < key.maxIndex - 1) {\r\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex].cells[target.cellIndex + 1], 'right');\r\n if (!isNullOrUndefined(targetCell)) {\r\n this.selectCells(isMultiple, targetCell);\r\n }\r\n }\r\n else if (key.columnIndex === key.maxIndex - 1) {\r\n if (!this.isInverseTableSelect() && key.rowIndex < key.element.rows.length - 1) {\r\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex + 1].cells[0], 'right');\r\n if (!isNullOrUndefined(targetCell)) {\r\n this.selectCells(isMultiple, targetCell);\r\n }\r\n }\r\n else if (!isMultiple) {\r\n var rowIndex = this.isInverseTableSelect() ? key.rowIndex : 0;\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\r\n var tableEle = this.parent.getContentTable();\r\n this.selectCells(false, tableEle.rows[rowIndex].cells[0]);\r\n }\r\n }\r\n }\r\n else if (target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var curColIndex = target.cellIndex;\r\n var allDayRow = this.parent.getAllDayRow();\r\n var maxColIndex = allDayRow.cells.length;\r\n if (curColIndex >= 0 && curColIndex < maxColIndex - 1) {\r\n this.selectCells(isMultiple, allDayRow.cells[curColIndex + 1]);\r\n }\r\n else if (curColIndex === maxColIndex - 1 && !isMultiple) {\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), e);\r\n var allDayRow_1 = this.parent.getAllDayRow();\r\n this.selectCells(false, allDayRow_1.cells[0]);\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.processLeft = function (e, isMultiple) {\r\n if (this.isCancelLeftRightAction(e, isMultiple)) {\r\n return;\r\n }\r\n var target = (e.target);\r\n var selectedCells = this.parent.getSelectedElements();\r\n var targetCell;\r\n if (selectedCells.length > 0 && !target.classList.contains(cls.WORK_CELLS_CLASS) &&\r\n !target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n target = selectedCells[selectedCells.length - 1];\r\n }\r\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\r\n if (selectedElements.length > 0) {\r\n target = this.getWorkCellFromAppointmentElement(selectedElements[selectedElements.length - 1]);\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n if (!target) {\r\n return;\r\n }\r\n }\r\n if ((e.target).classList.contains(cls.WORK_CELLS_CLASS) &&\r\n target.classList.contains(cls.WORK_CELLS_CLASS)) {\r\n var key = this.processLeftRight(target);\r\n if (key.columnIndex > 0 && key.columnIndex < key.maxIndex) {\r\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex].cells[target.cellIndex - 1], 'left');\r\n if (!isNullOrUndefined(targetCell)) {\r\n this.selectCells(isMultiple, targetCell);\r\n }\r\n }\r\n else if (key.columnIndex === 0) {\r\n if (!this.isInverseTableSelect() && key.rowIndex > 0) {\r\n targetCell = this.calculateNextPrevDate(target, key.element.rows[key.rowIndex - 1].cells[key.maxIndex - 1], 'left');\r\n if (!isNullOrUndefined(targetCell)) {\r\n this.selectCells(isMultiple, targetCell);\r\n }\r\n }\r\n else if (!isMultiple) {\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\r\n var tableEle = this.parent.getContentTable();\r\n var rowIndex = this.isInverseTableSelect() ? key.rowIndex : tableEle.rows.length - 1;\r\n this.selectCells(false, tableEle.rows[rowIndex].cells[key.maxIndex - 1]);\r\n }\r\n }\r\n }\r\n else if (target.classList.contains(cls.ALLDAY_CELLS_CLASS)) {\r\n var curColIndex = target.cellIndex;\r\n var allDayRow = this.parent.getAllDayRow();\r\n var maxColIndex = allDayRow.cells.length;\r\n if (curColIndex > 0 && curColIndex < maxColIndex) {\r\n this.selectCells(isMultiple, allDayRow.cells[curColIndex - 1]);\r\n }\r\n else if (curColIndex === 0 && !isMultiple) {\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), e);\r\n var allDayRow_2 = this.parent.getAllDayRow();\r\n this.selectCells(false, allDayRow_2.cells[maxColIndex - 1]);\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.calculateNextPrevDate = function (currentCell, target, type) {\r\n var initialId = this.initialTarget.getAttribute('data-group-index');\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.currentView === 'Month') {\r\n if (currentCell && target && target.getAttribute('data-group-index') !== initialId) {\r\n var currentDate = this.parent.getDateFromElement(currentCell);\r\n var nextPrevDate = (type === 'right') ? new Date(currentDate.setDate(currentDate.getDate() + 1))\r\n : new Date(currentDate.setDate(currentDate.getDate() - 1));\r\n target = [].slice.call(this.parent.element.querySelectorAll('td[data-date=\"'\r\n + nextPrevDate.getTime().toString() + '\"]' + '[data-group-index=\"' + initialId + '\"]'))[0];\r\n }\r\n }\r\n return target;\r\n };\r\n KeyboardInteraction.prototype.getFocusableElements = function (container) {\r\n var queryString = 'a[href]:not([tabindex=\"-1\"]),input:not([disabled]):not([tabindex=\"-1\"]),' +\r\n 'textarea:not([disabled]):not([tabindex=\"-1\"]),button:not([disabled]):not([tabindex=\"-1\"]),' +\r\n 'select:not([disabled]):not([tabindex=\"-1\"]),[tabindex]:not([tabindex=\"-1\"]),[contentEditable=true]:not([tabindex=\"-1\"])';\r\n return [].slice.call(container.querySelectorAll(queryString));\r\n };\r\n KeyboardInteraction.prototype.processTabOnPopup = function (e, popupElement) {\r\n var _this = this;\r\n var focusableElements = this.getFocusableElements(popupElement);\r\n focusableElements = focusableElements.filter(function (element) {\r\n var footerEle = _this.parent.element.querySelector('.' + cls.POPUP_FOOTER_CLASS);\r\n if (footerEle && footerEle.offsetParent) {\r\n return !(element.classList.contains(cls.EDIT_CLASS) || element.classList.contains(cls.DELETE_CLASS));\r\n }\r\n else {\r\n return !(element.classList.contains(cls.EDIT_EVENT_CLASS) || element.classList.contains(cls.DELETE_EVENT_CLASS));\r\n }\r\n });\r\n var firstEle = focusableElements[0];\r\n var lastEle = focusableElements[focusableElements.length - 1];\r\n if (!isNullOrUndefined(lastEle) && document.activeElement === lastEle && !e.shiftKey) {\r\n e.preventDefault();\r\n firstEle.focus();\r\n }\r\n if (!isNullOrUndefined(firstEle) && document.activeElement === firstEle && e.shiftKey) {\r\n e.preventDefault();\r\n lastEle.focus();\r\n }\r\n };\r\n KeyboardInteraction.prototype.processTab = function (e, isReverse) {\r\n var target = e.target;\r\n var popupWrapper = closest(target, '.' + cls.POPUP_WRAPPER_CLASS + ',.' + cls.MORE_POPUP_WRAPPER_CLASS);\r\n if (popupWrapper && popupWrapper.classList.contains(cls.POPUP_OPEN)) {\r\n if (popupWrapper.classList.contains(cls.MORE_POPUP_WRAPPER_CLASS)) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n }\r\n this.processTabOnPopup(e, popupWrapper);\r\n return;\r\n }\r\n if (target.classList.contains(cls.ROOT)) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n return;\r\n }\r\n if (target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeView.isTimelineView()\r\n && this.parent.activeViewOptions.group.resources.length > 0) {\r\n var index = parseInt(target.getAttribute('data-group-index'), 10);\r\n var appSelector = \".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + (isReverse ? index - 1 : index) + \"\\\"]\";\r\n var appElements = [].slice.call(this.parent.element.querySelectorAll(appSelector));\r\n if (appElements.length > 0) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n var focusAppointment = isReverse ? appElements.slice(-1)[0] : appElements[0];\r\n this.parent.eventBase.addSelectedAppointments([focusAppointment]);\r\n focusAppointment.focus();\r\n e.preventDefault();\r\n }\r\n else if (index + 1 === this.parent.resourceBase.lastResourceLevel.length) {\r\n this.parent.element.focus();\r\n e.preventDefault();\r\n }\r\n else if (this.parent.virtualScrollModule) {\r\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\r\n var averageRowHeight = Math.round(virtual.offsetHeight / this.parent.resourceBase.expandedResources.length);\r\n this.parent.element.querySelector('.e-content-wrap').scrollTop = ((isReverse ? index - 1 : index + 1) * averageRowHeight);\r\n this.parent.virtualScrollModule.virtualScrolling();\r\n }\r\n else {\r\n this.setScrollPosition(index);\r\n }\r\n return;\r\n }\r\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n var appElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n if (this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.group.resources.length > 0) {\r\n var index = parseInt(target.getAttribute('data-group-index'), 10);\r\n appElements = [].slice.call(this.parent.element.querySelectorAll(\".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\"));\r\n var resCellSelector = \".\" + cls.RESOURCE_CELLS_CLASS + \"[data-group-index=\\\"\" + (isReverse ? index : index + 1) + \"\\\"]\";\r\n var resourceCell = this.parent.element.querySelector(resCellSelector);\r\n if (resourceCell && (isReverse && target.getAttribute('data-guid') === appElements[0].getAttribute('data-guid') ||\r\n !isReverse && target.getAttribute('data-guid') === appElements.slice(-1)[0].getAttribute('data-guid'))) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n if (this.parent.virtualScrollModule) {\r\n resourceCell.focus({ preventScroll: true });\r\n }\r\n else {\r\n resourceCell.focus();\r\n }\r\n if (this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n isNullOrUndefined(this.parent.virtualScrollModule)) {\r\n this.setScrollPosition(index);\r\n }\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n var selectedAppointments = this.parent.eventBase.getSelectedAppointments();\r\n if (selectedAppointments.length > 0) {\r\n target = selectedAppointments[selectedAppointments.length - 1];\r\n }\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n if (!isReverse && target.getAttribute('data-guid') === appElements[appElements.length - 1].getAttribute('data-guid') ||\r\n isReverse && target.getAttribute('data-guid') === appElements[0].getAttribute('data-guid')) {\r\n return;\r\n }\r\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n this.selectAppointment(isReverse, target);\r\n e.preventDefault();\r\n }\r\n return;\r\n }\r\n var selectedCells = this.parent.getSelectedElements();\r\n if (selectedCells.length > 0 && !target.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n target = selectedCells[selectedCells.length - 1];\r\n this.selectAppointmentElementFromWorkCell(isReverse, target);\r\n e.preventDefault();\r\n return;\r\n }\r\n if (target && !target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeView.isTimelineView()\r\n && this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.processTabOnResourceCells(target, isReverse);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n KeyboardInteraction.prototype.processDelete = function (e) {\r\n var activeEle = document.activeElement;\r\n if (this.parent.currentView === 'MonthAgenda') {\r\n var selectedEle = this.parent.eventBase.getSelectedEvents().element;\r\n activeEle = ((selectedEle && isNullOrUndefined(selectedEle.length)) ? selectedEle : selectedEle[0]);\r\n }\r\n if (activeEle && activeEle.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n addClass([activeEle], cls.APPOINTMENT_BORDER);\r\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\r\n if (this.parent.activeViewOptions.readonly || activeEle.classList.contains(cls.READ_ONLY) ||\r\n !this.parent.eventSettings.allowDeleting) {\r\n return;\r\n }\r\n this.parent.quickPopup.deleteClick(e);\r\n }\r\n };\r\n KeyboardInteraction.prototype.processCtrlShiftNavigationArrows = function (e) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && document.activeElement.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n var groupIndex = parseInt(document.activeElement.getAttribute('data-group-index'), 10);\r\n var index = (e.action === 'ctrlShiftLeftArrow' || e.action === 'ctrlShiftUpArrow') ? groupIndex - 1 : groupIndex + 1;\r\n index = index < 0 ? 0 : index > this.parent.resourceBase.lastResourceLevel.length ?\r\n this.parent.resourceBase.lastResourceLevel.length : index;\r\n var eventEle = [];\r\n while (eventEle.length === 0 && index >= 0 && index <= this.parent.resourceBase.lastResourceLevel.length) {\r\n eventEle = [].slice.call(this.parent.element.querySelectorAll(\".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\"));\r\n index = (e.action === 'ctrlShiftLeftArrow' || e.action === 'ctrlShiftUpArrow') ? index - 1 : index + 1;\r\n }\r\n var nextAppEle = eventEle[0];\r\n if (nextAppEle) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n this.parent.eventBase.addSelectedAppointments([nextAppEle]);\r\n nextAppEle.focus();\r\n }\r\n }\r\n else if (this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !document.activeElement.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n var index = this.parent.resourceBase.renderedResources[0].groupIndex;\r\n var appSelector = \".\" + cls.APPOINTMENT_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\";\r\n var appElements = [].slice.call(this.parent.element.querySelectorAll(appSelector));\r\n if (appElements.length > 0) {\r\n this.parent.eventBase.removeSelectedAppointmentClass();\r\n var focusAppointment = appElements[0];\r\n this.parent.eventBase.addSelectedAppointments([focusAppointment]);\r\n focusAppointment.focus();\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.processEscape = function (event) {\r\n this.parent.quickPopup.onClosePopup(event);\r\n this.parent.quickPopup.morePopup.hide();\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.hideHeaderPopup();\r\n }\r\n if (this.parent.inlineModule) {\r\n this.parent.inlineModule.removeInlineAppointmentElement();\r\n }\r\n };\r\n KeyboardInteraction.prototype.isPreventAction = function (e) {\r\n var target = closest(e.target, '.' + cls.RESOURCE_GROUP_CELLS_CLASS);\r\n if (this.parent.activeView.isTimelineView() && !isNullOrUndefined(target)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n KeyboardInteraction.prototype.processTabOnResourceCells = function (target, isReverse) {\r\n var tabElements = [].slice.call(this.parent.element.querySelectorAll('[tabIndex=\"0\"]'));\r\n var currentTabIndex = tabElements.indexOf(target);\r\n var nextTabElement = !isReverse ? tabElements[currentTabIndex + 1] : tabElements[currentTabIndex - 1];\r\n if (nextTabElement && nextTabElement.classList.contains(cls.RESOURCE_CELLS_CLASS)) {\r\n var groupIndex = parseInt(nextTabElement.getAttribute('data-group-index'), 10);\r\n if (this.parent.virtualScrollModule) {\r\n var resColWrap_1 = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n var resCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_CELLS_CLASS));\r\n resCells.forEach(function (element) {\r\n if (element.getBoundingClientRect().top < resColWrap_1.getBoundingClientRect().top) {\r\n element.setAttribute('tabindex', '-1');\r\n }\r\n });\r\n }\r\n else {\r\n this.setScrollPosition(groupIndex);\r\n }\r\n }\r\n };\r\n KeyboardInteraction.prototype.setScrollPosition = function (index) {\r\n var workCell = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\r\n if (workCell) {\r\n this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).scrollTop = workCell.offsetTop;\r\n }\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} Returns the module name.\r\n */\r\n KeyboardInteraction.prototype.getModuleName = function () {\r\n return 'keyboard';\r\n };\r\n /**\r\n * To destroy the keyboard module.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n KeyboardInteraction.prototype.destroy = function () {\r\n this.removeEventListener();\r\n this.keyboardModule.destroy();\r\n };\r\n return KeyboardInteraction;\r\n}());\r\nexport { KeyboardInteraction };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { addClass, Browser, EventHandler, remove, closest, extend, formatUnit, setStyleAttribute, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { ActionBase } from '../actions/action-base';\r\nimport { MonthEvent } from '../event-renderer/month';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Schedule events resize actions\r\n */\r\nvar Resize = /** @class */ (function (_super) {\r\n __extends(Resize, _super);\r\n function Resize() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n Resize.prototype.wireResizeEvent = function (element) {\r\n var resizeElement = [].slice.call(element.querySelectorAll('.' + cls.EVENT_RESIZE_CLASS));\r\n for (var _i = 0, resizeElement_1 = resizeElement; _i < resizeElement_1.length; _i++) {\r\n var element_1 = resizeElement_1[_i];\r\n EventHandler.add(element_1, Browser.touchStartEvent, this.resizeStart, this);\r\n }\r\n };\r\n Resize.prototype.resizeHelper = function () {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.activeViewOptions.group.allowGroupEdit) {\r\n for (var i = 0, len = this.actionObj.originalElement.length; i < len; i++) {\r\n var cloneElement = this.createCloneElement(this.actionObj.originalElement[i]);\r\n this.actionObj.cloneElement[i] = cloneElement;\r\n if (this.actionObj.element === this.actionObj.originalElement[i]) {\r\n this.actionObj.clone = cloneElement;\r\n }\r\n }\r\n }\r\n else {\r\n if (this.actionObj.element) {\r\n this.actionObj.clone = this.createCloneElement(this.actionObj.element);\r\n }\r\n this.actionObj.cloneElement = [this.actionObj.clone];\r\n this.actionObj.originalElement = [this.actionObj.element];\r\n }\r\n };\r\n Resize.prototype.resizeStart = function (e) {\r\n var _this = this;\r\n this.actionObj.action = 'resize';\r\n this.actionObj.slotInterval = this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\r\n this.actionObj.interval = this.actionObj.slotInterval;\r\n var resizeTarget = closest(e.target, '.' + cls.EVENT_RESIZE_CLASS);\r\n this.actionObj.element = closest(resizeTarget, '.' + cls.APPOINTMENT_CLASS);\r\n this.actionObj.event = this.parent.eventBase.getEventByGuid(this.actionObj.element.getAttribute('data-guid'));\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var resizeArgs = {\r\n cancel: false,\r\n data: eventObj,\r\n element: this.actionObj.element,\r\n event: e,\r\n interval: this.actionObj.interval,\r\n scroll: { enable: true, scrollBy: 30, timeDelay: 100 }\r\n };\r\n this.parent.trigger(event.resizeStart, resizeArgs, function (resizeEventArgs) {\r\n if (resizeEventArgs.cancel) {\r\n return;\r\n }\r\n _this.actionClass('addClass');\r\n _this.parent.uiStateValues.action = true;\r\n _this.resizeEdges = {\r\n left: resizeTarget.classList.contains(cls.LEFT_RESIZE_HANDLER),\r\n right: resizeTarget.classList.contains(cls.RIGHT_RESIZE_HANDLER),\r\n top: resizeTarget.classList.contains(cls.TOP_RESIZE_HANDLER),\r\n bottom: resizeTarget.classList.contains(cls.BOTTOM_RESIZE_HANDLER)\r\n };\r\n _this.actionObj.groupIndex = _this.parent.uiStateValues.isGroupAdaptive ? _this.parent.uiStateValues.groupIndex : 0;\r\n var workCell = _this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n _this.actionObj.cellWidth = workCell.offsetWidth;\r\n _this.actionObj.cellHeight = workCell.offsetHeight;\r\n var hRows = _this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });\r\n if (_this.parent.activeView.isTimelineView() && hRows.length > 0 && ['Date', 'Hour'].indexOf(hRows.slice(-1)[0]) < 0) {\r\n var tr = _this.parent.getContentTable().querySelector('tr');\r\n var noOfDays = 0;\r\n var tdCollections = [].slice.call(tr.children);\r\n for (var _i = 0, tdCollections_1 = tdCollections; _i < tdCollections_1.length; _i++) {\r\n var td = tdCollections_1[_i];\r\n noOfDays += parseInt(td.getAttribute('colspan'), 10);\r\n }\r\n _this.actionObj.cellWidth = tr.offsetWidth / noOfDays;\r\n _this.actionObj.cellHeight = tr.offsetHeight;\r\n }\r\n var pages = _this.getPageCoordinates(e);\r\n _this.actionObj.X = pages.pageX;\r\n _this.actionObj.Y = pages.pageY;\r\n _this.actionObj.groupIndex = parseInt(_this.actionObj.element.getAttribute('data-group-index') || '0', 10);\r\n _this.actionObj.interval = resizeEventArgs.interval;\r\n _this.actionObj.scroll = resizeEventArgs.scroll;\r\n _this.actionObj.start = new Date(eventObj[_this.parent.eventFields.startTime].getTime());\r\n _this.actionObj.end = new Date(eventObj[_this.parent.eventFields.endTime].getTime());\r\n _this.actionObj.originalElement = _this.getOriginalElement(_this.actionObj.element);\r\n if (_this.parent.currentView === 'Month') {\r\n _this.daysVariation = -1;\r\n _this.monthEvent = new MonthEvent(_this.parent);\r\n }\r\n var viewElement = _this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n _this.scrollArgs = { element: viewElement, width: viewElement.scrollWidth, height: viewElement.scrollHeight };\r\n EventHandler.add(document, Browser.touchMoveEvent, _this.resizing, _this);\r\n EventHandler.add(document, Browser.touchEndEvent, _this.resizeStop, _this);\r\n });\r\n };\r\n Resize.prototype.resizing = function (e) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n if (this.parent.element.querySelectorAll('.' + cls.RESIZE_CLONE_CLASS).length === 0) {\r\n this.resizeHelper();\r\n }\r\n if ((!isNullOrUndefined(e.target)) && e.target.classList.contains(cls.DISABLE_DATES)) {\r\n return;\r\n }\r\n var pages = this.getPageCoordinates(e);\r\n this.actionObj.pageX = pages.pageX;\r\n this.actionObj.pageY = pages.pageY;\r\n this.updateScrollPosition(e);\r\n this.updateResizingDirection(e);\r\n var eventObj = extend({}, this.actionObj.event, null, true);\r\n var resizeArgs = {\r\n cancel: false,\r\n data: eventObj,\r\n element: this.actionObj.element,\r\n event: e,\r\n startTime: this.actionObj.start,\r\n endTime: this.actionObj.end\r\n };\r\n if (this.parent.group.resources.length > 0) {\r\n resizeArgs.groupIndex = this.actionObj.groupIndex;\r\n }\r\n this.parent.trigger(event.resizing, resizeArgs);\r\n };\r\n Resize.prototype.updateResizingDirection = function (e) {\r\n if (this.parent.currentView === 'Month' || this.parent.currentView === 'TimelineYear') {\r\n this.monthResizing();\r\n return;\r\n }\r\n var resizeValidation = this.resizeValidation(e);\r\n if (this.resizeEdges.left) {\r\n if (resizeValidation) {\r\n var leftStyles = this.getLeftRightStyles(e, true);\r\n if (parseInt(leftStyles.width, 10) < 1) {\r\n return;\r\n }\r\n for (var _i = 0, _a = this.actionObj.cloneElement; _i < _a.length; _i++) {\r\n var cloneElement = _a[_i];\r\n setStyleAttribute(cloneElement, leftStyles);\r\n addClass([cloneElement], cls.LEFT_RESIZE_HANDLER);\r\n }\r\n }\r\n this.horizontalResizing(!this.parent.enableRtl);\r\n }\r\n if (this.resizeEdges.right) {\r\n if (resizeValidation) {\r\n var rightStyles = this.getLeftRightStyles(e, false);\r\n if (parseInt(rightStyles.width, 10) < 1) {\r\n return;\r\n }\r\n for (var _b = 0, _c = this.actionObj.cloneElement; _b < _c.length; _b++) {\r\n var cloneElement = _c[_b];\r\n setStyleAttribute(cloneElement, rightStyles);\r\n addClass([cloneElement], cls.RIGHT_RESIZE_HANDLER);\r\n }\r\n }\r\n this.horizontalResizing(this.parent.enableRtl);\r\n }\r\n if (this.resizeEdges.top) {\r\n if (resizeValidation) {\r\n var topStyles = this.getTopBottomStyles(e, true);\r\n if (parseInt(topStyles.height, 10) < 1) {\r\n return;\r\n }\r\n for (var _d = 0, _e = this.actionObj.cloneElement; _d < _e.length; _d++) {\r\n var cloneElement = _e[_d];\r\n setStyleAttribute(cloneElement, topStyles);\r\n addClass([cloneElement], cls.TOP_RESIZE_HANDLER);\r\n }\r\n }\r\n this.verticalResizing(true);\r\n }\r\n if (this.resizeEdges.bottom) {\r\n if (resizeValidation) {\r\n var bottomStyles = this.getTopBottomStyles(e, false);\r\n if (parseInt(bottomStyles.height, 10) < 1) {\r\n return;\r\n }\r\n for (var _f = 0, _g = this.actionObj.cloneElement; _f < _g.length; _f++) {\r\n var cloneElement = _g[_f];\r\n setStyleAttribute(cloneElement, bottomStyles);\r\n addClass([cloneElement], cls.BOTTOM_RESIZE_HANDLER);\r\n }\r\n }\r\n this.verticalResizing(false);\r\n }\r\n };\r\n Resize.prototype.monthResizing = function () {\r\n this.removeCloneElement();\r\n if (isNullOrUndefined(this.actionObj.pageX) || isNullOrUndefined(this.actionObj.pageY)) {\r\n return;\r\n }\r\n var td = document.elementFromPoint(this.actionObj.pageX, this.actionObj.pageY);\r\n if (isNullOrUndefined(td)) {\r\n return;\r\n }\r\n var resizeTime = this.parent.getDateFromElement(td);\r\n var isSameCell = this.parent.activeViewOptions.group.resources.length > 0 ?\r\n parseInt(td.getAttribute('data-group-index'), 10) === this.actionObj.groupIndex : true;\r\n var startTime = new Date(this.actionObj.event[this.parent.eventFields.startTime].getTime());\r\n var endTime = new Date(this.actionObj.event[this.parent.eventFields.endTime].getTime());\r\n if ((!this.parent.enableRtl && this.resizeEdges.left) || (this.parent.enableRtl && this.resizeEdges.right)\r\n || this.resizeEdges.top) {\r\n startTime = resizeTime;\r\n }\r\n else if ((!this.parent.enableRtl && this.resizeEdges.right) || (this.parent.enableRtl && this.resizeEdges.left)\r\n || this.resizeEdges.bottom) {\r\n endTime = util.addDays(resizeTime, 1);\r\n }\r\n if (isSameCell && startTime < endTime) {\r\n this.actionObj.start = startTime;\r\n this.actionObj.end = endTime;\r\n var event_1 = this.getUpdatedEvent(this.actionObj.start, this.actionObj.end, this.actionObj.event);\r\n if (this.parent.currentView === 'TimelineYear') {\r\n this.yearEventsRendering(event_1);\r\n }\r\n else {\r\n this.dynamicEventsRendering(event_1);\r\n }\r\n this.updateOriginalElement(this.actionObj.clone);\r\n }\r\n };\r\n Resize.prototype.yearEventsRendering = function (event) {\r\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CLONE_ELEMENT_CLASS));\r\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\r\n var wrapper = eventWrappers_1[_i];\r\n remove(wrapper);\r\n }\r\n var endDate = new Date(event[this.parent.eventFields.endTime]);\r\n var monthDiff = 0;\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n monthDiff = this.getMonthDiff(event[this.parent.eventFields.startTime], util.addDays(endDate, -1));\r\n }\r\n for (var i = 0; i <= monthDiff; i++) {\r\n var eventObj = void 0;\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n eventObj = this.getEventCount(event, this.actionObj.start.getMonth() + i);\r\n }\r\n else {\r\n eventObj = extend({}, event, null, true);\r\n endDate = this.resizeEdges.left || this.resizeEdges.right ? util.addDays(endDate, -1) : endDate;\r\n eventObj.count = this.getMonthDiff(event[this.parent.eventFields.startTime], endDate) + 1;\r\n }\r\n this.dynamicYearlyEventsRendering(eventObj, true);\r\n }\r\n };\r\n Resize.prototype.getMonthDiff = function (startDate, endDate) {\r\n var months;\r\n months = (endDate.getFullYear() - startDate.getFullYear()) * 12;\r\n months -= startDate.getMonth();\r\n months += endDate.getMonth();\r\n return months <= 0 ? 0 : months;\r\n };\r\n Resize.prototype.getEventCount = function (eventObj, month) {\r\n var eventData = extend({}, eventObj, null, true);\r\n var eventStart = eventData[this.parent.eventFields.startTime];\r\n var eventEnd = eventData[this.parent.eventFields.endTime];\r\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), month, 1);\r\n var monthEnd = util.addDays(new Date(this.parent.selectedDate.getFullYear(), month + 1, 0), 1);\r\n var count = 1;\r\n if (eventStart.getTime() < monthStart.getTime()) {\r\n eventData[this.parent.eventFields.startTime] = monthStart;\r\n }\r\n if (eventEnd.getTime() > monthEnd.getTime()) {\r\n eventData[this.parent.eventFields.endTime] = monthEnd;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n count = Math.ceil((eventData[this.parent.eventFields.endTime].getTime() -\r\n eventData[this.parent.eventFields.startTime].getTime()) / util.MS_PER_DAY);\r\n }\r\n eventData.count = count;\r\n return eventData;\r\n };\r\n Resize.prototype.resizeStop = function (e) {\r\n var _this = this;\r\n EventHandler.remove(document, Browser.touchMoveEvent, this.resizing);\r\n EventHandler.remove(document, Browser.touchEndEvent, this.resizeStop);\r\n clearInterval(this.actionObj.scrollInterval);\r\n this.actionObj.scrollInterval = null;\r\n this.removeCloneElementClasses();\r\n this.removeCloneElement();\r\n this.actionClass('removeClass');\r\n this.parent.uiStateValues.action = false;\r\n var resizeArgs = { cancel: false, data: this.getChangedData(), element: this.actionObj.element, event: e };\r\n this.parent.trigger(event.resizeStop, resizeArgs, function (resizeEventArgs) {\r\n if (resizeEventArgs.cancel) {\r\n return;\r\n }\r\n if (_this.parent.activeViewOptions.group.resources.length > 0 && !_this.parent.rowAutoHeight\r\n && !_this.parent.activeViewOptions.group.allowGroupEdit && !_this.parent.virtualScrollModule\r\n && _this.parent.activeViewOptions.group.byGroupID) {\r\n _this.parent.crudModule.crudObj.sourceEvent =\r\n [_this.parent.resourceBase.lastResourceLevel[parseInt(resizeEventArgs.element.getAttribute('data-group-index'), 10)]];\r\n _this.parent.crudModule.crudObj.targetEvent = _this.parent.crudModule.crudObj.sourceEvent;\r\n _this.parent.crudModule.crudObj.isCrudAction = true;\r\n }\r\n _this.saveChangedData(resizeEventArgs);\r\n });\r\n };\r\n Resize.prototype.verticalResizing = function (isTop) {\r\n var offsetValue = this.actionObj.clone.offsetTop;\r\n if (!isTop) {\r\n offsetValue += this.actionObj.clone.offsetHeight;\r\n }\r\n var minutes = (offsetValue / this.actionObj.cellHeight) * this.actionObj.slotInterval;\r\n var element = this.actionObj.clone.offsetParent;\r\n if (isNullOrUndefined(element)) {\r\n return;\r\n }\r\n var resizeTime = util.resetTime(this.parent.getDateFromElement(element));\r\n resizeTime.setHours(this.parent.activeView.getStartHour().getHours());\r\n resizeTime.setMinutes(minutes + this.parent.activeView.getStartHour().getMinutes());\r\n if (isTop) {\r\n this.actionObj.start = this.calculateIntervalTime(resizeTime);\r\n }\r\n else {\r\n this.actionObj.end = this.calculateIntervalTime(resizeTime);\r\n }\r\n this.updateTimePosition(resizeTime);\r\n };\r\n Resize.prototype.horizontalResizing = function (isLeft) {\r\n var eventStart = new Date(this.actionObj.event[this.parent.eventFields.startTime].getTime());\r\n var eventEnd = new Date(this.actionObj.event[this.parent.eventFields.endTime].getTime());\r\n var resizeTime;\r\n var isDateHeader = false;\r\n var isTimeViews = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek'].indexOf(this.parent.currentView) > -1;\r\n var isTimelineMonth = this.parent.currentView === 'TimelineMonth';\r\n var isWithoutScale = isTimelineMonth || isTimeViews && !this.parent.activeViewOptions.timeScale.enable;\r\n if (this.parent.activeView.isTimelineView()) {\r\n var tr = this.parent.getContentTable().querySelector('tr');\r\n var headerName = this.parent.currentView;\r\n if (this.parent.activeViewOptions.headerRows.length > 0) {\r\n var rows = this.parent.activeViewOptions.headerRows.map(function (row) { return row.option; });\r\n headerName = rows.slice(-1)[0];\r\n if (isTimelineMonth && headerName === 'Hour') {\r\n headerName = rows.slice(-2)[0] || 'Month';\r\n }\r\n }\r\n resizeTime = isLeft ? eventStart : eventEnd;\r\n var cellIndex = 0;\r\n var tdCollections = [].slice.call(tr.children);\r\n var isLastCell = false;\r\n if (['Year', 'Month', 'Week', 'Date'].indexOf(headerName) !== -1) {\r\n var noOfDays = 0;\r\n for (var _i = 0, tdCollections_2 = tdCollections; _i < tdCollections_2.length; _i++) {\r\n var td = tdCollections_2[_i];\r\n noOfDays += parseInt(td.getAttribute('colspan'), 10);\r\n }\r\n var offsetValue = this.parent.enableRtl ? parseInt(this.actionObj.clone.style.right, 10) :\r\n parseInt(this.actionObj.clone.style.left, 10);\r\n if (!isLeft) {\r\n offsetValue += (this.actionObj.clone.offsetWidth - this.actionObj.cellWidth);\r\n }\r\n cellIndex = Math.floor(offsetValue / Math.floor(tr.offsetWidth / noOfDays));\r\n isDateHeader = isTimeViews && headerName === 'Date';\r\n cellIndex = isLeft ? cellIndex : (isTimelineMonth || isDateHeader) ? cellIndex + 1 : cellIndex;\r\n isLastCell = cellIndex === tdCollections.length;\r\n cellIndex = (cellIndex < 0) ? 0 : (cellIndex >= noOfDays) ? noOfDays - 1 : cellIndex;\r\n }\r\n else {\r\n var cellWidth = this.actionObj.cellWidth;\r\n cellIndex = isLeft ? Math.floor(this.actionObj.clone.offsetLeft / this.actionObj.cellWidth) :\r\n Math.ceil((this.actionObj.clone.offsetLeft + (this.actionObj.clone.offsetWidth - cellWidth)) /\r\n this.actionObj.cellWidth);\r\n if (this.parent.enableRtl) {\r\n var cellOffsetWidth = 0;\r\n if (headerName === 'TimelineMonth' || (!this.parent.activeViewOptions.timeScale.enable &&\r\n !isTimelineMonth)) {\r\n cellOffsetWidth = this.actionObj.cellWidth;\r\n }\r\n var offsetWidth = (Math.floor(parseInt(this.actionObj.clone.style.right, 10) / this.actionObj.cellWidth) *\r\n this.actionObj.cellWidth) + (isLeft ? 0 : this.actionObj.clone.offsetWidth - cellOffsetWidth);\r\n cellIndex = Math.floor(offsetWidth / this.actionObj.cellWidth);\r\n }\r\n isLastCell = cellIndex === tdCollections.length;\r\n cellIndex = this.getIndex(cellIndex);\r\n }\r\n var resizeDate = void 0;\r\n if (['Year', 'Month', 'Week', 'Date'].indexOf(headerName) !== -1) {\r\n resizeDate = new Date(this.parent.activeView.renderDates[cellIndex].getTime());\r\n }\r\n else {\r\n resizeDate = this.parent.getDateFromElement(tr.children[cellIndex]);\r\n }\r\n if (['TimelineMonth', 'Year', 'Month', 'Week', 'Date'].indexOf(headerName) !== -1 ||\r\n !this.parent.activeViewOptions.timeScale.enable) {\r\n resizeTime = new Date(resizeDate.setHours(resizeTime.getHours(), resizeTime.getMinutes(), resizeTime.getSeconds()));\r\n }\r\n else {\r\n var offsetValue = this.parent.enableRtl ? parseFloat(this.actionObj.clone.style.right) :\r\n parseFloat(this.actionObj.clone.style.left);\r\n if (!isLeft) {\r\n offsetValue += this.actionObj.clone.offsetWidth;\r\n }\r\n var spanMinutes = Math.ceil((this.actionObj.slotInterval / this.actionObj.cellWidth) *\r\n (offsetValue - Math.floor(offsetValue / this.actionObj.cellWidth) * this.actionObj.cellWidth));\r\n spanMinutes = (isLastCell || (!isLeft && spanMinutes === 0)) ? this.actionObj.slotInterval : spanMinutes;\r\n resizeTime = new Date(resizeDate.getTime());\r\n resizeTime.setMinutes(resizeTime.getMinutes() + spanMinutes);\r\n this.updateTimePosition(resizeTime);\r\n }\r\n }\r\n else {\r\n var cloneIndex = closest(this.actionObj.clone, 'td').cellIndex;\r\n var originalWidth = Math.ceil((isLeft ? this.actionObj.element.offsetWidth : 0) / this.actionObj.cellWidth) *\r\n this.actionObj.cellWidth;\r\n var noOfDays = Math.ceil((this.actionObj.clone.offsetWidth - originalWidth) / this.actionObj.cellWidth);\r\n var tr = closest(this.actionObj.clone, 'tr');\r\n var dayIndex = isLeft ? cloneIndex - noOfDays : cloneIndex + noOfDays - 1;\r\n dayIndex = this.getIndex(dayIndex);\r\n resizeTime = this.parent.getDateFromElement(tr.children[dayIndex]);\r\n if (isLeft) {\r\n resizeTime.setHours(eventStart.getHours(), eventStart.getMinutes(), eventStart.getSeconds());\r\n }\r\n else {\r\n resizeTime.setHours(eventEnd.getHours(), eventEnd.getMinutes(), eventEnd.getSeconds());\r\n }\r\n }\r\n if (isLeft) {\r\n if ((eventEnd.getTime() - resizeTime.getTime()) <= 0) {\r\n resizeTime = isWithoutScale ? util.resetTime(eventEnd) : eventStart;\r\n }\r\n this.actionObj.start = this.parent.activeViewOptions.timeScale.enable ? this.calculateIntervalTime(resizeTime) : resizeTime;\r\n }\r\n else {\r\n var isTimeScaleViews = isTimeViews && this.parent.activeViewOptions.timeScale.enable;\r\n var resizeEnd = ((!isTimeScaleViews || isDateHeader) && resizeTime.getHours() === 0 && resizeTime.getMinutes() === 0) ?\r\n util.addDays(resizeTime, 1) : resizeTime;\r\n if (isWithoutScale && (resizeEnd.getTime() - eventStart.getTime()) <= 0) {\r\n resizeEnd = util.addDays(util.resetTime(eventStart), 1);\r\n }\r\n this.actionObj.end = this.parent.activeViewOptions.timeScale.enable && this.parent.currentView !== 'Month' ?\r\n this.calculateIntervalTime(resizeEnd) : resizeEnd;\r\n }\r\n };\r\n Resize.prototype.getTopBottomStyles = function (e, isTop) {\r\n var viewElement = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var slotInterval = (this.actionObj.cellHeight / this.actionObj.slotInterval) * this.actionObj.interval;\r\n var clnHeight = isTop ? this.actionObj.element.offsetHeight + (this.actionObj.Y - this.actionObj.pageY) :\r\n this.actionObj.element.offsetHeight + (this.actionObj.pageY - this.actionObj.Y);\r\n var clnTop = isTop ? this.actionObj.element.offsetTop -\r\n (this.actionObj.Y - this.actionObj.pageY) : this.actionObj.clone.offsetTop;\r\n clnHeight = (clnTop < 0) ? this.actionObj.clone.offsetHeight :\r\n (this.actionObj.clone.offsetTop + this.actionObj.clone.offsetHeight) > this.scrollArgs.height ?\r\n this.actionObj.clone.offsetHeight : clnHeight;\r\n clnTop = (clnTop < 0) ? 0 : clnTop;\r\n clnTop = isTop ? Math.floor(clnTop / slotInterval) * slotInterval : clnTop;\r\n clnHeight = clnTop + clnHeight >= viewElement.scrollHeight ? viewElement.scrollHeight - clnTop :\r\n Math.ceil(clnHeight / slotInterval) * slotInterval;\r\n var styles = {\r\n height: formatUnit(clnHeight < this.actionObj.cellHeight ? Math.floor(clnHeight / slotInterval) * slotInterval : clnHeight),\r\n top: formatUnit((clnHeight < this.actionObj.cellHeight && isTop) ? Math.ceil(clnTop / slotInterval) * slotInterval : clnTop),\r\n left: '0px', right: '0px', width: '100%'\r\n };\r\n return styles;\r\n };\r\n Resize.prototype.getLeftRightStyles = function (e, isLeft) {\r\n var styles = {};\r\n var isTimelineView = this.parent.activeView.isTimelineView();\r\n var isTimeViews = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek'].indexOf(this.parent.currentView) > -1 &&\r\n this.parent.activeViewOptions.timeScale.enable;\r\n var slotInterval = (this.actionObj.cellWidth / this.actionObj.slotInterval) * this.actionObj.interval;\r\n var pageWidth = isLeft ? (this.actionObj.X - this.actionObj.pageX) : (this.actionObj.pageX - this.actionObj.X);\r\n var targetWidth = isTimelineView ?\r\n (this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth :\r\n this.parent.currentView === 'Month' ? this.actionObj.element.offsetWidth :\r\n Math.ceil(this.actionObj.element.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;\r\n var offsetWidth = targetWidth + (Math.ceil(pageWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth);\r\n if (isTimeViews) {\r\n offsetWidth = targetWidth + (isLeft ? (Math.ceil(pageWidth / slotInterval) * slotInterval) :\r\n (Math.floor(pageWidth / slotInterval) * slotInterval));\r\n this.actionObj.event[this.parent.eventFields.isAllDay] = false;\r\n }\r\n var width = !isLeft && ((offsetWidth + this.actionObj.clone.offsetLeft > this.scrollArgs.width)) ?\r\n this.actionObj.clone.offsetWidth : (offsetWidth < this.actionObj.cellWidth) ? offsetWidth : offsetWidth;\r\n if (this.parent.enableRtl) {\r\n var rightValue = isTimelineView ? parseInt(this.actionObj.element.style.right, 10) :\r\n -(offsetWidth - this.actionObj.cellWidth);\r\n rightValue = isTimelineView ? rightValue : isLeft ? 0 : rightValue > 0 ? 0 : rightValue;\r\n if (isTimelineView && !isLeft) {\r\n rightValue = Math.ceil((this.actionObj.element.offsetLeft + (this.actionObj.element.offsetWidth +\r\n (this.actionObj.pageX - this.actionObj.X))) / slotInterval) * slotInterval;\r\n rightValue = rightValue < 0 ? Math.abs(rightValue) : -rightValue;\r\n }\r\n rightValue = rightValue >= this.scrollArgs.width ? this.scrollArgs.width - this.actionObj.cellWidth : rightValue;\r\n styles.right = formatUnit(rightValue);\r\n width = width + rightValue > this.scrollArgs.width ? this.actionObj.clone.offsetWidth : width;\r\n }\r\n else {\r\n var offsetLeft = isLeft ? this.actionObj.element.offsetLeft - (this.actionObj.X - this.actionObj.pageX) :\r\n this.parent.enableRtl ? this.actionObj.element.offsetLeft : 0;\r\n if (isTimelineView) {\r\n offsetLeft = isLeft ? offsetLeft : parseInt(this.actionObj.clone.style.left, 10);\r\n if (this.parent.enableRtl) {\r\n offsetLeft = !isLeft ? (this.actionObj.pageX < this.actionObj.X - this.actionObj.clone.offsetWidth) ?\r\n parseInt(this.actionObj.clone.style.right, 10) : offsetLeft : offsetLeft;\r\n }\r\n else {\r\n offsetLeft = isLeft ? (this.actionObj.pageX > this.actionObj.X + this.actionObj.clone.offsetWidth &&\r\n this.actionObj.clone.offsetWidth === this.actionObj.cellWidth) ?\r\n parseInt(this.actionObj.clone.style.left, 10) : offsetLeft : offsetLeft;\r\n }\r\n }\r\n var leftValue = offsetLeft;\r\n offsetLeft = isTimelineView ? isTimeViews ? isLeft ? Math.floor(offsetLeft / slotInterval) * slotInterval : offsetLeft :\r\n Math.floor(offsetLeft / this.actionObj.cellWidth) * this.actionObj.cellWidth :\r\n Math.ceil(Math.abs(offsetLeft) / this.actionObj.cellWidth) * this.actionObj.cellWidth;\r\n if (offsetLeft < 0) {\r\n offsetLeft = 0;\r\n width = this.actionObj.clone.offsetWidth;\r\n }\r\n var cloneWidth = Math.ceil(this.actionObj.clone.offsetWidth / this.actionObj.cellWidth) * this.actionObj.cellWidth;\r\n if (isLeft) {\r\n styles.left = formatUnit(isTimelineView ? offsetLeft : isLeft ? leftValue < 0 ? -offsetLeft :\r\n (Math.ceil((targetWidth - cloneWidth) / this.actionObj.cellWidth) * this.actionObj.cellWidth) : offsetLeft);\r\n }\r\n }\r\n styles.width = formatUnit(width);\r\n return styles;\r\n };\r\n Resize.prototype.resizeValidation = function (e) {\r\n var pages = this.getPageCoordinates(e);\r\n var viewDimension = this.getContentAreaDimension();\r\n var isTimeScale = this.parent.activeView.isTimelineView() && this.parent.activeViewOptions.timeScale.enable;\r\n var cellWidth = this.actionObj.cellWidth;\r\n var resizeValidation = false;\r\n if (this.resizeEdges.left) {\r\n if (pages.pageX < viewDimension.leftOffset && pages.pageX >= viewDimension.left && isTimeScale) {\r\n cellWidth = 0;\r\n }\r\n resizeValidation = (pages.pageX - cellWidth) >= viewDimension.left;\r\n }\r\n if (this.resizeEdges.right) {\r\n if (pages.pageX > viewDimension.rightOffset && pages.pageX <= viewDimension.right && isTimeScale) {\r\n cellWidth = 0;\r\n }\r\n resizeValidation = (pages.pageX + cellWidth) <= viewDimension.right;\r\n }\r\n if (this.resizeEdges.top) {\r\n resizeValidation = this.actionObj.clone.offsetTop >= viewDimension.top;\r\n }\r\n if (this.resizeEdges.bottom) {\r\n resizeValidation = (this.actionObj.clone.offsetTop + this.actionObj.clone.offsetHeight) <= this.scrollArgs.height;\r\n }\r\n return resizeValidation;\r\n };\r\n /**\r\n * Get module name\r\n *\r\n * @returns {string} Returns the module name..\r\n */\r\n Resize.prototype.getModuleName = function () {\r\n return 'resize';\r\n };\r\n return Resize;\r\n}(ActionBase));\r\nexport { Resize };\r\n","import { formatUnit } from '@syncfusion/ej2-base';\r\nimport { contentReady, uiUpdate, scrollUiUpdate } from '../base/constant';\r\n/**\r\n * `Scroll` module\r\n */\r\nvar Scroll = /** @class */ (function () {\r\n /**\r\n * Constructor for the scrolling.\r\n *\r\n * @param {Schedule} parent Accepts the Schedule instance\r\n */\r\n function Scroll(parent) {\r\n this.parent = parent;\r\n this.addEventListener();\r\n }\r\n /**\r\n * For internal use only - Get the module name.\r\n *\r\n * @returns {string} Returns the module name.\r\n * @private\r\n */\r\n Scroll.prototype.getModuleName = function () {\r\n return 'scroll';\r\n };\r\n /**\r\n * Internal method to set the element width\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.setWidth = function () {\r\n this.parent.element.style.width = formatUnit(this.parent.width);\r\n };\r\n /**\r\n * Internal method to set the element height\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.setHeight = function () {\r\n this.parent.element.style.height = formatUnit(this.parent.height);\r\n };\r\n /**\r\n * Internal method to bind events\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.addEventListener = function () {\r\n this.parent.on(contentReady, this.setDimensions, this);\r\n this.parent.on(uiUpdate, this.onPropertyChanged, this);\r\n };\r\n /**\r\n * Internal method to unbind events\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.removeEventListener = function () {\r\n this.parent.off(contentReady, this.setDimensions);\r\n this.parent.off(uiUpdate, this.onPropertyChanged);\r\n };\r\n /**\r\n * Internal method to set the dimensions\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.setDimensions = function () {\r\n this.setWidth();\r\n this.setHeight();\r\n var data = { cssProperties: this.parent.getCssProperties(), module: this.getModuleName() };\r\n this.parent.notify(scrollUiUpdate, data);\r\n };\r\n /**\r\n * Internal method to set the dimensions dynamically\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.onPropertyChanged = function () {\r\n this.setDimensions();\r\n };\r\n /**\r\n * Destroy the scroll module\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Scroll.prototype.destroy = function () {\r\n this.removeEventListener();\r\n };\r\n return Scroll;\r\n}());\r\nexport { Scroll };\r\n","import { addClass, removeClass, Touch, remove, EventHandler, Browser } from '@syncfusion/ej2-base';\r\nimport { closest, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * `touch` module is used to handle touch interactions.\r\n */\r\nvar ScheduleTouch = /** @class */ (function () {\r\n function ScheduleTouch(parent) {\r\n this.parent = parent;\r\n this.element = this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS);\r\n this.touchObj = new Touch(this.element, {\r\n scroll: this.scrollHandler.bind(this),\r\n swipe: this.swipeHandler.bind(this),\r\n tapHold: this.tapHoldHandler.bind(this),\r\n swipeSettings: { swipeThresholdDistance: 1 }\r\n });\r\n EventHandler.add(this.element, 'transitionend', this.onTransitionEnd, this);\r\n this.touchLeftDirection = this.parent.enableRtl ? 'Right' : 'Left';\r\n this.touchRightDirection = this.parent.enableRtl ? 'Left' : 'Right';\r\n }\r\n ScheduleTouch.prototype.scrollHandler = function (e) {\r\n if (this.parent.currentView === 'Agenda' || this.parent.uiStateValues.action ||\r\n (e.originalEvent && (e.originalEvent.target.classList.contains(cls.APPOINTMENT_CLASS) ||\r\n closest(e.originalEvent.target, '.' + cls.APPOINTMENT_CLASS)))) {\r\n return;\r\n }\r\n if (!this.timeStampStart) {\r\n this.timeStampStart = Date.now();\r\n }\r\n if (this.element.classList.contains(cls.TRANSLATE_CLASS)) {\r\n this.onTransitionEnd();\r\n }\r\n if (e.scrollDirection === 'Left' || e.scrollDirection === 'Right') {\r\n var args = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };\r\n this.parent.trigger(events.actionBegin, args);\r\n if (args.cancel) {\r\n return;\r\n }\r\n var scrollDiv = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (scrollDiv && scrollDiv.scrollWidth > scrollDiv.clientWidth) {\r\n return;\r\n }\r\n else {\r\n this.isScrollTriggered = true;\r\n e.originalEvent.preventDefault();\r\n e.originalEvent.stopPropagation();\r\n }\r\n }\r\n if (e.scrollDirection === this.touchLeftDirection) {\r\n if (!this.nextPanel) {\r\n this.renderPanel(cls.NEXT_PANEL_CLASS, 'next');\r\n this.nextPanel = {\r\n element: this.parent.activeView.getPanel(),\r\n selectedDate: new Date(this.parent.selectedDate.getTime())\r\n };\r\n this.setDimensions(this.nextPanel.element);\r\n }\r\n var x = this.parent.enableRtl ? e.distanceX : -e.distanceX;\r\n this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';\r\n }\r\n else if (e.scrollDirection === this.touchRightDirection) {\r\n var prevWidth = 0;\r\n if (!this.previousPanel) {\r\n this.renderPanel(cls.PREVIOUS_PANEL_CLASS, 'previous');\r\n this.previousPanel = {\r\n element: this.parent.activeView.getPanel(),\r\n selectedDate: new Date(this.parent.selectedDate.getTime())\r\n };\r\n this.setDimensions(this.previousPanel.element);\r\n prevWidth = this.previousPanel.element.offsetWidth;\r\n }\r\n var x = this.parent.enableRtl ? prevWidth - e.distanceX : -prevWidth + e.distanceX;\r\n this.element.style.transform = 'translatex(' + (this.getTranslateX(this.element) + x) + 'px)';\r\n }\r\n };\r\n ScheduleTouch.prototype.swipeHandler = function (e) {\r\n if (!this.isScrollTriggered || this.parent.uiStateValues.action) {\r\n return;\r\n }\r\n this.isScrollTriggered = false;\r\n var swipeDate = e.swipeDirection === 'Left' ?\r\n this.parent.activeView.renderDates[0] : this.parent.activeView.renderDates.slice(-1)[0];\r\n if ((e.swipeDirection === 'Left' && swipeDate < this.parent.maxDate) ||\r\n (e.swipeDirection === 'Right' && swipeDate >= this.parent.minDate)) {\r\n var time = Date.now() - this.timeStampStart;\r\n var offsetDist = (e.distanceX * (Browser.isDevice ? 6 : 1.66));\r\n if (offsetDist > time || (e.distanceX > (this.parent.element.offsetWidth / 2))) {\r\n this.swapPanels(e.swipeDirection);\r\n if (offsetDist > time && (e.distanceX > (this.parent.element.offsetWidth / 2))) {\r\n this.element.style.transitionDuration = ((offsetDist / time) / 10) + 's';\r\n }\r\n this.confirmSwipe(e.swipeDirection);\r\n }\r\n else {\r\n this.cancelSwipe();\r\n }\r\n var args = { requestType: 'dateNavigate', cancel: false, event: e.originalEvent };\r\n this.parent.trigger(events.actionComplete, args);\r\n }\r\n else {\r\n this.cancelSwipe();\r\n }\r\n this.timeStampStart = null;\r\n };\r\n ScheduleTouch.prototype.tapHoldHandler = function (e) {\r\n var target = closest(e.originalEvent.target, '.' + cls.APPOINTMENT_CLASS);\r\n if (!isNullOrUndefined(target) && this.parent.isAdaptive) {\r\n this.parent.quickPopup.tapHoldEventPopup(e.originalEvent);\r\n return;\r\n }\r\n };\r\n ScheduleTouch.prototype.renderPanel = function (clsName, nextPrevType) {\r\n if (!this.currentPanel) {\r\n this.currentPanel = {\r\n element: this.parent.activeView.getPanel(),\r\n selectedDate: new Date(this.parent.selectedDate.getTime())\r\n };\r\n this.setDimensions(this.currentPanel.element);\r\n }\r\n else {\r\n this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);\r\n }\r\n this.parent.setProperties({ selectedDate: this.parent.activeView.getNextPreviousDate(nextPrevType) }, true);\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.setCalendarDate(this.parent.selectedDate);\r\n }\r\n this.parent.activeView.getRenderDates();\r\n this.parent.activeView.renderLayout(clsName);\r\n };\r\n ScheduleTouch.prototype.swapPanels = function (direction) {\r\n if (direction === this.touchLeftDirection) {\r\n var temp = this.nextPanel;\r\n this.nextPanel = this.currentPanel;\r\n this.currentPanel = temp;\r\n }\r\n else {\r\n var temp = this.previousPanel;\r\n this.previousPanel = this.currentPanel;\r\n this.currentPanel = temp;\r\n }\r\n };\r\n ScheduleTouch.prototype.confirmSwipe = function (swipeDirection) {\r\n var _this = this;\r\n var previousDate = swipeDirection === this.touchLeftDirection ?\r\n this.nextPanel.selectedDate : this.previousPanel.selectedDate;\r\n var args = {\r\n action: 'date', cancel: false, previousDate: previousDate, currentDate: this.currentPanel.selectedDate\r\n };\r\n this.parent.trigger(events.navigating, args, function (navArgs) {\r\n if (navArgs.cancel) {\r\n _this.swapPanels(swipeDirection);\r\n _this.cancelSwipe();\r\n }\r\n else {\r\n _this.parent.activeView.setPanel(_this.currentPanel.element);\r\n _this.parent.setProperties({ selectedDate: _this.currentPanel.selectedDate }, true);\r\n var translateX = void 0;\r\n if (_this.parent.enableRtl) {\r\n translateX = swipeDirection === _this.touchLeftDirection ?\r\n (_this.previousPanel ? _this.previousPanel.element.offsetLeft : _this.currentPanel.element.offsetWidth) : 0;\r\n }\r\n else {\r\n translateX = swipeDirection === _this.touchLeftDirection ? -_this.currentPanel.element.offsetLeft : 0;\r\n }\r\n addClass([_this.element], cls.TRANSLATE_CLASS);\r\n _this.element.style.transform = 'translatex(' + translateX + 'px)';\r\n if (_this.parent.headerModule) {\r\n _this.parent.headerModule.updateDateRange(_this.parent.activeView.getDateRangeText());\r\n }\r\n _this.parent.renderTemplates();\r\n _this.parent.crudModule.refreshDataManager();\r\n }\r\n });\r\n };\r\n ScheduleTouch.prototype.cancelSwipe = function () {\r\n this.parent.activeView.setPanel(this.currentPanel.element);\r\n this.parent.setProperties({ selectedDate: this.currentPanel.selectedDate }, true);\r\n this.parent.activeView.getRenderDates();\r\n this.parent.activeView.generateColumnLevels();\r\n addClass([this.element], cls.TRANSLATE_CLASS);\r\n var prevWidth = this.previousPanel ? this.previousPanel.element.offsetWidth : 0;\r\n this.element.style.transform = 'translatex(' + (this.parent.enableRtl ? prevWidth : -this.currentPanel.element.offsetLeft) + 'px)';\r\n };\r\n ScheduleTouch.prototype.onTransitionEnd = function () {\r\n removeClass([this.element], cls.TRANSLATE_CLASS);\r\n this.element.style.transitionDuration = '';\r\n this.element.style.transform = '';\r\n if (this.previousPanel) {\r\n remove(this.previousPanel.element);\r\n this.previousPanel = null;\r\n removeClass([this.currentPanel.element], cls.PREVIOUS_PANEL_CLASS);\r\n addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);\r\n }\r\n if (this.nextPanel) {\r\n remove(this.nextPanel.element);\r\n this.nextPanel = null;\r\n removeClass([this.currentPanel.element], cls.NEXT_PANEL_CLASS);\r\n addClass([this.currentPanel.element], cls.CURRENT_PANEL_CLASS);\r\n }\r\n this.currentPanel = null;\r\n this.parent.activeView.getPanel().style.width = '';\r\n };\r\n ScheduleTouch.prototype.getTranslateX = function (element) {\r\n var style = window.getComputedStyle(element);\r\n return new WebKitCSSMatrix(style.webkitTransform).m41;\r\n };\r\n ScheduleTouch.prototype.setDimensions = function (element) {\r\n element.style.width = (this.parent.element.clientWidth) + 'px';\r\n };\r\n ScheduleTouch.prototype.resetValues = function () {\r\n this.currentPanel = null;\r\n this.previousPanel = null;\r\n this.nextPanel = null;\r\n this.timeStampStart = null;\r\n this.element.style.transform = '';\r\n util.removeChildren(this.element);\r\n removeClass([this.element], cls.TRANSLATE_CLASS);\r\n };\r\n ScheduleTouch.prototype.destroy = function () {\r\n if (this.touchObj) {\r\n this.touchObj.destroy();\r\n this.touchObj = null;\r\n }\r\n EventHandler.remove(this.element, 'transitionend', this.onTransitionEnd);\r\n this.resetValues();\r\n };\r\n return ScheduleTouch;\r\n}());\r\nexport { ScheduleTouch };\r\n","import { append, addClass, remove, isNullOrUndefined, setStyleAttribute, createElement } from '@syncfusion/ej2-base';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Virtual Scroll\r\n */\r\nvar VirtualScroll = /** @class */ (function () {\r\n function VirtualScroll(parent) {\r\n this.translateY = 0;\r\n this.itemSize = 60;\r\n this.bufferCount = 3;\r\n this.renderedLength = 0;\r\n this.averageRowHeight = 0;\r\n this.isScrollHeightNull = true;\r\n this.parent = parent;\r\n this.addEventListener();\r\n }\r\n VirtualScroll.prototype.addEventListener = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.on(events.virtualScroll, this.virtualScrolling, this);\r\n };\r\n VirtualScroll.prototype.removeEventListener = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.off(events.virtualScroll, this.virtualScrolling);\r\n };\r\n VirtualScroll.prototype.getRenderedCount = function () {\r\n this.setItemSize();\r\n return Math.ceil(this.parent.element.clientHeight / this.itemSize) + this.bufferCount;\r\n };\r\n VirtualScroll.prototype.setTranslateValue = function () {\r\n var resWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var eventWrap = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\r\n this.renderVirtualTrackHeight(conWrap, resWrap);\r\n this.setTranslate(resWrap, conWrap, eventWrap, timeIndicator);\r\n };\r\n VirtualScroll.prototype.renderVirtualTrackHeight = function (contentWrap, resourceWrap) {\r\n this.parent.resourceBase.setExpandedResources();\r\n if (this.isScrollHeightNull) {\r\n var wrap = createElement('div', { className: cls.VIRTUAL_TRACK_CLASS });\r\n var resWrap = [].slice.call((resourceWrap).querySelectorAll('table td'));\r\n var startIndex_1 = parseInt(resWrap[0].getAttribute('data-group-index'), 10);\r\n var endIndex_1 = parseInt(resWrap[resWrap.length - 1].getAttribute('data-group-index'), 10);\r\n this.parent.resourceBase.renderedResources = this.parent.resourceBase.expandedResources.filter(function (resource) {\r\n return (resource.groupIndex >= startIndex_1 && resource.groupIndex <= endIndex_1);\r\n });\r\n this.setItemSize();\r\n wrap.style.height = (this.parent.resourceBase.expandedResources.length * this.itemSize) + 'px';\r\n this.isScrollHeightNull = false;\r\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\r\n if (!isNullOrUndefined(virtual)) {\r\n remove(virtual);\r\n }\r\n contentWrap.appendChild(wrap);\r\n }\r\n };\r\n VirtualScroll.prototype.renderVirtualTrack = function (contentWrap) {\r\n var wrap = createElement('div', { className: cls.VIRTUAL_TRACK_CLASS });\r\n wrap.style.height = (this.parent.resourceBase.expandedResources.length * this.itemSize) + 'px';\r\n contentWrap.appendChild(wrap);\r\n };\r\n VirtualScroll.prototype.updateVirtualScrollHeight = function () {\r\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\r\n var lastResourceIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\r\n var lastRenderIndex = this.parent.resourceBase.renderedResources[this.parent.resourceBase.renderedResources.length - 1].groupIndex;\r\n if (lastRenderIndex !== lastResourceIndex) {\r\n var conTable = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\r\n this.renderedLength = conTable.querySelector('tbody').children.length;\r\n virtual.style.height = (conTable.offsetHeight + (this.parent.resourceBase.expandedResources.length - (this.renderedLength)) *\r\n conTable.offsetHeight / this.renderedLength) + 'px';\r\n }\r\n else {\r\n virtual.style.height = '';\r\n }\r\n this.averageRowHeight = virtual.offsetHeight / this.parent.resourceBase.expandedResources.length;\r\n };\r\n VirtualScroll.prototype.updateVirtualTrackHeight = function (wrap) {\r\n var resourceCount = this.parent.resourceBase.renderedResources.length;\r\n if (resourceCount !== this.getRenderedCount()) {\r\n wrap.style.height = this.parent.element.querySelector('.e-content-wrap').clientHeight + 'px';\r\n var resWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var eventWrap = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n this.translateY = 0;\r\n this.setTranslate(resWrap, conWrap, eventWrap);\r\n }\r\n else {\r\n var lastRenderIndex = this.parent.resourceBase.renderedResources[resourceCount - 1].groupIndex;\r\n var lastCollIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\r\n var renderedResCount = resourceCount + (lastCollIndex - lastRenderIndex);\r\n renderedResCount = (renderedResCount > this.parent.resourceBase.expandedResources.length) ?\r\n this.parent.resourceBase.expandedResources.length : renderedResCount;\r\n wrap.style.height = (renderedResCount * this.itemSize) + 'px';\r\n }\r\n };\r\n VirtualScroll.prototype.setItemSize = function () {\r\n this.itemSize = util.getElementHeightFromClass(this.parent.activeView.element, cls.WORK_CELLS_CLASS) || this.itemSize;\r\n };\r\n VirtualScroll.prototype.renderEvents = function () {\r\n this.setTabIndex();\r\n this.parent.refreshEvents(false);\r\n this.parent.notify(events.contentReady, {});\r\n this.parent.hideSpinner();\r\n };\r\n VirtualScroll.prototype.virtualScrolling = function () {\r\n var _this = this;\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n this.parent.quickPopup.morePopup.hide();\r\n }\r\n var resWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var eventWrap = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\r\n var conTable = this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\r\n this.renderedLength = resWrap.querySelector('tbody').children.length;\r\n var firstTDIndex = parseInt(resWrap.querySelector('tbody td').getAttribute('data-group-index'), 10);\r\n var scrollHeight = this.parent.rowAutoHeight ?\r\n (conTable.offsetHeight - conWrap.offsetHeight) : this.bufferCount * this.itemSize;\r\n addClass([conWrap], 'e-transition');\r\n var resCollection = [];\r\n if ((conWrap.scrollTop) - this.translateY < 0) {\r\n resCollection = this.upScroll(conWrap, firstTDIndex);\r\n }\r\n else if (conWrap.scrollTop - this.translateY > scrollHeight) {\r\n resCollection = this.downScroll(conWrap, firstTDIndex);\r\n }\r\n if (!isNullOrUndefined(resCollection) && resCollection.length > 0) {\r\n this.parent.showSpinner();\r\n var selectedEle = this.parent.getSelectedElements();\r\n this.focusedEle = selectedEle[selectedEle.length - 1] || this.focusedEle;\r\n this.updateContent(resWrap, conWrap, eventWrap, resCollection);\r\n this.setTranslate(resWrap, conWrap, eventWrap, timeIndicator);\r\n if (this.parent.dragAndDropModule && this.parent.dragAndDropModule.actionObj.action === 'drag') {\r\n this.parent.dragAndDropModule.navigationWrapper();\r\n }\r\n window.clearTimeout(this.timeValue);\r\n this.timeValue = window.setTimeout(function () { _this.renderEvents(); }, 250);\r\n }\r\n };\r\n VirtualScroll.prototype.upScroll = function (conWrap, firstTDIndex) {\r\n var index = 0;\r\n index = (~~(conWrap.scrollTop / this.itemSize) + Math.ceil(conWrap.clientHeight / this.itemSize)) - this.renderedLength;\r\n if (this.parent.rowAutoHeight) {\r\n index = (index > firstTDIndex) ? firstTDIndex - this.bufferCount : index;\r\n }\r\n index = (index > 0) ? index : 0;\r\n var prevSetCollection = this.getBufferCollection(index, index + this.renderedLength);\r\n this.parent.resourceBase.renderedResources = prevSetCollection;\r\n if (firstTDIndex === 0) {\r\n this.translateY = conWrap.scrollTop;\r\n }\r\n else {\r\n var height = (this.parent.rowAutoHeight) ? this.averageRowHeight : this.itemSize;\r\n height = (height > 0) ? height : this.itemSize;\r\n this.translateY = (conWrap.scrollTop - (this.bufferCount * height) > 0) ?\r\n conWrap.scrollTop - (this.bufferCount * height) : 0;\r\n }\r\n return prevSetCollection;\r\n };\r\n VirtualScroll.prototype.downScroll = function (conWrap, firstTDIndex) {\r\n var lastResource = this.parent.resourceBase.\r\n renderedResources[this.parent.resourceBase.renderedResources.length - 1].groupIndex;\r\n var lastResourceIndex = this.parent.resourceBase.expandedResources[this.parent.resourceBase.expandedResources.length - 1].groupIndex;\r\n if (lastResource === lastResourceIndex) {\r\n return null;\r\n }\r\n var nextSetResIndex = 0;\r\n nextSetResIndex = ~~(conWrap.scrollTop / this.itemSize);\r\n if (this.parent.rowAutoHeight) {\r\n nextSetResIndex = ~~((conWrap.scrollTop - this.translateY) / this.averageRowHeight) + firstTDIndex;\r\n nextSetResIndex = (nextSetResIndex > firstTDIndex + this.bufferCount) ? nextSetResIndex : firstTDIndex + this.bufferCount;\r\n }\r\n var lastIndex = nextSetResIndex + this.renderedLength;\r\n lastIndex = (lastIndex > this.parent.resourceBase.expandedResources.length) ?\r\n nextSetResIndex + (this.parent.resourceBase.expandedResources.length - nextSetResIndex) : lastIndex;\r\n var nextSetCollection = this.getBufferCollection(lastIndex - this.renderedLength, lastIndex);\r\n this.translateY = conWrap.scrollTop;\r\n return nextSetCollection;\r\n };\r\n VirtualScroll.prototype.updateContent = function (resWrap, conWrap, eventWrap, resCollection) {\r\n var renderedLength = resWrap.querySelector('tbody').children.length;\r\n if (document.activeElement && document.activeElement.classList.contains(cls.RESOURCE_CELLS_CLASS)) {\r\n this.isResourceCell = true;\r\n this.parent.element.focus();\r\n }\r\n for (var i = 0; i < renderedLength; i++) {\r\n remove(resWrap.querySelector('tbody tr'));\r\n remove(conWrap.querySelector('tbody tr'));\r\n remove(eventWrap.querySelector('div'));\r\n }\r\n this.parent.resourceBase.renderedResources = resCollection;\r\n var resourceRows = this.parent.resourceBase.getContentRows(resCollection, true);\r\n var contentRows = this.parent.activeView.getContentRows();\r\n var eventRows = this.parent.activeView.getEventRows(resCollection.length);\r\n append(resourceRows, resWrap.querySelector('tbody'));\r\n append(contentRows, conWrap.querySelector('tbody'));\r\n append(eventRows, eventWrap);\r\n };\r\n VirtualScroll.prototype.getBufferCollection = function (startIndex, endIndex) {\r\n return this.parent.resourceBase.expandedResources.slice(startIndex, endIndex);\r\n };\r\n VirtualScroll.prototype.setTranslate = function (resWrap, conWrap, eventWrap, timeIndicator) {\r\n setStyleAttribute(resWrap.querySelector('table'), { transform: \"translateY(\" + this.translateY + \"px)\" });\r\n setStyleAttribute(conWrap.querySelector('table'), { transform: \"translateY(\" + this.translateY + \"px)\" });\r\n setStyleAttribute(eventWrap, { transform: \"translateY(\" + this.translateY + \"px)\" });\r\n if (!isNullOrUndefined(timeIndicator)) {\r\n setStyleAttribute(timeIndicator, { transform: \"translateY(\" + this.translateY + \"px)\" });\r\n }\r\n };\r\n VirtualScroll.prototype.updateFocusedWorkCell = function () {\r\n if (this.focusedEle) {\r\n var date = parseInt(this.focusedEle.getAttribute('data-date'), 10);\r\n var groupIndex = parseInt(this.focusedEle.getAttribute('data-group-index'), 10);\r\n var ele = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-date=\\\"\" + date + \"\\\"][data-group-index=\\\"\" + groupIndex + \"\\\"]\");\r\n if (ele) {\r\n this.parent.addSelectedClass([ele], ele, true);\r\n }\r\n this.focusedEle = null;\r\n }\r\n };\r\n VirtualScroll.prototype.setTabIndex = function () {\r\n var resColWrap = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n var resCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_CELLS_CLASS));\r\n if (resCells && resColWrap) {\r\n resCells.forEach(function (element) {\r\n if (element.getBoundingClientRect().top >= resColWrap.getBoundingClientRect().top) {\r\n element.setAttribute('tabindex', '0');\r\n }\r\n });\r\n }\r\n var focusResCell = this.parent.element.querySelector(\".\" + cls.RESOURCE_CELLS_CLASS + \"[tabindex=\\\"\" + 0 + \"\\\"]\");\r\n if (this.isResourceCell && focusResCell) {\r\n focusResCell.focus();\r\n this.isResourceCell = false;\r\n }\r\n };\r\n VirtualScroll.prototype.destroy = function () {\r\n this.removeEventListener();\r\n };\r\n return VirtualScroll;\r\n}());\r\nexport { VirtualScroll };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { extend, closest, isNullOrUndefined, EventHandler } from '@syncfusion/ej2-base';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Work cell interactions\r\n */\r\nvar WorkCellInteraction = /** @class */ (function () {\r\n function WorkCellInteraction(parent) {\r\n this.parent = parent;\r\n EventHandler.add(this.parent.element, 'mouseover', this.onHover, this);\r\n }\r\n WorkCellInteraction.prototype.cellMouseDown = function (e) {\r\n if (this.isPreventAction(e)) {\r\n return;\r\n }\r\n this.parent.notify(event.cellMouseDown, { event: e });\r\n };\r\n WorkCellInteraction.prototype.cellClick = function (e) {\r\n var _this = this;\r\n if (this.isPreventAction(e)) {\r\n return;\r\n }\r\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\r\n var target = closest(e.target, queryStr);\r\n if (isNullOrUndefined(target)) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(closest(e.target, '.' + cls.NEW_EVENT_CLASS))) {\r\n this.parent.eventWindow.openEditor(this.parent.activeCellsData, 'Add');\r\n return;\r\n }\r\n var navigateEle = closest(e.target, '.' + cls.NAVIGATE_CLASS);\r\n var navigateView = this.parent.getNavigateView();\r\n var sameView = this.parent.currentView === navigateView;\r\n if (isNullOrUndefined(navigateEle) || sameView ||\r\n isNullOrUndefined(this.parent.viewOptions[navigateView.charAt(0).toLowerCase() + navigateView.slice(1)])) {\r\n if (this.parent.activeViewOptions.readonly && this.parent.currentView !== 'MonthAgenda') {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n return;\r\n }\r\n if (this.parent.isAdaptive && (e.target.classList.contains(cls.MORE_INDICATOR_CLASS) ||\r\n closest(e.target, '.' + cls.MORE_INDICATOR_CLASS))) {\r\n return;\r\n }\r\n var isWorkCell_1 = target.classList.contains(cls.WORK_CELLS_CLASS) ||\r\n target.classList.contains(cls.ALLDAY_CELLS_CLASS);\r\n if (isWorkCell_1 && e.shiftKey && e.which === 1 && this.parent.keyboardInteractionModule) {\r\n this.parent.keyboardInteractionModule.onMouseSelection(e);\r\n return;\r\n }\r\n this.parent.activeCellsData = this.parent.getCellDetails(target);\r\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellClick' });\r\n this.parent.trigger(event.cellClick, args, function (clickArgs) {\r\n if (!clickArgs.cancel) {\r\n if (isWorkCell_1) {\r\n _this.parent.selectCell(target);\r\n }\r\n if (_this.parent.allowInline) {\r\n var inlineArgs = {\r\n element: clickArgs.element,\r\n groupIndex: clickArgs.groupIndex, type: 'Cell'\r\n };\r\n _this.parent.notify(event.inlineClick, inlineArgs);\r\n }\r\n else {\r\n _this.parent.notify(event.cellClick, clickArgs);\r\n }\r\n }\r\n else {\r\n if (_this.parent.quickPopup) {\r\n _this.parent.quickPopup.quickPopupHide();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n var date = this.parent.getDateFromElement(target);\r\n if (!isNullOrUndefined(date) && !this.parent.isAdaptive && this.parent.isMinMaxDate(date)) {\r\n this.parent.setProperties({ selectedDate: date }, true);\r\n this.parent.changeView(this.parent.getNavigateView(), e);\r\n }\r\n }\r\n };\r\n WorkCellInteraction.prototype.cellDblClick = function (e) {\r\n var _this = this;\r\n var queryStr = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' + cls.HEADER_CELLS_CLASS;\r\n var target = closest(e.target, queryStr);\r\n if (this.parent.activeViewOptions.readonly || this.isPreventAction(e) || isNullOrUndefined(target)) {\r\n return;\r\n }\r\n var args = extend(this.parent.activeCellsData, { cancel: false, event: e, name: 'cellDoubleClick' });\r\n this.parent.trigger(event.cellDoubleClick, args, function (clickArgs) {\r\n var date = new Date(clickArgs.startTime.getTime());\r\n if (!_this.parent.isMinMaxDate(new Date(date.setHours(0, 0, 0, 0)))) {\r\n return;\r\n }\r\n if (!clickArgs.cancel) {\r\n _this.parent.eventWindow.openEditor(_this.parent.activeCellsData, 'Add');\r\n }\r\n });\r\n };\r\n WorkCellInteraction.prototype.onHover = function (e) {\r\n var targetSelector = '.' + cls.WORK_CELLS_CLASS + ',.' + cls.TIME_SLOT_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' +\r\n cls.HEADER_CELLS_CLASS + ',.' + cls.RESOURCE_CELLS_CLASS + ',.' + cls.APPOINTMENT_CLASS + ',.' + cls.WEEK_NUMBER_CLASS +\r\n ',.' + cls.MONTH_HEADER_CLASS;\r\n var hoverTarget = closest(e.target, targetSelector);\r\n if (hoverTarget) {\r\n var hoverArgs = { element: hoverTarget, event: e };\r\n this.parent.trigger(event.hover, hoverArgs);\r\n }\r\n };\r\n WorkCellInteraction.prototype.isPreventAction = function (e) {\r\n if (closest(e.target, '.' + cls.NAVIGATE_CLASS)) {\r\n return false;\r\n }\r\n if (closest(e.target, '.' + cls.APPOINTMENT_WRAPPER_CLASS) &&\r\n !closest(e.target, '.' + cls.MORE_INDICATOR_CLASS)) {\r\n return true;\r\n }\r\n var target = closest(e.target, '.' + cls.APPOINTMENT_CLASS + ',.' + cls.RESOURCE_GROUP_CELLS_CLASS);\r\n if (!isNullOrUndefined(target)) {\r\n return true;\r\n }\r\n target = closest(e.target, '.' + cls.HEADER_CELLS_CLASS);\r\n if (this.parent.activeView.isTimelineView() && !isNullOrUndefined(target)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n WorkCellInteraction.prototype.destroy = function () {\r\n EventHandler.remove(this.parent.element, 'mouseover', this.onHover);\r\n };\r\n return WorkCellInteraction;\r\n}());\r\nexport { WorkCellInteraction };\r\n","/**\r\n * Constants\r\n */\r\n/** @private */\r\nexport var cellClick = 'cellClick';\r\n/** @private */\r\nexport var cellDoubleClick = 'cellDoubleClick';\r\n/** @private */\r\nexport var moreEventsClick = 'moreEventsClick';\r\n/** @private */\r\nexport var select = 'select';\r\n/** @private */\r\nexport var hover = 'hover';\r\n/** @private */\r\nexport var actionBegin = 'actionBegin';\r\n/** @private */\r\nexport var actionComplete = 'actionComplete';\r\n/** @private */\r\nexport var actionFailure = 'actionFailure';\r\n/** @private */\r\nexport var navigating = 'navigating';\r\n/** @private */\r\nexport var renderCell = 'renderCell';\r\n/** @private */\r\nexport var eventClick = 'eventClick';\r\n/** @private */\r\nexport var eventRendered = 'eventRendered';\r\n/** @private */\r\nexport var dataBinding = 'dataBinding';\r\n/** @private */\r\nexport var dataBound = 'dataBound';\r\n/** @private */\r\nexport var popupOpen = 'popupOpen';\r\n/** @private */\r\nexport var popupClose = 'popupClose';\r\n/** @private */\r\nexport var dragStart = 'dragStart';\r\n/** @private */\r\nexport var drag = 'drag';\r\n/** @private */\r\nexport var dragStop = 'dragStop';\r\n/** @private */\r\nexport var resizeStart = 'resizeStart';\r\n/** @private */\r\nexport var resizing = 'resizing';\r\n/** @private */\r\nexport var resizeStop = 'resizeStop';\r\n/** @private */\r\nexport var inlineClick = 'inlineClick';\r\n/**\r\n * Specifies schedule internal events\r\n */\r\n/** @private */\r\nexport var initialLoad = 'initial-load';\r\n/** @private */\r\nexport var initialEnd = 'initial-end';\r\n/** @private */\r\nexport var print = 'print';\r\n/** @private */\r\nexport var dataReady = 'data-ready';\r\n/** @private */\r\nexport var eventsLoaded = 'events-loaded';\r\n/** @private */\r\nexport var contentReady = 'content-ready';\r\n/** @private */\r\nexport var scroll = 'scroll';\r\n/** @private */\r\nexport var virtualScroll = 'virtual-scroll';\r\n/** @private */\r\nexport var scrollUiUpdate = 'scroll-ui-update';\r\n/** @private */\r\nexport var uiUpdate = 'ui-update';\r\n/** @private */\r\nexport var documentClick = 'document-click';\r\n/** @private */\r\nexport var cellMouseDown = 'cell-mouse-down';\r\n","/**\r\n * CSS Constants\r\n */\r\n/** @private */\r\nexport var ROOT = 'e-schedule';\r\n/** @private */\r\nexport var RTL = 'e-rtl';\r\n/** @private */\r\nexport var DEVICE_CLASS = 'e-device';\r\n/** @private */\r\nexport var MULTI_DRAG = 'e-multi-drag';\r\n/** @private */\r\nexport var ICON = 'e-icons';\r\n/** @private */\r\nexport var ENABLE_CLASS = 'e-enable';\r\n/** @private */\r\nexport var DISABLE_CLASS = 'e-disable';\r\n/** @private */\r\nexport var TABLE_CONTAINER_CLASS = 'e-table-container';\r\n/** @private */\r\nexport var SCHEDULE_TABLE_CLASS = 'e-schedule-table';\r\n/** @private */\r\nexport var ALLDAY_CELLS_CLASS = 'e-all-day-cells';\r\n/** @private */\r\nexport var HEADER_POPUP_CLASS = 'e-header-popup';\r\n/** @private */\r\nexport var HEADER_CALENDAR_CLASS = 'e-header-calendar';\r\n/** @private */\r\nexport var ALLDAY_ROW_CLASS = 'e-all-day-row';\r\n/** @private */\r\nexport var CONTENT_TABLE_CLASS = 'e-content-table';\r\n/** @private */\r\nexport var WORK_CELLS_CLASS = 'e-work-cells';\r\n/** @private */\r\nexport var WORK_HOURS_CLASS = 'e-work-hours';\r\n/** @private */\r\nexport var POPUP_OPEN = 'e-popup-open';\r\n/** @private */\r\nexport var POPUP_CLOSE = 'e-popup-close';\r\n/** @private */\r\nexport var DATE_HEADER_WRAP_CLASS = 'e-date-header-wrap';\r\n/** @private */\r\nexport var DATE_HEADER_CONTAINER_CLASS = 'e-date-header-container';\r\n/** @private */\r\nexport var HEADER_CELLS_CLASS = 'e-header-cells';\r\n/** @private */\r\nexport var WORKDAY_CLASS = 'e-work-days';\r\n/** @private */\r\nexport var OTHERMONTH_CLASS = 'e-other-month';\r\n/** @private */\r\nexport var CURRENT_DAY_CLASS = 'e-current-day';\r\n/** @private */\r\nexport var CURRENTDATE_CLASS = 'e-current-date';\r\n/** @private */\r\nexport var CURRENT_PANEL_CLASS = 'e-current-panel';\r\n/** @private */\r\nexport var PREVIOUS_PANEL_CLASS = 'e-previous-panel';\r\n/** @private */\r\nexport var NEXT_PANEL_CLASS = 'e-next-panel';\r\n/** @private */\r\nexport var PREVIOUS_DATE_CLASS = 'e-prev';\r\n/** @private */\r\nexport var NEXT_DATE_CLASS = 'e-next';\r\n/** @private */\r\nexport var TRANSLATE_CLASS = 'e-translate';\r\n/** @private */\r\nexport var LEFT_INDENT_CLASS = 'e-left-indent';\r\n/** @private */\r\nexport var LEFT_INDENT_WRAP_CLASS = 'e-left-indent-wrap';\r\n/** @private */\r\nexport var EVENT_TABLE_CLASS = 'e-event-table';\r\n/** @private */\r\nexport var RESOURCE_LEFT_TD_CLASS = 'e-resource-left-td';\r\n/** @private */\r\nexport var RESOURCE_GROUP_CELLS_CLASS = 'e-resource-group-cells';\r\n/** @private */\r\nexport var RESOURCE_TEXT_CLASS = 'e-resource-text';\r\n/** @private */\r\nexport var RESOURCE_COLUMN_WRAP_CLASS = 'e-resource-column-wrap';\r\n/** @private */\r\nexport var RESOURCE_COLUMN_TABLE_CLASS = 'e-resource-column-table';\r\n/** @private */\r\nexport var RESOURCE_CHILD_CLASS = 'e-child-node';\r\n/** @private */\r\nexport var RESOURCE_PARENT_CLASS = 'e-parent-node';\r\n/** @private */\r\nexport var RESOURCE_EXPAND_CLASS = 'e-resource-expand';\r\n/** @private */\r\nexport var RESOURCE_COLLAPSE_CLASS = 'e-resource-collapse';\r\n/** @private */\r\nexport var RESOURCE_TREE_ICON_CLASS = 'e-resource-tree-icon';\r\n/** @private */\r\nexport var RESOURCE_CELLS_CLASS = 'e-resource-cells';\r\n/** @private */\r\nexport var TIME_CELLS_WRAP_CLASS = 'e-time-cells-wrap';\r\n/** @private */\r\nexport var TIME_CELLS_CLASS = 'e-time-cells';\r\n/** @private */\r\nexport var TIME_SLOT_CLASS = 'e-time-slots';\r\n/** @private */\r\nexport var ALTERNATE_CELLS_CLASS = 'e-alternate-cells';\r\n/** @private */\r\nexport var CURRENT_TIME_CLASS = 'e-current-time';\r\n/** @private */\r\nexport var CURRENT_TIMELINE_CLASS = 'e-current-timeline';\r\n/** @private */\r\nexport var PREVIOUS_TIMELINE_CLASS = 'e-previous-timeline';\r\n/** @private */\r\nexport var HIDE_CHILDS_CLASS = 'e-hide-childs';\r\n/** @private */\r\nexport var SCROLL_CONTAINER_CLASS = 'e-scroll-container';\r\n/** @private */\r\nexport var WRAPPER_CLASS = 'e-wrapper';\r\n/** @private */\r\nexport var TIMELINE_WRAPPER_CLASS = 'e-timeline-wrapper';\r\n/** @private */\r\nexport var APPOINTMENT_WRAPPER_CLASS = 'e-appointment-wrapper';\r\n/** @private */\r\nexport var DAY_WRAPPER_CLASS = 'e-day-wrapper';\r\n/** @private */\r\nexport var TOOLBAR_CONTAINER = 'e-schedule-toolbar-container';\r\n/** @private */\r\nexport var RESOURCE_TOOLBAR_CONTAINER = 'e-schedule-resource-toolbar-container';\r\n/** @private */\r\nexport var HEADER_TOOLBAR = 'e-schedule-toolbar';\r\n/** @private */\r\nexport var RESOURCE_HEADER_TOOLBAR = 'e-schedule-resource-toolbar';\r\n/** @private */\r\nexport var SELECTED_CELL_CLASS = 'e-selected-cell';\r\n/** @private */\r\nexport var WEEK_NUMBER_WRAPPER_CLASS = 'e-week-number-wrapper';\r\n/** @private */\r\nexport var WEEK_NUMBER_CLASS = 'e-week-number';\r\n/** @private */\r\nexport var APPOINTMENT_WRAP_CLASS = 'e-appointment-wrap';\r\n/** @private */\r\nexport var WRAPPER_CONTAINER_CLASS = 'e-wrapper-container';\r\n/** @private */\r\nexport var APPOINTMENT_CONTAINER_CLASS = 'e-appointment-container';\r\n/** @private */\r\nexport var APPOINTMENT_CLASS = 'e-appointment';\r\n/** @private */\r\nexport var BLOCK_APPOINTMENT_CLASS = 'e-block-appointment';\r\n/** @private */\r\nexport var BLOCK_INDICATOR_CLASS = 'e-block-indicator';\r\n/** @private */\r\nexport var APPOINTMENT_BORDER = 'e-appointment-border';\r\n/** @private */\r\nexport var APPOINTMENT_DETAILS = 'e-appointment-details';\r\n/** @private */\r\nexport var SUBJECT_WRAP = 'e-subject-wrap';\r\n/** @private */\r\nexport var RESOURCE_NAME = 'e-resource-name';\r\n/** @private */\r\nexport var APPOINTMENT_TIME = 'e-time';\r\n/** @private */\r\nexport var TABLE_WRAP_CLASS = 'e-table-wrap';\r\n/** @private */\r\nexport var OUTER_TABLE_CLASS = 'e-outer-table';\r\n/** @private */\r\nexport var CONTENT_WRAP_CLASS = 'e-content-wrap';\r\n/** @private */\r\nexport var VIRTUAL_TRACK_CLASS = 'e-virtual-track';\r\n/** @private */\r\nexport var AGENDA_CELLS_CLASS = 'e-agenda-cells';\r\n/** @private */\r\nexport var AGENDA_CURRENT_DAY_CLASS = 'e-current-day';\r\n/** @private */\r\nexport var AGENDA_SELECTED_CELL = 'e-active-appointment-agenda';\r\n/** @private */\r\nexport var MONTH_HEADER_CLASS = 'e-month-header';\r\n/** @private */\r\nexport var AGENDA_HEADER_CLASS = 'e-day-date-header';\r\n/** @private */\r\nexport var AGENDA_RESOURCE_CLASS = 'e-resource-column';\r\n/** @private */\r\nexport var AGENDA_DATE_CLASS = 'e-date-column';\r\n/** @private */\r\nexport var NAVIGATE_CLASS = 'e-navigate';\r\n/** @private */\r\nexport var DATE_HEADER_CLASS = 'e-date-header';\r\n/** @private */\r\nexport var AGENDA_DAY_BORDER_CLASS = 'e-day-border';\r\n/** @private */\r\nexport var DATE_BORDER_CLASS = 'e-date-border';\r\n/** @private */\r\nexport var AGENDA_DAY_PADDING_CLASS = 'e-day-padding';\r\n/** @private */\r\nexport var DATE_TIME_CLASS = 'e-date-time';\r\n/** @private */\r\nexport var DATE_TIME_WRAPPER_CLASS = 'e-date-time-wrapper';\r\n/** @private */\r\nexport var AGENDA_EMPTY_EVENT_CLASS = 'e-empty-event';\r\n/** @private */\r\nexport var AGENDA_NO_EVENT_CLASS = 'e-no-event';\r\n/** @private */\r\nexport var APPOINTMENT_INDICATOR_CLASS = 'e-appointment-indicator';\r\n/** @private */\r\nexport var EVENT_INDICATOR_CLASS = 'e-indicator';\r\n/** @private */\r\nexport var EVENT_ICON_UP_CLASS = 'e-up-icon';\r\n/** @private */\r\nexport var EVENT_ICON_DOWN_CLASS = 'e-down-icon';\r\n/** @private */\r\nexport var EVENT_ICON_LEFT_CLASS = 'e-left-icon';\r\n/** @private */\r\nexport var EVENT_ICON_RIGHT_CLASS = 'e-right-icon';\r\n/** @private */\r\nexport var EVENT_ACTION_CLASS = 'e-event-action';\r\n/** @private */\r\nexport var NEW_EVENT_CLASS = 'e-new-event';\r\n/** @private */\r\nexport var CLONE_ELEMENT_CLASS = 'e-schedule-event-clone';\r\n/** @private */\r\nexport var MONTH_CLONE_ELEMENT_CLASS = 'e-month-event';\r\n/** @private */\r\nexport var CLONE_TIME_INDICATOR_CLASS = 'e-clone-time-indicator';\r\n/** @private */\r\nexport var DRAG_CLONE_CLASS = 'e-drag-clone';\r\n/** @private */\r\nexport var EVENT_RESIZE_CLASS = 'e-event-resize';\r\n/** @private */\r\nexport var RESIZE_CLONE_CLASS = 'e-resize-clone';\r\n/** @private */\r\nexport var LEFT_RESIZE_HANDLER = 'e-left-handler';\r\n/** @private */\r\nexport var RIGHT_RESIZE_HANDLER = 'e-right-handler';\r\n/** @private */\r\nexport var TOP_RESIZE_HANDLER = 'e-top-handler';\r\n/** @private */\r\nexport var BOTTOM_RESIZE_HANDLER = 'e-bottom-handler';\r\n/** @private */\r\nexport var EVENT_RECURRENCE_ICON_CLASS = 'e-recurrence-icon';\r\n/** @private */\r\nexport var EVENT_RECURRENCE_EDIT_ICON_CLASS = 'e-recurrence-edit-icon';\r\n/** @private */\r\nexport var HEADER_ROW_CLASS = 'e-header-row';\r\n/** @private */\r\nexport var ALLDAY_APPOINTMENT_WRAPPER_CLASS = 'e-all-day-appointment-wrapper';\r\n/** @private */\r\nexport var ALLDAY_APPOINTMENT_CLASS = 'e-all-day-appointment';\r\n/** @private */\r\nexport var EVENT_COUNT_CLASS = 'e-appointment-hide';\r\n/** @private */\r\nexport var ROW_COUNT_WRAPPER_CLASS = 'e-row-count-wrapper';\r\n/** @private */\r\nexport var ALLDAY_APPOINTMENT_SECTION_CLASS = 'e-all-day-appointment-section';\r\n/** @private */\r\nexport var APPOINTMENT_ROW_EXPAND_CLASS = 'e-appointment-expand';\r\n/** @private */\r\nexport var APPOINTMENT_ROW_COLLAPSE_CLASS = 'e-appointment-collapse';\r\n/** @private */\r\nexport var MORE_INDICATOR_CLASS = 'e-more-indicator';\r\n/** @private */\r\nexport var CELL_POPUP_CLASS = 'e-cell-popup';\r\n/** @private */\r\nexport var EVENT_POPUP_CLASS = 'e-event-popup';\r\n/** @private */\r\nexport var MULTIPLE_EVENT_POPUP_CLASS = 'e-multiple-event-popup';\r\n/** @private */\r\nexport var POPUP_HEADER_CLASS = 'e-popup-header';\r\n/** @private */\r\nexport var POPUP_HEADER_ICON_WRAPPER = 'e-header-icon-wrapper';\r\n/** @private */\r\nexport var POPUP_CONTENT_CLASS = 'e-popup-content';\r\n/** @private */\r\nexport var POPUP_FOOTER_CLASS = 'e-popup-footer';\r\n/** @private */\r\nexport var DATE_TIME_DETAILS_CLASS = 'e-date-time-details';\r\n/** @private */\r\nexport var RECURRENCE_SUMMARY_CLASS = 'e-recurrence-summary';\r\n/** @private */\r\nexport var QUICK_POPUP_EVENT_DETAILS_CLASS = 'e-event-details';\r\n/** @private */\r\nexport var EVENT_CREATE_CLASS = 'e-event-create';\r\n/** @private */\r\nexport var EDIT_EVENT_CLASS = 'e-event-edit';\r\n/** @private */\r\nexport var DELETE_EVENT_CLASS = 'e-event-delete';\r\n/** @private */\r\nexport var TEXT_ELLIPSIS = 'e-text-ellipsis';\r\n/** @private */\r\nexport var MORE_POPUP_WRAPPER_CLASS = 'e-more-popup-wrapper';\r\n/** @private */\r\nexport var MORE_EVENT_POPUP_CLASS = 'e-more-event-popup';\r\n/** @private */\r\nexport var MORE_EVENT_HEADER_CLASS = 'e-more-event-header';\r\n/** @private */\r\nexport var MORE_EVENT_DATE_HEADER_CLASS = 'e-more-event-date-header';\r\n/** @private */\r\nexport var MORE_EVENT_HEADER_DAY_CLASS = 'e-header-day';\r\n/** @private */\r\nexport var MORE_EVENT_HEADER_DATE_CLASS = 'e-header-date';\r\n/** @private */\r\nexport var MORE_EVENT_CLOSE_CLASS = 'e-more-event-close';\r\n/** @private */\r\nexport var MORE_EVENT_CONTENT_CLASS = 'e-more-event-content';\r\n/** @private */\r\nexport var MORE_EVENT_WRAPPER_CLASS = 'e-more-appointment-wrapper';\r\n/** @private */\r\nexport var QUICK_DIALOG_CLASS = 'e-quick-dialog';\r\n/** @private */\r\nexport var QUICK_DIALOG_OCCURRENCE_CLASS = 'e-quick-dialog-occurrence-event';\r\n/** @private */\r\nexport var QUICK_DIALOG_SERIES_CLASS = 'e-quick-dialog-series-event';\r\n/** @private */\r\nexport var QUICK_DIALOG_FOLLOWING_EVENTS_CLASS = 'e-quick-dialog-following-events';\r\n/** @private */\r\nexport var FOLLOWING_EVENTS_DIALOG = 'e-following-events-dialog';\r\n/** @private */\r\nexport var QUICK_DIALOG_DELETE_CLASS = 'e-quick-dialog-delete';\r\n/** @private */\r\nexport var QUICK_DIALOG_CANCEL_CLASS = 'e-quick-dialog-cancel';\r\n/** @private */\r\nexport var QUICK_DIALOG_ALERT_OK = 'e-quick-alertok';\r\n/** @private */\r\nexport var QUICK_DIALOG_ALERT_CANCEL = 'e-quick-alertcancel';\r\n/** @private */\r\nexport var QUICK_DIALOG_ALERT_FOLLOWING = 'e-quick-alertfollowing';\r\n/** @private */\r\nexport var QUICK_DIALOG_ALERT_BTN_CLASS = 'e-quick-dialog-alert-btn';\r\n/** @private */\r\nexport var EVENT_WINDOW_DIALOG_CLASS = 'e-schedule-dialog';\r\n/** @private */\r\nexport var FORM_CONTAINER_CLASS = 'e-form-container';\r\n/** @private */\r\nexport var FORM_CLASS = 'e-schedule-form';\r\n/** @private */\r\nexport var EVENT_WINDOW_ALLDAY_TZ_DIV_CLASS = 'e-all-day-time-zone-row';\r\n/** @private */\r\nexport var EVENT_WINDOW_ALL_DAY_CLASS = 'e-all-day';\r\n/** @private */\r\nexport var TIME_ZONE_CLASS = 'e-time-zone';\r\n/** @private */\r\nexport var TIME_ZONE_ICON_CLASS = 'e-time-zone-icon';\r\n/** @private */\r\nexport var TIME_ZONE_DETAILS_CLASS = 'e-time-zone-details';\r\n/** @private */\r\nexport var EVENT_WINDOW_REPEAT_DIV_CLASS = 'e-repeat-parent-row';\r\n/** @private */\r\nexport var EVENT_WINDOW_REPEAT_CLASS = 'e-repeat';\r\n/** @private */\r\nexport var EVENT_WINDOW_TITLE_LOCATION_DIV_CLASS = 'e-title-location-row';\r\n/** @private */\r\nexport var SUBJECT_CLASS = 'e-subject';\r\n/** @private */\r\nexport var LOCATION_CLASS = 'e-location';\r\n/** @private */\r\nexport var LOCATION_ICON_CLASS = 'e-location-icon';\r\n/** @private */\r\nexport var LOCATION_DETAILS_CLASS = 'e-location-details';\r\n/** @private */\r\nexport var EVENT_WINDOW_START_END_DIV_CLASS = 'e-start-end-row';\r\n/** @private */\r\nexport var EVENT_WINDOW_START_CLASS = 'e-start';\r\n/** @private */\r\nexport var EVENT_WINDOW_END_CLASS = 'e-end';\r\n/** @private */\r\nexport var EVENT_WINDOW_RESOURCES_DIV_CLASS = 'e-resources-row';\r\n/** @private */\r\nexport var DESCRIPTION_CLASS = 'e-description';\r\n/** @private */\r\nexport var DESCRIPTION_ICON_CLASS = 'e-description-icon';\r\n/** @private */\r\nexport var DESCRIPTION_DETAILS_CLASS = 'e-description-details';\r\n/** @private */\r\nexport var EVENT_WINDOW_TIME_ZONE_DIV_CLASS = 'e-time-zone-row';\r\n/** @private */\r\nexport var EVENT_WINDOW_START_TZ_CLASS = 'e-start-time-zone';\r\n/** @private */\r\nexport var EVENT_WINDOW_END_TZ_CLASS = 'e-end-time-zone';\r\n/** @private */\r\nexport var EVENT_WINDOW_BACK_ICON_CLASS = 'e-back-icon';\r\n/** @private */\r\nexport var EVENT_WINDOW_SAVE_ICON_CLASS = 'e-save-icon';\r\n/** @private */\r\nexport var EVENT_WINDOW_CANCEL_BUTTON_CLASS = 'e-event-cancel';\r\n/** @private */\r\nexport var EVENT_WINDOW_SAVE_BUTTON_CLASS = 'e-event-save';\r\n/** @private */\r\nexport var EVENT_WINDOW_DIALOG_PARENT_CLASS = 'e-dialog-parent';\r\n/** @private */\r\nexport var EVENT_WINDOW_TITLE_TEXT_CLASS = 'e-title-text';\r\n/** @private */\r\nexport var EVENT_WINDOW_ICON_DISABLE_CLASS = 'e-icon-disable';\r\n/** @private */\r\nexport var EDIT_CLASS = 'e-edit';\r\n/** @private */\r\nexport var EDIT_ICON_CLASS = 'e-edit-icon';\r\n/** @private */\r\nexport var DELETE_CLASS = 'e-delete';\r\n/** @private */\r\nexport var DELETE_ICON_CLASS = 'e-delete-icon';\r\n/** @private */\r\nexport var CLOSE_CLASS = 'e-close';\r\n/** @private */\r\nexport var CLOSE_ICON_CLASS = 'e-close-icon';\r\n/** @private */\r\nexport var ERROR_VALIDATION_CLASS = 'e-schedule-error';\r\n/** @private */\r\nexport var EVENT_TOOLTIP_ROOT_CLASS = 'e-schedule-event-tooltip';\r\n/** @private */\r\nexport var ALLDAY_ROW_ANIMATE_CLASS = 'e-animate';\r\n/** @private */\r\nexport var TIMESCALE_DISABLE = 'e-timescale-disable';\r\n/** @private */\r\nexport var DISABLE_DATE = 'e-disable-date';\r\n/** @private */\r\nexport var HIDDEN_CLASS = 'e-hidden';\r\n/** @private */\r\nexport var DISABLE_DATES = 'e-disable-dates';\r\n/** @private */\r\nexport var POPUP_WRAPPER_CLASS = 'e-quick-popup-wrapper';\r\n/** @private */\r\nexport var POPUP_TABLE_CLASS = 'e-popup-table';\r\n/** @private */\r\nexport var RESOURCE_MENU = 'e-resource-menu';\r\n/** @private */\r\nexport var RESOURCE_MENU_ICON = 'e-icon-menu';\r\n/** @private */\r\nexport var RESOURCE_LEVEL_TITLE = 'e-resource-level-title';\r\n/** @private */\r\nexport var RESOURCE_TREE = 'e-resource-tree';\r\n/** @private */\r\nexport var RESOURCE_TREE_POPUP_OVERLAY = 'e-resource-tree-popup-overlay';\r\n/** @private */\r\nexport var RESOURCE_TREE_POPUP = 'e-resource-tree-popup';\r\n/** @private */\r\nexport var RESOURCE_CLASS = 'e-resource';\r\n/** @private */\r\nexport var RESOURCE_ICON_CLASS = 'e-resource-icon';\r\n/** @private */\r\nexport var RESOURCE_DETAILS_CLASS = 'e-resource-details';\r\n/** @private */\r\nexport var DATE_TIME_ICON_CLASS = 'e-date-time-icon';\r\n/** @private */\r\nexport var VIRTUAL_SCROLL_CLASS = 'e-virtual-scroll';\r\n/** @private */\r\nexport var ICON_DISABLE_CLASS = 'e-icon-disable';\r\n/** @private */\r\nexport var AUTO_HEIGHT = 'e-auto-height';\r\n/** @private */\r\nexport var IGNORE_WHITESPACE = 'e-ignore-whitespace';\r\n/** @private */\r\nexport var EVENT_TEMPLATE = 'e-template';\r\n/** @private */\r\nexport var READ_ONLY = 'e-read-only';\r\n/** @private */\r\nexport var MONTH_HEADER_WRAPPER = 'e-month-header-wrapper';\r\n/** @private */\r\nexport var INLINE_SUBJECT_CLASS = 'e-inline-subject';\r\n/** @private */\r\nexport var INLINE_APPOINTMENT_CLASS = 'e-inline-appointment';\r\n/** @hidden */\r\nexport var SCROLL_HIDDEN = 'e-scroll-hidden';\r\n/** @private */\r\nexport var ALLDAY_APPOINTMENT_SCROLL = 'e-all-day-scroll';\r\n/** @private */\r\nexport var ALLDAY_APPOINTMENT_AUTO = 'e-all-day-auto';\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable max-len */\r\nimport { extend, isNullOrUndefined, createElement, EventHandler, addClass, append, removeClass, remove, closest, classList } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query } from '@syncfusion/ej2-data';\r\nimport { TreeView } from '@syncfusion/ej2-navigations';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { Data } from '../actions/data';\r\nimport * as cls from '../base/css-constant';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\nvar ResourceBase = /** @class */ (function () {\r\n function ResourceBase(parent) {\r\n this.resourceCollection = [];\r\n this.leftPixel = 25;\r\n this.parent = parent;\r\n }\r\n ResourceBase.prototype.renderResourceHeaderIndent = function (tr) {\r\n var resColTd = createElement('td', { className: cls.RESOURCE_LEFT_TD_CLASS });\r\n var resColDiv = createElement('div', { className: cls.RESOURCE_TEXT_CLASS });\r\n if (this.parent.activeViewOptions.headerIndentTemplate) {\r\n var data = { className: [resColTd.className], type: 'emptyCells' };\r\n this.parent.renderHeaderIndentTemplate(data, resColTd);\r\n }\r\n else {\r\n resColTd.appendChild(resColDiv);\r\n }\r\n var args = { elementType: 'emptyCells', element: resColTd };\r\n this.parent.trigger(events.renderCell, args);\r\n tr.appendChild(resColTd);\r\n };\r\n ResourceBase.prototype.hideResourceRows = function (tBody) {\r\n if (this.resourceCollection.length <= 1 || this.parent.virtualScrollModule) {\r\n return;\r\n }\r\n var trCount = this.lastResourceLevel.length;\r\n for (var i = 0; i < trCount; i++) {\r\n var resData = this.lastResourceLevel[i].resourceData;\r\n var res = this.lastResourceLevel[i].resource;\r\n if (resData.ClassName === cls.RESOURCE_PARENT_CLASS && !resData[res.expandedField] &&\r\n !isNullOrUndefined(resData[res.expandedField])) {\r\n var trCollection = [].slice.call(tBody.children);\r\n var slicedCollection = trCollection.slice(i + 1, i + (parseInt(resData.Count, 10) + 1));\r\n addClass(slicedCollection, cls.HIDDEN_CLASS);\r\n }\r\n }\r\n };\r\n ResourceBase.prototype.createResourceColumn = function () {\r\n var resColl = this.resourceCollection;\r\n var resDiv = createElement('div', { className: cls.RESOURCE_COLUMN_WRAP_CLASS });\r\n var tbl = this.parent.activeView.createTableLayout(cls.RESOURCE_COLUMN_TABLE_CLASS);\r\n if (!this.parent.uiStateValues.isGroupAdaptive && this.parent.rowAutoHeight && this.parent.activeView.isTimelineView()\r\n && this.parent.activeViewOptions.group.resources.length > 0) {\r\n addClass([tbl], cls.AUTO_HEIGHT);\r\n }\r\n var tBody = tbl.querySelector('tbody');\r\n var resData = this.generateTreeData(true);\r\n this.countCalculation(resColl.slice(0, -2), resColl.slice(0, -1));\r\n this.renderedResources = this.lastResourceLevel;\r\n if (this.parent.virtualScrollModule) {\r\n var resourceCount = this.parent.virtualScrollModule.getRenderedCount();\r\n this.setExpandedResources();\r\n resData = this.expandedResources.slice(0, resourceCount);\r\n this.renderedResources = resData;\r\n }\r\n append(this.getContentRows(resData), tBody);\r\n this.hideResourceRows(tBody);\r\n tbl.appendChild(tBody);\r\n resDiv.appendChild(tbl);\r\n return resDiv;\r\n };\r\n ResourceBase.prototype.setRenderedResources = function () {\r\n var resColl = this.resourceCollection;\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n var temp = this.generateTreeData(true);\r\n this.countCalculation(resColl.slice(0, -2), resColl.slice(0, -1));\r\n this.renderedResources = this.lastResourceLevel;\r\n };\r\n ResourceBase.prototype.setExpandedResources = function () {\r\n var resources = [];\r\n for (var i = 0; i < this.lastResourceLevel.length; i++) {\r\n var resource = this.lastResourceLevel[i].resourceData;\r\n var count = resource.Count;\r\n resources.push(this.lastResourceLevel[i]);\r\n var isExpanded = resource[this.lastResourceLevel[i].resource.expandedField];\r\n if (!isNullOrUndefined(isExpanded) && !isExpanded && count > 0) {\r\n i = i + count;\r\n }\r\n }\r\n this.expandedResources = resources;\r\n };\r\n ResourceBase.prototype.getContentRows = function (resData, isVirtualScroll) {\r\n var resRows = [];\r\n var left;\r\n var rIndex;\r\n var resColl = this.resourceCollection;\r\n var tr = createElement('tr');\r\n var td = createElement('td', { attrs: { tabindex: isVirtualScroll ? '-1' : '0' } });\r\n for (var i = 0; i < resData.length; i++) {\r\n var ntd = td.cloneNode();\r\n rIndex = util.findIndexInData(resColl, 'name', resData[i].resource.name);\r\n if (rIndex === resColl.length - 1) {\r\n extend(resData[i].resourceData, { ClassName: cls.RESOURCE_CHILD_CLASS });\r\n this.renderedResources[i].className = [cls.RESOURCE_CHILD_CLASS];\r\n }\r\n else {\r\n extend(resData[i].resourceData, { ClassName: cls.RESOURCE_PARENT_CLASS });\r\n this.renderedResources[i].className = [cls.RESOURCE_PARENT_CLASS];\r\n }\r\n left = (rIndex * this.leftPixel) + 'px';\r\n if (resData[i].resourceData.ClassName === cls.RESOURCE_PARENT_CLASS\r\n && !isNullOrUndefined(resData[i].resourceData.Count) && (resData[i].resourceData.Count > 0)) {\r\n var iconClass = void 0;\r\n if (resData[i].resourceData[resColl[rIndex].expandedField] ||\r\n isNullOrUndefined(resData[i].resourceData[resColl[rIndex].expandedField])) {\r\n iconClass = cls.RESOURCE_COLLAPSE_CLASS;\r\n }\r\n else {\r\n iconClass = cls.RESOURCE_EXPAND_CLASS;\r\n }\r\n var iconDiv = createElement('div');\r\n addClass([iconDiv], [cls.RESOURCE_TREE_ICON_CLASS, iconClass]);\r\n this.setMargin(iconDiv, left);\r\n ntd.appendChild(iconDiv);\r\n if (this.resourceCollection.length > 1) {\r\n EventHandler.add(iconDiv, 'click', this.onTreeIconClick, this);\r\n }\r\n }\r\n this.parent.activeView.setResourceHeaderContent(ntd, resData[i], cls.RESOURCE_TEXT_CLASS);\r\n ntd.setAttribute('data-group-index', resData[i].groupIndex.toString());\r\n ntd.setAttribute('aria-label', resData[i].resourceData[resData[i].resource.textField] + ' resource');\r\n if (!this.parent.activeViewOptions.resourceHeaderTemplate) {\r\n this.setMargin(ntd.querySelector('.' + cls.RESOURCE_TEXT_CLASS), left);\r\n }\r\n var classCollection = [cls.RESOURCE_CELLS_CLASS, resData[i].resourceData.ClassName];\r\n addClass([ntd], classCollection);\r\n var args = { elementType: 'resourceHeader', element: ntd, groupIndex: resData[i].groupIndex };\r\n this.parent.trigger(events.renderCell, args);\r\n var ntr = tr.cloneNode();\r\n ntr.appendChild(ntd);\r\n resRows.push(ntr);\r\n }\r\n return resRows;\r\n };\r\n ResourceBase.prototype.setMargin = function (element, value) {\r\n if (!this.parent.enableRtl) {\r\n element.style.marginLeft = value;\r\n }\r\n else {\r\n element.style.marginRight = value;\r\n }\r\n };\r\n ResourceBase.prototype.countCalculation = function (parentCollection, wholeCollection) {\r\n var collection;\r\n for (var y = 0; y < parentCollection.length; y++) {\r\n var data = parentCollection[parentCollection.length - (y + 1)].dataSource;\r\n for (var x = 0; x < data.length; x++) {\r\n var totalCount = 0;\r\n if (this.parent.activeViewOptions.group.byGroupID) {\r\n var query = new Query().where(wholeCollection[wholeCollection.length - 1].groupIDField, 'equal', data[x][parentCollection[parentCollection.length - (y + 1)].idField]);\r\n collection = new DataManager(wholeCollection[wholeCollection.length - 1].dataSource).executeLocal(query);\r\n }\r\n else {\r\n collection = wholeCollection[wholeCollection.length - 1].dataSource;\r\n }\r\n for (var z = 0; z < collection.length; z++) {\r\n totalCount = totalCount + parseInt(collection[z].Count, 10);\r\n }\r\n totalCount = totalCount + parseInt(data[x].Count, 10);\r\n extend(data[x], { Count: totalCount });\r\n }\r\n wholeCollection = wholeCollection.slice(0, -1);\r\n }\r\n };\r\n ResourceBase.prototype.onTreeIconClick = function (e) {\r\n var _this = this;\r\n if (this.parent.eventTooltip) {\r\n this.parent.eventTooltip.close();\r\n }\r\n var target = e.target;\r\n var hide;\r\n var trElement = closest(target, '.' + cls.RESOURCE_PARENT_CLASS)\r\n .parentElement;\r\n var index = parseInt(trElement.children[0].getAttribute('data-group-index'), 10);\r\n var args = {\r\n cancel: false, event: e, groupIndex: index,\r\n requestType: !target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) ? 'resourceExpand' : 'resourceCollapse'\r\n };\r\n this.parent.trigger(events.actionBegin, args, function (actionArgs) {\r\n if (!actionArgs.cancel) {\r\n if (target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS)) {\r\n classList(target, [cls.RESOURCE_EXPAND_CLASS], [cls.RESOURCE_COLLAPSE_CLASS]);\r\n hide = true;\r\n }\r\n else {\r\n classList(target, [cls.RESOURCE_COLLAPSE_CLASS], [cls.RESOURCE_EXPAND_CLASS]);\r\n hide = false;\r\n }\r\n var eventElements = [].slice.call(_this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n for (var _i = 0, eventElements_1 = eventElements; _i < eventElements_1.length; _i++) {\r\n var element = eventElements_1[_i];\r\n remove(element);\r\n }\r\n if (_this.parent.virtualScrollModule) {\r\n _this.updateVirtualContent(index, hide, e, target);\r\n }\r\n else {\r\n _this.updateContent(index, hide);\r\n }\r\n var data = { cssProperties: _this.parent.getCssProperties(), module: 'scroll' };\r\n _this.parent.notify(events.scrollUiUpdate, data);\r\n args = {\r\n cancel: false, event: e, groupIndex: index,\r\n requestType: target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) ? 'resourceExpanded' : 'resourceCollapsed'\r\n };\r\n _this.parent.refreshEvents(false);\r\n _this.parent.trigger(events.actionComplete, args);\r\n }\r\n });\r\n };\r\n ResourceBase.prototype.updateContent = function (index, hide) {\r\n var rowCollection = [];\r\n var workCellCollection = [];\r\n var headerRowCollection = [];\r\n var pNode;\r\n var clickedRes = this.lastResourceLevel[index].resourceData;\r\n var resRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + 'tr'));\r\n var contentRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' ' + 'tbody tr'));\r\n var eventRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' .' + cls.APPOINTMENT_CONTAINER_CLASS));\r\n for (var j = 0; j < clickedRes.Count; j++) {\r\n rowCollection.push(resRows[index + j + 1]);\r\n workCellCollection.push(contentRows[index + j + 1]);\r\n headerRowCollection.push(eventRows[index + j + 1]);\r\n }\r\n var clonedCollection = this.lastResourceLevel;\r\n for (var i = 0; i < rowCollection.length; i++) {\r\n var expanded = true;\r\n pNode = rowCollection[i].children[0].classList.contains(cls.RESOURCE_PARENT_CLASS);\r\n clonedCollection[index].resourceData[clonedCollection[index].resource.expandedField] = !hide;\r\n if (hide) {\r\n if (pNode) {\r\n var trElem = rowCollection[i].querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\r\n if (trElem) {\r\n classList(trElem, [cls.RESOURCE_EXPAND_CLASS], [cls.RESOURCE_COLLAPSE_CLASS]);\r\n }\r\n }\r\n if (!rowCollection[i].classList.contains(cls.HIDDEN_CLASS)) {\r\n addClass([rowCollection[i], workCellCollection[i], headerRowCollection[i]], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n else {\r\n if (pNode) {\r\n var rowIndex = rowCollection[i].rowIndex;\r\n if (!clonedCollection[rowIndex].resourceData[clonedCollection[rowIndex].resource.expandedField]\r\n && !isNullOrUndefined(clonedCollection[rowIndex].resourceData[clonedCollection[rowIndex].resource.expandedField])) {\r\n rowCollection.splice(i + 1, (parseInt(clonedCollection[rowIndex].resourceData.Count, 10)));\r\n workCellCollection.splice(i + 1, (parseInt(clonedCollection[rowIndex].resourceData.Count, 10)));\r\n headerRowCollection.splice(i + 1, (parseInt(clonedCollection[rowIndex].resourceData.Count, 10)));\r\n expanded = false;\r\n }\r\n if (expanded) {\r\n var trElem = rowCollection[i].querySelector('.' + cls.RESOURCE_TREE_ICON_CLASS);\r\n if (trElem) {\r\n classList(trElem, [cls.RESOURCE_COLLAPSE_CLASS], [cls.RESOURCE_EXPAND_CLASS]);\r\n }\r\n }\r\n }\r\n if (rowCollection[i].classList.contains(cls.HIDDEN_CLASS)) {\r\n removeClass([rowCollection[i], workCellCollection[i], headerRowCollection[i]], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ResourceBase.prototype.updateVirtualContent = function (index, expand, e, target) {\r\n this.lastResourceLevel[index].resourceData[this.lastResourceLevel[index].resource.expandedField] = !expand;\r\n this.setExpandedResources();\r\n var resourceCount = this.parent.virtualScrollModule.getRenderedCount();\r\n var startIndex = this.expandedResources.indexOf(this.renderedResources[0]);\r\n this.renderedResources = this.expandedResources.slice(startIndex, startIndex + resourceCount);\r\n if (this.renderedResources.length < resourceCount) {\r\n var sIndex = this.expandedResources.length - resourceCount;\r\n sIndex = (sIndex > 0) ? sIndex : 0;\r\n this.renderedResources = this.expandedResources.slice(sIndex, this.expandedResources.length);\r\n }\r\n var virtualTrack = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\r\n this.parent.virtualScrollModule.updateVirtualTrackHeight(virtualTrack);\r\n var resTable = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + 'table');\r\n var contentTable = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' ' + 'table');\r\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n this.parent.virtualScrollModule.updateContent(resTable, contentTable, eventTable, this.renderedResources);\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\r\n if (!isNullOrUndefined(timeIndicator)) {\r\n timeIndicator.style.height =\r\n this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight + 'px';\r\n }\r\n };\r\n ResourceBase.prototype.renderResourceHeader = function () {\r\n var resourceWrapper = createElement('div', { className: cls.RESOURCE_TOOLBAR_CONTAINER });\r\n resourceWrapper.innerHTML = '
      ' +\r\n '
      ';\r\n if (this.parent.currentView === 'MonthAgenda') {\r\n var target = this.parent.activeView.getPanel().querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n target.insertBefore(resourceWrapper, target.querySelector('.' + cls.WRAPPER_CONTAINER_CLASS));\r\n }\r\n else {\r\n this.parent.element.insertBefore(resourceWrapper, this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS));\r\n }\r\n this.renderResourceHeaderText();\r\n EventHandler.add(resourceWrapper.querySelector('.' + cls.RESOURCE_MENU_ICON), 'click', this.menuClick, this);\r\n };\r\n ResourceBase.prototype.renderResourceTree = function () {\r\n this.popupOverlay = createElement('div', { className: cls.RESOURCE_TREE_POPUP_OVERLAY });\r\n var treeWrapper = createElement('div', { className: cls.RESOURCE_TREE_POPUP + ' e-popup-close' });\r\n if (this.parent.currentView === 'MonthAgenda') {\r\n var target = this.parent.activeView.getPanel().querySelector('.' + cls.WRAPPER_CONTAINER_CLASS);\r\n target.insertBefore(treeWrapper, target.children[0]);\r\n target.appendChild(this.popupOverlay);\r\n }\r\n else {\r\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(treeWrapper);\r\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.popupOverlay);\r\n }\r\n var resourceTree = createElement('div', { className: cls.RESOURCE_TREE });\r\n treeWrapper.appendChild(resourceTree);\r\n this.treeViewObj = new TreeView({\r\n cssClass: this.parent.cssClass,\r\n enableRtl: this.parent.enableRtl,\r\n fields: {\r\n dataSource: [].slice.call(this.generateTreeData()),\r\n id: 'resourceId',\r\n text: 'resourceName',\r\n child: 'resourceChild'\r\n },\r\n nodeTemplate: this.parent.resourceHeaderTemplate,\r\n nodeClicked: this.resourceClick.bind(this)\r\n });\r\n this.treeViewObj.appendTo(resourceTree);\r\n this.treeViewObj.expandAll();\r\n this.treePopup = new Popup(treeWrapper, {\r\n targetType: 'relative',\r\n actionOnScroll: 'none',\r\n content: this.treeViewObj.element,\r\n enableRtl: this.parent.enableRtl,\r\n hideAnimation: { name: 'SlideLeftOut', duration: 500 },\r\n showAnimation: { name: 'SlideLeftIn', duration: 500 },\r\n viewPortElement: this.parent.element.querySelector('.' + (this.parent.currentView === 'MonthAgenda' ?\r\n cls.WRAPPER_CONTAINER_CLASS : cls.TABLE_CONTAINER_CLASS))\r\n });\r\n this.parent.on(events.documentClick, this.documentClick, this);\r\n };\r\n ResourceBase.prototype.generateTreeData = function (isTimeLine) {\r\n var _this = this;\r\n var treeCollection = [];\r\n var resTreeColl = [];\r\n var groupIndex = 0;\r\n var _loop_1 = function (i, len) {\r\n var treeHandler = function (treeLevel, index, levelId) {\r\n var resource = _this.resourceCollection[index];\r\n var treeArgs;\r\n var resObj;\r\n if (!isTimeLine) {\r\n treeArgs = {\r\n resourceId: levelId,\r\n resourceName: treeLevel.resourceData[resource.textField],\r\n resource: treeLevel.resource,\r\n resourceData: treeLevel.resourceData\r\n };\r\n }\r\n else {\r\n resObj = {\r\n type: 'resourceHeader', resource: treeLevel.resource,\r\n resourceData: treeLevel.resourceData, groupIndex: groupIndex,\r\n groupOrder: treeLevel.groupOrder\r\n };\r\n resTreeColl.push(resObj);\r\n groupIndex++;\r\n }\r\n if (treeLevel.child.length > 0 && !isTimeLine) {\r\n treeArgs.resourceChild = [];\r\n }\r\n var count = 1;\r\n for (var _i = 0, _a = treeLevel.child; _i < _a.length; _i++) {\r\n var tree = _a[_i];\r\n if (!isTimeLine) {\r\n treeArgs.resourceChild.push(treeHandler(tree, index + 1, levelId + '-' + count));\r\n }\r\n else {\r\n treeHandler(tree, index + 1, levelId + '-' + count);\r\n }\r\n count += 1;\r\n }\r\n if (isTimeLine) {\r\n extend(resObj.resourceData, { Count: count - 1 });\r\n }\r\n return treeArgs;\r\n };\r\n if (!isTimeLine) {\r\n treeCollection.push(treeHandler(this_1.resourceTreeLevel[i], 0, (i + 1).toString()));\r\n }\r\n else {\r\n treeHandler(this_1.resourceTreeLevel[i], 0, (i + 1).toString());\r\n }\r\n };\r\n var this_1 = this;\r\n for (var i = 0, len = this.resourceTreeLevel.length; i < len; i++) {\r\n _loop_1(i, len);\r\n }\r\n if (isTimeLine) {\r\n this.lastResourceLevel = resTreeColl;\r\n return resTreeColl;\r\n }\r\n else {\r\n return treeCollection;\r\n }\r\n };\r\n ResourceBase.prototype.renderResourceHeaderText = function () {\r\n var resource = this.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n var headerCollection = [];\r\n var _loop_2 = function (i, len) {\r\n var resourceLevel = this_2.resourceCollection[i];\r\n var resourceText = resourceLevel.dataSource.filter(function (resData) {\r\n return resData[resourceLevel.idField] === resource.groupOrder[i];\r\n });\r\n var resourceName = createElement('div', {\r\n className: cls.RESOURCE_NAME,\r\n innerHTML: resourceText[0][resourceLevel.textField]\r\n });\r\n headerCollection.push(resourceName);\r\n var levelIcon = createElement('div', { className: 'e-icons e-icon-next' });\r\n headerCollection.push(levelIcon);\r\n };\r\n var this_2 = this;\r\n for (var i = 0, len = resource.groupOrder.length; i < len; i++) {\r\n _loop_2(i, len);\r\n }\r\n headerCollection.pop();\r\n var target = (this.parent.currentView === 'MonthAgenda') ? this.parent.activeView.getPanel() : this.parent.element;\r\n var headerWrapper = target.querySelector('.' + cls.RESOURCE_LEVEL_TITLE);\r\n util.removeChildren(headerWrapper);\r\n for (var _i = 0, headerCollection_1 = headerCollection; _i < headerCollection_1.length; _i++) {\r\n var header = headerCollection_1[_i];\r\n headerWrapper.appendChild(header);\r\n }\r\n if (this.lastResourceLevel.length === 1) {\r\n addClass([this.parent.element.querySelector('.' + cls.RESOURCE_MENU)], cls.DISABLE_CLASS);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ResourceBase.prototype.menuClick = function (event) {\r\n if (this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP).classList.contains(cls.POPUP_OPEN)) {\r\n this.treePopup.hide();\r\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\r\n }\r\n else {\r\n var treeNodes = [].slice.call(this.treeViewObj.element.querySelectorAll('.e-list-item:not(.e-has-child)'));\r\n removeClass(treeNodes, 'e-active');\r\n addClass([treeNodes[this.parent.uiStateValues.groupIndex]], 'e-active');\r\n this.treePopup.show();\r\n addClass([this.popupOverlay], cls.ENABLE_CLASS);\r\n }\r\n };\r\n ResourceBase.prototype.selectResourceByIndex = function (groupIndex) {\r\n if (this.lastResourceLevel && groupIndex > -1 && groupIndex < this.lastResourceLevel.length) {\r\n this.triggerEvents(groupIndex);\r\n }\r\n };\r\n ResourceBase.prototype.resourceClick = function (event) {\r\n if (!event.node.classList.contains('e-has-child')) {\r\n this.treePopup.hide();\r\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\r\n var treeNodes = [].slice.call(this.treeViewObj.element.querySelectorAll('.e-list-item:not(.e-has-child)'));\r\n var groupIndex = treeNodes.indexOf(event.node);\r\n this.triggerEvents(groupIndex, event);\r\n event.event.preventDefault();\r\n }\r\n };\r\n ResourceBase.prototype.triggerEvents = function (groupIndex, event) {\r\n var _this = this;\r\n var args = { cancel: false, event: (event) ? event.event : null, groupIndex: groupIndex, requestType: 'resourceChange' };\r\n this.parent.trigger(events.actionBegin, args, function (actionArgs) {\r\n if (!actionArgs.cancel) {\r\n _this.parent.uiStateValues.groupIndex = actionArgs.groupIndex;\r\n _this.parent.renderModule.render(_this.parent.currentView);\r\n args = {\r\n cancel: false, event: (event) ? event.event : null, groupIndex: _this.parent.uiStateValues.groupIndex, requestType: 'resourceChanged'\r\n };\r\n _this.parent.trigger(events.actionComplete, args);\r\n }\r\n });\r\n };\r\n ResourceBase.prototype.documentClick = function (args) {\r\n if (closest(args.event.target, '.' + cls.RESOURCE_TREE_POPUP)) {\r\n return;\r\n }\r\n var treeWrapper = this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP);\r\n if (treeWrapper && treeWrapper.classList.contains(cls.POPUP_OPEN)) {\r\n this.treePopup.hide();\r\n removeClass([this.popupOverlay], cls.ENABLE_CLASS);\r\n }\r\n };\r\n ResourceBase.prototype.bindResourcesData = function (isSetModel) {\r\n var _this = this;\r\n this.parent.showSpinner();\r\n var promises = [];\r\n for (var _i = 0, _a = this.parent.resources; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n var dataModule = new Data(resource.dataSource, resource.query);\r\n promises.push(dataModule.getData(dataModule.generateQuery()));\r\n }\r\n Promise.all(promises).then(function (e) { return _this.dataManagerSuccess(e, isSetModel); })\r\n .catch(function (e) { return _this.parent.crudModule.dataManagerFailure(e); });\r\n };\r\n ResourceBase.prototype.dataManagerSuccess = function (e, isSetModel) {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent.resourceCollection = [];\r\n for (var i = 0, length_1 = e.length; i < length_1; i++) {\r\n var resource = this.parent.resources[i];\r\n var resourceObj = this.getResourceModel(resource, e[i].result);\r\n this.parent.resourceCollection.push(resourceObj);\r\n }\r\n this.refreshLayout(isSetModel);\r\n };\r\n ResourceBase.prototype.getResourceModel = function (resource, resourceData) {\r\n var resourceObj = {\r\n field: resource.field,\r\n title: resource.title,\r\n name: resource.name,\r\n allowMultiple: resource.allowMultiple,\r\n dataSource: resourceData || resource.dataSource,\r\n idField: resource.idField,\r\n textField: resource.textField,\r\n groupIDField: resource.groupIDField,\r\n colorField: resource.colorField,\r\n startHourField: resource.startHourField,\r\n endHourField: resource.endHourField,\r\n workDaysField: resource.workDaysField,\r\n expandedField: resource.expandedField,\r\n cssClassField: resource.cssClassField\r\n };\r\n return resourceObj;\r\n };\r\n ResourceBase.prototype.refreshLayout = function (isSetModel) {\r\n if (isNullOrUndefined(this.parent.uiStateValues.groupIndex) || !(this.parent.enablePersistence)) {\r\n this.parent.uiStateValues.groupIndex = 0;\r\n }\r\n this.parent.renderElements(isSetModel);\r\n };\r\n ResourceBase.prototype.setResourceCollection = function () {\r\n var requiredResources = [];\r\n this.resourceCollection = [];\r\n this.colorIndex = null;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n for (var _i = 0, _a = this.parent.activeViewOptions.group.resources; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n var index_1 = util.findIndexInData(this.parent.resourceCollection, 'name', resource);\r\n if (index_1 >= 0) {\r\n requiredResources.push(this.parent.resourceCollection[index_1]);\r\n }\r\n }\r\n }\r\n else if (this.parent.resourceCollection.length > 0) {\r\n requiredResources = this.parent.resourceCollection;\r\n }\r\n var index = 0;\r\n for (var _b = 0, requiredResources_1 = requiredResources; _b < requiredResources_1.length; _b++) {\r\n var resource = requiredResources_1[_b];\r\n var resources = this.getResourceModel(resource);\r\n if (resource.name === this.parent.eventSettings.resourceColorField) {\r\n this.colorIndex = index;\r\n }\r\n index++;\r\n this.resourceCollection.push(resources);\r\n }\r\n if (isNullOrUndefined(this.colorIndex)) {\r\n this.colorIndex = this.resourceCollection.length - 1;\r\n }\r\n };\r\n ResourceBase.prototype.generateResourceLevels = function (innerDates, isTimeLine) {\r\n var _this = this;\r\n var resources = this.resourceCollection;\r\n var resTreeGroup = [];\r\n var lastColumnDates = [];\r\n var group = function (resources, index, prevResource, prevResourceData, prevOrder) {\r\n var resTree = [];\r\n var resource = resources[0];\r\n if (resource) {\r\n var data = void 0;\r\n if (prevResourceData && _this.parent.activeViewOptions.group.byGroupID) {\r\n var id_1 = prevResourceData[prevResource.idField];\r\n data = resource.dataSource.filter(function (e) {\r\n return e[resource.groupIDField] === id_1;\r\n });\r\n }\r\n else {\r\n data = resource.dataSource;\r\n }\r\n for (var i = 0; i < data.length; i++) {\r\n var groupOrder = [];\r\n if (prevOrder && prevOrder.length > 0) {\r\n groupOrder = groupOrder.concat(prevOrder);\r\n }\r\n groupOrder.push(data[i][resource.idField]);\r\n var items = group(resources.slice(1), index + 1, resource, data[i], groupOrder);\r\n // Here validate child item empty top level resource only\r\n if (index === 0 && items.length === 0 && _this.resourceCollection.length > 1) {\r\n continue;\r\n }\r\n var dateCol = [];\r\n var renderDates = _this.parent.activeView.renderDates;\r\n var resWorkDays = void 0;\r\n if (!_this.parent.activeViewOptions.group.byDate && index + 1 === _this.resourceCollection.length) {\r\n var workDays = data[i][resource.workDaysField];\r\n var resStartHour = data[i][resource.startHourField];\r\n var resEndHour = data[i][resource.endHourField];\r\n if (workDays && workDays.length > 0) {\r\n renderDates = _this.parent.activeView.getRenderDates(workDays);\r\n resWorkDays = workDays;\r\n dateCol = _this.parent.activeView.getDateSlots(renderDates, workDays);\r\n }\r\n else {\r\n resWorkDays = _this.parent.activeViewOptions.workDays;\r\n dateCol = innerDates;\r\n }\r\n var dateSlots = _this.generateCustomHours(dateCol, resStartHour, resEndHour, groupOrder);\r\n lastColumnDates = lastColumnDates.concat(dateSlots);\r\n }\r\n var resCssClass = data[i][resource.cssClassField];\r\n var slotData = {\r\n type: 'resourceHeader', className: ['e-resource-cells'],\r\n resourceLevelIndex: index, groupOrder: groupOrder,\r\n resource: resource, resourceData: data[i],\r\n colSpan: _this.parent.activeViewOptions.group.byDate ? 1 : dateCol.length,\r\n renderDates: renderDates, workDays: resWorkDays, cssClass: resCssClass,\r\n child: items\r\n };\r\n resTree.push(slotData);\r\n }\r\n if (!resTreeGroup[index]) {\r\n resTreeGroup[index] = [];\r\n }\r\n if (resTree.length > 0) {\r\n resTreeGroup[index].push(resTree);\r\n }\r\n return resTree;\r\n }\r\n return [];\r\n };\r\n this.resourceTreeLevel = group(resources, 0);\r\n return (isTimeLine) ? [] : this.generateHeaderLevels(resTreeGroup, lastColumnDates, innerDates);\r\n };\r\n ResourceBase.prototype.generateCustomHours = function (renderDates, startHour, endHour, groupOrder) {\r\n var dateSlots = extend([], renderDates, null, true);\r\n for (var _i = 0, dateSlots_1 = dateSlots; _i < dateSlots_1.length; _i++) {\r\n var dateSlot = dateSlots_1[_i];\r\n if (startHour) {\r\n dateSlot.startHour = this.parent.getStartEndTime(startHour);\r\n }\r\n if (endHour) {\r\n dateSlot.endHour = this.parent.getStartEndTime(endHour);\r\n }\r\n if (groupOrder) {\r\n dateSlot.groupOrder = groupOrder;\r\n }\r\n }\r\n return dateSlots;\r\n };\r\n ResourceBase.prototype.generateHeaderLevels = function (resTreeGroup, lastColumnDates, headerDates) {\r\n var headerLevels = [];\r\n for (var i = resTreeGroup.length - 1; i >= 0; i--) {\r\n var temp = 0;\r\n for (var _i = 0, _a = resTreeGroup[i]; _i < _a.length; _i++) {\r\n var currentLevelChilds = _a[_i];\r\n for (var _b = 0, currentLevelChilds_1 = currentLevelChilds; _b < currentLevelChilds_1.length; _b++) {\r\n var currentLevelChild = currentLevelChilds_1[_b];\r\n if (resTreeGroup[i + 1] && resTreeGroup[i + 1].length > 0) {\r\n var nextLevelChilds = resTreeGroup[i + 1][temp];\r\n if (!nextLevelChilds) {\r\n continue;\r\n }\r\n var colSpan = 0;\r\n for (var _c = 0, nextLevelChilds_1 = nextLevelChilds; _c < nextLevelChilds_1.length; _c++) {\r\n var nextLevelChild = nextLevelChilds_1[_c];\r\n if (!this.parent.activeViewOptions.group.byGroupID || (this.parent.activeViewOptions.group.byGroupID &&\r\n nextLevelChild.resourceData[nextLevelChild.resource.groupIDField] ===\r\n currentLevelChild.resourceData[currentLevelChild.resource.idField])) {\r\n colSpan += nextLevelChild.colSpan;\r\n }\r\n }\r\n currentLevelChild.colSpan = colSpan;\r\n }\r\n currentLevelChild.groupIndex = temp;\r\n temp++;\r\n headerLevels[currentLevelChild.resourceLevelIndex] = headerLevels[currentLevelChild.resourceLevelIndex] || [];\r\n headerLevels[currentLevelChild.resourceLevelIndex].push(currentLevelChild);\r\n }\r\n }\r\n }\r\n this.lastResourceLevel = headerLevels.slice(-1)[0] || [];\r\n if (!this.parent.activeViewOptions.group.byDate) {\r\n var index = 0;\r\n for (var _d = 0, _e = this.lastResourceLevel; _d < _e.length; _d++) {\r\n var lastLevelResource = _e[_d];\r\n for (var i = 0; i < lastLevelResource.colSpan; i++) {\r\n lastColumnDates[index].groupIndex = lastLevelResource.groupIndex;\r\n index++;\r\n }\r\n }\r\n headerLevels.push(lastColumnDates);\r\n return headerLevels;\r\n }\r\n var dateHeaderLevels = [];\r\n var levels = extend([], headerLevels, null, true);\r\n var dateColSpan = 0;\r\n for (var _f = 0, _g = levels[0]; _f < _g.length; _f++) {\r\n var firstRowTd = _g[_f];\r\n dateColSpan += firstRowTd.colSpan;\r\n }\r\n var datesColumn = [];\r\n for (var _h = 0, headerDates_1 = headerDates; _h < headerDates_1.length; _h++) {\r\n var headerDate = headerDates_1[_h];\r\n headerDate.colSpan = dateColSpan;\r\n datesColumn.push(headerDate);\r\n var resGroup = extend([], levels, null, true);\r\n for (var k = 0, length_2 = resGroup.length; k < length_2; k++) {\r\n if (k === resGroup.length - 1) {\r\n for (var _j = 0, _k = resGroup[k]; _j < _k.length; _j++) {\r\n var resTd = _k[_j];\r\n resTd.date = headerDate.date;\r\n resTd.workDays = headerDate.workDays;\r\n resTd.startHour = this.parent.getStartEndTime(resTd.resourceData[resTd.resource.startHourField]) ||\r\n headerDate.startHour;\r\n resTd.endHour = this.parent.getStartEndTime(resTd.resourceData[resTd.resource.endHourField]) ||\r\n headerDate.endHour;\r\n }\r\n }\r\n if (!dateHeaderLevels[k]) {\r\n dateHeaderLevels[k] = [];\r\n }\r\n dateHeaderLevels[k] = dateHeaderLevels[k].concat(resGroup[k]);\r\n }\r\n }\r\n dateHeaderLevels.unshift(datesColumn);\r\n return dateHeaderLevels;\r\n };\r\n ResourceBase.prototype.setResourceValues = function (eventObj, groupIndex) {\r\n var _this = this;\r\n var setValues = function (index, field, value) {\r\n if (_this.resourceCollection[index].allowMultiple && _this.parent.activeViewOptions.group.allowGroupEdit) {\r\n eventObj[field] = [value];\r\n }\r\n else {\r\n eventObj[field] = value;\r\n }\r\n };\r\n if (groupIndex === void 0) {\r\n groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\r\n this.parent.activeCellsData.groupIndex;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !isNullOrUndefined(groupIndex)) {\r\n var groupOrder = this.lastResourceLevel[groupIndex].groupOrder;\r\n for (var index = 0; index < this.resourceCollection.length; index++) {\r\n setValues(index, this.resourceCollection[index].field, groupOrder[index]);\r\n }\r\n }\r\n else if (this.parent.resourceCollection.length > 0) {\r\n for (var index = 0; index < this.resourceCollection.length; index++) {\r\n var data = this.resourceCollection[index].dataSource[0];\r\n if (data) {\r\n setValues(index, this.resourceCollection[index].field, data[this.resourceCollection[index].idField]);\r\n }\r\n }\r\n }\r\n };\r\n ResourceBase.prototype.getResourceColor = function (eventObj, groupOrder) {\r\n var colorFieldIndex = (!isNullOrUndefined(groupOrder) &&\r\n this.colorIndex > groupOrder.length - 1) ? groupOrder.length - 1 : this.colorIndex;\r\n var resource = this.resourceCollection[colorFieldIndex];\r\n if (isNullOrUndefined(groupOrder) && this.parent.activeViewOptions.group.allowGroupEdit && resource.allowMultiple) {\r\n return undefined;\r\n }\r\n var id = isNullOrUndefined(groupOrder) ? eventObj[resource.field] : groupOrder[colorFieldIndex];\r\n var data = this.filterData(resource.dataSource, resource.idField, id);\r\n if (data.length > 0) {\r\n return data[0][resource.colorField];\r\n }\r\n return undefined;\r\n };\r\n ResourceBase.prototype.getCssClass = function (eventObj) {\r\n var resource = this.resourceCollection.slice(-1)[0];\r\n if (this.parent.activeViewOptions.group.allowGroupEdit && resource.allowMultiple) {\r\n return undefined;\r\n }\r\n var data = this.filterData(resource.dataSource, resource.idField, eventObj[resource.field]);\r\n if (data.length > 0) {\r\n return data[0][resource.cssClassField];\r\n }\r\n return undefined;\r\n };\r\n ResourceBase.prototype.getResourceRenderDates = function () {\r\n // eslint-disable-next-line prefer-spread\r\n var resourceDates = [].concat.apply([], this.lastResourceLevel.map(function (e) { return e.renderDates; }));\r\n var removeDuplicateDates = function (dateColl) { return dateColl.filter(function (date, index, dates) {\r\n return dates.map(function (dateObj) { return dateObj.getTime(); }).indexOf(date.getTime()) === index;\r\n }); };\r\n var renderDates = removeDuplicateDates(resourceDates);\r\n renderDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\r\n return renderDates;\r\n };\r\n ResourceBase.prototype.filterData = function (dataSource, field, value) {\r\n return dataSource.filter(function (data) { return data[field] === value; });\r\n };\r\n ResourceBase.prototype.getResourceData = function (eventObj, index, groupEditIndex) {\r\n if (this.parent.activeViewOptions.group.allowGroupEdit) {\r\n var resourceObj = {};\r\n for (var _i = 0, groupEditIndex_1 = groupEditIndex; _i < groupEditIndex_1.length; _i++) {\r\n var groupIndex = groupEditIndex_1[_i];\r\n var resourceLevel = this.lastResourceLevel[groupIndex].groupOrder;\r\n for (var level = 0, length_3 = resourceLevel.length; level < length_3; level++) {\r\n var fieldName = this.resourceCollection[level].field;\r\n if (isNullOrUndefined(resourceObj[fieldName])) {\r\n resourceObj[fieldName] = [];\r\n }\r\n resourceObj[fieldName].push(resourceLevel[level]);\r\n }\r\n }\r\n eventObj = extend(eventObj, resourceObj);\r\n }\r\n else {\r\n for (var level = 0, length_4 = this.resourceCollection.length; level < length_4; level++) {\r\n if (this.lastResourceLevel[index]) {\r\n eventObj[this.resourceCollection[level].field] = this.lastResourceLevel[index].groupOrder[level];\r\n }\r\n }\r\n }\r\n };\r\n ResourceBase.prototype.addResource = function (resources, name, index) {\r\n var resourceCollection = (resources instanceof Array) ? resources : [resources];\r\n var _loop_3 = function (resource) {\r\n if (resource.name === name) {\r\n resourceCollection.forEach(function (addObj, i) {\r\n return new DataManager({ json: resource.dataSource }).insert(addObj, null, null, index + i);\r\n });\r\n return \"break\";\r\n }\r\n };\r\n for (var _i = 0, _a = this.parent.resourceCollection; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n var state_1 = _loop_3(resource);\r\n if (state_1 === \"break\")\r\n break;\r\n }\r\n this.refreshLayout(true);\r\n };\r\n ResourceBase.prototype.removeResource = function (resourceId, name) {\r\n var resourceCollection = (resourceId instanceof Array) ? resourceId : [resourceId];\r\n var _loop_4 = function (resource) {\r\n if (resource.name === name) {\r\n resourceCollection.forEach(function (removeObj) {\r\n return new DataManager({ json: resource.dataSource }).remove(resource.idField, removeObj);\r\n });\r\n return \"break\";\r\n }\r\n };\r\n for (var _i = 0, _a = this.parent.resourceCollection; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n var state_2 = _loop_4(resource);\r\n if (state_2 === \"break\")\r\n break;\r\n }\r\n this.refreshLayout(true);\r\n };\r\n ResourceBase.prototype.getIndexFromResourceId = function (id, name, resourceData, event, parentField) {\r\n name = name || this.parent.resourceCollection.slice(-1)[0].name;\r\n if (isNullOrUndefined(resourceData)) {\r\n resourceData = this.resourceCollection.filter(function (e) { return e.name === name; })[0];\r\n if (isNullOrUndefined(resourceData)) {\r\n return null;\r\n }\r\n }\r\n var resource = resourceData.dataSource.filter(function (e) {\r\n if (event && e[resourceData.idField] === id) {\r\n if (e[resourceData.groupIDField] === event[parentField]) {\r\n return e[resourceData.idField] === id;\r\n }\r\n return null;\r\n }\r\n else {\r\n return e[resourceData.idField] === id;\r\n }\r\n })[0];\r\n return (this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resource));\r\n };\r\n ResourceBase.prototype.resourceExpand = function (id, name, hide) {\r\n var resource = this.parent.resourceCollection.filter(function (e) {\r\n if (e.name === name) {\r\n return e;\r\n }\r\n return null;\r\n })[0];\r\n var index = 0;\r\n var resourceData = resource.dataSource.filter(function (e) { return e[resource.idField] === id; })[0];\r\n if (!this.parent.activeViewOptions.group.byGroupID) {\r\n index = this.getIndexFromResourceId(id, name, resource);\r\n }\r\n else {\r\n index = this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resourceData);\r\n }\r\n var target = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS + ' ' + (\"[data-group-index=\\\"\" + index + \"\\\"]\") +\r\n ' ' + '.' + cls.RESOURCE_TREE_ICON_CLASS);\r\n if (target) {\r\n if (target.classList.contains(cls.RESOURCE_EXPAND_CLASS) && !hide) {\r\n target.click();\r\n }\r\n else if (target.classList.contains(cls.RESOURCE_COLLAPSE_CLASS) && hide) {\r\n target.click();\r\n }\r\n }\r\n };\r\n ResourceBase.prototype.resourceScroll = function (id, name) {\r\n if (this.parent.isAdaptive || ['Agenda', 'MonthAgenda'].indexOf(this.parent.currentView) > -1) {\r\n return;\r\n }\r\n var levelName = name || this.parent.resourceCollection.slice(-1)[0].name;\r\n var levelIndex = this.parent.resourceCollection.length - 1;\r\n var resource = this.parent.resourceCollection.filter(function (e, index) {\r\n if (e.name === levelName) {\r\n levelIndex = index;\r\n return e;\r\n }\r\n return null;\r\n })[0];\r\n var scrollElement = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n var index = 0;\r\n if (this.parent.activeView.isTimelineView()) {\r\n if (!this.parent.activeViewOptions.group.byGroupID) {\r\n index = this.getIndexFromResourceId(id, levelName, resource);\r\n }\r\n else {\r\n var resourceData = resource.dataSource.filter(function (e) {\r\n return e[resource.idField] === id;\r\n })[0];\r\n index = this.lastResourceLevel.map(function (e) { return e.resourceData; }).indexOf(resourceData);\r\n }\r\n if (this.parent.virtualScrollModule) {\r\n var virtual = this.parent.element.querySelector('.' + cls.VIRTUAL_TRACK_CLASS);\r\n var averageRowHeight = Math.round(virtual.offsetHeight / this.expandedResources.length);\r\n if (this.parent.rowAutoHeight) {\r\n scrollElement.scrollTop = 0;\r\n this.parent.virtualScrollModule.virtualScrolling();\r\n }\r\n scrollElement.scrollTop = (index * averageRowHeight) - (((this.parent.virtualScrollModule.bufferCount - 1) * averageRowHeight));\r\n this.parent.virtualScrollModule.virtualScrolling();\r\n if (this.parent.rowAutoHeight) {\r\n var td = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\r\n if (td && !td.parentElement.classList.contains(cls.HIDDEN_CLASS)) {\r\n scrollElement.scrollTop =\r\n (scrollElement.scrollTop < td.offsetTop) ? td.offsetTop : scrollElement.scrollTop + td.offsetTop;\r\n }\r\n }\r\n else {\r\n scrollElement.scrollTop = (index * averageRowHeight);\r\n }\r\n }\r\n else {\r\n var td = this.parent.element.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-group-index=\\\"\" + index + \"\\\"]\");\r\n if (td && !td.parentElement.classList.contains(cls.HIDDEN_CLASS)) {\r\n scrollElement.scrollTop = td.offsetTop;\r\n }\r\n }\r\n }\r\n else {\r\n if (!this.parent.activeViewOptions.group.byGroupID) {\r\n index = this.getIndexFromResourceId(id, levelName, resource);\r\n }\r\n else {\r\n if (levelName === this.parent.resourceCollection.slice(-1)[0].name) {\r\n index = this.lastResourceLevel.map(function (e) { return e.resourceData[resource.idField]; }).indexOf(id);\r\n }\r\n else {\r\n index = resource.dataSource.map(function (e) { return e[resource.idField]; }).indexOf(id);\r\n }\r\n }\r\n var offsetTarget = this.parent.element.querySelector(\".\" + cls.HEADER_ROW_CLASS + \":nth-child(\" + (levelIndex + 1) + \")\");\r\n var offset = [].slice.call(offsetTarget.children).map(function (node) { return node.offsetLeft; });\r\n scrollElement.scrollLeft = offset[index];\r\n }\r\n };\r\n ResourceBase.prototype.destroy = function () {\r\n this.parent.off(events.documentClick, this.documentClick);\r\n if (this.treeViewObj) {\r\n this.treeViewObj.destroy();\r\n this.treeViewObj = null;\r\n }\r\n if (this.treePopup) {\r\n this.treePopup.destroy();\r\n this.treePopup = null;\r\n remove(this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP));\r\n remove(this.parent.element.querySelector('.' + cls.RESOURCE_TREE_POPUP_OVERLAY));\r\n }\r\n var resToolBarEle = this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER);\r\n if (resToolBarEle) {\r\n remove(resToolBarEle);\r\n }\r\n };\r\n return ResourceBase;\r\n}());\r\nexport { ResourceBase };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Component, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';\r\nimport { EventHandler, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';\r\nimport { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, Complex } from '@syncfusion/ej2-base';\r\nimport { getElement, removeClass, addClass, classList, remove } from '@syncfusion/ej2-base';\r\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\r\nimport { HeaderRenderer } from '../renderer/header-renderer';\r\nimport { Scroll } from '../actions/scroll';\r\nimport { ScheduleTouch } from '../actions/touch';\r\nimport { KeyboardInteraction } from '../actions/keyboard';\r\nimport { Data } from '../actions/data';\r\nimport { EventBase } from '../event-renderer/event-base';\r\nimport { InlineEdit } from '../event-renderer/inline-edit';\r\nimport { QuickPopups } from '../popups/quick-popups';\r\nimport { EventTooltip } from '../popups/event-tooltip';\r\nimport { EventWindow } from '../popups/event-window';\r\nimport { Render } from '../renderer/renderer';\r\nimport { WorkHours } from '../models/work-hours';\r\nimport { TimeScale } from '../models/time-scale';\r\nimport { QuickInfoTemplates } from '../models/quick-info-templates';\r\nimport { HeaderRows } from '../models/header-rows';\r\nimport { Crud } from '../actions/crud';\r\nimport { WorkCellInteraction } from '../actions/work-cells';\r\nimport { EventSettings } from '../models/event-settings';\r\nimport { Group } from '../models/group';\r\nimport { Resources } from '../models/resources';\r\nimport { Gregorian, Islamic } from '../../common/calendar-util';\r\nimport { ResourceBase } from '../base/resource';\r\nimport { Timezone, timezoneData } from '../timezone/timezone';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Represents the Schedule component that displays a list of events scheduled against specific date and timings,\r\n * thus helping us to plan and manage it properly.\r\n * ```html\r\n *
      \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar Schedule = /** @class */ (function (_super) {\r\n __extends(Schedule, _super);\r\n /**\r\n * Constructor for creating the Schedule widget\r\n *\r\n * @param {ScheduleModel} options Accepts the schedule model properties to initiate the rendering\r\n * @param {string | HTMLElement} element Accepts the DOM element reference\r\n */\r\n function Schedule(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Core method that initializes the control rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.render = function () {\r\n var addClasses = [];\r\n var removeClasses = [];\r\n addClasses.push(cls.ROOT);\r\n if (this.enableRtl) {\r\n addClasses.push(cls.RTL);\r\n }\r\n else {\r\n removeClasses.push(cls.RTL);\r\n }\r\n if (this.isAdaptive) {\r\n addClasses.push(cls.DEVICE_CLASS);\r\n }\r\n else {\r\n removeClasses.push(cls.DEVICE_CLASS);\r\n }\r\n if (this.allowMultiDrag) {\r\n addClasses.push(cls.MULTI_DRAG);\r\n }\r\n else {\r\n removeClasses.push(cls.MULTI_DRAG);\r\n }\r\n if (this.cssClass) {\r\n var cssClass = this.cssClass.split(' ');\r\n for (var _i = 0, cssClass_1 = cssClass; _i < cssClass_1.length; _i++) {\r\n var cls_1 = cssClass_1[_i];\r\n addClasses.push(cls_1);\r\n }\r\n }\r\n classList(this.element, addClasses, removeClasses);\r\n this.validateDate();\r\n createSpinner({ target: this.element });\r\n this.scrollModule = new Scroll(this);\r\n this.scrollModule.setWidth();\r\n this.scrollModule.setHeight();\r\n this.renderModule = new Render(this);\r\n this.eventBase = new EventBase(this);\r\n this.workCellAction = new WorkCellInteraction(this);\r\n if (this.allowKeyboardInteraction) {\r\n this.keyboardInteractionModule = new KeyboardInteraction(this);\r\n }\r\n this.inlineModule = new InlineEdit(this);\r\n this.initializeDataModule();\r\n this.renderTableContainer();\r\n this.activeViewOptions = this.getActiveViewOptions();\r\n this.initializeResources();\r\n this.wireEvents();\r\n };\r\n Schedule.prototype.renderTableContainer = function () {\r\n if (!this.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS)) {\r\n this.element.appendChild(this.createElement('div', { className: cls.TABLE_CONTAINER_CLASS }));\r\n }\r\n };\r\n /**\r\n * Method to render react templates\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.renderTemplates = function () {\r\n if (this.isReact) {\r\n this.renderReactTemplates();\r\n }\r\n };\r\n /**\r\n * Method to reset react templates\r\n *\r\n * @param {string[]} templates Accepts the template ID\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.resetTemplates = function (templates) {\r\n if (this.isAngular || this.isReact) {\r\n this.clearTemplate(templates);\r\n }\r\n };\r\n Schedule.prototype.initializeResources = function (isSetModel) {\r\n if (isSetModel === void 0) { isSetModel = false; }\r\n if (this.resources.length > 0) {\r\n this.resourceBase = new ResourceBase(this);\r\n this.resourceBase.bindResourcesData(isSetModel);\r\n }\r\n else {\r\n this.resourceBase = null;\r\n this.resourceCollection = [];\r\n this.renderElements(isSetModel);\r\n }\r\n };\r\n /**\r\n * Method to render the layout elements\r\n *\r\n * @param {boolean} isLayoutOnly Accepts the boolean value to render layout or not\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.renderElements = function (isLayoutOnly) {\r\n if (isLayoutOnly) {\r\n this.initializeView(this.currentView);\r\n this.eventWindow.refresh();\r\n return;\r\n }\r\n this.destroyHeaderModule();\r\n if (this.showHeaderBar) {\r\n this.headerModule = new HeaderRenderer(this);\r\n }\r\n this.renderTableContainer();\r\n if (Browser.isDevice || Browser.isTouch) {\r\n this.scheduleTouchModule = new ScheduleTouch(this);\r\n }\r\n this.initializeView(this.currentView);\r\n this.destroyPopups();\r\n if (!this.isPrinting) {\r\n this.initializePopups();\r\n }\r\n };\r\n Schedule.prototype.validateDate = function (selectedDate) {\r\n if (selectedDate === void 0) { selectedDate = this.selectedDate; }\r\n // persist the selected date value\r\n var date = selectedDate instanceof Date ? new Date(selectedDate.getTime()) : new Date(selectedDate);\r\n var minDate = this.minDate instanceof Date ? new Date(this.minDate.getTime()) : new Date(this.minDate);\r\n var maxDate = this.maxDate instanceof Date ? new Date(this.maxDate.getTime()) : new Date(this.maxDate);\r\n if (minDate <= maxDate) {\r\n if (date < minDate) {\r\n date = minDate;\r\n }\r\n if (date > maxDate) {\r\n date = maxDate;\r\n }\r\n this.setProperties({ selectedDate: new Date('' + date), minDate: new Date('' + minDate), maxDate: new Date('' + maxDate) }, true);\r\n if (this.eventWindow) {\r\n this.eventWindow.updateMinMaxDateToEditor();\r\n }\r\n }\r\n else {\r\n throw Error('minDate should be equal or less than maxDate');\r\n }\r\n };\r\n Schedule.prototype.getViewIndex = function (viewName) {\r\n for (var item = 0; item < this.viewCollections.length; item++) {\r\n var checkIndex = this.viewCollections[item].option;\r\n if (checkIndex === viewName) {\r\n return item;\r\n }\r\n }\r\n return -1;\r\n };\r\n Schedule.prototype.setViewOptions = function (isModuleLoad) {\r\n if (isModuleLoad === void 0) { isModuleLoad = false; }\r\n this.viewOptions = {};\r\n this.viewCollections = [];\r\n var viewName;\r\n var selectedView;\r\n var prevIndex = this.viewIndex;\r\n var count = 0;\r\n this.viewIndex = -1;\r\n for (var _i = 0, _a = this.views; _i < _a.length; _i++) {\r\n var view = _a[_i];\r\n var isOptions = (typeof view === 'string') ? false : true;\r\n if (typeof view === 'string') {\r\n viewName = view;\r\n if (this.currentView === viewName) {\r\n selectedView = viewName;\r\n this.viewIndex = count;\r\n }\r\n }\r\n else {\r\n viewName = view.option;\r\n if (view.isSelected) {\r\n selectedView = viewName;\r\n this.viewIndex = count;\r\n }\r\n }\r\n var obj = extend({ option: viewName }, isOptions ? view : {});\r\n var fieldViewName = viewName.charAt(0).toLowerCase() + viewName.slice(1);\r\n obj.cellHeaderTemplateName = obj.cellHeaderTemplate ? obj.option : '';\r\n obj.dateHeaderTemplateName = obj.dateHeaderTemplate ? obj.option : '';\r\n obj.cellTemplateName = obj.cellTemplate ? obj.option : '';\r\n obj.dayHeaderTemplateName = obj.dayHeaderTemplate ? obj.option : '';\r\n obj.monthHeaderTemplateName = obj.monthHeaderTemplate ? obj.option : '';\r\n obj.resourceHeaderTemplateName = obj.resourceHeaderTemplate ? obj.option : '';\r\n obj.headerIndentTemplateName = obj.headerIndentTemplate ? obj.option : '';\r\n obj.eventTemplateName = obj.eventTemplate ? obj.option : '';\r\n if (!isNullOrUndefined(obj.firstDayOfWeek) && obj.firstDayOfWeek === 0) {\r\n delete obj.firstDayOfWeek;\r\n }\r\n if (!isNullOrUndefined(obj.interval) && obj.interval === 1) {\r\n delete obj.interval;\r\n }\r\n this.viewCollections.push(obj);\r\n if (isNullOrUndefined(this.viewOptions[fieldViewName])) {\r\n this.viewOptions[fieldViewName] = [obj];\r\n }\r\n else {\r\n this.viewOptions[fieldViewName].push(obj);\r\n }\r\n count++;\r\n }\r\n if (!isModuleLoad && selectedView) {\r\n this.setProperties({ currentView: selectedView }, true);\r\n }\r\n if (this.viewIndex === -1) {\r\n var currentIndex = this.getViewIndex(this.currentView);\r\n this.viewIndex = ((typeof this.views[0] !== 'string') && (!isNullOrUndefined(prevIndex) && prevIndex !== -1)) ? prevIndex :\r\n (currentIndex === -1) ? 0 : currentIndex;\r\n }\r\n };\r\n Schedule.prototype.getActiveViewOptions = function () {\r\n var timeScale = {\r\n enable: this.timeScale.enable,\r\n interval: this.timeScale.interval,\r\n slotCount: this.timeScale.slotCount,\r\n majorSlotTemplate: this.timeScale.majorSlotTemplate,\r\n minorSlotTemplate: this.timeScale.minorSlotTemplate\r\n };\r\n var isYearView = this.viewCollections[this.viewIndex].option.indexOf('Year') > -1;\r\n var group = {\r\n byDate: isYearView ? false : this.group.byDate,\r\n byGroupID: this.group.byGroupID,\r\n allowGroupEdit: this.group.allowGroupEdit,\r\n resources: this.group.resources,\r\n headerTooltipTemplate: this.group.headerTooltipTemplate,\r\n enableCompactView: this.group.enableCompactView\r\n };\r\n var workDays = this.viewCollections[this.viewIndex].workDays ? [] : this.workDays;\r\n var scheduleOptions = {\r\n dateFormat: this.dateFormat,\r\n endHour: this.endHour,\r\n isSelected: false,\r\n option: null,\r\n readonly: this.readonly,\r\n startHour: this.startHour,\r\n allowVirtualScrolling: false,\r\n cellHeaderTemplate: this.cellHeaderTemplate,\r\n dayHeaderTemplate: this.dayHeaderTemplate,\r\n monthHeaderTemplate: this.monthHeaderTemplate,\r\n cellTemplate: this.cellTemplate,\r\n eventTemplate: this.eventSettings.template,\r\n dateHeaderTemplate: this.dateHeaderTemplate,\r\n resourceHeaderTemplate: this.resourceHeaderTemplate,\r\n headerIndentTemplate: this.headerIndentTemplate,\r\n firstMonthOfYear: this.firstMonthOfYear,\r\n firstDayOfWeek: this.firstDayOfWeek,\r\n workDays: workDays,\r\n monthsCount: this.monthsCount,\r\n showWeekend: this.showWeekend,\r\n showWeekNumber: this.showWeekNumber,\r\n displayName: null,\r\n interval: 1,\r\n timeScale: timeScale,\r\n timeFormat: this.internalTimeFormat,\r\n group: group,\r\n headerRows: this.headerRows,\r\n orientation: 'Horizontal'\r\n };\r\n var viewOptions = this.viewCollections[this.viewIndex];\r\n var viewsData = extend(scheduleOptions, viewOptions, undefined, true);\r\n if (this.firstDayOfWeek !== 0 && viewOptions.firstDayOfWeek && this.firstDayOfWeek !== viewOptions.firstDayOfWeek) {\r\n viewsData.firstDayOfWeek = this.firstDayOfWeek;\r\n }\r\n return viewsData;\r\n };\r\n Schedule.prototype.initializeDataModule = function () {\r\n this.eventFields = {\r\n id: this.eventSettings.fields.id,\r\n isBlock: this.eventSettings.fields.isBlock,\r\n subject: this.eventSettings.fields.subject.name,\r\n startTime: this.eventSettings.fields.startTime.name,\r\n endTime: this.eventSettings.fields.endTime.name,\r\n startTimezone: this.eventSettings.fields.startTimezone.name,\r\n endTimezone: this.eventSettings.fields.endTimezone.name,\r\n location: this.eventSettings.fields.location.name,\r\n description: this.eventSettings.fields.description.name,\r\n isAllDay: this.eventSettings.fields.isAllDay.name,\r\n recurrenceID: this.eventSettings.fields.recurrenceID.name,\r\n recurrenceRule: this.eventSettings.fields.recurrenceRule.name,\r\n recurrenceException: this.eventSettings.fields.recurrenceException.name,\r\n isReadonly: this.eventSettings.fields.isReadonly,\r\n followingID: this.eventSettings.fields.followingID\r\n };\r\n this.setEditorTitles();\r\n this.dataModule = new Data(this.eventSettings.dataSource, this.eventSettings.query);\r\n this.crudModule = new Crud(this);\r\n };\r\n Schedule.prototype.setEditorTitles = function () {\r\n this.editorTitles = {\r\n subject: this.eventSettings.fields.subject.title || this.localeObj.getConstant('title'),\r\n startTime: this.eventSettings.fields.startTime.title || this.localeObj.getConstant('start'),\r\n endTime: this.eventSettings.fields.endTime.title || this.localeObj.getConstant('end'),\r\n isAllDay: this.eventSettings.fields.isAllDay.title || this.localeObj.getConstant('allDay'),\r\n startTimezone: this.eventSettings.fields.startTimezone.title || this.localeObj.getConstant('startTimezone'),\r\n endTimezone: this.eventSettings.fields.endTimezone.title || this.localeObj.getConstant('endTimezone'),\r\n location: this.eventSettings.fields.location.title || this.localeObj.getConstant('location'),\r\n description: this.eventSettings.fields.description.title || this.localeObj.getConstant('description'),\r\n recurrenceRule: this.eventSettings.fields.recurrenceRule.title || this.localeObj.getConstant('repeat')\r\n };\r\n };\r\n Schedule.prototype.initializeView = function (viewName) {\r\n this.showSpinner();\r\n this.activeViewOptions = this.getActiveViewOptions();\r\n if (this.resourceBase) {\r\n this.resourceBase.setResourceCollection();\r\n }\r\n this.initializeTemplates();\r\n this.renderModule.render(viewName);\r\n };\r\n Schedule.prototype.initializeTemplates = function () {\r\n this.cellHeaderTemplateFn = this.templateParser(this.activeViewOptions.cellHeaderTemplate);\r\n this.dayHeaderTemplateFn = this.templateParser(this.activeViewOptions.dayHeaderTemplate);\r\n this.monthHeaderTemplateFn = this.templateParser(this.activeViewOptions.monthHeaderTemplate);\r\n this.cellTemplateFn = this.templateParser(this.activeViewOptions.cellTemplate);\r\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\r\n this.majorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.majorSlotTemplate);\r\n this.minorSlotTemplateFn = this.templateParser(this.activeViewOptions.timeScale.minorSlotTemplate);\r\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\r\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\r\n this.headerIndentTemplateFn = this.templateParser(this.activeViewOptions.headerIndentTemplate);\r\n this.headerTooltipTemplateFn = this.templateParser(this.activeViewOptions.group.headerTooltipTemplate);\r\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\r\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\r\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\r\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\r\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\r\n };\r\n Schedule.prototype.initializePopups = function () {\r\n this.eventWindow = new EventWindow(this);\r\n this.quickPopup = new QuickPopups(this);\r\n };\r\n /**\r\n * Method to get day names\r\n *\r\n * @param {string} type Accepts the day name\r\n * @returns {string[]} Returns the collection of day names\r\n * @private\r\n */\r\n Schedule.prototype.getDayNames = function (type) {\r\n var culShortNames = [];\r\n var cldrObj;\r\n var nameSpace = '';\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n nameSpace = 'days.stand-alone.';\r\n cldrObj = (getValue(nameSpace + type, getDefaultDateObject(this.getCalendarMode())));\r\n }\r\n else {\r\n nameSpace = 'main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.days.format.' + type;\r\n cldrObj = (getValue(nameSpace, cldrData));\r\n }\r\n for (var _i = 0, _a = Object.keys(cldrObj); _i < _a.length; _i++) {\r\n var obj = _a[_i];\r\n culShortNames.push(getValue(obj, cldrObj));\r\n }\r\n return culShortNames;\r\n };\r\n Schedule.prototype.setCldrTimeFormat = function () {\r\n if (!isNullOrUndefined(this.timeFormat)) {\r\n this.internalTimeFormat = this.timeFormat;\r\n return;\r\n }\r\n if (this.locale === 'en' || this.locale === 'en-US') {\r\n this.internalTimeFormat = (getValue('timeFormats.short', getDefaultDateObject(this.getCalendarMode())));\r\n }\r\n else {\r\n this.internalTimeFormat = (getValue('main.' + '' + this.locale + '.dates.calendars.' + this.getCalendarMode() + '.timeFormats.short', cldrData));\r\n }\r\n };\r\n /**\r\n * Method to get calendar mode\r\n *\r\n * @returns {string} Returns the calendar mode\r\n * @private\r\n */\r\n Schedule.prototype.getCalendarMode = function () {\r\n return this.calendarMode.toLowerCase();\r\n };\r\n /**\r\n * Method to get time in string\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {string} Returns the time in string\r\n * @private\r\n */\r\n Schedule.prototype.getTimeString = function (date) {\r\n var time = this.globalize.formatDate(date, {\r\n format: this.activeViewOptions.timeFormat,\r\n type: 'time', calendar: this.getCalendarMode()\r\n });\r\n return time.toLocaleUpperCase();\r\n };\r\n /**\r\n * Method to get date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {Date} Returns the date object\r\n * @private\r\n */\r\n Schedule.prototype.getDateTime = function (date) {\r\n return date instanceof Date ? new Date(date.getTime()) : new Date(date);\r\n };\r\n Schedule.prototype.setCalendarMode = function () {\r\n if (this.calendarMode === 'Islamic') {\r\n this.calendarUtil = new Islamic();\r\n }\r\n else {\r\n this.calendarUtil = new Gregorian();\r\n }\r\n };\r\n /**\r\n * Method to change the current view\r\n *\r\n * @param {View} view Accepts the view name\r\n * @param {Event} event Accepts the event object\r\n * @param {boolean} muteOnChange Accepts the value to enable or disable mute on change\r\n * @param {number} index Accepts the index value\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.changeView = function (view, event, muteOnChange, index) {\r\n var _this = this;\r\n if (isNullOrUndefined(index)) {\r\n index = this.getViewIndex(view);\r\n }\r\n if (!muteOnChange && index === this.viewIndex && this.currentView === view || index < 0) {\r\n return;\r\n }\r\n this.viewIndex = index;\r\n var args = { requestType: 'viewNavigate', cancel: false, event: event };\r\n this.trigger(events.actionBegin, args, function (actionArgs) {\r\n if (!actionArgs.cancel) {\r\n var navArgs = {\r\n action: 'view', cancel: false, currentDate: _this.selectedDate, previousView: _this.currentView, currentView: view, viewIndex: _this.viewIndex\r\n };\r\n _this.trigger(events.navigating, navArgs, function (navigationArgs) {\r\n if (!navigationArgs.cancel) {\r\n _this.viewIndex = navigationArgs.viewIndex;\r\n _this.setProperties({ currentView: view }, true);\r\n if (_this.headerModule) {\r\n _this.headerModule.updateActiveView();\r\n _this.headerModule.setCalendarDate(_this.selectedDate);\r\n _this.headerModule.setCalendarView();\r\n }\r\n _this.initializeView(_this.currentView);\r\n _this.animateLayout();\r\n args = { requestType: 'viewNavigate', cancel: false, event: event };\r\n _this.trigger(events.actionComplete, args);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Method to change the view date\r\n *\r\n * @param {Date} selectedDate Accepts the selected date\r\n * @param {Event} event Accepts the event object\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.changeDate = function (selectedDate, event) {\r\n var _this = this;\r\n var args = { requestType: 'dateNavigate', cancel: false, event: event };\r\n this.trigger(events.actionBegin, args, function (actionArgs) {\r\n if (!actionArgs.cancel) {\r\n var navArgs = {\r\n action: 'date', cancel: false, previousDate: _this.selectedDate, currentDate: selectedDate\r\n };\r\n _this.trigger(events.navigating, navArgs, function (navigationArgs) {\r\n if (!navigationArgs.cancel) {\r\n _this.uiStateValues.isInitial = _this.activeView.isTimelineView() ? true : _this.uiStateValues.isInitial;\r\n _this.validateDate(navigationArgs.currentDate);\r\n if (_this.headerModule) {\r\n _this.headerModule.setCalendarDate(navigationArgs.currentDate);\r\n }\r\n _this.initializeView(_this.currentView);\r\n _this.animateLayout();\r\n args = { requestType: 'dateNavigate', cancel: false, event: event };\r\n _this.trigger(events.actionComplete, args);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n /**\r\n * Method to validate min and max date\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {boolean} Returns the boolean result to validate the min and max date\r\n * @private\r\n */\r\n Schedule.prototype.isMinMaxDate = function (date) {\r\n if (date === void 0) { date = this.selectedDate; }\r\n return ((date.getTime() >= this.minDate.getTime()) && (date.getTime() <= this.maxDate.getTime()));\r\n };\r\n /**\r\n * Method to validate the selected date\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {boolean} Returns the boolean value for given date is selected date or not\r\n * @private\r\n */\r\n Schedule.prototype.isSelectedDate = function (date) {\r\n return date.setHours(0, 0, 0, 0) === new Date('' + this.selectedDate).setHours(0, 0, 0, 0);\r\n };\r\n /**\r\n * Method to get the current time\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {Date} Returns the date object after performing the timezone conversion\r\n * @private\r\n */\r\n Schedule.prototype.getCurrentTime = function (date) {\r\n if (date === void 0) { date = new Date(); }\r\n if (this.timezone) {\r\n return this.tzModule.convert(date, this.tzModule.getLocalTimezoneName(), this.timezone);\r\n }\r\n return date;\r\n };\r\n /** Method to get navigate view\r\n *\r\n * @returns {View} Return the navigate view name\r\n * @private\r\n */\r\n Schedule.prototype.getNavigateView = function () {\r\n if (this.activeView.isTimelineView()) {\r\n return this.currentView === 'TimelineMonth' || this.currentView === 'TimelineYear' ? 'TimelineDay' : 'Agenda';\r\n }\r\n return 'Day';\r\n };\r\n Schedule.prototype.animateLayout = function () {\r\n if (!this.activeView.element) {\r\n return;\r\n }\r\n new Animation({ duration: 600, name: 'FadeIn', timingFunction: 'easeIn' }).animate(this.activeView.element);\r\n };\r\n /**\r\n * To provide the array of modules needed for control rendering\r\n *\r\n * @returns {ModuleDeclaration[]} Returns the declared modules\r\n * @private\r\n */\r\n Schedule.prototype.requiredModules = function () {\r\n var modules = [];\r\n this.setViewOptions(true);\r\n for (var _i = 0, _a = Object.keys(this.viewOptions); _i < _a.length; _i++) {\r\n var view = _a[_i];\r\n view = (view === 'timelineDay' || view === 'timelineWeek' || view === 'timelineWorkWeek') ? 'timelineViews' : view;\r\n modules.push({ member: view, args: [this] });\r\n }\r\n if (this.allowDragAndDrop) {\r\n modules.push({ member: 'dragAndDrop', args: [this] });\r\n }\r\n if (this.allowResizing) {\r\n modules.push({ member: 'resize', args: [this] });\r\n }\r\n modules.push({ member: 'excelExport', args: [this] });\r\n modules.push({ member: 'iCalendarExport', args: [this] });\r\n modules.push({ member: 'iCalendarImport', args: [this] });\r\n modules.push({ member: 'print', args: [this] });\r\n return modules;\r\n };\r\n /**\r\n * Initializes the values of private members.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.preRender = function () {\r\n this.isAdaptive = Browser.isDevice || util.isIPadDevice();\r\n this.globalize = new Internationalization(this.locale);\r\n this.tzModule = new Timezone();\r\n if (this && isNullOrUndefined(this.uiStateValues) || !(this.enablePersistence)) {\r\n this.uiStateValues = {\r\n expand: false, isInitial: true, left: 0, top: 0, isGroupAdaptive: false,\r\n isIgnoreOccurrence: false, groupIndex: 0, action: false, isBlock: false\r\n };\r\n }\r\n this.activeCellsData = { startTime: this.getCurrentTime(), endTime: this.getCurrentTime(), isAllDay: false };\r\n this.activeEventData = { event: undefined, element: undefined };\r\n this.getDefaultLocale();\r\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\r\n this.setCldrTimeFormat();\r\n this.setCalendarMode();\r\n this.eventsData = [];\r\n this.eventsProcessed = [];\r\n this.blockData = [];\r\n this.blockProcessed = [];\r\n this.resourceCollection = [];\r\n this.currentAction = null;\r\n this.selectedElements = [];\r\n this.setViewOptions();\r\n };\r\n Schedule.prototype.getDefaultLocale = function () {\r\n this.defaultLocale = {\r\n day: 'Day',\r\n week: 'Week',\r\n workWeek: 'Work Week',\r\n month: 'Month',\r\n year: 'Year',\r\n agenda: 'Agenda',\r\n weekAgenda: 'Week Agenda',\r\n workWeekAgenda: 'Work Week Agenda',\r\n monthAgenda: 'Month Agenda',\r\n today: 'Today',\r\n noEvents: 'No events',\r\n emptyContainer: 'There are no events scheduled on this day.',\r\n allDay: 'All day',\r\n start: 'Start',\r\n end: 'End',\r\n more: 'more',\r\n close: 'Close',\r\n cancel: 'Cancel',\r\n noTitle: '(No Title)',\r\n delete: 'Delete',\r\n deleteEvent: 'Delete Event',\r\n deleteMultipleEvent: 'Delete Multiple Events',\r\n selectedItems: 'Items selected',\r\n deleteSeries: 'Entire Series',\r\n edit: 'Edit',\r\n editSeries: 'Entire Series',\r\n editEvent: 'Edit Event',\r\n createEvent: 'Create',\r\n subject: 'Subject',\r\n addTitle: 'Add title',\r\n moreDetails: 'More Details',\r\n save: 'Save',\r\n editContent: 'How would you like to change the appointment in the series?',\r\n deleteContent: 'Are you sure you want to delete this event?',\r\n deleteMultipleContent: 'Are you sure you want to delete the selected events?',\r\n newEvent: 'New Event',\r\n title: 'Title',\r\n location: 'Location',\r\n description: 'Description',\r\n timezone: 'Timezone',\r\n startTimezone: 'Start Timezone',\r\n endTimezone: 'End Timezone',\r\n repeat: 'Repeat',\r\n saveButton: 'Save',\r\n cancelButton: 'Cancel',\r\n deleteButton: 'Delete',\r\n recurrence: 'Recurrence',\r\n wrongPattern: 'The recurrence pattern is not valid.',\r\n seriesChangeAlert: 'Do you want to cancel the changes made to specific ' +\r\n 'instances of this series and match it to the whole series again?',\r\n createError: 'The duration of the event must be shorter than how frequently it occurs. ' +\r\n 'Shorten the duration, or change the recurrence pattern in the recurrence event editor.',\r\n sameDayAlert: 'Two occurrences of the same event cannot occur on the same day.',\r\n occurenceAlert: 'Cannot reschedule an occurrence of the recurring appointment if it skips over ' +\r\n 'a later occurrence of the same appointment.',\r\n editRecurrence: 'Edit Recurrence',\r\n repeats: 'Repeats',\r\n alert: 'Alert',\r\n startEndError: 'The selected end date occurs before the start date.',\r\n invalidDateError: 'The entered date value is invalid.',\r\n blockAlert: 'Events cannot be scheduled within the blocked time range.',\r\n ok: 'Ok',\r\n yes: 'Yes',\r\n no: 'No',\r\n occurrence: 'Occurrence',\r\n series: 'Series',\r\n previous: 'Previous',\r\n next: 'Next',\r\n timelineDay: 'Timeline Day',\r\n timelineWeek: 'Timeline Week',\r\n timelineWorkWeek: 'Timeline Work Week',\r\n timelineMonth: 'Timeline Month',\r\n timelineYear: 'Timeline Year',\r\n editFollowingEvent: 'Following Events',\r\n deleteTitle: 'Delete Event',\r\n editTitle: 'Edit Event',\r\n beginFrom: 'Begin From',\r\n endAt: 'Ends At',\r\n expandAllDaySection: 'Expand-all-day-section',\r\n collapseAllDaySection: 'Collapse-all-day-section',\r\n searchTimezone: 'Search Timezone',\r\n noRecords: 'No records found'\r\n };\r\n };\r\n Schedule.prototype.wireEvents = function () {\r\n EventHandler.add(window, 'resize', this.onScheduleResize, this);\r\n EventHandler.add(window, 'orientationchange', this.onScheduleResize, this);\r\n EventHandler.add(document, Browser.touchStartEvent, this.onDocumentClick, this);\r\n };\r\n /**\r\n * Method to remove selected class\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.removeSelectedClass = function () {\r\n var selectedCells = this.getSelectedElements();\r\n for (var _i = 0, selectedCells_1 = selectedCells; _i < selectedCells_1.length; _i++) {\r\n var cell = selectedCells_1[_i];\r\n cell.setAttribute('aria-selected', 'false');\r\n cell.removeAttribute('tabindex');\r\n }\r\n removeClass(selectedCells, cls.SELECTED_CELL_CLASS);\r\n };\r\n /**\r\n * Method to add selected class\r\n *\r\n * @param {HTMLTableCellElement[]} cells Accepts the collection of elements\r\n * @param {HTMLTableCellElement} focusCell Accepts the focus element\r\n * @param {boolean} isPreventScroll Accepts the boolean value to prevent scroll\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.addSelectedClass = function (cells, focusCell, isPreventScroll) {\r\n for (var _i = 0, cells_1 = cells; _i < cells_1.length; _i++) {\r\n var cell = cells_1[_i];\r\n cell.setAttribute('aria-selected', 'true');\r\n }\r\n addClass(cells, cls.SELECTED_CELL_CLASS);\r\n if (focusCell) {\r\n focusCell.setAttribute('tabindex', '0');\r\n focusCell.focus({ preventScroll: isPreventScroll || false });\r\n }\r\n };\r\n /**\r\n * Method to select cell\r\n *\r\n * @param {HTMLElement | HTMLTableCellElement} element Accepts the select element\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.selectCell = function (element) {\r\n this.removeSelectedClass();\r\n this.addSelectedClass([element], element);\r\n };\r\n /**\r\n * Method to get all day row element\r\n *\r\n * @returns {Element} Returns the all day row element\r\n * @private\r\n */\r\n Schedule.prototype.getAllDayRow = function () {\r\n return this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\r\n };\r\n /**\r\n * Method to get content table element\r\n *\r\n * @returns {HTMLElement} Returns the content table element\r\n * @private\r\n */\r\n Schedule.prototype.getContentTable = function () {\r\n return this.activeView.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\r\n };\r\n /**\r\n * Method to get all content table rows\r\n *\r\n * @returns {HTMLElement[]} Returns the content table rows\r\n * @private\r\n */\r\n Schedule.prototype.getTableRows = function () {\r\n return [].slice.call(this.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr:not(.' + cls.HIDDEN_CLASS + ')'));\r\n };\r\n /**\r\n * Method to get work cell elements\r\n *\r\n * @returns {Element[]} Returns the all work cell elements\r\n * @private\r\n */\r\n Schedule.prototype.getWorkCellElements = function () {\r\n return [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n };\r\n /**\r\n * Method to get the index from date collection\r\n *\r\n * @param {Date[]} collection Accepts the collections of date\r\n * @param {Date} date Accepts the date object\r\n * @returns {number} Returns the index compared date with date collections\r\n * @private\r\n */\r\n Schedule.prototype.getIndexOfDate = function (collection, date) {\r\n return collection.map(Number).indexOf(+date);\r\n };\r\n /**\r\n * Method to find all day cell\r\n *\r\n * @param {Element} td Accepts the DOM Element\r\n * @returns {boolean} Returns the boolean value\r\n * @private\r\n */\r\n Schedule.prototype.isAllDayCell = function (td) {\r\n if (['Month', 'TimelineMonth', 'TimelineYear', 'MonthAgenda'].indexOf(this.currentView) > -1 ||\r\n td.classList.contains(cls.ALLDAY_CELLS_CLASS) ||\r\n td.classList.contains(cls.HEADER_CELLS_CLASS) || !this.activeViewOptions.timeScale.enable) {\r\n return true;\r\n }\r\n if (this.activeView.isTimelineView() && this.activeViewOptions.headerRows.length > 0 &&\r\n this.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * Method to get date from element\r\n *\r\n * @param {Element} td Accepts the DOM element\r\n * @returns {Date} Returns the date object\r\n * @private\r\n */\r\n Schedule.prototype.getDateFromElement = function (td) {\r\n var dateString;\r\n if (!isNullOrUndefined(td)) {\r\n dateString = td.getAttribute('data-date');\r\n }\r\n if (!isNullOrUndefined(dateString)) {\r\n var dateInMS = parseInt(dateString, 10);\r\n var date = new Date(dateInMS);\r\n return date;\r\n }\r\n return undefined;\r\n };\r\n /**\r\n * Method to get target element from given selector\r\n *\r\n * @param {string} selector Accepts the element selector\r\n * @param {number} left Accepts the pageX value\r\n * @param {number} top Accepts the pageY value\r\n * @returns {Element[]} Returns the collection of elements based on the given selector\r\n * @private\r\n */\r\n Schedule.prototype.getTargetElement = function (selector, left, top) {\r\n var element = document.elementFromPoint(left, top);\r\n var targetElement;\r\n if (element) {\r\n targetElement = element.closest(selector);\r\n }\r\n return (targetElement) ? [targetElement] : null;\r\n };\r\n /**\r\n * Method to process cell header template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getCellHeaderTemplate = function () {\r\n return this.cellHeaderTemplateFn;\r\n };\r\n /**\r\n * Method to process cell header template in year view.\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getDayHeaderTemplate = function () {\r\n return this.dayHeaderTemplateFn;\r\n };\r\n /**\r\n * Method to process cell header template in year view.\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getMonthHeaderTemplate = function () {\r\n return this.monthHeaderTemplateFn;\r\n };\r\n /**\r\n * Method to process cell template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getCellTemplate = function () {\r\n return this.cellTemplateFn;\r\n };\r\n /**\r\n * Method to process date header template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getDateHeaderTemplate = function () {\r\n return this.dateHeaderTemplateFn;\r\n };\r\n /**\r\n * Method to process major slot template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getMajorSlotTemplate = function () {\r\n return this.majorSlotTemplateFn;\r\n };\r\n /**\r\n * Method to process minor slot template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getMinorSlotTemplate = function () {\r\n return this.minorSlotTemplateFn;\r\n };\r\n /**\r\n * Method to process appointment template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getAppointmentTemplate = function () {\r\n return this.appointmentTemplateFn;\r\n };\r\n /**\r\n * Method to process appointment tooltip template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getEventTooltipTemplate = function () {\r\n return this.eventTooltipTemplateFn;\r\n };\r\n /**\r\n * Method to process header tooltip template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getHeaderTooltipTemplate = function () {\r\n return this.headerTooltipTemplateFn;\r\n };\r\n /**\r\n * Method to process editor template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getEditorTemplate = function () {\r\n return this.editorTemplateFn;\r\n };\r\n /**\r\n * Method to process quick info header template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getQuickInfoTemplatesHeader = function () {\r\n return this.quickInfoTemplatesHeaderFn;\r\n };\r\n /**\r\n * Method to process quick info content template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getQuickInfoTemplatesContent = function () {\r\n return this.quickInfoTemplatesContentFn;\r\n };\r\n /**\r\n * Method to process quick info footer template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getQuickInfoTemplatesFooter = function () {\r\n return this.quickInfoTemplatesFooterFn;\r\n };\r\n /**\r\n * Method to process resource header template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getResourceHeaderTemplate = function () {\r\n return this.resourceHeaderTemplateFn;\r\n };\r\n /**\r\n * Method to process indent template\r\n *\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.getHeaderIndentTemplate = function () {\r\n return this.headerIndentTemplateFn;\r\n };\r\n /**\r\n * Method to get dynamic CSS properties\r\n *\r\n * @returns {ScrollCss} Returns the CSS properties dynamically\r\n * @private\r\n */\r\n Schedule.prototype.getCssProperties = function () {\r\n var cssProps = {\r\n border: this.enableRtl ? 'borderLeftWidth' : 'borderRightWidth',\r\n padding: this.enableRtl ? 'paddingLeft' : 'paddingRight',\r\n rtlBorder: this.enableRtl ? 'borderRightWidth' : 'borderLeftWidth',\r\n rtlPadding: this.enableRtl ? 'paddingRight' : 'paddingLeft'\r\n };\r\n return cssProps;\r\n };\r\n /**\r\n * Method to remove new event element in adaptive mode\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.removeNewEventElement = function () {\r\n var eventClone = this.element.querySelector('.' + cls.NEW_EVENT_CLASS);\r\n if (!isNullOrUndefined(eventClone)) {\r\n remove(eventClone);\r\n }\r\n };\r\n /**\r\n * Method to get start end time from string\r\n *\r\n * @param {string} startEndTime Accepts the start end time string value\r\n * @returns {Date} Returns the date object\r\n * @private\r\n */\r\n Schedule.prototype.getStartEndTime = function (startEndTime) {\r\n if (!isNullOrUndefined(startEndTime) && startEndTime !== '') {\r\n var startEndDate = util.resetTime(this.getCurrentTime());\r\n var timeString = startEndTime.split(':');\r\n if (timeString.length === 2) {\r\n startEndDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0);\r\n }\r\n return startEndDate;\r\n }\r\n return null;\r\n };\r\n Schedule.prototype.onDocumentClick = function (args) {\r\n this.notify(events.documentClick, { event: args });\r\n };\r\n Schedule.prototype.onScheduleResize = function () {\r\n if (isNullOrUndefined(this.activeView) || ((this.isAdaptive || util.isMobile()) && document.activeElement\r\n && document.activeElement.classList.contains(cls.SUBJECT_CLASS))) {\r\n return;\r\n }\r\n if (this.activeViewOptions.timeScale.enable && this.activeView) {\r\n this.activeView.highlightCurrentTime();\r\n }\r\n if (this.quickPopup) {\r\n this.quickPopup.onClosePopup();\r\n }\r\n if (this.currentView === 'Month' || ((this.currentView !== 'Agenda' && this.currentView !== 'MonthAgenda')\r\n && !this.activeViewOptions.timeScale.enable) || this.activeView.isTimelineView()) {\r\n this.activeView.resetColWidth();\r\n this.notify(events.scrollUiUpdate, { cssProperties: this.getCssProperties(), isPreventScrollUpdate: true });\r\n this.refreshEvents(false);\r\n }\r\n else {\r\n this.notify(events.contentReady, {});\r\n }\r\n };\r\n /**\r\n * Method to process the templates\r\n *\r\n * @param {string} template Accepts the template in string\r\n * @returns {CallbackFunction} Returns the callback function\r\n * @private\r\n */\r\n Schedule.prototype.templateParser = function (template) {\r\n if (template) {\r\n try {\r\n if (document.querySelectorAll(template).length) {\r\n return compile(document.querySelector(template).innerHTML.trim());\r\n }\r\n }\r\n catch (error) {\r\n return compile(template);\r\n }\r\n }\r\n return undefined;\r\n };\r\n /**\r\n * Method to generate the announcement string\r\n *\r\n * @param {Object} event Accepts the event object\r\n * @param {string} subject Accepts the subject text\r\n * @returns {string} Returns the announcement string\r\n * @private\r\n */\r\n Schedule.prototype.getAnnouncementString = function (event, subject) {\r\n var resourceName;\r\n if (this.quickPopup && this.activeViewOptions.group.resources.length > 0) {\r\n var constantText = '\"s event - ';\r\n resourceName = this.quickPopup.getResourceText({ event: event }, 'event') + constantText;\r\n }\r\n var recordSubject = (subject || (event[this.eventFields.subject] || this.eventSettings.fields.subject.default));\r\n var skeleton = 'full';\r\n var startDateText = this.globalize.formatDate(event[this.eventFields.startTime], {\r\n type: 'dateTime', skeleton: skeleton, calendar: this.getCalendarMode()\r\n });\r\n var endDateText = this.globalize.formatDate(event[this.eventFields.endTime], {\r\n type: 'dateTime', skeleton: skeleton, calendar: this.getCalendarMode()\r\n });\r\n var announcementString = recordSubject + ' ' + this.localeObj.getConstant('beginFrom') + ' '\r\n + startDateText + ' ' + this.localeObj.getConstant('endAt') + ' ' + endDateText;\r\n if (resourceName) {\r\n announcementString = resourceName + ' ' + announcementString;\r\n }\r\n return announcementString;\r\n };\r\n /**\r\n * Method to process the element boundary validation\r\n *\r\n * @param {number} pageY Accepts the pageY value\r\n * @param {number} pageX Accepts the pageX value\r\n * @returns {ResizeEdges} Returns the boundary validation object\r\n * @private\r\n */\r\n Schedule.prototype.boundaryValidation = function (pageY, pageX) {\r\n var autoScrollDistance = 30;\r\n var scrollEdges = { left: false, right: false, top: false, bottom: false };\r\n var viewBoundaries = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).getBoundingClientRect();\r\n if ((pageY < viewBoundaries.top + autoScrollDistance + window.pageYOffset) &&\r\n (pageY > viewBoundaries.top + window.pageYOffset)) {\r\n scrollEdges.top = true;\r\n }\r\n if ((pageY > (viewBoundaries.bottom - autoScrollDistance) + window.pageYOffset) &&\r\n (pageY < viewBoundaries.bottom + window.pageYOffset)) {\r\n scrollEdges.bottom = true;\r\n }\r\n if ((pageX < viewBoundaries.left + autoScrollDistance + window.pageXOffset) &&\r\n (pageX > viewBoundaries.left + window.pageXOffset)) {\r\n scrollEdges.left = true;\r\n }\r\n if ((pageX > (viewBoundaries.right - autoScrollDistance) + window.pageXOffset) &&\r\n (pageX < viewBoundaries.right + window.pageXOffset)) {\r\n scrollEdges.right = true;\r\n }\r\n return scrollEdges;\r\n };\r\n /**\r\n * Method to get the week number.\r\n *\r\n * @param {Date[]} dates Accepts the date collections\r\n * @returns {number} Returns the week number\r\n * @private\r\n */\r\n Schedule.prototype.getWeekNumberContent = function (dates) {\r\n var weekNumber;\r\n if (this.weekRule === 'FirstDay') {\r\n var weekNumberDate = util.getWeekLastDate(dates.slice(-1)[0], this.firstDayOfWeek);\r\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekNumberDate));\r\n }\r\n else if (this.weekRule === 'FirstFourDayWeek') {\r\n var weekFirstDate = util.getWeekFirstDate(dates.slice(-1)[0], this.firstDayOfWeek);\r\n var weekLastDate = util.getWeekLastDate(dates.slice(-1)[0], this.firstDayOfWeek);\r\n var weekMidDate = util.getWeekMiddleDate(weekFirstDate, weekLastDate);\r\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekMidDate));\r\n }\r\n else if (this.weekRule === 'FirstFullWeek') {\r\n var weekFirstDate = util.getWeekFirstDate(dates.slice(-1)[0], this.firstDayOfWeek);\r\n weekNumber = this.globalize.formatNumber(util.getWeekNumber(weekFirstDate));\r\n }\r\n return weekNumber;\r\n };\r\n /**\r\n * Method to render the header indent template.\r\n *\r\n * @param {TdData} data Accepts the td data\r\n * @param {Element} td Accepts the td element\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.renderHeaderIndentTemplate = function (data, td) {\r\n if (this.activeViewOptions.headerIndentTemplate) {\r\n var scheduleId = this.element.id + '_';\r\n var viewName = this.activeViewOptions.headerIndentTemplateName;\r\n var templateId = scheduleId + viewName + 'headerIndentTemplate';\r\n var indentTemplate = [].slice.call(this.getHeaderIndentTemplate()(data, this, 'headerIndentTemplate', templateId, false));\r\n append(indentTemplate, td);\r\n }\r\n };\r\n Schedule.prototype.unWireEvents = function () {\r\n EventHandler.remove(window, 'resize', this.onScheduleResize);\r\n EventHandler.remove(window, 'orientationchange', this.onScheduleResize);\r\n EventHandler.remove(document, Browser.touchStartEvent, this.onDocumentClick);\r\n };\r\n /**\r\n * Core method to return the component name.\r\n *\r\n * @returns {string} Returns the module name\r\n * @private\r\n */\r\n Schedule.prototype.getModuleName = function () {\r\n return 'schedule';\r\n };\r\n /**\r\n * Returns the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} Returns the persistance data\r\n * @private\r\n */\r\n Schedule.prototype.getPersistData = function () {\r\n return this.addOnPersist(['currentView', 'selectedDate', 'scrollTop', 'scrollLeft']);\r\n };\r\n /**\r\n * Called internally, if any of the property value changed.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n Schedule.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n if (this.isReact && isNullOrUndefined(this.activeView)) {\r\n return;\r\n }\r\n var state = {\r\n isRefresh: false, isResource: false, isDate: false, isView: false, isLayout: false, isDataManager: false\r\n };\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'views':\r\n this.setViewOptions();\r\n if (this.headerModule) {\r\n this.headerModule.updateItems();\r\n }\r\n state.isView = true;\r\n break;\r\n case 'currentView':\r\n state.isView = true;\r\n break;\r\n case 'minDate':\r\n case 'maxDate':\r\n case 'selectedDate':\r\n state.isDate = true;\r\n break;\r\n case 'dateFormat':\r\n this.activeViewOptions = this.getActiveViewOptions();\r\n if (this.headerModule) {\r\n this.headerModule.updateDateRange(this.activeView.getDateRangeText());\r\n }\r\n break;\r\n case 'showHeaderBar':\r\n this.destroyHeaderModule();\r\n if (newProp.showHeaderBar) {\r\n this.headerModule = new HeaderRenderer(this);\r\n this.headerModule.updateDateRange(this.activeView.getDateRangeText());\r\n }\r\n this.notify(events.scrollUiUpdate, { cssProperties: this.getCssProperties() });\r\n if (this.activeView.isTimelineView()) {\r\n this.refreshEvents(false);\r\n }\r\n break;\r\n case 'showWeekend':\r\n case 'workDays':\r\n case 'startHour':\r\n case 'endHour':\r\n case 'workHours':\r\n case 'readonly':\r\n case 'headerRows':\r\n case 'showWeekNumber':\r\n case 'rowAutoHeight':\r\n state.isLayout = true;\r\n break;\r\n case 'locale':\r\n case 'calendarMode':\r\n this.globalize = new Internationalization(this.locale);\r\n this.localeObj = new L10n(this.getModuleName(), this.defaultLocale, this.locale);\r\n this.setCldrTimeFormat();\r\n this.setCalendarMode();\r\n state.isRefresh = true;\r\n break;\r\n case 'firstDayOfWeek':\r\n this.activeViewOptions.firstDayOfWeek = newProp.firstDayOfWeek;\r\n if (this.eventWindow) {\r\n this.eventWindow.refreshRecurrenceEditor();\r\n }\r\n state.isLayout = true;\r\n break;\r\n case 'showTimeIndicator':\r\n if (this.activeViewOptions.timeScale.enable && this.activeView) {\r\n this.activeView.highlightCurrentTime();\r\n }\r\n break;\r\n case 'cellHeaderTemplate':\r\n this.activeViewOptions.cellHeaderTemplate = newProp.cellHeaderTemplate;\r\n this.cellHeaderTemplateFn = this.templateParser(this.activeViewOptions.cellHeaderTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'cellTemplate':\r\n this.activeViewOptions.cellTemplate = newProp.cellTemplate;\r\n this.cellTemplateFn = this.templateParser(this.activeViewOptions.cellTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'dateHeaderTemplate':\r\n this.activeViewOptions.dateHeaderTemplate = newProp.dateHeaderTemplate;\r\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'dayHeaderTemplate':\r\n this.activeViewOptions.dayHeaderTemplate = newProp.dayHeaderTemplate;\r\n this.dayHeaderTemplateFn = this.templateParser(this.activeViewOptions.dayHeaderTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'monthHeaderTemplate':\r\n this.activeViewOptions.monthHeaderTemplate = newProp.monthHeaderTemplate;\r\n this.monthHeaderTemplateFn = this.templateParser(this.activeViewOptions.monthHeaderTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'resourceHeaderTemplate':\r\n this.activeViewOptions.resourceHeaderTemplate = newProp.resourceHeaderTemplate;\r\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\r\n state.isLayout = true;\r\n break;\r\n case 'timezone':\r\n this.eventBase.timezonePropertyChange(oldProp.timezone);\r\n this.headerModule.setCalendarTimezone();\r\n break;\r\n case 'enableRtl':\r\n this.setRtlClass();\r\n state.isRefresh = true;\r\n break;\r\n default:\r\n this.extendedPropertyChange(prop, newProp, oldProp, state);\r\n break;\r\n }\r\n }\r\n this.propertyChangeAction(state);\r\n };\r\n Schedule.prototype.propertyChangeAction = function (state) {\r\n if (state.isRefresh) {\r\n this.refresh();\r\n }\r\n else if (state.isResource) {\r\n this.initializeResources(true);\r\n }\r\n else if (state.isView) {\r\n this.changeView(this.currentView, null, true);\r\n }\r\n else if (state.isDate) {\r\n this.changeDate(this.selectedDate);\r\n }\r\n else if (state.isLayout) {\r\n this.initializeView(this.currentView);\r\n }\r\n else if (state.isDataManager && this.crudModule) {\r\n if (this.dragAndDropModule) {\r\n this.dragAndDropModule.actionObj.action = '';\r\n removeClass([this.element], cls.EVENT_ACTION_CLASS);\r\n }\r\n this.crudModule.refreshDataManager();\r\n }\r\n };\r\n Schedule.prototype.allDayRowScrollUpdate = function () {\r\n var dateHeader = this.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\r\n var allDayRow = this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\r\n if (this.height === 'auto' || !this.enableAllDayScroll) {\r\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\r\n if (dateHeader.classList.contains(cls.ALLDAY_APPOINTMENT_SCROLL)) {\r\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\r\n }\r\n if (this.uiStateValues.expand) {\r\n var allDayCells = [].slice.call(this.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\r\n allDayCells[0].style.height = (allDayRow.style.height) ? allDayRow.style.height : allDayCells[1].style.height;\r\n }\r\n }\r\n else {\r\n if (dateHeader.classList.contains(cls.ALLDAY_APPOINTMENT_AUTO)) {\r\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\r\n }\r\n this.eventBase.allDayExpandScroll(dateHeader, true);\r\n }\r\n if (!this.uiStateValues.expand) {\r\n allDayRow.style.height = '';\r\n }\r\n };\r\n Schedule.prototype.extendedPropertyChange = function (prop, newProp, oldProp, state) {\r\n switch (prop) {\r\n case 'width':\r\n case 'height':\r\n case 'enableAllDayScroll':\r\n if (['Day', 'Week', 'WorkWeek'].indexOf(this.currentView) > -1) {\r\n this.allDayRowScrollUpdate();\r\n }\r\n this.notify(events.uiUpdate, { module: 'scroll', properties: { width: newProp.width, height: newProp.height } });\r\n break;\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.element], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([this.element], newProp.cssClass.split(' '));\r\n }\r\n break;\r\n case 'hideEmptyAgendaDays':\r\n case 'agendaDaysCount':\r\n this.activeViewOptions = this.getActiveViewOptions();\r\n state.isView = true;\r\n break;\r\n case 'eventSettings':\r\n this.onEventSettingsPropertyChanged(newProp.eventSettings, oldProp.eventSettings, state);\r\n break;\r\n case 'allowKeyboardInteraction':\r\n if (this.keyboardInteractionModule) {\r\n this.keyboardInteractionModule.destroy();\r\n this.keyboardInteractionModule = null;\r\n }\r\n if (newProp.allowKeyboardInteraction) {\r\n this.keyboardInteractionModule = new KeyboardInteraction(this);\r\n }\r\n break;\r\n case 'timezoneDataSource':\r\n if (this.eventWindow) {\r\n this.eventWindow.refresh();\r\n }\r\n break;\r\n case 'editorTemplate':\r\n if (!isNullOrUndefined(this.editorTemplate)) {\r\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\r\n }\r\n if (this.eventWindow) {\r\n this.eventWindow.setDialogContent();\r\n }\r\n break;\r\n case 'quickInfoTemplates':\r\n if (this.quickInfoTemplates.header) {\r\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\r\n }\r\n if (this.quickInfoTemplates.content) {\r\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\r\n }\r\n if (this.quickInfoTemplates.footer) {\r\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\r\n }\r\n break;\r\n case 'group':\r\n this.onGroupSettingsPropertyChanged(newProp.group, oldProp.group, state);\r\n break;\r\n case 'resources':\r\n state.isResource = true;\r\n break;\r\n case 'timeScale':\r\n this.activeViewOptions.timeScale.interval = newProp.timeScale.interval || this.activeViewOptions.timeScale.interval;\r\n this.activeViewOptions.timeScale.slotCount = newProp.timeScale.slotCount || this.activeViewOptions.timeScale.slotCount;\r\n if (this.eventWindow) {\r\n this.eventWindow.refreshDateTimePicker();\r\n }\r\n state.isLayout = true;\r\n break;\r\n case 'allowDragAndDrop':\r\n case 'allowResizing':\r\n case 'eventDragArea':\r\n this.refreshEvents(false);\r\n break;\r\n case 'weekRule':\r\n state.isLayout = true;\r\n break;\r\n case 'firstMonthOfYear':\r\n this.activeViewOptions.firstMonthOfYear = newProp.firstMonthOfYear;\r\n this.viewIndex = this.activeView.viewIndex;\r\n state.isLayout = true;\r\n break;\r\n case 'monthsCount':\r\n this.activeViewOptions.monthsCount = newProp.monthsCount;\r\n this.viewIndex = this.activeView.viewIndex;\r\n state.isLayout = true;\r\n break;\r\n case 'timeFormat':\r\n this.internalTimeFormat = newProp.timeFormat || this.activeViewOptions.timeFormat;\r\n if (this.eventWindow) {\r\n this.eventWindow.refreshDateTimePicker();\r\n }\r\n state.isLayout = true;\r\n break;\r\n case 'enableAdaptiveUI':\r\n if (this.showHeaderBar && this.headerModule) {\r\n this.destroyHeaderModule();\r\n this.headerModule = new HeaderRenderer(this);\r\n this.headerModule.updateDateRange(this.activeView.getDateRangeText());\r\n }\r\n state.isLayout = true;\r\n break;\r\n case 'headerIndentTemplate':\r\n this.activeViewOptions.headerIndentTemplate = newProp.headerIndentTemplate;\r\n this.headerIndentTemplateFn = this.templateParser(this.activeViewOptions.headerIndentTemplate);\r\n state.isLayout = true;\r\n break;\r\n }\r\n };\r\n Schedule.prototype.setRtlClass = function () {\r\n if (this.enableRtl) {\r\n addClass([this.element], 'e-rtl');\r\n }\r\n else {\r\n removeClass([this.element], 'e-rtl');\r\n }\r\n };\r\n Schedule.prototype.onGroupSettingsPropertyChanged = function (newProp, oldProp, state) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n if (prop === 'headerTooltipTemplate') {\r\n this.headerTooltipTemplateFn = this.templateParser(newProp[prop]);\r\n }\r\n else {\r\n state.isLayout = true;\r\n if (this.eventWindow) {\r\n this.eventWindow.refresh();\r\n }\r\n }\r\n }\r\n };\r\n Schedule.prototype.onEventSettingsPropertyChanged = function (newProp, oldProp, state) {\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'dataSource':\r\n case 'query':\r\n case 'fields':\r\n this.initializeDataModule();\r\n state.isDataManager = true;\r\n break;\r\n case 'template':\r\n this.activeViewOptions.eventTemplate = newProp.template;\r\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\r\n state.isDataManager = true;\r\n break;\r\n case 'enableTooltip':\r\n if (this.eventTooltip) {\r\n this.eventTooltip.destroy();\r\n this.eventTooltip = null;\r\n }\r\n if (newProp.enableTooltip) {\r\n this.eventTooltip = new EventTooltip(this);\r\n }\r\n break;\r\n case 'tooltipTemplate':\r\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\r\n break;\r\n case 'resourceColorField':\r\n if (this.resourceBase) {\r\n this.resourceBase.setResourceCollection();\r\n }\r\n state.isDataManager = true;\r\n break;\r\n case 'editFollowingEvents':\r\n if (this.quickPopup) {\r\n this.quickPopup.refreshQuickDialog();\r\n }\r\n break;\r\n case 'allowAdding':\r\n case 'allowEditing':\r\n case 'allowDeleting':\r\n if (this.showHeaderBar && this.headerModule) {\r\n this.headerModule.updateAddIcon();\r\n }\r\n if (this.eventWindow) {\r\n this.eventWindow.refresh();\r\n }\r\n break;\r\n case 'spannedEventPlacement':\r\n case 'enableMaxHeight':\r\n case 'enableIndicator':\r\n this.refreshEvents(false);\r\n break;\r\n case 'ignoreWhitespace':\r\n state.isLayout = true;\r\n break;\r\n }\r\n }\r\n };\r\n Schedule.prototype.destroyHeaderModule = function () {\r\n if (this.headerModule) {\r\n this.headerModule.destroy();\r\n this.headerModule = null;\r\n }\r\n };\r\n Schedule.prototype.destroyPopups = function () {\r\n if (this.quickPopup) {\r\n this.quickPopup.destroy();\r\n this.quickPopup = null;\r\n }\r\n if (this.eventWindow) {\r\n this.eventWindow.destroy();\r\n this.eventWindow = null;\r\n }\r\n };\r\n /**\r\n * Allows to show the spinner on schedule at the required scenarios.\r\n *\r\n * @function showSpinner\r\n * @returns {void}\r\n */\r\n Schedule.prototype.showSpinner = function () {\r\n showSpinner(this.element);\r\n };\r\n /**\r\n * When the spinner is shown manually using `showSpinner` method, it can be hidden using this `hideSpinner` method.\r\n *\r\n * @function hideSpinner\r\n * @returns {void}\r\n */\r\n Schedule.prototype.hideSpinner = function () {\r\n hideSpinner(this.element);\r\n };\r\n /**\r\n * Sets different working hours on the required working days by accepting the required start and end time as well as the date collection\r\n * as its parameters.\r\n *\r\n * @function setWorkHours\r\n * @param {Date} dates Collection of dates on which the given start and end hour range needs to be applied.\r\n * @param {string} start Defines the work start hour.\r\n * @param {string} end Defines the work end hour.\r\n * @param {number} groupIndex Defines the resource index from last level.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.setWorkHours = function (dates, start, end, groupIndex) {\r\n var cells = [];\r\n cells = this.getWorkHourCells(dates, start, end, groupIndex);\r\n addClass(cells, cls.WORK_HOURS_CLASS);\r\n };\r\n /**\r\n * Removes or resets different working hours on the required working days by accepting the required start and end time as well as the\r\n * date collection as its parameters.\r\n * if no parameters has been passed to this function, it will remove all the work hours.\r\n *\r\n * @param {Date} dates Collection of dates on which the given start and end hour range need to be applied.\r\n * @param {string} start Defines the work start hour.\r\n * @param {string} end Defines the work end hour.\r\n * @param {number} groupIndex Defines the resource index from last level.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.resetWorkHours = function (dates, start, end, groupIndex) {\r\n if (dates === void 0) { dates = this.activeView.renderDates; }\r\n if (dates && start && end) {\r\n var cells = this.getWorkHourCells(dates, start, end, groupIndex);\r\n removeClass(cells, cls.WORK_HOURS_CLASS);\r\n }\r\n else {\r\n var workHourCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_HOURS_CLASS));\r\n removeClass(workHourCells, cls.WORK_HOURS_CLASS);\r\n }\r\n };\r\n Schedule.prototype.getWorkHourCells = function (dates, start, end, groupIndex) {\r\n if (['Agenda', 'MonthAgenda', 'Month', 'TimelineMonth'].indexOf(this.currentView) > -1) {\r\n return [];\r\n }\r\n var startHour = this.getStartEndTime(start);\r\n var endHour = this.getStartEndTime(end);\r\n var tableEle = this.getContentTable();\r\n if (isNullOrUndefined(startHour) || isNullOrUndefined(endHour) || !tableEle) {\r\n return [];\r\n }\r\n startHour.setMilliseconds(0);\r\n endHour.setMilliseconds(0);\r\n var viewStartHour = this.activeView.getStartHour();\r\n if (startHour < viewStartHour) {\r\n startHour = viewStartHour;\r\n }\r\n var viewEndHour = this.activeView.getEndHour();\r\n if (endHour > viewEndHour) {\r\n endHour = viewEndHour;\r\n }\r\n var msMajorInterval = this.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\r\n var msInterval = msMajorInterval / this.activeViewOptions.timeScale.slotCount;\r\n var startIndex = Math.round((startHour.getTime() - viewStartHour.getTime()) / msInterval);\r\n var endIndex = Math.ceil((endHour.getTime() - viewStartHour.getTime()) / msInterval);\r\n var tempStartIndex = startIndex;\r\n var tempEndIndex = endIndex;\r\n var cells = [];\r\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\r\n var date = dates_1[_i];\r\n date = this.getDateTime(date);\r\n util.resetTime(date);\r\n var renderDates = this.activeView.renderDates;\r\n if (!isNullOrUndefined(groupIndex) && this.resourceBase && !this.activeView.isTimelineView()) {\r\n renderDates = this.resourceBase.lastResourceLevel[groupIndex].renderDates;\r\n }\r\n var colIndex = this.getIndexOfDate(renderDates, date);\r\n if (colIndex >= 0) {\r\n if (this.activeView.isTimelineView()) {\r\n var slotsPerDay = Math.round((viewEndHour.getTime() - viewStartHour.getTime()) / msInterval);\r\n startIndex = tempStartIndex + (colIndex * slotsPerDay);\r\n endIndex = tempEndIndex + (colIndex * slotsPerDay);\r\n }\r\n for (var i = startIndex; i < endIndex; i++) {\r\n if (this.activeView.isTimelineView()) {\r\n var rowIndex = (!isNullOrUndefined(groupIndex)) ? groupIndex : 0;\r\n cells.push(tableEle.rows[rowIndex].cells[i]);\r\n }\r\n else {\r\n if (!isNullOrUndefined(groupIndex)) {\r\n var selector = '.' + cls.WORK_CELLS_CLASS + '[data-group-index=\"' + groupIndex + '\"]';\r\n var tds = [].slice.call(tableEle.rows[i].querySelectorAll(selector));\r\n cells.push(tds[colIndex]);\r\n }\r\n else {\r\n cells.push(tableEle.rows[i].cells[colIndex]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return cells;\r\n };\r\n /**\r\n * Retrieves the start and end time information of the specific cell element.\r\n *\r\n * @function getCellDetails\r\n * @param {Element | Element[]} tdCol Accepts the single or collection of elements.\r\n * @returns {CellClickEventArgs} Object An object holding the startTime, endTime and all-day information along with the target HTML element will be returned.\r\n */\r\n Schedule.prototype.getCellDetails = function (tdCol) {\r\n var td = (tdCol instanceof Array) ? tdCol : [tdCol];\r\n var firstTd = getElement(td[0]);\r\n var lastTd = getElement(td.slice(-1)[0]);\r\n var startTime = this.getDateFromElement(firstTd);\r\n var endTime = this.getDateFromElement(lastTd);\r\n if (isNullOrUndefined(startTime) || isNullOrUndefined(endTime)) {\r\n return undefined;\r\n }\r\n var endDateFromColSpan = this.activeView.isTimelineView() && !isNullOrUndefined(lastTd.getAttribute('colSpan')) &&\r\n this.headerRows.length > 0;\r\n var duration = endDateFromColSpan ? parseInt(lastTd.getAttribute('colSpan'), 10) : 1;\r\n if (!this.activeViewOptions.timeScale.enable || endDateFromColSpan || lastTd.classList.contains(cls.ALLDAY_CELLS_CLASS) ||\r\n lastTd.classList.contains(cls.HEADER_CELLS_CLASS)) {\r\n endTime = util.addDays(new Date(endTime.getTime()), duration);\r\n }\r\n else {\r\n endTime = this.activeView.getEndDateFromStartDate(endTime);\r\n }\r\n var data = {\r\n startTime: startTime,\r\n endTime: endTime,\r\n isAllDay: this.isAllDayCell(firstTd),\r\n element: tdCol\r\n };\r\n var groupIndex = firstTd.getAttribute('data-group-index');\r\n if (!isNullOrUndefined(groupIndex)) {\r\n data.groupIndex = parseInt(groupIndex, 10);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Retrieves the selected cell elements.\r\n *\r\n * @function getSelectedElements\r\n * @returns {Element[]} The elements of currently selected cells will be returned.\r\n */\r\n Schedule.prototype.getSelectedElements = function () {\r\n return [].slice.call(this.element.querySelectorAll('.' + cls.SELECTED_CELL_CLASS));\r\n };\r\n /**\r\n * To get the resource collection\r\n *\r\n * @function getResourceCollections\r\n * @returns {ResourcesModel[]} Returns the resource collections\r\n */\r\n Schedule.prototype.getResourceCollections = function () {\r\n return this.resourceCollection;\r\n };\r\n /**\r\n * To set the resource collection\r\n *\r\n * @function setResourceCollections\r\n * @param {ResourcesModel[]} resourceCol Accepts the resource collections in ResourcesModel type\r\n * @returns {void}\r\n */\r\n Schedule.prototype.setResourceCollections = function (resourceCol) {\r\n this.setProperties({ resources: resourceCol }, false);\r\n };\r\n /**\r\n * Current View could be change based on the provided parameters.\r\n *\r\n * @function changeCurrentView\r\n * @param {View} viewName Accept the view in the viewCollections.\r\n * @param {number} viewIndex Accept the viewIndex in the viewCollections.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.changeCurrentView = function (viewName, viewIndex) {\r\n var index = this.getViewIndex(viewName);\r\n var view = viewName.charAt(0).toLowerCase() + viewName.slice(1);\r\n var viewOptions = this.viewOptions[view];\r\n if (viewOptions) {\r\n index = this.viewCollections.indexOf(viewOptions[viewIndex || 0]);\r\n }\r\n if (index === -1 || index === this.viewIndex) {\r\n return;\r\n }\r\n this.changeView(viewName, null, null, index);\r\n };\r\n /**\r\n * Return the current view Index.\r\n *\r\n * @function getCurrentViewIndex\r\n * @returns {number} Returns the view index\r\n */\r\n Schedule.prototype.getCurrentViewIndex = function () {\r\n return this.viewIndex;\r\n };\r\n /**\r\n * Retrieves the resource details based on the provided resource index.\r\n *\r\n * @param {number} index index of the resources at the last level.\r\n * @returns {ResourceDetails} Object An object holding the details of resource and resourceData.\r\n */\r\n Schedule.prototype.getResourcesByIndex = function (index) {\r\n if (this.resourceBase && this.resourceBase.lastResourceLevel) {\r\n if (index < 0 || index >= this.resourceBase.lastResourceLevel.length) {\r\n return undefined;\r\n }\r\n var data = this.resourceBase.lastResourceLevel[index];\r\n var groupData = {};\r\n this.resourceBase.setResourceValues(groupData, index);\r\n return { resource: data.resource, resourceData: data.resourceData, groupData: groupData };\r\n }\r\n return undefined;\r\n };\r\n /**\r\n * This method allows to expand the resource that available on the scheduler.\r\n *\r\n * @function expandResource\r\n * @param {string | number} resourceId Accepts the resource id in either string or number type\r\n * @param {string} name Accepts the name of the resource collection\r\n * @returns {void}\r\n */\r\n Schedule.prototype.expandResource = function (resourceId, name) {\r\n if (this.activeView.isTimelineView() && this.resourceBase && this.resourceCollection.length > 1) {\r\n this.resourceBase.resourceExpand(resourceId, name, false);\r\n }\r\n };\r\n /**\r\n * This method allows to collapse the resource that available on the scheduler.\r\n *\r\n * @function collapseResource\r\n * @param {string | number} resourceId Accepts the resource id in either string or number type\r\n * @param {string} name Accepts the name of the resource collection\r\n * @returns {void}\r\n */\r\n Schedule.prototype.collapseResource = function (resourceId, name) {\r\n if (this.activeView.isTimelineView() && this.resourceBase && this.resourceCollection.length > 1) {\r\n this.resourceBase.resourceExpand(resourceId, name, true);\r\n }\r\n };\r\n /**\r\n * Scrolls the Schedule content area to the specified time.\r\n *\r\n * @function scrollTo\r\n * @param {string} hour Accepts the time value in the skeleton format of 'Hm'.\r\n * @param {Date} scrollDate Accepts the date object value.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.scrollTo = function (hour, scrollDate) {\r\n if (this.activeView.scrollToDate && isNullOrUndefined(hour) && scrollDate) {\r\n this.activeView.scrollToDate(scrollDate);\r\n }\r\n else if (this.activeView.scrollToHour) {\r\n this.activeView.scrollToHour(hour, scrollDate);\r\n }\r\n };\r\n /**\r\n * This method allows scroll to the position of the any resources that available on the scheduler.\r\n * This method is applicable for without Agenda and Month agenda views of the schedule.\r\n *\r\n * @function scrollToResource\r\n * @param {string | number} resourceId Accepts the resource id in either string or number type\r\n * @param {string} groupName Accepts the name of the resource collection\r\n * @returns {void}\r\n */\r\n Schedule.prototype.scrollToResource = function (resourceId, groupName) {\r\n if (this.resourceBase && this.resourceBase.lastResourceLevel) {\r\n this.resourceBase.resourceScroll(resourceId, groupName);\r\n }\r\n };\r\n /**\r\n * Exports the Scheduler events to a calendar (.ics) file. By default, the calendar is exported with a file name `Calendar.ics`.\r\n * To change this file name on export, pass the custom string value as `fileName` to get the file downloaded with this provided name.\r\n *\r\n * @function exportToICalendar\r\n * @param {string} fileName Accepts the string value.\r\n * @param {Object[]} customData Accepts the collection of objects.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.exportToICalendar = function (fileName, customData) {\r\n if (this.iCalendarExportModule) {\r\n this.iCalendarExportModule.initializeCalendarExport(fileName, customData);\r\n }\r\n else {\r\n throw Error('Inject ICalendarExport module');\r\n }\r\n };\r\n /**\r\n * Imports the events from an .ics file downloaded from any of the calendars like Google or Outlook into the Scheduler.\r\n * This method accepts the blob object or string format of an .ics file to be imported as a mandatory argument.\r\n *\r\n * @function importICalendar\r\n * @param {Blob | string} fileContent Accepts the file object or string format of an .ics file.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.importICalendar = function (fileContent) {\r\n if (this.iCalendarImportModule) {\r\n this.iCalendarImportModule.initializeCalendarImport(fileContent);\r\n }\r\n else {\r\n throw Error('Inject ICalendarImport module');\r\n }\r\n };\r\n /**\r\n * Adds the newly created event into the Schedule dataSource.\r\n *\r\n * @function addEvent\r\n * @param {Object | Object[]} data Single or collection of event objects to be added into Schedule.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.addEvent = function (data) {\r\n this.crudModule.addEvent(data);\r\n };\r\n /**\r\n * Allows the Scheduler events data to be exported as an Excel file either in .xlsx or .csv file formats.\r\n * By default, the whole event collection bound to the Scheduler gets exported as an Excel file.\r\n * To export only the specific events of Scheduler, you need to pass the custom data collection as\r\n * a parameter to this `exportToExcel` method. This method accepts the export options as arguments such as fileName,\r\n * exportType, fields, customData, and includeOccurrences. The `fileName` denotes the name to be given for the exported\r\n * file and the `exportType` allows you to set the format of an Excel file to be exported either as .xlsx or .csv.\r\n * The custom or specific field collection of event dataSource to be exported can be provided through `fields` option\r\n * and the custom data collection can be exported by passing them through the `customData` option. There also exists\r\n * option to export each individual instances of the recurring events to an Excel file, by setting true or false to the\r\n * `includeOccurrences` option, denoting either to include or exclude the occurrences as separate instances on an exported Excel file.\r\n *\r\n * @function exportToExcel\r\n * @param {ExportOptions} excelExportOptions The export options to be set before start with exporting the Scheduler events to an Excel file.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.exportToExcel = function (excelExportOptions) {\r\n if (this.excelExportModule) {\r\n this.excelExportModule.initializeExcelExport(excelExportOptions || {});\r\n }\r\n else {\r\n throw Error('Inject ExcelExport module');\r\n }\r\n };\r\n /**\r\n * Method allows to print the scheduler.\r\n *\r\n * @function print\r\n * @param {ScheduleModel} printOptions The export options to be set before start with exporting\r\n * the Scheduler events to the print window.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.print = function (printOptions) {\r\n if (this.printModule) {\r\n this.printModule.print(printOptions);\r\n }\r\n else {\r\n throw Error('Inject Print module');\r\n }\r\n };\r\n /**\r\n * Updates the changes made in the event object by passing it as an parameter into the dataSource.\r\n *\r\n * @function saveEvent\r\n * @param {Object | Object[]} data Single or collection of event objects to be saved into Schedule.\r\n * @param {CurrentAction} currentAction Denotes the action that takes place either for editing occurrence or series.\r\n * The valid current action names are `EditOccurrence` or `EditSeries`.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.saveEvent = function (data, currentAction) {\r\n this.crudModule.saveEvent(data, currentAction);\r\n };\r\n /**\r\n * Deletes the events based on the provided ID or event collection in the argument list.\r\n *\r\n * @function deleteEvent\r\n * @param {string | number | Object | Object[]} id Accepts the ID as string or number type or single or collection of the event object which needs to be removed from the Schedule.\r\n * @param {CurrentAction} currentAction Denotes the delete action that takes place either on occurrence or series events.\r\n * The valid current action names are `Delete`, `DeleteOccurrence` or `DeleteSeries`.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.deleteEvent = function (id, currentAction) {\r\n this.crudModule.deleteEvent(id, currentAction);\r\n };\r\n /**\r\n * Retrieves the entire collection of events bound to the Schedule.\r\n *\r\n * @function getEvents\r\n * @param {Date} startDate Accepts the start date.\r\n * @param {Date} endDate Accepts te end date.\r\n * @param {boolean} includeOccurrences Accepts the boolean value to process the occurrence from recurrence series.\r\n * @returns {Object[]} Returns the collection of event objects from the Schedule.\r\n */\r\n Schedule.prototype.getEvents = function (startDate, endDate, includeOccurrences) {\r\n var eventCollections = [];\r\n if (includeOccurrences) {\r\n eventCollections = this.eventBase.getProcessedEvents();\r\n }\r\n else {\r\n eventCollections = this.eventsData;\r\n }\r\n if (startDate) {\r\n startDate = this.getDateTime(startDate);\r\n }\r\n if (endDate) {\r\n endDate = this.getDateTime(endDate);\r\n }\r\n eventCollections = this.eventBase.filterEventsByRange(eventCollections, startDate, endDate);\r\n return eventCollections;\r\n };\r\n /**\r\n * Retrieves the entire collection of block events bound to the Schedule.\r\n *\r\n * @function getBlockEvents\r\n * @param {Date} startDate Accepts the start date.\r\n * @param {Date} endDate Accepts te end date.\r\n * @param {boolean} includeOccurrences Accepts the boolean value to process the occurrence from recurrence series.\r\n * @returns {Object[]} Returns the collection of block event objects from the Schedule.\r\n */\r\n Schedule.prototype.getBlockEvents = function (startDate, endDate, includeOccurrences) {\r\n var eventCollections = [];\r\n if (includeOccurrences) {\r\n eventCollections = this.eventBase.getProcessedEvents(this.blockData);\r\n }\r\n else {\r\n eventCollections = this.blockData;\r\n }\r\n if (startDate) {\r\n startDate = this.getDateTime(startDate);\r\n }\r\n if (endDate) {\r\n endDate = this.getDateTime(endDate);\r\n }\r\n eventCollections = this.eventBase.filterEventsByRange(eventCollections, startDate, endDate);\r\n return eventCollections;\r\n };\r\n /**\r\n * Retrieves the occurrences of a single recurrence event based on the provided parent ID.\r\n *\r\n * @function getOccurrencesByID\r\n * @param {number} eventID ID of the parent recurrence data from which the occurrences are fetched.\r\n * @returns {Object[]} Returns the collection of occurrence event objects.\r\n */\r\n Schedule.prototype.getOccurrencesByID = function (eventID) {\r\n return this.eventBase.getOccurrencesByID(eventID);\r\n };\r\n /**\r\n * Retrieves all the occurrences that lies between the specific start and end time range.\r\n *\r\n * @function getOccurrencesByRange\r\n * @param {Date} startTime Denotes the start time range.\r\n * @param {Date} endTime Denotes the end time range.\r\n * @returns {Object[]} Returns the collection of occurrence event objects that lies between the provided start and end time.\r\n */\r\n Schedule.prototype.getOccurrencesByRange = function (startTime, endTime) {\r\n startTime = this.getDateTime(startTime);\r\n endTime = this.getDateTime(endTime);\r\n return this.eventBase.getOccurrencesByRange(startTime, endTime);\r\n };\r\n /**\r\n * Retrieves the dates that lies on active view of Schedule.\r\n *\r\n * @function getCurrentViewDates\r\n * @returns {Date[]} Returns the collection of dates.\r\n */\r\n Schedule.prototype.getCurrentViewDates = function () {\r\n return this.activeView ? this.activeView.renderDates : [];\r\n };\r\n /**\r\n * Set the recurrence editor instance from custom editor template.\r\n *\r\n * @function setRecurrenceEditor\r\n * @param {RecurrenceEditor} recurrenceEditor instance has passed to fetch the instance in event window.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.setRecurrenceEditor = function (recurrenceEditor) {\r\n this.eventWindow.setRecurrenceEditor(recurrenceEditor);\r\n };\r\n /**\r\n * Get the maximum id of an event.\r\n *\r\n * @function getEventMaxID\r\n * @returns {number | string} Returns the maximum ID from scheduler data collections.\r\n */\r\n Schedule.prototype.getEventMaxID = function () {\r\n return this.eventBase.getEventMaxID();\r\n };\r\n /**\r\n * Get deleted occurrences from given recurrence series.\r\n *\r\n * @function getDeletedOccurrences\r\n * @param {string | number | Object} recurrenceData Accepts the parent ID of the event object or parent event object\r\n * @returns {Object[]} Returns the collection of deleted occurrence events.\r\n */\r\n Schedule.prototype.getDeletedOccurrences = function (recurrenceData) {\r\n return this.eventBase.getDeletedOccurrences(recurrenceData);\r\n };\r\n /**\r\n * Retrieves the events that lies on the current date range of the active view of Schedule.\r\n *\r\n * @function getCurrentViewEvents\r\n * @returns {Object[]} Returns the collection of events.\r\n */\r\n Schedule.prototype.getCurrentViewEvents = function () {\r\n return this.eventsProcessed;\r\n };\r\n /**\r\n * Refreshes the event dataSource. This method may be useful when the events alone in the schedule needs to be re-rendered.\r\n *\r\n * @function refreshEvents\r\n * @param {boolean} isRemoteRefresh Accepts the boolean to refresh data from remote or local\r\n * @returns {void}\r\n */\r\n Schedule.prototype.refreshEvents = function (isRemoteRefresh) {\r\n if (isRemoteRefresh === void 0) { isRemoteRefresh = true; }\r\n if (this.dragAndDropModule) {\r\n this.dragAndDropModule.actionObj.action = '';\r\n removeClass([this.element], cls.EVENT_ACTION_CLASS);\r\n }\r\n if (isRemoteRefresh) {\r\n this.crudModule.refreshDataManager();\r\n }\r\n else {\r\n var eventsData = this.eventsData || [];\r\n var blockData = this.blockData || [];\r\n var data = eventsData.concat(blockData);\r\n this.notify(events.dataReady, { processedData: this.eventBase ? this.eventBase.processData(data) : [] });\r\n }\r\n };\r\n /**\r\n * Method to refresh the given Schedule templates\r\n *\r\n * @param {string} templateName Accepts the template name\r\n * @returns {void}\r\n */\r\n Schedule.prototype.refreshTemplates = function (templateName) {\r\n if (templateName) {\r\n this.resetTemplates([templateName]);\r\n }\r\n else {\r\n this.resetTemplates();\r\n }\r\n switch (templateName) {\r\n case 'eventTemplate':\r\n this.appointmentTemplateFn = this.templateParser(this.activeViewOptions.eventTemplate);\r\n this.refreshEvents(false);\r\n break;\r\n case 'dateHeaderTemplate':\r\n this.dateHeaderTemplateFn = this.templateParser(this.activeViewOptions.dateHeaderTemplate);\r\n this.activeView.refreshHeader();\r\n break;\r\n case 'resourceHeaderTemplate':\r\n this.resourceHeaderTemplateFn = this.templateParser(this.activeViewOptions.resourceHeaderTemplate);\r\n if (this.activeView.isTimelineView()) {\r\n this.activeView.refreshResourceHeader();\r\n }\r\n else {\r\n this.activeView.refreshHeader();\r\n }\r\n break;\r\n case 'quickInfoTemplates':\r\n if (this.quickPopup) {\r\n this.quickPopup.destroy();\r\n this.quickPopup = null;\r\n }\r\n this.quickPopup = new QuickPopups(this);\r\n this.quickInfoTemplatesHeaderFn = this.templateParser(this.quickInfoTemplates.header);\r\n this.quickInfoTemplatesContentFn = this.templateParser(this.quickInfoTemplates.content);\r\n this.quickInfoTemplatesFooterFn = this.templateParser(this.quickInfoTemplates.footer);\r\n break;\r\n case 'editorTemplate':\r\n if (this.eventWindow) {\r\n this.eventWindow.destroy();\r\n this.eventWindow = null;\r\n }\r\n this.eventWindow = new EventWindow(this);\r\n this.editorTemplateFn = this.templateParser(this.editorTemplate);\r\n break;\r\n case 'tooltipTemplate':\r\n case 'headerTooltipTemplate':\r\n if (this.eventTooltip) {\r\n this.eventTooltip.destroy();\r\n this.eventTooltip = null;\r\n }\r\n this.eventTooltip = new EventTooltip(this);\r\n this.eventTooltipTemplateFn = this.templateParser(this.eventSettings.tooltipTemplate);\r\n this.headerTooltipTemplateFn = this.templateParser(this.activeViewOptions.group.headerTooltipTemplate);\r\n break;\r\n default:\r\n this.initializeView(this.currentView);\r\n break;\r\n }\r\n };\r\n /**\r\n * Refreshes the Schedule layout without re-render.\r\n *\r\n * @function refreshLayout\r\n * @returns {void}\r\n */\r\n Schedule.prototype.refreshLayout = function () {\r\n this.onScheduleResize();\r\n if (this.headerModule) {\r\n this.headerModule.refresh();\r\n }\r\n if (this.eventWindow) {\r\n this.eventWindow.refresh();\r\n }\r\n };\r\n /**\r\n * To retrieve the appointment object from element.\r\n *\r\n * @function getEventDetails\r\n * @param {Element} element Denotes the event UI element on the Schedule.\r\n * @returns {Object} Returns the event details.\r\n */\r\n Schedule.prototype.getEventDetails = function (element) {\r\n element = getElement(element);\r\n var guid = element.getAttribute('data-guid');\r\n if (guid) {\r\n return this.eventBase.getEventByGuid(guid);\r\n }\r\n return {};\r\n };\r\n /**\r\n * To check whether the given time range slots are available for event creation or already occupied by other events.\r\n *\r\n * @function isSlotAvailable\r\n * @param {Date | Object} startTime Denotes the start time of the slot.\r\n * @param {Date} endTime Denotes the end time of the slot.\r\n * @param {number} groupIndex Defines the resource index from last level.\r\n * @returns {boolean} Returns true, if the slot that lies in the provided time range does not contain any other events.\r\n */\r\n Schedule.prototype.isSlotAvailable = function (startTime, endTime, groupIndex) {\r\n var _this = this;\r\n var eventStart;\r\n var eventEnd;\r\n var eventObj = this.activeEventData.event;\r\n if (startTime instanceof Date || typeof (startTime) === 'string') {\r\n eventStart = startTime;\r\n eventEnd = endTime;\r\n }\r\n else {\r\n eventObj = startTime;\r\n eventStart = startTime[this.eventFields.startTime];\r\n eventEnd = startTime[this.eventFields.endTime];\r\n if (this.resourceBase) {\r\n groupIndex = this.eventBase.getGroupIndexFromEvent(startTime);\r\n }\r\n }\r\n if (isNullOrUndefined(eventStart) || isNullOrUndefined(eventEnd)) {\r\n return true;\r\n }\r\n eventStart = this.getDateTime(eventStart);\r\n eventEnd = this.getDateTime(eventEnd);\r\n var eventCollection = this.eventBase.filterEvents(eventStart, eventEnd);\r\n if (!isNullOrUndefined(groupIndex) && this.resourceBase && this.resourceBase.lastResourceLevel.length > 0) {\r\n eventCollection = this.eventBase.filterEventsByResource(this.resourceBase.lastResourceLevel[groupIndex], eventCollection);\r\n }\r\n if (eventObj) {\r\n if (eventObj.Guid) {\r\n eventCollection = eventCollection.filter(function (event) { return event.Guid !== eventObj.Guid; });\r\n }\r\n else {\r\n eventCollection = eventCollection.filter(function (event) {\r\n return event[_this.eventFields.id] !== eventObj[_this.eventFields.id];\r\n });\r\n }\r\n }\r\n return (eventCollection.length > 0) ? false : true;\r\n };\r\n /**\r\n * To manually open the event editor on specific time or on certain events.\r\n *\r\n * @function openEditor\r\n * @param {Object} data It can be either cell data or event data.\r\n * @param {CurrentAction} action Defines the action for which the editor needs to be opened such as either for new event creation or\r\n * for editing of existing events. The applicable action names that can be used here are `Add`, `Save`, `EditOccurrence`\r\n * and `EditSeries`.\r\n * @param {boolean} isEventData It allows to decide whether the editor needs to be opened with the clicked cell details or with the\r\n * passed event details.\r\n * @param {number} repeatType It opens the editor with the recurrence options based on the provided repeat type.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.openEditor = function (data, action, isEventData, repeatType) {\r\n if (action === 'Add' && !isEventData) {\r\n data.startTime = this.getDateTime(data.startTime);\r\n data.endTime = this.getDateTime(data.endTime);\r\n if (!isNullOrUndefined(data.element)) {\r\n data.element = getElement(data.element);\r\n }\r\n }\r\n else {\r\n data[this.eventFields.startTime] = this.getDateTime(data[this.eventFields.startTime]);\r\n data[this.eventFields.endTime] = this.getDateTime(data[this.eventFields.endTime]);\r\n }\r\n this.currentAction = action;\r\n if (action !== 'Add') {\r\n this.activeEventData.event = data;\r\n }\r\n this.eventWindow.openEditor(data, action, isEventData, repeatType);\r\n };\r\n /**\r\n * To manually close the event editor window\r\n *\r\n * @function closeEditor\r\n * @returns {void}\r\n */\r\n Schedule.prototype.closeEditor = function () {\r\n if (this.eventWindow) {\r\n this.eventWindow.dialogClose();\r\n }\r\n };\r\n /**\r\n * To manually close the quick info popup\r\n *\r\n * @function closeQuickInfoPopup\r\n * @returns {void}\r\n */\r\n Schedule.prototype.closeQuickInfoPopup = function () {\r\n if (this.quickPopup) {\r\n this.quickPopup.quickPopupHide(true);\r\n }\r\n };\r\n /**\r\n * Select the resource based on group index in mobile mode.\r\n *\r\n * @param {number} groupIndex Defines the resource index based on last level.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.selectResourceByIndex = function (groupIndex) {\r\n if (this.resourceBase && this.uiStateValues.isGroupAdaptive) {\r\n this.resourceBase.selectResourceByIndex(groupIndex);\r\n }\r\n };\r\n /**\r\n * Select the resources to the based on id.\r\n *\r\n * @param {string | number} id id of the resource defined in resources collection.\r\n * @param {string} name Name of the resource defined in resources collection.\r\n * @returns {number} Returns the group index\r\n */\r\n Schedule.prototype.getIndexFromResourceId = function (id, name) {\r\n if (this.resourceBase) {\r\n return this.resourceBase.getIndexFromResourceId(id, name);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Adds the resources to the specified index.\r\n *\r\n * @param {Object | Object[]} resources Accepts the resource data in single or collection of data.\r\n * @param {string} name Name of the resource defined in resources collection.\r\n * @param {number} index Index or position where the resource should be added.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.addResource = function (resources, name, index) {\r\n this.resourceBase.addResource(resources, name, index);\r\n };\r\n /**\r\n * Removes the specified resource.\r\n *\r\n * @param {string | string[] | number | number[]} resourceId Specifies the resource id to be removed.\r\n * @param {string} name Specifies the resource name from which the id should be referred.\r\n * @returns {void}\r\n */\r\n Schedule.prototype.removeResource = function (resourceId, name) {\r\n this.resourceBase.removeResource(resourceId, name);\r\n };\r\n /**\r\n * Destroys the Schedule component.\r\n *\r\n * @function destroy\r\n * @returns {void}\r\n */\r\n Schedule.prototype.destroy = function () {\r\n if (this.eventTooltip) {\r\n this.eventTooltip.destroy();\r\n this.eventTooltip = null;\r\n }\r\n this.destroyPopups();\r\n this.unWireEvents();\r\n this.destroyHeaderModule();\r\n if (this.eventTooltip) {\r\n this.eventTooltip.destroy();\r\n this.eventTooltip = null;\r\n }\r\n if (this.eventBase) {\r\n this.eventBase.destroy();\r\n this.eventBase = null;\r\n }\r\n if (this.workCellAction) {\r\n this.workCellAction.destroy();\r\n this.workCellAction = null;\r\n }\r\n if (this.inlineModule) {\r\n this.inlineModule.destroy();\r\n this.inlineModule = null;\r\n }\r\n if (this.keyboardInteractionModule) {\r\n this.keyboardInteractionModule.destroy();\r\n this.keyboardInteractionModule = null;\r\n }\r\n if (this.scrollModule) {\r\n this.scrollModule.destroy();\r\n this.scrollModule = null;\r\n }\r\n if (this.printModule) {\r\n this.printModule.destroy();\r\n }\r\n if (this.activeView) {\r\n this.resetTemplates();\r\n this.activeView.removeEventListener();\r\n this.activeView.destroy();\r\n this.activeView = null;\r\n }\r\n if (this.scheduleTouchModule) {\r\n this.scheduleTouchModule.destroy();\r\n this.scheduleTouchModule = null;\r\n }\r\n if (this.crudModule) {\r\n this.crudModule.destroy();\r\n this.crudModule = null;\r\n }\r\n if (this.dataModule) {\r\n this.dataModule.destroy();\r\n this.dataModule = null;\r\n }\r\n _super.prototype.destroy.call(this);\r\n var modules = [\r\n 'dayModule', 'weekModule', 'workWeekModule', 'monthModule', 'monthAgendaModule', 'yearModule', 'agendaModule',\r\n 'timelineViewsModule', 'timelineMonthModule', 'timelineYearModule', 'resizeModule', 'dragAndDropModule',\r\n 'excelExportModule', 'printModule', 'iCalendarExportModule', 'iCalendarImportModule', 'tzModule', 'eventsData',\r\n 'eventsProcessed', 'blockData', 'blockProcessed', 'uiStateValues', 'viewCollections', 'viewOptions', 'defaultLocale',\r\n 'localeObj', 'selectedElements', 'resourceCollection', 'editorTitles', 'eventFields', 'activeViewOptions',\r\n 'activeEventData', 'activeCellsData', 'renderModule'\r\n ];\r\n for (var _i = 0, modules_1 = modules; _i < modules_1.length; _i++) {\r\n var module = modules_1[_i];\r\n this[module] = null;\r\n }\r\n util.removeChildren(this.element);\r\n var removeClasses = [cls.ROOT, cls.RTL, cls.DEVICE_CLASS, cls.MULTI_DRAG];\r\n if (this.cssClass) {\r\n removeClasses = removeClasses.concat(this.cssClass.split(' '));\r\n }\r\n removeClass([this.element], removeClasses);\r\n };\r\n __decorate([\r\n Property('auto')\r\n ], Schedule.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('auto')\r\n ], Schedule.prototype, \"height\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"showHeaderBar\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"showTimeIndicator\", void 0);\r\n __decorate([\r\n Property('Week')\r\n ], Schedule.prototype, \"currentView\", void 0);\r\n __decorate([\r\n Property(['Day', 'Week', 'WorkWeek', 'Month', 'Agenda'])\r\n ], Schedule.prototype, \"views\", void 0);\r\n __decorate([\r\n Property(new Date())\r\n ], Schedule.prototype, \"selectedDate\", void 0);\r\n __decorate([\r\n Property(new Date(1900, 0, 1))\r\n ], Schedule.prototype, \"minDate\", void 0);\r\n __decorate([\r\n Property(new Date(2099, 11, 31))\r\n ], Schedule.prototype, \"maxDate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"dateFormat\", void 0);\r\n __decorate([\r\n Property('Gregorian')\r\n ], Schedule.prototype, \"calendarMode\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"showWeekend\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Schedule.prototype, \"firstDayOfWeek\", void 0);\r\n __decorate([\r\n Property('FirstDay')\r\n ], Schedule.prototype, \"weekRule\", void 0);\r\n __decorate([\r\n Property([1, 2, 3, 4, 5])\r\n ], Schedule.prototype, \"workDays\", void 0);\r\n __decorate([\r\n Property(12)\r\n ], Schedule.prototype, \"monthsCount\", void 0);\r\n __decorate([\r\n Property('00:00')\r\n ], Schedule.prototype, \"startHour\", void 0);\r\n __decorate([\r\n Property('24:00')\r\n ], Schedule.prototype, \"endHour\", void 0);\r\n __decorate([\r\n Property(null)\r\n ], Schedule.prototype, \"timeFormat\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"enableAllDayScroll\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"enableAdaptiveUI\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"allowResizing\", void 0);\r\n __decorate([\r\n Complex({}, WorkHours)\r\n ], Schedule.prototype, \"workHours\", void 0);\r\n __decorate([\r\n Complex({}, TimeScale)\r\n ], Schedule.prototype, \"timeScale\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"allowKeyboardInteraction\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"allowDragAndDrop\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"dateHeaderTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"cellHeaderTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"dayHeaderTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"monthHeaderTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"cellTemplate\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"readonly\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"showQuickInfo\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"allowInline\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"allowMultiCellSelection\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"allowMultiRowSelection\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"quickInfoOnSelectionEnd\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"showWeekNumber\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"rowAutoHeight\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Schedule.prototype, \"allowMultiDrag\", void 0);\r\n __decorate([\r\n Property(0)\r\n ], Schedule.prototype, \"firstMonthOfYear\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"editorTemplate\", void 0);\r\n __decorate([\r\n Complex({}, QuickInfoTemplates)\r\n ], Schedule.prototype, \"quickInfoTemplates\", void 0);\r\n __decorate([\r\n Property(7)\r\n ], Schedule.prototype, \"agendaDaysCount\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"hideEmptyAgendaDays\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Schedule.prototype, \"enableRecurrenceValidation\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"timezone\", void 0);\r\n __decorate([\r\n Complex({}, EventSettings)\r\n ], Schedule.prototype, \"eventSettings\", void 0);\r\n __decorate([\r\n Property(timezoneData)\r\n ], Schedule.prototype, \"timezoneDataSource\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"resourceHeaderTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"headerIndentTemplate\", void 0);\r\n __decorate([\r\n Complex({}, Group)\r\n ], Schedule.prototype, \"group\", void 0);\r\n __decorate([\r\n Collection([], Resources)\r\n ], Schedule.prototype, \"resources\", void 0);\r\n __decorate([\r\n Collection([], HeaderRows)\r\n ], Schedule.prototype, \"headerRows\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property()\r\n ], Schedule.prototype, \"eventDragArea\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"destroyed\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"cellClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"cellDoubleClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"moreEventsClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"hover\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"actionBegin\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"actionComplete\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"actionFailure\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"navigating\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"renderCell\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"eventClick\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"eventRendered\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"dataBinding\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"popupOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"popupClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"dragStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"drag\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"dragStop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"resizeStart\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"resizing\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"resizeStop\", void 0);\r\n __decorate([\r\n Event()\r\n ], Schedule.prototype, \"dataBound\", void 0);\r\n Schedule = __decorate([\r\n NotifyPropertyChanges\r\n ], Schedule);\r\n return Schedule;\r\n}(Component));\r\nexport { Schedule };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { createElement, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\r\n/**\r\n * Schedule common utilities\r\n */\r\nexport var WEEK_LENGTH = 7;\r\nexport var MS_PER_DAY = 86400000;\r\nexport var MS_PER_MINUTE = 60000;\r\n/**\r\n * Method to get height from element\r\n *\r\n * @param {Element} container Accepts the DOM element\r\n * @param {string} elementClass Accepts the element class\r\n * @returns {number} Returns the height of the element\r\n */\r\nexport function getElementHeightFromClass(container, elementClass) {\r\n var height = 0;\r\n var el = createElement('div', { className: elementClass }).cloneNode();\r\n el.style.visibility = 'hidden';\r\n el.style.position = 'absolute';\r\n container.appendChild(el);\r\n height = el.getBoundingClientRect().height;\r\n remove(el);\r\n return height;\r\n}\r\n/**\r\n * Method to get translateY value\r\n *\r\n * @param {HTMLElement | Element} element Accepts the DOM element\r\n * @returns {number} Returns the translateY value of given element\r\n */\r\nexport function getTranslateY(element) {\r\n var style = getComputedStyle(element);\r\n return window.WebKitCSSMatrix ?\r\n new WebKitCSSMatrix(style.webkitTransform).m42 : 0;\r\n}\r\n/**\r\n * Method to get week first date\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} firstDayOfWeek Accepts the first day of week number\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function getWeekFirstDate(date, firstDayOfWeek) {\r\n var date1 = new Date(date.getTime());\r\n firstDayOfWeek = (firstDayOfWeek - date1.getDay() + 7 * (-1)) % 7;\r\n return new Date(date1.setDate(date1.getDate() + firstDayOfWeek));\r\n}\r\n/**\r\n * Method to get week last date\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} firstDayOfWeek Accepts the first day of week number\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function getWeekLastDate(date, firstDayOfWeek) {\r\n var weekFirst = getWeekFirstDate(date, firstDayOfWeek);\r\n var weekLast = new Date(weekFirst.getFullYear(), weekFirst.getMonth(), weekFirst.getDate() + 6);\r\n return new Date(weekLast.getTime());\r\n}\r\n/**\r\n * Method to get first date of month\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function firstDateOfMonth(date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n}\r\n/**\r\n * Method to get last date of month\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function lastDateOfMonth(date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n}\r\n/**\r\n * Method to get week number\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {number} Returns the week number\r\n */\r\nexport function getWeekNumber(date) {\r\n var date1 = new Date(date.getFullYear(), 0, 1).valueOf();\r\n var currentDate = new Date(date.getFullYear(), date.getMonth(), date.getDate()).valueOf();\r\n var dayOfYear = ((currentDate - date1 + MS_PER_DAY) / MS_PER_DAY);\r\n return Math.ceil(dayOfYear / 7);\r\n}\r\n/**\r\n * Method to get week middle date\r\n *\r\n * @param {Date} weekFirst Accepts the week first date object\r\n * @param {Date} weekLast Accepts the week last date object\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function getWeekMiddleDate(weekFirst, weekLast) {\r\n return new Date(weekLast.valueOf() - ((weekLast.valueOf() - weekFirst.valueOf()) / 2));\r\n}\r\n/**\r\n * Method to set time to date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} time Accepts the milliseconds\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function setTime(date, time) {\r\n var tzOffsetBefore = date.getTimezoneOffset();\r\n var d = new Date(date.getTime() + time);\r\n var tzOffsetDiff = d.getTimezoneOffset() - tzOffsetBefore;\r\n date.setTime(d.getTime() + tzOffsetDiff * MS_PER_MINUTE);\r\n return date;\r\n}\r\n/**\r\n * Method the reset hours in date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function resetTime(date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n}\r\n/**\r\n * Method to get milliseconds from date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {number} Returns the milliseconds from date object\r\n */\r\nexport function getDateInMs(date) {\r\n var localOffset = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTimezoneOffset();\r\n var dateOffset = date.getTimezoneOffset();\r\n var timezoneOffset = dateOffset - localOffset;\r\n return ((date.getTime() - new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0).getTime())\r\n - (timezoneOffset * 60 * 1000));\r\n}\r\n/**\r\n * Method to get date count between two dates\r\n *\r\n * @param {Date} startDate Accepts the date object\r\n * @param {Date} endDate Accepts the date object\r\n * @returns {number} Returns the date count\r\n */\r\nexport function getDateCount(startDate, endDate) {\r\n return Math.ceil((endDate.getTime() - startDate.getTime()) / MS_PER_DAY);\r\n}\r\n/**\r\n * Method to add no of days in date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} noOfDays Accepts the number of days count\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function addDays(date, noOfDays) {\r\n date = new Date('' + date);\r\n return new Date(date.setDate(date.getDate() + noOfDays));\r\n}\r\n/**\r\n * Method to add no of months in date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} noOfMonths Accepts the number of month count\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function addMonths(date, noOfMonths) {\r\n date = new Date('' + date);\r\n var day = date.getDate();\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + noOfMonths);\r\n date.setDate(Math.min(day, getMaxDays(date)));\r\n return date;\r\n}\r\n/**\r\n * Method to add no of years in date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {number} noOfYears Accepts the number of month count\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function addYears(date, noOfYears) {\r\n date = new Date('' + date);\r\n var day = date.getDate();\r\n date.setDate(1);\r\n date.setFullYear(date.getFullYear() + noOfYears);\r\n date.setDate(Math.min(day, getMaxDays(date)));\r\n return date;\r\n}\r\n/**\r\n * Method to get start and end hours\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @param {Date} startHour Accepts the start hour date object\r\n * @param {Date} endHour Accepts the end hour date object\r\n * @returns {Object} Returns the start and end hour date objects\r\n */\r\nexport function getStartEndHours(date, startHour, endHour) {\r\n var date1 = new Date(date.getTime());\r\n date1.setHours(startHour.getHours());\r\n date1.setMinutes(startHour.getMinutes());\r\n date1.setSeconds(startHour.getSeconds());\r\n var date2 = new Date(date.getTime());\r\n if (endHour.getHours() === 0) {\r\n date2 = addDays(date2, 1);\r\n }\r\n else {\r\n date2.setHours(endHour.getHours());\r\n date2.setMinutes(endHour.getMinutes());\r\n date2.setSeconds(endHour.getSeconds());\r\n }\r\n return { startHour: date1, endHour: date2 };\r\n}\r\n/**\r\n * Method to get month last date\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {number} Returns the month last date\r\n */\r\nexport function getMaxDays(date) {\r\n return lastDateOfMonth(date).getDate();\r\n}\r\n/**\r\n * Method to get days count between two dates\r\n *\r\n * @param {Date} startDate Accepts the date object\r\n * @param {Date} endDate Accepts the date object\r\n * @returns {number} Returns the days count\r\n */\r\nexport function getDaysCount(startDate, endDate) {\r\n var strTime = resetTime(new Date(startDate));\r\n var endTime = resetTime(new Date(endDate));\r\n return Math.round((endTime.getTime() - strTime.getTime()) / MS_PER_DAY);\r\n}\r\n/**\r\n * Method to get date object from date string\r\n *\r\n * @param {string} date Accepts the date string\r\n * @returns {Date} Returns the date object\r\n */\r\nexport function getDateFromString(date) {\r\n return date.indexOf('Date') !== -1 ? new Date(parseInt(date.match(/\\d+/g).toString(), 10)) :\r\n date.indexOf('T') !== -1 ? new Date(date) : new Date(date.replace(/-/g, '/'));\r\n}\r\n/** @private */\r\nvar scrollWidth = null;\r\n/**\r\n * Method to get scrollbar width\r\n *\r\n * @returns {number} Returns the scrollbar width\r\n * @private\r\n */\r\nexport function getScrollBarWidth() {\r\n if (scrollWidth !== null) {\r\n return scrollWidth;\r\n }\r\n var divNode = createElement('div');\r\n var value = 0;\r\n divNode.style.cssText = 'width:100px;height: 100px;overflow: scroll;position: absolute;top: -9999px;';\r\n document.body.appendChild(divNode);\r\n var ratio = (devicePixelRatio) ? (devicePixelRatio.toFixed(2) === '1.10' || devicePixelRatio <= 1) ?\r\n Math.ceil(devicePixelRatio % 1) : Math.floor(devicePixelRatio % 1) : 0;\r\n value = (divNode.offsetWidth - divNode.clientWidth - ratio) | 0;\r\n document.body.removeChild(divNode);\r\n return scrollWidth = value;\r\n}\r\n/**\r\n * Method to find the index from data collection\r\n *\r\n * @param {Object} data Accepts the data as object\r\n * @param {string} field Accepts the field name\r\n * @param {string} value Accepts the value name\r\n * @param {Object} event Accepts the data as object\r\n * @param {Object[]} resourceCollection Accepts the data collections\r\n * @returns {number} Returns the index number\r\n */\r\n// eslint-disable-next-line max-len\r\nexport function findIndexInData(data, field, value, event, resourceCollection) {\r\n for (var i = 0, length_1 = data.length; i < length_1; i++) {\r\n if (data[i][field] === value) {\r\n if (event) {\r\n var field_1 = resourceCollection.slice(-2)[0].field;\r\n var res = (event[field_1] instanceof Array ? event[field_1] : [event[field_1]]);\r\n var resData = res.join(',');\r\n if (resData.includes(data[i][resourceCollection.slice(-1)[0].groupIDField])) {\r\n return i;\r\n }\r\n }\r\n else {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Method to get element outer height\r\n *\r\n * @param {HTMLElement} element Accepts the DOM element\r\n * @returns {number} Returns the outer height of the given element\r\n */\r\nexport function getOuterHeight(element) {\r\n var style = getComputedStyle(element);\r\n return element.offsetHeight + (parseInt(style.marginTop, 10) || 0) + (parseInt(style.marginBottom, 10) || 0);\r\n}\r\n/**\r\n * Method to remove child elements\r\n *\r\n * @param {HTMLElement | Element} element Accepts the DOM element\r\n * @returns {void}\r\n */\r\nexport function removeChildren(element) {\r\n var elementChildren = [].slice.call(element.children);\r\n for (var _i = 0, elementChildren_1 = elementChildren; _i < elementChildren_1.length; _i++) {\r\n var elementChild = elementChildren_1[_i];\r\n if (!elementChild.classList.contains('blazor-template')) {\r\n element.removeChild(elementChild);\r\n }\r\n }\r\n}\r\n/**\r\n * Method to check DST is present or not in date object\r\n *\r\n * @param {Date} date Accepts the date object\r\n * @returns {boolean} Returns the boolean value for either DST is present or not\r\n */\r\nexport function isDaylightSavingTime(date) {\r\n var jan = new Date(date.getFullYear(), 0, 1);\r\n var jul = new Date(date.getFullYear(), 6, 1);\r\n return date.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());\r\n}\r\n/**\r\n * Method to get UTC time value from date\r\n *\r\n * @param {Date} date Accepts the date\r\n * @returns {number} Returns the UTC time value\r\n */\r\nexport function getUniversalTime(date) {\r\n var year = date.getFullYear();\r\n var month = date.getMonth();\r\n var day = date.getDate();\r\n var hours = date.getHours();\r\n var minutes = date.getMinutes();\r\n var seconds = date.getSeconds();\r\n var milliseconds = date.getMilliseconds();\r\n return Date.UTC(year, month, day, hours, minutes, seconds, milliseconds);\r\n}\r\n/**\r\n * Method to check the device\r\n *\r\n * @returns {boolean} Returns the boolean value for either device is present or not.\r\n */\r\nexport function isMobile() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('mobi') > -1;\r\n}\r\n/**\r\n * Method to check the IPad device\r\n *\r\n * @returns {boolean} Returns the boolean value for either IPad device is present or not.\r\n */\r\nexport function isIPadDevice() {\r\n return window.navigator.userAgent.toLowerCase().indexOf('ipad') > -1;\r\n}\r\n/**\r\n * Method to capitalize the first word in string\r\n *\r\n * @param {string} inputString Accepts the string value\r\n * @param {string} type Accepts the string type\r\n * @returns {string} Returns the output string\r\n */\r\nexport function capitalizeFirstWord(inputString, type) {\r\n if (type === 'multiple') {\r\n inputString = inputString.split(' ').map(function (e) { return e.charAt(0).toLocaleUpperCase() + e.substring(1); }).join(' ');\r\n }\r\n else if (type === 'single') {\r\n if (inputString[0] >= '0' && inputString[0] <= '9') {\r\n var array = inputString.match(/[a-zA-Z]/);\r\n inputString = isNullOrUndefined(array) ? inputString :\r\n inputString.slice(0, array.index) + inputString[array.index].toLocaleUpperCase() + inputString.slice(array.index + 1);\r\n }\r\n inputString = inputString[0].toLocaleUpperCase() + inputString.slice(1);\r\n }\r\n return inputString;\r\n}\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { isNullOrUndefined, addClass, createElement, append, EventHandler, extend, remove } from '@syncfusion/ej2-base';\r\nimport { ListBase } from '@syncfusion/ej2-lists';\r\nimport { ViewBase } from '../renderer/view-base';\r\nimport * as util from '../base/util';\r\nimport * as cls from '../base/css-constant';\r\nimport * as event from '../base/constant';\r\nvar AgendaBase = /** @class */ (function (_super) {\r\n __extends(AgendaBase, _super);\r\n function AgendaBase(parent) {\r\n return _super.call(this, parent) || this;\r\n }\r\n // eslint-disable-next-line max-len\r\n AgendaBase.prototype.createAgendaContentElement = function (type, listData, aTd, groupOrder, groupIndex) {\r\n var _this = this;\r\n var listElement;\r\n var fieldMapping = this.parent.eventFields;\r\n if (type === 'noEvents') {\r\n var noEvents = [{ 'subject': this.parent.localeObj.getConstant('noEvents') }];\r\n listElement = ListBase.createList(this.parent.createElement, noEvents, {\r\n moduleName: 'agenda',\r\n listClass: this.parent.activeView.viewClass,\r\n itemClass: this.parent.activeView.viewClass,\r\n template: '
      ${subject}
      '\r\n });\r\n }\r\n else {\r\n listElement = ListBase.createList(this.parent.createElement, listData, {\r\n moduleName: 'agenda',\r\n listClass: this.parent.activeView.viewClass,\r\n itemClass: this.parent.activeView.viewClass\r\n });\r\n var listElements = [].slice.call(listElement.children);\r\n listElements.forEach(function (element, li) {\r\n var appWrapper = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS, attrs: {\r\n 'data-id': 'Appointment_' + listData[li][_this.parent.eventFields.id],\r\n 'data-guid': listData[li].Guid,\r\n 'role': 'button',\r\n 'tabindex': '0',\r\n 'aria-readonly': _this.parent.eventBase.getReadonlyAttribute(listData[li]),\r\n 'aria-selected': 'false',\r\n 'aria-grabbed': 'true',\r\n 'aria-label': _this.parent.getAnnouncementString(listData[li])\r\n }\r\n });\r\n if (!isNullOrUndefined(groupIndex)) {\r\n appWrapper.setAttribute('data-group-index', groupIndex.toString());\r\n }\r\n _this.parent.eventBase.applyResourceColor(appWrapper, listData[li], 'borderColor', groupOrder);\r\n var templateEle;\r\n if (!isNullOrUndefined(_this.parent.activeViewOptions.eventTemplate)) {\r\n addClass([appWrapper], cls.EVENT_TEMPLATE);\r\n var scheduleId = _this.parent.element.id + '_';\r\n var viewName = _this.parent.activeViewOptions.eventTemplateName;\r\n var templateId = scheduleId + viewName + 'eventTemplate';\r\n templateEle = _this.parent.getAppointmentTemplate()(listData[li], _this.parent, 'eventTemplate', templateId, false);\r\n if (!isNullOrUndefined(listData[li][fieldMapping.recurrenceRule])) {\r\n var iconClass = (listData[li][fieldMapping.id] === listData[li][fieldMapping.recurrenceID]) ?\r\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\r\n appWrapper.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\r\n }\r\n }\r\n else {\r\n templateEle = _this.createAppointment(listData[li]);\r\n }\r\n append([].slice.call(templateEle), appWrapper);\r\n util.removeChildren(element);\r\n element.appendChild(appWrapper);\r\n var args = {\r\n data: extend({}, listData[li], null, true),\r\n element: element, cancel: false\r\n };\r\n _this.parent.trigger(event.eventRendered, args, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n remove(element);\r\n }\r\n });\r\n });\r\n }\r\n aTd.appendChild(listElement);\r\n if ((this.parent.currentView === 'MonthAgenda' && this.parent.activeViewOptions.group.resources.length > 0)\r\n || this.parent.currentView === 'Agenda') {\r\n addClass([aTd], cls.AGENDA_DAY_BORDER_CLASS);\r\n }\r\n this.parent.renderTemplates();\r\n return aTd;\r\n };\r\n AgendaBase.prototype.createAppointment = function (event) {\r\n var fieldMapping = this.parent.eventFields;\r\n var eventSubject = (event[fieldMapping.subject] || this.parent.eventSettings.fields.subject.default\r\n || this.parent.localeObj.getConstant('addTitle'));\r\n var eventLocation = (event[fieldMapping.location] || this.parent.eventSettings.fields.location.default);\r\n var appSubjectWrap = createElement('div', { className: cls.SUBJECT_WRAP });\r\n if (!isNullOrUndefined(eventLocation) && eventLocation !== '') {\r\n eventSubject += ',';\r\n }\r\n appSubjectWrap.appendChild(createElement('div', { className: cls.SUBJECT_CLASS, innerHTML: eventSubject }));\r\n if (!isNullOrUndefined(eventLocation) && eventLocation !== '') {\r\n appSubjectWrap.appendChild(createElement('div', { className: cls.LOCATION_CLASS, innerHTML: eventLocation }));\r\n }\r\n if (!isNullOrUndefined(event[fieldMapping.recurrenceRule])) {\r\n var iconClass = (event[fieldMapping.id] === event[fieldMapping.recurrenceID]) ?\r\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\r\n appSubjectWrap.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\r\n }\r\n var strDate = event[fieldMapping.startTime];\r\n var endDate = event[fieldMapping.endTime];\r\n var isAllDay = event[fieldMapping.isAllDay];\r\n var allDayStr = this.parent.localeObj.getConstant('allDay');\r\n var timeStr = this.parent.getTimeString(strDate) + ' - ' + this.parent.getTimeString(endDate);\r\n if (!isNullOrUndefined(event.data)) {\r\n var milliSeconds = (endDate.getTimezoneOffset() !== strDate.getTimezoneOffset()) ?\r\n (endDate.getTime() - strDate.getTime() + 3600000) : (endDate.getTime() - strDate.getTime());\r\n var eventString = (milliSeconds / util.MS_PER_DAY) >= 1 ? allDayStr : timeStr;\r\n allDayStr = eventString + ' (' + this.parent.localeObj.getConstant('day') + ' '\r\n + event.data.index + '/' + event.data.count + ')';\r\n }\r\n var displayStr = (!isNullOrUndefined(event.data) || isAllDay) ? allDayStr : timeStr;\r\n var appDateTime = createElement('div', { className: cls.DATE_TIME_CLASS, innerHTML: displayStr });\r\n return [appSubjectWrap, appDateTime];\r\n };\r\n AgendaBase.prototype.processAgendaEvents = function (events) {\r\n var eventsProcessed = [];\r\n if (isNullOrUndefined(events)) {\r\n return eventsProcessed;\r\n }\r\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\r\n var event_1 = events_1[_i];\r\n var spanned = this.parent.eventBase.splitEventByDay(event_1);\r\n eventsProcessed = eventsProcessed.concat(spanned.length > 1 ? spanned : event_1);\r\n }\r\n return eventsProcessed;\r\n };\r\n AgendaBase.prototype.wireEventActions = function () {\r\n var eventElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n for (var _i = 0, eventElement_1 = eventElement; _i < eventElement_1.length; _i++) {\r\n var element = eventElement_1[_i];\r\n this.parent.eventBase.wireAppointmentEvents(element, null, true);\r\n }\r\n var dateHeaderElement = [].slice.call(this.parent.element.querySelectorAll('.e-m-date'));\r\n for (var _a = 0, dateHeaderElement_1 = dateHeaderElement; _a < dateHeaderElement_1.length; _a++) {\r\n var element = dateHeaderElement_1[_a];\r\n EventHandler.add(element, 'click', this.parent.agendaModule.dayNavigationClick, this);\r\n }\r\n };\r\n AgendaBase.prototype.calculateResourceTableElement = function (tBody, noOfDays, agendaDate) {\r\n if (isNullOrUndefined(this.parent.resourceBase.lastResourceLevel)) {\r\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\r\n this.parent.resourceBase.generateResourceLevels(level);\r\n }\r\n var agendaLastDate = util.addDays(new Date(agendaDate.getTime()), noOfDays);\r\n var days = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') ? noOfDays : 1;\r\n var resColl = this.parent.resourceBase.resourceCollection;\r\n var resData = this.parent.resourceBase.lastResourceLevel;\r\n var initialDate = agendaDate;\r\n for (var i = 0; i < days; i++) {\r\n var lastLevelInfo = [];\r\n var tempLastLevelInfo = [];\r\n var tempIndex = 0;\r\n var eventObj = void 0;\r\n var dateObj = void 0;\r\n var firstDate = util.addDays(initialDate, i);\r\n var finalDate = (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda')\r\n ? util.addDays(firstDate, 1) : agendaLastDate;\r\n var agendaCollection = this.parent.eventBase.filterEvents(firstDate, finalDate);\r\n if (agendaCollection.length > 0 || !this.parent.hideEmptyAgendaDays || this.parent.currentView === 'MonthAgenda') {\r\n for (var res = 0; res < resData.length; res++) {\r\n noOfDays = (!this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') ? noOfDays : 1;\r\n var data = [];\r\n agendaDate = firstDate;\r\n // eslint-disable-next-line max-len\r\n var resDataCollection = this.parent.eventBase.filterEvents(agendaDate, agendaLastDate, agendaCollection, resData[res]);\r\n if (resDataCollection.length > 0 || !this.parent.hideEmptyAgendaDays || this.parent.currentView === 'MonthAgenda') {\r\n for (var r = 0; r < noOfDays; r++) {\r\n // eslint-disable-next-line max-len\r\n var resDayCollection = this.parent.eventBase.filterEvents(agendaDate, util.addDays(agendaDate, 1), resDataCollection, undefined);\r\n if (resDayCollection.length > 0 || !this.parent.hideEmptyAgendaDays ||\r\n this.parent.currentView === 'MonthAgenda') {\r\n data.push(resDayCollection[0]);\r\n eventObj = {\r\n rowSpan: 1, type: 'eventColumn', resource: resColl[resColl.length - 1],\r\n groupIndex: resData[res].groupIndex, groupOrder: resData[res].groupOrder,\r\n resourceData: resData[res].resourceData, eventData: resDayCollection, date: agendaDate\r\n };\r\n dateObj = {\r\n rowSpan: 1, type: 'dateColumn', resource: resColl[resColl.length - 1],\r\n groupOrder: resData[res].groupOrder, resourceData: resData[res].resourceData,\r\n date: agendaDate\r\n };\r\n if (!lastLevelInfo[tempIndex]) {\r\n lastLevelInfo[tempIndex] = [];\r\n }\r\n lastLevelInfo[tempIndex].push(eventObj);\r\n lastLevelInfo[tempIndex].push(dateObj);\r\n tempIndex++;\r\n }\r\n agendaDate = util.addDays(agendaDate, 1);\r\n if (agendaDate.getTime() >= agendaLastDate.getTime() || this.parent.activeViewOptions.group.byDate\r\n || this.parent.currentView === 'MonthAgenda') {\r\n lastLevelInfo[lastLevelInfo.length - 1][1].cssClass = cls.AGENDA_DAY_BORDER_CLASS;\r\n var tempObj = {\r\n rowSpan: data.length, type: 'resourceColumn', resource: resColl[resColl.length - 1],\r\n groupOrder: resData[res].groupOrder.slice(0, -1), resourceData: resData[res].resourceData,\r\n groupIndex: (lastLevelInfo.length - data.length), className: [cls.RESOURCE_NAME],\r\n date: agendaDate\r\n };\r\n lastLevelInfo[lastLevelInfo.length - data.length].push(tempObj);\r\n tempLastLevelInfo.push(extend({}, tempObj, null, true));\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n var topResources = resColl.slice(0, -1);\r\n var tempGroupedData = [];\r\n var totalRowSpan = 0;\r\n for (var y = 0; y < topResources.length; y++) {\r\n var data = topResources[topResources.length - (y + 1)].dataSource;\r\n for (var x = 0; x < data.length; x++) {\r\n var z = 0;\r\n for (var u = 0; u < tempLastLevelInfo.length; u++) {\r\n // eslint-disable-next-line max-len\r\n if (tempLastLevelInfo[u].groupOrder[topResources.length - (y + 1)] === data[x][topResources[topResources.length - (y + 1)].idField]) {\r\n totalRowSpan = totalRowSpan + tempLastLevelInfo[u].rowSpan;\r\n tempGroupedData.push(extend({}, tempLastLevelInfo[u], null, true));\r\n }\r\n if (++z === tempLastLevelInfo.length && tempGroupedData.length > 0) {\r\n tempGroupedData[0].rowSpan = totalRowSpan;\r\n tempGroupedData[0].type = 'parentColumnLevel_' + (y + 1);\r\n tempGroupedData[0].resource = topResources[topResources.length - (y + 1)];\r\n tempGroupedData[0].resourceData = data[x];\r\n tempGroupedData[0].date = agendaDate;\r\n lastLevelInfo[tempGroupedData[0].groupIndex].push(tempGroupedData[0]);\r\n tempGroupedData = [];\r\n totalRowSpan = 0;\r\n }\r\n }\r\n }\r\n }\r\n this.createResourceTableRow(lastLevelInfo, tBody);\r\n }\r\n }\r\n var totalCollection = this.parent.eventBase.filterEvents(initialDate, agendaLastDate);\r\n if (totalCollection.length === 0 && !this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {\r\n this.renderEmptyContent(tBody, initialDate);\r\n }\r\n };\r\n AgendaBase.prototype.createResourceTableRow = function (tContent, tBody) {\r\n var tr = createElement('tr', { attrs: { role: 'row' } });\r\n var ntr;\r\n var td = createElement('td', { attrs: { role: 'gridcell', 'aria-selected': 'false' } });\r\n var tempData;\r\n var rowSpan = 0;\r\n var level;\r\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\r\n var tContentCollection = [];\r\n var parentCollection = this.parent.resourceBase.resourceCollection.slice(0, -1);\r\n for (var w = 0; w < tContent.length; w++) {\r\n tContentCollection = tContentCollection.concat(tContent[w]);\r\n }\r\n level = (parentCollection.length > 0) ? 'parentColumnLevel_' + parentCollection.length : 'resourceColumn';\r\n var rowSpanCollection = tContentCollection.filter(function (data) { return data.type === level; });\r\n for (var x = 0; x < rowSpanCollection.length; x++) {\r\n rowSpan = rowSpan + rowSpanCollection[x].rowSpan;\r\n }\r\n }\r\n for (var row = 0; row < tContent.length; row++) {\r\n ntr = tr.cloneNode();\r\n for (var col = tContent[row].length - 1; col >= 0; col--) {\r\n var data = tContent[row][col];\r\n var ntd = td.cloneNode();\r\n if (data.type === 'dateColumn') {\r\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\r\n tempData = tContent[row][col];\r\n continue;\r\n }\r\n ntd.setAttribute('data-date', data.date.getTime().toString());\r\n ntd.appendChild(this.createDateHeaderElement(data.date));\r\n var className = [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DATE_CLASS];\r\n if (data.cssClass) {\r\n className.push(data.cssClass);\r\n }\r\n addClass([ntd], className);\r\n ntr.appendChild(ntd);\r\n }\r\n else if (data.type === 'eventColumn') {\r\n var elementType = (data.eventData.length === 0) ? 'noEvents' : 'data';\r\n ntd = this.createAgendaContentElement(elementType, data.eventData, ntd, data.groupOrder, data.groupIndex);\r\n ntd.setAttribute('data-date', data.date.getTime().toString());\r\n if (this.parent.activeViewOptions.group.byDate || this.parent.currentView === 'MonthAgenda') {\r\n addClass([ntd], [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DAY_PADDING_CLASS]);\r\n }\r\n ntr.appendChild(ntd);\r\n }\r\n else {\r\n ntd.setAttribute('rowspan', data.rowSpan.toString());\r\n addClass([ntd], cls.AGENDA_RESOURCE_CLASS);\r\n this.setResourceHeaderContent(ntd, data, data.className[0]);\r\n ntr.appendChild(ntd);\r\n }\r\n }\r\n if (this.parent.activeViewOptions.group.byDate && row === 0 && this.parent.currentView !== 'MonthAgenda') {\r\n var ntd = td.cloneNode();\r\n ntd.setAttribute('data-date', tempData.date.getTime().toString());\r\n ntd.setAttribute('rowspan', rowSpan.toString());\r\n ntd.appendChild(this.createDateHeaderElement(tempData.date));\r\n addClass([ntd], [cls.AGENDA_CELLS_CLASS, cls.AGENDA_DATE_CLASS, cls.DATE_BORDER_CLASS]);\r\n var daysCount = util.getDaysCount(this.parent.selectedDate.getTime(), tempData.date.getTime());\r\n ntr.setAttribute('aria-rowindex', daysCount.toString());\r\n if (this.parent.element.querySelector(\".e-agenda-view tr[aria-rowindex=\\\"\" + daysCount + \"\\\"]\")) {\r\n break;\r\n }\r\n ntr.insertBefore(ntd, ntr.childNodes[0]);\r\n }\r\n tBody.appendChild(ntr);\r\n }\r\n };\r\n AgendaBase.prototype.createDateHeaderElement = function (date) {\r\n var dateHeader;\r\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\r\n dateHeader = createElement('div', { className: cls.AGENDA_HEADER_CLASS });\r\n var args = { date: date, type: 'dateHeader' };\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\r\n var templateId = scheduleId + viewName + 'dateHeaderTemplate';\r\n var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, 'dateHeaderTemplate', templateId, false));\r\n append(dateTemplate, dateHeader);\r\n }\r\n else {\r\n dateHeader = this.getMobileDateElement(date, cls.AGENDA_HEADER_CLASS);\r\n }\r\n return dateHeader;\r\n };\r\n AgendaBase.prototype.renderEmptyContent = function (tBody, agendaDate) {\r\n var eTr = this.createTableRowElement(agendaDate, 'noEvents');\r\n var eTd = eTr.children[0];\r\n var noEvents = createElement('div', {\r\n className: cls.AGENDA_EMPTY_EVENT_CLASS,\r\n innerHTML: this.parent.localeObj.getConstant('noEvents')\r\n });\r\n eTd.appendChild(noEvents);\r\n tBody.appendChild(eTr);\r\n };\r\n AgendaBase.prototype.createTableRowElement = function (date, type) {\r\n var daysCount = util.getDaysCount(this.parent.selectedDate.getTime(), date.getTime());\r\n var tr = createElement('tr', { attrs: { 'role': 'row', 'aria-rowindex': daysCount.toString() } });\r\n var td = createElement('td', {\r\n attrs: {\r\n 'class': (type === 'monthHeader') ? cls.MONTH_HEADER_CLASS : cls.AGENDA_CELLS_CLASS,\r\n 'role': 'gridcell',\r\n 'aria-selected': 'false',\r\n 'aria-colindex': daysCount.toString(),\r\n 'data-date': date.getTime().toString()\r\n }\r\n });\r\n var dTd = td.cloneNode();\r\n var aTd = td.cloneNode();\r\n tr.appendChild(dTd);\r\n if (type !== 'noEvents') {\r\n tr.appendChild(aTd);\r\n }\r\n return tr;\r\n };\r\n AgendaBase.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n };\r\n return AgendaBase;\r\n}(ViewBase));\r\nexport { AgendaBase };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable max-len */\r\nimport { isNullOrUndefined, closest, extend, EventHandler } from '@syncfusion/ej2-base';\r\nimport { createElement, prepend, append, addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport { DataManager, Query, Predicate } from '@syncfusion/ej2-data';\r\nimport { generate, getDateFromRecurrenceDateString } from '../../recurrence-editor/date-generator';\r\nimport * as util from '../base/util';\r\nimport * as cls from '../base/css-constant';\r\nimport * as event from '../base/constant';\r\n/**\r\n * EventBase for appointment rendering\r\n */\r\nvar EventBase = /** @class */ (function () {\r\n /**\r\n * Constructor for EventBase\r\n *\r\n * @param {Schedule} parent Accepts the schedule instance\r\n */\r\n function EventBase(parent) {\r\n this.slots = [];\r\n this.isDoubleTapped = false;\r\n this.parent = parent;\r\n }\r\n EventBase.prototype.processData = function (events, timeZonePropChanged, oldTimezone) {\r\n var _this = this;\r\n var start = this.parent.activeView.startDate();\r\n var end = this.parent.activeView.endDate();\r\n var fields = this.parent.eventFields;\r\n var processed = [];\r\n var temp = 1;\r\n var generateID = false;\r\n var resourceCollection = this.parent.resourceBase ? this.parent.resourceBase.resourceCollection : [];\r\n if (events.length > 0 && isNullOrUndefined(events[0][fields.id])) {\r\n generateID = true;\r\n }\r\n var _loop_1 = function (event_1) {\r\n if (generateID) {\r\n event_1[fields.id] = temp++;\r\n }\r\n event_1 = this_1.updateEventDateTime(event_1);\r\n if (timeZonePropChanged) {\r\n this_1.processTimezoneChange(event_1, oldTimezone);\r\n }\r\n else if (!this_1.parent.isPrinting) {\r\n event_1 = this_1.processTimezone(event_1);\r\n }\r\n for (var level = 0; level < resourceCollection.length; level++) {\r\n if (event_1[resourceCollection[level].field] === null || event_1[resourceCollection[level].field] === 0) {\r\n event_1[resourceCollection[level].field] = undefined;\r\n }\r\n }\r\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && event_1[fields.recurrenceRule] === '') {\r\n event_1[fields.recurrenceRule] = null;\r\n }\r\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && isNullOrUndefined(event_1[fields.recurrenceID]) &&\r\n !(this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction)) {\r\n processed = processed.concat(this_1.generateOccurrence(event_1, null, oldTimezone, true));\r\n }\r\n else {\r\n if (this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction) {\r\n if (!isNullOrUndefined(event_1[fields.recurrenceRule]) && isNullOrUndefined(event_1[fields.recurrenceID])) {\r\n var recurrenceEvent = this_1.generateOccurrence(event_1, null, oldTimezone, true);\r\n var _loop_2 = function (occurrence) {\r\n var app = this_1.parent.eventsProcessed.filter(function (data) {\r\n return data[fields.startTime].getTime() - occurrence[fields.startTime].getTime() === 0 &&\r\n data[fields.id] === occurrence[fields.id];\r\n });\r\n occurrence.Guid = (app.length > 0) ? app[0].Guid : this_1.generateGuid();\r\n processed.push(occurrence);\r\n };\r\n for (var _i = 0, recurrenceEvent_1 = recurrenceEvent; _i < recurrenceEvent_1.length; _i++) {\r\n var occurrence = recurrenceEvent_1[_i];\r\n _loop_2(occurrence);\r\n }\r\n }\r\n else {\r\n var app = this_1.parent.eventsProcessed.filter(function (data) {\r\n return data[_this.parent.eventFields.id] === event_1[_this.parent.eventFields.id];\r\n });\r\n event_1.Guid = (app.length > 0) ? app[0].Guid : this_1.generateGuid();\r\n processed.push(event_1);\r\n }\r\n }\r\n else {\r\n event_1.Guid = this_1.generateGuid();\r\n processed.push(event_1);\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {\r\n var event_1 = events_1[_i];\r\n _loop_1(event_1);\r\n }\r\n this.parent.eventsProcessed = [];\r\n var eventData = processed.filter(function (data) {\r\n return !data[_this.parent.eventFields.isBlock];\r\n });\r\n this.parent.eventsProcessed = this.filterEvents(start, end, eventData);\r\n var blockData = processed.filter(function (data) {\r\n return data[_this.parent.eventFields.isBlock];\r\n });\r\n for (var _a = 0, blockData_1 = blockData; _a < blockData_1.length; _a++) {\r\n var eventObj = blockData_1[_a];\r\n if (eventObj[fields.isAllDay]) {\r\n var isDifferentDate = util.resetTime(new Date(eventObj[fields.startTime].getTime())) <\r\n util.resetTime(new Date(eventObj[fields.endTime].getTime()));\r\n if (!isDifferentDate) {\r\n eventObj[fields.startTime] = util.resetTime(eventObj[fields.startTime]);\r\n eventObj[fields.endTime] = util.addDays(util.resetTime(eventObj[fields.endTime]), 1);\r\n }\r\n }\r\n }\r\n this.parent.blockProcessed = blockData;\r\n return eventData;\r\n };\r\n EventBase.prototype.updateEventDateTime = function (eventData) {\r\n if (typeof eventData[this.parent.eventFields.startTime] === 'string') {\r\n eventData[this.parent.eventFields.startTime] = util.getDateFromString(eventData[this.parent.eventFields.startTime]);\r\n }\r\n if (typeof eventData[this.parent.eventFields.endTime] === 'string') {\r\n eventData[this.parent.eventFields.endTime] = util.getDateFromString(eventData[this.parent.eventFields.endTime]);\r\n }\r\n return eventData;\r\n };\r\n EventBase.prototype.getProcessedEvents = function (eventCollection) {\r\n if (eventCollection === void 0) { eventCollection = this.parent.eventsData; }\r\n var processed = [];\r\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\r\n var event_2 = eventCollection_1[_i];\r\n if (!isNullOrUndefined(event_2[this.parent.eventFields.recurrenceRule]) &&\r\n isNullOrUndefined(event_2[this.parent.eventFields.recurrenceID])) {\r\n processed = processed.concat(this.generateOccurrence(event_2));\r\n }\r\n else {\r\n processed.push(event_2);\r\n }\r\n }\r\n return processed;\r\n };\r\n EventBase.prototype.timezonePropertyChange = function (oldTimezone) {\r\n var data = this.parent.eventsData.concat(this.parent.blockData);\r\n var processed = this.processData(data, true, oldTimezone);\r\n this.parent.notify(event.dataReady, { processedData: processed });\r\n };\r\n EventBase.prototype.timezoneConvert = function (eventData) {\r\n var fields = this.parent.eventFields;\r\n eventData[fields.startTimezone] = eventData[fields.startTimezone] || eventData[fields.endTimezone];\r\n eventData[fields.endTimezone] = eventData[fields.endTimezone] || eventData[fields.startTimezone];\r\n if (this.parent.timezone) {\r\n var startTz = eventData[fields.startTimezone];\r\n var endTz = eventData[fields.endTimezone];\r\n eventData[fields.startTime] = this.parent.tzModule.convert(eventData[fields.startTime], this.parent.timezone, startTz);\r\n eventData[fields.endTime] = this.parent.tzModule.convert(eventData[fields.endTime], this.parent.timezone, endTz);\r\n }\r\n };\r\n EventBase.prototype.processTimezoneChange = function (event, oldTimezone) {\r\n var fields = this.parent.eventFields;\r\n if (event[fields.isAllDay]) {\r\n return;\r\n }\r\n if (oldTimezone && this.parent.timezone) {\r\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], oldTimezone, this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], oldTimezone, this.parent.timezone);\r\n }\r\n else if (!oldTimezone && this.parent.timezone) {\r\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], this.parent.timezone);\r\n }\r\n else if (oldTimezone && !this.parent.timezone) {\r\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], oldTimezone);\r\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], oldTimezone);\r\n }\r\n };\r\n EventBase.prototype.processTimezone = function (event, isReverse) {\r\n if (isReverse === void 0) { isReverse = false; }\r\n var fields = this.parent.eventFields;\r\n if (event[fields.startTimezone] || event[fields.endTimezone]) {\r\n var startTimezone = event[fields.startTimezone] || event[fields.endTimezone];\r\n var endTimezone = event[fields.endTimezone] || event[fields.startTimezone];\r\n if (isReverse) {\r\n if (this.parent.timezone) {\r\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], startTimezone, this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], endTimezone, this.parent.timezone);\r\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], this.parent.timezone);\r\n }\r\n else {\r\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], startTimezone);\r\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], endTimezone);\r\n }\r\n }\r\n else {\r\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], startTimezone);\r\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], endTimezone);\r\n if (this.parent.timezone) {\r\n event[fields.startTime] = this.parent.tzModule.convert(event[fields.startTime], startTimezone, this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.convert(event[fields.endTime], endTimezone, this.parent.timezone);\r\n }\r\n }\r\n }\r\n else if (this.parent.timezone) {\r\n if (isReverse) {\r\n event[fields.startTime] = this.parent.tzModule.remove(event[fields.startTime], this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.remove(event[fields.endTime], this.parent.timezone);\r\n }\r\n else {\r\n event[fields.startTime] = this.parent.tzModule.add(event[fields.startTime], this.parent.timezone);\r\n event[fields.endTime] = this.parent.tzModule.add(event[fields.endTime], this.parent.timezone);\r\n }\r\n }\r\n return event;\r\n };\r\n EventBase.prototype.filterBlockEvents = function (eventObj) {\r\n var fields = this.parent.eventFields;\r\n var eStart = eventObj[fields.startTime];\r\n var eEnd = eventObj[fields.endTime];\r\n var resourceData;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var data = this.getGroupIndexFromEvent(eventObj);\r\n resourceData = this.parent.resourceBase.lastResourceLevel[data];\r\n }\r\n var blockEvents = extend([], this.parent.blockProcessed, null, true);\r\n for (var _i = 0, blockEvents_1 = blockEvents; _i < blockEvents_1.length; _i++) {\r\n var eventObj_1 = blockEvents_1[_i];\r\n if (eventObj_1[fields.isAllDay]) {\r\n var isDifferentTime = eventObj_1[fields.endTime].getTime() >\r\n util.resetTime(new Date(eventObj_1[fields.endTime].getTime())).getTime();\r\n if (isDifferentTime) {\r\n eventObj_1[fields.startTime] = util.resetTime(eventObj_1[fields.startTime]);\r\n eventObj_1[fields.endTime] = util.addDays(util.resetTime(eventObj_1[fields.endTime]), 1);\r\n }\r\n }\r\n }\r\n return this.filterEvents(eStart, eEnd, blockEvents, resourceData);\r\n };\r\n EventBase.prototype.filterEvents = function (startDate, endDate, appointments, resourceTdData) {\r\n if (appointments === void 0) { appointments = this.parent.eventsProcessed; }\r\n var fieldMapping = this.parent.eventFields;\r\n var predicate = new Predicate(fieldMapping.startTime, 'greaterthanorequal', startDate).\r\n and(new Predicate(fieldMapping.endTime, 'greaterthanorequal', startDate)).\r\n and(new Predicate(fieldMapping.startTime, 'lessthan', endDate)).\r\n or(new Predicate(fieldMapping.startTime, 'lessthanorequal', startDate).\r\n and(new Predicate(fieldMapping.endTime, 'greaterthan', startDate)));\r\n var filter = new DataManager({ json: appointments }).executeLocal(new Query().where(predicate));\r\n if (resourceTdData) {\r\n filter = this.filterEventsByResource(resourceTdData, filter);\r\n }\r\n return this.sortByTime(filter);\r\n };\r\n EventBase.prototype.filterEventsByRange = function (eventCollection, startDate, endDate) {\r\n var _this = this;\r\n var filteredEvents = [];\r\n if (startDate && endDate) {\r\n filteredEvents = this.filterEvents(startDate, endDate, eventCollection);\r\n }\r\n else if (startDate && !endDate) {\r\n filteredEvents = eventCollection.filter(function (e) { return e[_this.parent.eventFields.startTime] >= startDate; });\r\n }\r\n else if (!startDate && endDate) {\r\n filteredEvents = eventCollection.filter(function (e) { return e[_this.parent.eventFields.endTime] <= endDate; });\r\n }\r\n else {\r\n filteredEvents = eventCollection;\r\n }\r\n return this.sortByTime(filteredEvents);\r\n };\r\n EventBase.prototype.filterEventsByResource = function (resourceTdData, appointments) {\r\n if (appointments === void 0) { appointments = this.parent.eventsProcessed; }\r\n var predicate = {};\r\n var resourceCollection = this.parent.resourceBase.resourceCollection;\r\n for (var level = 0; level < resourceCollection.length; level++) {\r\n predicate[resourceCollection[level].field] = resourceTdData.groupOrder[level];\r\n }\r\n var keys = Object.keys(predicate);\r\n var filteredCollection = appointments.filter(function (eventObj) { return keys.every(function (key) {\r\n if (eventObj[key] instanceof Array) {\r\n return eventObj[key].indexOf(predicate[key]) > -1;\r\n }\r\n else {\r\n return eventObj[key] === predicate[key];\r\n }\r\n }); });\r\n return filteredCollection;\r\n };\r\n EventBase.prototype.sortByTime = function (appointmentsCollection) {\r\n if (this.parent.eventSettings.sortComparer) {\r\n appointmentsCollection = this.parent.eventSettings.sortComparer.call(this.parent, appointmentsCollection);\r\n }\r\n else {\r\n var fieldMappings_1 = this.parent.eventFields;\r\n appointmentsCollection.sort(function (a, b) {\r\n var d1 = a[fieldMappings_1.startTime];\r\n var d2 = b[fieldMappings_1.startTime];\r\n return d1.getTime() - d2.getTime();\r\n });\r\n }\r\n return appointmentsCollection;\r\n };\r\n EventBase.prototype.sortByDateTime = function (appointments) {\r\n if (this.parent.eventSettings.sortComparer) {\r\n appointments = this.parent.eventSettings.sortComparer.call(this.parent, appointments);\r\n }\r\n else {\r\n var fieldMapping_1 = this.parent.eventFields;\r\n appointments.sort(function (object1, object2) {\r\n var d3 = object1[fieldMapping_1.startTime];\r\n var d4 = object2[fieldMapping_1.startTime];\r\n var d5 = object1[fieldMapping_1.endTime];\r\n var d6 = object2[fieldMapping_1.endTime];\r\n var d1 = d5.getTime() - d3.getTime();\r\n var d2 = d6.getTime() - d4.getTime();\r\n return (d3.getTime() - d4.getTime() || d2 - d1);\r\n });\r\n }\r\n return appointments;\r\n };\r\n EventBase.prototype.getSmallestMissingNumber = function (array) {\r\n var large = Math.max.apply(Math, array);\r\n for (var i = 0; i < large; i++) {\r\n if (array.indexOf(i) === -1) {\r\n return i;\r\n }\r\n }\r\n return large + 1;\r\n };\r\n EventBase.prototype.splitEventByDay = function (event) {\r\n var eventFields = this.parent.eventFields;\r\n var data = [];\r\n var eventStartTime = event[eventFields.startTime];\r\n var eventEndTime = event[eventFields.endTime];\r\n var isDifferentDate = util.resetTime(new Date(eventStartTime.getTime())) <\r\n util.resetTime(new Date(eventEndTime.getTime()));\r\n if (isDifferentDate) {\r\n var start = new Date(eventStartTime.getTime());\r\n var end = util.addDays(util.resetTime(new Date(eventStartTime.getTime())), 1);\r\n var endDate = (eventEndTime.getHours() === 0 && eventEndTime.getMinutes() === 0) ?\r\n eventEndTime : util.addDays(eventEndTime, 1);\r\n var index = 1;\r\n var eventLength = util.getDaysCount(eventStartTime.getTime(), endDate.getTime());\r\n while (end <= eventEndTime && start.getTime() !== end.getTime()) {\r\n var app = extend({}, event);\r\n app[eventFields.startTime] = start;\r\n app[eventFields.endTime] = end;\r\n app.data = { index: index, count: eventLength };\r\n app.Guid = this.generateGuid();\r\n app.isSpanned = true;\r\n data.push(app);\r\n start = end;\r\n if ((util.resetTime(new Date(start.getTime())).getTime() === util.resetTime(new Date(eventEndTime.getTime())).getTime())\r\n && !(end.getTime() === eventEndTime.getTime())) {\r\n end = new Date(start.getTime());\r\n end = new Date(end.setHours(eventEndTime.getHours(), eventEndTime.getMinutes(), eventEndTime.getSeconds()));\r\n }\r\n else {\r\n end = util.addDays(util.resetTime(new Date(start.getTime())), 1);\r\n }\r\n index++;\r\n }\r\n }\r\n else {\r\n data.push(event);\r\n }\r\n return data;\r\n };\r\n EventBase.prototype.splitEvent = function (event, dateRender) {\r\n var fields = this.parent.eventFields;\r\n var start = util.resetTime(event[fields.startTime]).getTime();\r\n var end = util.resetTime(event[fields.endTime]).getTime();\r\n if (util.getDateInMs(event[fields.endTime]) <= 0) {\r\n var temp = util.addDays(util.resetTime(event[fields.endTime]), -1).getTime();\r\n end = start > temp ? start : temp;\r\n }\r\n var orgStart = start;\r\n var orgEnd = end;\r\n var ranges = [];\r\n if (start !== end) {\r\n if (start < dateRender[0].getTime()) {\r\n start = dateRender[0].getTime();\r\n }\r\n if (end > dateRender[dateRender.length - 1].getTime()) {\r\n end = dateRender[dateRender.length - 1].getTime();\r\n }\r\n var cStart = start;\r\n for (var level = 0; level < this.slots.length; level++) {\r\n var slot = this.slots[level];\r\n if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek'\r\n || this.parent.activeViewOptions.group.byDate || this.parent.activeViewOptions.showWeekend) {\r\n var slotDates = [];\r\n for (var _i = 0, slot_1 = slot; _i < slot_1.length; _i++) {\r\n var s = slot_1[_i];\r\n slotDates.push(new Date(s));\r\n }\r\n var renderedDates = this.getRenderedDates(slotDates);\r\n if (!isNullOrUndefined(renderedDates) && renderedDates.length > 0) {\r\n slot = [];\r\n for (var _a = 0, renderedDates_1 = renderedDates; _a < renderedDates_1.length; _a++) {\r\n var date = renderedDates_1[_a];\r\n slot.push(date.getTime());\r\n }\r\n }\r\n }\r\n if (typeof (slot) === 'number') {\r\n var temp = slot;\r\n slot = [];\r\n slot.push(temp);\r\n }\r\n var firstSlot = slot[0];\r\n cStart = (cStart <= firstSlot && end >= firstSlot) ? firstSlot : cStart;\r\n if (cStart > end || firstSlot > end) {\r\n break;\r\n }\r\n if (!this.parent.activeViewOptions.group.byDate && this.parent.activeViewOptions.showWeekend &&\r\n this.parent.currentView !== 'WorkWeek' && this.parent.currentView !== 'TimelineWorkWeek') {\r\n var startIndex = slot.indexOf(cStart);\r\n if (startIndex !== -1) {\r\n var endIndex = slot.indexOf(end);\r\n var hasBreak = endIndex !== -1;\r\n endIndex = hasBreak ? endIndex : slot.length - 1;\r\n var count = ((endIndex - startIndex) + 1);\r\n var isLeft = (slot[startIndex] !== orgStart);\r\n var isRight = (slot[endIndex] !== orgEnd);\r\n ranges.push(this.cloneEventObject(event, slot[startIndex], slot[endIndex], count, isLeft, isRight));\r\n if (hasBreak) {\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n if (this.dateInRange(cStart, slot[0], slot[slot.length - 1])) {\r\n var availSlot = [];\r\n for (var i = 0; i < slot.length; i++) {\r\n if (this.dateInRange(slot[i], orgStart, orgEnd)) {\r\n availSlot.push(slot[i]);\r\n }\r\n }\r\n if (availSlot.length > 0) {\r\n if (!this.parent.activeViewOptions.group.byDate) {\r\n var isLeft = (availSlot[0] !== orgStart);\r\n var isRight = (availSlot[availSlot.length - 1] !== orgEnd);\r\n ranges.push(this.cloneEventObject(event, availSlot[0], availSlot[availSlot.length - 1], availSlot.length, isLeft, isRight));\r\n }\r\n else {\r\n for (var _b = 0, availSlot_1 = availSlot; _b < availSlot_1.length; _b++) {\r\n var slot_2 = availSlot_1[_b];\r\n ranges.push(this.cloneEventObject(event, slot_2, slot_2, 1, (slot_2 !== orgStart), (slot_2 !== orgEnd)));\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n ranges.push(this.cloneEventObject(event, start, end, 1, false, false));\r\n }\r\n return ranges;\r\n };\r\n EventBase.prototype.cloneEventObject = function (event, start, end, count, isLeft, isRight) {\r\n var fields = this.parent.eventFields;\r\n var e = extend({}, event, null, true);\r\n var data = { count: count, isLeft: isLeft, isRight: isRight };\r\n data[fields.startTime] = event[fields.startTime];\r\n data[fields.endTime] = event[fields.endTime];\r\n e.data = data;\r\n e[fields.startTime] = new Date(start);\r\n e[fields.endTime] = new Date(end);\r\n return e;\r\n };\r\n EventBase.prototype.dateInRange = function (date, start, end) {\r\n return start <= date && date <= end;\r\n };\r\n EventBase.prototype.getSelectedEventElements = function (target) {\r\n this.removeSelectedAppointmentClass();\r\n if (this.parent.selectedElements.length <= 0) {\r\n this.parent.selectedElements.push(target);\r\n }\r\n else {\r\n var isAlreadySelected = this.parent.selectedElements.filter(function (element) {\r\n return element.getAttribute('data-guid') === target.getAttribute('data-guid');\r\n });\r\n if (isAlreadySelected.length <= 0) {\r\n var elementSelector = 'div[data-guid=\"' + target.getAttribute('data-guid') + '\"]';\r\n var focusElements = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\r\n for (var _i = 0, focusElements_1 = focusElements; _i < focusElements_1.length; _i++) {\r\n var element = focusElements_1[_i];\r\n this.parent.selectedElements.push(element);\r\n }\r\n }\r\n else {\r\n var selectedElements = this.parent.selectedElements.filter(function (element) {\r\n return element.getAttribute('data-guid') !== target.getAttribute('data-guid');\r\n });\r\n this.parent.selectedElements = selectedElements;\r\n }\r\n }\r\n if (target && this.parent.selectedElements.length > 0) {\r\n this.addSelectedAppointments(this.parent.selectedElements);\r\n }\r\n return this.parent.selectedElements;\r\n };\r\n EventBase.prototype.getSelectedEvents = function () {\r\n var _this = this;\r\n var eventSelect = [];\r\n var elementSelect = [];\r\n var selectAppointments = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER));\r\n selectAppointments.filter(function (element) {\r\n var isAlreadyAdded = eventSelect.filter(function (event) {\r\n return event.Guid === element.getAttribute('data-guid');\r\n });\r\n if (isAlreadyAdded.length === 0) {\r\n eventSelect.push(_this.getEventByGuid(element.getAttribute('data-guid')));\r\n }\r\n elementSelect.push(element);\r\n });\r\n return {\r\n event: eventSelect.length > 1 ? eventSelect : eventSelect[0],\r\n element: elementSelect.length > 1 ? elementSelect : elementSelect[0]\r\n };\r\n };\r\n EventBase.prototype.removeSelectedAppointmentClass = function () {\r\n var selectedAppointments = this.getSelectedAppointments();\r\n for (var _i = 0, selectedAppointments_1 = selectedAppointments; _i < selectedAppointments_1.length; _i++) {\r\n var appointment = selectedAppointments_1[_i];\r\n appointment.setAttribute('aria-selected', 'false');\r\n }\r\n removeClass(selectedAppointments, cls.APPOINTMENT_BORDER);\r\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n removeClass(selectedAppointments, cls.AGENDA_SELECTED_CELL);\r\n }\r\n };\r\n EventBase.prototype.addSelectedAppointments = function (cells) {\r\n for (var _i = 0, cells_1 = cells; _i < cells_1.length; _i++) {\r\n var cell = cells_1[_i];\r\n cell.setAttribute('aria-selected', 'true');\r\n }\r\n if (this.parent.currentView !== 'MonthAgenda') {\r\n this.parent.removeSelectedClass();\r\n }\r\n addClass(cells, cls.APPOINTMENT_BORDER);\r\n };\r\n EventBase.prototype.getSelectedAppointments = function () {\r\n return [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER + ',.' + cls.APPOINTMENT_CLASS + ':focus'));\r\n };\r\n EventBase.prototype.focusElement = function (isFocused) {\r\n if (this.parent.eventWindow.dialogObject && this.parent.eventWindow.dialogObject.visible) {\r\n return;\r\n }\r\n var activeEle = document.activeElement;\r\n var selectedCell = this.parent.getSelectedElements();\r\n if (selectedCell.length > 0 && ((activeEle && (this.parent.element.contains(activeEle) ||\r\n selectedCell.indexOf(activeEle) !== -1)) || isFocused)) {\r\n if (this.parent.keyboardInteractionModule) {\r\n var target = ((!isNullOrUndefined(this.parent.activeCellsData) &&\r\n this.parent.activeCellsData.element) || selectedCell[selectedCell.length - 1]);\r\n this.parent.keyboardInteractionModule.selectCells(target instanceof Array, target);\r\n }\r\n return;\r\n }\r\n var selectedAppointments = this.getSelectedAppointments();\r\n if (selectedAppointments.length > 0) {\r\n selectedAppointments[selectedAppointments.length - 1].focus();\r\n return;\r\n }\r\n };\r\n EventBase.prototype.selectWorkCellByTime = function (eventsData) {\r\n var target;\r\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n return target;\r\n }\r\n if (eventsData.length > 0) {\r\n var selectedObject = eventsData[eventsData.length - 1];\r\n var eventStartTime = selectedObject[this.parent.eventFields.startTime];\r\n var nearestTime = new Date(+eventStartTime).setMinutes(0, 0, 0);\r\n var isAllDay = this.isAllDayAppointment(selectedObject);\r\n if (this.parent.currentView === 'Month' || isAllDay) {\r\n nearestTime = new Date(+eventStartTime).setHours(0, 0, 0, 0);\r\n }\r\n var targetArea = void 0;\r\n if (isAllDay && ['Day', 'Week', 'WorkWeek'].indexOf(this.parent.currentView) !== -1) {\r\n targetArea = this.parent.getAllDayRow();\r\n }\r\n else {\r\n targetArea = this.parent.getContentTable();\r\n }\r\n var queryString = '[data-date=\"' + new Date(nearestTime).getTime() + '\"]';\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n queryString += '[data-group-index=\"' + this.getGroupIndexFromEvent(selectedObject) + '\"]';\r\n }\r\n target = targetArea.querySelector(queryString);\r\n if (target) {\r\n this.parent.activeCellsData = this.parent.getCellDetails(target);\r\n if (this.parent.keyboardInteractionModule) {\r\n this.parent.keyboardInteractionModule.selectCells(false, target);\r\n }\r\n return target;\r\n }\r\n }\r\n return target;\r\n };\r\n EventBase.prototype.getGroupIndexFromEvent = function (eventData) {\r\n var levelIndex;\r\n var resource;\r\n var levelName;\r\n var idField;\r\n for (var i = this.parent.resourceBase.resourceCollection.length - 1; i >= 0; i--) {\r\n var resourceData = eventData[this.parent.resourceBase.resourceCollection[i].field];\r\n if (!isNullOrUndefined(resourceData)) {\r\n resource = this.parent.resourceBase.resourceCollection[i];\r\n levelIndex = i;\r\n levelName = resource.name;\r\n idField = resource.field;\r\n break;\r\n }\r\n }\r\n if (isNullOrUndefined(levelName) && isNullOrUndefined(levelIndex)) {\r\n levelName = this.parent.resourceCollection.slice(-1)[0].name;\r\n levelIndex = this.parent.resourceCollection.length - 1;\r\n idField = this.parent.resourceCollection.slice(-1)[0].field;\r\n resource = this.parent.resourceCollection.filter(function (e, index) {\r\n if (e.name === levelName) {\r\n levelIndex = index;\r\n return e;\r\n }\r\n return null;\r\n })[0];\r\n }\r\n var id = ((eventData[idField] instanceof Array) ?\r\n eventData[idField][0] : eventData[idField]);\r\n if (levelIndex > 0) {\r\n var parentField = this.parent.resourceCollection[levelIndex - 1].field;\r\n return this.parent.resourceBase.getIndexFromResourceId(id, levelName, resource, eventData, parentField);\r\n }\r\n else {\r\n return this.parent.resourceBase.getIndexFromResourceId(id, levelName, resource);\r\n }\r\n };\r\n EventBase.prototype.isAllDayAppointment = function (event) {\r\n var fieldMapping = this.parent.eventFields;\r\n var isAllDay = event[fieldMapping.isAllDay];\r\n var isFullDay = ((event[fieldMapping.endTime].getTime() - event[fieldMapping.startTime].getTime())\r\n / util.MS_PER_DAY) >= 1;\r\n return (isAllDay || (this.parent.eventSettings.spannedEventPlacement !== 'TimeSlot' && isFullDay)) ? true : false;\r\n };\r\n EventBase.prototype.addEventListener = function () {\r\n this.parent.on(event.documentClick, this.appointmentBorderRemove, this);\r\n };\r\n EventBase.prototype.removeEventListener = function () {\r\n this.parent.off(event.documentClick, this.appointmentBorderRemove);\r\n };\r\n EventBase.prototype.appointmentBorderRemove = function (event) {\r\n var element = event.event.target;\r\n if (closest(element, '.' + cls.APPOINTMENT_CLASS)) {\r\n if (this.parent.currentView !== 'MonthAgenda') {\r\n this.parent.removeSelectedClass();\r\n }\r\n }\r\n else if (!closest(element, '.' + cls.POPUP_OPEN)) {\r\n this.removeSelectedAppointmentClass();\r\n }\r\n };\r\n EventBase.prototype.wireAppointmentEvents = function (element, event, isPreventCrud) {\r\n if (isPreventCrud === void 0) { isPreventCrud = false; }\r\n var isReadOnly = (!isNullOrUndefined(event)) ? event[this.parent.eventFields.isReadonly] : false;\r\n EventHandler.add(element, 'click', this.eventClick, this);\r\n if (!this.parent.isAdaptive && !this.parent.activeViewOptions.readonly && !isReadOnly) {\r\n EventHandler.add(element, 'touchstart', this.eventTouchClick, this);\r\n EventHandler.add(element, 'dblclick', this.eventDoubleClick, this);\r\n }\r\n if (!this.parent.activeViewOptions.readonly && !isReadOnly && !isPreventCrud) {\r\n if (this.parent.resizeModule) {\r\n this.parent.resizeModule.wireResizeEvent(element);\r\n }\r\n if (this.parent.dragAndDropModule) {\r\n this.parent.dragAndDropModule.wireDragEvent(element);\r\n }\r\n }\r\n };\r\n EventBase.prototype.eventTouchClick = function (e) {\r\n var _this = this;\r\n setTimeout(function () { return _this.isDoubleTapped = false; }, 250);\r\n e.preventDefault();\r\n if (this.isDoubleTapped) {\r\n this.eventDoubleClick(e);\r\n }\r\n else if (!this.isDoubleTapped) {\r\n this.isDoubleTapped = true;\r\n this.eventClick(e);\r\n }\r\n };\r\n EventBase.prototype.renderResizeHandler = function (element, spanEvent, isReadOnly) {\r\n if (!this.parent.resizeModule || !this.parent.allowResizing || this.parent.activeViewOptions.readonly || isReadOnly) {\r\n return;\r\n }\r\n for (var _i = 0, _a = Object.keys(spanEvent); _i < _a.length; _i++) {\r\n var resizeEdge = _a[_i];\r\n var resizeHandler = createElement('div', { className: cls.EVENT_RESIZE_CLASS });\r\n switch (resizeEdge) {\r\n case 'isLeft':\r\n if (!spanEvent.isLeft) {\r\n resizeHandler.appendChild(createElement('div', { className: 'e-left-right-resize' }));\r\n addClass([resizeHandler], this.parent.enableRtl ? cls.RIGHT_RESIZE_HANDLER : cls.LEFT_RESIZE_HANDLER);\r\n prepend([resizeHandler], element);\r\n }\r\n break;\r\n case 'isRight':\r\n if (!spanEvent.isRight) {\r\n resizeHandler.appendChild(createElement('div', { className: 'e-left-right-resize' }));\r\n addClass([resizeHandler], this.parent.enableRtl ? cls.LEFT_RESIZE_HANDLER : cls.RIGHT_RESIZE_HANDLER);\r\n append([resizeHandler], element);\r\n }\r\n break;\r\n case 'isTop':\r\n if (!spanEvent.isTop) {\r\n resizeHandler.appendChild(createElement('div', { className: 'e-top-bottom-resize' }));\r\n addClass([resizeHandler], cls.TOP_RESIZE_HANDLER);\r\n prepend([resizeHandler], element);\r\n }\r\n break;\r\n case 'isBottom':\r\n if (!spanEvent.isBottom) {\r\n resizeHandler.appendChild(createElement('div', { className: 'e-top-bottom-resize' }));\r\n addClass([resizeHandler], cls.BOTTOM_RESIZE_HANDLER);\r\n append([resizeHandler], element);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n EventBase.prototype.eventClick = function (eventData) {\r\n var _this = this;\r\n var target = eventData.target;\r\n if (target.classList.contains(cls.DRAG_CLONE_CLASS) || target.classList.contains(cls.RESIZE_CLONE_CLASS)) {\r\n return;\r\n }\r\n if ((eventData.ctrlKey || eventData.metaKey) && eventData.which === 1 && this.parent.keyboardInteractionModule) {\r\n this.parent.quickPopup.quickPopup.hide();\r\n this.parent.selectedElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_BORDER));\r\n var target_1 = closest(eventData.target, '.' + cls.APPOINTMENT_CLASS);\r\n this.getSelectedEventElements(target_1);\r\n this.activeEventData(eventData, false);\r\n var selectArgs = {\r\n data: this.parent.activeEventData.event,\r\n element: this.parent.activeEventData.element,\r\n event: eventData, requestType: 'eventSelect'\r\n };\r\n this.parent.trigger(event.select, selectArgs);\r\n var args = extend(this.parent.activeEventData, { cancel: false, originalEvent: eventData });\r\n this.parent.trigger(event.eventClick, args);\r\n }\r\n else {\r\n this.removeSelectedAppointmentClass();\r\n this.activeEventData(eventData, true);\r\n var selectEventArgs = {\r\n data: this.parent.activeEventData.event,\r\n element: this.parent.activeEventData.element,\r\n event: eventData, requestType: 'eventSelect'\r\n };\r\n this.parent.trigger(event.select, selectEventArgs);\r\n var args = extend(this.parent.activeEventData, { cancel: false, originalEvent: eventData });\r\n this.parent.trigger(event.eventClick, args, function (eventClickArgs) {\r\n if (eventClickArgs.cancel) {\r\n _this.removeSelectedAppointmentClass();\r\n if (_this.parent.quickPopup) {\r\n _this.parent.quickPopup.quickPopupHide();\r\n }\r\n }\r\n else {\r\n if (_this.parent.currentView === 'Agenda' || _this.parent.currentView === 'MonthAgenda') {\r\n addClass([_this.parent.activeEventData.element], cls.AGENDA_SELECTED_CELL);\r\n }\r\n if (_this.parent.allowInline) {\r\n var inlineArgs = {\r\n data: eventClickArgs.event,\r\n element: eventClickArgs.element,\r\n type: 'Event'\r\n };\r\n _this.parent.notify(event.inlineClick, inlineArgs);\r\n }\r\n else {\r\n _this.parent.notify(event.eventClick, eventClickArgs);\r\n }\r\n }\r\n });\r\n }\r\n };\r\n EventBase.prototype.eventDoubleClick = function (e) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide(true);\r\n }\r\n if (e.type === 'touchstart') {\r\n this.activeEventData(e, true);\r\n }\r\n this.removeSelectedAppointmentClass();\r\n if (this.parent.activeEventData.element.classList.contains(cls.INLINE_APPOINTMENT_CLASS) ||\r\n this.parent.activeEventData.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS)) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(this.parent.activeEventData.event) &&\r\n isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceID])) {\r\n this.parent.eventWindow.openEditor(this.parent.activeEventData.event, 'Save');\r\n }\r\n else {\r\n this.parent.currentAction = 'EditOccurrence';\r\n this.parent.quickPopup.openRecurrenceAlert();\r\n }\r\n };\r\n EventBase.prototype.getEventByGuid = function (guid) {\r\n return this.parent.eventsProcessed.filter(function (data) { return data.Guid === guid; })[0];\r\n };\r\n EventBase.prototype.getEventById = function (id) {\r\n var _this = this;\r\n return this.parent.eventsData.filter(function (data) {\r\n return data[_this.parent.eventFields.id] === id;\r\n })[0];\r\n };\r\n EventBase.prototype.generateGuid = function () {\r\n return 'xyxxxxyx-xxxy-yxxx-xyxx-xxyxxxxyyxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0;\r\n var v = (c === 'x') ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n };\r\n EventBase.prototype.getEventIDType = function () {\r\n if (this.parent.eventsData.length !== 0) {\r\n return typeof (this.parent.eventsData[0][this.parent.eventFields.id]);\r\n }\r\n if (this.parent.blockData.length !== 0) {\r\n return typeof (this.parent.blockData[0][this.parent.eventFields.id]);\r\n }\r\n return 'string';\r\n };\r\n EventBase.prototype.getEventMaxID = function (resourceId) {\r\n var _this = this;\r\n if (this.parent.eventsData.length < 1 && this.parent.blockData.length < 1) {\r\n return 1;\r\n }\r\n var eventId;\r\n var idType = this.getEventIDType();\r\n if (idType === 'string') {\r\n eventId = this.generateGuid();\r\n }\r\n if (idType === 'number') {\r\n var datas = this.parent.eventsData.concat(this.parent.blockData);\r\n var maxId = Math.max.apply(Math, datas.map(function (event) { return event[_this.parent.eventFields.id]; }));\r\n maxId = isNullOrUndefined(resourceId) ? maxId : maxId + resourceId;\r\n eventId = maxId + 1;\r\n }\r\n return eventId;\r\n };\r\n EventBase.prototype.activeEventData = function (eventData, isMultiple) {\r\n var _this = this;\r\n var target = closest(eventData.target, '.' + cls.APPOINTMENT_CLASS);\r\n var guid = target.getAttribute('data-guid');\r\n if (isMultiple) {\r\n this.addSelectedAppointments([].slice.call(this.parent.element.querySelectorAll('div[data-guid=\"' + guid + '\"]')));\r\n target.focus();\r\n }\r\n var eventObject = this.getEventByGuid(guid);\r\n if (eventObject && eventObject.isSpanned) {\r\n eventObject = this.parent.eventsData.filter(function (obj) {\r\n return obj[_this.parent.eventFields.id] === eventObject[_this.parent.eventFields.id];\r\n })[0];\r\n }\r\n this.parent.activeEventData = { event: eventObject, element: target };\r\n };\r\n EventBase.prototype.generateOccurrence = function (event, viewDate, oldTimezone, isMaxCount) {\r\n var startDate = event[this.parent.eventFields.startTime];\r\n var endDate = event[this.parent.eventFields.endTime];\r\n var eventRule = event[this.parent.eventFields.recurrenceRule];\r\n var duration = endDate.getTime() - startDate.getTime();\r\n viewDate = new Date((viewDate || this.parent.activeView.startDate()).getTime() - duration);\r\n var exception = event[this.parent.eventFields.recurrenceException];\r\n var maxCount;\r\n if (this.parent.currentView !== 'Agenda' && isMaxCount) {\r\n maxCount = util.getDateCount(this.parent.activeView.startDate(), this.parent.activeView.endDate()) + 1;\r\n }\r\n var newTimezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();\r\n var firstDay = this.parent.activeViewOptions.firstDayOfWeek;\r\n var calendarMode = this.parent.calendarMode;\r\n var dates = generate(startDate, eventRule, exception, firstDay, maxCount, viewDate, calendarMode, oldTimezone, newTimezone);\r\n if (this.parent.currentView === 'Agenda' && eventRule.indexOf('COUNT') === -1 && eventRule.indexOf('UNTIL') === -1) {\r\n if (isNullOrUndefined(event.generatedDates)) {\r\n event.generatedDates = { start: new Date(dates[0]), end: new Date(dates[dates.length - 1]) };\r\n }\r\n else {\r\n if (dates[0] < event.generatedDates.start.getTime()) {\r\n event.generatedDates.start = new Date(dates[0]);\r\n }\r\n if (dates[dates.length - 1] > event.generatedDates.end.getTime()) {\r\n event.generatedDates.end = new Date(dates[dates.length - 1]);\r\n }\r\n }\r\n }\r\n var occurrenceCollection = [];\r\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\r\n var date = dates_1[_i];\r\n var clonedObject = extend({}, event, null, true);\r\n clonedObject[this.parent.eventFields.startTime] = new Date(date);\r\n clonedObject[this.parent.eventFields.endTime] = new Date(new Date(date).setMilliseconds(duration));\r\n clonedObject[this.parent.eventFields.recurrenceID] = clonedObject[this.parent.eventFields.id];\r\n delete clonedObject[this.parent.eventFields.recurrenceException];\r\n delete clonedObject[this.parent.eventFields.followingID];\r\n clonedObject.Guid = this.generateGuid();\r\n occurrenceCollection.push(clonedObject);\r\n }\r\n return occurrenceCollection;\r\n };\r\n EventBase.prototype.getParentEvent = function (eventObj, isParent) {\r\n if (isParent === void 0) { isParent = false; }\r\n var parentEvent;\r\n do {\r\n eventObj = this.getFollowingEvent(eventObj);\r\n if (eventObj) {\r\n parentEvent = extend({}, eventObj, null, true);\r\n }\r\n } while (eventObj && isParent);\r\n if (isParent && parentEvent) {\r\n var collection = this.getEventCollections(parentEvent);\r\n var followObj = collection.follow.slice(-1)[0];\r\n if (collection.occurrence.length > 0 && !parentEvent[this.parent.eventFields.recurrenceException]) {\r\n followObj = collection.occurrence.slice(-1)[0];\r\n }\r\n if (followObj) {\r\n parentEvent[this.parent.eventFields.recurrenceRule] = followObj[this.parent.eventFields.recurrenceRule];\r\n }\r\n }\r\n return parentEvent;\r\n };\r\n EventBase.prototype.getEventCollections = function (parentObj, childObj) {\r\n var followingCollection = [];\r\n var occurrenceCollection = [];\r\n var followingEvent = parentObj;\r\n do {\r\n followingEvent = this.getFollowingEvent(followingEvent, true);\r\n if (followingEvent) {\r\n followingCollection.push(followingEvent);\r\n }\r\n occurrenceCollection = occurrenceCollection.concat(this.getOccurrenceEvent(followingEvent || parentObj));\r\n } while (followingEvent);\r\n var collections = {};\r\n if (childObj) {\r\n var fields_1 = this.parent.eventFields;\r\n collections = {\r\n follow: followingCollection.filter(function (eventData) {\r\n return eventData[fields_1.startTime] >= childObj[fields_1.startTime];\r\n }),\r\n occurrence: occurrenceCollection.filter(function (eventData) {\r\n return eventData[fields_1.startTime] >= childObj[fields_1.startTime];\r\n })\r\n };\r\n }\r\n else {\r\n collections = { follow: followingCollection, occurrence: occurrenceCollection };\r\n }\r\n return collections;\r\n };\r\n EventBase.prototype.getFollowingEvent = function (parentObj, isReverse) {\r\n var fields = this.parent.eventFields;\r\n var fieldValue;\r\n if (isReverse) {\r\n fieldValue = parentObj[fields.id];\r\n }\r\n else {\r\n fieldValue = (parentObj[fields.recurrenceID] || parentObj[fields.followingID]);\r\n }\r\n var parentApp = this.parent.eventsData.filter(function (data) {\r\n return data[isReverse ? fields.followingID : fields.id] === fieldValue;\r\n });\r\n return parentApp.shift();\r\n };\r\n EventBase.prototype.isFollowingEvent = function (parentObj, childObj) {\r\n var parentStart = parentObj[this.parent.eventFields.startTime];\r\n var childStart = childObj[this.parent.eventFields.startTime];\r\n return parentStart.getHours() === childStart.getHours() && parentStart.getMinutes() === childStart.getMinutes() &&\r\n parentStart.getSeconds() === childStart.getSeconds();\r\n };\r\n EventBase.prototype.getOccurrenceEvent = function (eventObj, isGuid, isFollowing) {\r\n if (isGuid === void 0) { isGuid = false; }\r\n if (isFollowing === void 0) { isFollowing = false; }\r\n var idField = isGuid ? 'Guid' : (isFollowing) ? this.parent.eventFields.followingID : this.parent.eventFields.recurrenceID;\r\n var fieldKey = isGuid ? 'Guid' : this.parent.eventFields.id;\r\n var dataSource = isGuid ? this.parent.eventsProcessed : this.parent.eventsData;\r\n return dataSource.filter(function (data) { return data[idField] === eventObj[fieldKey]; });\r\n };\r\n EventBase.prototype.getOccurrencesByID = function (id) {\r\n var fields = this.parent.eventFields;\r\n var occurrenceCollection = [];\r\n var parentObject = this.parent.eventsData.filter(function (obj) { return obj[fields.id] === id; });\r\n for (var _i = 0, parentObject_1 = parentObject; _i < parentObject_1.length; _i++) {\r\n var event_3 = parentObject_1[_i];\r\n if (!isNullOrUndefined(event_3[fields.recurrenceRule])) {\r\n occurrenceCollection = occurrenceCollection.concat(this.generateOccurrence(event_3));\r\n }\r\n }\r\n return occurrenceCollection;\r\n };\r\n EventBase.prototype.getOccurrencesByRange = function (startTime, endTime) {\r\n var fields = this.parent.eventFields;\r\n var occurrenceCollection = [];\r\n for (var _i = 0, _a = this.parent.eventsData; _i < _a.length; _i++) {\r\n var event_4 = _a[_i];\r\n if (!isNullOrUndefined(event_4[fields.recurrenceRule])) {\r\n occurrenceCollection = occurrenceCollection.concat(this.generateOccurrence(event_4));\r\n }\r\n }\r\n var filter = occurrenceCollection.filter(function (obj) {\r\n return obj[fields.startTime] >= startTime && obj[fields.endTime] <= endTime && !isNullOrUndefined(obj[fields.recurrenceID]);\r\n });\r\n return filter;\r\n };\r\n EventBase.prototype.getDeletedOccurrences = function (recurrenceData) {\r\n var fields = this.parent.eventFields;\r\n var parentObject;\r\n var deletedOccurrences = [];\r\n if (typeof recurrenceData === 'string' || typeof recurrenceData === 'number') {\r\n parentObject = this.parent.eventsData.filter(function (obj) {\r\n return obj[fields.id] === recurrenceData;\r\n })[0];\r\n }\r\n else {\r\n parentObject = extend({}, recurrenceData, null, true);\r\n }\r\n if (parentObject[fields.recurrenceException]) {\r\n var exDateString_1 = parentObject[fields.recurrenceException].split(',');\r\n var _loop_3 = function (i, len) {\r\n var edited = this_2.parent.eventsData.filter(function (eventObj) {\r\n return eventObj[fields.recurrenceID] === parentObject[fields.id] && eventObj[fields.recurrenceException] === exDateString_1[i];\r\n });\r\n if (edited.length === 0) {\r\n var exDate = getDateFromRecurrenceDateString(exDateString_1[i]);\r\n var childObject = extend({}, recurrenceData, null, true);\r\n childObject[fields.recurrenceID] = parentObject[fields.id];\r\n delete childObject[fields.followingID];\r\n childObject[fields.recurrenceException] = exDateString_1[i];\r\n var startDate = new Date(exDate.getTime());\r\n var time = parentObject[fields.endTime].getTime() - parentObject[fields.startTime].getTime();\r\n var endDate = new Date(startDate.getTime());\r\n endDate.setMilliseconds(time);\r\n childObject[fields.startTime] = new Date(startDate.getTime());\r\n childObject[fields.endTime] = new Date(endDate.getTime());\r\n deletedOccurrences.push(childObject);\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0, len = exDateString_1.length; i < len; i++) {\r\n _loop_3(i, len);\r\n }\r\n }\r\n return deletedOccurrences;\r\n };\r\n EventBase.prototype.applyResourceColor = function (element, data, type, index, alpha) {\r\n if (!this.parent.resourceBase) {\r\n return;\r\n }\r\n var alphaColor = function (color, alpha) {\r\n color = color.replace('#', '');\r\n var r = parseInt(color.substring(0, color.length / 3), 16);\r\n var g = parseInt(color.substring(color.length / 3, 2 * color.length / 3), 16);\r\n var b = parseInt(color.substring(2 * color.length / 3, 3 * color.length / 3), 16);\r\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\";\r\n };\r\n // index refers groupOrder\r\n var color = this.parent.resourceBase.getResourceColor(data, index);\r\n if (color) {\r\n element.style[type] = !isNullOrUndefined(alpha) ? alphaColor(color, alpha) : color;\r\n }\r\n };\r\n EventBase.prototype.createBlockAppointmentElement = function (record, resIndex) {\r\n var eventSubject = (record[this.parent.eventFields.subject] || this.parent.eventSettings.fields.subject.default);\r\n var appointmentWrapper = createElement('div', {\r\n className: cls.BLOCK_APPOINTMENT_CLASS,\r\n attrs: {\r\n 'data-id': 'Appointment_' + record[this.parent.eventFields.id],\r\n 'aria-readonly': 'true', 'aria-selected': 'false'\r\n }\r\n });\r\n var templateElement;\r\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.eventTemplateName;\r\n var templateId = scheduleId + viewName + 'eventTemplate';\r\n templateElement = this.parent.getAppointmentTemplate()(record, this.parent, 'eventTemplate', templateId, false);\r\n }\r\n else {\r\n var appointmentSubject = createElement('div', {\r\n className: cls.SUBJECT_CLASS, innerHTML: eventSubject\r\n });\r\n templateElement = [appointmentSubject];\r\n }\r\n append(templateElement, appointmentWrapper);\r\n this.setWrapperAttributes(appointmentWrapper, resIndex);\r\n return appointmentWrapper;\r\n };\r\n EventBase.prototype.setWrapperAttributes = function (appointmentWrapper, resIndex) {\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n addClass([appointmentWrapper], this.cssClass);\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n appointmentWrapper.setAttribute('data-group-index', resIndex.toString());\r\n }\r\n };\r\n EventBase.prototype.getReadonlyAttribute = function (event) {\r\n return (event[this.parent.eventFields.isReadonly] || this.parent.readonly).toString();\r\n };\r\n EventBase.prototype.isBlockRange = function (eventData) {\r\n var eventCollection = (eventData instanceof Array) ? eventData : [eventData];\r\n var isBlockAlert = false;\r\n var fields = this.parent.eventFields;\r\n for (var _i = 0, _a = eventCollection; _i < _a.length; _i++) {\r\n var event_5 = _a[_i];\r\n var dataCol = [];\r\n if (!isNullOrUndefined(event_5[fields.recurrenceRule]) &&\r\n (isNullOrUndefined(event_5[fields.recurrenceID]) || event_5[fields.id] === event_5[fields.recurrenceID])) {\r\n dataCol = this.generateOccurrence(event_5);\r\n }\r\n else {\r\n dataCol.push(event_5);\r\n }\r\n for (var _b = 0, dataCol_1 = dataCol; _b < dataCol_1.length; _b++) {\r\n var data = dataCol_1[_b];\r\n var filterBlockEvents = this.filterBlockEvents(data);\r\n if (filterBlockEvents.length > 0) {\r\n isBlockAlert = true;\r\n break;\r\n }\r\n }\r\n }\r\n this.parent.uiStateValues.isBlock = isBlockAlert;\r\n return isBlockAlert;\r\n };\r\n EventBase.prototype.getFilterEventsList = function (dataSource, query) {\r\n return new DataManager(dataSource).executeLocal(new Query().where(query));\r\n };\r\n EventBase.prototype.getSeriesEvents = function (parentEvent, startTime) {\r\n var fields = this.parent.eventFields;\r\n startTime = isNullOrUndefined(startTime) ? parentEvent[fields.startTime] : startTime;\r\n var deleteFutureEditEvents;\r\n var futureEvents;\r\n var deleteFutureEditEventList = [];\r\n var delId = parentEvent[fields.id];\r\n var followingId = parentEvent[fields.followingID];\r\n var deleteFutureEvent;\r\n var startTimeQuery = this.parent.currentAction === 'EditSeries' ? 'greaterthan' : 'greaterthanorequal';\r\n do {\r\n deleteFutureEvent = ((new Predicate(fields.followingID, 'equal', delId))).\r\n and(new Predicate(fields.startTime, startTimeQuery, startTime));\r\n futureEvents = this.getFilterEventsList(this.parent.eventsData, deleteFutureEvent);\r\n deleteFutureEditEvents = futureEvents.slice(-1)[0];\r\n if (!isNullOrUndefined(deleteFutureEditEvents) && deleteFutureEditEvents[fields.id] !== followingId) {\r\n deleteFutureEditEventList.push(deleteFutureEditEvents);\r\n delId = deleteFutureEditEvents[fields.id];\r\n followingId = deleteFutureEditEvents[fields.followingID];\r\n }\r\n else {\r\n followingId = null;\r\n }\r\n } while (futureEvents.length === 1 && !isNullOrUndefined(deleteFutureEditEvents[fields.followingID]));\r\n return deleteFutureEditEventList;\r\n };\r\n EventBase.prototype.getEditedOccurrences = function (deleteFutureEditEventList, startTime) {\r\n var fields = this.parent.eventFields;\r\n var deleteRecurrenceEventList = [];\r\n var delEditedEvents;\r\n for (var _i = 0, deleteFutureEditEventList_1 = deleteFutureEditEventList; _i < deleteFutureEditEventList_1.length; _i++) {\r\n var event_6 = deleteFutureEditEventList_1[_i];\r\n var delEventQuery = new Predicate(fields.recurrenceID, 'equal', event_6[fields.id]).\r\n or(new Predicate(fields.recurrenceID, 'equal', event_6[fields.followingID]).\r\n and(new Predicate(fields.recurrenceID, 'notequal', undefined)).\r\n and(new Predicate(fields.recurrenceID, 'notequal', null)));\r\n if (this.parent.currentAction === 'EditFollowingEvents' || this.parent.currentAction === 'DeleteFollowingEvents') {\r\n delEventQuery = delEventQuery.and(new Predicate(fields.startTime, 'greaterthanorequal', startTime));\r\n }\r\n delEditedEvents = this.getFilterEventsList(this.parent.eventsData, delEventQuery);\r\n deleteRecurrenceEventList = deleteRecurrenceEventList.concat(delEditedEvents);\r\n }\r\n return deleteRecurrenceEventList;\r\n };\r\n EventBase.prototype.getRenderedDates = function (dateRender) {\r\n var firstDate = 0;\r\n var lastDate = dateRender.length;\r\n var filteredDates;\r\n if (dateRender[0] < this.parent.minDate && dateRender[dateRender.length - 1] > this.parent.maxDate) {\r\n for (var i = 0; i < dateRender.length; i++) {\r\n if (util.resetTime(dateRender[i]).getTime() === util.resetTime(new Date(this.parent.minDate)).getTime()) {\r\n firstDate = i;\r\n }\r\n if (util.resetTime(dateRender[i]).getTime() === util.resetTime(new Date(this.parent.maxDate)).getTime()) {\r\n lastDate = i;\r\n }\r\n }\r\n filteredDates = dateRender.filter(function (date) { return date >= dateRender[firstDate] && date <= dateRender[lastDate]; });\r\n }\r\n return filteredDates;\r\n };\r\n EventBase.prototype.isValidEvent = function (eventObj, start, end, schedule) {\r\n var isHourRange = end.getTime() > schedule.startHour.getTime() && start.getTime() < schedule.endHour.getTime();\r\n var isSameRange = schedule.startHour.getTime() <= start.getTime() &&\r\n eventObj[this.parent.eventFields.startTime].getTime() >= schedule.startHour.getTime() &&\r\n eventObj[this.parent.eventFields.endTime].getTime() < schedule.endHour.getTime() && start.getTime() === end.getTime();\r\n return isHourRange || isSameRange;\r\n };\r\n EventBase.prototype.allDayExpandScroll = function (dateHeader, heightPropChanged) {\r\n var indentHeight = 0;\r\n var headerRows = [].slice.call(this.parent.element.querySelectorAll('.' + cls.HEADER_ROW_CLASS));\r\n headerRows.forEach(function (element) {\r\n var tdEle = [].slice.call(element.children);\r\n tdEle.forEach(function (ele) { ele.style.top = indentHeight + 'px'; });\r\n indentHeight += element.offsetHeight;\r\n });\r\n indentHeight = dateHeader.offsetHeight - indentHeight;\r\n this.parent.element.querySelector('.' + cls.ALLDAY_CELLS_CLASS).style.height = (indentHeight / 12) + 'em';\r\n var content = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (this.parent.uiStateValues.expand && (content.offsetWidth - content.clientWidth > 0 || heightPropChanged)) {\r\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\r\n }\r\n else {\r\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\r\n }\r\n };\r\n EventBase.prototype.unWireEvents = function () {\r\n var appElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));\r\n for (var _i = 0, appElements_1 = appElements; _i < appElements_1.length; _i++) {\r\n var element = appElements_1[_i];\r\n EventHandler.clearEvents(element);\r\n }\r\n };\r\n EventBase.prototype.destroy = function () {\r\n this.unWireEvents();\r\n this.parent = null;\r\n };\r\n return EventBase;\r\n}());\r\nexport { EventBase };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { addClass, createElement, closest, remove, removeClass } from '@syncfusion/ej2-base';\r\nimport { VerticalEvent } from '../event-renderer/vertical-view';\r\nimport { MonthEvent } from '../event-renderer/month';\r\nimport { TimelineEvent } from '../event-renderer/timeline-view';\r\nimport * as cls from '../base/css-constant';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Inline Edit interactions\r\n */\r\nvar InlineEdit = /** @class */ (function () {\r\n function InlineEdit(parent) {\r\n this.parent = parent;\r\n this.parent.on(events.inlineClick, this.inlineEdit, this);\r\n }\r\n InlineEdit.prototype.inlineEdit = function (args) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n var moreWrapper = this.parent.element.querySelector('.e-more-popup-wrapper ');\r\n if (moreWrapper && moreWrapper.classList.contains(cls.POPUP_OPEN)) {\r\n this.parent.quickPopup.morePopup.hide();\r\n }\r\n if (args.type === 'Cell') {\r\n this.removeInlineAppointmentElement();\r\n this.cellEdit(args);\r\n }\r\n else {\r\n if (this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS) !==\r\n args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS)) {\r\n this.removeInlineAppointmentElement();\r\n }\r\n this.eventEdit(args);\r\n }\r\n };\r\n InlineEdit.prototype.cellEdit = function (args) {\r\n var saveObj = this.generateEventData();\r\n var cellIndex = args.element.cellIndex;\r\n var count = this.getEventDaysCount(saveObj);\r\n if (count > 1) {\r\n count = Math.round(count);\r\n count--;\r\n cellIndex = cellIndex - count;\r\n }\r\n var start = util.resetTime(new Date('' + saveObj[this.parent.eventFields.startTime])).getTime();\r\n var end = util.resetTime(new Date('' + saveObj[this.parent.eventFields.endTime])).getTime();\r\n var resIndex = args.groupIndex || 0;\r\n if (this.parent.currentView === 'Day' || this.parent.currentView === 'Week' || this.parent.currentView === 'WorkWeek') {\r\n var dayIndex = saveObj[this.parent.eventFields.startTime].getDay();\r\n this.createVerticalViewInline(saveObj, dayIndex, resIndex, cellIndex);\r\n }\r\n else if (this.parent.currentView === 'Month') {\r\n this.createMonthViewInline(saveObj, resIndex, start, end);\r\n }\r\n else {\r\n this.createTimelineViewInline(saveObj, start, end, resIndex);\r\n }\r\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n if (inlineSubject) {\r\n inlineSubject.focus();\r\n }\r\n };\r\n InlineEdit.prototype.eventEdit = function (args) {\r\n var inlineSubject = args.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n var subject;\r\n if (inlineSubject) {\r\n subject = inlineSubject.value;\r\n }\r\n else {\r\n var subEle = args.element.querySelector('.' + cls.SUBJECT_CLASS);\r\n var timeEle = args.element.querySelector('.' + cls.APPOINTMENT_TIME);\r\n subject = subEle.innerText;\r\n inlineSubject = createElement('input', { className: cls.INLINE_SUBJECT_CLASS, attrs: { value: subject } });\r\n addClass([subEle], cls.DISABLE_CLASS);\r\n if (closest(args.element, '.' + cls.MORE_POPUP_WRAPPER_CLASS)) {\r\n args.element.insertBefore(inlineSubject, subEle);\r\n }\r\n else if (['Agenda', 'MonthAgenda'].indexOf(this.parent.currentView) > -1) {\r\n var subjectWrap = args.element.querySelector('.' + cls.SUBJECT_WRAP);\r\n subjectWrap.insertBefore(inlineSubject, subjectWrap.firstChild);\r\n }\r\n else {\r\n var elementSelector = ['TimelineDay', 'TimelineWeek', 'TimelineWorkWeek', 'TimelineMonth'].indexOf(this.parent.currentView) > -1 ?\r\n '.e-inner-wrap' : '.e-appointment-details';\r\n args.element.querySelector(elementSelector).insertBefore(inlineSubject, timeEle);\r\n }\r\n }\r\n inlineSubject.focus();\r\n inlineSubject.setSelectionRange(subject.length, subject.length);\r\n };\r\n InlineEdit.prototype.createVerticalViewInline = function (saveObj, dayIndex, resIndex, daysCount) {\r\n var _a;\r\n var count = this.getEventDaysCount(saveObj);\r\n var verticalEvent = new VerticalEvent(this.parent);\r\n verticalEvent.initializeValues();\r\n var index = verticalEvent.dateRender[resIndex].map(function (date) { return date.getDay(); }).indexOf(dayIndex);\r\n if (count >= 1) {\r\n verticalEvent.allDayElement = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\r\n (_a = verticalEvent.slots).push.apply(_a, this.parent.activeView.renderDates.map(function (date) { return +date; }));\r\n var allDayElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.ALLDAY_APPOINTMENT_CLASS));\r\n var allDayLevel = 0;\r\n if (allDayElements.length > 0) {\r\n allDayLevel = Math.floor(this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).getBoundingClientRect().height /\r\n allDayElements[0].offsetHeight) - 1;\r\n }\r\n verticalEvent.allDayLevel = allDayLevel;\r\n verticalEvent.renderAllDayEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline);\r\n }\r\n else {\r\n verticalEvent.renderNormalEvents(saveObj, index, resIndex, daysCount, this.parent.allowInline);\r\n }\r\n };\r\n InlineEdit.prototype.createMonthViewInline = function (saveObj, index, start, end) {\r\n var count = this.getEventDaysCount(saveObj);\r\n var saveObject = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);\r\n var monthEvent = new MonthEvent(this.parent);\r\n monthEvent.dateRender = this.parent.activeView.renderDates;\r\n monthEvent.inlineValue = this.parent.allowInline;\r\n var renderDates = this.parent.activeView.renderDates;\r\n var workDays = this.parent.activeViewOptions.workDays;\r\n var monthCellSelector = '.' + cls.WORK_CELLS_CLASS;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n monthCellSelector += '[data-group-index=\"' + index + '\"]';\r\n var resourceData = this.parent.resourceBase.lastResourceLevel[index];\r\n renderDates = resourceData.renderDates;\r\n workDays = resourceData.workDays;\r\n }\r\n monthEvent.workCells = [].slice.call(this.parent.element.querySelectorAll(monthCellSelector));\r\n monthEvent.cellWidth = monthEvent.workCells[0].offsetWidth;\r\n monthEvent.cellHeight = monthEvent.workCells[0].offsetHeight;\r\n monthEvent.eventHeight = util.getElementHeightFromClass(this.parent.monthModule.element, cls.APPOINTMENT_CLASS);\r\n monthEvent.getSlotDates(workDays);\r\n var filteredDates = monthEvent.getRenderedDates(renderDates);\r\n var spannedEvents = monthEvent.splitEvent(saveObject, filteredDates || renderDates);\r\n for (var _i = 0, spannedEvents_1 = spannedEvents; _i < spannedEvents_1.length; _i++) {\r\n var eventData = spannedEvents_1[_i];\r\n monthEvent.renderEvents(eventData, index);\r\n }\r\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n inlineSubject.focus();\r\n };\r\n InlineEdit.prototype.createTimelineViewInline = function (saveObj, start, end, resIndex) {\r\n var count = this.getEventDaysCount(saveObj);\r\n var saveObject = this.parent.eventBase.cloneEventObject(saveObj, start, end, count, false, false);\r\n var timelineView = new TimelineEvent(this.parent, this.parent.activeViewOptions.timeScale.enable ? 'hour' : 'day');\r\n timelineView.dateRender = this.parent.activeView.renderDates;\r\n timelineView.eventContainers = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\r\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n timelineView.inlineValue = this.parent.allowInline;\r\n timelineView.cellWidth = workCell.offsetWidth;\r\n timelineView.cellHeight = workCell.offsetHeight;\r\n var dayLength = this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr').length === 0 ?\r\n 0 : this.parent.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr')[0].children.length;\r\n timelineView.slotsPerDay = dayLength / timelineView.dateRender.length;\r\n timelineView.eventHeight = util.getElementHeightFromClass(timelineView.element, cls.APPOINTMENT_CLASS);\r\n timelineView.renderEvents(saveObject, resIndex);\r\n };\r\n InlineEdit.prototype.getEventDaysCount = function (saveObj) {\r\n var startDate = saveObj[this.parent.eventFields.startTime];\r\n var endDate = saveObj[this.parent.eventFields.endTime];\r\n var daysCount = Math.abs(endDate.getTime() - startDate.getTime()) / util.MS_PER_DAY;\r\n return daysCount;\r\n };\r\n InlineEdit.prototype.generateEventData = function (target) {\r\n var inlineElement = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n var subject = inlineElement ? inlineElement.value : target ? target.innerHTML : '';\r\n var saveObj = {};\r\n saveObj[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\r\n saveObj[this.parent.eventFields.subject] = subject;\r\n saveObj[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\r\n saveObj[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\r\n saveObj[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\r\n this.parent.eventWindow.setDefaultValueToObject(saveObj);\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.setResourceValues(saveObj, this.parent.activeCellsData.groupIndex);\r\n }\r\n return saveObj;\r\n };\r\n InlineEdit.prototype.documentClick = function () {\r\n var target = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n if (target && target.value !== '') {\r\n this.inlineCrudActions(target);\r\n }\r\n };\r\n InlineEdit.prototype.inlineCrudActions = function (target) {\r\n if (closest(target, '.' + cls.INLINE_APPOINTMENT_CLASS)) {\r\n var saveObj = this.generateEventData(target);\r\n this.parent.addEvent(saveObj);\r\n }\r\n else {\r\n var eventTarget = closest(target, '.' + cls.APPOINTMENT_CLASS);\r\n var eventDetails = this.parent.getEventDetails(eventTarget);\r\n eventDetails[this.parent.eventFields.subject] = target.value;\r\n var currentAction = void 0;\r\n if (eventDetails[this.parent.eventFields.id] === eventDetails[this.parent.eventFields.recurrenceID]) {\r\n currentAction = 'EditOccurrence';\r\n eventDetails[this.parent.eventFields.id] = this.parent.eventBase.getEventMaxID();\r\n }\r\n this.parent.saveEvent(eventDetails, currentAction);\r\n }\r\n this.removeInlineAppointmentElement();\r\n };\r\n InlineEdit.prototype.createInlineAppointmentElement = function (inlineData) {\r\n var inlineAppointmentElement = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS + ' ' + cls.INLINE_APPOINTMENT_CLASS\r\n });\r\n var inlineDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\r\n inlineAppointmentElement.appendChild(inlineDetails);\r\n var inline = createElement('input', { className: cls.INLINE_SUBJECT_CLASS });\r\n inlineDetails.appendChild(inline);\r\n if (inlineData) {\r\n this.parent.eventBase.applyResourceColor(inlineAppointmentElement, inlineData, 'backgroundColor');\r\n }\r\n return inlineAppointmentElement;\r\n };\r\n InlineEdit.prototype.removeInlineAppointmentElement = function () {\r\n var inlineAppointment = [].slice.call(this.parent.element.querySelectorAll('.' + cls.INLINE_APPOINTMENT_CLASS));\r\n if (inlineAppointment.length > 0) {\r\n inlineAppointment.forEach(function (node) { return remove(node); });\r\n }\r\n var inlineSubject = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n if (inlineSubject) {\r\n var appointmentSubject = closest(inlineSubject, '.' + cls.APPOINTMENT_CLASS);\r\n removeClass([appointmentSubject.querySelector('.' + cls.SUBJECT_CLASS)], cls.DISABLE_CLASS);\r\n remove(inlineSubject);\r\n }\r\n };\r\n InlineEdit.prototype.destroy = function () {\r\n this.parent.off(events.inlineClick, this.inlineEdit);\r\n };\r\n return InlineEdit;\r\n}());\r\nexport { InlineEdit };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { append, prepend, createElement, extend, EventHandler, closest, addClass } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, setStyleAttribute, remove } from '@syncfusion/ej2-base';\r\nimport { EventBase } from './event-base';\r\nimport * as cls from '../base/css-constant';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\nvar EVENT_GAP = 0;\r\n/**\r\n * Month view events render\r\n */\r\nvar MonthEvent = /** @class */ (function (_super) {\r\n __extends(MonthEvent, _super);\r\n function MonthEvent(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.renderedEvents = [];\r\n _this.monthHeaderHeight = 0;\r\n _this.moreIndicatorHeight = 19;\r\n _this.renderType = 'day';\r\n _this.element = _this.parent.activeView.getPanel();\r\n _this.fields = _this.parent.eventFields;\r\n _this.maxHeight = _this.parent.eventSettings.enableMaxHeight && !_this.parent.eventSettings.enableIndicator\r\n && !_this.parent.rowAutoHeight;\r\n _this.withIndicator = _this.parent.eventSettings.enableMaxHeight && _this.parent.eventSettings.enableIndicator\r\n && !_this.parent.rowAutoHeight;\r\n _this.maxOrIndicator = (_this.maxHeight || _this.withIndicator);\r\n _this.moreIndicatorHeight =\r\n (_this.parent.rowAutoHeight && _this.parent.eventSettings.ignoreWhitespace) ? 0 : _this.moreIndicatorHeight;\r\n _this.addEventListener();\r\n return _this;\r\n }\r\n MonthEvent.prototype.removeEventWrapper = function (appElement) {\r\n if (appElement.length > 0) {\r\n appElement = (this.parent.currentView === 'Month') ? appElement : [appElement[0]];\r\n for (var _i = 0, appElement_1 = appElement; _i < appElement_1.length; _i++) {\r\n var wrap = appElement_1[_i];\r\n if (!wrap.classList.contains('e-more-indicator') && wrap.parentElement && wrap.parentElement.parentNode) {\r\n remove(wrap.parentElement);\r\n }\r\n }\r\n }\r\n };\r\n MonthEvent.prototype.renderAppointments = function () {\r\n if (this.parent.dragAndDropModule) {\r\n this.parent.dragAndDropModule.setDragArea();\r\n }\r\n var conWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (this.parent.rowAutoHeight) {\r\n this.parent.uiStateValues.top = conWrap.scrollTop;\r\n this.parent.uiStateValues.left = conWrap.scrollLeft;\r\n }\r\n var appointmentWrapper = [].slice.call(this.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_CLASS));\r\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\r\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\r\n var appElement = [].slice.call(this.element.querySelectorAll('.e-appointment-wrapper ' + '[data-group-index=\"' +\r\n this.parent.crudModule.crudObj.sourceEvent[i].groupIndex + '\"]'));\r\n this.removeEventWrapper(appElement);\r\n if (this.parent.crudModule.crudObj.targetEvent[i] && this.parent.crudModule.crudObj.sourceEvent[i].groupIndex !==\r\n this.parent.crudModule.crudObj.targetEvent[i].groupIndex) {\r\n var ele = [].slice.call(this.element.querySelectorAll('.e-appointment-wrapper ' + '[data-group-index=\"' +\r\n this.parent.crudModule.crudObj.targetEvent[i].groupIndex + '\"]'));\r\n this.removeEventWrapper(ele);\r\n }\r\n }\r\n }\r\n else {\r\n for (var _i = 0, appointmentWrapper_1 = appointmentWrapper; _i < appointmentWrapper_1.length; _i++) {\r\n var wrap = appointmentWrapper_1[_i];\r\n remove(wrap);\r\n }\r\n }\r\n this.removeHeightProperty(cls.CONTENT_TABLE_CLASS);\r\n if (!this.element.querySelector('.' + cls.WORK_CELLS_CLASS)) {\r\n return;\r\n }\r\n if (this.parent.currentView === 'Month') {\r\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n var cellTd = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n cellTd.appendChild(wrapper);\r\n this.monthHeaderHeight = wrapper.offsetTop - cellTd.offsetTop;\r\n cellTd.removeChild(wrapper);\r\n }\r\n this.eventHeight = util.getElementHeightFromClass(this.element, cls.APPOINTMENT_CLASS);\r\n var scrollTop = conWrap.scrollTop;\r\n if (this.parent.rowAutoHeight && this.parent.virtualScrollModule && !isNullOrUndefined(this.parent.currentAction)) {\r\n conWrap.scrollTop = conWrap.scrollTop - 1;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.renderResourceEvents();\r\n if (this.parent.virtualScrollModule) {\r\n this.parent.virtualScrollModule.updateFocusedWorkCell();\r\n }\r\n }\r\n else {\r\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays);\r\n }\r\n if (this.parent.rowAutoHeight) {\r\n this.updateBlockElements();\r\n var data = {\r\n cssProperties: this.parent.getCssProperties(),\r\n module: this.parent.getModuleName(),\r\n isPreventScrollUpdate: true,\r\n scrollPosition: { left: this.parent.uiStateValues.left, top: this.parent.uiStateValues.top }\r\n };\r\n if (this.parent.virtualScrollModule) {\r\n if (this.parent.currentAction) {\r\n conWrap.scrollTop = scrollTop;\r\n this.parent.currentAction = null;\r\n }\r\n else {\r\n this.parent.virtualScrollModule.updateVirtualScrollHeight();\r\n }\r\n }\r\n if (!this.parent.enablePersistence) {\r\n this.parent.notify(events.contentReady, {});\r\n }\r\n this.parent.notify(events.scrollUiUpdate, data);\r\n if (this.parent.currentView === 'Month' && this.parent.showWeekNumber) {\r\n var totalCells_1 = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap table tr td:first-child'));\r\n var weekNumberCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.WEEK_NUMBER_CLASS));\r\n weekNumberCells.forEach(function (cell, i) {\r\n var height = totalCells_1[i].offsetHeight;\r\n setStyleAttribute(cell, { 'height': height + 'px' });\r\n });\r\n this.parent.element.querySelector('.' + cls.WEEK_NUMBER_WRAPPER_CLASS).scrollTop =\r\n this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS).scrollTop;\r\n }\r\n }\r\n this.parent.renderTemplates();\r\n };\r\n MonthEvent.prototype.renderEventsHandler = function (dateRender, workDays, resData) {\r\n this.renderedEvents = [];\r\n var eventsList;\r\n var blockList;\r\n var resIndex = 0;\r\n if (resData) {\r\n resIndex = resData.groupIndex;\r\n this.cssClass = resData.cssClass;\r\n this.groupOrder = resData.groupOrder;\r\n eventsList = this.parent.eventBase.filterEventsByResource(resData, this.parent.eventsProcessed);\r\n blockList = this.parent.eventBase.filterEventsByResource(resData, this.parent.blockProcessed);\r\n this.workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS + '[data-group-index=\"' + resIndex + '\"]'));\r\n }\r\n else {\r\n eventsList = this.parent.eventsProcessed;\r\n blockList = this.parent.blockProcessed;\r\n this.workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n }\r\n this.sortByDateTime(eventsList);\r\n this.sortByDateTime(blockList);\r\n if (this.parent.currentView === 'Month' && this.parent.rowAutoHeight && this.parent.activeViewOptions.group.resources.length === 0) {\r\n var totalCells = [].slice.call(this.parent.element.querySelectorAll('.e-content-wrap table tr td:first-child'));\r\n var height_1 = this.parent.height === 'auto' ? (this.parent.element.querySelector('.e-content-wrap').clientHeight +\r\n this.parent.element.querySelector('.e-date-header-wrap').clientHeight) / totalCells.length\r\n : this.parent.element.querySelector('.e-schedule-table').clientHeight / totalCells.length;\r\n totalCells.forEach(function (cell) {\r\n setStyleAttribute(cell, { 'height': height_1 + 'px' });\r\n });\r\n }\r\n var cellDetail = this.workCells.slice(-1)[0].getBoundingClientRect();\r\n this.cellWidth = cellDetail.width;\r\n this.cellHeight = cellDetail.height;\r\n this.dateRender = dateRender;\r\n var filteredDates = this.getRenderedDates(dateRender);\r\n this.getSlotDates(workDays);\r\n this.processBlockEvents(blockList, resIndex, resData);\r\n for (var _i = 0, eventsList_1 = eventsList; _i < eventsList_1.length; _i++) {\r\n var event_1 = eventsList_1[_i];\r\n if (this.parent.resourceBase && !resData) {\r\n this.cssClass = this.parent.resourceBase.getCssClass(event_1);\r\n }\r\n var spannedEvents = this.splitEvent(event_1, filteredDates || this.dateRender);\r\n for (var _a = 0, spannedEvents_1 = spannedEvents; _a < spannedEvents_1.length; _a++) {\r\n var event_2 = spannedEvents_1[_a];\r\n if (this.maxHeight) {\r\n var sDate = this.parent.currentView === 'Month' ? event_2[this.fields.startTime] :\r\n this.getStartTime(event_2, event_2.data);\r\n if (this.getIndex(sDate) > 0) {\r\n continue;\r\n }\r\n }\r\n this.updateIndicatorIcon(event_2);\r\n this.renderEvents(event_2, resIndex, eventsList);\r\n }\r\n }\r\n this.cssClass = null;\r\n this.groupOrder = null;\r\n };\r\n MonthEvent.prototype.processBlockEvents = function (blockEvents, resIndex, resData) {\r\n for (var _i = 0, blockEvents_1 = blockEvents; _i < blockEvents_1.length; _i++) {\r\n var event_3 = blockEvents_1[_i];\r\n if (this.parent.resourceBase && !resData) {\r\n this.cssClass = this.parent.resourceBase.getCssClass(event_3);\r\n }\r\n var blockSpannedList = [];\r\n if (this.renderType === 'day' && !event_3[this.fields.isAllDay]) {\r\n var temp = extend({}, event_3, null, true);\r\n var isSameDate = this.isSameDate(temp[this.fields.startTime], temp[this.fields.endTime]);\r\n temp.isBlockIcon = isSameDate;\r\n if (!isSameDate && util.getDateInMs(temp[this.fields.startTime]) > 0) {\r\n var e = extend({}, event_3, null, true);\r\n e[this.fields.endTime] = util.addDays(util.resetTime(new Date(event_3[this.fields.startTime] + '')), 1);\r\n e.isBlockIcon = true;\r\n temp[this.fields.startTime] = e[this.fields.endTime];\r\n blockSpannedList.push(e);\r\n }\r\n isSameDate = this.isSameDate(temp[this.fields.startTime], temp[this.fields.endTime]);\r\n if (!isSameDate && util.getDateInMs(temp[this.fields.endTime]) > 0) {\r\n var e = extend({}, event_3, null, true);\r\n e[this.fields.startTime] = util.resetTime(new Date(event_3[this.fields.endTime] + ''));\r\n e.isBlockIcon = true;\r\n blockSpannedList.push(e);\r\n temp[this.fields.endTime] = e[this.fields.startTime];\r\n }\r\n blockSpannedList.push(temp);\r\n }\r\n else {\r\n blockSpannedList.push(event_3);\r\n }\r\n for (var _a = 0, blockSpannedList_1 = blockSpannedList; _a < blockSpannedList_1.length; _a++) {\r\n var blockEvent = blockSpannedList_1[_a];\r\n var spannedEvents = this.splitEvent(blockEvent, this.dateRender);\r\n for (var _b = 0, spannedEvents_2 = spannedEvents; _b < spannedEvents_2.length; _b++) {\r\n var event_4 = spannedEvents_2[_b];\r\n this.renderBlockEvents(event_4, resIndex, !!blockEvent.isBlockIcon);\r\n }\r\n }\r\n }\r\n };\r\n MonthEvent.prototype.isSameDate = function (start, end) {\r\n return new Date(+start).setHours(0, 0, 0, 0) === new Date(+end).setHours(0, 0, 0, 0);\r\n };\r\n MonthEvent.prototype.renderBlockEvents = function (event, resIndex, isIcon) {\r\n var eventData = event.data;\r\n var startTime = this.getStartTime(event, eventData);\r\n var endTime = this.getEndTime(event, eventData);\r\n var day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\r\n if (day < 0 || startTime > endTime) {\r\n return;\r\n }\r\n var cellTd = this.getCellTd(day);\r\n var position = this.getPosition(startTime, endTime, event[this.fields.isAllDay], day);\r\n if (!isIcon) {\r\n var diffInDays = eventData.count;\r\n var appWidth = this.getEventWidth(startTime, endTime, event[this.fields.isAllDay], diffInDays);\r\n appWidth = (appWidth <= 0) ? this.cellWidth : appWidth;\r\n var appLeft = (this.parent.enableRtl) ? 0 : position;\r\n var appRight = (this.parent.enableRtl) ? position : 0;\r\n var appHeight = this.cellHeight - this.monthHeaderHeight;\r\n var appTop = this.getRowTop(resIndex);\r\n var blockElement = this.createBlockAppointmentElement(event, resIndex);\r\n setStyleAttribute(blockElement, {\r\n 'width': appWidth + 'px', 'height': appHeight + 'px', 'left': appLeft + 'px',\r\n 'right': appRight + 'px', 'top': appTop + 'px'\r\n });\r\n this.renderEventElement(event, blockElement, cellTd);\r\n }\r\n else {\r\n this.renderBlockIndicator(cellTd, position, resIndex);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.renderBlockIndicator = function (cellTd, position, resIndex) {\r\n var blockIndicator = createElement('div', { className: 'e-icons ' + cls.BLOCK_INDICATOR_CLASS });\r\n if (isNullOrUndefined(cellTd.querySelector('.' + cls.BLOCK_INDICATOR_CLASS))) {\r\n cellTd.appendChild(blockIndicator);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.getStartTime = function (event, eventData) {\r\n return event[this.fields.startTime];\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.getEndTime = function (event, eventData) {\r\n return event[this.fields.endTime];\r\n };\r\n MonthEvent.prototype.getCellTd = function (day) {\r\n return this.workCells[day];\r\n };\r\n MonthEvent.prototype.getEventWidth = function (startDate, endDate, isAllDay, count) {\r\n return count * this.cellWidth - 1;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.getPosition = function (startTime, endTime, isAllDay, day) {\r\n return 0;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.getRowTop = function (resIndex) {\r\n return 0;\r\n };\r\n MonthEvent.prototype.updateIndicatorIcon = function (event) {\r\n if (this.parent.currentView.indexOf('Timeline') === -1 || this.parent.currentView === 'TimelineMonth'\r\n || event[this.fields.isAllDay]) {\r\n return;\r\n }\r\n var cloneData = event.data;\r\n var start = this.parent.activeView.getStartHour();\r\n var end = this.parent.activeView.getEndHour();\r\n var startHour = util.getStartEndHours(event[this.fields.startTime], start, end);\r\n var endHour = util.getStartEndHours(event[this.fields.endTime], start, end);\r\n var actualStartTime = cloneData[this.fields.startTime];\r\n var actualEndTime = cloneData[this.fields.endTime];\r\n cloneData.isLeft = cloneData.isLeft || actualStartTime.getTime() < startHour.startHour.getTime();\r\n cloneData.isRight = cloneData.isRight || actualEndTime.getTime() > endHour.endHour.getTime();\r\n if (util.resetTime(actualStartTime).getTime() !== util.resetTime(actualEndTime).getTime()) {\r\n var actualStartHour = startHour.startHour;\r\n var actualEndHour = endHour.endHour;\r\n var startTime = new Date(util.resetTime(actualStartTime));\r\n startTime.setHours(actualEndHour.getHours(), actualEndHour.getMinutes(), actualEndHour.getSeconds());\r\n cloneData.isLeft = cloneData.isLeft || actualStartTime.getTime() >= (actualStartHour.getDate() === startHour.endHour.getDate() ?\r\n startTime.getTime() : util.addDays(startTime, 1).getTime());\r\n if (actualEndTime.getTime() !== util.resetTime(actualEndTime).getTime()) {\r\n var endTime = new Date(util.resetTime(actualEndTime));\r\n cloneData.isRight = cloneData.isRight || actualEndTime.getTime() <=\r\n endTime.setHours(actualStartHour.getHours(), actualStartHour.getMinutes(), actualStartHour.getSeconds());\r\n }\r\n }\r\n };\r\n MonthEvent.prototype.renderResourceEvents = function () {\r\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\r\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\r\n this.parent.resourceBase.lastResourceLevel;\r\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\r\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\r\n var sourceRes = this.parent.crudModule.crudObj.sourceEvent[i];\r\n this.renderEventsHandler(sourceRes.renderDates, sourceRes.workDays, sourceRes);\r\n if (this.parent.crudModule.crudObj.sourceEvent[i].groupIndex !==\r\n this.parent.crudModule.crudObj.targetEvent[i].groupIndex) {\r\n var target = this.parent.crudModule.crudObj.targetEvent[i];\r\n this.renderEventsHandler(target.renderDates, target.workDays, target);\r\n }\r\n }\r\n this.parent.crudModule.crudObj.isCrudAction = false;\r\n }\r\n else {\r\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\r\n var slotData = resources_1[_i];\r\n this.renderEventsHandler(slotData.renderDates, slotData.workDays, slotData);\r\n }\r\n }\r\n };\r\n MonthEvent.prototype.getSlotDates = function (workDays) {\r\n this.slots = [];\r\n var dates = this.dateRender.map(function (date) { return +date; });\r\n var noOfDays = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH : workDays.length;\r\n while (dates.length > 0) {\r\n this.slots.push(dates.splice(0, noOfDays));\r\n }\r\n };\r\n MonthEvent.prototype.createAppointmentElement = function (record, resIndex, isCloneElement) {\r\n if (isCloneElement === void 0) { isCloneElement = false; }\r\n var eventSubject = (record[this.fields.subject] || this.parent.eventSettings.fields.subject.default ||\r\n this.parent.localeObj.getConstant('addTitle'));\r\n var newRecord = extend({}, record, record.data, true);\r\n var attrs = {\r\n 'data-id': 'Appointment_' + record[this.fields.id],\r\n 'role': 'button', 'tabindex': '0',\r\n 'aria-readonly': this.parent.eventBase.getReadonlyAttribute(record), 'aria-selected': 'false', 'aria-grabbed': 'true',\r\n 'aria-label': this.parent.getAnnouncementString(newRecord, eventSubject)\r\n };\r\n if (!isCloneElement) {\r\n attrs['data-guid'] = record.Guid;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n attrs['data-group-index'] = resIndex.toString();\r\n }\r\n var appointmentWrapper = createElement('div', { className: cls.APPOINTMENT_CLASS, attrs: attrs });\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n addClass([appointmentWrapper], this.cssClass);\r\n }\r\n if (record[this.fields.isReadonly]) {\r\n addClass([appointmentWrapper], 'e-read-only');\r\n }\r\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\r\n appointmentWrapper.appendChild(appointmentDetails);\r\n var templateElement;\r\n var eventData = record.data;\r\n var eventObj = this.getEventData(record);\r\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.eventTemplateName;\r\n var templateId = scheduleId + viewName + 'eventTemplate';\r\n templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false);\r\n }\r\n else {\r\n var eventLocation = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');\r\n var appointmentSubject = createElement('div', {\r\n className: cls.SUBJECT_CLASS,\r\n innerHTML: (eventSubject + (eventLocation ? '; ' + eventLocation : ''))\r\n });\r\n var appointmentStartTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(eventData[this.fields.startTime])\r\n });\r\n var appointmentEndTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(eventData[this.fields.endTime])\r\n });\r\n if (this.parent.currentView === 'Month') {\r\n if (record[this.fields.isAllDay]) {\r\n templateElement = [appointmentSubject];\r\n addClass([appointmentSubject], 'e-text-center');\r\n }\r\n else if (eventData.count <= 1 && !eventData.isLeft && !eventData.isRight) {\r\n templateElement = [appointmentStartTime, appointmentSubject];\r\n }\r\n else {\r\n templateElement = [];\r\n addClass([appointmentSubject], 'e-text-center');\r\n if (!eventData.isLeft) {\r\n templateElement.push(appointmentStartTime);\r\n }\r\n templateElement.push(appointmentSubject);\r\n if (!eventData.isRight) {\r\n templateElement.push(appointmentEndTime);\r\n }\r\n }\r\n }\r\n else {\r\n var innerElement = void 0;\r\n if (record[this.fields.isAllDay]) {\r\n var allDayString = createElement('div', {\r\n className: cls.APPOINTMENT_TIME, innerHTML: this.parent.localeObj.getConstant('allDay')\r\n });\r\n innerElement = [appointmentSubject, allDayString];\r\n }\r\n else {\r\n var timeString = this.parent.getTimeString(eventData[this.fields.startTime])\r\n + ' - ' + this.parent.getTimeString(eventData[this.fields.endTime]);\r\n var appTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''), innerHTML: timeString\r\n });\r\n var appLocation = createElement('div', { className: cls.LOCATION_CLASS, innerHTML: eventLocation });\r\n innerElement = [appointmentSubject, appTime, appLocation];\r\n }\r\n var wrap = createElement('div', { className: 'e-inner-wrap' });\r\n append(innerElement, wrap);\r\n templateElement = [wrap];\r\n }\r\n }\r\n append(templateElement, appointmentDetails);\r\n this.appendEventIcons(record, appointmentDetails);\r\n this.renderResizeHandler(appointmentWrapper, record.data, record[this.fields.isReadonly]);\r\n return appointmentWrapper;\r\n };\r\n MonthEvent.prototype.appendEventIcons = function (record, appointmentDetails) {\r\n var eventData = record.data;\r\n if (!isNullOrUndefined(record[this.fields.recurrenceRule]) || !isNullOrUndefined(record[this.fields.recurrenceID])) {\r\n var iconClass = (record[this.fields.id] === record[this.fields.recurrenceID]) ?\r\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\r\n appointmentDetails.appendChild(createElement('div', {\r\n className: cls.ICON + ' ' + iconClass + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : '')\r\n }));\r\n }\r\n if (eventData.isLeft) {\r\n var iconLeft = createElement('div', {\r\n className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON + ' ' + cls.EVENT_ICON_LEFT_CLASS\r\n });\r\n prepend([iconLeft], appointmentDetails);\r\n }\r\n if (eventData.isRight) {\r\n var iconRight = createElement('div', {\r\n className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON + ' ' + cls.EVENT_ICON_RIGHT_CLASS\r\n });\r\n append([iconRight], appointmentDetails);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n MonthEvent.prototype.renderEvents = function (event, resIndex, eventsList) {\r\n var startTime = event[this.fields.startTime];\r\n var endTime = event[this.fields.endTime];\r\n var day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(startTime));\r\n if (day < 0) {\r\n return;\r\n }\r\n if ((startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {\r\n return;\r\n }\r\n var overlapCount = this.getIndex(startTime);\r\n event.Index = overlapCount;\r\n var appHeight = this.eventHeight;\r\n this.renderedEvents.push(extend({}, event, null, true));\r\n var diffInDays = event.data.count;\r\n if (startTime.getTime() <= endTime.getTime()) {\r\n var appWidth = (diffInDays * this.cellWidth) - 5;\r\n var cellTd = this.workCells[day];\r\n var appTop = (overlapCount * (appHeight + EVENT_GAP));\r\n var height = this.monthHeaderHeight + ((overlapCount + 1) * (appHeight + EVENT_GAP)) + this.moreIndicatorHeight;\r\n var enableAppRender = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;\r\n if (this.parent.rowAutoHeight || enableAppRender) {\r\n var appointmentElement = void 0;\r\n if (this.inlineValue) {\r\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();\r\n }\r\n else {\r\n appointmentElement = this.createAppointmentElement(event, resIndex);\r\n }\r\n this.applyResourceColor(appointmentElement, event, 'backgroundColor', this.groupOrder);\r\n this.wireAppointmentEvents(appointmentElement, event);\r\n setStyleAttribute(appointmentElement, { 'width': appWidth + 'px', 'top': appTop + 'px' });\r\n this.renderEventElement(event, appointmentElement, cellTd);\r\n if (this.parent.rowAutoHeight) {\r\n var firstChild = cellTd.parentElement.firstElementChild;\r\n this.updateCellHeight(firstChild, height);\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < diffInDays; i++) {\r\n var cellTd_1 = this.workCells[day + i];\r\n if (cellTd_1 && isNullOrUndefined(cellTd_1.querySelector('.' + cls.MORE_INDICATOR_CLASS))) {\r\n var startDate = new Date(this.dateRender[day + i].getTime());\r\n var endDate = util.addDays(this.dateRender[day + i], 1);\r\n var groupIndex = cellTd_1.getAttribute('data-group-index');\r\n var filterEvents = this.getFilteredEvents(startDate, endDate, groupIndex);\r\n var appArea = this.cellHeight - this.monthHeaderHeight - this.moreIndicatorHeight;\r\n appHeight = this.withIndicator ? appArea : appHeight;\r\n var renderedAppCount = Math.floor(appArea / (appHeight + EVENT_GAP));\r\n var count = (filterEvents.length - renderedAppCount) <= 0 ? 1 : (filterEvents.length - renderedAppCount);\r\n var moreIndicatorElement = this.getMoreIndicatorElement(count, startDate, endDate);\r\n if (!isNullOrUndefined(groupIndex)) {\r\n moreIndicatorElement.setAttribute('data-group-index', groupIndex);\r\n }\r\n moreIndicatorElement.style.top = appArea + 'px';\r\n moreIndicatorElement.style.width = this.cellWidth - 2 + 'px';\r\n this.renderElement(cellTd_1, moreIndicatorElement);\r\n EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n MonthEvent.prototype.updateCellHeight = function (cell, height) {\r\n if ((height > cell.offsetHeight)) {\r\n setStyleAttribute(cell, { 'height': height + 'px' });\r\n }\r\n };\r\n MonthEvent.prototype.updateBlockElements = function () {\r\n var blockElement = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS));\r\n for (var _i = 0, blockElement_1 = blockElement; _i < blockElement_1.length; _i++) {\r\n var element = blockElement_1[_i];\r\n var target = closest(element, 'tr');\r\n this.monthHeaderHeight = element.offsetParent.offsetTop - target.offsetTop;\r\n element.style.height = ((target.offsetHeight - 1) - this.monthHeaderHeight) + 'px';\r\n var firstChild = target.firstElementChild;\r\n var width = Math.round(element.offsetWidth / firstChild.offsetWidth);\r\n element.style.width = (firstChild.offsetWidth * width) + 'px';\r\n }\r\n };\r\n // eslint-disable-next-line max-len\r\n MonthEvent.prototype.getFilteredEvents = function (startDate, endDate, groupIndex, eventsList) {\r\n var filteredEvents;\r\n if (isNullOrUndefined(groupIndex)) {\r\n filteredEvents = this.filterEvents(startDate, endDate);\r\n }\r\n else {\r\n var data = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)];\r\n filteredEvents = this.filterEvents(startDate, endDate, isNullOrUndefined(eventsList) ? undefined : eventsList, data);\r\n }\r\n return filteredEvents;\r\n };\r\n MonthEvent.prototype.getOverlapEvents = function (date, appointments) {\r\n var appointmentsList = [];\r\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\r\n var app = appointments_1[_i];\r\n var dateTime = util.resetTime(date).getTime();\r\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= dateTime) &&\r\n (util.resetTime(app[this.fields.endTime]).getTime() >= dateTime)) {\r\n appointmentsList.push(app);\r\n }\r\n }\r\n return appointmentsList;\r\n };\r\n MonthEvent.prototype.getIndex = function (date) {\r\n var appIndex = -1;\r\n var appointments = this.renderedEvents;\r\n if (appointments.length > 0) {\r\n var appointmentsList = this.getOverlapEvents(date, appointments);\r\n var appLevel = appointmentsList.map(function (obj) { return obj.Index; });\r\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\r\n }\r\n return (appIndex === -1) ? 0 : appIndex;\r\n };\r\n MonthEvent.prototype.moreIndicatorClick = function (event) {\r\n var _this = this;\r\n var target = closest(event.target, '.' + cls.MORE_INDICATOR_CLASS);\r\n var startDate = new Date(parseInt(target.getAttribute('data-start-date'), 10));\r\n var endDate = new Date(parseInt(target.getAttribute('data-end-date'), 10));\r\n var groupIndex = target.getAttribute('data-group-index');\r\n var moreArgs = {\r\n cancel: false, event: event, element: target, isPopupOpen: true,\r\n startTime: startDate, endTime: endDate, viewName: this.parent.getNavigateView()\r\n };\r\n if (groupIndex) {\r\n moreArgs.groupIndex = parseInt(groupIndex, 10);\r\n }\r\n this.parent.trigger(events.moreEventsClick, moreArgs, function (clickArgs) {\r\n if (!clickArgs.cancel) {\r\n if (clickArgs.isPopupOpen) {\r\n var filteredEvents = _this.getFilteredEvents(startDate, endDate, groupIndex);\r\n var moreArgs_1 = { date: startDate, event: filteredEvents, element: event.target };\r\n _this.parent.quickPopup.moreEventClick(moreArgs_1, endDate, groupIndex);\r\n }\r\n else {\r\n _this.parent.setProperties({ selectedDate: startDate }, true);\r\n _this.parent.changeView(clickArgs.viewName, event);\r\n }\r\n }\r\n });\r\n };\r\n MonthEvent.prototype.renderEventElement = function (event, appointmentElement, cellTd) {\r\n var _this = this;\r\n var eventType = appointmentElement.classList.contains(cls.BLOCK_APPOINTMENT_CLASS) ? 'blockEvent' : 'event';\r\n var isAppointment = appointmentElement.classList.contains(cls.APPOINTMENT_CLASS);\r\n var eventObj = this.getEventData(event);\r\n var args = { data: eventObj, element: appointmentElement, cancel: false, type: eventType };\r\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\r\n if (eventArgs.cancel) {\r\n _this.renderedEvents.pop();\r\n }\r\n else {\r\n _this.renderElement(cellTd, appointmentElement, isAppointment);\r\n }\r\n });\r\n };\r\n MonthEvent.prototype.getEventData = function (event) {\r\n var eventObj = extend({}, event, null, true);\r\n eventObj[this.fields.startTime] = event.data[this.fields.startTime];\r\n eventObj[this.fields.endTime] = event.data[this.fields.endTime];\r\n return eventObj;\r\n };\r\n MonthEvent.prototype.renderElement = function (cellTd, element, isAppointment) {\r\n if (isAppointment === void 0) { isAppointment = false; }\r\n if (this.maxOrIndicator && isAppointment) {\r\n this.setMaxEventHeight(element, cellTd);\r\n }\r\n var wrapperEle = cellTd.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (wrapperEle) {\r\n wrapperEle.appendChild(element);\r\n }\r\n else {\r\n var wrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n wrapper.appendChild(element);\r\n cellTd.appendChild(wrapper);\r\n }\r\n };\r\n MonthEvent.prototype.getMoreIndicatorElement = function (count, startDate, endDate) {\r\n var moreIndicatorElement = createElement('div', {\r\n className: cls.MORE_INDICATOR_CLASS,\r\n innerHTML: '+' + this.parent.globalize.formatNumber(count) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more')),\r\n attrs: {\r\n 'tabindex': '0',\r\n 'data-start-date': startDate.getTime().toString(),\r\n 'data-end-date': endDate.getTime().toString(),\r\n 'role': 'list'\r\n }\r\n });\r\n return moreIndicatorElement;\r\n };\r\n MonthEvent.prototype.removeHeightProperty = function (selector) {\r\n var rows = [].slice.call(this.element.querySelectorAll('.' + selector + ' tbody tr'));\r\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\r\n var row = rows_1[_i];\r\n row.firstElementChild.style.height = '';\r\n }\r\n };\r\n MonthEvent.prototype.setMaxEventHeight = function (event, cell) {\r\n var headerHeight = util.getOuterHeight(cell.querySelector('.' + cls.DATE_HEADER_CLASS));\r\n var height = (cell.offsetHeight - headerHeight) - (this.maxHeight ? 0 : this.moreIndicatorHeight);\r\n setStyleAttribute(event, { 'height': height + 'px', 'align-items': 'center' });\r\n };\r\n MonthEvent.prototype.destroy = function () {\r\n this.element = null;\r\n this.fields = null;\r\n this.maxHeight = null;\r\n this.withIndicator = null;\r\n this.maxOrIndicator = null;\r\n this.moreIndicatorHeight = null;\r\n this.removeEventListener();\r\n _super.prototype.destroy.call(this);\r\n };\r\n return MonthEvent;\r\n}(EventBase));\r\nexport { MonthEvent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable max-len */\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { isNullOrUndefined, setStyleAttribute, extend, EventHandler, createElement } from '@syncfusion/ej2-base';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\nimport { MonthEvent } from './month';\r\nvar EVENT_GAP = 2;\r\nvar BLOCK_INDICATOR_WIDTH = 22;\r\nvar BLOCK_INDICATOR_HEIGHT = 18;\r\n/**\r\n * Timeline view events render\r\n */\r\nvar TimelineEvent = /** @class */ (function (_super) {\r\n __extends(TimelineEvent, _super);\r\n function TimelineEvent(parent, type) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.startHour = _this.parent.activeView.getStartHour();\r\n _this.endHour = _this.parent.activeView.getEndHour();\r\n _this.slotCount = _this.parent.activeViewOptions.timeScale.slotCount;\r\n _this.interval = _this.parent.activeViewOptions.timeScale.interval;\r\n _this.day = 0;\r\n _this.rowIndex = 0;\r\n _this.renderType = type;\r\n _this.eventContainers = [].slice.call(_this.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\r\n var tr = [].slice.call(_this.element.querySelectorAll('.' + cls.CONTENT_TABLE_CLASS + ' tbody tr'));\r\n _this.dayLength = tr.length === 0 ? 0 : tr[0].children.length;\r\n _this.content = _this.parent.element.querySelector('.' + cls.CONTENT_TABLE_CLASS);\r\n return _this;\r\n }\r\n TimelineEvent.prototype.getSlotDates = function () {\r\n this.slots = [];\r\n this.slots.push(this.parent.activeView.renderDates.map(function (date) { return +date; }));\r\n if (this.parent.activeViewOptions.headerRows.length > 0 &&\r\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\r\n this.renderType = 'day';\r\n this.cellWidth = this.content.offsetWidth / this.dateRender.length;\r\n this.slotsPerDay = 1;\r\n }\r\n else {\r\n this.slotsPerDay = (this.dayLength / this.dateRender.length);\r\n }\r\n };\r\n TimelineEvent.prototype.getOverlapEvents = function (date, appointments) {\r\n var appointmentsList = [];\r\n if (this.renderType === 'day') {\r\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\r\n var app = appointments_1[_i];\r\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= util.resetTime(new Date(date.getTime())).getTime()) &&\r\n (util.resetTime(app[this.fields.endTime]).getTime() >= util.resetTime(new Date(date.getTime())).getTime())) {\r\n appointmentsList.push(app);\r\n }\r\n }\r\n }\r\n else {\r\n for (var _a = 0, appointments_2 = appointments; _a < appointments_2.length; _a++) {\r\n var app = appointments_2[_a];\r\n var eventData = app.data;\r\n if (eventData.trimStartTime.getTime() <= date.getTime() &&\r\n eventData.trimEndTime.getTime() > date.getTime()) {\r\n appointmentsList.push(app);\r\n }\r\n }\r\n }\r\n return appointmentsList;\r\n };\r\n TimelineEvent.prototype.getSortComparerIndex = function (startDate, endDate) {\r\n var appIndex = -1;\r\n var appointments = this.renderedEvents;\r\n if (appointments.length > 0) {\r\n var appointmentsList = this.getOverlapSortComparerEvents(startDate, endDate, appointments);\r\n var appLevel = appointmentsList.map(function (obj) { return obj.Index; });\r\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\r\n }\r\n return (appIndex === -1) ? 0 : appIndex;\r\n };\r\n TimelineEvent.prototype.getOverlapSortComparerEvents = function (startDate, endDate, appointmentsCollection) {\r\n var appointments = [];\r\n for (var _i = 0, appointmentsCollection_1 = appointmentsCollection; _i < appointmentsCollection_1.length; _i++) {\r\n var app = appointmentsCollection_1[_i];\r\n if (this.renderType === 'day') {\r\n if ((util.resetTime(app[this.fields.startTime]).getTime() <= util.resetTime(new Date(startDate.getTime())).getTime()) &&\r\n (util.resetTime(app[this.fields.endTime]).getTime() >= util.resetTime(new Date(startDate.getTime())).getTime())) {\r\n appointments.push(app);\r\n }\r\n }\r\n else {\r\n var eventData = app.data;\r\n if (((eventData.trimStartTime.getTime() <= startDate.getTime()) && (startDate.getTime() < eventData.trimEndTime.getTime())) ||\r\n ((startDate.getTime() <= eventData.trimStartTime.getTime()) && (eventData.trimStartTime.getTime() < endDate.getTime()))) {\r\n appointments.push(app);\r\n }\r\n }\r\n }\r\n return appointments;\r\n };\r\n TimelineEvent.prototype.renderResourceEvents = function () {\r\n this.removeHeightProperty(cls.RESOURCE_COLUMN_TABLE_CLASS);\r\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\r\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\r\n this.parent.resourceBase.renderedResources;\r\n if (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) {\r\n for (var i = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; i < len; i++) {\r\n var source = this.parent.crudModule.crudObj.sourceEvent[i];\r\n this.rowIndex = source.groupIndex;\r\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, source);\r\n if (this.parent.crudModule.crudObj.targetEvent[i] && this.parent.crudModule.crudObj.sourceEvent[i].groupIndex !==\r\n this.parent.crudModule.crudObj.targetEvent[i].groupIndex) {\r\n var target = this.parent.crudModule.crudObj.targetEvent[i];\r\n this.rowIndex = target.groupIndex;\r\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, target);\r\n }\r\n }\r\n this.parent.crudModule.crudObj.isCrudAction = false;\r\n }\r\n else {\r\n for (var i = 0; i < resources.length; i++) {\r\n this.rowIndex = i;\r\n this.renderEventsHandler(this.parent.activeView.renderDates, this.parent.activeViewOptions.workDays, resources[i]);\r\n }\r\n }\r\n };\r\n TimelineEvent.prototype.renderEvents = function (event, resIndex, appointmentsList) {\r\n var startTime = event[this.fields.startTime];\r\n var endTime = event[this.fields.endTime];\r\n if ((startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {\r\n return;\r\n }\r\n var eventData = event.data;\r\n startTime = this.getStartTime(event, eventData);\r\n endTime = this.getEndTime(event, eventData);\r\n this.day = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\r\n if (this.day < 0) {\r\n return;\r\n }\r\n var cellTd = this.getCellTd();\r\n var overlapCount = (isNullOrUndefined(this.parent.eventSettings.sortComparer)) ? this.getIndex(startTime) : this.getSortComparerIndex(startTime, endTime);\r\n event.Index = overlapCount;\r\n var elem = this.element.querySelector('.' + cls.APPOINTMENT_CLASS);\r\n var eleHeight = (elem) ? elem.getBoundingClientRect().height : 0;\r\n var appHeight = (elem && eleHeight > 0) ? eleHeight : this.eventHeight;\r\n var diffInDays = eventData.count;\r\n var eventObj = extend({}, event, null, true);\r\n eventObj[this.fields.startTime] = eventData[this.fields.startTime];\r\n eventObj[this.fields.endTime] = eventData[this.fields.endTime];\r\n var currentDate = util.resetTime(new Date(this.dateRender[this.day].getTime()));\r\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\r\n var isValidEvent = this.isValidEvent(eventObj, startTime, endTime, schedule);\r\n if (startTime <= endTime && isValidEvent) {\r\n var appWidth_1 = this.getEventWidth(startTime, endTime, event[this.fields.isAllDay], diffInDays);\r\n appWidth_1 = this.renderType === 'day' ? appWidth_1 - 2 : appWidth_1;\r\n var appLeft = 0;\r\n var appRight = 0;\r\n var position = this.getPosition(startTime, endTime, event[this.fields.isAllDay], this.day);\r\n appWidth_1 = (appWidth_1 <= 0) ? this.cellWidth : appWidth_1; // appWidth 0 when start and end time as same\r\n this.renderedEvents.push(extend({}, event, null, true));\r\n var top_1 = this.getRowTop(resIndex);\r\n var appTop = (top_1 + (this.maxHeight ? 0 : EVENT_GAP)) + (overlapCount * (appHeight + EVENT_GAP));\r\n appLeft = (this.parent.enableRtl) ? 0 : position;\r\n appRight = (this.parent.enableRtl) ? position : 0;\r\n var height = ((overlapCount + 1) * (appHeight + EVENT_GAP)) + this.moreIndicatorHeight;\r\n var renderApp = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;\r\n if (this.parent.rowAutoHeight || renderApp) {\r\n var appointmentElement = void 0;\r\n if (isNullOrUndefined(this.inlineValue)) {\r\n appointmentElement = this.createAppointmentElement(event, resIndex);\r\n }\r\n else {\r\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement();\r\n }\r\n this.applyResourceColor(appointmentElement, event, 'backgroundColor', this.groupOrder);\r\n setStyleAttribute(appointmentElement, {\r\n 'width': appWidth_1 + 'px', 'left': appLeft + 'px', 'right': appRight + 'px', 'top': appTop + 'px'\r\n });\r\n this.wireAppointmentEvents(appointmentElement, event);\r\n this.renderEventElement(event, appointmentElement, cellTd);\r\n if (this.parent.rowAutoHeight) {\r\n var firstChild = this.getFirstChild(resIndex);\r\n this.updateCellHeight(firstChild, height);\r\n }\r\n if (this.parent.activeViewOptions.option !== 'TimelineMonth' && this.parent.activeViewOptions.timeScale.enable\r\n && appWidth_1 < this.cellWidth) {\r\n var resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + cls.EVENT_RESIZE_CLASS));\r\n resizeHandlers.forEach(function (resizeHandler) {\r\n resizeHandler.style.width = Math.ceil(appWidth_1 / resizeHandler.getBoundingClientRect().width) + 'px';\r\n });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < diffInDays; i++) {\r\n var moreIndicator = cellTd.querySelector('.' + cls.MORE_INDICATOR_CLASS);\r\n var appPos = (this.parent.enableRtl) ? appRight : appLeft;\r\n appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);\r\n var interval = this.interval / this.slotCount;\r\n var startDate = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day' || i !== 0) ?\r\n new Date(this.dateRender[this.day + i].getTime()) : new Date(startTime);\r\n var endDate = util.addDays(this.dateRender[this.day + i], 1);\r\n if (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') {\r\n var position_1 = this.getPosition(startDate, endDate, event[this.fields.isAllDay], (this.day + i));\r\n this.renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top_1, appLeft, appRight, cellTd, moreIndicator, appPos, position_1);\r\n }\r\n else {\r\n var slotCount = (util.getUniversalTime(endTime) - util.getUniversalTime(startTime)) / util.MS_PER_MINUTE *\r\n this.slotCount / this.interval;\r\n for (var k = 0; k < slotCount; k++) {\r\n startDate = (k === 0) ? new Date(startDate.getTime()) : new Date(startDate.getTime() + (60000 * interval));\r\n endDate = new Date(startDate.getTime() + (60000 * interval));\r\n if (endDate.getTime() > endTime.getTime()) {\r\n break;\r\n }\r\n var position_2 = this.getPosition(startDate, endDate, false, (this.day + i));\r\n if (appPos > position_2) {\r\n break;\r\n }\r\n appPos = position_2;\r\n this.renderTimelineMoreIndicator(startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top_1, appLeft, appRight, cellTd, moreIndicator, appPos, position_2);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.parent.renderTemplates();\r\n };\r\n TimelineEvent.prototype.renderTimelineMoreIndicator = function (startTime, startDate, endDate, appHeight, interval, resIndex, appointmentsList, top, appLeft, appRight, cellTd, moreIndicator, appPos, position) {\r\n appLeft = (this.parent.enableRtl) ? appRight = position : position;\r\n appPos = (this.parent.enableRtl) ? appRight : appLeft;\r\n appPos = (Math.floor(appPos / this.cellWidth) * this.cellWidth);\r\n if ((cellTd && isNullOrUndefined(moreIndicator)) ||\r\n (!this.isAlreadyAvail(appPos, cellTd))) {\r\n var startDateTime = (this.parent.activeViewOptions.option === 'TimelineMonth' || this.renderType === 'day') ? new Date(+startTime) : startDate;\r\n var slotStartTime = (new Date(startDateTime.setMinutes(Math.floor(startDateTime.getMinutes() / interval) * interval)));\r\n var slotEndTime = new Date(slotStartTime.getTime() + (60000 * interval));\r\n var groupIndex = void 0;\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !isNullOrUndefined(resIndex)) {\r\n groupIndex = resIndex.toString();\r\n }\r\n var filterEvents = this.getFilterEvents(startDate, endDate, slotStartTime, slotEndTime, groupIndex, appointmentsList);\r\n var appArea = this.cellHeight - this.moreIndicatorHeight;\r\n appHeight = this.withIndicator ? appArea - EVENT_GAP : appHeight;\r\n var renderedAppCount = Math.floor(appArea / (appHeight + EVENT_GAP));\r\n var count = (filterEvents.length - renderedAppCount) <= 0 ? 1 : (filterEvents.length - renderedAppCount);\r\n var moreIndicatorElement = void 0;\r\n if (this.renderType === 'day') {\r\n moreIndicatorElement = this.getMoreIndicatorElement(count, startDate, endDate);\r\n }\r\n else {\r\n moreIndicatorElement = this.getMoreIndicatorElement(count, slotStartTime, slotEndTime);\r\n }\r\n if (!isNullOrUndefined(groupIndex)) {\r\n moreIndicatorElement.setAttribute('data-group-index', groupIndex);\r\n }\r\n moreIndicatorElement.style.top = top + appArea + 'px';\r\n moreIndicatorElement.style.width = this.cellWidth + 'px';\r\n moreIndicatorElement.style.left = (Math.floor(appLeft / this.cellWidth) * this.cellWidth) + 'px';\r\n moreIndicatorElement.style.right = (Math.floor(appRight / this.cellWidth) * this.cellWidth) + 'px';\r\n this.renderElement(cellTd, moreIndicatorElement);\r\n EventHandler.add(moreIndicatorElement, 'click', this.moreIndicatorClick, this);\r\n }\r\n };\r\n TimelineEvent.prototype.updateCellHeight = function (cell, height) {\r\n if ((height > cell.getBoundingClientRect().height)) {\r\n setStyleAttribute(cell, { 'height': height + 'px' });\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resourceCell = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_TABLE_CLASS + ' ' + 'tbody td[data-group-index=\"' +\r\n cell.getAttribute('data-group-index') + '\"]');\r\n if (resourceCell) {\r\n setStyleAttribute(resourceCell, { 'height': height + 'px' });\r\n }\r\n }\r\n var monthHeader = this.parent.element.querySelector('.e-month-header-wrapper table tr:nth-child(' +\r\n (cell.parentElement.rowIndex + 1) + ') td');\r\n if (monthHeader) {\r\n setStyleAttribute(monthHeader, { 'height': height + 'px' });\r\n }\r\n }\r\n };\r\n TimelineEvent.prototype.getFirstChild = function (index) {\r\n var query = '.' + cls.CONTENT_TABLE_CLASS + ' tbody td';\r\n var groupIndex = '';\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n groupIndex = '[data-group-index=\"' + index.toString() + '\"]';\r\n }\r\n var td = this.parent.element.querySelector(query + groupIndex);\r\n return td;\r\n };\r\n TimelineEvent.prototype.updateBlockElements = function () {\r\n var blockElement = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS));\r\n for (var _i = 0, blockElement_1 = blockElement; _i < blockElement_1.length; _i++) {\r\n var element = blockElement_1[_i];\r\n var resIndex = parseInt(element.getAttribute('data-group-index'), 10);\r\n var firstChild = this.getFirstChild(resIndex);\r\n element.style.height = firstChild.offsetHeight + 'px';\r\n var width = Math.round(element.offsetWidth / firstChild.offsetWidth);\r\n element.style.width = (firstChild.offsetWidth * width) + 'px';\r\n }\r\n var blockIndicator = [].slice.call(this.element.querySelectorAll('.' + cls.BLOCK_INDICATOR_CLASS));\r\n for (var _a = 0, blockIndicator_1 = blockIndicator; _a < blockIndicator_1.length; _a++) {\r\n var element = blockIndicator_1[_a];\r\n var resIndex = parseInt(element.getAttribute('data-group-index'), 10);\r\n element.style.top = this.getRowTop(resIndex) +\r\n this.getFirstChild(resIndex).offsetHeight - BLOCK_INDICATOR_HEIGHT + 'px';\r\n }\r\n };\r\n TimelineEvent.prototype.getStartTime = function (event, eventData) {\r\n var startTime = event[this.fields.startTime];\r\n var schedule = util.getStartEndHours(startTime, this.startHour, this.endHour);\r\n if (schedule.startHour.getTime() >= eventData[this.fields.startTime]) {\r\n startTime = schedule.startHour;\r\n }\r\n else if (schedule.endHour.getTime() <= eventData[this.fields.startTime]) {\r\n startTime = this.getNextDay(schedule.startHour, eventData);\r\n }\r\n else {\r\n startTime = eventData[this.fields.startTime];\r\n }\r\n // To overcome the overflow\r\n eventData.trimStartTime = (event[this.fields.isAllDay]) ? schedule.startHour : eventData[this.fields.startTime];\r\n return startTime;\r\n };\r\n TimelineEvent.prototype.getNextDay = function (startTime, eventData) {\r\n var startDate;\r\n for (var i = 1; i <= this.dateRender.length; i++) {\r\n startDate = util.addDays(startTime, i);\r\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime()))) !== -1) {\r\n eventData.count = eventData.count - 1;\r\n return startDate;\r\n }\r\n }\r\n return startDate;\r\n };\r\n TimelineEvent.prototype.getEndTime = function (event, eventData) {\r\n var endTime = event[this.fields.endTime];\r\n var schedule = util.getStartEndHours(endTime, this.startHour, this.endHour);\r\n if (this.parent.currentView === 'TimelineMonth' || !this.parent.activeViewOptions.timeScale.enable ||\r\n (this.parent.activeViewOptions.headerRows.length > 0 &&\r\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour')) {\r\n endTime = eventData[this.fields.endTime];\r\n }\r\n else {\r\n endTime = eventData[this.fields.endTime];\r\n if (schedule.endHour.getTime() <= eventData[this.fields.endTime]) {\r\n endTime = schedule.endHour;\r\n }\r\n if (schedule.startHour.getTime() >= eventData[this.fields.endTime].getTime() && !event.isAllDay) {\r\n endTime = this.getPreviousDay(schedule.startHour, schedule.endHour, eventData);\r\n }\r\n }\r\n // To overcome the overflow\r\n eventData.trimEndTime = (event[this.fields.isAllDay]) ? schedule.endHour : eventData[this.fields.endTime];\r\n return endTime;\r\n };\r\n TimelineEvent.prototype.getPreviousDay = function (startTime, endTime, eventData) {\r\n for (var i = 1; i <= this.dateRender.length; i++) {\r\n var endDate = util.addDays(endTime, -i);\r\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime()))) !== -1) {\r\n endDate = util.resetTime(new Date(endDate.getTime()));\r\n endDate.setHours(endTime.getHours(), endTime.getMinutes(), endTime.getSeconds());\r\n var count = eventData.count;\r\n var actualEndTime = eventData[this.fields.endTime];\r\n eventData.count = actualEndTime.getHours() !== 0 || actualEndTime.getMinutes() !== 0 ? count - 1 : count;\r\n return endDate;\r\n }\r\n }\r\n return eventData[this.fields.endTime];\r\n };\r\n TimelineEvent.prototype.getEventWidth = function (startDate, endDate, isAllDay, count) {\r\n if (this.renderType === 'day' || isAllDay) {\r\n return (count * this.slotsPerDay) * this.cellWidth;\r\n }\r\n if (this.isSameDay(startDate, endDate)) {\r\n return this.getSameDayEventsWidth(startDate, endDate);\r\n }\r\n else {\r\n return this.getSpannedEventsWidth(startDate, endDate, count);\r\n }\r\n };\r\n TimelineEvent.prototype.getSameDayEventsWidth = function (startDate, endDate) {\r\n return ((util.getUniversalTime(endDate) - util.getUniversalTime(startDate)) /\r\n util.MS_PER_MINUTE * (this.cellWidth * this.slotCount) / this.interval);\r\n };\r\n TimelineEvent.prototype.getSpannedEventsWidth = function (startDate, endDate, diffInDays) {\r\n var width = (diffInDays * this.slotsPerDay) * this.cellWidth;\r\n var endWidth;\r\n var start = util.getStartEndHours(util.resetTime(new Date(startDate.getTime())), this.startHour, this.endHour);\r\n var startWidth = this.getSameDayEventsWidth(start.startHour, startDate);\r\n if (this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(endDate.getTime()))) === -1) {\r\n endWidth = 0;\r\n }\r\n else {\r\n var end = util.getStartEndHours(util.resetTime(new Date(endDate.getTime())), this.startHour, this.endHour);\r\n endWidth = this.getSameDayEventsWidth(endDate, end.endHour);\r\n endWidth = ((this.slotsPerDay * this.cellWidth) === endWidth) ? 0 : endWidth;\r\n }\r\n var spannedWidth = startWidth + endWidth;\r\n return (width > spannedWidth) ? width - spannedWidth : width - startWidth;\r\n };\r\n TimelineEvent.prototype.isSameDay = function (startTime, endTime) {\r\n var startDay = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(startTime.getTime())));\r\n var endDay = this.parent.getIndexOfDate(this.dateRender, util.resetTime(new Date(endTime.getTime())));\r\n return (startDay === endDay);\r\n };\r\n TimelineEvent.prototype.getAppointmentLeft = function (schedule, startTime, day) {\r\n var slotTd = (this.isSameDay(startTime, schedule.startHour)) ?\r\n ((util.getUniversalTime(startTime) - util.getUniversalTime(schedule.startHour)) /\r\n (util.MS_PER_MINUTE * this.interval)) * this.slotCount : 0;\r\n if (day === 0) {\r\n return slotTd;\r\n }\r\n else {\r\n var daySlot = Math.round((((util.getUniversalTime(schedule.endHour) - util.getUniversalTime(schedule.startHour)) /\r\n util.MS_PER_MINUTE) / this.interval) * this.slotCount);\r\n return (daySlot * day) + slotTd;\r\n }\r\n };\r\n TimelineEvent.prototype.getPosition = function (startTime, endTime, isAllDay, day) {\r\n if (this.renderType === 'day' || isAllDay) {\r\n return (day * this.slotsPerDay) * this.cellWidth;\r\n }\r\n var currentDate = util.resetTime(new Date(this.dateRender[day].getTime()));\r\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\r\n var cellIndex;\r\n if (schedule.endHour.getTime() <= endTime.getTime() && schedule.startHour.getTime() >= startTime.getTime()) {\r\n cellIndex = this.getAppointmentLeft(schedule, schedule.startHour, day);\r\n }\r\n else if (schedule.endHour.getTime() <= endTime.getTime()) {\r\n cellIndex = this.getAppointmentLeft(schedule, startTime, day);\r\n }\r\n else if (schedule.startHour.getTime() >= startTime.getTime()) {\r\n cellIndex = this.getAppointmentLeft(schedule, schedule.startHour, day);\r\n }\r\n else {\r\n cellIndex = this.getAppointmentLeft(schedule, startTime, day);\r\n }\r\n return cellIndex * this.cellWidth;\r\n };\r\n TimelineEvent.prototype.getFilterEvents = function (startDate, endDate, startTime, endTime, gIndex, eventsList) {\r\n if (this.renderType === 'day') {\r\n return this.getFilteredEvents(startDate, endDate, gIndex, eventsList);\r\n }\r\n else {\r\n return this.getFilteredEvents(startTime, endTime, gIndex, eventsList);\r\n }\r\n };\r\n TimelineEvent.prototype.isAlreadyAvail = function (appPos, cellTd) {\r\n var moreIndicator = [].slice.call(cellTd.querySelectorAll('.' + cls.MORE_INDICATOR_CLASS));\r\n for (var i = 0; i < moreIndicator.length; i++) {\r\n var indicatorPos = void 0;\r\n if (moreIndicator) {\r\n indicatorPos = (this.parent.enableRtl) ? moreIndicator[i].style.right : moreIndicator[i].style.left;\r\n }\r\n if (parseInt(indicatorPos, 10) === Math.floor(appPos)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n TimelineEvent.prototype.getRowTop = function (resIndex) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n return this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\r\n ' ' + 'tbody td[data-group-index=\"' + resIndex.toString() + '\"]').offsetTop;\r\n }\r\n return 0;\r\n };\r\n TimelineEvent.prototype.getCellTd = function () {\r\n var wrapIndex = this.parent.uiStateValues.isGroupAdaptive ? 0 : this.rowIndex;\r\n return this.eventContainers[wrapIndex];\r\n };\r\n TimelineEvent.prototype.renderBlockIndicator = function (cellTd, position, resIndex) {\r\n // No need to render block icon for Year, Month and Week header rows\r\n if (this.parent.headerRows.length > 0 &&\r\n (this.parent.headerRows[this.parent.headerRows.length - 1].option !== 'Hour' ||\r\n this.parent.headerRows[this.parent.headerRows.length - 1].option !== 'Date')) {\r\n return;\r\n }\r\n position = (Math.floor(position / this.cellWidth) * this.cellWidth) + this.cellWidth - BLOCK_INDICATOR_WIDTH;\r\n if (!this.isAlreadyAvail(position, cellTd)) {\r\n var blockIndicator = createElement('div', { className: 'e-icons ' + cls.BLOCK_INDICATOR_CLASS });\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n blockIndicator.setAttribute('data-group-index', resIndex.toString());\r\n }\r\n if (this.parent.enableRtl) {\r\n blockIndicator.style.right = position + 'px';\r\n }\r\n else {\r\n blockIndicator.style.left = position + 'px';\r\n }\r\n blockIndicator.style.top = this.getRowTop(resIndex) + this.cellHeight - BLOCK_INDICATOR_HEIGHT + 'px';\r\n this.renderElement(cellTd, blockIndicator);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TimelineEvent.prototype.setMaxEventHeight = function (event, cell) {\r\n setStyleAttribute(event, {\r\n 'height': (this.cellHeight - (this.maxHeight ? 0 : EVENT_GAP) - (this.maxHeight ? 0 : this.moreIndicatorHeight)) + 'px'\r\n });\r\n };\r\n TimelineEvent.prototype.destroy = function () {\r\n this.renderType = null;\r\n this.eventContainers = null;\r\n this.dayLength = null;\r\n this.content = null;\r\n _super.prototype.destroy.call(this);\r\n this.parent = null;\r\n };\r\n return TimelineEvent;\r\n}(MonthEvent));\r\nexport { TimelineEvent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { append, createElement, extend, EventHandler, prepend, Animation, formatUnit } from '@syncfusion/ej2-base';\r\nimport { isNullOrUndefined, setStyleAttribute, remove, removeClass, addClass } from '@syncfusion/ej2-base';\r\nimport { EventBase } from './event-base';\r\nimport * as util from '../base/util';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Vertical view appointment rendering\r\n */\r\nvar VerticalEvent = /** @class */ (function (_super) {\r\n __extends(VerticalEvent, _super);\r\n function VerticalEvent(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.dateRender = [];\r\n _this.renderedEvents = [];\r\n _this.renderedAllDayEvents = [];\r\n _this.overlapEvents = [];\r\n _this.moreEvents = [];\r\n _this.overlapList = [];\r\n _this.allDayEvents = [];\r\n _this.slotCount = _this.parent.activeViewOptions.timeScale.slotCount;\r\n _this.interval = _this.parent.activeViewOptions.timeScale.interval;\r\n _this.allDayLevel = 0;\r\n _this.startHour = _this.parent.activeView.getStartHour();\r\n _this.endHour = _this.parent.activeView.getEndHour();\r\n _this.element = _this.parent.activeView.getPanel();\r\n _this.fields = _this.parent.eventFields;\r\n _this.animation = new Animation({ progress: _this.animationUiUpdate.bind(_this) });\r\n _this.addEventListener();\r\n return _this;\r\n }\r\n VerticalEvent.prototype.renderAppointments = function () {\r\n if (isNullOrUndefined(this.parent)) {\r\n return;\r\n }\r\n if (this.parent.dragAndDropModule) {\r\n this.parent.dragAndDropModule.setDragArea();\r\n }\r\n var wrapperElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.BLOCK_APPOINTMENT_CLASS +\r\n ',.' + cls.APPOINTMENT_CLASS + ',.' + cls.ROW_COUNT_WRAPPER_CLASS));\r\n var isDragging = (this.parent.crudModule && this.parent.crudModule.crudObj.isCrudAction) ? true : false;\r\n for (var _i = 0, wrapperElements_1 = wrapperElements; _i < wrapperElements_1.length; _i++) {\r\n var wrapper = wrapperElements_1[_i];\r\n if (isDragging && !(wrapper.classList.contains(cls.ALLDAY_APPOINTMENT_CLASS) ||\r\n wrapper.classList.contains(cls.ROW_COUNT_WRAPPER_CLASS))) {\r\n var groupIndex = parseInt(wrapper.getAttribute('data-group-index'), 10);\r\n for (var j = 0, len = this.parent.crudModule.crudObj.sourceEvent.length; j < len; j++) {\r\n if (groupIndex === this.parent.crudModule.crudObj.sourceEvent[j].groupIndex ||\r\n groupIndex === this.parent.crudModule.crudObj.targetEvent[j].groupIndex) {\r\n remove(wrapper);\r\n }\r\n }\r\n }\r\n else {\r\n remove(wrapper);\r\n }\r\n }\r\n if (!this.element.querySelector('.' + cls.WORK_CELLS_CLASS)) {\r\n return;\r\n }\r\n this.allDayElement = [].slice.call(this.element.querySelectorAll('.' + cls.ALLDAY_CELLS_CLASS));\r\n this.setAllDayRowHeight(0);\r\n if (this.parent.eventsProcessed.length === 0 && this.parent.blockProcessed.length === 0) {\r\n return;\r\n }\r\n var expandCollapse = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\r\n EventHandler.remove(expandCollapse, 'click', this.rowExpandCollapse);\r\n EventHandler.add(expandCollapse, 'click', this.rowExpandCollapse, this);\r\n this.renderedEvents = [];\r\n this.renderedAllDayEvents = [];\r\n this.initializeValues();\r\n this.processBlockEvents();\r\n this.renderEvents('normalEvents');\r\n if (this.allDayEvents.length > 0) {\r\n this.allDayEvents = this.allDayEvents.filter(function (item, index, arr) {\r\n return index === arr.map(function (item) { return item.Guid; }).indexOf(item.Guid);\r\n });\r\n removeClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\r\n this.slots.push(this.parent.activeView.renderDates.map(function (date) { return +date; }));\r\n this.renderEvents('allDayEvents');\r\n }\r\n this.parent.notify(events.contentReady, {});\r\n addClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\r\n if (isDragging) {\r\n this.parent.crudModule.crudObj.isCrudAction = false;\r\n }\r\n this.parent.renderTemplates();\r\n };\r\n VerticalEvent.prototype.initializeValues = function () {\r\n this.resources = (this.parent.activeViewOptions.group.resources.length > 0) ? this.parent.uiStateValues.isGroupAdaptive ?\r\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :\r\n this.parent.resourceBase.lastResourceLevel : [];\r\n this.cellHeight =\r\n parseFloat(this.parent.element.querySelector('.e-content-wrap tbody tr').getBoundingClientRect().height.toFixed(2));\r\n this.dateRender[0] = this.parent.activeView.renderDates;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n for (var i = 0, len = this.resources.length; i < len; i++) {\r\n this.dateRender[i] = this.resources[i].renderDates;\r\n }\r\n }\r\n };\r\n VerticalEvent.prototype.getHeight = function (start, end) {\r\n var appHeight = (util.getUniversalTime(end) - util.getUniversalTime(start)) /\r\n util.MS_PER_MINUTE * (this.cellHeight * this.slotCount) / this.interval;\r\n appHeight = (appHeight <= 0) ? this.cellHeight : appHeight;\r\n return appHeight;\r\n };\r\n VerticalEvent.prototype.appendEvent = function (eventObj, appointmentElement, index, appLeft) {\r\n var appointmentWrap = [].slice.call(this.element.querySelectorAll('.' + cls.APPOINTMENT_WRAPPER_CLASS));\r\n if (this.parent.enableRtl) {\r\n setStyleAttribute(appointmentElement, { 'right': appLeft });\r\n }\r\n else {\r\n setStyleAttribute(appointmentElement, { 'left': appLeft });\r\n }\r\n var eventType = appointmentElement.classList.contains(cls.BLOCK_APPOINTMENT_CLASS) ? 'blockEvent' : 'event';\r\n var args = {\r\n data: extend({}, eventObj, null, true),\r\n element: appointmentElement, cancel: false, type: eventType\r\n };\r\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n appointmentWrap[index].appendChild(appointmentElement);\r\n }\r\n });\r\n };\r\n VerticalEvent.prototype.processBlockEvents = function () {\r\n var resources = this.getResourceList();\r\n var dateCount = 0;\r\n for (var _i = 0, resources_1 = resources; _i < resources_1.length; _i++) {\r\n var resource = resources_1[_i];\r\n var renderDates = this.dateRender[resource];\r\n for (var day = 0, length_1 = renderDates.length; day < length_1; day++) {\r\n var startDate = new Date(renderDates[day].getTime());\r\n var endDate = util.addDays(renderDates[day], 1);\r\n var filterEvents = this.filterEvents(startDate, endDate, this.parent.blockProcessed, this.resources[resource]);\r\n for (var _a = 0, filterEvents_1 = filterEvents; _a < filterEvents_1.length; _a++) {\r\n var event_1 = filterEvents_1[_a];\r\n if (this.parent.resourceBase) {\r\n this.setValues(event_1, resource);\r\n }\r\n this.renderBlockEvents(event_1, day, resource, dateCount);\r\n this.cssClass = null;\r\n this.groupOrder = null;\r\n }\r\n dateCount += 1;\r\n }\r\n }\r\n };\r\n VerticalEvent.prototype.renderBlockEvents = function (eventObj, dayIndex, resource, dayCount) {\r\n var spannedData = this.isSpannedEvent(eventObj, dayIndex, resource);\r\n var eStart = spannedData[this.fields.startTime];\r\n var eEnd = spannedData[this.fields.endTime];\r\n var currentDate = util.resetTime(new Date(this.dateRender[resource][dayIndex].getTime()));\r\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\r\n if (eStart <= eEnd && this.isValidEvent(eventObj, eStart, eEnd, schedule)) {\r\n var blockTop = void 0;\r\n var blockHeight = void 0;\r\n if (spannedData[this.fields.isAllDay]) {\r\n var contentWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\r\n blockHeight = formatUnit(contentWrap.offsetHeight);\r\n blockTop = formatUnit(0);\r\n }\r\n else {\r\n blockHeight = formatUnit(this.getHeight(eStart, eEnd));\r\n blockTop = formatUnit(this.getTopValue(eStart, dayIndex, resource));\r\n }\r\n var appointmentElement = this.createBlockAppointmentElement(eventObj, resource);\r\n setStyleAttribute(appointmentElement, { 'width': '100%', 'height': blockHeight, 'top': blockTop });\r\n var index = this.parent.activeViewOptions.group.byDate ? (this.resources.length * dayIndex) + resource : dayCount;\r\n this.appendEvent(eventObj, appointmentElement, index, '0px');\r\n }\r\n };\r\n VerticalEvent.prototype.renderEvents = function (eventType) {\r\n removeClass(this.allDayElement, cls.ALLDAY_ROW_ANIMATE_CLASS);\r\n var eventCollection = (eventType === 'allDayEvents') ? this.sortByDateTime(this.allDayEvents) : undefined;\r\n var resources = this.getResourceList();\r\n var dateCount = 0;\r\n var isRender;\r\n var _loop_1 = function (resource) {\r\n isRender = true;\r\n if (this_1.parent.crudModule && this_1.parent.crudModule.crudObj.isCrudAction && eventType !== 'allDayEvents'\r\n && !this_1.parent.uiStateValues.isGroupAdaptive) {\r\n if (this_1.parent.crudModule.crudObj.sourceEvent.filter(function (data) { return data.groupIndex === resource; }).length === 0 &&\r\n this_1.parent.crudModule.crudObj.targetEvent.filter(function (data) { return data.groupIndex === resource; }).length === 0) {\r\n isRender = false;\r\n }\r\n }\r\n this_1.slots = [];\r\n var renderDates = this_1.dateRender[resource];\r\n var renderedDate = this_1.getRenderedDates(renderDates) || renderDates;\r\n this_1.slots.push(renderDates.map(function (date) { return +date; }));\r\n for (var day = 0, length_2 = renderDates.length; day < length_2 &&\r\n renderDates[day] <= renderedDate[renderedDate.length - 1]; day++) {\r\n this_1.renderedEvents = [];\r\n var startDate = new Date(renderDates[day].getTime());\r\n var endDate = util.addDays(renderDates[day], 1);\r\n var filterEvents = this_1.filterEvents(startDate, endDate, eventCollection, this_1.resources[resource]);\r\n if (isRender) {\r\n for (var _i = 0, filterEvents_2 = filterEvents; _i < filterEvents_2.length; _i++) {\r\n var event_2 = filterEvents_2[_i];\r\n if (this_1.parent.resourceBase) {\r\n this_1.setValues(event_2, resource);\r\n }\r\n if (eventType === 'allDayEvents') {\r\n this_1.renderAllDayEvents(event_2, day, resource, dateCount);\r\n }\r\n else {\r\n if (this_1.isAllDayAppointment(event_2)) {\r\n this_1.allDayEvents.push(extend({}, event_2, null, true));\r\n }\r\n else {\r\n if (this_1.parent.eventSettings.enableMaxHeight) {\r\n if (this_1.getOverlapIndex(event_2, day, false, resource) > 0) {\r\n continue;\r\n }\r\n }\r\n this_1.renderNormalEvents(event_2, day, resource, dateCount);\r\n }\r\n }\r\n this_1.cssClass = null;\r\n this_1.groupOrder = null;\r\n }\r\n }\r\n else {\r\n for (var _a = 0, filterEvents_3 = filterEvents; _a < filterEvents_3.length; _a++) {\r\n var event_3 = filterEvents_3[_a];\r\n if (this_1.isAllDayAppointment(event_3)) {\r\n this_1.allDayEvents.push(extend({}, event_3, null, true));\r\n }\r\n }\r\n }\r\n dateCount += 1;\r\n }\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, resources_2 = resources; _i < resources_2.length; _i++) {\r\n var resource = resources_2[_i];\r\n _loop_1(resource);\r\n }\r\n };\r\n VerticalEvent.prototype.setValues = function (event, resourceIndex) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.cssClass = this.resources[resourceIndex].cssClass;\r\n this.groupOrder = this.resources[resourceIndex].groupOrder;\r\n }\r\n else {\r\n this.cssClass = this.parent.resourceBase.getCssClass(event);\r\n }\r\n };\r\n VerticalEvent.prototype.getResourceList = function () {\r\n // eslint-disable-next-line prefer-spread\r\n var resources = Array.apply(null, {\r\n length: (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) ?\r\n this.resources.length : 1\r\n }).map(function (value, index) { return index; });\r\n return resources;\r\n };\r\n // eslint-disable-next-line max-len\r\n VerticalEvent.prototype.createAppointmentElement = function (record, isAllDay, data, resource) {\r\n var fieldMapping = this.parent.eventFields;\r\n var recordSubject = (record[fieldMapping.subject] || this.parent.eventSettings.fields.subject.default\r\n || this.parent.localeObj.getConstant('addTitle'));\r\n var appointmentWrapper = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS,\r\n attrs: {\r\n 'data-id': 'Appointment_' + record[fieldMapping.id],\r\n 'data-guid': record.Guid,\r\n 'role': 'button',\r\n 'tabindex': '0',\r\n 'aria-readonly': this.parent.eventBase.getReadonlyAttribute(record),\r\n 'aria-selected': 'false',\r\n 'aria-grabbed': 'true',\r\n 'aria-label': this.parent.getAnnouncementString(record)\r\n }\r\n });\r\n if (record[this.fields.isReadonly]) {\r\n addClass([appointmentWrapper], 'e-read-only');\r\n }\r\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\r\n appointmentWrapper.appendChild(appointmentDetails);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resourceIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex : resource;\r\n appointmentWrapper.setAttribute('data-group-index', resourceIndex.toString());\r\n }\r\n var templateElement;\r\n var eventData = data;\r\n if (!isNullOrUndefined(this.parent.activeViewOptions.eventTemplate)) {\r\n var elementId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.eventTemplateName;\r\n var templateId = elementId + viewName + 'eventTemplate';\r\n templateElement = this.parent.getAppointmentTemplate()(record, this.parent, 'eventTemplate', templateId, false);\r\n }\r\n else {\r\n var appointmentSubject = createElement('div', { className: cls.SUBJECT_CLASS, innerHTML: recordSubject });\r\n if (isAllDay) {\r\n if (record[fieldMapping.isAllDay]) {\r\n templateElement = [appointmentSubject];\r\n }\r\n else {\r\n templateElement = [];\r\n var appointmentStartTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(record[fieldMapping.startTime])\r\n });\r\n var appointmentEndTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(record[fieldMapping.endTime])\r\n });\r\n addClass([appointmentSubject], 'e-text-center');\r\n if (!eventData.isLeft) {\r\n templateElement.push(appointmentStartTime);\r\n }\r\n templateElement.push(appointmentSubject);\r\n if (!eventData.isRight) {\r\n templateElement.push(appointmentEndTime);\r\n }\r\n }\r\n }\r\n else {\r\n var timeStr = this.parent.getTimeString(record[fieldMapping.startTime]) + ' - ' +\r\n this.parent.getTimeString(record[fieldMapping.endTime]);\r\n var appointmentTime = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: timeStr\r\n });\r\n var appointmentLocation = createElement('div', {\r\n className: cls.LOCATION_CLASS,\r\n innerHTML: (record[fieldMapping.location] || this.parent.eventSettings.fields.location.default || '')\r\n });\r\n templateElement = [appointmentSubject, appointmentTime, appointmentLocation];\r\n }\r\n }\r\n append(templateElement, appointmentDetails);\r\n if (!this.parent.isAdaptive &&\r\n (!isNullOrUndefined(record[fieldMapping.recurrenceRule]) || !isNullOrUndefined(record[fieldMapping.recurrenceID]))) {\r\n var iconClass = (record[fieldMapping.id] === record[fieldMapping.recurrenceID]) ?\r\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\r\n var recurrenceIcon = createElement('div', { className: cls.ICON + ' ' + iconClass });\r\n if (isAllDay) {\r\n appointmentDetails.appendChild(recurrenceIcon);\r\n }\r\n else {\r\n appointmentWrapper.appendChild(recurrenceIcon);\r\n }\r\n }\r\n this.renderSpannedIcon(isAllDay ? appointmentDetails : appointmentWrapper, eventData);\r\n if (!isNullOrUndefined(this.cssClass)) {\r\n addClass([appointmentWrapper], this.cssClass);\r\n }\r\n this.applyResourceColor(appointmentWrapper, record, 'backgroundColor', this.groupOrder);\r\n this.renderResizeHandler(appointmentWrapper, eventData, record[this.fields.isReadonly]);\r\n return appointmentWrapper;\r\n };\r\n VerticalEvent.prototype.createMoreIndicator = function (allDayRow, count, currentDay) {\r\n var index = currentDay + count;\r\n var countWrapper = allDayRow[index];\r\n if (countWrapper.childElementCount <= 0) {\r\n var innerCountWrap = createElement('div', {\r\n className: cls.ROW_COUNT_WRAPPER_CLASS,\r\n id: cls.ROW_COUNT_WRAPPER_CLASS + '-' + index.toString()\r\n });\r\n var moreIndicatorElement = createElement('div', {\r\n className: cls.MORE_INDICATOR_CLASS,\r\n attrs: { 'tabindex': '0', 'role': 'list', 'data-index': index.toString(), 'data-count': '1' },\r\n innerHTML: '+1 ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'))\r\n });\r\n innerCountWrap.appendChild(moreIndicatorElement);\r\n countWrapper.appendChild(innerCountWrap);\r\n EventHandler.add(moreIndicatorElement, 'click', this.rowExpandCollapse, this);\r\n }\r\n else {\r\n var countCell = countWrapper.querySelector('.' + cls.MORE_INDICATOR_CLASS);\r\n var moreCount = parseInt(countCell.getAttribute('data-count'), 10) + 1;\r\n countCell.setAttribute('data-count', moreCount.toString());\r\n countCell.innerHTML = '+' + this.parent.globalize.formatNumber(moreCount) + ' ' + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more'));\r\n }\r\n };\r\n VerticalEvent.prototype.renderSpannedIcon = function (element, spanEvent) {\r\n var iconElement = createElement('div', { className: cls.EVENT_INDICATOR_CLASS + ' ' + cls.ICON });\r\n if (spanEvent.isLeft) {\r\n var iconLeft = iconElement.cloneNode();\r\n addClass([iconLeft], cls.EVENT_ICON_LEFT_CLASS);\r\n prepend([iconLeft], element);\r\n }\r\n if (spanEvent.isRight) {\r\n var iconRight = iconElement.cloneNode();\r\n addClass([iconRight], cls.EVENT_ICON_RIGHT_CLASS);\r\n append([iconRight], element);\r\n }\r\n if (spanEvent.isTop) {\r\n var iconTop = iconElement.cloneNode();\r\n addClass([iconTop], cls.EVENT_ICON_UP_CLASS);\r\n prepend([iconTop], element);\r\n }\r\n if (spanEvent.isBottom) {\r\n var iconBottom = iconElement.cloneNode();\r\n addClass([iconBottom], cls.EVENT_ICON_DOWN_CLASS);\r\n append([iconBottom], element);\r\n }\r\n };\r\n VerticalEvent.prototype.isSpannedEvent = function (record, day, resource) {\r\n var currentDate = util.resetTime(this.dateRender[resource][day]);\r\n var renderedDate = this.getRenderedDates(this.dateRender[resource]) || [currentDate];\r\n var currentDay = renderedDate.filter(function (date) { return date.getDay() === day; });\r\n if (currentDay.length === 0) {\r\n currentDate = util.resetTime(renderedDate[0]);\r\n }\r\n var fieldMapping = this.parent.eventFields;\r\n var startEndHours = util.getStartEndHours(currentDate, this.startHour, this.endHour);\r\n var event = extend({}, record, null, true);\r\n event.isSpanned = { isBottom: false, isTop: false };\r\n if (record[fieldMapping.startTime].getTime() < startEndHours.startHour.getTime()) {\r\n event[fieldMapping.startTime] = startEndHours.startHour;\r\n event.isSpanned.isTop = true;\r\n }\r\n if (record[fieldMapping.endTime].getTime() > startEndHours.endHour.getTime()) {\r\n event[fieldMapping.endTime] = startEndHours.endHour;\r\n event.isSpanned.isBottom = true;\r\n }\r\n return event;\r\n };\r\n VerticalEvent.prototype.renderAllDayEvents = function (eventObj, dayIndex, resource, dayCount, inline) {\r\n var _this = this;\r\n var currentDates = this.getRenderedDates(this.dateRender[resource]) || this.dateRender[resource];\r\n if (this.parent.activeViewOptions.group.byDate) {\r\n this.slots[0] = [this.dateRender[resource][dayIndex].getTime()];\r\n currentDates = [this.dateRender[resource][dayIndex]];\r\n }\r\n var record = this.splitEvent(eventObj, currentDates)[0];\r\n var allDayRowCell = this.element.querySelector('.' + cls.ALLDAY_CELLS_CLASS + ':first-child');\r\n var cellTop = allDayRowCell.offsetTop;\r\n var eStart = new Date(record[this.parent.eventFields.startTime].getTime());\r\n var eEnd = new Date(record[this.parent.eventFields.endTime].getTime());\r\n var appWidth = 0;\r\n var topValue = 1;\r\n var isDateRange = currentDates[0].getTime() <= eStart.getTime() &&\r\n util.addDays(currentDates.slice(-1)[0], 1).getTime() >= eStart.getTime();\r\n if (eStart <= eEnd && isDateRange) {\r\n var isAlreadyRendered = [];\r\n if (this.renderedAllDayEvents[resource]) {\r\n isAlreadyRendered = this.renderedAllDayEvents[resource].filter(function (event) {\r\n return event.Guid === eventObj.Guid;\r\n });\r\n if (this.parent.activeViewOptions.group.byDate) {\r\n isAlreadyRendered = isAlreadyRendered.filter(function (event) {\r\n return event[_this.parent.eventFields.startTime] >= currentDates[dayIndex] &&\r\n event[_this.parent.eventFields.endTime] <= util.addDays(new Date(+currentDates[dayIndex]), 1);\r\n });\r\n }\r\n }\r\n if (isAlreadyRendered.length === 0) {\r\n var allDayDifference_1 = record.data.count;\r\n var allDayIndex_1 = this.getOverlapIndex(record, dayIndex, true, resource);\r\n record.Index = allDayIndex_1;\r\n this.allDayLevel = (this.allDayLevel < allDayIndex_1) ? allDayIndex_1 : this.allDayLevel;\r\n var widthAdjustment = record.data.isRight ? 0 :\r\n this.parent.currentView === 'Day' ? 4 : 7;\r\n if (allDayDifference_1 >= 0) {\r\n appWidth = (allDayDifference_1 * 100) - widthAdjustment;\r\n }\r\n if (isNullOrUndefined(this.renderedAllDayEvents[resource])) {\r\n this.renderedAllDayEvents[resource] = [];\r\n }\r\n this.renderedAllDayEvents[resource].push(extend({}, record, null, true));\r\n var allDayRow_1 = [].slice.call(this.element.querySelector('.' + cls.ALLDAY_ROW_CLASS).children);\r\n var wIndex_1 = this.parent.activeViewOptions.group.byDate ?\r\n (this.resources.length * dayIndex) + resource : dayCount;\r\n var eventWrapper_1 = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS +\r\n ':nth-child(' + (wIndex_1 + 1) + ')');\r\n var appointmentElement_1;\r\n if (inline) {\r\n appointmentElement_1 = this.parent.inlineModule.createInlineAppointmentElement(eventObj);\r\n }\r\n else {\r\n appointmentElement_1 = this.createAppointmentElement(eventObj, true, record.data, resource);\r\n }\r\n addClass([appointmentElement_1], cls.ALLDAY_APPOINTMENT_CLASS);\r\n var args = { data: eventObj, element: appointmentElement_1, cancel: false };\r\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n eventWrapper_1.appendChild(appointmentElement_1);\r\n var appHeight = appointmentElement_1.offsetHeight;\r\n topValue += (allDayIndex_1 === 0 ? cellTop : (cellTop + (allDayIndex_1 * appHeight))) + 1;\r\n setStyleAttribute(appointmentElement_1, { 'width': appWidth + '%', 'top': formatUnit(topValue) });\r\n if (allDayIndex_1 > 1) {\r\n _this.moreEvents.push(appointmentElement_1);\r\n for (var count = 0, length_3 = allDayDifference_1; count < length_3; count++) {\r\n _this.createMoreIndicator(allDayRow_1, count, wIndex_1);\r\n }\r\n }\r\n allDayRowCell.setAttribute('data-count', _this.allDayLevel.toString());\r\n var allDayRowHeight = ((!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) ?\r\n (3 * appHeight) : ((_this.allDayLevel + 1) * appHeight)) + 4;\r\n _this.setAllDayRowHeight(allDayRowHeight);\r\n _this.addOrRemoveClass();\r\n _this.wireAppointmentEvents(appointmentElement_1, eventObj);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n VerticalEvent.prototype.renderNormalEvents = function (eventObj, dayIndex, resource, dayCount, inline) {\r\n var record = this.isSpannedEvent(eventObj, dayIndex, resource);\r\n var eStart = record[this.fields.startTime];\r\n var eEnd = record[this.fields.endTime];\r\n var appWidth = '0%';\r\n var appLeft = '0%';\r\n var topValue = 0;\r\n var currentDate = util.resetTime(new Date(this.dateRender[resource][dayIndex].getTime()));\r\n var schedule = util.getStartEndHours(currentDate, this.startHour, this.endHour);\r\n var isValidEvent = this.isValidEvent(eventObj, eStart, eEnd, schedule);\r\n if (eStart <= eEnd && isValidEvent) {\r\n var appHeight_1 = this.getHeight(eStart, eEnd);\r\n if (eStart.getTime() > schedule.startHour.getTime()) {\r\n topValue = this.getTopValue(eStart, dayIndex, resource);\r\n }\r\n var appIndex = this.getOverlapIndex(record, dayIndex, false, resource);\r\n record.Index = appIndex;\r\n this.overlapList.push(record);\r\n if (this.overlapList.length > 1) {\r\n if (isNullOrUndefined(this.overlapEvents[appIndex])) {\r\n this.overlapEvents[appIndex] = [];\r\n }\r\n this.overlapEvents[appIndex].push(record);\r\n }\r\n else {\r\n this.overlapEvents = [];\r\n this.overlapEvents.push([record]);\r\n }\r\n appWidth = this.getEventWidth();\r\n var argsData = {\r\n index: appIndex, left: appLeft, width: appWidth,\r\n day: dayIndex, dayIndex: dayCount, record: record, resource: resource\r\n };\r\n var tempData = this.adjustOverlapElements(argsData);\r\n appWidth = (tempData.appWidth);\r\n if (isNullOrUndefined(this.renderedEvents[resource])) {\r\n this.renderedEvents[resource] = [];\r\n }\r\n this.renderedEvents[resource].push(extend({}, record, null, true));\r\n var appointmentElement = void 0;\r\n if (inline) {\r\n appointmentElement = this.parent.inlineModule.createInlineAppointmentElement(eventObj);\r\n }\r\n else {\r\n appointmentElement = this.createAppointmentElement(eventObj, false, record.isSpanned, resource);\r\n }\r\n setStyleAttribute(appointmentElement, {\r\n 'width': (this.parent.eventSettings.enableMaxHeight ? '100%' : tempData.appWidth),\r\n 'height': appHeight_1 + 'px', 'top': topValue + 'px'\r\n });\r\n var iconHeight = appointmentElement.querySelectorAll('.' + cls.EVENT_INDICATOR_CLASS).length * 15;\r\n var maxHeight = appHeight_1 - 40 - iconHeight;\r\n var subjectElement = appointmentElement.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (!this.parent.isAdaptive && subjectElement) {\r\n subjectElement.style.maxHeight = formatUnit(maxHeight);\r\n }\r\n var index = this.parent.activeViewOptions.group.byDate ? (this.resources.length * dayIndex) + resource : dayCount;\r\n this.appendEvent(eventObj, appointmentElement, index, tempData.appLeft);\r\n this.wireAppointmentEvents(appointmentElement, eventObj);\r\n if (appHeight_1 < this.cellHeight) {\r\n var resizeHandlers = [].slice.call(appointmentElement.querySelectorAll('.' + cls.EVENT_RESIZE_CLASS));\r\n resizeHandlers.forEach(function (resizeHandler) {\r\n resizeHandler.style.height = Math.ceil(appHeight_1 / resizeHandler.offsetHeight) + 'px';\r\n });\r\n }\r\n }\r\n };\r\n VerticalEvent.prototype.getEventWidth = function () {\r\n var width = this.parent.currentView === 'Day' ? 97 : 94;\r\n var tempWidth = ((width - this.overlapEvents.length) / this.overlapEvents.length);\r\n return (tempWidth < 0 ? 0 : tempWidth) + '%';\r\n };\r\n VerticalEvent.prototype.getEventLeft = function (appWidth, index) {\r\n var tempLeft = (parseFloat(appWidth) + 1) * index;\r\n return (tempLeft > 99 ? 99 : tempLeft) + '%';\r\n };\r\n VerticalEvent.prototype.getTopValue = function (date, day, resource) {\r\n var startEndHours = util.getStartEndHours(util.resetTime(this.dateRender[resource][day]), this.startHour, this.endHour);\r\n var startHour = startEndHours.startHour;\r\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\r\n return (this.parent.activeViewOptions.timeScale.enable) ? ((diffInMinutes * this.cellHeight * this.slotCount) / this.interval) : 0;\r\n };\r\n VerticalEvent.prototype.getOverlapIndex = function (record, day, isAllDay, resource) {\r\n var _this = this;\r\n var fieldMapping = this.parent.eventFields;\r\n var eventsList = [];\r\n var appIndex = -1;\r\n this.overlapEvents = [];\r\n if (isAllDay) {\r\n if (!isNullOrUndefined(this.renderedAllDayEvents[resource])) {\r\n var date_1 = util.resetTime(new Date(this.dateRender[resource][day].getTime()));\r\n eventsList = this.renderedAllDayEvents[resource].filter(function (app) {\r\n return util.resetTime(app[fieldMapping.startTime]).getTime() <= date_1.getTime() &&\r\n util.resetTime(app[fieldMapping.endTime]).getTime() >= date_1.getTime();\r\n });\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n eventsList = this.filterEventsByResource(this.resources[resource], eventsList);\r\n }\r\n }\r\n }\r\n else {\r\n var appointmentList_1 = !isNullOrUndefined(this.renderedEvents[resource]) ?\r\n this.renderedEvents[resource] : [];\r\n var appointment_1 = [];\r\n var recordStart_1 = record[fieldMapping.startTime];\r\n var recordEnd_1 = record[fieldMapping.endTime];\r\n this.overlapList = appointmentList_1.filter(function (data) {\r\n return (data[fieldMapping.endTime] > recordStart_1 && data[fieldMapping.startTime] <= recordEnd_1) ||\r\n (data[fieldMapping.startTime] >= recordEnd_1 && data[fieldMapping.endTime] <= recordStart_1) ||\r\n (data[fieldMapping.endTime].getTime() === data[fieldMapping.startTime].getTime() &&\r\n data[fieldMapping.startTime].getTime() === recordStart_1.getTime() && data[fieldMapping.endTime] < recordEnd_1);\r\n });\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.overlapList = this.filterEventsByResource(this.resources[resource], this.overlapList);\r\n }\r\n this.overlapList.forEach(function (obj) {\r\n var filterList = appointmentList_1.filter(function (data) {\r\n return data[fieldMapping.endTime] > obj[fieldMapping.startTime] && data[fieldMapping.startTime] <= obj[fieldMapping.endTime];\r\n });\r\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\r\n filterList = _this.filterEventsByResource(_this.resources[resource], filterList);\r\n }\r\n var collection = filterList.filter(function (val) {\r\n return _this.overlapList.indexOf(val) === -1;\r\n });\r\n if (collection.length > 0) {\r\n appointment_1 = appointment_1.concat(collection);\r\n }\r\n });\r\n for (var i = 0; i < appointment_1.length - 1; i++) {\r\n for (var j = i + 1; j < appointment_1.length; j++) {\r\n if (appointment_1[i][fieldMapping.id] === appointment_1[j][fieldMapping.id]) {\r\n appointment_1.splice(j, 1);\r\n j--;\r\n }\r\n }\r\n }\r\n this.overlapList = this.overlapList.concat(appointment_1);\r\n eventsList = this.overlapList;\r\n for (var _i = 0, eventsList_1 = eventsList; _i < eventsList_1.length; _i++) {\r\n var event_4 = eventsList_1[_i];\r\n var record_1 = event_4;\r\n var index = record_1.Index;\r\n if (isNullOrUndefined(this.overlapEvents[index])) {\r\n this.overlapEvents[index] = [event_4];\r\n }\r\n else {\r\n this.overlapEvents[index].push(event_4);\r\n }\r\n }\r\n }\r\n if (!isAllDay) {\r\n eventsList = eventsList.filter(function (obj) { return (obj[fieldMapping.startTime] === record[fieldMapping.startTime] &&\r\n obj[fieldMapping.endTime] > record[fieldMapping.endTime] || obj[fieldMapping.endTime] > record[fieldMapping.startTime] &&\r\n obj[fieldMapping.startTime] < record[fieldMapping.endTime] || obj[fieldMapping.endTime] === record[fieldMapping.startTime]\r\n && obj[fieldMapping.startTime] === record[fieldMapping.endTime]) ||\r\n ((obj[fieldMapping.startTime].getTime() === record[fieldMapping.startTime].getTime() &&\r\n obj[fieldMapping.endTime].getTime() === record[fieldMapping.endTime].getTime())\r\n || (obj[fieldMapping.startTime].getTime() === record[fieldMapping.startTime].getTime() &&\r\n obj[fieldMapping.endTime].getTime() < record[fieldMapping.endTime].getTime() ||\r\n obj[fieldMapping.endTime].getTime() > record[fieldMapping.endTime].getTime())); });\r\n }\r\n if (eventsList.length > 0) {\r\n var appLevel = eventsList.map(function (obj) { return obj.Index; });\r\n appIndex = (appLevel.length > 0) ? this.getSmallestMissingNumber(appLevel) : 0;\r\n }\r\n return (appIndex === -1) ? 0 : appIndex;\r\n };\r\n VerticalEvent.prototype.adjustOverlapElements = function (args) {\r\n var data = { appWidth: args.width, appLeft: args.left };\r\n for (var i = 0, length1 = this.overlapEvents.length; i < length1; i++) {\r\n if (!isNullOrUndefined(this.overlapEvents[i])) {\r\n for (var j = 0, length2 = this.overlapEvents[i].length; j < length2; j++) {\r\n var dayCount = this.parent.activeViewOptions.group.byDate ?\r\n (this.resources.length * args.day) + args.resource : args.dayIndex;\r\n var element = this.element.querySelector('#e-appointment-wrapper-' + dayCount);\r\n if (element.childElementCount > 0) {\r\n var eleGuid = this.overlapEvents[i][j].Guid;\r\n if (element.querySelectorAll('div[data-guid=\"' + eleGuid + '\"]').length > 0 && eleGuid !== args.record.Guid) {\r\n var apps = element.querySelector('div[data-guid=\"' + eleGuid + '\"]');\r\n if (parseFloat(args.width) <= parseFloat(apps.style.width)) {\r\n if (this.parent.enableRtl) {\r\n apps.style.right = this.getEventLeft(args.width, i);\r\n }\r\n else {\r\n apps.style.left = this.getEventLeft(args.width, i);\r\n }\r\n apps.style.width = ((parseFloat(args.width))) + '%';\r\n data.appWidth = apps.style.width;\r\n }\r\n else {\r\n data.appWidth = apps.style.width;\r\n }\r\n }\r\n else {\r\n var appWidth = args.width;\r\n if (isNullOrUndefined(this.overlapEvents[i - 1])) {\r\n appWidth = this.getEventWidth();\r\n }\r\n data.appWidth = appWidth;\r\n data.appLeft = this.getEventLeft(appWidth, args.index);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return data;\r\n };\r\n VerticalEvent.prototype.setAllDayRowHeight = function (height) {\r\n var dateHeader = this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\r\n if (this.parent.height === 'auto' || !this.parent.enableAllDayScroll) {\r\n addClass([dateHeader], cls.ALLDAY_APPOINTMENT_AUTO);\r\n }\r\n var allDayRow = this.parent.element.querySelector('.' + cls.ALLDAY_ROW_CLASS);\r\n allDayRow.style.height = '';\r\n if (this.parent.uiStateValues.expand && this.parent.height !== 'auto' && this.parent.enableAllDayScroll) {\r\n allDayRow.style.height = (height / 12) + 'em';\r\n this.parent.eventBase.allDayExpandScroll(dateHeader);\r\n }\r\n else {\r\n dateHeader.scrollTop = 0;\r\n for (var _i = 0, _a = this.allDayElement; _i < _a.length; _i++) {\r\n var element = _a[_i];\r\n element.style.height = (height / 12) + 'em';\r\n }\r\n removeClass([dateHeader], cls.ALLDAY_APPOINTMENT_SCROLL);\r\n }\r\n this.animation.animate(this.allDayElement[0]);\r\n };\r\n VerticalEvent.prototype.addOrRemoveClass = function () {\r\n var _this = this;\r\n this.moreEvents.filter(function (element) {\r\n if (!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) {\r\n addClass([element], cls.EVENT_COUNT_CLASS);\r\n element.setAttribute('tabindex', '-1');\r\n }\r\n else {\r\n removeClass([element], cls.EVENT_COUNT_CLASS);\r\n element.setAttribute('tabindex', '0');\r\n }\r\n });\r\n var moreEventCount = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\r\n if (this.parent.uiStateValues.expand) {\r\n removeClass([moreEventCount], cls.APPOINTMENT_ROW_EXPAND_CLASS);\r\n addClass([moreEventCount], cls.APPOINTMENT_ROW_COLLAPSE_CLASS);\r\n }\r\n else {\r\n removeClass([moreEventCount], cls.APPOINTMENT_ROW_COLLAPSE_CLASS);\r\n addClass([moreEventCount], cls.APPOINTMENT_ROW_EXPAND_CLASS);\r\n }\r\n if (this.allDayLevel > 2) {\r\n removeClass([moreEventCount], cls.DISABLE_CLASS);\r\n }\r\n else {\r\n addClass([moreEventCount], cls.DISABLE_CLASS);\r\n }\r\n var countCell = [].slice.call(this.element.querySelectorAll('.' + cls.ROW_COUNT_WRAPPER_CLASS));\r\n countCell.forEach(function (element) {\r\n if (!_this.parent.uiStateValues.expand && _this.allDayLevel > 2) {\r\n removeClass([element], cls.DISABLE_CLASS);\r\n }\r\n else {\r\n addClass([element], cls.DISABLE_CLASS);\r\n }\r\n });\r\n };\r\n VerticalEvent.prototype.getEventHeight = function () {\r\n var eventElement = createElement('div', { className: cls.APPOINTMENT_CLASS, styles: 'visibility:hidden' });\r\n var eventWrapper = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS + ':first-child');\r\n eventWrapper.appendChild(eventElement);\r\n var height = eventElement.offsetHeight;\r\n remove(eventElement);\r\n return height;\r\n };\r\n VerticalEvent.prototype.rowExpandCollapse = function () {\r\n var target = this.element.querySelector('.' + cls.ALLDAY_APPOINTMENT_SECTION_CLASS);\r\n this.parent.uiStateValues.expand = target.classList.contains(cls.APPOINTMENT_ROW_EXPAND_CLASS);\r\n var rowHeight;\r\n if (this.parent.uiStateValues.expand) {\r\n target.setAttribute('title', this.parent.localeObj.getConstant('collapseAllDaySection'));\r\n target.setAttribute('aria-label', 'Collapse section');\r\n rowHeight = ((this.allDayLevel + 1) * this.getEventHeight()) + 4;\r\n }\r\n else {\r\n target.setAttribute('title', this.parent.localeObj.getConstant('expandAllDaySection'));\r\n target.setAttribute('aria-label', 'Expand section');\r\n rowHeight = (3 * this.getEventHeight()) + 4;\r\n }\r\n this.setAllDayRowHeight(rowHeight);\r\n this.addOrRemoveClass();\r\n this.animation.animate(target);\r\n };\r\n VerticalEvent.prototype.animationUiUpdate = function () {\r\n this.parent.notify(events.contentReady, {});\r\n };\r\n VerticalEvent.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.removeEventListener();\r\n this.allDayElement = null;\r\n this.renderedAllDayEvents = null;\r\n this.renderedEvents = null;\r\n this.slotCount = null;\r\n this.interval = null;\r\n this.startHour = null;\r\n this.endHour = null;\r\n this.element = null;\r\n this.fields = null;\r\n this.animation = null;\r\n _super.prototype.destroy.call(this);\r\n };\r\n return VerticalEvent;\r\n}(EventBase));\r\nexport { VerticalEvent };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { addClass, append, createElement, extend, remove, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { setStyleAttribute, EventHandler } from '@syncfusion/ej2-base';\r\nimport { TimelineEvent } from './timeline-view';\r\nimport * as util from '../base/util';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nvar EVENT_GAP = 2;\r\n/**\r\n * Year view events render\r\n */\r\nvar YearEvent = /** @class */ (function (_super) {\r\n __extends(YearEvent, _super);\r\n function YearEvent(parent) {\r\n var _this = _super.call(this, parent, 'day') || this;\r\n _this.isResource = false;\r\n return _this;\r\n }\r\n YearEvent.prototype.renderAppointments = function () {\r\n if (this.parent.dragAndDropModule) {\r\n this.parent.dragAndDropModule.setDragArea();\r\n }\r\n this.fields = this.parent.eventFields;\r\n var elementSelector = (this.parent.currentView === 'Year') ? '.' + cls.APPOINTMENT_CLASS :\r\n '.' + cls.APPOINTMENT_WRAPPER_CLASS + ',.' + cls.MORE_INDICATOR_CLASS;\r\n var eventWrappers = [].slice.call(this.parent.element.querySelectorAll(elementSelector));\r\n for (var _i = 0, eventWrappers_1 = eventWrappers; _i < eventWrappers_1.length; _i++) {\r\n var wrapper = eventWrappers_1[_i];\r\n remove(wrapper);\r\n }\r\n this.renderedEvents = [];\r\n if (this.parent.currentView === 'Year') {\r\n this.yearViewEvents();\r\n }\r\n else {\r\n this.removeCellHeight();\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.isResource = true;\r\n this.timelineResourceEvents();\r\n }\r\n else {\r\n this.timelineYearViewEvents();\r\n }\r\n }\r\n this.parent.renderTemplates();\r\n this.parent.notify(events.contentReady, {});\r\n };\r\n YearEvent.prototype.yearViewEvents = function () {\r\n var months = this.getMonths();\r\n for (var _i = 0, months_1 = months; _i < months_1.length; _i++) {\r\n var month = months_1[_i];\r\n var queryString = \".e-month-calendar:nth-child(\" + (months.indexOf(month) + 1) + \") td.e-work-cells\";\r\n var workCells = [].slice.call(this.parent.element.querySelectorAll(queryString));\r\n var monthDate = new Date(this.parent.selectedDate.getFullYear(), month, 1);\r\n var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\r\n var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));\r\n var startDate = util.getWeekFirstDate(monthStart, this.parent.firstDayOfWeek);\r\n var endDate = util.addDays(util.getWeekLastDate(monthEnd, this.parent.firstDayOfWeek), 1);\r\n for (var index = 0; startDate.getTime() < endDate.getTime(); index++) {\r\n var start = util.resetTime(new Date(startDate.getTime()));\r\n var end = util.addDays(new Date(start.getTime()), 1);\r\n var filterEvents = this.parent.eventBase.filterEvents(start, end);\r\n if (filterEvents.length > 0) {\r\n var workCell = workCells[index];\r\n if (workCell) {\r\n workCell.appendChild(createElement('div', { className: cls.APPOINTMENT_CLASS }));\r\n }\r\n }\r\n startDate = util.addDays(new Date(startDate.getTime()), 1);\r\n }\r\n }\r\n };\r\n YearEvent.prototype.timelineYearViewEvents = function () {\r\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n this.cellWidth = workCell.offsetWidth;\r\n this.cellHeader = util.getOuterHeight(workCell.querySelector('.' + cls.DATE_HEADER_CLASS));\r\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);\r\n var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\r\n var months = this.getMonths();\r\n for (var row = 0; row < months.length; row++) {\r\n var wrapper = wrapperCollection[row];\r\n var td = row + 1;\r\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n wrapper.appendChild(eventWrapper);\r\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[row], 1);\r\n var monthEnd = new Date(monthStart.getFullYear(), monthStart.getMonth() + 1, 0);\r\n var dayIndex = monthStart.getDay();\r\n var isSpannedCollection = [];\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n this.renderedEvents = [];\r\n }\r\n while (monthStart.getTime() <= monthEnd.getTime()) {\r\n var leftValue = void 0;\r\n var rightValue = void 0;\r\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\r\n var wrapper_1 = wrapperCollection[dayIndex];\r\n td = dayIndex + 1;\r\n var eventWrapper_1 = wrapper_1.querySelector('.' + cls.APPOINTMENT_WRAPPER_CLASS);\r\n if (!eventWrapper_1) {\r\n eventWrapper_1 = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n wrapper_1.appendChild(eventWrapper_1);\r\n }\r\n if (this.parent.enableRtl) {\r\n rightValue = row * this.cellWidth;\r\n }\r\n else {\r\n leftValue = row * this.cellWidth;\r\n }\r\n }\r\n else {\r\n if (this.parent.enableRtl) {\r\n rightValue = ((dayIndex + monthStart.getDate()) - 1) * this.cellWidth;\r\n }\r\n else {\r\n leftValue = ((dayIndex + monthStart.getDate()) - 1) * this.cellWidth;\r\n }\r\n }\r\n var rowTd = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + td + \") td\");\r\n this.cellHeight = rowTd.offsetHeight;\r\n var dayStart = util.resetTime(new Date(monthStart.getTime()));\r\n var dayEnd = util.addDays(new Date(dayStart.getTime()), 1);\r\n var resource = void 0;\r\n if (this.parent.uiStateValues.isGroupAdaptive) {\r\n resource = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n }\r\n var dayEvents = this.parent.eventBase.filterEvents(dayStart, dayEnd, undefined, resource);\r\n dayEvents = this.parent.eventBase.sortByDateTime(dayEvents);\r\n var _loop_1 = function (index, count) {\r\n var eventData = extend({}, dayEvents[index], null, true);\r\n this_1.updateSpannedEvents(eventData, dayStart, dayEnd);\r\n var overlapIndex = this_1.getIndex(dayStart);\r\n eventData.Index = overlapIndex;\r\n var availedHeight = this_1.cellHeader + (this_1.eventHeight * (overlapIndex + 1)) + EVENT_GAP +\r\n this_1.moreIndicatorHeight;\r\n var appArea = this_1.cellHeight - this_1.cellHeader - this_1.moreIndicatorHeight;\r\n var renderedAppCount = Math.floor(appArea / (this_1.eventHeight + EVENT_GAP));\r\n var moreIndicatorCount = (count - renderedAppCount) <= 0 ? 1 : (count - renderedAppCount);\r\n if (this_1.parent.activeViewOptions.orientation === 'Horizontal') {\r\n var isRendered = this_1.renderedEvents.filter(function (eventObj) {\r\n return eventObj.Guid === eventData.Guid;\r\n });\r\n var isSpanned = isSpannedCollection.filter(function (eventObj) {\r\n return eventObj.Guid === eventData.Guid;\r\n });\r\n if (isRendered.length > 0 && isRendered[0].MoreIndicator || isSpanned.length > 0 && isSpanned[0].MoreIndicator) {\r\n var moreIndex = this_1.parent.activeViewOptions.orientation === 'Horizontal' ? row : dayIndex;\r\n this_1.renderMoreIndicator(eventWrapper, moreIndicatorCount, dayStart, moreIndex, leftValue, rightValue);\r\n return \"continue\";\r\n }\r\n else if (isRendered.length > 0 || isSpanned.length > 0) {\r\n return \"continue\";\r\n }\r\n }\r\n var isRowAutoHeight = this_1.parent.rowAutoHeight && this_1.parent.activeViewOptions.orientation === 'Horizontal';\r\n if (isRowAutoHeight || this_1.cellHeight > availedHeight) {\r\n this_1.renderEvent(eventWrapper, eventData, row, leftValue, rightValue, monthStart, dayIndex);\r\n this_1.updateCellHeight(rowTd, availedHeight);\r\n isSpannedCollection.push(eventData);\r\n }\r\n else {\r\n var moreIndex = this_1.parent.activeViewOptions.orientation === 'Horizontal' ? row : dayIndex;\r\n this_1.renderMoreIndicator(eventWrapper, moreIndicatorCount, dayStart, moreIndex, leftValue, rightValue);\r\n if (this_1.parent.activeViewOptions.orientation === 'Horizontal') {\r\n eventData.MoreIndicator = true;\r\n this_1.renderedEvents.push(eventData);\r\n isSpannedCollection.push(eventData);\r\n }\r\n }\r\n };\r\n var this_1 = this;\r\n for (var index = 0, count = dayEvents.length; index < count; index++) {\r\n _loop_1(index, count);\r\n }\r\n monthStart = util.addDays(new Date(monthStart.getTime()), 1);\r\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\r\n dayIndex++;\r\n this.renderedEvents = [];\r\n }\r\n }\r\n }\r\n };\r\n YearEvent.prototype.updateSpannedEvents = function (eventObj, dayStart, dayEnd) {\r\n var isLeftRightResize = (this.isResource && this.parent.activeViewOptions.orientation === 'Vertical') ||\r\n (!this.isResource && this.parent.activeViewOptions.orientation === 'Horizontal');\r\n var data = { isLeft: true, isRight: true, isBottom: true, isTop: true };\r\n if (dayStart.getTime() <= eventObj[this.fields.startTime].getTime()) {\r\n if (isLeftRightResize) {\r\n data.isLeft = false;\r\n }\r\n else {\r\n data.isTop = false;\r\n }\r\n }\r\n if ((dayEnd.getTime() >= eventObj[this.fields.endTime].getTime()) || (isLeftRightResize && !this.isResource &&\r\n util.addDays(dayEnd, -1).getMonth() === eventObj[this.fields.endTime].getMonth())) {\r\n if (isLeftRightResize) {\r\n data.isRight = false;\r\n }\r\n else {\r\n data.isBottom = false;\r\n }\r\n }\r\n eventObj.data = data;\r\n };\r\n YearEvent.prototype.timelineResourceEvents = function () {\r\n var workCell = this.parent.element.querySelector('.' + cls.WORK_CELLS_CLASS);\r\n this.cellWidth = workCell.offsetWidth;\r\n this.cellHeader = 0;\r\n var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);\r\n this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);\r\n var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));\r\n var resources = this.parent.uiStateValues.isGroupAdaptive ?\r\n [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] : this.parent.resourceBase.lastResourceLevel;\r\n var months = this.getMonths();\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n for (var month = 0; month < months.length; month++) {\r\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[month], 1);\r\n for (var i = 0, len = resources.length; i < len; i++) {\r\n this.renderedEvents = [];\r\n this.renderResourceEvent(wrapperCollection[month], resources[i], month, i, monthStart);\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0, len = resources.length; i < len; i++) {\r\n this.renderedEvents = [];\r\n for (var month = 0; month < months.length; month++) {\r\n var monthStart = new Date(this.parent.selectedDate.getFullYear(), months[month], 1);\r\n this.renderResourceEvent(wrapperCollection[i], resources[i], month, i, monthStart);\r\n }\r\n }\r\n }\r\n };\r\n YearEvent.prototype.renderResourceEvent = function (wrapper, resource, month, index, monthStart) {\r\n var eventWrapper = createElement('div', { className: cls.APPOINTMENT_WRAPPER_CLASS });\r\n wrapper.appendChild(eventWrapper);\r\n var monthEnd = util.addDays(util.lastDateOfMonth(new Date(monthStart.getTime())), 1);\r\n var eventDatas = this.parent.eventBase.filterEvents(monthStart, monthEnd, undefined, resource);\r\n var rowIndex = this.parent.activeViewOptions.orientation === 'Vertical' ? index : month;\r\n var td = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + (rowIndex + 1) + \") td\");\r\n this.cellHeight = td.offsetHeight;\r\n for (var a = 0; a < eventDatas.length; a++) {\r\n var data = eventDatas[a];\r\n var overlapIndex = void 0;\r\n var eventData = extend({}, data, null, true);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var eventObj = this.isSpannedEvent(eventData, monthStart);\r\n overlapIndex = this.getIndex(eventObj[this.fields.startTime]);\r\n eventData.Index = overlapIndex;\r\n }\r\n else {\r\n overlapIndex = this.getIndex(eventData[this.fields.startTime]);\r\n eventData.Index = overlapIndex;\r\n }\r\n var availedHeight = this.cellHeader + (this.eventHeight * (a + 1)) + EVENT_GAP + this.moreIndicatorHeight;\r\n var leftValue = (this.parent.activeViewOptions.orientation === 'Vertical') ?\r\n month * this.cellWidth : index * this.cellWidth;\r\n if (this.parent.rowAutoHeight || this.cellHeight > availedHeight) {\r\n this.renderEvent(eventWrapper, eventData, month, leftValue, leftValue, monthStart, index);\r\n this.updateCellHeight(td, availedHeight);\r\n }\r\n else {\r\n var moreIndex = this.parent.activeViewOptions.orientation === 'Horizontal' ? month : index;\r\n this.renderMoreIndicator(eventWrapper, eventDatas.length - a, monthStart, moreIndex, leftValue, leftValue, index);\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n for (var i = index; i < eventDatas.length; i++) {\r\n this.renderedEvents.push(extend({}, eventDatas[i], { Index: overlapIndex + i }, true));\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line max-len\r\n YearEvent.prototype.renderEvent = function (wrapper, eventData, row, left, right, monthDate, rowIndex) {\r\n var _this = this;\r\n var eventObj = this.isSpannedEvent(eventData, monthDate);\r\n var wrap = this.createEventElement(eventObj);\r\n var width;\r\n var index;\r\n if (eventObj.isSpanned.count === 1) {\r\n var endTime = util.addDays(eventObj[this.fields.endTime], -1);\r\n eventObj[this.fields.endTime] = (endTime > eventObj[this.fields.startTime]) ? endTime : eventObj[this.fields.endTime];\r\n }\r\n if (eventObj[this.fields.startTime] > eventObj[this.fields.endTime]) {\r\n return;\r\n }\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n index = row + 1;\r\n if (eventObj[this.fields.startTime].getTime() === eventObj[this.fields.endTime].getTime()) {\r\n eventObj.isSpanned.count = 1;\r\n }\r\n width = eventObj.isSpanned.count * this.cellWidth;\r\n }\r\n else {\r\n index = rowIndex + 1;\r\n width = this.cellWidth;\r\n }\r\n var rowTd = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + index + \") td\");\r\n var top = rowTd.offsetTop + this.cellHeader + (this.eventHeight * eventObj.Index) + EVENT_GAP;\r\n setStyleAttribute(wrap, {\r\n 'width': width + 'px', 'height': this.eventHeight + 'px', 'left': left + 'px', 'right': right + 'px', 'top': top + 'px'\r\n });\r\n var args = { data: eventObj, element: wrap, cancel: false, type: 'event' };\r\n this.parent.trigger(events.eventRendered, args, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n wrapper.appendChild(wrap);\r\n _this.wireAppointmentEvents(wrap, eventObj);\r\n if (_this.parent.activeViewOptions.group.resources.length > 0) {\r\n _this.renderedEvents.push(extend({}, eventObj, null, true));\r\n }\r\n else if (_this.parent.activeViewOptions.orientation === 'Vertical') {\r\n _this.renderedEvents.push(extend({}, eventObj, null, true));\r\n }\r\n else if ((eventObj.isSpanned.isRight || eventObj.isSpanned.isLeft) && _this.parent.activeViewOptions.orientation === 'Horizontal'\r\n || !eventObj.isSpanned.isRight) {\r\n _this.renderedEvents.push(extend({}, eventObj, null, true));\r\n }\r\n }\r\n });\r\n };\r\n // eslint-disable-next-line max-len\r\n YearEvent.prototype.renderMoreIndicator = function (wrapper, count, startDate, row, left, right, index) {\r\n if (this.parent.activeViewOptions.group.resources.length === 0 && wrapper.querySelector('[data-start-date=\"' + startDate.getTime() + '\"]')) {\r\n return;\r\n }\r\n var endDate;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n endDate = util.addDays(util.lastDateOfMonth(new Date(startDate.getTime())), 1);\r\n }\r\n else {\r\n endDate = util.addDays(new Date(startDate.getTime()), 1);\r\n }\r\n var moreIndicator = this.getMoreIndicatorElement(count, startDate, endDate);\r\n var rowTr = this.parent.element.querySelector(\".e-content-wrap tr:nth-child(\" + (row + 1) + \")\");\r\n var top = rowTr.offsetTop + (this.cellHeight - this.moreIndicatorHeight);\r\n left = (Math.floor(left / this.cellWidth) * this.cellWidth);\r\n right = (Math.floor(right / this.cellWidth) * this.cellWidth);\r\n setStyleAttribute(moreIndicator, { 'width': this.cellWidth + 'px', 'left': left + 'px', 'right': right + 'px', 'top': top + 'px' });\r\n if (!isNullOrUndefined(index)) {\r\n moreIndicator.setAttribute('data-group-index', index.toString());\r\n }\r\n wrapper.appendChild(moreIndicator);\r\n EventHandler.add(moreIndicator, 'click', this.moreIndicatorClick, this);\r\n };\r\n YearEvent.prototype.createEventElement = function (record) {\r\n var eventSubject = (record[this.fields.subject] || this.parent.eventSettings.fields.subject.default\r\n || this.parent.localeObj.getConstant('addTitle'));\r\n var eventWrapper = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS,\r\n attrs: {\r\n 'data-id': 'Appointment_' + record[this.fields.id],\r\n 'data-guid': record.Guid,\r\n 'role': 'button', 'tabindex': '0',\r\n 'aria-readonly': this.parent.eventBase.getReadonlyAttribute(record), 'aria-selected': 'false', 'aria-grabbed': 'true',\r\n 'aria-label': this.parent.getAnnouncementString(record)\r\n }\r\n });\r\n if (this.cssClass) {\r\n addClass([eventWrapper], this.cssClass);\r\n }\r\n if (record[this.fields.isReadonly]) {\r\n addClass([eventWrapper], cls.READ_ONLY);\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resIndex = this.getGroupIndexFromEvent(record);\r\n eventWrapper.setAttribute('data-group-index', resIndex.toString());\r\n }\r\n var templateElement = [];\r\n var eventObj = extend({}, record, null, true);\r\n if (this.parent.activeViewOptions.eventTemplate) {\r\n var templateId = this.parent.element.id + '_' + this.parent.activeViewOptions.eventTemplateName + 'eventTemplate';\r\n templateElement = this.parent.getAppointmentTemplate()(eventObj, this.parent, 'eventTemplate', templateId, false);\r\n }\r\n else {\r\n var locationEle = (record[this.fields.location] || this.parent.eventSettings.fields.location.default || '');\r\n var subjectEle = createElement('div', {\r\n className: cls.SUBJECT_CLASS,\r\n innerHTML: (eventSubject + (locationEle ? '; ' + locationEle : ''))\r\n });\r\n var startTimeEle = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(eventObj[this.fields.startTime])\r\n });\r\n var endTimeEle = createElement('div', {\r\n className: cls.APPOINTMENT_TIME + (this.parent.isAdaptive ? ' ' + cls.DISABLE_CLASS : ''),\r\n innerHTML: this.parent.getTimeString(eventObj[this.fields.endTime])\r\n });\r\n addClass([subjectEle], 'e-text-center');\r\n if (record[this.fields.isAllDay]) {\r\n templateElement = [subjectEle];\r\n }\r\n else if (!eventObj.isLeft && !eventObj.isRight) {\r\n templateElement = [startTimeEle, subjectEle, endTimeEle];\r\n }\r\n else {\r\n if (!eventObj.isLeft) {\r\n templateElement.push(startTimeEle);\r\n }\r\n templateElement.push(subjectEle);\r\n if (!eventObj.isRight) {\r\n templateElement.push(endTimeEle);\r\n }\r\n }\r\n }\r\n var appointmentDetails = createElement('div', { className: cls.APPOINTMENT_DETAILS });\r\n append(templateElement, appointmentDetails);\r\n eventWrapper.appendChild(appointmentDetails);\r\n this.renderResizeHandler(eventWrapper, record.data, record[this.fields.isReadonly]);\r\n this.applyResourceColor(eventWrapper, eventObj, 'backgroundColor', this.groupOrder);\r\n return eventWrapper;\r\n };\r\n YearEvent.prototype.isSpannedEvent = function (eventObj, monthDate) {\r\n var monthStart = new Date(monthDate.getFullYear(), monthDate.getMonth(), 1);\r\n var monthEnd = util.addDays(new Date(monthDate.getFullYear(), monthDate.getMonth() + 1, 0), 1);\r\n var eventData = extend({}, eventObj, null, true);\r\n var eventStart = eventData[this.fields.startTime];\r\n var eventEnd = eventData[this.fields.endTime];\r\n var isSpanned = { isLeft: false, isRight: false, count: 1 };\r\n if (this.isResource) {\r\n this.updateSpannedEvents(eventObj, monthStart, monthEnd);\r\n }\r\n if (eventStart.getTime() < monthStart.getTime()) {\r\n eventData[this.fields.startTime] = monthStart;\r\n isSpanned.isLeft = true;\r\n }\r\n if (eventEnd.getTime() > monthEnd.getTime()) {\r\n eventData[this.fields.endTime] = monthEnd;\r\n isSpanned.isRight = true;\r\n }\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n var end = util.resetTime(eventData[this.fields.endTime]).getTime();\r\n var start = util.resetTime(eventData[this.fields.startTime]).getTime();\r\n if (eventObj[this.fields.isAllDay] && end === eventObj[this.fields.endTime].getTime() || isSpanned.isRight) {\r\n end = util.addDays(new Date(end), -1).getTime();\r\n }\r\n isSpanned.count = Math.ceil((end - start) / util.MS_PER_DAY) + 1;\r\n }\r\n eventData.isSpanned = isSpanned;\r\n if (util.resetTime(eventStart).getTime() < util.resetTime(this.parent.minDate).getTime()) {\r\n eventData[this.fields.startTime] = this.parent.minDate;\r\n }\r\n if (util.resetTime(eventEnd).getTime() > util.resetTime(this.parent.maxDate).getTime()) {\r\n eventData[this.fields.endTime] = this.parent.maxDate;\r\n }\r\n return eventData;\r\n };\r\n YearEvent.prototype.getOverlapEvents = function (date, appointments) {\r\n var appointmentsList = [];\r\n var dateStart;\r\n var dateEnd;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(date.getTime()));\r\n var monthEnd = util.addDays(this.parent.calendarUtil.getMonthEndDate(new Date(date.getTime())), -1);\r\n dateStart = util.resetTime(new Date(monthStart.getTime())).getTime();\r\n dateEnd = util.resetTime(new Date(monthEnd.getTime())).getTime();\r\n }\r\n else {\r\n if (this.parent.rowAutoHeight) {\r\n dateStart = util.resetTime(new Date(date.getTime())).getTime();\r\n dateEnd = util.addDays(util.resetTime(new Date(date.getTime())), 1).getTime();\r\n }\r\n else {\r\n dateStart = dateEnd = util.resetTime(new Date(date.getTime())).getTime();\r\n }\r\n }\r\n for (var _i = 0, appointments_1 = appointments; _i < appointments_1.length; _i++) {\r\n var app = appointments_1[_i];\r\n var appStart = new Date(app[this.fields.startTime].getTime());\r\n var appEnd = new Date(app[this.fields.endTime].getTime());\r\n if (this.parent.activeViewOptions.orientation === 'Vertical' &&\r\n this.parent.activeViewOptions.group.resources.length > 0) {\r\n if ((util.resetTime(appStart).getTime() >= dateStart) && (util.resetTime(appEnd).getTime() <= dateEnd)) {\r\n appointmentsList.push(app);\r\n }\r\n }\r\n else {\r\n if (((util.resetTime(appStart).getTime() <= dateStart) && (util.resetTime(appEnd).getTime() > dateStart)) ||\r\n (util.resetTime(appStart).getTime() >= dateStart) && (util.resetTime(appEnd).getTime() <= dateEnd)) {\r\n appointmentsList.push(app);\r\n }\r\n }\r\n }\r\n return appointmentsList;\r\n };\r\n YearEvent.prototype.getMonths = function () {\r\n var _this = this;\r\n // eslint-disable-next-line prefer-spread\r\n return Array.apply(null, { length: this.parent.monthsCount }).map(function (value, index) {\r\n return _this.parent.firstMonthOfYear + index;\r\n });\r\n };\r\n YearEvent.prototype.removeCellHeight = function () {\r\n var elementSelector = \".\" + cls.MONTH_HEADER_WRAPPER + \" tbody tr,.\" + cls.RESOURCE_COLUMN_TABLE_CLASS + \" tbody tr,.\" + cls.CONTENT_TABLE_CLASS + \" tbody tr\";\r\n var rows = [].slice.call(this.element.querySelectorAll(elementSelector));\r\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\r\n var row = rows_1[_i];\r\n row.firstElementChild.style.height = '';\r\n }\r\n };\r\n YearEvent.prototype.destroy = function () {\r\n _super.prototype.destroy.call(this);\r\n this.parent = null;\r\n };\r\n return YearEvent;\r\n}(TimelineEvent));\r\nexport { YearEvent };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { extend } from '@syncfusion/ej2-base';\r\nimport { getDateFromRecurrenceDateString, getRecurrenceStringFromDate } from '../../recurrence-editor/date-generator';\r\n/**\r\n * ICalendar Export Module\r\n */\r\nvar ICalendarExport = /** @class */ (function () {\r\n function ICalendarExport(parent) {\r\n this.parent = parent;\r\n }\r\n ICalendarExport.prototype.initializeCalendarExport = function (fileName, customData) {\r\n var _this = this;\r\n var eventsData = (customData) ? customData :\r\n extend([], this.parent.eventsData, null, true);\r\n eventsData = this.parent.eventBase.sortByTime(eventsData);\r\n var SEPARATOR = (navigator.appVersion.indexOf('Win') !== -1) ? '\\r\\n' : '\\n';\r\n var iCalendarEvents = [];\r\n var filterCollection = [];\r\n var timeZone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();\r\n var fields = this.parent.eventFields;\r\n eventsData.forEach(function (eventObj) {\r\n var uId = _this.parent.eventBase.generateGuid();\r\n var editedExDate = [];\r\n if (eventObj[fields.recurrenceID]) {\r\n var filter = _this.filterEvents(filterCollection, fields.id, eventObj[fields.recurrenceID]);\r\n uId = filter[0].UID;\r\n }\r\n if (!eventObj[fields.recurrenceID] && eventObj[fields.recurrenceRule] && eventObj[fields.recurrenceException]) {\r\n var exDate = (eventObj[fields.recurrenceException]).split(',');\r\n var editedObj = _this.filterEvents(eventsData, fields.recurrenceID, eventObj[fields.id]);\r\n editedObj.forEach(function (edited) {\r\n editedExDate.push(getRecurrenceStringFromDate(edited[fields.startTime]));\r\n });\r\n var exceptionDateList = exDate.filter(function (value) { return editedExDate.indexOf(value) === -1; });\r\n eventObj[fields.recurrenceException] = (exceptionDateList.length > 0) ? (exceptionDateList.join(',') + ',') : '';\r\n }\r\n var startZone = (eventObj[fields.startTimezone] || timeZone);\r\n var endZone = (eventObj[fields.endTimezone] || timeZone);\r\n var readonly = (eventObj[fields.isReadonly]) ? (eventObj[fields.isReadonly]) : false;\r\n var calendarEvent = [\r\n 'BEGIN:VEVENT',\r\n 'LOCATION:' + (eventObj[fields.location] || ''),\r\n 'SUMMARY:' + (eventObj[fields.subject] || ''),\r\n 'UID:' + uId,\r\n 'DESCRIPTION:' + (eventObj[fields.description] || ''),\r\n 'ISREADONLY:' + readonly,\r\n 'END:VEVENT'\r\n ];\r\n if (eventObj[fields.isAllDay]) {\r\n calendarEvent.splice(4, 0, 'DTEND;VALUE=DATE:' + _this.convertDateToString(eventObj[fields.endTime], true));\r\n calendarEvent.splice(4, 0, 'DTSTART;VALUE=DATE:' + _this.convertDateToString(eventObj[fields.startTime], true));\r\n }\r\n else if (!eventObj[fields.isAllDay] && !eventObj[fields.recurrenceRule]) {\r\n calendarEvent.splice(4, 0, 'DTEND:' + _this.convertDateToString(eventObj[fields.endTime]));\r\n calendarEvent.splice(4, 0, 'DTSTART:' + _this.convertDateToString(eventObj[fields.startTime]));\r\n }\r\n else {\r\n calendarEvent.splice(4, 0, 'DTEND;TZID=\"' + endZone + '\":' + _this.convertDateToString(eventObj[fields.endTime]));\r\n calendarEvent.splice(4, 0, 'DTSTART;TZID=\"' + startZone + '\":'\r\n + _this.convertDateToString(eventObj[fields.startTime]));\r\n }\r\n if (eventObj[fields.recurrenceRule]) {\r\n calendarEvent.splice(4, 0, 'RRULE:' + eventObj[fields.recurrenceRule]);\r\n }\r\n if (eventObj[fields.recurrenceException]) {\r\n var exDate = eventObj[fields.recurrenceException].split(',');\r\n for (var i = 0; i < exDate.length - 1; i++) {\r\n calendarEvent.splice(5, 0, 'EXDATE:' +\r\n _this.convertDateToString(getDateFromRecurrenceDateString(exDate[i]), eventObj[fields.isAllDay]));\r\n }\r\n }\r\n if (eventObj[fields.recurrenceID]) {\r\n calendarEvent.splice(4, 0, 'RECURRENCE-ID;TZID=\"' + startZone + '\":'\r\n + _this.convertDateToString(eventObj[fields.startTime], eventObj[fields.isAllDay]));\r\n }\r\n var customFields = _this.customFieldFilter(eventObj, fields);\r\n if (customFields.length > 0) {\r\n customFields.forEach(function (customField) {\r\n return calendarEvent.splice(4, 0, customField + ':' + (eventObj[customField] || ''));\r\n });\r\n }\r\n var app = extend({}, eventObj);\r\n app.UID = uId;\r\n filterCollection.push(app);\r\n iCalendarEvents.push(calendarEvent.join(SEPARATOR));\r\n });\r\n var iCalendar = [\r\n 'BEGIN:VCALENDAR',\r\n 'PRODID:-//Syncfusion Inc//Scheduler//EN',\r\n 'VERSION:2.0',\r\n 'CALSCALE:GREGORIAN',\r\n 'METHOD:PUBLISH',\r\n 'X-WR-CALNAME:' + (fileName || 'Calendar'),\r\n 'X-WR-TIMEZONE:' + timeZone\r\n ].join(SEPARATOR);\r\n var icsString = iCalendar + SEPARATOR + iCalendarEvents.join(SEPARATOR) + SEPARATOR + 'END:VCALENDAR';\r\n this.download(icsString, fileName);\r\n };\r\n ICalendarExport.prototype.customFieldFilter = function (eventObj, fields) {\r\n var defaultFields = Object.keys(fields).map(function (key) { return fields[key]; });\r\n var eventFields = Object.keys(eventObj);\r\n return eventFields.filter(function (value) { return (defaultFields.indexOf(value) === -1) && (value !== 'Guid'); });\r\n };\r\n ICalendarExport.prototype.convertDateToString = function (eventDate, allDay) {\r\n var year = ('0000' + (eventDate.getFullYear().toString())).slice(-4);\r\n var month = ('00' + ((eventDate.getMonth() + 1).toString())).slice(-2);\r\n var date = ('00' + ((eventDate.getDate()).toString())).slice(-2);\r\n var hours = ('00' + (eventDate.getHours().toString())).slice(-2);\r\n var minutes = ('00' + (eventDate.getMinutes().toString())).slice(-2);\r\n var seconds = ('00' + (eventDate.getSeconds().toString())).slice(-2);\r\n var timeString = (allDay) ? year + month + date : year + month + date + 'T' + hours + minutes + seconds;\r\n return timeString;\r\n };\r\n ICalendarExport.prototype.download = function (icsString, fileName) {\r\n var buffer = new Blob([icsString], { type: 'data:text/calendar;charset=utf8' });\r\n fileName = (fileName || 'Calendar') + '.ics';\r\n if (navigator.msSaveBlob) {\r\n navigator.msSaveBlob(buffer, fileName);\r\n }\r\n else {\r\n var downloadLink_1 = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\r\n downloadLink_1.download = fileName;\r\n downloadLink_1.href = URL.createObjectURL(buffer);\r\n var event_1 = document.createEvent('MouseEvent');\r\n event_1.initEvent('click', true, true);\r\n downloadLink_1.dispatchEvent(event_1);\r\n setTimeout(function () {\r\n URL.revokeObjectURL(downloadLink_1.href);\r\n downloadLink_1.href = undefined;\r\n });\r\n }\r\n };\r\n ICalendarExport.prototype.filterEvents = function (data, field, value) {\r\n return data.filter(function (e) { return e[field] === value; });\r\n };\r\n ICalendarExport.prototype.getModuleName = function () {\r\n return 'iCalendarExport';\r\n };\r\n ICalendarExport.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.parent = null;\r\n };\r\n return ICalendarExport;\r\n}());\r\nexport { ICalendarExport };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { isNullOrUndefined, extend } from '@syncfusion/ej2-base';\r\nimport { getRecurrenceStringFromDate } from '../../recurrence-editor/date-generator';\r\n/**\r\n * ICalendar Import Module\r\n */\r\nvar ICalendarImport = /** @class */ (function () {\r\n function ICalendarImport(parent) {\r\n this.allDay = false;\r\n this.parent = parent;\r\n }\r\n ICalendarImport.prototype.initializeCalendarImport = function (fileContent) {\r\n var _this = this;\r\n if (fileContent && fileContent instanceof Blob) {\r\n var fileReader_1 = new FileReader();\r\n fileReader_1.onload = function () {\r\n var iCalString = fileReader_1.result;\r\n _this.iCalendarParser(iCalString);\r\n };\r\n fileReader_1.readAsText(fileContent, 'UTF-8');\r\n }\r\n else if (fileContent && typeof fileContent === 'string') {\r\n this.iCalendarParser(fileContent);\r\n }\r\n };\r\n ICalendarImport.prototype.iCalendarParser = function (iCalString) {\r\n var _this = this;\r\n var fields = this.parent.eventFields;\r\n var events = [];\r\n var uId = 'UID';\r\n var calArray = iCalString.replace(new RegExp('\\\\r', 'g'), '').split('\\n');\r\n var isEvent = false;\r\n var curEvent;\r\n // eslint-disable-next-line prefer-const\r\n var id = this.parent.eventBase.getEventMaxID();\r\n var count = 0;\r\n calArray.forEach(function (element) {\r\n var index;\r\n var type;\r\n var value;\r\n if (!isEvent && element === 'BEGIN:VEVENT') {\r\n isEvent = true;\r\n curEvent = {};\r\n }\r\n if (isEvent && element === 'END:VEVENT') {\r\n isEvent = false;\r\n events.push(curEvent);\r\n curEvent = null;\r\n }\r\n if (isEvent) {\r\n index = element.indexOf(':');\r\n type = element.substr(0, index).replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n value = element.substr(index + 1, element.length - (index + 1)).replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n if (element.indexOf('SUMMARY') !== -1) {\r\n type = 'SUMMARY';\r\n }\r\n if (element.indexOf('DTSTART') !== -1) {\r\n curEvent[fields.startTime] = _this.dateParsing(element);\r\n curEvent[fields.isAllDay] = _this.allDay;\r\n _this.allDay = false;\r\n }\r\n else if (element.indexOf('DTEND') !== -1) {\r\n curEvent[fields.endTime] = _this.dateParsing(element);\r\n }\r\n else if (element.indexOf('EXDATE') !== -1) {\r\n value = getRecurrenceStringFromDate(_this.dateParsing(element));\r\n curEvent[fields.recurrenceException] = (isNullOrUndefined(curEvent[fields.recurrenceException])) ?\r\n value : curEvent[fields.recurrenceException] + ',' + value;\r\n }\r\n else if (element.indexOf('RECURRENCE-ID') !== -1) {\r\n value = getRecurrenceStringFromDate(_this.dateParsing(element));\r\n curEvent[fields.recurrenceException] = value;\r\n curEvent[fields.recurrenceID] = value;\r\n }\r\n else {\r\n switch (type) {\r\n case 'BEGIN':\r\n break;\r\n case 'UID':\r\n curEvent[uId] = value;\r\n curEvent[fields.id] = typeof (id) === 'string' ? id + count.toString() : id + count;\r\n count++;\r\n break;\r\n case 'SUMMARY':\r\n curEvent[fields.subject] = value;\r\n break;\r\n case 'LOCATION':\r\n curEvent[fields.location] = value;\r\n break;\r\n case 'DESCRIPTION':\r\n curEvent[fields.description] = value;\r\n break;\r\n case 'ISREADONLY':\r\n curEvent[fields.isReadonly] = (value.indexOf('true') > -1);\r\n break;\r\n case 'RRULE':\r\n curEvent[fields.recurrenceRule] = value;\r\n break;\r\n default:\r\n if (_this.parent.resourceCollection.length > 0) {\r\n var resData = _this.parent.resourceCollection.filter(function (data) { return data.field === type; });\r\n curEvent[type] = (resData.length > 0 && (typeof (resData[0].dataSource[0][resData[0].idField]) == 'number')) ? parseInt(value, 10) : value;\r\n }\r\n else {\r\n curEvent[type] = value;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n var app = extend([], events, null, true);\r\n this.parent.addEvent(this.processOccurrence(app));\r\n };\r\n ICalendarImport.prototype.processOccurrence = function (app) {\r\n var appoint = [];\r\n var uId = 'UID';\r\n var fields = this.parent.eventFields;\r\n app.forEach(function (eventObj) {\r\n var parentObj;\r\n var id;\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!eventObj.hasOwnProperty(fields.recurrenceID)) {\r\n parentObj = eventObj;\r\n id = eventObj[fields.id];\r\n }\r\n var data = app.filter(function (data) { return data.UID === eventObj[uId]; });\r\n if (data.length > 1 && isNullOrUndefined(eventObj[fields.recurrenceID])) {\r\n for (var i = 0; i < data.length; i++) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (data[i].hasOwnProperty(fields.recurrenceID)) {\r\n var exdate = data[i][fields.recurrenceID];\r\n data[i][fields.recurrenceID] = id;\r\n data[i][fields.recurrenceException] = null;\r\n parentObj[fields.recurrenceException] = (isNullOrUndefined(parentObj[fields.recurrenceException])) ?\r\n exdate : parentObj[fields.recurrenceException] + ',' + exdate;\r\n appoint.push(data[i]);\r\n }\r\n }\r\n appoint.push(parentObj);\r\n // eslint-disable-next-line no-prototype-builtins\r\n }\r\n else if (!eventObj.hasOwnProperty(fields.recurrenceID)) {\r\n appoint.push(eventObj);\r\n }\r\n });\r\n return appoint;\r\n };\r\n ICalendarImport.prototype.getDateString = function (value) {\r\n value = value || '';\r\n // eslint-disable-next-line no-useless-escape\r\n return (value.replace(/\\\\\\,/g, ',').replace(/\\\\\\;/g, ';').replace(/\\\\[nN]/g, '\\n').replace(/\\\\\\\\/g, '\\\\'));\r\n };\r\n ICalendarImport.prototype.dateParsing = function (element) {\r\n var expression = /([^':;]+)((?:;(?:[^':;]+)(?:=(?:(?:'[^']*')|(?:[^':;]+))))*):(.*)/;\r\n var split = (element.match(expression)).slice(1);\r\n var value = split[split.length - 1];\r\n var newDate = new Date(this.getDateString(value));\r\n if (element && (element.indexOf('VALUE=DATE') > -1 || element.indexOf('RECURRENCE-ID;TZID') > -1)) {\r\n var data_1 = /^(\\d{4})(\\d{2})(\\d{2})$/.exec(value);\r\n if (data_1 !== null) {\r\n newDate = new Date(parseInt(data_1[1], 10), parseInt(data_1[2], 10) - 1, parseInt(data_1[3], 10));\r\n }\r\n if (element.indexOf('DTSTART') > -1) {\r\n this.allDay = true;\r\n }\r\n }\r\n var data = /^(\\d{4})(\\d{2})(\\d{2})T(\\d{2})(\\d{2})(\\d{2})(Z)?$/.exec(value);\r\n if (data !== null) {\r\n if (data[7] === 'Z') {\r\n newDate = new Date(Date.UTC(parseInt(data[1], 10), parseInt(data[2], 10) - 1, parseInt(data[3], 10), parseInt(data[4], 10), parseInt(data[5], 10), parseInt(data[6], 10)));\r\n }\r\n else {\r\n newDate = new Date(parseInt(data[1], 10), parseInt(data[2], 10) - 1, parseInt(data[3], 10), parseInt(data[4], 10), parseInt(data[5], 10), parseInt(data[6], 10));\r\n }\r\n }\r\n return newDate;\r\n };\r\n ICalendarImport.prototype.getModuleName = function () {\r\n return 'iCalendarImport';\r\n };\r\n ICalendarImport.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n };\r\n return ICalendarImport;\r\n}());\r\nexport { ICalendarImport };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Workbook } from '@syncfusion/ej2-excel-export';\r\nimport { extend } from '@syncfusion/ej2-base';\r\n/**\r\n * Excel Export Module\r\n */\r\nvar ExcelExport = /** @class */ (function () {\r\n function ExcelExport(parent) {\r\n this.parent = parent;\r\n }\r\n ExcelExport.prototype.initializeExcelExport = function (excelExportOptions) {\r\n var _this = this;\r\n var exportFields = excelExportOptions.fields || Object.keys(this.parent.eventFields).map(function (field) {\r\n return _this.parent.eventFields[field];\r\n });\r\n var exportName = excelExportOptions.fileName || 'Schedule';\r\n var exportType = excelExportOptions.exportType || 'xlsx';\r\n var isIncludeOccurrences = excelExportOptions.includeOccurrences || false;\r\n var eventCollection;\r\n if (excelExportOptions.customData) {\r\n eventCollection = !isIncludeOccurrences ? excelExportOptions.customData :\r\n this.parent.eventBase.getProcessedEvents(excelExportOptions.customData);\r\n }\r\n else {\r\n eventCollection = !isIncludeOccurrences ? this.parent.eventsData : this.parent.eventsProcessed;\r\n }\r\n this.processWorkbook(exportFields, exportName, exportType, eventCollection);\r\n };\r\n ExcelExport.prototype.processWorkbook = function (fields, name, type, eventCollection) {\r\n var _this = this;\r\n var columns = [];\r\n var rows = [];\r\n var columnHeader = [];\r\n fields.forEach(function (field, i) { return columns.push({ index: i + 1, width: (field === 'Id' ? 20 : 150) }); });\r\n var style = { fontSize: 12, borders: { color: '#E0E0E0' }, bold: true };\r\n fields.forEach(function (field, i) { return columnHeader.push({ index: i + 1, value: field, style: style }); });\r\n rows.push({ index: 1, cells: columnHeader });\r\n var i = 2;\r\n var _loop_1 = function (event_1) {\r\n var columnData = [];\r\n fields.forEach(function (field, n) {\r\n var columnRule = { index: n + 1, value: event_1[field] || '' };\r\n if (field === _this.parent.eventFields.startTime || field === _this.parent.eventFields.endTime) {\r\n var styleRule = { fontSize: 12, numberFormat: 'm/d/yyyy h:mm AM/PM' };\r\n columnRule = extend({}, columnRule, { style: styleRule }, true);\r\n }\r\n columnData.push(columnRule);\r\n });\r\n rows.push({ index: i, cells: columnData });\r\n i++;\r\n };\r\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\r\n var event_1 = eventCollection_1[_i];\r\n _loop_1(event_1);\r\n }\r\n var workSheet = [{ columns: columns, rows: rows }];\r\n var book = new Workbook({ worksheets: workSheet }, type, this.parent.locale);\r\n book.save(name + '.' + type);\r\n };\r\n ExcelExport.prototype.getModuleName = function () {\r\n return 'excelExport';\r\n };\r\n ExcelExport.prototype.destroy = function () {\r\n this.parent = null;\r\n };\r\n return ExcelExport;\r\n}());\r\nexport { ExcelExport };\r\n","/**\n * Exporting modules\n */\nexport * from './calendar-export';\nexport * from './calendar-import';\nexport * from './excel-export';\nexport * from './print';\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { print as basePrint, createElement, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { Schedule } from '../base/schedule';\r\nimport { TimelineYear } from '../renderer/timeline-year';\r\nimport { Year } from '../renderer/year';\r\nimport { TimelineMonth } from '../renderer/timeline-month';\r\nimport { TimelineViews } from '../renderer/timeline-view';\r\nimport { MonthAgenda } from '../renderer/month-agenda';\r\nimport { Agenda } from '../renderer/agenda';\r\nimport { Month } from '../renderer/month';\r\nimport { WorkWeek } from '../renderer/work-week';\r\nimport { Week } from '../renderer/week';\r\nimport { Day } from '../renderer/day';\r\nimport * as events from '../base/constant';\r\n/**\r\n * Print Module\r\n */\r\nvar Print = /** @class */ (function () {\r\n function Print(parent) {\r\n this.parent = parent;\r\n }\r\n Print.prototype.print = function (printOptions) {\r\n if (isNullOrUndefined(printOptions)) {\r\n this.printScheduler();\r\n }\r\n else {\r\n this.printSchedulerWithModel(printOptions);\r\n }\r\n };\r\n Print.prototype.printScheduler = function () {\r\n var clone = this.parent.element.cloneNode(true);\r\n clone.id = this.parent.element.id + '_print';\r\n document.body.appendChild(clone);\r\n var className = this.parent.currentView === 'MonthAgenda' ? '.e-appointment-wrap' : '.e-content-wrap';\r\n var scrollableEle = this.parent.element.querySelector(className);\r\n var links = [].slice.call(document.getElementsByTagName('head')[0].querySelectorAll('link, style'));\r\n var reference = '';\r\n for (var _i = 0, links_1 = links; _i < links_1.length; _i++) {\r\n var link = links_1[_i];\r\n reference += link.outerHTML;\r\n }\r\n var div = createElement('div');\r\n clone.style.width = this.parent.element.offsetWidth + 'px';\r\n var elementWidth = Math.round((parseInt(clone.style.width, 10)) / 100) * 100;\r\n div.appendChild(clone);\r\n var printWindow = window.open('', 'print', 'height=550,width=' + elementWidth + ',tabbar=no');\r\n printWindow.document.write('' + reference + '' + div.innerHTML +\r\n '');\r\n printWindow.document.close();\r\n printWindow.focus();\r\n setTimeout(function () {\r\n if (printWindow.ready && scrollableEle) {\r\n // eslint-disable-next-line no-self-assign\r\n scrollableEle.scrollLeft = scrollableEle.scrollLeft;\r\n // eslint-disable-next-line no-self-assign\r\n scrollableEle.scrollTop = scrollableEle.scrollTop;\r\n var headerTimeCellsScroll = printWindow.document.querySelector('.e-date-header-wrap');\r\n if (headerTimeCellsScroll) {\r\n headerTimeCellsScroll.scrollLeft = scrollableEle.scrollLeft;\r\n }\r\n var timeCellsScroll = printWindow.document.querySelector('.e-time-cells-wrap');\r\n if (timeCellsScroll) {\r\n timeCellsScroll.scrollTop = scrollableEle.scrollTop;\r\n }\r\n printWindow.print();\r\n printWindow.close();\r\n }\r\n }, 500);\r\n };\r\n Print.prototype.printSchedulerWithModel = function (printOptions) {\r\n var element = createElement('div', { id: this.parent.element.id + '_print', className: 'e-print-schedule' });\r\n document.body.appendChild(element);\r\n Schedule.Inject(Day, Week, WorkWeek, Month, Agenda, MonthAgenda, TimelineViews, TimelineMonth, Year, TimelineYear);\r\n this.printInstance = new Schedule(this.getPrintScheduleModel(printOptions));\r\n this.printInstance.isPrinting = true;\r\n this.printInstance.appendTo(element);\r\n this.printInstance.on(events.print, this.contentReady, this);\r\n this.printWindow = window.open('', 'print', 'height=' + window.outerHeight + ',width=' + window.outerWidth + ',tabbar=no');\r\n this.printWindow.moveTo(0, 0);\r\n this.printWindow.resizeTo(screen.availWidth, screen.availHeight);\r\n };\r\n Print.prototype.getPrintScheduleModel = function (printOptions) {\r\n var printModel = {};\r\n var scheduleProps = ['agendaDaysCount', 'calendarMode', 'cssClass', 'currentView',\r\n 'dateFormat', 'enableRtl', 'endHour', 'eventSettings', 'firstDayOfWeek',\r\n 'firstMonthOfYear', 'group', 'height', 'locale', 'maxDate', 'minDate', 'readonly',\r\n 'resources', 'rowAutoHeight', 'selectedDate', 'showHeaderBar', 'showTimeIndicator', 'showWeekNumber',\r\n 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'timezone', 'views', 'width', 'workDays', 'workHours'\r\n ];\r\n var eventSettings;\r\n var group;\r\n for (var _i = 0, scheduleProps_1 = scheduleProps; _i < scheduleProps_1.length; _i++) {\r\n var key = scheduleProps_1[_i];\r\n switch (key) {\r\n case 'eventSettings':\r\n eventSettings = Object.assign({}, this.parent.eventSettings.properties);\r\n eventSettings.dataSource = this.parent.eventsData;\r\n eventSettings.template = null;\r\n printModel.eventSettings = eventSettings;\r\n break;\r\n case 'group':\r\n group = isNullOrUndefined(printOptions.group) ? this.parent.group : printOptions.group;\r\n group.headerTooltipTemplate = null;\r\n printModel.group = group;\r\n break;\r\n default:\r\n printModel[key] = isNullOrUndefined(printOptions[key]) ?\r\n this.parent[key] : printOptions[key];\r\n break;\r\n }\r\n }\r\n return printModel;\r\n };\r\n Print.prototype.contentReady = function () {\r\n var _this = this;\r\n this.printWindow = basePrint(this.printInstance.element, this.printWindow);\r\n this.printWindow.onbeforeunload = function () {\r\n _this.printInstance.off(events.print, _this.contentReady);\r\n _this.printInstance.element.remove();\r\n _this.printInstance.destroy();\r\n _this.printInstance = null;\r\n _this.printWindow = null;\r\n };\r\n };\r\n Print.prototype.getModuleName = function () {\r\n return 'print';\r\n };\r\n Print.prototype.destroy = function () {\r\n this.parent = null;\r\n };\r\n return Print;\r\n}());\r\nexport { Print };\r\n","/**\r\n * Schedule component exported items\r\n */\r\nexport * from './base/schedule';\r\nexport * from './base/constant';\r\nexport * from './base/util';\r\nexport * from './actions/resize';\r\nexport * from './actions/drag';\r\nexport * from './renderer/header-renderer';\r\nexport * from './renderer/view-base';\r\nexport * from './renderer/day';\r\nexport * from './renderer/week';\r\nexport * from './renderer/work-week';\r\nexport * from './renderer/month';\r\nexport * from './renderer/year';\r\nexport * from './renderer/agenda';\r\nexport * from './renderer/month-agenda';\r\nexport * from './renderer/timeline-view';\r\nexport * from './renderer/timeline-month';\r\nexport * from './renderer/timeline-year';\r\nexport * from './timezone/timezone';\r\nexport * from './exports/index';\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\r\nimport { Field } from './fields';\r\n/**\r\n * Holds the configuration of event related options and dataSource binding to Schedule.\r\n */\r\nvar EventSettings = /** @class */ (function (_super) {\r\n __extends(EventSettings, _super);\r\n function EventSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], EventSettings.prototype, \"template\", void 0);\r\n __decorate([\r\n Property([])\r\n ], EventSettings.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property()\r\n ], EventSettings.prototype, \"query\", void 0);\r\n __decorate([\r\n Complex({}, Field)\r\n ], EventSettings.prototype, \"fields\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], EventSettings.prototype, \"enableTooltip\", void 0);\r\n __decorate([\r\n Property()\r\n ], EventSettings.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Property('AllDayRow')\r\n ], EventSettings.prototype, \"spannedEventPlacement\", void 0);\r\n __decorate([\r\n Property()\r\n ], EventSettings.prototype, \"resourceColorField\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], EventSettings.prototype, \"editFollowingEvents\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], EventSettings.prototype, \"allowAdding\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], EventSettings.prototype, \"allowEditing\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], EventSettings.prototype, \"allowDeleting\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], EventSettings.prototype, \"enableMaxHeight\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], EventSettings.prototype, \"enableIndicator\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], EventSettings.prototype, \"ignoreWhitespace\", void 0);\r\n __decorate([\r\n Property()\r\n ], EventSettings.prototype, \"sortComparer\", void 0);\r\n return EventSettings;\r\n}(ChildProperty));\r\nexport { EventSettings };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * Configuration that applies on each appointment field options of scheduler.\r\n */\r\nvar FieldOptions = /** @class */ (function (_super) {\r\n __extends(FieldOptions, _super);\r\n function FieldOptions() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], FieldOptions.prototype, \"name\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldOptions.prototype, \"default\", void 0);\r\n __decorate([\r\n Property()\r\n ], FieldOptions.prototype, \"title\", void 0);\r\n __decorate([\r\n Property({})\r\n ], FieldOptions.prototype, \"validation\", void 0);\r\n return FieldOptions;\r\n}(ChildProperty));\r\nexport { FieldOptions };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty, Complex } from '@syncfusion/ej2-base';\r\nimport { FieldOptions } from './field-options';\r\n/**\r\n * A Class that holds the collection of event fields that requires to be mapped with the dataSource\r\n * fields along with its available configuration settings. Each field in it accepts both string and Object\r\n * data type. When each of the field is assigned with simple `string` value, it is assumed that the dataSource field\r\n * name is mapped with it. If the `object` type is defined on each fields, then the validation related settings and mapping of\r\n * those fields with dataSource can be given altogether within it.\r\n */\r\nvar Field = /** @class */ (function (_super) {\r\n __extends(Field, _super);\r\n function Field() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('Id')\r\n ], Field.prototype, \"id\", void 0);\r\n __decorate([\r\n Property('IsBlock')\r\n ], Field.prototype, \"isBlock\", void 0);\r\n __decorate([\r\n Complex({ name: 'Subject' }, FieldOptions)\r\n ], Field.prototype, \"subject\", void 0);\r\n __decorate([\r\n Complex({ name: 'StartTime' }, FieldOptions)\r\n ], Field.prototype, \"startTime\", void 0);\r\n __decorate([\r\n Complex({ name: 'EndTime' }, FieldOptions)\r\n ], Field.prototype, \"endTime\", void 0);\r\n __decorate([\r\n Complex({ name: 'StartTimezone' }, FieldOptions)\r\n ], Field.prototype, \"startTimezone\", void 0);\r\n __decorate([\r\n Complex({ name: 'EndTimezone' }, FieldOptions)\r\n ], Field.prototype, \"endTimezone\", void 0);\r\n __decorate([\r\n Complex({ name: 'Location' }, FieldOptions)\r\n ], Field.prototype, \"location\", void 0);\r\n __decorate([\r\n Complex({ name: 'Description' }, FieldOptions)\r\n ], Field.prototype, \"description\", void 0);\r\n __decorate([\r\n Complex({ name: 'IsAllDay' }, FieldOptions)\r\n ], Field.prototype, \"isAllDay\", void 0);\r\n __decorate([\r\n Complex({ name: 'RecurrenceID' }, FieldOptions)\r\n ], Field.prototype, \"recurrenceID\", void 0);\r\n __decorate([\r\n Complex({ name: 'RecurrenceRule' }, FieldOptions)\r\n ], Field.prototype, \"recurrenceRule\", void 0);\r\n __decorate([\r\n Complex({ name: 'RecurrenceException' }, FieldOptions)\r\n ], Field.prototype, \"recurrenceException\", void 0);\r\n __decorate([\r\n Property('IsReadonly')\r\n ], Field.prototype, \"isReadonly\", void 0);\r\n __decorate([\r\n Property('FollowingID')\r\n ], Field.prototype, \"followingID\", void 0);\r\n return Field;\r\n}(ChildProperty));\r\nexport { Field };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that holds the resource grouping related configurations on Schedule.\r\n */\r\nvar Group = /** @class */ (function (_super) {\r\n __extends(Group, _super);\r\n function Group() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(false)\r\n ], Group.prototype, \"byDate\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Group.prototype, \"byGroupID\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Group.prototype, \"allowGroupEdit\", void 0);\r\n __decorate([\r\n Property([])\r\n ], Group.prototype, \"resources\", void 0);\r\n __decorate([\r\n Property(true)\r\n ], Group.prototype, \"enableCompactView\", void 0);\r\n __decorate([\r\n Property()\r\n ], Group.prototype, \"headerTooltipTemplate\", void 0);\r\n return Group;\r\n}(ChildProperty));\r\nexport { Group };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that represents the header rows related configurations on timeline views.\r\n */\r\nvar HeaderRows = /** @class */ (function (_super) {\r\n __extends(HeaderRows, _super);\r\n function HeaderRows() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], HeaderRows.prototype, \"option\", void 0);\r\n __decorate([\r\n Property()\r\n ], HeaderRows.prototype, \"template\", void 0);\r\n return HeaderRows;\r\n}(ChildProperty));\r\nexport { HeaderRows };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that defines the template options available to customize the quick popup of scheduler.\r\n */\r\nvar QuickInfoTemplates = /** @class */ (function (_super) {\r\n __extends(QuickInfoTemplates, _super);\r\n function QuickInfoTemplates() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('Both')\r\n ], QuickInfoTemplates.prototype, \"templateType\", void 0);\r\n __decorate([\r\n Property()\r\n ], QuickInfoTemplates.prototype, \"header\", void 0);\r\n __decorate([\r\n Property()\r\n ], QuickInfoTemplates.prototype, \"content\", void 0);\r\n __decorate([\r\n Property()\r\n ], QuickInfoTemplates.prototype, \"footer\", void 0);\r\n return QuickInfoTemplates;\r\n}(ChildProperty));\r\nexport { QuickInfoTemplates };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that represents the resource related configurations and its data binding options.\r\n */\r\nvar Resources = /** @class */ (function (_super) {\r\n __extends(Resources, _super);\r\n function Resources() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property()\r\n ], Resources.prototype, \"field\", void 0);\r\n __decorate([\r\n Property()\r\n ], Resources.prototype, \"title\", void 0);\r\n __decorate([\r\n Property()\r\n ], Resources.prototype, \"name\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Resources.prototype, \"allowMultiple\", void 0);\r\n __decorate([\r\n Property([])\r\n ], Resources.prototype, \"dataSource\", void 0);\r\n __decorate([\r\n Property()\r\n ], Resources.prototype, \"query\", void 0);\r\n __decorate([\r\n Property('Id')\r\n ], Resources.prototype, \"idField\", void 0);\r\n __decorate([\r\n Property('Text')\r\n ], Resources.prototype, \"textField\", void 0);\r\n __decorate([\r\n Property('Expanded')\r\n ], Resources.prototype, \"expandedField\", void 0);\r\n __decorate([\r\n Property('GroupID')\r\n ], Resources.prototype, \"groupIDField\", void 0);\r\n __decorate([\r\n Property('Color')\r\n ], Resources.prototype, \"colorField\", void 0);\r\n __decorate([\r\n Property('StartHour')\r\n ], Resources.prototype, \"startHourField\", void 0);\r\n __decorate([\r\n Property('EndHour')\r\n ], Resources.prototype, \"endHourField\", void 0);\r\n __decorate([\r\n Property('WorkDays')\r\n ], Resources.prototype, \"workDaysField\", void 0);\r\n __decorate([\r\n Property('CssClass')\r\n ], Resources.prototype, \"cssClassField\", void 0);\r\n return Resources;\r\n}(ChildProperty));\r\nexport { Resources };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that represents the configuration of options related to timescale on scheduler.\r\n */\r\nvar TimeScale = /** @class */ (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(true)\r\n ], TimeScale.prototype, \"enable\", void 0);\r\n __decorate([\r\n Property(60)\r\n ], TimeScale.prototype, \"interval\", void 0);\r\n __decorate([\r\n Property(2)\r\n ], TimeScale.prototype, \"slotCount\", void 0);\r\n __decorate([\r\n Property()\r\n ], TimeScale.prototype, \"minorSlotTemplate\", void 0);\r\n __decorate([\r\n Property()\r\n ], TimeScale.prototype, \"majorSlotTemplate\", void 0);\r\n return TimeScale;\r\n}(ChildProperty));\r\nexport { TimeScale };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Property, ChildProperty } from '@syncfusion/ej2-base';\r\n/**\r\n * A class that represents the configuration of working hours related options of scheduler.\r\n */\r\nvar WorkHours = /** @class */ (function (_super) {\r\n __extends(WorkHours, _super);\r\n function WorkHours() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(true)\r\n ], WorkHours.prototype, \"highlight\", void 0);\r\n __decorate([\r\n Property('09:00')\r\n ], WorkHours.prototype, \"start\", void 0);\r\n __decorate([\r\n Property('18:00')\r\n ], WorkHours.prototype, \"end\", void 0);\r\n return WorkHours;\r\n}(ChildProperty));\r\nexport { WorkHours };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { isNullOrUndefined, append, createElement, addClass } from '@syncfusion/ej2-base';\r\nimport { Tooltip } from '@syncfusion/ej2-popups';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * Tooltip for Schedule\r\n */\r\nvar EventTooltip = /** @class */ (function () {\r\n function EventTooltip(parent) {\r\n this.parent = parent;\r\n this.tooltipObj = new Tooltip({\r\n animation: { close: { effect: 'FadeOut' } },\r\n content: 'No title',\r\n position: 'BottomRight',\r\n offsetY: 10,\r\n mouseTrail: this.parent.isAdaptive ? false : true,\r\n showTipPointer: false,\r\n cssClass: this.parent.cssClass + ' ' + cls.EVENT_TOOLTIP_ROOT_CLASS,\r\n target: this.getTargets(),\r\n beforeRender: this.onBeforeRender.bind(this),\r\n beforeClose: this.onBeforeClose.bind(this),\r\n enableRtl: this.parent.enableRtl\r\n });\r\n this.tooltipObj.appendTo(this.parent.element);\r\n }\r\n EventTooltip.prototype.getTargets = function () {\r\n var targets = [];\r\n if (this.parent.activeViewOptions.group.headerTooltipTemplate) {\r\n targets.push('.' + cls.RESOURCE_CELLS_CLASS);\r\n }\r\n if (this.parent.eventSettings.enableTooltip) {\r\n targets.push('.' + cls.APPOINTMENT_CLASS);\r\n }\r\n return targets.join(',');\r\n };\r\n EventTooltip.prototype.onBeforeRender = function (args) {\r\n if (!isNullOrUndefined(args.target.getAttribute('data-tooltip-id'))) {\r\n return;\r\n }\r\n if (args.target.classList.contains(cls.RESOURCE_CELLS_CLASS) && this.parent.activeViewOptions.group.resources.length > 0) {\r\n var resCollection = void 0;\r\n if (this.parent.activeView.isTimelineView()) {\r\n var index = parseInt(args.target.getAttribute('data-group-index'), 10);\r\n resCollection = this.parent.resourceBase.lastResourceLevel[index];\r\n }\r\n else {\r\n var rowIndex = args.target.parentNode.sectionRowIndex;\r\n var cellIndex = args.target.cellIndex;\r\n resCollection = this.parent.activeView.getColumnLevels()[rowIndex][cellIndex];\r\n }\r\n var data = {\r\n resource: resCollection.resource,\r\n resourceData: resCollection.resourceData\r\n };\r\n var contentContainer = createElement('div');\r\n var templateId = this.parent.element.id + '_headerTooltipTemplate';\r\n var tooltipTemplate = [].slice.call(this.parent.getHeaderTooltipTemplate()(data, this.parent, 'headerTooltipTemplate', templateId, false));\r\n append(tooltipTemplate, contentContainer);\r\n this.setContent(contentContainer);\r\n this.parent.renderTemplates();\r\n return;\r\n }\r\n var record = this.parent.eventBase.getEventByGuid(args.target.getAttribute('data-guid'));\r\n if (isNullOrUndefined(record)) {\r\n return;\r\n }\r\n if (!isNullOrUndefined(this.parent.eventSettings.tooltipTemplate)) {\r\n var contentContainer = createElement('div');\r\n var templateId = this.parent.element.id + '_tooltipTemplate';\r\n var tooltipTemplate = [].slice.call(this.parent.getEventTooltipTemplate()(record, this.parent, 'tooltipTemplate', templateId, false));\r\n append(tooltipTemplate, contentContainer);\r\n this.setContent(contentContainer);\r\n }\r\n else {\r\n var globalize = this.parent.globalize;\r\n var fields = this.parent.eventFields;\r\n var eventStart = new Date('' + record[fields.startTime]);\r\n var eventEnd = new Date('' + record[fields.endTime]);\r\n eventEnd = (eventEnd.getHours() === 0 && eventEnd.getMinutes() === 0) ? new Date(eventEnd.setMilliseconds(-1000)) : eventEnd;\r\n var startDate = util.resetTime(new Date('' + eventStart));\r\n var endDate = util.resetTime(new Date('' + eventEnd));\r\n var tooltipSubject = (record[fields.subject] || this.parent.eventSettings.fields.subject.default\r\n || this.parent.localeObj.getConstant('addTitle'));\r\n var tooltipLocation = !isNullOrUndefined(record[fields.location]) ? record[fields.location] : '';\r\n var startMonthDate = '';\r\n var startMonthYearDate = '';\r\n var endMonthYearDate = '';\r\n startMonthDate = globalize.formatDate(eventStart, {\r\n type: 'date', skeleton: 'MMMd', calendar: this.parent.getCalendarMode()\r\n });\r\n startMonthYearDate = globalize.formatDate(eventStart, {\r\n type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()\r\n });\r\n endMonthYearDate = globalize.formatDate(eventEnd, {\r\n type: 'date', skeleton: 'medium', calendar: this.parent.getCalendarMode()\r\n });\r\n startMonthDate = util.capitalizeFirstWord(startMonthDate, 'single');\r\n startMonthYearDate = util.capitalizeFirstWord(startMonthYearDate, 'single');\r\n endMonthYearDate = util.capitalizeFirstWord(endMonthYearDate, 'single');\r\n var skeleton = 'short';\r\n var startTime = globalize.formatDate(eventStart, {\r\n type: 'time', skeleton: skeleton, calendar: this.parent.getCalendarMode()\r\n });\r\n var endTime = globalize.formatDate(eventEnd, {\r\n type: 'time', skeleton: skeleton, calendar: this.parent.getCalendarMode()\r\n });\r\n var tooltipDetails = void 0;\r\n if (startDate.getTime() === endDate.getTime()) {\r\n tooltipDetails =\r\n globalize.formatDate(eventStart, {\r\n type: 'date', skeleton: 'long', calendar: this.parent.getCalendarMode()\r\n });\r\n tooltipDetails = util.capitalizeFirstWord(tooltipDetails, 'single');\r\n }\r\n else {\r\n tooltipDetails = (startDate.getFullYear() === endDate.getFullYear()) ? (startMonthDate + ' - ' + endMonthYearDate) :\r\n (startMonthYearDate + ' - ' + endMonthYearDate);\r\n }\r\n var tooltipTime = (record[fields.isAllDay]) ? this.parent.localeObj.getConstant('allDay') :\r\n (startTime + ' - ' + endTime);\r\n var content = '
      ' + tooltipSubject + '
      ' +\r\n '
      ' + tooltipLocation + '
      ' +\r\n '
      ' + tooltipDetails + '
      ' +\r\n '
      ' + tooltipTime + '
      ';\r\n this.setContent(content);\r\n }\r\n this.parent.renderTemplates();\r\n };\r\n EventTooltip.prototype.onBeforeClose = function () {\r\n this.parent.resetTemplates(['tooltipTemplate', 'headerTooltipTemplate']);\r\n };\r\n EventTooltip.prototype.setContent = function (content) {\r\n this.tooltipObj.setProperties({ content: content }, true);\r\n };\r\n EventTooltip.prototype.close = function () {\r\n this.tooltipObj.close();\r\n };\r\n EventTooltip.prototype.destroy = function () {\r\n this.tooltipObj.destroy();\r\n addClass([this.parent.element], 'e-control');\r\n this.tooltipObj = null;\r\n this.parent = null;\r\n };\r\n return EventTooltip;\r\n}());\r\nexport { EventTooltip };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { createElement, isNullOrUndefined, addClass, remove, EventHandler, extend, append } from '@syncfusion/ej2-base';\r\nimport { cldrData, removeClass, getValue, getDefaultDateObject, closest, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { Query, Deferred } from '@syncfusion/ej2-data';\r\nimport { CheckBox, Button } from '@syncfusion/ej2-buttons';\r\nimport { Dialog } from '@syncfusion/ej2-popups';\r\nimport { DropDownList, MultiSelect } from '@syncfusion/ej2-dropdowns';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { DateTimePicker } from '@syncfusion/ej2-calendars';\r\nimport { FieldValidator } from './form-validator';\r\nimport { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';\r\nimport * as cls from '../base/css-constant';\r\nimport * as event from '../base/constant';\r\nimport * as util from '../base/util';\r\nvar EVENT_FIELD = 'e-field';\r\nvar REPEAT_CONTAINER_CLASS = 'e-recurrence-container';\r\nvar REPEAT_BUTTON_ICON_CLASS = 'e-recurrence-edit';\r\nvar REPEAT_BUTTON_CLASS = 'e-recurrence-edit-button';\r\nvar REPEAT_DIALOG_CLASS = 'e-recurrence-dialog';\r\nvar HIDE_STYLE_CLASS = 'e-hide';\r\n/**\r\n * Event editor window\r\n */\r\nvar EventWindow = /** @class */ (function () {\r\n function EventWindow(parent) {\r\n this.parent = parent;\r\n this.l10n = this.parent.localeObj;\r\n this.fields = this.parent.eventFields;\r\n this.eventWindowTime = { startTime: new Date(), endTime: new Date() };\r\n this.renderEventWindow();\r\n }\r\n EventWindow.prototype.renderEventWindow = function () {\r\n this.element = createElement('div', { id: this.parent.element.id + '_dialog_wrapper' });\r\n this.parent.element.appendChild(this.element);\r\n var dialogModel = {\r\n animationSettings: { effect: 'Zoom' },\r\n content: this.getEventWindowContent(),\r\n cssClass: cls.EVENT_WINDOW_DIALOG_CLASS,\r\n enableRtl: this.parent.enableRtl,\r\n height: this.parent.isAdaptive ? '100%' : 'auto',\r\n minHeight: '300px',\r\n isModal: true,\r\n showCloseIcon: this.parent.isAdaptive ? false : true,\r\n target: document.body,\r\n visible: false,\r\n width: '500px',\r\n beforeOpen: this.onBeforeOpen.bind(this),\r\n beforeClose: this.onBeforeClose.bind(this)\r\n };\r\n if (this.parent.isAdaptive) {\r\n dialogModel.cssClass = cls.EVENT_WINDOW_DIALOG_CLASS + ' ' + cls.DEVICE_CLASS;\r\n dialogModel.header = '
      ' +\r\n this.l10n.getConstant('newEvent') + '
      ';\r\n }\r\n else {\r\n dialogModel.buttons = [{\r\n buttonModel: {\r\n content: this.l10n.getConstant('deleteButton'), cssClass: cls.DELETE_EVENT_CLASS,\r\n disabled: !this.parent.eventSettings.allowDeleting || this.parent.readonly\r\n },\r\n click: this.eventDelete.bind(this)\r\n }, {\r\n buttonModel: {\r\n content: this.l10n.getConstant('saveButton'), cssClass: 'e-primary ' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS,\r\n isPrimary: true, disabled: !this.parent.eventSettings.allowAdding || this.parent.readonly\r\n },\r\n click: this.eventSave.bind(this)\r\n }, {\r\n buttonModel: { cssClass: cls.EVENT_WINDOW_CANCEL_BUTTON_CLASS, content: this.l10n.getConstant('cancelButton') },\r\n click: this.dialogClose.bind(this)\r\n }];\r\n dialogModel.header = '
      ' + this.l10n.getConstant('newEvent') + '
      ';\r\n }\r\n this.dialogObject = new Dialog(dialogModel, this.element);\r\n if (this.dialogObject.element.querySelector('.e-dlg-closeicon-btn')) {\r\n this.dialogObject.element.querySelector('.e-dlg-closeicon-btn').setAttribute('title', this.l10n.getConstant('close'));\r\n }\r\n addClass([this.element.parentElement], cls.EVENT_WINDOW_DIALOG_CLASS + '-container');\r\n if (this.parent.isAdaptive) {\r\n EventHandler.add(this.element.querySelector('.' + cls.EVENT_WINDOW_BACK_ICON_CLASS), 'click', this.dialogClose, this);\r\n EventHandler.add(this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_ICON_CLASS), 'click', this.eventSave, this);\r\n }\r\n EventHandler.add(this.dialogObject.element, 'keydown', this.preventEventSave, this);\r\n this.applyFormValidation();\r\n };\r\n EventWindow.prototype.refresh = function () {\r\n this.destroy(true);\r\n this.renderEventWindow();\r\n };\r\n EventWindow.prototype.refreshRecurrenceEditor = function () {\r\n if (this.recurrenceEditor) {\r\n var recurrenceEditor = this.recurrenceEditor.element;\r\n this.recurrenceEditor.destroy();\r\n this.createRecurrenceEditor(recurrenceEditor);\r\n }\r\n };\r\n EventWindow.prototype.setRecurrenceEditor = function (recurrenceEditor) {\r\n if (this.parent.editorTemplate) {\r\n this.recurrenceEditor = recurrenceEditor;\r\n }\r\n };\r\n EventWindow.prototype.openEditor = function (data, type, isEventData, repeatType) {\r\n this.parent.currentAction = type;\r\n this.parent.removeNewEventElement();\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide(true);\r\n }\r\n this.parent.inlineModule.removeInlineAppointmentElement();\r\n if (type === 'Add') {\r\n var eventObj = {};\r\n this.cellClickAction = !isEventData;\r\n this.parent.activeCellsData = data;\r\n var event_1 = data;\r\n if (this.cellClickAction) {\r\n this.convertToEventData(event_1, eventObj);\r\n }\r\n else {\r\n this.parent.activeCellsData = {\r\n startTime: (event_1.startTime || event_1[this.fields.startTime]),\r\n endTime: (event_1.endTime || event_1[this.fields.endTime]),\r\n isAllDay: (event_1.isAllDay || event_1[this.fields.isAllDay]),\r\n element: event_1.element,\r\n groupIndex: event_1.groupIndex\r\n };\r\n eventObj = event_1;\r\n }\r\n data = eventObj;\r\n }\r\n if (!isNullOrUndefined(this.parent.editorTemplate)) {\r\n this.renderFormElements(this.element.querySelector('.e-schedule-form'), data);\r\n }\r\n if (!this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\r\n removeClass([this.dialogObject.element.querySelector('.e-recurrenceeditor')], cls.DISABLE_CLASS);\r\n }\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.firstDayOfWeek = this.parent.activeViewOptions.firstDayOfWeek;\r\n }\r\n switch (type) {\r\n case 'Add':\r\n this.onCellDetailsUpdate(data, repeatType);\r\n break;\r\n case 'Save':\r\n case 'EditOccurrence':\r\n case 'EditSeries':\r\n case 'EditFollowingEvents':\r\n if (type === 'EditOccurrence' && !this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\r\n addClass([this.dialogObject.element.querySelector('.e-recurrenceeditor')], cls.DISABLE_CLASS);\r\n }\r\n this.cellClickAction = false;\r\n this.onEventDetailsUpdate(data);\r\n break;\r\n }\r\n };\r\n EventWindow.prototype.setDialogContent = function () {\r\n this.dialogObject.content = this.getEventWindowContent();\r\n this.dialogObject.dataBind();\r\n };\r\n EventWindow.prototype.preventEventSave = function (e) {\r\n if (this.parent && !this.parent.allowKeyboardInteraction && e.code === 'Enter') {\r\n this.isEnterKey = true;\r\n }\r\n };\r\n EventWindow.prototype.onBeforeOpen = function (args) {\r\n var _this = this;\r\n var eventProp = {\r\n type: 'Editor',\r\n data: this.eventData,\r\n cancel: false,\r\n element: this.element,\r\n target: (this.cellClickAction ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\r\n };\r\n if (this.cellClickAction) {\r\n eventProp.duration = this.getSlotDuration();\r\n }\r\n var saveObj = this.getInstance(cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\r\n if (saveObj) {\r\n saveObj.disabled = !(this.cellClickAction ? this.parent.eventSettings.allowAdding : this.parent.eventSettings.allowEditing);\r\n saveObj.dataBind();\r\n }\r\n var deleteObj = this.getInstance(cls.DELETE_EVENT_CLASS);\r\n if (deleteObj) {\r\n deleteObj.disabled = !this.parent.eventSettings.allowDeleting;\r\n deleteObj.dataBind();\r\n }\r\n var callBackPromise = new Deferred();\r\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\r\n args.cancel = popupArgs.cancel;\r\n _this.duration = _this.cellClickAction ? popupArgs.duration : null;\r\n _this.refreshDateTimePicker(_this.duration);\r\n if (_this.cellClickAction && popupArgs.duration !== _this.getSlotDuration() && isNullOrUndefined(_this.parent.editorTemplate)) {\r\n var startObj = _this.getInstance(cls.EVENT_WINDOW_START_CLASS);\r\n var endObj = _this.getInstance(cls.EVENT_WINDOW_END_CLASS);\r\n endObj.value = new Date(startObj.value.getTime() + (util.MS_PER_MINUTE * popupArgs.duration));\r\n endObj.dataBind();\r\n }\r\n if (_this.parent.editorTemplate && _this.element.querySelector('.e-recurrenceeditor') && !_this.recurrenceEditor) {\r\n _this.recurrenceEditor = _this.getInstance('e-recurrenceeditor');\r\n }\r\n callBackPromise.resolve(args);\r\n });\r\n return callBackPromise;\r\n };\r\n EventWindow.prototype.onBeforeClose = function (args) {\r\n var _this = this;\r\n if (args.isInteracted) {\r\n this.isCrudAction = false;\r\n }\r\n var eventProp = {\r\n type: 'Editor',\r\n event: args.event || this.dialogEvent,\r\n data: this.eventCrudData,\r\n cancel: false,\r\n element: this.element,\r\n target: (this.cellClickAction ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\r\n };\r\n var callBackPromise = new Deferred();\r\n this.parent.trigger(event.popupClose, eventProp, function (popupArgs) {\r\n args.cancel = popupArgs.cancel;\r\n if (!popupArgs.cancel) {\r\n if (_this.isCrudAction) {\r\n args.cancel = _this.processCrudActions(popupArgs.data);\r\n _this.isCrudAction = args.cancel;\r\n }\r\n if (!_this.isCrudAction) {\r\n _this.resetForm();\r\n _this.parent.eventBase.focusElement(true);\r\n _this.eventCrudData = null;\r\n }\r\n }\r\n callBackPromise.resolve(args);\r\n });\r\n return callBackPromise;\r\n };\r\n EventWindow.prototype.getEventWindowContent = function () {\r\n var container = createElement('div', { className: cls.FORM_CONTAINER_CLASS });\r\n var form = createElement('form', {\r\n id: this.parent.element.id + 'EditForm',\r\n className: cls.FORM_CLASS,\r\n attrs: { onsubmit: 'return false;' }\r\n });\r\n this.renderFormElements(form);\r\n container.appendChild(form);\r\n return container;\r\n };\r\n EventWindow.prototype.renderFormElements = function (form, args) {\r\n if (!isNullOrUndefined(this.parent.editorTemplate)) {\r\n if (args) {\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.destroy();\r\n this.recurrenceEditor = null;\r\n }\r\n this.destroyComponents();\r\n var formElements = [].slice.call(form.children);\r\n for (var _i = 0, formElements_1 = formElements; _i < formElements_1.length; _i++) {\r\n var element = formElements_1[_i];\r\n remove(element);\r\n }\r\n }\r\n var templateId = this.parent.element.id + '_editorTemplate';\r\n var tempEle = [].slice.call(this.parent.getEditorTemplate()(args || {}, this.parent, 'editorTemplate', templateId, false));\r\n append(tempEle, form);\r\n this.parent.renderTemplates();\r\n }\r\n else {\r\n form.appendChild(this.getDefaultEventWindowContent());\r\n }\r\n };\r\n EventWindow.prototype.getDefaultEventWindowContent = function () {\r\n var parentDiv = this.createDivElement(cls.EVENT_WINDOW_DIALOG_PARENT_CLASS);\r\n var titleLocationDiv = this.createDivElement(cls.EVENT_WINDOW_TITLE_LOCATION_DIV_CLASS);\r\n parentDiv.appendChild(titleLocationDiv);\r\n titleLocationDiv.appendChild(this.renderTextBox(cls.SUBJECT_CLASS));\r\n titleLocationDiv.querySelector('.' + cls.SUBJECT_CLASS).setAttribute('title', this.parent.editorTitles.subject);\r\n titleLocationDiv.appendChild(this.renderTextBox(cls.LOCATION_CLASS));\r\n titleLocationDiv.querySelector('.' + cls.LOCATION_CLASS).setAttribute('title', this.parent.editorTitles.location);\r\n var startEndDateTimeDiv = this.createDivElement(cls.EVENT_WINDOW_START_END_DIV_CLASS);\r\n parentDiv.appendChild(startEndDateTimeDiv);\r\n startEndDateTimeDiv.appendChild(this.renderDateTimePicker(cls.EVENT_WINDOW_START_CLASS, this.onTimeChange.bind(this)));\r\n startEndDateTimeDiv.querySelector('.' + cls.EVENT_WINDOW_START_CLASS).setAttribute('title', this.parent.editorTitles.startTime);\r\n startEndDateTimeDiv.appendChild(this.renderDateTimePicker(cls.EVENT_WINDOW_END_CLASS));\r\n startEndDateTimeDiv.querySelector('.' + cls.EVENT_WINDOW_END_CLASS).setAttribute('title', this.parent.editorTitles.endTime);\r\n var allDayTimezoneDiv = this.createDivElement(cls.EVENT_WINDOW_ALLDAY_TZ_DIV_CLASS);\r\n parentDiv.appendChild(allDayTimezoneDiv);\r\n allDayTimezoneDiv.appendChild(this.renderCheckBox(cls.EVENT_WINDOW_ALL_DAY_CLASS));\r\n allDayTimezoneDiv.appendChild(this.renderCheckBox(cls.TIME_ZONE_CLASS));\r\n var timezoneParentDiv = this.createDivElement(cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS);\r\n parentDiv.appendChild(timezoneParentDiv);\r\n timezoneParentDiv.appendChild(this.renderDropDown(cls.EVENT_WINDOW_START_TZ_CLASS));\r\n timezoneParentDiv.appendChild(this.renderDropDown(cls.EVENT_WINDOW_END_TZ_CLASS));\r\n var repeatParentDiv = this.createDivElement(cls.EVENT_WINDOW_REPEAT_DIV_CLASS);\r\n parentDiv.appendChild(repeatParentDiv);\r\n var repeatDiv = this.renderCheckBox(cls.EVENT_WINDOW_REPEAT_CLASS);\r\n var repeatEditContainer = createElement('span', { className: REPEAT_CONTAINER_CLASS });\r\n var button = createElement('button', {\r\n className: REPEAT_BUTTON_CLASS,\r\n attrs: { type: 'button', 'title': this.l10n.getConstant('editRecurrence') }\r\n });\r\n this.buttonObj = new Button({ iconCss: REPEAT_BUTTON_ICON_CLASS + ' e-icons', cssClass: 'e-medium ' + this.parent.cssClass });\r\n repeatEditContainer.appendChild(button);\r\n this.buttonObj.appendTo(button);\r\n repeatDiv.appendChild(repeatEditContainer);\r\n repeatParentDiv.appendChild(repeatDiv);\r\n if (this.parent.isAdaptive) {\r\n EventHandler.add(button, 'click', this.loadRecurrenceEditor, this);\r\n }\r\n else {\r\n this.createRecurrenceEditor(parentDiv);\r\n }\r\n if (this.parent.resourceCollection.length > 0) {\r\n var resourceParentDiv = this.createDivElement(cls.EVENT_WINDOW_RESOURCES_DIV_CLASS);\r\n for (var _i = 0, _a = this.parent.resourceBase.resourceCollection; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n resourceParentDiv.appendChild(this.renderResourceDetails(resource));\r\n }\r\n parentDiv.appendChild(resourceParentDiv);\r\n }\r\n var description = this.createDivElement(cls.DESCRIPTION_CLASS + '-row');\r\n description.appendChild(this.renderTextBox(cls.DESCRIPTION_CLASS));\r\n description.querySelector('.' + cls.DESCRIPTION_CLASS).setAttribute('title', this.parent.editorTitles.description);\r\n parentDiv.appendChild(description);\r\n var submit = createElement('button', { attrs: { type: 'hidden', title: 'submit', style: 'display:none' } });\r\n parentDiv.appendChild(submit);\r\n return parentDiv;\r\n };\r\n EventWindow.prototype.createRecurrenceEditor = function (parentDiv) {\r\n var recurrenceEditor = this.createDivElement();\r\n parentDiv.appendChild(recurrenceEditor);\r\n this.recurrenceEditor = this.renderRecurrenceEditor();\r\n this.recurrenceEditor.appendTo(recurrenceEditor);\r\n this.updateMinMaxDateToEditor();\r\n };\r\n EventWindow.prototype.createDivElement = function (className) {\r\n return createElement('div', { className: className });\r\n };\r\n EventWindow.prototype.createInputElement = function (className, fieldName, type) {\r\n return createElement(type || 'input', {\r\n className: className, attrs: {\r\n type: 'text', name: fieldName, value: '', id: fieldName,\r\n title: ((this.l10n.getConstant(fieldName.charAt(0).toLowerCase() + fieldName.slice(1))) === '') ?\r\n fieldName : this.l10n.getConstant(fieldName.charAt(0).toLowerCase() + fieldName.slice(1))\r\n }\r\n });\r\n };\r\n EventWindow.prototype.getSlotDuration = function () {\r\n return this.parent.activeViewOptions.timeScale.interval / this.parent.activeViewOptions.timeScale.slotCount;\r\n };\r\n EventWindow.prototype.renderDateTimePicker = function (value, changeEvent) {\r\n var dateTimeDiv = this.createDivElement(value + '-container');\r\n var fieldName = this.getFieldName(value);\r\n var dateTimeInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\r\n dateTimeDiv.appendChild(dateTimeInput);\r\n var dateTimePicker = new DateTimePicker({\r\n change: changeEvent,\r\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\r\n calendarMode: this.parent.calendarMode,\r\n min: this.parent.minDate,\r\n max: new Date(new Date(+this.parent.maxDate).setHours(23, 59, 59)),\r\n cssClass: this.parent.cssClass,\r\n enableRtl: this.parent.enableRtl,\r\n locale: this.parent.locale,\r\n floatLabelType: 'Always',\r\n timeFormat: this.parent.activeViewOptions.timeFormat,\r\n format: (isNullOrUndefined(this.parent.dateFormat) ?\r\n this.getFormat('dateFormats') : this.parent.dateFormat) + ' ' + this.parent.activeViewOptions.timeFormat,\r\n placeholder: this.getFieldLabel(value),\r\n step: this.getSlotDuration(),\r\n width: '100%'\r\n });\r\n dateTimePicker.appendTo(dateTimeInput);\r\n return dateTimeDiv;\r\n };\r\n EventWindow.prototype.refreshDateTimePicker = function (duration) {\r\n var elementSelector = '.' + cls.EVENT_WINDOW_START_CLASS + ',.' + cls.EVENT_WINDOW_END_CLASS;\r\n var startEndElement = [].slice.call(this.element.querySelectorAll(elementSelector));\r\n for (var _i = 0, startEndElement_1 = startEndElement; _i < startEndElement_1.length; _i++) {\r\n var element = startEndElement_1[_i];\r\n var instance = element.ej2_instances[0];\r\n instance.firstDayOfWeek = this.parent.activeViewOptions.firstDayOfWeek;\r\n instance.timeFormat = this.parent.activeViewOptions.timeFormat;\r\n instance.step = duration || this.getSlotDuration();\r\n instance.dataBind();\r\n }\r\n };\r\n EventWindow.prototype.onTimeChange = function () {\r\n var startObj = this.getInstance(cls.EVENT_WINDOW_START_CLASS);\r\n if (startObj.element.parentElement.classList.contains('e-input-focus')) {\r\n var endObj = this.getInstance(cls.EVENT_WINDOW_END_CLASS);\r\n var duration = 0;\r\n if (this.cellClickAction) {\r\n duration = util.MS_PER_MINUTE * this.duration;\r\n this.eventWindowTime.startTime = startObj.value;\r\n }\r\n else {\r\n duration = this.eventData[this.fields.endTime].getTime() - this.eventData[this.fields.startTime].getTime();\r\n }\r\n var endDate = (isNullOrUndefined(startObj.value)) ? null : new Date(startObj.value.getTime() + duration);\r\n if (this.cellClickAction) {\r\n this.eventWindowTime.endTime = endDate;\r\n }\r\n endObj.value = endDate;\r\n endObj.dataBind();\r\n }\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.updateRuleUntilDate(this.eventWindowTime.startTime);\r\n }\r\n };\r\n EventWindow.prototype.renderResourceDetails = function (resourceData) {\r\n var fieldName = resourceData.field;\r\n var value = 'e-' + fieldName;\r\n var labelValue = resourceData.title;\r\n var resourceDiv = this.createDivElement(value + '-container' + ' ' + 'e-resources');\r\n var resourceInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\r\n resourceDiv.appendChild(resourceInput);\r\n var resourceTemplate = '
      ${' + resourceData.textField + '}
      ';\r\n if (resourceData.allowMultiple) {\r\n var listObj = new MultiSelect({\r\n cssClass: this.parent.cssClass || '',\r\n dataSource: resourceData.dataSource,\r\n change: this.onMultiselectResourceChange.bind(this),\r\n itemTemplate: resourceTemplate,\r\n fields: {\r\n text: resourceData.textField,\r\n value: resourceData.idField\r\n },\r\n htmlAttributes: { 'title': labelValue, 'name': fieldName },\r\n floatLabelType: 'Always',\r\n placeholder: labelValue,\r\n popupHeight: '230px',\r\n popupWidth: '447px',\r\n mode: 'Box'\r\n });\r\n listObj.appendTo(resourceInput);\r\n }\r\n else {\r\n var dropDownList = new DropDownList({\r\n cssClass: this.parent.cssClass || '',\r\n change: this.onDropdownResourceChange.bind(this),\r\n dataSource: resourceData.dataSource,\r\n enableRtl: this.parent.enableRtl,\r\n fields: {\r\n text: resourceData.textField,\r\n value: resourceData.idField\r\n },\r\n htmlAttributes: { 'title': labelValue, 'name': fieldName },\r\n floatLabelType: 'Always',\r\n placeholder: labelValue,\r\n popupHeight: '230px',\r\n popupWidth: '447px',\r\n itemTemplate: resourceTemplate\r\n });\r\n dropDownList.appendTo(resourceInput);\r\n }\r\n return resourceDiv;\r\n };\r\n EventWindow.prototype.renderDropDown = function (value) {\r\n var _this = this;\r\n var fieldName = this.getFieldName(value);\r\n var timezoneDiv = this.createDivElement(value + '-container');\r\n var timezoneInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\r\n timezoneDiv.appendChild(timezoneInput);\r\n var dropDownList = new DropDownList({\r\n allowFiltering: true,\r\n change: this.onTimezoneChange.bind(this),\r\n cssClass: this.parent.cssClass || '',\r\n dataSource: this.parent.timezoneDataSource,\r\n enableRtl: this.parent.enableRtl,\r\n fields: { text: 'Text', value: 'Value' },\r\n filterBarPlaceholder: this.parent.localeObj.getConstant('searchTimezone'),\r\n noRecordsTemplate: this.parent.localeObj.getConstant('noRecords'),\r\n filtering: function (e) {\r\n var query = new Query();\r\n query = (e.text !== '') ? query.where('Text', 'contains', e.text, true) : query;\r\n e.updateData(_this.parent.timezoneDataSource, query);\r\n },\r\n htmlAttributes: { 'title': this.getFieldLabel(value), 'name': fieldName },\r\n floatLabelType: 'Always',\r\n placeholder: this.getFieldLabel(value),\r\n popupHeight: '230px'\r\n });\r\n dropDownList.appendTo(timezoneInput);\r\n return timezoneDiv;\r\n };\r\n EventWindow.prototype.onMultiselectResourceChange = function (args) {\r\n if (!args.value || !this.parent.activeViewOptions.group.byGroupID || this.parent.resourceCollection.length <= 1) {\r\n return;\r\n }\r\n var resourceCollection = this.parent.resourceBase.resourceCollection;\r\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\r\n for (var i = 0; i < resourceCollection.length; i++) {\r\n if (resourceCollection[i].field === fieldName && i < resourceCollection.length - 1) {\r\n var resObject = this.createInstance(i);\r\n var datasource = [];\r\n var _loop_1 = function (j) {\r\n var resourceModel = resourceCollection[i + 1];\r\n // eslint-disable-next-line max-len\r\n var filter = resourceModel.dataSource.filter(function (data) {\r\n return data[resourceModel.groupIDField] === args.value[j];\r\n })[0];\r\n var groupId = filter[resourceCollection[i + 1].groupIDField];\r\n var filterRes = this_1.filterDatasource(i, groupId);\r\n datasource = datasource.concat(filterRes);\r\n };\r\n var this_1 = this;\r\n for (var j = 0; j < args.value.length; j++) {\r\n _loop_1(j);\r\n }\r\n resObject.dataSource = datasource;\r\n resObject.dataBind();\r\n }\r\n }\r\n };\r\n EventWindow.prototype.createInstance = function (index) {\r\n var resourceData = this.parent.resourceBase.resourceCollection[index + 1];\r\n var resObject = this.element.querySelector('.e-' + resourceData.field).\r\n ej2_instances[0];\r\n return resObject;\r\n };\r\n EventWindow.prototype.onDropdownResourceChange = function (args) {\r\n if (!args.value || this.parent.resourceCollection.length <= 1 || !this.parent.activeViewOptions.group.byGroupID) {\r\n return;\r\n }\r\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\r\n var resourceCollection = this.parent.resourceBase.resourceCollection;\r\n for (var i = 0; i < resourceCollection.length; i++) {\r\n if ((i < resourceCollection.length - 1) && resourceCollection[i].field === fieldName) {\r\n var resObj = this.createInstance(i);\r\n var groupId = args.itemData[resourceCollection[i].idField];\r\n resObj.dataSource = this.filterDatasource(i, groupId);\r\n resObj.dataBind();\r\n var resValue = resObj.dataSource[0][resourceCollection[i + 1].idField];\r\n resObj.value = (resourceCollection[i + 1].allowMultiple) ? [resValue] : resValue;\r\n resObj.dataBind();\r\n }\r\n }\r\n };\r\n EventWindow.prototype.filterDatasource = function (index, groupId) {\r\n var resourceData = this.parent.resourceBase.resourceCollection[index + 1];\r\n return resourceData.dataSource.filter(function (data) {\r\n return data[resourceData.groupIDField] === groupId;\r\n });\r\n };\r\n EventWindow.prototype.onTimezoneChange = function (args) {\r\n var fieldName = args.element.getAttribute('name') || this.getColumnName(args.element);\r\n if (fieldName === this.parent.eventFields.startTimezone) {\r\n var startTimezoneObj = this.getInstance(cls.EVENT_WINDOW_START_TZ_CLASS);\r\n var endTimezoneObj = this.getInstance(cls.EVENT_WINDOW_END_TZ_CLASS);\r\n endTimezoneObj.value = startTimezoneObj.value;\r\n endTimezoneObj.dataBind();\r\n }\r\n };\r\n EventWindow.prototype.renderCheckBox = function (value) {\r\n var checkBoxDiv = this.createDivElement(value + '-container');\r\n var fieldName = this.getFieldName(value);\r\n var checkBoxInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName);\r\n checkBoxDiv.appendChild(checkBoxInput);\r\n var checkBox = new CheckBox({\r\n change: this.onChange.bind(this),\r\n cssClass: value + ' ' + this.parent.cssClass,\r\n enableRtl: this.parent.enableRtl,\r\n label: this.getFieldLabel(value)\r\n });\r\n checkBox.appendTo(checkBoxInput);\r\n checkBoxInput.setAttribute('name', fieldName);\r\n if (fieldName === 'Repeat') {\r\n this.repeatStatus = checkBox;\r\n }\r\n return checkBoxDiv;\r\n };\r\n EventWindow.prototype.renderTextBox = function (value) {\r\n var textBoxDiv = this.createDivElement(value + '-container');\r\n var fieldName = this.getFieldName(value);\r\n var elementType = (value === cls.DESCRIPTION_CLASS) ? 'textarea' : 'input';\r\n var textBoxInput = this.createInputElement(value + ' ' + EVENT_FIELD, fieldName, elementType);\r\n textBoxDiv.appendChild(textBoxInput);\r\n Input.createInput({\r\n element: textBoxInput,\r\n floatLabelType: 'Always',\r\n properties: {\r\n enableRtl: this.parent.enableRtl,\r\n placeholder: this.getFieldLabel(value)\r\n }\r\n });\r\n return textBoxDiv;\r\n };\r\n EventWindow.prototype.getFieldName = function (name) {\r\n var fieldName = '';\r\n switch (name) {\r\n case cls.SUBJECT_CLASS:\r\n fieldName = this.fields.subject;\r\n break;\r\n case cls.LOCATION_CLASS:\r\n fieldName = this.fields.location;\r\n break;\r\n case cls.EVENT_WINDOW_START_CLASS:\r\n fieldName = this.fields.startTime;\r\n break;\r\n case cls.EVENT_WINDOW_END_CLASS:\r\n fieldName = this.fields.endTime;\r\n break;\r\n case cls.DESCRIPTION_CLASS:\r\n fieldName = this.fields.description;\r\n break;\r\n case cls.EVENT_WINDOW_ALL_DAY_CLASS:\r\n fieldName = this.fields.isAllDay;\r\n break;\r\n case cls.EVENT_WINDOW_START_TZ_CLASS:\r\n fieldName = this.fields.startTimezone;\r\n break;\r\n case cls.EVENT_WINDOW_END_TZ_CLASS:\r\n fieldName = this.fields.endTimezone;\r\n break;\r\n case cls.TIME_ZONE_CLASS:\r\n fieldName = 'Timezone';\r\n break;\r\n case cls.EVENT_WINDOW_REPEAT_CLASS:\r\n fieldName = 'Repeat';\r\n break;\r\n }\r\n return fieldName;\r\n };\r\n EventWindow.prototype.getFieldLabel = function (fieldName) {\r\n var labelText = '';\r\n switch (fieldName) {\r\n case cls.SUBJECT_CLASS:\r\n labelText = this.parent.editorTitles.subject;\r\n break;\r\n case cls.LOCATION_CLASS:\r\n labelText = this.parent.editorTitles.location;\r\n break;\r\n case cls.DESCRIPTION_CLASS:\r\n labelText = this.parent.editorTitles.description;\r\n break;\r\n case cls.EVENT_WINDOW_START_CLASS:\r\n labelText = this.parent.editorTitles.startTime;\r\n break;\r\n case cls.EVENT_WINDOW_END_CLASS:\r\n labelText = this.parent.editorTitles.endTime;\r\n break;\r\n case cls.EVENT_WINDOW_START_TZ_CLASS:\r\n labelText = this.parent.editorTitles.startTimezone;\r\n break;\r\n case cls.EVENT_WINDOW_END_TZ_CLASS:\r\n labelText = this.parent.editorTitles.endTimezone;\r\n break;\r\n case cls.EVENT_WINDOW_REPEAT_CLASS:\r\n labelText = this.parent.editorTitles.recurrenceRule;\r\n break;\r\n case cls.EVENT_WINDOW_ALL_DAY_CLASS:\r\n labelText = this.parent.editorTitles.isAllDay;\r\n break;\r\n case cls.TIME_ZONE_CLASS:\r\n labelText = this.l10n.getConstant('timezone');\r\n break;\r\n }\r\n return labelText;\r\n };\r\n EventWindow.prototype.onChange = function (args) {\r\n var target = (args.event.target);\r\n if (target.classList.contains(cls.EVENT_WINDOW_ALL_DAY_CLASS)) {\r\n this.onAllDayChange(args.checked);\r\n }\r\n else if (target.classList.contains(cls.TIME_ZONE_CLASS)) {\r\n this.timezoneChangeStyle(args.checked);\r\n }\r\n else if (target.classList.contains(cls.EVENT_WINDOW_REPEAT_CLASS)) {\r\n this.onRepeatChange(args.checked);\r\n }\r\n };\r\n EventWindow.prototype.renderRepeatDialog = function () {\r\n var element = createElement('div');\r\n this.repeatDialogObject = new Dialog({\r\n header: this.l10n.getConstant('recurrence'),\r\n visible: false,\r\n content: '
      ',\r\n closeOnEscape: true,\r\n width: '90%',\r\n buttons: [{\r\n click: this.repeatSaveDialog.bind(this),\r\n buttonModel: { content: this.l10n.getConstant('save'), cssClass: 'e-save', isPrimary: true }\r\n },\r\n { click: this.repeatCancelDialog.bind(this), buttonModel: { cssClass: 'e-cancel', content: this.l10n.getConstant('cancel') } }],\r\n target: this.element,\r\n animationSettings: { effect: 'Zoom' },\r\n enableRtl: this.parent.enableRtl,\r\n isModal: true,\r\n cssClass: REPEAT_DIALOG_CLASS,\r\n open: this.repeatOpenDialog.bind(this)\r\n });\r\n this.element.appendChild(element);\r\n this.repeatDialogObject.appendTo(element);\r\n this.createRecurrenceEditor(this.repeatDialogObject.element.querySelector('.e-rec-editor'));\r\n };\r\n EventWindow.prototype.loadRecurrenceEditor = function () {\r\n this.repeatDialogObject.show();\r\n if (this.recurrenceEditor && this.repeatRule) {\r\n this.recurrenceEditor.setRecurrenceRule(this.repeatRule);\r\n }\r\n };\r\n EventWindow.prototype.onRepeatChange = function (state) {\r\n if (state) {\r\n if (!this.repeatDialogObject) {\r\n this.renderRepeatDialog();\r\n }\r\n this.recurrenceEditor.setProperties({ startDate: this.repeatStartDate, selectedType: 0 });\r\n this.loadRecurrenceEditor();\r\n }\r\n else {\r\n if (this.repeatDialogObject) {\r\n this.repeatDialogObject.hide();\r\n }\r\n this.repeatRule = '';\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.setRecurrenceRule(this.repeatRule);\r\n this.updateRepeatLabel(this.repeatRule);\r\n }\r\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\r\n addClass([element], HIDE_STYLE_CLASS);\r\n }\r\n };\r\n EventWindow.prototype.repeatSaveDialog = function () {\r\n this.repeatRule = this.recurrenceEditor.getRecurrenceRule();\r\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\r\n if (this.recurrenceEditor.getRecurrenceRule()) {\r\n removeClass([element], HIDE_STYLE_CLASS);\r\n }\r\n else {\r\n addClass([element], HIDE_STYLE_CLASS);\r\n this.repeatStatus.setProperties({ checked: false });\r\n }\r\n this.updateRepeatLabel(this.repeatRule);\r\n this.closeRepeatDialog();\r\n };\r\n EventWindow.prototype.closeRepeatDialog = function () {\r\n this.repeatDialogObject.hide();\r\n };\r\n EventWindow.prototype.repeatCancelDialog = function () {\r\n this.closeRepeatDialog();\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.setRecurrenceRule(this.repeatTempRule);\r\n }\r\n if (!this.repeatTempRule) {\r\n this.repeatStatus.setProperties({ checked: false });\r\n }\r\n };\r\n EventWindow.prototype.repeatOpenDialog = function () {\r\n this.repeatTempRule = this.recurrenceEditor.getRecurrenceRule();\r\n };\r\n EventWindow.prototype.onCellDetailsUpdate = function (eventObj, repeatType) {\r\n if (!this.parent.eventSettings.allowAdding) {\r\n return;\r\n }\r\n this.element.querySelector('.' + cls.FORM_CLASS).removeAttribute('data-id');\r\n this.element.querySelector('.' + cls.EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('newEvent');\r\n eventObj.Timezone = false;\r\n this.repeatStartDate = eventObj[this.fields.startTime];\r\n this.repeatRule = '';\r\n if (!isNullOrUndefined(this.parent.eventSettings.fields.subject.default)) {\r\n eventObj[this.fields.subject] = this.parent.eventSettings.fields.subject.default;\r\n }\r\n if (!isNullOrUndefined(this.parent.eventSettings.fields.location.default)) {\r\n eventObj[this.fields.location] = this.parent.eventSettings.fields.location.default;\r\n }\r\n if (!isNullOrUndefined(this.parent.eventSettings.fields.description.default)) {\r\n eventObj[this.fields.description] = this.parent.eventSettings.fields.description.default;\r\n }\r\n this.showDetails(eventObj);\r\n if (eventObj[this.fields.recurrenceRule] && this.recurrenceEditor) {\r\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\r\n this.repeatRule = eventObj[this.fields.recurrenceRule];\r\n }\r\n var deleteButton = this.element.querySelector('.' + cls.DELETE_EVENT_CLASS);\r\n if (deleteButton) {\r\n addClass([deleteButton], cls.DISABLE_CLASS);\r\n }\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.setProperties({\r\n startDate: eventObj[this.fields.startTime],\r\n selectedType: !isNullOrUndefined(repeatType) ? repeatType : !isNullOrUndefined(eventObj[this.fields.recurrenceRule]) ?\r\n this.recurrenceEditor.selectedType : 0\r\n });\r\n }\r\n if (this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\r\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\r\n addClass([element], HIDE_STYLE_CLASS);\r\n this.updateRepeatLabel(this.repeatRule);\r\n }\r\n else {\r\n var saveButton = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\r\n this.disableButton(saveButton, false);\r\n }\r\n this.dialogObject.show();\r\n };\r\n EventWindow.prototype.convertToEventData = function (cellsData, eventObj) {\r\n if (cellsData.subject) {\r\n eventObj[this.fields.subject] = cellsData.subject;\r\n }\r\n eventObj[this.fields.startTime] = cellsData.startTime;\r\n eventObj[this.fields.endTime] = cellsData.endTime;\r\n eventObj[this.fields.isAllDay] = cellsData.isAllDay;\r\n if (cellsData.RecurrenceRule) {\r\n eventObj[this.fields.recurrenceRule] = cellsData.RecurrenceRule;\r\n }\r\n if (this.parent.resourceCollection.length > 0 || this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.parent.resourceBase.setResourceValues(eventObj);\r\n }\r\n };\r\n EventWindow.prototype.applyFormValidation = function () {\r\n var getValidationRule = function (rules) {\r\n return (rules && Object.keys(rules).length > 0) ? rules : undefined;\r\n };\r\n var form = this.element.querySelector('.' + cls.FORM_CLASS);\r\n var rules = {};\r\n rules[this.parent.eventSettings.fields.subject.name] = getValidationRule(this.parent.eventSettings.fields.subject.validation);\r\n rules[this.parent.eventSettings.fields.location.name] = getValidationRule(this.parent.eventSettings.fields.location.validation);\r\n rules[this.parent.eventSettings.fields.startTime.name] = getValidationRule(this.parent.eventSettings.fields.startTime.validation);\r\n rules[this.parent.eventSettings.fields.endTime.name] = getValidationRule(this.parent.eventSettings.fields.endTime.validation);\r\n rules[this.parent.eventSettings.fields.description.name] =\r\n getValidationRule(this.parent.eventSettings.fields.description.validation);\r\n this.fieldValidator = new FieldValidator();\r\n this.fieldValidator.renderFormValidator(form, rules, this.element, this.parent.locale);\r\n };\r\n EventWindow.prototype.showDetails = function (eventData) {\r\n var eventObj = extend({}, eventData, null, true);\r\n if (eventObj[this.fields.endTime].getHours() === 0 && eventObj[this.fields.endTime].getMinutes() === 0) {\r\n this.trimAllDay(eventObj);\r\n }\r\n this.eventData = eventObj;\r\n var formElements = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\r\n var keyNames = Object.keys(eventObj);\r\n for (var _i = 0, formElements_2 = formElements; _i < formElements_2.length; _i++) {\r\n var curElement = formElements_2[_i];\r\n var columnName = curElement.name || this.getColumnName(curElement);\r\n if (!isNullOrUndefined(columnName) && columnName !== '') {\r\n if (keyNames.indexOf(columnName) !== -1) {\r\n this.setValueToElement(curElement, eventObj[columnName]);\r\n }\r\n else {\r\n this.setDefaultValueToElement(curElement);\r\n }\r\n }\r\n }\r\n if (isNullOrUndefined(this.parent.editorTemplate)) {\r\n this.onAllDayChange(eventObj[this.fields.isAllDay]);\r\n var timezoneObj = this.getInstance(cls.TIME_ZONE_CLASS + '.' + EVENT_FIELD);\r\n if (!(isNullOrUndefined(eventObj[this.fields.startTimezone]) && isNullOrUndefined(eventObj[this.fields.endTimezone]))) {\r\n timezoneObj.checked = true;\r\n timezoneObj.dataBind();\r\n }\r\n this.timezoneChangeStyle(timezoneObj.checked);\r\n delete eventObj.Timezone;\r\n }\r\n };\r\n EventWindow.prototype.getColumnName = function (element) {\r\n var attrName = element.getAttribute('data-name') || '';\r\n if (attrName === '') {\r\n var isDropDowns = false;\r\n var fieldSelector = '';\r\n if (element.classList.contains('e-dropdownlist')) {\r\n fieldSelector = 'e-ddl';\r\n isDropDowns = true;\r\n }\r\n else if (element.classList.contains('e-multiselect')) {\r\n fieldSelector = 'e-multiselect';\r\n isDropDowns = true;\r\n }\r\n else if (element.classList.contains('e-datetimepicker')) {\r\n fieldSelector = 'e-datetimepicker';\r\n }\r\n else if (element.classList.contains('e-datepicker')) {\r\n fieldSelector = 'e-datepicker';\r\n }\r\n else if (element.classList.contains('e-checkbox')) {\r\n fieldSelector = 'e-checkbox';\r\n }\r\n var classSelector = isDropDowns ? \".\" + fieldSelector + \":not(.e-control)\" : \".\" + fieldSelector;\r\n var control = closest(element, classSelector) || element.querySelector(\".\" + fieldSelector);\r\n if (control) {\r\n var attrEle = control.querySelector('[name]');\r\n if (attrEle) {\r\n attrName = attrEle.name;\r\n }\r\n }\r\n }\r\n return attrName;\r\n };\r\n EventWindow.prototype.onAllDayChange = function (allDayStatus) {\r\n var startObj = this.getInstance(cls.EVENT_WINDOW_START_CLASS);\r\n var endObj = this.getInstance(cls.EVENT_WINDOW_END_CLASS);\r\n var timezoneDiv = this.element.querySelector('.e-time-zone-container');\r\n var format;\r\n if (allDayStatus) {\r\n format = (isNullOrUndefined(this.parent.dateFormat)) ? this.getFormat('dateFormats') : this.parent.dateFormat;\r\n addClass(this.element.querySelectorAll('.e-time-icon'), cls.EVENT_WINDOW_ICON_DISABLE_CLASS);\r\n addClass([timezoneDiv], cls.DISABLE_CLASS);\r\n if (this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)) {\r\n removeClass([this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)], cls.ENABLE_CLASS);\r\n }\r\n startObj.format = endObj.format = format;\r\n }\r\n else {\r\n format = (isNullOrUndefined(this.parent.dateFormat)) ? this.getFormat('dateFormats') + ' ' +\r\n this.parent.activeViewOptions.timeFormat : this.parent.dateFormat + ' ' + this.parent.activeViewOptions.timeFormat;\r\n removeClass(this.element.querySelectorAll('.e-time-icon'), cls.EVENT_WINDOW_ICON_DISABLE_CLASS);\r\n removeClass([timezoneDiv], cls.DISABLE_CLASS);\r\n if (this.element.querySelector('.e-checkbox-wrapper .e-time-zone').checked) {\r\n addClass([this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS)], cls.ENABLE_CLASS);\r\n }\r\n startObj.format = endObj.format = format;\r\n }\r\n if (this.cellClickAction) {\r\n this.updateDateTime(allDayStatus, startObj, endObj);\r\n }\r\n startObj.dataBind();\r\n endObj.dataBind();\r\n if (!isNullOrUndefined(this.recurrenceEditor)) {\r\n this.recurrenceEditor.updateRuleUntilDate(startObj.value);\r\n }\r\n };\r\n EventWindow.prototype.updateDateTime = function (allDayStatus, startObj, endObj) {\r\n var startDate;\r\n var endDate;\r\n if (allDayStatus) {\r\n startDate = util.resetTime(new Date(this.eventWindowTime.startTime.getTime()));\r\n if (this.parent.activeCellsData.isAllDay) {\r\n var temp = util.addDays(new Date(this.eventWindowTime.endTime.getTime()), -1).getTime();\r\n endDate = (+this.eventWindowTime.startTime > temp) ? this.eventWindowTime.endTime : new Date(temp);\r\n }\r\n else {\r\n endDate = util.resetTime(new Date(this.eventWindowTime.endTime.getTime()));\r\n }\r\n }\r\n else {\r\n var start = this.parent.activeCellsData.startTime;\r\n startDate = new Date(this.eventWindowTime.startTime.getTime());\r\n startDate.setHours(start.getHours(), start.getMinutes(), start.getSeconds());\r\n if (this.parent.activeCellsData.isAllDay) {\r\n var startHour = this.parent.getStartEndTime(this.parent.workHours.start);\r\n startDate.setHours(startHour.getHours(), startHour.getMinutes(), startHour.getSeconds());\r\n endDate = new Date(startDate.getTime());\r\n endDate.setMilliseconds(util.MS_PER_MINUTE * this.getSlotDuration());\r\n }\r\n else {\r\n endDate = new Date(startDate.getTime());\r\n endDate.setMilliseconds(this.parent.activeCellsData.endTime.getTime() - this.parent.activeCellsData.startTime.getTime());\r\n }\r\n }\r\n this.eventWindowTime = { startTime: new Date(startDate.getTime()), endTime: new Date(endDate.getTime()) };\r\n startObj.value = startDate;\r\n endObj.value = endDate;\r\n startObj.dataBind();\r\n endObj.dataBind();\r\n };\r\n EventWindow.prototype.getFormat = function (formatType) {\r\n var format;\r\n if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {\r\n format = getValue(formatType + '.short', getDefaultDateObject(this.parent.getCalendarMode()));\r\n }\r\n else {\r\n format = getValue(\"main.\" + this.parent.locale + \".dates.calendars.\" + this.parent.getCalendarMode() + \".\" + formatType + \".short\", cldrData);\r\n }\r\n return format;\r\n };\r\n EventWindow.prototype.onEventDetailsUpdate = function (eventObj) {\r\n if (!this.parent.eventSettings.allowEditing) {\r\n return;\r\n }\r\n if (!this.parent.isAdaptive) {\r\n removeClass([this.element.querySelector('.' + cls.DELETE_EVENT_CLASS)], cls.DISABLE_CLASS);\r\n }\r\n this.element.querySelector('.' + cls.EVENT_WINDOW_TITLE_TEXT_CLASS).innerHTML = this.l10n.getConstant('editEvent');\r\n this.element.querySelector('.' + cls.FORM_CLASS).setAttribute('data-id', eventObj[this.fields.id].toString());\r\n if (isNullOrUndefined(this.parent.editorTemplate)) {\r\n eventObj = extend({}, eventObj, null, true);\r\n var timezoneObj = this.getInstance(cls.TIME_ZONE_CLASS + '.' + EVENT_FIELD);\r\n var timezoneValue = void 0;\r\n if (eventObj[this.fields.startTimezone] || eventObj[this.fields.endTimezone]) {\r\n timezoneValue = true;\r\n this.parent.eventBase.timezoneConvert(eventObj);\r\n }\r\n else {\r\n timezoneValue = false;\r\n }\r\n eventObj.Timezone = timezoneValue;\r\n timezoneObj.checked = timezoneValue;\r\n timezoneObj.dataBind();\r\n }\r\n this.showDetails(eventObj);\r\n if (eventObj[this.fields.recurrenceRule] && this.recurrenceEditor) {\r\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\r\n }\r\n else if (!this.parent.isAdaptive && this.recurrenceEditor) {\r\n this.recurrenceEditor.setProperties({ startDate: eventObj[this.fields.startTime] });\r\n this.recurrenceEditor.setRecurrenceRule('');\r\n }\r\n this.repeatStartDate = eventObj[this.fields.startTime];\r\n this.repeatRule = '';\r\n if (eventObj[this.fields.recurrenceRule]) {\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.setRecurrenceRule(eventObj[this.fields.recurrenceRule], eventObj[this.fields.startTime]);\r\n }\r\n this.repeatRule = eventObj[this.fields.recurrenceRule];\r\n }\r\n if (this.parent.isAdaptive && isNullOrUndefined(this.parent.editorTemplate)) {\r\n var element = this.element.querySelector('.' + REPEAT_CONTAINER_CLASS);\r\n if (eventObj[this.fields.recurrenceRule]) {\r\n removeClass([element], HIDE_STYLE_CLASS);\r\n this.repeatStatus.setProperties({ checked: true });\r\n }\r\n else {\r\n addClass([element], HIDE_STYLE_CLASS);\r\n this.repeatStatus.setProperties({ checked: false });\r\n }\r\n this.updateRepeatLabel(this.repeatRule);\r\n }\r\n var isDisable = (this.parent.readonly || eventObj[this.fields.isReadonly]);\r\n if (!this.parent.isAdaptive) {\r\n var saveButton = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_BUTTON_CLASS);\r\n var deleteButton = this.element.querySelector('.' + cls.DELETE_EVENT_CLASS);\r\n this.disableButton(saveButton, isDisable);\r\n this.disableButton(deleteButton, isDisable);\r\n }\r\n else {\r\n var saveIcon = this.element.querySelector('.' + cls.EVENT_WINDOW_SAVE_ICON_CLASS);\r\n if (saveIcon) {\r\n if (isDisable) {\r\n addClass([saveIcon], cls.ICON_DISABLE_CLASS);\r\n }\r\n else {\r\n removeClass([saveIcon], cls.ICON_DISABLE_CLASS);\r\n }\r\n }\r\n }\r\n this.dialogObject.show();\r\n };\r\n EventWindow.prototype.disableButton = function (element, value) {\r\n if (element) {\r\n element.ej2_instances[0].disabled = value;\r\n }\r\n };\r\n EventWindow.prototype.renderRecurrenceEditor = function () {\r\n return new RecurrenceEditor({\r\n calendarMode: this.parent.calendarMode,\r\n cssClass: this.parent.cssClass,\r\n dateFormat: this.parent.dateFormat,\r\n enableRtl: this.parent.enableRtl,\r\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\r\n locale: this.parent.locale\r\n });\r\n };\r\n EventWindow.prototype.updateMinMaxDateToEditor = function () {\r\n var startDate = this.element.querySelector('.e-start');\r\n var endDate = this.element.querySelector('.e-end');\r\n if (startDate && endDate) {\r\n var startObj = startDate.ej2_instances[0];\r\n var endObj = endDate.ej2_instances[0];\r\n startObj.min = this.parent.minDate;\r\n startObj.max = this.parent.maxDate;\r\n endObj.min = this.parent.minDate;\r\n endObj.max = this.parent.maxDate;\r\n startObj.dataBind();\r\n endObj.dataBind();\r\n }\r\n if (this.recurrenceEditor) {\r\n var untilDate = this.recurrenceEditor.element.querySelector('.e-until-date');\r\n if (untilDate) {\r\n var untilObj = untilDate.ej2_instances[0];\r\n untilObj.min = this.parent.minDate;\r\n untilObj.max = this.parent.maxDate;\r\n untilObj.dataBind();\r\n }\r\n }\r\n };\r\n EventWindow.prototype.updateRepeatLabel = function (repeatRule) {\r\n if (this.parent.isAdaptive && !this.repeatDialogObject) {\r\n this.renderRepeatDialog();\r\n }\r\n var data = repeatRule ?\r\n (this.l10n.getConstant('repeats') + ' ' + this.recurrenceEditor.getRuleSummary(repeatRule)) : this.l10n.getConstant('repeat');\r\n this.repeatStatus.setProperties({ label: data });\r\n };\r\n EventWindow.prototype.dialogClose = function (event) {\r\n if (this.isEnterKey) {\r\n this.isEnterKey = false;\r\n return;\r\n }\r\n this.dialogEvent = event;\r\n this.isCrudAction = false;\r\n this.parent.activeEventData = { event: undefined, element: undefined };\r\n this.parent.currentAction = null;\r\n this.dialogObject.hide();\r\n };\r\n EventWindow.prototype.resetForm = function () {\r\n this.fieldValidator.destroyToolTip();\r\n this.resetFormFields();\r\n if (!this.parent.isAdaptive && this.recurrenceEditor && !this.recurrenceEditor.isDestroyed) {\r\n this.recurrenceEditor.resetFields();\r\n }\r\n };\r\n EventWindow.prototype.timezoneChangeStyle = function (value) {\r\n var timezoneDiv = this.element.querySelector('.' + cls.EVENT_WINDOW_TIME_ZONE_DIV_CLASS);\r\n var localTimezoneName = this.parent.tzModule.getLocalTimezoneName();\r\n if (value) {\r\n addClass([timezoneDiv], cls.ENABLE_CLASS);\r\n var startTimezoneObj = this.getInstance(cls.EVENT_WINDOW_START_TZ_CLASS);\r\n var endTimezoneObj = this.getInstance(cls.EVENT_WINDOW_END_TZ_CLASS);\r\n var timezone = startTimezoneObj.dataSource;\r\n if (!startTimezoneObj.value || !this.parent.timezone) {\r\n var found = timezone.some(function (tz) { return tz.Value === localTimezoneName; });\r\n if (!found) {\r\n timezone.push({ Value: localTimezoneName, Text: localTimezoneName });\r\n startTimezoneObj.dataSource = timezone;\r\n endTimezoneObj.dataSource = timezone;\r\n startTimezoneObj.dataBind();\r\n endTimezoneObj.dataBind();\r\n }\r\n }\r\n startTimezoneObj.value = startTimezoneObj.value || this.parent.timezone || localTimezoneName;\r\n endTimezoneObj.value = endTimezoneObj.value || this.parent.timezone || localTimezoneName;\r\n startTimezoneObj.dataBind();\r\n endTimezoneObj.dataBind();\r\n }\r\n else {\r\n removeClass([timezoneDiv], cls.ENABLE_CLASS);\r\n }\r\n };\r\n EventWindow.prototype.resetFormFields = function () {\r\n var formElement = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\r\n for (var _i = 0, formElement_1 = formElement; _i < formElement_1.length; _i++) {\r\n var currentElement = formElement_1[_i];\r\n var columnName = currentElement.name || this.getColumnName(currentElement);\r\n if (!isNullOrUndefined(columnName) && columnName !== '') {\r\n this.setDefaultValueToElement(currentElement);\r\n }\r\n }\r\n };\r\n EventWindow.prototype.eventSave = function (event, alert) {\r\n if (this.isEnterKey) {\r\n this.isEnterKey = false;\r\n return;\r\n }\r\n var formElement = this.element.querySelector('.' + cls.FORM_CLASS);\r\n if (formElement && formElement.classList.contains('e-formvalidator') &&\r\n !formElement.ej2_instances[0].validate()) {\r\n return;\r\n }\r\n var dataCollection = this.getEventDataFromEditor();\r\n if (this.processEventValidation(dataCollection.tempData, alert)) {\r\n return;\r\n }\r\n this.eventCrudData = dataCollection.eventData;\r\n this.dialogEvent = event;\r\n this.isCrudAction = true;\r\n this.dialogObject.hide();\r\n };\r\n EventWindow.prototype.getEventDataFromEditor = function () {\r\n var eventObj = extend({}, this.getObjectFromFormData(cls.EVENT_WINDOW_DIALOG_CLASS));\r\n if (!eventObj.Timezone) {\r\n eventObj[this.fields.startTimezone] = null;\r\n eventObj[this.fields.endTimezone] = null;\r\n }\r\n delete eventObj.Timezone;\r\n delete eventObj.Repeat;\r\n this.setDefaultValueToObject(eventObj);\r\n eventObj[this.fields.recurrenceRule] = this.recurrenceEditor ? this.recurrenceEditor.getRecurrenceRule() || null : undefined;\r\n var tempObj = extend({}, eventObj, null, true);\r\n if (eventObj[this.fields.isAllDay]) {\r\n eventObj[this.fields.startTime] = (isNullOrUndefined(eventObj[this.fields.startTime])) ? null\r\n : util.resetTime(new Date(eventObj[this.fields.startTime].getTime()));\r\n eventObj[this.fields.endTime] = (isNullOrUndefined(eventObj[this.fields.endTime])) ? null\r\n : util.addDays(util.resetTime(new Date(eventObj[this.fields.endTime].getTime())), 1);\r\n }\r\n return { eventData: eventObj, tempData: tempObj };\r\n };\r\n EventWindow.prototype.processEventValidation = function (eventObj, alert) {\r\n var alertType;\r\n if (isNullOrUndefined(this.parent.editorTemplate)) {\r\n if (!eventObj[this.fields.startTime] || !eventObj[this.fields.endTime]) {\r\n this.parent.quickPopup.openValidationError('invalidDateError');\r\n return true;\r\n }\r\n if (eventObj[this.fields.startTime] > eventObj[this.fields.endTime]) {\r\n this.parent.quickPopup.openValidationError('startEndError');\r\n return true;\r\n }\r\n }\r\n if (this.recurrenceEditor && this.recurrenceEditor.value && this.recurrenceEditor.value !== '') {\r\n alertType = this.recurrenceValidation(eventObj[this.fields.startTime], eventObj[this.fields.endTime], alert);\r\n var isShowAlert = true;\r\n if (alertType === 'seriesChangeAlert' && this.parent.uiStateValues.isIgnoreOccurrence) {\r\n isShowAlert = false;\r\n }\r\n if (!isNullOrUndefined(alertType) && isShowAlert\r\n && ((!this.parent.enableRecurrenceValidation && alertType === 'wrongPattern') || this.parent.enableRecurrenceValidation)) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert(alertType);\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n EventWindow.prototype.processCrudActions = function (eventObj) {\r\n var _this = this;\r\n this.parent.uiStateValues.isBlock = false;\r\n var resourceData = this.getResourceData(eventObj);\r\n var isResourceEventExpand = (this.parent.activeViewOptions.group.resources.length > 0 ||\r\n this.parent.resourceCollection.length > 0) && !this.parent.activeViewOptions.group.allowGroupEdit\r\n && !isNullOrUndefined(resourceData);\r\n var eventId = this.getEventIdFromForm();\r\n if (!isNullOrUndefined(eventId)) {\r\n var eveId_1 = this.parent.eventBase.getEventIDType() === 'string' ? eventId : parseInt(eventId, 10);\r\n var editedData = this.parent.eventsData.filter(function (data) {\r\n return data[_this.fields.id] === eveId_1;\r\n })[0];\r\n if (isNullOrUndefined(editedData)) {\r\n editedData = this.parent.blockData.filter(function (data) {\r\n return data[_this.fields.id] === eveId_1;\r\n })[0];\r\n }\r\n eventObj = extend({}, editedData, eventObj);\r\n if (eventObj[this.fields.isReadonly]) {\r\n return false;\r\n }\r\n var currentAction = void 0;\r\n if (!isNullOrUndefined(editedData[this.fields.recurrenceRule])) {\r\n currentAction = this.parent.currentAction;\r\n eventObj.Guid = this.parent.activeEventData.event.Guid;\r\n if (this.parent.currentAction === 'EditOccurrence') {\r\n if (!eventObj[this.fields.recurrenceID]) {\r\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\r\n eventObj.Guid = this.parent.activeEventData.event.Guid;\r\n }\r\n else {\r\n eveId_1 = eventObj[this.fields.recurrenceID];\r\n currentAction = null;\r\n }\r\n if (this.parent.enableRecurrenceValidation && this.editOccurrenceValidation(eveId_1, eventObj)) {\r\n return true;\r\n }\r\n }\r\n if (this.parent.currentAction === 'EditSeries' || eventObj[this.fields.id] !== editedData[this.fields.id]) {\r\n eventObj[this.fields.recurrenceID] = editedData[this.fields.id];\r\n }\r\n else if (this.parent.currentAction === 'EditFollowingEvents') {\r\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\r\n eventObj[this.fields.followingID] = editedData[this.fields.id];\r\n }\r\n }\r\n if (isResourceEventExpand) {\r\n this.resourceSaveEvent(eventObj, 'Save', currentAction);\r\n }\r\n else {\r\n this.parent.saveEvent(eventObj, currentAction);\r\n }\r\n }\r\n else {\r\n this.parent.currentAction = 'Add';\r\n if (isResourceEventExpand) {\r\n this.resourceSaveEvent(eventObj, this.parent.currentAction);\r\n }\r\n else {\r\n eventObj[this.fields.id] = this.parent.eventBase.getEventMaxID();\r\n this.parent.addEvent(eventObj);\r\n }\r\n }\r\n return this.parent.uiStateValues.isBlock;\r\n };\r\n EventWindow.prototype.getResourceData = function (eventObj) {\r\n var resourceData = null;\r\n if (!isNullOrUndefined(this.parent.resourceBase) && !isNullOrUndefined(this.parent.resourceBase.resourceCollection)\r\n && this.parent.resourceBase.resourceCollection.length > 0) {\r\n var lastResourceData = this.parent.resourceBase.resourceCollection.slice(-1)[0];\r\n resourceData = eventObj[lastResourceData.field];\r\n }\r\n return resourceData;\r\n };\r\n EventWindow.prototype.getObjectFromFormData = function (className) {\r\n var formElement = this.getFormElements(className);\r\n var eventObj = {};\r\n for (var _i = 0, formElement_2 = formElement; _i < formElement_2.length; _i++) {\r\n var currentElement = formElement_2[_i];\r\n var columnName = currentElement.name || this.getColumnName(currentElement);\r\n if (!isNullOrUndefined(columnName) && columnName !== '') {\r\n eventObj[columnName] = this.getValueFromElement(currentElement);\r\n }\r\n }\r\n return eventObj;\r\n };\r\n EventWindow.prototype.setDefaultValueToObject = function (eventObj) {\r\n if (!isNullOrUndefined(eventObj[this.fields.subject])) {\r\n eventObj[this.fields.subject] = eventObj[this.fields.subject] || this.parent.eventSettings.fields.subject.default\r\n || this.l10n.getConstant('addTitle');\r\n }\r\n if (!isNullOrUndefined(eventObj[this.fields.location])) {\r\n eventObj[this.fields.location] = eventObj[this.fields.location] || this.parent.eventSettings.fields.location.default;\r\n }\r\n if (!isNullOrUndefined(eventObj[this.fields.description])) {\r\n eventObj[this.fields.description] = eventObj[this.fields.description] || this.parent.eventSettings.fields.description.default;\r\n }\r\n };\r\n EventWindow.prototype.recurrenceValidation = function (startDate, endDate, alert) {\r\n var alertMessage;\r\n var recEditor = this.recurrenceEditor;\r\n var interval = this.getInstance('e-repeat-interval.e-numerictextbox').value;\r\n if (alert !== this.l10n.getConstant('ok')) {\r\n var activeEvent = this.parent.activeEventData.event;\r\n var excludedEvents = [];\r\n if ((this.parent.currentAction === 'EditSeries' || this.parent.currentAction === 'EditFollowingEvents')\r\n && !isNullOrUndefined(activeEvent)) {\r\n var eventStartTime = activeEvent[this.parent.eventFields.startTime];\r\n var seriesEvents = this.parent.eventBase.getSeriesEvents(this.eventData, eventStartTime);\r\n if (seriesEvents.length > 0) {\r\n excludedEvents = this.parent.eventBase.getEditedOccurrences(seriesEvents, eventStartTime);\r\n }\r\n else {\r\n var event_2 = this.parent.eventBase.getEventById(activeEvent[this.parent.eventFields.id]);\r\n excludedEvents = this.parent.eventBase.getEditedOccurrences([event_2], eventStartTime);\r\n }\r\n if (this.parent.currentAction === 'EditSeries'\r\n && !isNullOrUndefined(this.eventData[this.parent.eventFields.recurrenceException])) {\r\n excludedEvents.push(this.eventData);\r\n }\r\n }\r\n if (excludedEvents.length > 0) {\r\n alertMessage = 'seriesChangeAlert';\r\n }\r\n if (this.getInstance('e-end-on-left .e-ddl .e-dropdownlist').value === 'until' &&\r\n this.getInstance('e-end-on-date .e-datepicker').value < startDate) {\r\n alertMessage = 'wrongPattern';\r\n }\r\n if (isNullOrUndefined(alertMessage)) {\r\n var types = recEditor.value.split(';')[1].split('=')[1].split(',');\r\n var obj = { 'SU': 0, 'MO': 1, 'TU': 2, 'WE': 3, 'TH': 4, 'FR': 5, 'SA': 6 };\r\n var temp = [];\r\n var tempDiff = [];\r\n var tempValue = void 0;\r\n switch (recEditor.value.split(';')[0].split('=')[1]) {\r\n case 'DAILY':\r\n if ((((endDate.getTime() - startDate.getTime()) / (1000 * 3600)) > (interval * 24))) {\r\n alertMessage = 'createError';\r\n }\r\n break;\r\n case 'WEEKLY':\r\n types = recEditor.value.split(';')[1].split('=')[1].split(',');\r\n for (var index = 0; index < types.length * (interval + 1); index++) {\r\n temp[index] = (types.length > index) ? obj[types[index]] : temp[index - types.length] + (7 * interval);\r\n }\r\n tempValue = temp.sort(function (a, b) { return a - b; });\r\n for (var index = 1; index < tempValue.length; index++) {\r\n tempDiff.push(tempValue[index] - tempValue[index - 1]);\r\n }\r\n if ((((endDate.getTime() - startDate.getTime()) / (1000 * 3600)) >= Math.min.apply(Math, tempDiff) * 24)\r\n || isNullOrUndefined(interval)) {\r\n alertMessage = 'createError';\r\n }\r\n break;\r\n case 'MONTHLY':\r\n if (endDate.getTime() >= new Date(+startDate).setMonth(startDate.getMonth() + interval)) {\r\n alertMessage = 'createError';\r\n }\r\n break;\r\n case 'YEARLY':\r\n if (endDate.getTime() >= new Date(+startDate).setFullYear(startDate.getFullYear() + interval)) {\r\n alertMessage = 'createError';\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n else {\r\n if (endDate.getTime() >= new Date(+startDate).setMonth(startDate.getMonth() + interval)) {\r\n alertMessage = 'createError';\r\n }\r\n if (isNullOrUndefined(alertMessage)) {\r\n this.parent.quickPopup.quickDialog.hide();\r\n }\r\n }\r\n if (isNullOrUndefined(interval)) {\r\n alertMessage = 'createError';\r\n }\r\n return alertMessage;\r\n };\r\n EventWindow.prototype.getRecurrenceIndex = function (recColl, event) {\r\n var recIndex;\r\n for (var index = 0; index < recColl.length; index++) {\r\n if (event[this.fields.startTime].valueOf() === recColl[index][this.fields.startTime].valueOf()) {\r\n recIndex = index;\r\n break;\r\n }\r\n }\r\n return recIndex;\r\n };\r\n EventWindow.prototype.trimAllDay = function (data) {\r\n if (data[this.fields.isAllDay]) {\r\n var temp = util.addDays(new Date(+data[this.fields.endTime]), -1).getTime();\r\n data[this.fields.endTime] = (+data[this.fields.startTime] > temp) ? data[this.fields.endTime] : new Date(temp);\r\n }\r\n };\r\n EventWindow.prototype.editOccurrenceValidation = function (eventId, currentData, editData) {\r\n var _this = this;\r\n if (editData === void 0) {\r\n editData = this.eventData;\r\n }\r\n var recurColl = this.parent.getOccurrencesByID(eventId);\r\n var excludedDatas = this.parent.eventsData.filter(function (data) {\r\n return data[_this.fields.recurrenceID] === eventId;\r\n });\r\n excludedDatas.map(function (data) { return recurColl.push(extend({}, data)); });\r\n currentData = extend({}, currentData);\r\n this.trimAllDay(currentData);\r\n for (var _i = 0, recurColl_1 = recurColl; _i < recurColl_1.length; _i++) {\r\n var data = recurColl_1[_i];\r\n this.trimAllDay(data);\r\n }\r\n this.parent.eventBase.sortByTime(recurColl);\r\n var index = this.getRecurrenceIndex(recurColl, editData);\r\n if (isNullOrUndefined(index)) {\r\n return false;\r\n }\r\n if (index === 0) {\r\n if (!isNullOrUndefined(recurColl[index + 1])) {\r\n if (!(util.resetTime(new Date(+recurColl[index + 1][this.fields.startTime])).getTime() >\r\n util.resetTime(new Date(+currentData[this.fields.endTime])).getTime()) &&\r\n (util.resetTime(new Date(+recurColl[recurColl.length - 1][this.fields.endTime])).getTime() >=\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime())) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\r\n return true;\r\n }\r\n else if (util.resetTime(new Date(+recurColl[recurColl.length - 1][this.fields.endTime])).getTime() <\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime()) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n else {\r\n if (index === recurColl.length - 1) {\r\n if (!(util.resetTime(new Date(+recurColl[index - 1][this.fields.endTime])).getTime() <\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime()) &&\r\n (util.resetTime(new Date(+recurColl[(recurColl.length - 1) - index][this.fields.startTime])).getTime() <=\r\n util.resetTime(new Date(+currentData[this.fields.endTime])).getTime())) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\r\n return true;\r\n }\r\n else if (util.resetTime(new Date(+recurColl[(recurColl.length - 1) - index][this.fields.endTime])).getTime() >\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime()) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\r\n return true;\r\n }\r\n }\r\n else if (!(((util.resetTime(new Date(+recurColl[index - 1][this.fields.endTime])).getTime() <\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime()) ||\r\n (util.resetTime(new Date(+recurColl[0][this.fields.startTime])).getTime() >\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime())) &&\r\n ((util.resetTime(new Date(+recurColl[index + 1][this.fields.startTime])).getTime() >\r\n util.resetTime(new Date(+currentData[this.fields.endTime])).getTime()) ||\r\n (util.resetTime(new Date(+recurColl[recurColl.length - 1][this.fields.endTime])).getTime() <\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime())))) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('sameDayAlert');\r\n return true;\r\n }\r\n else if ((util.resetTime(new Date(+recurColl[index + 1][this.fields.endTime])).getTime() <\r\n util.resetTime(new Date(+currentData[this.fields.startTime])).getTime()) ||\r\n (util.resetTime(new Date(+recurColl[index - 1][this.fields.startTime])).getTime() >\r\n util.resetTime(new Date(+currentData[this.fields.endTime])).getTime())) {\r\n this.parent.quickPopup.openRecurrenceValidationAlert('occurrenceAlert');\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n EventWindow.prototype.resourceSaveEvent = function (eventObj, action, currentAction) {\r\n var _this = this;\r\n var lastResourceData = this.parent.resourceBase.resourceCollection.slice(-1)[0];\r\n var resourceData = eventObj[lastResourceData.field];\r\n resourceData = (resourceData instanceof Array) ? resourceData : [resourceData];\r\n var lastLevel = this.parent.resourceBase.lastResourceLevel;\r\n var eventList = [];\r\n var _loop_2 = function (i) {\r\n var events = extend({}, eventObj, null, true);\r\n events[this_2.fields.id] = this_2.parent.eventBase.getEventMaxID();\r\n var temp = [];\r\n var addValues = function () {\r\n if (action === 'Save' && i === resourceData.length - 1) {\r\n if (temp.length > 0) {\r\n temp[0][_this.fields.id] = eventObj[_this.fields.id];\r\n for (var k = 1; k < temp.length; k++) {\r\n temp[k][_this.fields.id] = _this.parent.eventBase.getEventMaxID(i);\r\n eventList.push(temp[k]);\r\n _this.parent.saveEvent(temp[0], currentAction);\r\n }\r\n }\r\n else {\r\n events[_this.fields.id] = eventObj[_this.fields.id];\r\n _this.parent.saveEvent(events, currentAction);\r\n }\r\n }\r\n else {\r\n if (temp.length > 0) {\r\n for (var j = 0; j < temp.length; j++) {\r\n temp[j][_this.fields.id] = _this.parent.eventBase.getEventMaxID(j);\r\n eventList.push(temp[j]);\r\n }\r\n }\r\n else {\r\n events[_this.fields.id] = _this.parent.eventBase.getEventMaxID(i);\r\n eventList.push(events);\r\n }\r\n }\r\n };\r\n if (this_2.parent.activeViewOptions.group.byGroupID && (!isNullOrUndefined(lastLevel))) {\r\n var lastResource = lastResourceData.dataSource;\r\n var resCol = this_2.parent.resourceCollection;\r\n var index = void 0;\r\n if (resCol.length > 1) {\r\n index = util.findIndexInData(lastResource, lastResourceData.idField, resourceData[i], events, resCol);\r\n }\r\n else {\r\n index = util.findIndexInData(lastResource, lastResourceData.idField, resourceData[i]);\r\n }\r\n if (index < 0) {\r\n return { value: void 0 };\r\n }\r\n var groupId_1 = lastResource[index][lastResourceData.groupIDField];\r\n var filter = lastLevel.filter(function (obj) { return obj.resourceData[lastResourceData.idField] === resourceData[i]; }).\r\n filter(function (obj) { return obj.resourceData[lastResourceData.groupIDField] === groupId_1; })[0];\r\n var groupOrder = filter.groupOrder;\r\n for (var index_1 = 0; index_1 < this_2.parent.resourceBase.resourceCollection.length; index_1++) {\r\n var field = this_2.parent.resourceBase.resourceCollection[index_1].field;\r\n events[field] = (groupOrder[index_1] instanceof Array) ? groupOrder[index_1][0] : groupOrder[index_1];\r\n }\r\n addValues();\r\n }\r\n else {\r\n for (var index = 0; index < this_2.parent.resourceBase.resourceCollection.length - 1; index++) {\r\n var field = this_2.parent.resourceBase.resourceCollection[index].field;\r\n if (events[field] instanceof Array && events[field].length > 1) {\r\n for (var k = 0; k < events[field].length; k++) {\r\n var event_3 = extend({}, events, null, true);\r\n event_3[field] = eventObj[field][k];\r\n event_3[lastResourceData.field] = resourceData[i];\r\n temp.push(event_3);\r\n }\r\n }\r\n else {\r\n if (temp.length === 0) {\r\n events[field] = (eventObj[field] instanceof Array) ?\r\n eventObj[field][0] : eventObj[field];\r\n events[lastResourceData.field] = resourceData[i];\r\n }\r\n else {\r\n for (var l = 0; l < temp.length; l++) {\r\n temp[l][field] = (eventObj[field] instanceof Array) ?\r\n eventObj[field][0] : eventObj[field];\r\n }\r\n }\r\n }\r\n }\r\n events[lastResourceData.field] = resourceData[i];\r\n addValues();\r\n }\r\n };\r\n var this_2 = this;\r\n for (var i = 0; i < resourceData.length; i++) {\r\n var state_1 = _loop_2(i);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n if (eventList.length > 0) {\r\n for (var _i = 0, eventList_1 = eventList; _i < eventList_1.length; _i++) {\r\n var event_4 = eventList_1[_i];\r\n event_4[this.fields.recurrenceException] = null;\r\n event_4[this.fields.recurrenceID] = null;\r\n }\r\n this.parent.addEvent(eventList);\r\n }\r\n };\r\n EventWindow.prototype.getEventIdFromForm = function () {\r\n return this.element.querySelector('.' + cls.FORM_CLASS).getAttribute('data-id');\r\n };\r\n EventWindow.prototype.getFormElements = function (className) {\r\n var elements = [];\r\n if (className === cls.EVENT_WINDOW_DIALOG_CLASS) {\r\n elements = [].slice.call(this.element.querySelectorAll('.' + EVENT_FIELD));\r\n }\r\n else {\r\n elements = [].slice.call(this.parent.element.querySelectorAll('.' + className + ' .' + EVENT_FIELD));\r\n }\r\n return elements;\r\n };\r\n EventWindow.prototype.getValueFromElement = function (element) {\r\n var value;\r\n if (element.classList.contains('e-datepicker')) {\r\n value = element.ej2_instances[0].value;\r\n }\r\n else if (element.classList.contains('e-datetimepicker')) {\r\n value = element.ej2_instances[0].value;\r\n }\r\n else if (element.classList.contains('e-dropdownlist')) {\r\n value = element.ej2_instances[0].value;\r\n }\r\n else if (element.classList.contains('e-multiselect')) {\r\n value = element.ej2_instances[0].value;\r\n }\r\n else if (element.classList.contains('e-checkbox')) {\r\n value = element.ej2_instances[0].checked;\r\n }\r\n else {\r\n if (element.type === 'checkbox') {\r\n value = element.checked;\r\n }\r\n else {\r\n value = SanitizeHtmlHelper.sanitize(element.value);\r\n }\r\n }\r\n return value;\r\n };\r\n EventWindow.prototype.setValueToElement = function (element, value) {\r\n if (element.classList.contains('e-datepicker')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = value;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-datetimepicker')) {\r\n var instance = element.ej2_instances[0];\r\n if (instance.element.classList.contains(cls.EVENT_WINDOW_START_CLASS)) {\r\n this.eventWindowTime.startTime = new Date('' + value);\r\n }\r\n else {\r\n this.eventWindowTime.endTime = new Date('' + value);\r\n }\r\n instance.value = value;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-dropdownlist')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = value;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-multiselect')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = [];\r\n instance.value = ((value instanceof Array) ? value : [value]);\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-checkbox')) {\r\n var instance = element.ej2_instances[0];\r\n instance.checked = value;\r\n instance.dataBind();\r\n }\r\n else {\r\n if (element.type !== 'checkbox') {\r\n element.value = value || '';\r\n }\r\n else {\r\n element.checked = value;\r\n }\r\n }\r\n };\r\n EventWindow.prototype.setDefaultValueToElement = function (element) {\r\n if (element.classList.contains('e-datepicker')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = this.parent.getCurrentTime();\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-datetimepicker')) {\r\n var instance = element.ej2_instances[0];\r\n var dateValue = this.parent.getCurrentTime();\r\n this.eventWindowTime = { startTime: dateValue, endTime: dateValue };\r\n instance.value = dateValue;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-dropdownlist')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = null;\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-multiselect')) {\r\n var instance = element.ej2_instances[0];\r\n instance.value = [];\r\n instance.dataBind();\r\n }\r\n else if (element.classList.contains('e-checkbox')) {\r\n var instance = element.ej2_instances[0];\r\n instance.checked = false;\r\n instance.dataBind();\r\n }\r\n else {\r\n if (element.type === 'checkbox') {\r\n element.checked = false;\r\n }\r\n else {\r\n element.value = '';\r\n }\r\n }\r\n };\r\n EventWindow.prototype.getInstance = function (className) {\r\n var element = this.element.querySelector('.' + className);\r\n return element ? element.ej2_instances[0] : null;\r\n };\r\n EventWindow.prototype.eventDelete = function (event) {\r\n if (this.isEnterKey) {\r\n this.isEnterKey = false;\r\n return;\r\n }\r\n switch (this.parent.currentAction) {\r\n case 'EditOccurrence':\r\n if (!isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])) {\r\n this.parent.currentAction = 'DeleteOccurrence';\r\n }\r\n else {\r\n this.parent.currentAction = 'Delete';\r\n }\r\n break;\r\n case 'EditSeries':\r\n this.parent.currentAction = 'DeleteSeries';\r\n break;\r\n case 'Save':\r\n this.parent.currentAction = 'Delete';\r\n break;\r\n case 'EditFollowingEvents':\r\n if (!isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])) {\r\n this.parent.currentAction = 'DeleteFollowingEvents';\r\n }\r\n break;\r\n }\r\n this.dialogEvent = event;\r\n this.isCrudAction = false;\r\n this.dialogObject.hide();\r\n this.parent.quickPopup.openDeleteAlert();\r\n };\r\n EventWindow.prototype.getRecurrenceEditorInstance = function () {\r\n if (this.parent.isAdaptive && !this.repeatDialogObject) {\r\n this.renderRepeatDialog();\r\n }\r\n return this.recurrenceEditor;\r\n };\r\n EventWindow.prototype.destroyComponents = function () {\r\n var formElements = this.getFormElements(cls.EVENT_WINDOW_DIALOG_CLASS);\r\n for (var _i = 0, formElements_3 = formElements; _i < formElements_3.length; _i++) {\r\n var element = formElements_3[_i];\r\n var instance = void 0;\r\n if (element.classList.contains('e-datetimepicker')) {\r\n instance = element.ej2_instances;\r\n }\r\n else if (element.classList.contains('e-datepicker')) {\r\n instance = element.ej2_instances;\r\n }\r\n else if (element.classList.contains('e-checkbox')) {\r\n instance = element.ej2_instances;\r\n }\r\n else if (element.classList.contains('e-dropdownlist')) {\r\n instance = element.ej2_instances;\r\n }\r\n else if (element.classList.contains('e-multiselect')) {\r\n instance = element.ej2_instances;\r\n }\r\n if (instance && instance[0]) {\r\n instance[0].destroy();\r\n }\r\n }\r\n if (this.buttonObj) {\r\n this.buttonObj.destroy();\r\n }\r\n };\r\n EventWindow.prototype.destroy = function (isIgnore) {\r\n if (this.parent && !this.parent.isDestroyed) {\r\n this.parent.resetTemplates(['editorTemplate']);\r\n }\r\n this.destroyComponents();\r\n if (this.recurrenceEditor) {\r\n this.recurrenceEditor.destroy();\r\n this.recurrenceEditor = null;\r\n }\r\n if (this.fieldValidator) {\r\n this.fieldValidator.destroy();\r\n this.fieldValidator = null;\r\n }\r\n if (this.repeatDialogObject) {\r\n this.repeatDialogObject.destroy();\r\n this.repeatDialogObject = null;\r\n }\r\n if (this.dialogObject) {\r\n if (this.dialogObject.element) {\r\n EventHandler.remove(this.dialogObject.element, 'keydown', this.preventEventSave);\r\n }\r\n this.dialogObject.destroy();\r\n this.dialogObject = null;\r\n }\r\n if (this.element) {\r\n remove(this.element);\r\n this.element = null;\r\n }\r\n if (!isIgnore) {\r\n this.l10n = null;\r\n this.parent = null;\r\n this.fields = null;\r\n this.buttonObj = null;\r\n this.repeatStatus = null;\r\n this.eventWindowTime = null;\r\n }\r\n };\r\n return EventWindow;\r\n}());\r\nexport { EventWindow };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { createElement, isNullOrUndefined, remove } from '@syncfusion/ej2-base';\r\nimport { FormValidator } from '@syncfusion/ej2-inputs';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Appointment window field validation\r\n */\r\nvar FieldValidator = /** @class */ (function () {\r\n function FieldValidator() {\r\n }\r\n FieldValidator.prototype.renderFormValidator = function (form, rules, element, locale) {\r\n var _this = this;\r\n this.element = element;\r\n this.formObj = new FormValidator(form, {\r\n locale: locale,\r\n customPlacement: function (inputElement, error) {\r\n _this.errorPlacement(inputElement, error);\r\n },\r\n rules: rules,\r\n validationComplete: function (args) {\r\n _this.validationComplete(args);\r\n },\r\n focusout: function (args) {\r\n _this.focusOut(args);\r\n }\r\n });\r\n };\r\n FieldValidator.prototype.focusOut = function (args) {\r\n var target = args.relatedTarget;\r\n if (target && (target.classList.contains('e-dlg-closeicon-btn') || target.classList.contains('e-close')\r\n || target.classList.contains(cls.ALLDAY_CELLS_CLASS) || target.classList.contains(cls.HEADER_CELLS_CLASS)\r\n || target.classList.contains(cls.QUICK_POPUP_EVENT_DETAILS_CLASS) || target.classList.contains(cls.WORK_CELLS_CLASS)\r\n || target.classList.contains(cls.EVENT_WINDOW_CANCEL_BUTTON_CLASS))) {\r\n this.ignoreError = true;\r\n }\r\n else {\r\n this.ignoreError = false;\r\n }\r\n };\r\n FieldValidator.prototype.validationComplete = function (args) {\r\n var elem = this.element.querySelector('#' + args.inputName + '_Error');\r\n if (elem) {\r\n elem.style.display = (args.status === 'failure') ? '' : 'none';\r\n }\r\n };\r\n FieldValidator.prototype.errorPlacement = function (inputElement, error) {\r\n var id = error.getAttribute('for');\r\n var elem = this.element.querySelector('#' + id + '_Error');\r\n if (!elem && !this.ignoreError) {\r\n this.createTooltip(inputElement, error, id, '');\r\n }\r\n if (!isNullOrUndefined(elem)) {\r\n elem.querySelector('.e-error').innerHTML = error.innerHTML;\r\n }\r\n };\r\n FieldValidator.prototype.createTooltip = function (element, error, name, display) {\r\n var dlgContent;\r\n var client;\r\n var inputClient = element.getBoundingClientRect();\r\n if (this.element.classList.contains(cls.POPUP_WRAPPER_CLASS)) {\r\n dlgContent = this.element;\r\n client = this.element.getBoundingClientRect();\r\n }\r\n else {\r\n dlgContent = this.element.querySelector('.e-schedule-dialog .e-dlg-content');\r\n client = dlgContent.getBoundingClientRect();\r\n }\r\n var div = createElement('div', {\r\n className: 'e-tooltip-wrap e-popup ' + cls.ERROR_VALIDATION_CLASS,\r\n id: name + '_Error',\r\n styles: 'display:' + display + ';top:' +\r\n (inputClient.bottom - client.top + dlgContent.scrollTop + 9) + 'px;left:' +\r\n (inputClient.left - client.left + dlgContent.scrollLeft + inputClient.width / 2) + 'px;'\r\n });\r\n var content = createElement('div', { className: 'e-tip-content' });\r\n content.appendChild(error);\r\n var arrow = createElement('div', { className: 'e-arrow-tip e-tip-top' });\r\n arrow.appendChild(createElement('div', { className: 'e-arrow-tip-outer e-tip-top' }));\r\n arrow.appendChild(createElement('div', { className: 'e-arrow-tip-inner e-tip-top' }));\r\n div.appendChild(content);\r\n div.appendChild(arrow);\r\n dlgContent.appendChild(div);\r\n div.style.left = (parseInt(div.style.left, 10) - div.offsetWidth / 2) + 'px';\r\n };\r\n FieldValidator.prototype.destroyToolTip = function () {\r\n if (this.element) {\r\n var elements = [].slice.call(this.element.querySelectorAll('.' + cls.ERROR_VALIDATION_CLASS));\r\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\r\n var elem = elements_1[_i];\r\n remove(elem);\r\n }\r\n }\r\n if (this.formObj && this.formObj.element) {\r\n this.formObj.reset();\r\n }\r\n };\r\n FieldValidator.prototype.destroy = function () {\r\n if (this.formObj && this.formObj.element && !this.formObj.isDestroyed) {\r\n this.formObj.destroy();\r\n }\r\n this.formObj = null;\r\n this.element = null;\r\n };\r\n return FieldValidator;\r\n}());\r\nexport { FieldValidator };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { closest, EventHandler, isNullOrUndefined, formatUnit, append } from '@syncfusion/ej2-base';\r\nimport { addClass, removeClass, createElement, remove, extend } from '@syncfusion/ej2-base';\r\nimport { Dialog, Popup, isCollide } from '@syncfusion/ej2-popups';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { Input } from '@syncfusion/ej2-inputs';\r\nimport { FieldValidator } from './form-validator';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\nvar EVENT_FIELD = 'e-field';\r\n/**\r\n * Quick Popups interactions\r\n */\r\nvar QuickPopups = /** @class */ (function () {\r\n function QuickPopups(parent) {\r\n this.isMultipleEventSelect = false;\r\n this.isCrudAction = false;\r\n this.parent = parent;\r\n this.l10n = this.parent.localeObj;\r\n this.fieldValidator = new FieldValidator();\r\n this.render();\r\n this.addEventListener();\r\n }\r\n QuickPopups.prototype.render = function () {\r\n this.renderQuickPopup();\r\n this.renderMorePopup();\r\n this.renderQuickDialog();\r\n };\r\n QuickPopups.prototype.renderQuickPopup = function () {\r\n var quickPopupWrapper = createElement('div', { className: cls.POPUP_WRAPPER_CLASS + ' e-popup-close' });\r\n if (this.parent.isAdaptive) {\r\n document.body.appendChild(quickPopupWrapper);\r\n addClass([quickPopupWrapper], cls.DEVICE_CLASS);\r\n }\r\n else {\r\n this.parent.element.appendChild(quickPopupWrapper);\r\n }\r\n this.quickPopup = new Popup(quickPopupWrapper, {\r\n targetType: (this.parent.isAdaptive ? 'container' : 'relative'),\r\n enableRtl: this.parent.enableRtl,\r\n open: this.quickPopupOpen.bind(this),\r\n close: this.quickPopupClose.bind(this),\r\n hideAnimation: (this.parent.isAdaptive ? { name: 'ZoomOut' } : { name: 'FadeOut', duration: 150 }),\r\n showAnimation: (this.parent.isAdaptive ? { name: 'ZoomIn' } : { name: 'FadeIn', duration: 150 }),\r\n collision: (this.parent.isAdaptive ? { X: 'fit', Y: 'fit' } :\r\n (this.parent.enableRtl ? { X: 'flip', Y: 'fit' } : { X: 'none', Y: 'fit' })),\r\n position: (this.parent.isAdaptive || this.parent.enableRtl ? { X: 'left', Y: 'top' } : { X: 'right', Y: 'top' }),\r\n viewPortElement: (this.parent.isAdaptive ? document.body : this.parent.element),\r\n zIndex: (this.parent.isAdaptive ? 1004 : 3)\r\n });\r\n };\r\n QuickPopups.prototype.renderMorePopup = function () {\r\n var moreEventPopup = \"
      \" +\r\n (\"
      \") +\r\n (\"
      \") +\r\n (\"
      \");\r\n var moreEventWrapper = createElement('div', {\r\n className: cls.MORE_POPUP_WRAPPER_CLASS + ' e-popup-close',\r\n innerHTML: moreEventPopup\r\n });\r\n if (this.parent.isAdaptive) {\r\n document.body.appendChild(moreEventWrapper);\r\n addClass([moreEventWrapper], cls.DEVICE_CLASS);\r\n }\r\n else {\r\n this.parent.element.appendChild(moreEventWrapper);\r\n }\r\n this.morePopup = new Popup(moreEventWrapper, {\r\n targetType: (this.parent.isAdaptive ? 'container' : 'relative'),\r\n enableRtl: this.parent.enableRtl,\r\n hideAnimation: { name: 'ZoomOut', duration: 300 },\r\n showAnimation: { name: 'ZoomIn', duration: 300 },\r\n open: this.morePopupOpen.bind(this),\r\n close: this.morePopupClose.bind(this),\r\n collision: (this.parent.isAdaptive ? { X: 'fit', Y: 'fit' } :\r\n (this.parent.enableRtl ? { X: 'flip', Y: 'fit' } : { X: 'flip', Y: 'flip' })),\r\n viewPortElement: (this.parent.isAdaptive ? document.body : this.parent.element),\r\n zIndex: (this.parent.isAdaptive ? 1002 : 2)\r\n });\r\n var closeButton = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CLOSE_CLASS);\r\n this.renderButton('e-round', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeButton, this.closeClick);\r\n EventHandler.add(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS), 'click', this.navigationClick, this);\r\n };\r\n QuickPopups.prototype.renderQuickDialog = function () {\r\n var buttonModel = [\r\n { buttonModel: { cssClass: 'e-quick-alertok e-flat', isPrimary: true }, click: this.dialogButtonClick.bind(this) },\r\n { buttonModel: { cssClass: 'e-quick-alertcancel e-flat', isPrimary: false }, click: this.dialogButtonClick.bind(this) },\r\n {\r\n buttonModel: { cssClass: 'e-quick-dialog-cancel e-disable e-flat', isPrimary: false },\r\n click: this.dialogButtonClick.bind(this)\r\n }\r\n ];\r\n if (this.parent.eventSettings.editFollowingEvents) {\r\n var followingSeriesButton = {\r\n buttonModel: { cssClass: 'e-quick-alertfollowing e-flat', isPrimary: false }, click: this.dialogButtonClick.bind(this)\r\n };\r\n buttonModel.splice(1, 0, followingSeriesButton);\r\n }\r\n this.quickDialog = new Dialog({\r\n animationSettings: { effect: 'Zoom' },\r\n buttons: buttonModel,\r\n cssClass: cls.QUICK_DIALOG_CLASS,\r\n closeOnEscape: true,\r\n enableRtl: this.parent.enableRtl,\r\n beforeClose: this.beforeQuickDialogClose.bind(this),\r\n isModal: true,\r\n position: { X: 'center', Y: 'center' },\r\n showCloseIcon: true,\r\n target: document.body,\r\n visible: false,\r\n width: 'auto'\r\n });\r\n var dialogElement = createElement('div', { id: this.parent.element.id + 'QuickDialog' });\r\n this.parent.element.appendChild(dialogElement);\r\n this.quickDialog.appendTo(dialogElement);\r\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n if (okButton) {\r\n okButton.setAttribute('aria-label', this.l10n.getConstant('occurrence'));\r\n okButton.setAttribute('aria-label', okButton.innerHTML);\r\n }\r\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n if (cancelButton) {\r\n cancelButton.setAttribute('aria-label', this.l10n.getConstant('series'));\r\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\r\n }\r\n if (this.quickDialog.element.querySelector('.e-dlg-closeicon-btn')) {\r\n this.quickDialog.element.querySelector('.e-dlg-closeicon-btn').setAttribute('title', this.l10n.getConstant('close'));\r\n }\r\n };\r\n // eslint-disable-next-line max-len\r\n QuickPopups.prototype.renderButton = function (className, iconName, isDisabled, element, clickEvent) {\r\n var buttonObj = new Button({\r\n cssClass: className,\r\n disabled: isDisabled,\r\n enableRtl: this.parent.enableRtl,\r\n iconCss: iconName\r\n });\r\n buttonObj.appendTo(element);\r\n EventHandler.add(element, 'click', clickEvent, this);\r\n removeClass([element], cls.ICON);\r\n };\r\n QuickPopups.prototype.quickDialogClass = function (action) {\r\n var classList = [\r\n cls.QUICK_DIALOG_OCCURRENCE_CLASS, cls.QUICK_DIALOG_SERIES_CLASS, cls.QUICK_DIALOG_DELETE_CLASS,\r\n cls.QUICK_DIALOG_CANCEL_CLASS, cls.QUICK_DIALOG_ALERT_BTN_CLASS, cls.DISABLE_CLASS\r\n ];\r\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n var followingEventButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_FOLLOWING);\r\n removeClass([okButton, cancelButton], classList);\r\n addClass([this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_CANCEL_CLASS)], cls.DISABLE_CLASS);\r\n if (this.parent.eventSettings.editFollowingEvents) {\r\n addClass([followingEventButton], cls.DISABLE_CLASS);\r\n removeClass([this.quickDialog.element], cls.FOLLOWING_EVENTS_DIALOG);\r\n }\r\n switch (action) {\r\n case 'Recurrence':\r\n addClass([okButton], cls.QUICK_DIALOG_OCCURRENCE_CLASS);\r\n addClass([cancelButton], cls.QUICK_DIALOG_SERIES_CLASS);\r\n if (this.parent.eventSettings.editFollowingEvents) {\r\n removeClass([followingEventButton], cls.DISABLE_CLASS);\r\n addClass([this.quickDialog.element], cls.FOLLOWING_EVENTS_DIALOG);\r\n addClass([followingEventButton], cls.QUICK_DIALOG_FOLLOWING_EVENTS_CLASS);\r\n }\r\n break;\r\n case 'Delete':\r\n addClass([okButton], cls.QUICK_DIALOG_DELETE_CLASS);\r\n addClass([cancelButton], cls.QUICK_DIALOG_CANCEL_CLASS);\r\n break;\r\n case 'Alert':\r\n addClass([okButton], [cls.QUICK_DIALOG_ALERT_OK, cls.QUICK_DIALOG_ALERT_BTN_CLASS]);\r\n addClass([cancelButton], [cls.QUICK_DIALOG_ALERT_CANCEL, cls.DISABLE_CLASS]);\r\n break;\r\n }\r\n };\r\n QuickPopups.prototype.applyFormValidation = function () {\r\n var form = this.quickPopup.element.querySelector('.' + cls.FORM_CLASS);\r\n var rules = {};\r\n rules[this.parent.eventSettings.fields.subject.name] = this.parent.eventSettings.fields.subject.validation;\r\n this.fieldValidator.renderFormValidator(form, rules, this.quickPopup.element, this.parent.locale);\r\n };\r\n QuickPopups.prototype.openRecurrenceAlert = function () {\r\n var editDeleteOnly = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n if (editDeleteOnly) {\r\n editDeleteOnly.innerHTML = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteEvent' : 'editEvent');\r\n editDeleteOnly.setAttribute('aria-label', editDeleteOnly.innerHTML);\r\n }\r\n var editFollowingEventsOnly = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_FOLLOWING);\r\n if (editFollowingEventsOnly) {\r\n editFollowingEventsOnly.innerHTML = this.l10n.getConstant('editFollowingEvent');\r\n editFollowingEventsOnly.setAttribute('aria-label', editFollowingEventsOnly.innerHTML);\r\n }\r\n var editDeleteSeries = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n if (editDeleteSeries) {\r\n editDeleteSeries.innerHTML = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteSeries' : 'editSeries');\r\n editDeleteSeries.setAttribute('aria-label', editDeleteSeries.innerHTML);\r\n }\r\n this.quickDialog.content = this.l10n.getConstant('editContent');\r\n this.quickDialog.header = this.l10n.getConstant(this.parent.currentAction === 'Delete' ? 'deleteTitle' : 'editTitle');\r\n this.quickDialogClass('Recurrence');\r\n var activeEvent = this.parent.activeEventData.event;\r\n if (this.parent.eventSettings.editFollowingEvents && this.parent.currentAction === 'EditOccurrence'\r\n && !isNullOrUndefined(activeEvent[this.parent.eventFields.recurrenceID]) && activeEvent[this.parent.eventFields.recurrenceID]\r\n !== activeEvent[this.parent.eventFields.id]) {\r\n var followingEventButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_FOLLOWING);\r\n addClass([followingEventButton], cls.DISABLE_CLASS);\r\n }\r\n this.showQuickDialog('RecurrenceAlert');\r\n };\r\n QuickPopups.prototype.openRecurrenceValidationAlert = function (type) {\r\n this.quickDialogClass('Alert');\r\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n okButton.innerHTML = this.l10n.getConstant('ok');\r\n okButton.setAttribute('aria-label', okButton.innerHTML);\r\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\r\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\r\n this.quickDialog.header = this.l10n.getConstant('alert');\r\n var dialogCancel;\r\n switch (type) {\r\n case 'wrongPattern':\r\n addClass([cancelButton], cls.DISABLE_CLASS);\r\n this.quickDialog.content = this.l10n.getConstant('wrongPattern');\r\n break;\r\n case 'createError':\r\n addClass([cancelButton], cls.DISABLE_CLASS);\r\n this.quickDialog.content = this.l10n.getConstant('createError');\r\n break;\r\n case 'sameDayAlert':\r\n addClass([cancelButton], cls.DISABLE_CLASS);\r\n this.quickDialog.content = this.l10n.getConstant('sameDayAlert');\r\n break;\r\n case 'seriesChangeAlert':\r\n dialogCancel = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_CANCEL_CLASS);\r\n removeClass([cancelButton, dialogCancel], cls.DISABLE_CLASS);\r\n this.quickDialog.content = this.l10n.getConstant('seriesChangeAlert');\r\n okButton.innerHTML = this.l10n.getConstant('yes');\r\n cancelButton.innerHTML = this.l10n.getConstant('no');\r\n dialogCancel.innerHTML = this.l10n.getConstant('cancel');\r\n break;\r\n case 'occurrenceAlert':\r\n addClass([cancelButton], cls.DISABLE_CLASS);\r\n this.quickDialog.content = this.l10n.getConstant('occurenceAlert');\r\n break;\r\n }\r\n if ((!this.parent.enableRecurrenceValidation && type === 'wrongPattern') || this.parent.enableRecurrenceValidation) {\r\n this.showQuickDialog('RecurrenceValidationAlert');\r\n }\r\n };\r\n QuickPopups.prototype.openDeleteAlert = function () {\r\n if (this.parent.activeViewOptions.readonly) {\r\n return;\r\n }\r\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n if (okButton) {\r\n okButton.innerHTML = this.l10n.getConstant('delete');\r\n okButton.setAttribute('aria-label', okButton.innerHTML);\r\n }\r\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n if (cancelButton) {\r\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\r\n cancelButton.setAttribute('aria-label', cancelButton.innerHTML);\r\n }\r\n this.quickDialog.content = (this.parent.activeEventData.event.length > 1) ?\r\n this.l10n.getConstant('deleteMultipleContent') : this.l10n.getConstant('deleteContent');\r\n this.quickDialog.header = (this.parent.activeEventData.event.length > 1) ?\r\n this.l10n.getConstant('deleteMultipleEvent') : this.l10n.getConstant('deleteEvent');\r\n this.quickDialogClass('Delete');\r\n this.showQuickDialog('DeleteAlert');\r\n };\r\n QuickPopups.prototype.openValidationError = function (type, eventData) {\r\n this.quickDialog.header = this.l10n.getConstant('alert');\r\n this.quickDialog.content = this.l10n.getConstant(type);\r\n var okButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_OK);\r\n if (okButton) {\r\n okButton.innerHTML = this.l10n.getConstant('ok');\r\n okButton.setAttribute('aria-label', okButton.innerHTML);\r\n }\r\n var cancelButton = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n if (cancelButton) {\r\n cancelButton.innerHTML = this.l10n.getConstant('cancel');\r\n okButton.setAttribute('aria-label', cancelButton.innerHTML);\r\n }\r\n this.quickDialogClass('Alert');\r\n this.showQuickDialog('ValidationAlert', eventData);\r\n };\r\n QuickPopups.prototype.showQuickDialog = function (popupType, eventData) {\r\n var _this = this;\r\n this.quickDialog.dataBind();\r\n var eventProp = {\r\n type: popupType, cancel: false, element: this.quickDialog.element,\r\n data: extend({}, (eventData || this.parent.activeEventData.event), null, true)\r\n };\r\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\r\n if (!popupArgs.cancel) {\r\n _this.quickDialog.show();\r\n }\r\n });\r\n };\r\n QuickPopups.prototype.createMoreEventList = function (eventCollection, groupOrder, groupIndex) {\r\n var _this = this;\r\n var fields = this.parent.eventFields;\r\n var moreEventContentEle = createElement('div', { className: cls.MORE_EVENT_CONTENT_CLASS });\r\n var moreEventWrapperEle = createElement('div', { className: cls.MORE_EVENT_WRAPPER_CLASS });\r\n if (eventCollection.length === 0) {\r\n moreEventWrapperEle = createElement('div', {\r\n className: cls.MORE_EVENT_CONTENT_CLASS,\r\n innerHTML: this.l10n.getConstant('emptyContainer')\r\n });\r\n }\r\n else {\r\n var _loop_1 = function (eventData) {\r\n var eventText = (eventData[fields.subject] || this_1.parent.eventSettings.fields.subject.default\r\n || this_1.parent.localeObj.getConstant('addTitle'));\r\n var appointmentElement = createElement('div', {\r\n className: cls.APPOINTMENT_CLASS,\r\n attrs: {\r\n 'data-id': '' + eventData[fields.id],\r\n 'data-guid': eventData.Guid, 'role': 'button', 'tabindex': '0',\r\n 'aria-readonly': this_1.parent.eventBase.getReadonlyAttribute(eventData),\r\n 'aria-selected': 'false', 'aria-grabbed': 'true', 'aria-label': this_1.parent.getAnnouncementString(eventData)\r\n }\r\n });\r\n var templateElement = void 0;\r\n if (!isNullOrUndefined(this_1.parent.activeViewOptions.eventTemplate)) {\r\n var tempId = this_1.parent.element.id + '_' + this_1.parent.activeViewOptions.eventTemplateName + 'eventTemplate';\r\n templateElement = this_1.parent.getAppointmentTemplate()(eventData, this_1.parent, 'eventTemplate', tempId, false);\r\n append(templateElement, appointmentElement);\r\n }\r\n else {\r\n appointmentElement.appendChild(createElement('div', { className: cls.SUBJECT_CLASS, innerHTML: eventText }));\r\n }\r\n if (!isNullOrUndefined(groupIndex)) {\r\n appointmentElement.setAttribute('data-group-index', groupIndex);\r\n }\r\n if (!isNullOrUndefined(eventData[fields.recurrenceRule])) {\r\n var iconClass = (eventData[fields.id] === eventData[fields.recurrenceID]) ?\r\n cls.EVENT_RECURRENCE_ICON_CLASS : cls.EVENT_RECURRENCE_EDIT_ICON_CLASS;\r\n appointmentElement.appendChild(createElement('div', { className: cls.ICON + ' ' + iconClass }));\r\n }\r\n var args = {\r\n data: extend({}, eventData, null, true),\r\n element: appointmentElement, cancel: false\r\n };\r\n this_1.parent.trigger(event.eventRendered, args, function (eventArgs) {\r\n if (!eventArgs.cancel) {\r\n moreEventWrapperEle.appendChild(appointmentElement);\r\n var isPreventCrud = _this.parent.isAdaptive || _this.parent.currentView === 'Year';\r\n _this.parent.eventBase.wireAppointmentEvents(appointmentElement, eventData, isPreventCrud);\r\n _this.parent.eventBase.applyResourceColor(appointmentElement, eventData, 'backgroundColor', groupOrder);\r\n }\r\n });\r\n };\r\n var this_1 = this;\r\n for (var _i = 0, eventCollection_1 = eventCollection; _i < eventCollection_1.length; _i++) {\r\n var eventData = eventCollection_1[_i];\r\n _loop_1(eventData);\r\n }\r\n }\r\n moreEventContentEle.appendChild(moreEventWrapperEle);\r\n return moreEventContentEle;\r\n };\r\n QuickPopups.prototype.tapHoldEventPopup = function (e) {\r\n var target = closest(e.target, '.' + cls.APPOINTMENT_CLASS);\r\n this.isMultipleEventSelect = false;\r\n this.parent.selectedElements = [];\r\n this.isMultipleEventSelect = true;\r\n this.parent.eventBase.getSelectedEventElements(target);\r\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\r\n var guid = target.getAttribute('data-guid');\r\n var eventObj = this.parent.eventBase.getEventByGuid(guid);\r\n if (isNullOrUndefined(eventObj)) {\r\n return;\r\n }\r\n var eventTitle = (eventObj[this.parent.eventFields.subject] || this.l10n.getConstant('noTitle'));\r\n var eventTemplate = \"
      \" +\r\n (\"\") +\r\n (\"
      \" + eventTitle + \"
      \") +\r\n (\"\") +\r\n (\"
      \");\r\n this.quickPopup.element.innerHTML = eventTemplate;\r\n var closeIcon = this.quickPopup.element.querySelector('.' + cls.CLOSE_CLASS);\r\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.closeClick);\r\n var readonly = this.parent.activeViewOptions.readonly || eventObj[this.parent.eventFields.isReadonly];\r\n var editAction = !this.parent.eventSettings.allowEditing || readonly;\r\n var deleteAction = !this.parent.eventSettings.allowDeleting || readonly;\r\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\r\n if (editIcon) {\r\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.EDIT_ICON_CLASS, editAction, editIcon, this.editClick);\r\n }\r\n var deleteIcon = this.quickPopup.element.querySelector('.' + cls.DELETE_CLASS);\r\n if (deleteIcon) {\r\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.DELETE_ICON_CLASS, deleteAction, deleteIcon, this.deleteClick);\r\n }\r\n this.beforeQuickPopupOpen(target);\r\n };\r\n QuickPopups.prototype.isCellBlocked = function (args) {\r\n var tempObj = {};\r\n tempObj[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\r\n tempObj[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\r\n tempObj[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n var targetCell = args.element instanceof Array ? args.element[0] : args.element;\r\n var groupIndex = parseInt(targetCell.getAttribute('data-group-index'), 10);\r\n this.parent.resourceBase.setResourceValues(tempObj, isNaN(groupIndex) ? null : groupIndex);\r\n }\r\n return this.parent.eventBase.isBlockRange(tempObj);\r\n };\r\n QuickPopups.prototype.cellClick = function (args) {\r\n var date = new Date(args.startTime.getTime());\r\n if (!this.parent.showQuickInfo || !this.parent.eventSettings.allowAdding ||\r\n this.parent.currentView === 'MonthAgenda' || this.isCellBlocked(args) ||\r\n !this.parent.isMinMaxDate(new Date(date.setHours(0, 0, 0, 0)))) {\r\n this.quickPopupHide();\r\n return;\r\n }\r\n var targetEle = args.event.target;\r\n if (this.parent.isAdaptive) {\r\n this.quickPopupHide();\r\n var newEventClone = this.parent.element.querySelector('.' + cls.NEW_EVENT_CLASS);\r\n if (isNullOrUndefined(newEventClone)) {\r\n newEventClone = createElement('div', {\r\n className: cls.NEW_EVENT_CLASS,\r\n innerHTML: \"
      + \" + this.l10n.getConstant('newEvent') + \"
      \"\r\n });\r\n }\r\n var targetCell = closest(targetEle, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS);\r\n if (targetCell) {\r\n targetCell.appendChild(newEventClone);\r\n }\r\n return;\r\n }\r\n var target = closest(targetEle, '.' + cls.WORK_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS + ',.' +\r\n cls.HEADER_CELLS_CLASS);\r\n if (isNullOrUndefined(target) || targetEle.classList.contains(cls.MORE_INDICATOR_CLASS)) {\r\n return;\r\n }\r\n var isSameTarget = this.quickPopup.relateTo === target;\r\n if (isSameTarget && this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\r\n var subjectElement_1 = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (subjectElement_1) {\r\n subjectElement_1.focus();\r\n }\r\n return;\r\n }\r\n var temp = {};\r\n temp[this.parent.eventFields.startTime] = this.parent.activeCellsData.startTime;\r\n temp[this.parent.eventFields.endTime] = this.parent.activeCellsData.endTime;\r\n temp[this.parent.eventFields.isAllDay] = this.parent.activeCellsData.isAllDay;\r\n var quickCellPopup = createElement('div', { className: cls.CELL_POPUP_CLASS });\r\n quickCellPopup.appendChild(this.getPopupHeader('Cell', temp));\r\n quickCellPopup.appendChild(this.getPopupContent('Cell', args, temp));\r\n quickCellPopup.appendChild(this.getPopupFooter('Cell', temp));\r\n var subjectElement = quickCellPopup.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (subjectElement) {\r\n Input.createInput({ element: subjectElement, properties: { placeholder: this.l10n.getConstant('addTitle') } });\r\n }\r\n if (!isNullOrUndefined(this.parent.eventSettings.fields.subject.default)) {\r\n subjectElement.value = this.parent.eventSettings.fields.subject.default;\r\n }\r\n var closeIcon = quickCellPopup.querySelector('.' + cls.CLOSE_CLASS);\r\n if (closeIcon) {\r\n this.renderButton('e-flat e-round e-small', cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.popupClose);\r\n }\r\n var moreButton = quickCellPopup.querySelector('.' + cls.QUICK_POPUP_EVENT_DETAILS_CLASS);\r\n if (moreButton) {\r\n this.renderButton('e-flat', '', false, moreButton, this.detailsClick);\r\n }\r\n var saveButton = quickCellPopup.querySelector('.' + cls.EVENT_CREATE_CLASS);\r\n if (saveButton) {\r\n this.renderButton('e-flat e-primary', '', this.parent.activeViewOptions.readonly, saveButton, this.saveClick);\r\n }\r\n this.quickPopup.content = quickCellPopup;\r\n this.quickPopup.dataBind();\r\n this.applyFormValidation();\r\n if (this.morePopup) {\r\n this.morePopup.hide();\r\n }\r\n this.quickPopup.relateTo = target;\r\n this.beforeQuickPopupOpen(target);\r\n };\r\n QuickPopups.prototype.isSameEventClick = function (events) {\r\n var isSameTarget = this.quickPopup.relateTo === closest(events.element, '.' + cls.APPOINTMENT_CLASS);\r\n if (isSameTarget && this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\r\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\r\n if (editIcon) {\r\n editIcon.focus();\r\n }\r\n if (!this.parent.isAdaptive) {\r\n var editButton = this.quickPopup.element.querySelector('.' + cls.EDIT_EVENT_CLASS);\r\n if (editButton) {\r\n editButton.focus();\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n QuickPopups.prototype.isQuickTemplate = function (type) {\r\n return this.parent.quickInfoTemplates.templateType === 'Both' || this.parent.quickInfoTemplates.templateType === type;\r\n };\r\n QuickPopups.prototype.eventClick = function (events) {\r\n if (this.parent.eventTooltip) {\r\n this.parent.eventTooltip.close();\r\n }\r\n if (!this.parent.showQuickInfo) {\r\n return;\r\n }\r\n if (this.parent.isAdaptive && this.isMultipleEventSelect) {\r\n this.updateTapHoldEventPopup(closest(events.element, '.' + cls.APPOINTMENT_CLASS));\r\n }\r\n else {\r\n var isSameTarget = this.isSameEventClick(events);\r\n if (isSameTarget) {\r\n return;\r\n }\r\n var eventData = events.event;\r\n var quickEventPopup = createElement('div', { className: cls.EVENT_POPUP_CLASS });\r\n quickEventPopup.appendChild(this.getPopupHeader('Event', eventData));\r\n quickEventPopup.appendChild(this.getPopupContent('Event', events, eventData));\r\n quickEventPopup.appendChild(this.getPopupFooter('Event', eventData));\r\n var readonly = this.parent.activeViewOptions.readonly || eventData[this.parent.eventFields.isReadonly];\r\n var editAction = !this.parent.eventSettings.allowEditing || readonly;\r\n var deleteAction = !this.parent.eventSettings.allowDeleting || readonly;\r\n var editIcon = quickEventPopup.querySelector('.' + cls.EDIT_CLASS);\r\n var buttonClass = 'e-flat e-round e-small';\r\n if (editIcon) {\r\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.EDIT_ICON_CLASS, editAction, editIcon, this.editClick);\r\n }\r\n var deleteIcon = quickEventPopup.querySelector('.' + cls.DELETE_CLASS);\r\n if (deleteIcon) {\r\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.DELETE_ICON_CLASS, deleteAction, deleteIcon, this.deleteClick);\r\n }\r\n var closeIcon = quickEventPopup.querySelector('.' + cls.CLOSE_CLASS);\r\n if (closeIcon) {\r\n this.renderButton(buttonClass, cls.ICON + ' ' + cls.CLOSE_ICON_CLASS, false, closeIcon, this.popupClose);\r\n }\r\n var editButton = quickEventPopup.querySelector('.' + cls.EDIT_EVENT_CLASS);\r\n if (editButton) {\r\n this.renderButton('e-flat e-primary', '', editAction, editButton, this.editClick);\r\n }\r\n var deleteButton = quickEventPopup.querySelector('.' + cls.DELETE_EVENT_CLASS);\r\n if (deleteButton) {\r\n this.renderButton('e-flat', '', deleteAction, deleteButton, this.deleteClick);\r\n }\r\n this.quickPopup.content = quickEventPopup;\r\n this.quickPopup.dataBind();\r\n if (this.morePopup && !closest(events.element, '.' + cls.MORE_EVENT_WRAPPER_CLASS)) {\r\n this.morePopup.hide();\r\n }\r\n this.quickPopup.relateTo = this.parent.isAdaptive ? document.body :\r\n closest(events.element, '.' + cls.APPOINTMENT_CLASS);\r\n this.beforeQuickPopupOpen(events.element);\r\n }\r\n };\r\n QuickPopups.prototype.getPopupHeader = function (headerType, headerData) {\r\n var headerTemplate = createElement('div', { className: cls.POPUP_HEADER_CLASS });\r\n if (this.isQuickTemplate(headerType) && this.parent.quickInfoTemplates.header) {\r\n var headerArgs = extend({}, headerData, { elementType: headerType.toLowerCase() }, true);\r\n var templateId = this.parent.element.id;\r\n var headerTemp = [].slice.call(this.parent.getQuickInfoTemplatesHeader()(headerArgs, this.parent, 'header', templateId + '_headerTemplate', false));\r\n append([].slice.call(headerTemp), headerTemplate);\r\n }\r\n else {\r\n var header = void 0;\r\n var args = void 0;\r\n switch (headerType) {\r\n case 'Cell':\r\n header = \"
      \");\r\n break;\r\n case 'Event':\r\n args = this.getFormattedString(headerData);\r\n header = \"
      \" +\r\n (\"\") +\r\n (\"\") +\r\n (\"
      \") +\r\n (\"
      \" + args.eventSubject + \"
      \");\r\n break;\r\n }\r\n var templateWrapper = createElement('div', { innerHTML: header });\r\n append([].slice.call(templateWrapper.childNodes), headerTemplate);\r\n }\r\n return headerTemplate;\r\n };\r\n QuickPopups.prototype.getPopupContent = function (type, args, data) {\r\n var contentTemplate = createElement('div', { className: cls.POPUP_CONTENT_CLASS });\r\n if (this.isQuickTemplate(type) && this.parent.quickInfoTemplates.content) {\r\n var contentArgs = extend({}, data, { elementType: type.toLowerCase() }, true);\r\n var templateId = this.parent.element.id;\r\n var contentTemp = [].slice.call(this.parent.getQuickInfoTemplatesContent()(contentArgs, this.parent, 'content', templateId + '_contentTemplate', false));\r\n append([].slice.call(contentTemp), contentTemplate);\r\n }\r\n else {\r\n var content = void 0;\r\n var cellDetails = void 0;\r\n var argsData = void 0;\r\n var resourceText = this.getResourceText(args, type.toLowerCase());\r\n switch (type) {\r\n case 'Cell':\r\n cellDetails = this.getFormattedString(data);\r\n content = \"
      \") +\r\n (\"
      \" + cellDetails.details + \"
      \") +\r\n ((this.parent.activeViewOptions.group.resources.length > 0 ? \"
      \" +\r\n (\"
      \" + resourceText + \"
      \") : '') + \"
      \");\r\n break;\r\n case 'Event':\r\n argsData = this.getFormattedString(data);\r\n content = '
      ' + argsData.details + '
      ';\r\n if (data[this.parent.eventFields.recurrenceRule]) {\r\n content += '
      ' +\r\n this.getRecurrenceSummary(data) + '
      ';\r\n }\r\n content += '
      ';\r\n if (data[this.parent.eventFields.location]) {\r\n content += '
      ' +\r\n data[this.parent.eventFields.location] + '
      ';\r\n }\r\n if (data[this.parent.eventFields.startTimezone] || data[this.parent.eventFields.endTimezone]) {\r\n content += '
      ' +\r\n this.getTimezone(data) + '
      ';\r\n }\r\n if (data[this.parent.eventFields.description]) {\r\n content += '
      ' +\r\n data[this.parent.eventFields.description] + '
      ';\r\n }\r\n if (this.parent.resourceCollection.length > 0) {\r\n content += '
      ' +\r\n resourceText + '
      ';\r\n }\r\n break;\r\n }\r\n var templateWrapper = createElement('div', { innerHTML: content });\r\n append([].slice.call(templateWrapper.childNodes), contentTemplate);\r\n }\r\n return contentTemplate;\r\n };\r\n QuickPopups.prototype.getPopupFooter = function (footerType, footerData) {\r\n var footerTemplate = createElement('div', { className: cls.POPUP_FOOTER_CLASS });\r\n if (this.isQuickTemplate(footerType) && this.parent.quickInfoTemplates.footer) {\r\n var footerArgs = extend({}, footerData, { elementType: footerType.toLowerCase() }, true);\r\n var templateId = this.parent.element.id;\r\n var footerTemp = [].slice.call(this.parent.getQuickInfoTemplatesFooter()(footerArgs, this.parent, 'footer', templateId + '_footerTemplate', false));\r\n append([].slice.call(footerTemp), footerTemplate);\r\n }\r\n else {\r\n var footer = void 0;\r\n switch (footerType) {\r\n case 'Cell':\r\n footer = \"\") +\r\n (\"\");\r\n break;\r\n case 'Event':\r\n footer = \"\" + (this.parent.isAdaptive ? '' : \"\") +\r\n (\"\"));\r\n break;\r\n }\r\n var templateWrapper = createElement('div', { innerHTML: footer });\r\n append([].slice.call(templateWrapper.childNodes), footerTemplate);\r\n }\r\n return footerTemplate;\r\n };\r\n QuickPopups.prototype.getResourceText = function (args, type) {\r\n if (this.parent.resourceCollection.length === 0) {\r\n return null;\r\n }\r\n var resourceValue = '';\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n var resourceCollection_1 = this.parent.resourceBase.resourceCollection.slice(-1)[0];\r\n var resourceData = resourceCollection_1.dataSource;\r\n if (type === 'event') {\r\n var eventData = args.event;\r\n var _loop_2 = function (data) {\r\n var resourceId = eventData[resourceCollection_1.field];\r\n if (resourceId instanceof Array) {\r\n if (resourceId.indexOf(data[resourceCollection_1.idField]) > -1) {\r\n var id_1 = resourceId[resourceId.indexOf(data[resourceCollection_1.idField])];\r\n var resource = resourceData.filter(function (e) {\r\n return e[resourceCollection_1.idField] === id_1;\r\n })[0];\r\n resourceValue += (resourceValue === '') ? resource[resourceCollection_1.textField] :\r\n ', ' + resource[resourceCollection_1.textField];\r\n }\r\n }\r\n else if (data[resourceCollection_1.idField] === resourceId) {\r\n resourceValue = data[resourceCollection_1.textField].toString();\r\n }\r\n };\r\n for (var _i = 0, resourceData_1 = resourceData; _i < resourceData_1.length; _i++) {\r\n var data = resourceData_1[_i];\r\n _loop_2(data);\r\n }\r\n }\r\n else {\r\n resourceValue = resourceData[0][resourceCollection_1.textField].toString();\r\n }\r\n }\r\n else {\r\n if (type === 'event') {\r\n var eventData = args.event;\r\n var resourceData = void 0;\r\n var lastResource_1;\r\n for (var i = this.parent.resourceBase.resourceCollection.length - 1; i >= 0; i--) {\r\n resourceData = eventData[this.parent.resourceBase.resourceCollection[i].field];\r\n if (!isNullOrUndefined(resourceData)) {\r\n lastResource_1 = this.parent.resourceBase.resourceCollection[i];\r\n break;\r\n }\r\n }\r\n if (!Array.isArray(resourceData)) {\r\n resourceData = [resourceData];\r\n }\r\n var resNames_1 = [];\r\n var lastResourceData_1 = lastResource_1.dataSource;\r\n resourceData.forEach(function (value) {\r\n var text;\r\n var i = util.findIndexInData(lastResourceData_1, lastResource_1.idField, value);\r\n if (i > -1) {\r\n text = lastResourceData_1[i][lastResource_1.textField];\r\n }\r\n if (text) {\r\n resNames_1.push(text);\r\n }\r\n });\r\n resourceValue = resNames_1.join(', ');\r\n }\r\n else {\r\n var argsData = args;\r\n var groupIndex = !isNullOrUndefined(argsData.groupIndex) ? argsData.groupIndex : 0;\r\n var resourceDetails = this.parent.resourceBase.lastResourceLevel[groupIndex];\r\n resourceValue = resourceDetails.resourceData[resourceDetails.resource.textField];\r\n }\r\n }\r\n return resourceValue;\r\n };\r\n QuickPopups.prototype.getFormattedString = function (eventData) {\r\n var fields = this.parent.eventFields;\r\n var eventSubject = (eventData[fields.subject] || this.l10n.getConstant('noTitle'));\r\n var startDate = eventData[fields.startTime];\r\n var endDate = eventData[fields.endTime];\r\n var startDateDetails = this.getDateFormat(startDate, 'long');\r\n var endDateDetails = (eventData[fields.isAllDay] && endDate.getHours() === 0 && endDate.getMinutes() === 0) ?\r\n this.getDateFormat(util.addDays(new Date(endDate.getTime()), -1), 'long') :\r\n this.getDateFormat(endDate, 'long');\r\n var startTimeDetail = this.parent.getTimeString(startDate);\r\n var endTimeDetail = this.parent.getTimeString(endDate);\r\n var details = '';\r\n var spanLength = endDate.getDate() !== startDate.getDate() &&\r\n (endDate.getTime() - startDate.getTime()) / (60 * 60 * 1000) < 24 ? 1 : 0;\r\n if (eventData[fields.isAllDay]) {\r\n details = startDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';\r\n if (((endDate.getTime() - startDate.getTime()) / util.MS_PER_DAY) > 1) {\r\n details += ' - ' + endDateDetails + ' (' + this.l10n.getConstant('allDay') + ')';\r\n }\r\n }\r\n else if ((((endDate.getTime() - startDate.getTime()) / util.MS_PER_DAY) >= 1) || spanLength > 0) {\r\n details = startDateDetails + ' (' + startTimeDetail + ')' + ' - ' + endDateDetails + ' (' + endTimeDetail + ')';\r\n }\r\n else {\r\n details = startDateDetails + ' (' + (startTimeDetail + ' - ' + endTimeDetail) + ')';\r\n }\r\n return { eventSubject: eventSubject, details: details };\r\n };\r\n QuickPopups.prototype.moreEventClick = function (data, endDate, groupIndex) {\r\n var _this = this;\r\n this.quickPopupHide(true);\r\n var moreEventContentEle = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CONTENT_CLASS);\r\n if (moreEventContentEle) {\r\n remove(moreEventContentEle);\r\n }\r\n var selectedDate = ((data.date).getTime()).toString();\r\n var target = closest(data.element, '.' + cls.MORE_INDICATOR_CLASS + ',.' + cls.WORK_CELLS_CLASS);\r\n var day = this.parent.globalize.formatDate(data.date, { format: 'E', calendar: this.parent.getCalendarMode() });\r\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DAY_CLASS).innerHTML = util.capitalizeFirstWord(day, 'single');\r\n var dateElement = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS);\r\n dateElement.innerHTML = this.getDateFormat(data.date, 'd');\r\n dateElement.setAttribute('data-date', selectedDate);\r\n dateElement.setAttribute('data-end-date', endDate.getTime().toString());\r\n var groupOrder;\r\n if (!isNullOrUndefined(groupIndex)) {\r\n dateElement.setAttribute('data-group-index', groupIndex);\r\n groupOrder = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)].groupOrder;\r\n }\r\n var moreEventElements = this.createMoreEventList(data.event, groupOrder, groupIndex);\r\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_POPUP_CLASS).appendChild(moreEventElements);\r\n removeClass(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_DATE_HEADER_CLASS).childNodes, cls.CURRENTDATE_CLASS);\r\n if (util.resetTime(data.date).getTime() === util.resetTime(this.parent.getCurrentTime()).getTime()) {\r\n addClass(this.morePopup.element.querySelector('.' + cls.MORE_EVENT_DATE_HEADER_CLASS).childNodes, cls.CURRENTDATE_CLASS);\r\n }\r\n if (!this.parent.isAdaptive) {\r\n if (this.parent.currentView.indexOf('Timeline') !== -1) {\r\n var gIndex = target.getAttribute('data-group-index');\r\n var startDate = new Date(parseInt(target.getAttribute('data-start-date'), 10));\r\n startDate.setHours(startDate.getHours(), startDate.getMinutes(), 0);\r\n var tdDate = startDate.getTime().toString();\r\n if (isNullOrUndefined(gIndex)) {\r\n this.morePopup.relateTo = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\r\n ' tbody tr td[data-date=\"' + tdDate + '\"]');\r\n }\r\n else {\r\n this.morePopup.relateTo = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS +\r\n ' tbody tr td[data-group-index=\"' + gIndex + '\"][data-date=\"' + tdDate + '\"]');\r\n if (isNullOrUndefined(this.morePopup.relateTo)) {\r\n var workCells = [].slice.call(this.parent.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS +\r\n ' tbody tr td[data-group-index=\"' + gIndex + '\"]'));\r\n for (var i = 0; i < workCells.length; i++) {\r\n var date = workCells[i].getAttribute('data-date');\r\n if (date < tdDate) {\r\n this.morePopup.relateTo = workCells[i];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n this.morePopup.relateTo = closest(target, '.' + cls.WORK_CELLS_CLASS);\r\n }\r\n }\r\n this.parent.renderTemplates();\r\n var eventProp = {\r\n type: 'EventContainer', cancel: false,\r\n element: this.morePopup.element, data: data\r\n };\r\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\r\n if (!popupArgs.cancel) {\r\n _this.morePopup.show();\r\n }\r\n });\r\n };\r\n QuickPopups.prototype.saveClick = function (event) {\r\n this.dialogEvent = event;\r\n this.isCrudAction = true;\r\n this.quickPopupHide();\r\n };\r\n QuickPopups.prototype.detailsClick = function (event) {\r\n var subjectEle = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (subjectEle && subjectEle.value !== '') {\r\n extend(this.parent.activeCellsData, { subject: subjectEle.value });\r\n }\r\n this.dialogEvent = event;\r\n this.isCrudAction = false;\r\n this.fieldValidator.destroyToolTip();\r\n this.quickPopupHide();\r\n this.parent.eventWindow.openEditor(this.parent.activeCellsData, 'Add');\r\n };\r\n QuickPopups.prototype.editClick = function (event) {\r\n this.dialogEvent = event;\r\n this.quickPopupHide(true);\r\n var data = this.parent.activeEventData.event;\r\n this.parent.currentAction = 'EditSeries';\r\n if (!isNullOrUndefined(data[this.parent.eventFields.recurrenceRule])) {\r\n this.parent.currentAction = 'EditOccurrence';\r\n this.openRecurrenceAlert();\r\n }\r\n else {\r\n this.parent.eventWindow.openEditor(data, this.parent.currentAction);\r\n }\r\n };\r\n QuickPopups.prototype.deleteClick = function (event) {\r\n this.dialogEvent = event;\r\n this.quickPopupHide(true);\r\n this.parent.currentAction = 'Delete';\r\n if (this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule]) {\r\n this.openRecurrenceAlert();\r\n }\r\n else {\r\n this.openDeleteAlert();\r\n }\r\n };\r\n QuickPopups.prototype.updateMoreEventContent = function () {\r\n if (this.morePopup.element.classList.contains('e-popup-close')) {\r\n return;\r\n }\r\n var moreEventContentEle = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_CONTENT_CLASS);\r\n if (moreEventContentEle) {\r\n remove(moreEventContentEle);\r\n }\r\n var dateElement = this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS);\r\n var startDate = new Date(parseInt(dateElement.getAttribute('data-date'), 10));\r\n var endDate = new Date(parseInt(dateElement.getAttribute('data-end-date'), 10));\r\n var groupIndex = dateElement.getAttribute('data-group-index');\r\n var data;\r\n var groupOrder;\r\n if (!isNullOrUndefined(groupIndex)) {\r\n data = this.parent.resourceBase.lastResourceLevel[parseInt(groupIndex, 10)];\r\n groupOrder = data.groupOrder;\r\n }\r\n var events = this.parent.eventBase.filterEvents(startDate, endDate, this.parent.eventsProcessed, data);\r\n var moreElement = this.createMoreEventList(events, groupOrder, groupIndex);\r\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_POPUP_CLASS).appendChild(moreElement);\r\n };\r\n QuickPopups.prototype.closeClick = function (event) {\r\n this.dialogEvent = event;\r\n this.quickPopupHide();\r\n this.morePopup.hide();\r\n };\r\n QuickPopups.prototype.dialogButtonClick = function (event) {\r\n this.dialogEvent = event;\r\n this.quickDialog.hide();\r\n var target = event.target;\r\n var cancelBtn = this.quickDialog.element.querySelector('.' + cls.QUICK_DIALOG_ALERT_CANCEL);\r\n var eventData = this.parent.activeEventData.event;\r\n if (target.classList.contains(cls.QUICK_DIALOG_OCCURRENCE_CLASS)) {\r\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteOccurrence' : 'EditOccurrence';\r\n switch (this.parent.currentAction) {\r\n case 'EditOccurrence':\r\n this.parent.eventWindow.openEditor(eventData, this.parent.currentAction);\r\n break;\r\n case 'DeleteOccurrence':\r\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\r\n break;\r\n }\r\n }\r\n else if (target.classList.contains(cls.QUICK_DIALOG_FOLLOWING_EVENTS_CLASS)) {\r\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteFollowingEvents' : 'EditFollowingEvents';\r\n switch (this.parent.currentAction) {\r\n case 'EditFollowingEvents':\r\n this.parent.eventWindow.openEditor(eventData, this.parent.currentAction);\r\n break;\r\n case 'DeleteFollowingEvents':\r\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\r\n break;\r\n }\r\n }\r\n else if (target.classList.contains(cls.QUICK_DIALOG_SERIES_CLASS)) {\r\n this.parent.currentAction = (this.parent.currentAction === 'Delete') ? 'DeleteSeries' : 'EditSeries';\r\n switch (this.parent.currentAction) {\r\n case 'EditSeries':\r\n this.parent.eventWindow.openEditor(this.parent.eventBase.getParentEvent(eventData, true), this.parent.currentAction);\r\n break;\r\n case 'DeleteSeries':\r\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\r\n break;\r\n }\r\n }\r\n else if (target.classList.contains(cls.QUICK_DIALOG_DELETE_CLASS)) {\r\n this.parent.crudModule.deleteEvent(eventData, this.parent.currentAction);\r\n }\r\n else if (!cancelBtn.classList.contains(cls.DISABLE_CLASS) && (target.classList.contains(cls.QUICK_DIALOG_ALERT_OK) ||\r\n (target.classList.contains(cls.QUICK_DIALOG_ALERT_CANCEL) && !cancelBtn.classList.contains(cls.QUICK_DIALOG_CANCEL_CLASS)))) {\r\n this.parent.uiStateValues.isIgnoreOccurrence = target.classList.contains(cls.QUICK_DIALOG_ALERT_CANCEL);\r\n this.parent.eventWindow.eventSave(event, this.l10n.getConstant('ok'));\r\n }\r\n };\r\n QuickPopups.prototype.updateTapHoldEventPopup = function (target) {\r\n var selectedElements = this.parent.eventBase.getSelectedEventElements(target);\r\n this.parent.activeEventData = this.parent.eventBase.getSelectedEvents();\r\n if (selectedElements.length > 0) {\r\n var eventObj = this.parent.eventBase.getEventByGuid(selectedElements[0].getAttribute('data-guid'));\r\n var titleContent = (selectedElements.length === 1) ?\r\n (eventObj[this.parent.eventFields.subject] || this.l10n.getConstant('noTitle')) :\r\n '(' + selectedElements.length + ')' + ' ' + this.l10n.getConstant('selectedItems');\r\n this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS).innerHTML = titleContent;\r\n if (selectedElements.length > 1) {\r\n addClass([this.quickPopup.element.querySelector('.' + cls.EDIT_ICON_CLASS)], cls.HIDDEN_CLASS);\r\n }\r\n else {\r\n removeClass([this.quickPopup.element.querySelector('.' + cls.EDIT_ICON_CLASS)], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n else {\r\n this.parent.selectedElements = [];\r\n this.quickPopupHide();\r\n }\r\n };\r\n QuickPopups.prototype.getTimezone = function (event) {\r\n var zoneDetails = '';\r\n zoneDetails += event[this.parent.eventFields.startTimezone] || '';\r\n zoneDetails += zoneDetails === '' ? '' : ' - ';\r\n zoneDetails += event[this.parent.eventFields.endTimezone] || '';\r\n return zoneDetails;\r\n };\r\n QuickPopups.prototype.getRecurrenceSummary = function (event) {\r\n var recurrenceEditor = this.parent.eventWindow.getRecurrenceEditorInstance();\r\n if (recurrenceEditor) {\r\n var ruleSummary = recurrenceEditor.getRuleSummary(event[this.parent.eventFields.recurrenceRule]);\r\n return ruleSummary.charAt(0).toUpperCase() + ruleSummary.slice(1);\r\n }\r\n return '';\r\n };\r\n QuickPopups.prototype.getDateFormat = function (date, skeletonString) {\r\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(date, { skeleton: skeletonString, calendar: this.parent.getCalendarMode() }), 'single');\r\n };\r\n QuickPopups.prototype.getDataFromTarget = function (target) {\r\n if (target.classList.contains(cls.APPOINTMENT_CLASS)) {\r\n return this.parent.activeEventData.event;\r\n }\r\n // Deprecated cells data in quick popups\r\n var eventObj = {\r\n startTime: this.parent.activeCellsData.startTime,\r\n endTime: this.parent.activeCellsData.endTime,\r\n isAllDay: this.parent.activeCellsData.isAllDay,\r\n groupIndex: this.parent.activeCellsData.groupIndex\r\n };\r\n var cellsData = this.parent.activeCellsData;\r\n this.parent.eventWindow.convertToEventData(cellsData, eventObj);\r\n return eventObj;\r\n };\r\n QuickPopups.prototype.beforeQuickDialogClose = function (e) {\r\n var _this = this;\r\n var args = {\r\n event: e.event || this.dialogEvent,\r\n type: (isNullOrUndefined(this.parent.activeEventData.event)) ? 'ValidationAlert' :\r\n !isNullOrUndefined(this.parent.activeEventData.event[this.parent.eventFields.recurrenceRule])\r\n ? 'RecurrenceAlert' : 'DeleteAlert', cancel: false, data: this.parent.activeEventData.event,\r\n element: this.quickDialog.element\r\n };\r\n this.parent.trigger(event.popupClose, args, function (popupCloseArgs) {\r\n if (!popupCloseArgs.cancel) {\r\n _this.parent.eventBase.focusElement(true);\r\n }\r\n });\r\n };\r\n QuickPopups.prototype.beforeQuickPopupOpen = function (target) {\r\n var _this = this;\r\n this.parent.renderTemplates();\r\n var isEventPopup = this.quickPopup.element.querySelector('.' + cls.EVENT_POPUP_CLASS);\r\n var popupType = this.parent.isAdaptive ? isEventPopup ? 'ViewEventInfo' : 'EditEventInfo' : 'QuickInfo';\r\n var eventProp = {\r\n type: popupType, cancel: false, data: extend({}, this.getDataFromTarget(target), null, true),\r\n target: target, element: this.quickPopup.element\r\n };\r\n this.parent.trigger(event.popupOpen, eventProp, function (popupArgs) {\r\n if (popupArgs.cancel) {\r\n _this.quickPopupHide();\r\n _this.destroyPopupButtons('quickPopup');\r\n if (popupArgs.element.classList.contains(cls.POPUP_OPEN)) {\r\n _this.quickPopupClose();\r\n }\r\n util.removeChildren(_this.quickPopup.element);\r\n _this.isMultipleEventSelect = false;\r\n }\r\n else {\r\n var display = _this.quickPopup.element.style.display;\r\n _this.quickPopup.element.style.display = 'block';\r\n if (_this.parent.isAdaptive) {\r\n _this.quickPopup.element.removeAttribute('style');\r\n _this.quickPopup.element.style.display = 'block';\r\n _this.quickPopup.element.style.height = formatUnit((popupType === 'EditEventInfo') ? 65 : window.innerHeight);\r\n }\r\n else {\r\n _this.quickPopup.offsetX = 10;\r\n _this.quickPopup.collision = { X: _this.parent.enableRtl ? 'flip' : 'none', Y: 'fit' };\r\n _this.quickPopup.position = { X: _this.parent.enableRtl ? 'left' : 'right', Y: _this.parent.enableRtl ? 'bottom' : 'top' };\r\n _this.quickPopup.dataBind();\r\n _this.quickPopup.refreshPosition(null, true);\r\n var collide = isCollide(_this.quickPopup.element, _this.parent.element);\r\n if (collide.indexOf(_this.parent.enableRtl ? 'left' : 'right') > -1) {\r\n _this.quickPopup.offsetX = -target.offsetWidth - 10 - _this.quickPopup.element.offsetWidth;\r\n _this.quickPopup.dataBind();\r\n var leftCollide = isCollide(_this.quickPopup.element, _this.parent.element);\r\n if (leftCollide.indexOf('left') > -1) {\r\n _this.quickPopup.position = { X: 'center', Y: 'center' };\r\n _this.quickPopup.collision = { X: 'fit', Y: 'fit' };\r\n _this.quickPopup.offsetX = -(_this.quickPopup.element.offsetWidth / 2);\r\n _this.quickPopup.dataBind();\r\n }\r\n }\r\n if (_this.parent.virtualScrollModule && (collide.indexOf('top') > -1 || collide.indexOf('bottom') > -1)) {\r\n var element = _this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\r\n var translateY = util.getTranslateY(element);\r\n _this.quickPopup.offsetY = translateY;\r\n _this.quickPopup.dataBind();\r\n }\r\n }\r\n if (isEventPopup) {\r\n _this.applyEventColor();\r\n }\r\n _this.quickPopup.element.style.display = display;\r\n _this.quickPopup.dataBind();\r\n _this.quickPopup.show();\r\n }\r\n });\r\n };\r\n QuickPopups.prototype.applyEventColor = function () {\r\n var colorField = '';\r\n if (this.parent.currentView === 'Agenda' || this.parent.currentView === 'MonthAgenda') {\r\n colorField = this.parent.enableRtl ? 'border-right-color' : 'border-left-color';\r\n }\r\n else {\r\n colorField = 'background-color';\r\n }\r\n var color = this.parent.activeEventData.element.style[colorField];\r\n if (color === '') {\r\n return;\r\n }\r\n var colorEle = this.quickPopup.element.querySelector('.' + cls.POPUP_HEADER_CLASS);\r\n var footerEle = this.quickPopup.element.querySelector('.' + cls.POPUP_FOOTER_CLASS);\r\n if (footerEle && footerEle.offsetParent) {\r\n colorEle = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (colorEle) {\r\n colorEle.style.borderLeftColor = color;\r\n color = \"rgba(\" + color.match(/\\d+/g).join() + \",0.3)\";\r\n }\r\n }\r\n if (colorEle) {\r\n colorEle.style.backgroundColor = color;\r\n }\r\n };\r\n QuickPopups.prototype.quickPopupOpen = function () {\r\n if (this.parent.isAdaptive) {\r\n this.quickPopup.element.style.top = '0px';\r\n return;\r\n }\r\n if (this.quickPopup.element.querySelector('.' + cls.CELL_POPUP_CLASS)) {\r\n var subjectElement = this.quickPopup.element.querySelector('.' + cls.SUBJECT_CLASS);\r\n if (subjectElement) {\r\n subjectElement.focus();\r\n }\r\n }\r\n else {\r\n var editElement = this.quickPopup.element.querySelector('.' + cls.EDIT_EVENT_CLASS);\r\n if (editElement) {\r\n editElement.focus();\r\n }\r\n var editIcon = this.quickPopup.element.querySelector('.' + cls.EDIT_CLASS);\r\n if (editIcon) {\r\n editIcon.focus();\r\n }\r\n }\r\n };\r\n QuickPopups.prototype.quickPopupClose = function () {\r\n this.parent.eventBase.focusElement();\r\n this.quickPopup.relateTo = cls.WORK_CELLS_CLASS;\r\n this.fieldValidator.destroyToolTip();\r\n if (this.quickPopup.element.querySelectorAll('.e-formvalidator').length) {\r\n this.fieldValidator.destroy();\r\n }\r\n this.destroyPopupButtons('quickPopup');\r\n util.removeChildren(this.quickPopup.element);\r\n };\r\n QuickPopups.prototype.morePopupOpen = function () {\r\n if (this.parent.isAdaptive) {\r\n this.morePopup.element.style.top = '0px';\r\n this.morePopup.element.style.left = '0px';\r\n this.morePopup.element.style.height = formatUnit(window.innerHeight);\r\n return;\r\n }\r\n this.morePopup.element.querySelector('.' + cls.MORE_EVENT_HEADER_DATE_CLASS).focus();\r\n this.morePopup.refreshPosition();\r\n };\r\n QuickPopups.prototype.morePopupClose = function () {\r\n var moreWrapper = this.parent.element.querySelector('.' + cls.MORE_EVENT_WRAPPER_CLASS);\r\n if (moreWrapper) {\r\n remove(moreWrapper);\r\n }\r\n };\r\n QuickPopups.prototype.popupClose = function (event) {\r\n this.dialogEvent = event;\r\n this.isCrudAction = false;\r\n this.quickPopupHide(true);\r\n };\r\n QuickPopups.prototype.quickPopupHide = function (hideAnimation) {\r\n var _this = this;\r\n if (!this.quickPopup.element.classList.contains(cls.POPUP_OPEN)) {\r\n return;\r\n }\r\n var isCellPopup = this.quickPopup.element.querySelector('.' + cls.CELL_POPUP_CLASS);\r\n var popupData;\r\n if (isCellPopup) {\r\n var formvalidator = this.quickPopup.element.querySelector('.e-formvalidator');\r\n if (this.isCrudAction && formvalidator &&\r\n !formvalidator.ej2_instances[0].validate()) {\r\n return;\r\n }\r\n var fields = this.parent.eventFields;\r\n var saveObj = this.parent.eventWindow.getObjectFromFormData(cls.POPUP_WRAPPER_CLASS);\r\n this.parent.eventWindow.setDefaultValueToObject(saveObj);\r\n saveObj[fields.id] = this.parent.eventBase.getEventMaxID();\r\n saveObj[fields.startTime] = this.parent.activeCellsData.startTime;\r\n saveObj[fields.endTime] = this.parent.activeCellsData.endTime;\r\n saveObj[fields.isAllDay] = this.parent.activeCellsData.isAllDay;\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.setResourceValues(saveObj);\r\n }\r\n popupData = saveObj;\r\n }\r\n else {\r\n popupData = this.parent.activeEventData.event;\r\n }\r\n var isEventPopup = this.quickPopup.element.querySelector('.' + cls.EVENT_POPUP_CLASS);\r\n var args = {\r\n event: this.dialogEvent,\r\n type: this.parent.isAdaptive ? isEventPopup ? 'ViewEventInfo' : 'EditEventInfo' : 'QuickInfo',\r\n cancel: false, data: popupData, element: this.quickPopup.element,\r\n target: (isCellPopup ? this.parent.activeCellsData.element : this.parent.activeEventData.element)\r\n };\r\n this.parent.trigger(event.popupClose, args, function (popupCloseArgs) {\r\n if (!popupCloseArgs.cancel) {\r\n if (_this.quickPopup.element.classList.contains('e-popup-open')) {\r\n if (isCellPopup && _this.isCrudAction) {\r\n _this.parent.currentAction = 'Add';\r\n _this.parent.crudModule.addEvent(popupCloseArgs.data);\r\n }\r\n if (hideAnimation) {\r\n var animation = _this.quickPopup.hideAnimation;\r\n _this.quickPopup.hideAnimation = null;\r\n _this.quickPopup.hide();\r\n _this.quickPopup.hideAnimation = animation;\r\n }\r\n else {\r\n _this.quickPopup.hide();\r\n }\r\n _this.isMultipleEventSelect = false;\r\n _this.isCrudAction = false;\r\n }\r\n }\r\n });\r\n };\r\n QuickPopups.prototype.navigationClick = function (e) {\r\n var navigateEle = closest(e.target, '.' + cls.NAVIGATE_CLASS);\r\n if (!isNullOrUndefined(navigateEle)) {\r\n var date = this.parent.getDateFromElement(e.currentTarget);\r\n if (!isNullOrUndefined(date)) {\r\n this.closeClick(e);\r\n this.parent.setProperties({ selectedDate: date }, true);\r\n this.parent.changeView(this.parent.getNavigateView(), e);\r\n }\r\n }\r\n };\r\n QuickPopups.prototype.documentClick = function (e) {\r\n var target = e.event.target;\r\n var classNames = '.' + cls.POPUP_WRAPPER_CLASS + ',.' + cls.HEADER_CELLS_CLASS + ',.' + cls.ALLDAY_CELLS_CLASS +\r\n ',.' + cls.WORK_CELLS_CLASS + ',.' + cls.APPOINTMENT_CLASS + ',.e-popup';\r\n var popupWrap = this.parent.element.querySelector('.' + cls.POPUP_WRAPPER_CLASS);\r\n if ((popupWrap && popupWrap.childElementCount > 0 && !closest(target, classNames)) || !closest(target, classNames)) {\r\n this.quickPopupHide();\r\n this.parent.removeNewEventElement();\r\n }\r\n var tar = this.parent.element.querySelector('.' + cls.INLINE_SUBJECT_CLASS);\r\n if (tar && tar !== target && this.parent.allowInline) {\r\n this.parent.inlineModule.documentClick();\r\n }\r\n if (closest(target, '.' + cls.APPOINTMENT_CLASS + ',.' + cls.HEADER_CELLS_CLASS)) {\r\n this.parent.removeNewEventElement();\r\n }\r\n if (!closest(target, '.' + cls.MORE_POPUP_WRAPPER_CLASS) && (target.classList &&\r\n !target.classList.contains(cls.MORE_INDICATOR_CLASS))\r\n && (!closest(target, '.' + cls.POPUP_OPEN)) && !closest(target, '.' + cls.WORK_CELLS_CLASS)) {\r\n this.morePopup.hide();\r\n }\r\n };\r\n QuickPopups.prototype.onClosePopup = function (event) {\r\n if (!isNullOrUndefined(event)) {\r\n this.dialogEvent = event;\r\n }\r\n this.quickPopupHide();\r\n this.parent.eventBase.focusElement();\r\n };\r\n QuickPopups.prototype.addEventListener = function () {\r\n this.parent.on(event.cellClick, this.cellClick, this);\r\n this.parent.on(event.eventClick, this.eventClick, this);\r\n this.parent.on(event.documentClick, this.documentClick, this);\r\n this.parent.on(event.dataReady, this.updateMoreEventContent, this);\r\n };\r\n QuickPopups.prototype.removeEventListener = function () {\r\n this.parent.off(event.cellClick, this.cellClick);\r\n this.parent.off(event.eventClick, this.eventClick);\r\n this.parent.off(event.documentClick, this.documentClick);\r\n this.parent.off(event.dataReady, this.updateMoreEventContent);\r\n };\r\n QuickPopups.prototype.destroyPopupButtons = function (popupName) {\r\n var popup = popupName === 'quickPopup' ? this.quickPopup : this.morePopup;\r\n var buttonCollections = [].slice.call(popup.element.querySelectorAll('.e-control.e-btn'));\r\n for (var _i = 0, buttonCollections_1 = buttonCollections; _i < buttonCollections_1.length; _i++) {\r\n var button = buttonCollections_1[_i];\r\n var instance = button.ej2_instances[0];\r\n if (instance) {\r\n instance.destroy();\r\n }\r\n }\r\n };\r\n QuickPopups.prototype.refreshQuickDialog = function () {\r\n this.destroyQuickDialog();\r\n this.renderQuickDialog();\r\n };\r\n QuickPopups.prototype.refreshQuickPopup = function () {\r\n this.destroyQuickPopup();\r\n this.renderQuickPopup();\r\n };\r\n QuickPopups.prototype.refreshMorePopup = function () {\r\n this.destroyMorePopup();\r\n this.renderMorePopup();\r\n };\r\n QuickPopups.prototype.destroyQuickDialog = function () {\r\n if (this.quickDialog.element) {\r\n this.quickDialog.destroy();\r\n remove(this.quickDialog.element);\r\n this.quickDialog = null;\r\n }\r\n };\r\n QuickPopups.prototype.destroyQuickPopup = function () {\r\n if (this.quickPopup.element) {\r\n this.destroyPopupButtons('quickPopup');\r\n this.quickPopup.destroy();\r\n remove(this.quickPopup.element);\r\n this.quickPopup = null;\r\n }\r\n };\r\n QuickPopups.prototype.destroyMorePopup = function () {\r\n if (this.morePopup.element) {\r\n this.destroyPopupButtons('morePopup');\r\n this.morePopup.destroy();\r\n remove(this.morePopup.element);\r\n this.morePopup = null;\r\n }\r\n };\r\n QuickPopups.prototype.destroy = function () {\r\n if (this.quickPopup.element.querySelectorAll('.e-formvalidator').length) {\r\n this.fieldValidator.destroy();\r\n }\r\n this.removeEventListener();\r\n this.destroyQuickPopup();\r\n this.destroyMorePopup();\r\n this.destroyQuickDialog();\r\n this.parent = null;\r\n this.l10n = null;\r\n this.isCrudAction = null;\r\n this.fieldValidator = null;\r\n this.isMultipleEventSelect = null;\r\n };\r\n return QuickPopups;\r\n}());\r\nexport { QuickPopups };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { formatUnit, isNullOrUndefined, closest, extend, append, prepend, remove } from '@syncfusion/ej2-base';\r\nimport { createElement, addClass, EventHandler } from '@syncfusion/ej2-base';\r\nimport { AgendaBase } from '../event-renderer/agenda-base';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * agenda view\r\n */\r\nvar Agenda = /** @class */ (function (_super) {\r\n __extends(Agenda, _super);\r\n function Agenda(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-agenda-view';\r\n _this.isInverseTableSelect = false;\r\n _this.agendaDates = {};\r\n _this.virtualScrollTop = 1;\r\n return _this;\r\n }\r\n Agenda.prototype.getModuleName = function () {\r\n return 'agenda';\r\n };\r\n Agenda.prototype.renderLayout = function () {\r\n this.agendaDates = {};\r\n this.element = createElement('div', { className: cls.TABLE_WRAP_CLASS });\r\n addClass([this.element], this.viewClass);\r\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\r\n this.element.querySelector('table').setAttribute('role', 'presentation');\r\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.element);\r\n var eTr = createElement('tr');\r\n this.element.querySelector('tbody').appendChild(eTr);\r\n var workTd = createElement('td');\r\n eTr.appendChild(workTd);\r\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n workTd.appendChild(wrap);\r\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\r\n wrap.appendChild(tbl);\r\n var tBody = tbl.querySelector('tbody');\r\n var agendaDate = util.resetTime(this.parent.selectedDate);\r\n this.renderEmptyContent(tBody, agendaDate);\r\n this.wireEvents();\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.generateResourceLevels([{ renderDates: this.parent.activeView.renderDates }]);\r\n }\r\n if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\r\n this.renderResourceMobileLayout();\r\n }\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n Agenda.prototype.eventLoad = function (args) {\r\n this.dataSource = extend([], this.parent.eventsData, null, true);\r\n for (var _i = 0, _a = this.parent.eventsData; _i < _a.length; _i++) {\r\n var event_1 = _a[_i];\r\n delete event_1.generatedDates;\r\n }\r\n var eventCollection = this.parent.activeViewOptions.allowVirtualScrolling ? args.processedData : this.parent.eventsProcessed;\r\n if (this.parent.uiStateValues.isGroupAdaptive) {\r\n var resource = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n this.dataSource = this.parent.eventBase.filterEventsByResource(resource, this.dataSource);\r\n eventCollection = this.parent.eventBase.filterEventsByResource(resource, eventCollection);\r\n }\r\n this.parent.eventsProcessed = this.processAgendaEvents(eventCollection);\r\n var agendaDate = util.resetTime(this.parent.selectedDate);\r\n var tBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\r\n util.removeChildren(tBody);\r\n this.renderInitialContent(tBody, agendaDate);\r\n this.wireEventActions();\r\n var contentArea = closest(tBody, '.' + cls.CONTENT_WRAP_CLASS);\r\n contentArea.scrollTop = 1;\r\n this.parent.notify(event.eventsLoaded, {});\r\n if (!this.parent.activeViewOptions.allowVirtualScrolling) {\r\n this.retainScrollPosition();\r\n }\r\n };\r\n Agenda.prototype.refreshEvent = function (refreshDate) {\r\n var processedData = [];\r\n var fields = this.parent.eventFields;\r\n for (var _i = 0, _a = this.dataSource; _i < _a.length; _i++) {\r\n var data = _a[_i];\r\n if (isNullOrUndefined(data[fields.recurrenceID]) && !isNullOrUndefined(data[fields.recurrenceRule]) &&\r\n !isNullOrUndefined(data.generatedDates) && refreshDate >= data.generatedDates.end) {\r\n processedData = processedData.concat(this.parent.eventBase.generateOccurrence(data, refreshDate));\r\n }\r\n }\r\n this.parent.eventsProcessed = this.parent.eventsProcessed.concat(this.processAgendaEvents(processedData));\r\n };\r\n Agenda.prototype.refreshHeader = function () {\r\n var tBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\r\n if (this.parent.activeViewOptions.group.byDate) {\r\n util.removeChildren(tBody);\r\n }\r\n else {\r\n remove(tBody.firstElementChild);\r\n }\r\n var agendaDate = util.resetTime(this.parent.selectedDate);\r\n var emptyTBody = createElement('tbody');\r\n var firstDate = new Date(agendaDate.getTime());\r\n var lastDate = (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) ?\r\n this.getEndDateFromStartDate(firstDate) : util.addDays(firstDate, this.parent.agendaDaysCount);\r\n this.renderContent(emptyTBody, firstDate, lastDate);\r\n append([].slice.call(emptyTBody.childNodes), tBody);\r\n };\r\n Agenda.prototype.renderInitialContent = function (tBody, agendaDate) {\r\n var emptyTBody = createElement('tbody');\r\n var firstDate = new Date(agendaDate.getTime());\r\n var lastDate = (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) ?\r\n this.getEndDateFromStartDate(firstDate) : util.addDays(firstDate, this.parent.agendaDaysCount);\r\n this.renderContent(emptyTBody, firstDate, lastDate);\r\n append([].slice.call(emptyTBody.childNodes), tBody);\r\n // Initial rendering, to load previous date events upto scroll bar enable\r\n if (this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays && this.parent.eventsData.length > 0) {\r\n var contentArea = this.getContentAreaElement();\r\n var contentChild = contentArea.querySelector('.e-content-table');\r\n while (contentArea.offsetWidth <= contentArea.clientWidth) {\r\n if (this.parent.isAdaptive && contentChild.offsetHeight >= contentArea.clientHeight) {\r\n break;\r\n }\r\n var emptyTBody_1 = createElement('tbody');\r\n lastDate = firstDate;\r\n firstDate = util.addDays(lastDate, -this.parent.agendaDaysCount);\r\n this.renderContent(emptyTBody_1, firstDate, lastDate);\r\n prepend([].slice.call(emptyTBody_1.childNodes), tBody);\r\n if (firstDate <= this.parent.minDate) {\r\n break;\r\n }\r\n }\r\n }\r\n if (tBody.childNodes.length <= 0) {\r\n this.renderEmptyContent(tBody, agendaDate);\r\n }\r\n };\r\n Agenda.prototype.renderContent = function (tBody, agendaDate, lastDate) {\r\n var fieldMapping = this.parent.eventFields;\r\n var firstDate = new Date(agendaDate.getTime());\r\n var isObject = this.appointmentFiltering(firstDate, lastDate);\r\n if (isObject.length > 0 && this.parent.activeViewOptions.allowVirtualScrolling && this.parent.hideEmptyAgendaDays) {\r\n agendaDate = isObject[0][fieldMapping.startTime];\r\n agendaDate = new Date(new Date(agendaDate.getTime()).setHours(0, 0, 0, 0));\r\n this.updateHeaderText(isObject[0][fieldMapping.startTime]);\r\n }\r\n var endDate;\r\n if (!this.parent.hideEmptyAgendaDays || (this.parent.agendaDaysCount > 0 && isObject.length > 0)) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n var date = agendaDate;\r\n if (!this.parent.activeViewOptions.group.byDate) {\r\n this.parent.activeViewOptions.allowVirtualScrolling = false;\r\n date = firstDate;\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.updateDateRange(this.parent.activeView.getDateRangeText());\r\n this.parent.headerModule.updateHeaderItems('remove');\r\n }\r\n }\r\n this.calculateResourceTableElement(tBody, this.parent.agendaDaysCount, date);\r\n }\r\n else {\r\n for (var day = 0; day < this.parent.agendaDaysCount; day++) {\r\n var filterData = this.appointmentFiltering(agendaDate);\r\n var nTr = this.createTableRowElement(agendaDate, 'data');\r\n if (this.element.querySelector('tr[aria-rowindex=\"' + parseInt(nTr.getAttribute('aria-rowindex'), 10) + '\"]')) {\r\n agendaDate = util.addDays(agendaDate, 1);\r\n continue;\r\n }\r\n var dTd = nTr.children[0];\r\n var aTd = nTr.children[1];\r\n if (filterData.length > 0 || (!this.parent.hideEmptyAgendaDays && filterData.length === 0)) {\r\n var elementType = (!this.parent.hideEmptyAgendaDays && filterData.length === 0) ? 'noEvents' : 'data';\r\n dTd.appendChild(this.createDateHeaderElement(agendaDate));\r\n nTr.appendChild(dTd);\r\n var cTd = this.createAgendaContentElement(elementType, filterData, aTd);\r\n nTr.appendChild(cTd);\r\n if (cTd.querySelectorAll('li').length > 0) {\r\n tBody.appendChild(nTr);\r\n }\r\n }\r\n else if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n day--;\r\n }\r\n if (this.isCurrentDate(new Date(agendaDate.getTime()))) {\r\n addClass(dTd.childNodes, cls.AGENDA_CURRENT_DAY_CLASS);\r\n }\r\n agendaDate = util.addDays(agendaDate, 1);\r\n if (agendaDate.getTime() > lastDate.getTime()) {\r\n break;\r\n }\r\n }\r\n }\r\n endDate = new Date(agendaDate.getTime() - util.MS_PER_DAY);\r\n }\r\n this.agendaDates = { start: firstDate, end: endDate };\r\n };\r\n Agenda.prototype.agendaScrolling = function (event) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n this.virtualScrolling(event);\r\n }\r\n if (!this.parent.activeViewOptions.allowVirtualScrolling) {\r\n this.setPersistence();\r\n }\r\n };\r\n Agenda.prototype.virtualScrolling = function (event) {\r\n var target = event.target;\r\n var scrollTop = target.scrollTop;\r\n var scrollHeight = target.scrollHeight;\r\n var offsetHeight = target.clientHeight;\r\n var totalHeight = scrollTop + offsetHeight;\r\n var direction = (this.virtualScrollTop < scrollTop) ? 'next' : 'previous';\r\n var tBody = target.querySelector('tbody');\r\n var emptyTBody = createElement('tbody');\r\n var topElement = this.getElementFromScrollerPosition(event);\r\n var scrollDate = this.parent.getDateFromElement(topElement);\r\n var filterDate;\r\n var filterData;\r\n if (scrollTop === 0) {\r\n filterDate = this.getPreviousNextDate(util.addDays(scrollDate, -1), direction);\r\n filterData = this.appointmentFiltering(filterDate.start, filterDate.end);\r\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\r\n this.renderContent(emptyTBody, filterDate.start, filterDate.end);\r\n prepend([].slice.call(emptyTBody.childNodes), tBody);\r\n this.wireEventActions();\r\n for (var s = 0, element = tBody.children; s < element.length; s++) {\r\n if (element[s].getAttribute('aria-rowindex') === topElement.getAttribute('aria-colindex')) {\r\n var scrollToValue = element[s].offsetTop -\r\n this.element.querySelector('.e-agenda-item').offsetHeight;\r\n target.scrollTop = scrollToValue;\r\n break;\r\n }\r\n }\r\n this.updateHeaderText(scrollDate);\r\n }\r\n }\r\n else if (totalHeight >= (scrollHeight - 5)) {\r\n filterDate = this.getPreviousNextDate(util.addDays(scrollDate, 1), direction);\r\n filterData = this.appointmentFiltering(filterDate.start, filterDate.end);\r\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\r\n this.renderContent(emptyTBody, filterDate.start, filterDate.end);\r\n append([].slice.call(emptyTBody.childNodes), tBody);\r\n this.wireEventActions();\r\n this.updateHeaderText(scrollDate);\r\n }\r\n }\r\n else {\r\n this.updateHeaderText(scrollDate);\r\n }\r\n this.virtualScrollTop = scrollTop;\r\n var selectedElements = this.parent.eventBase.getSelectedAppointments();\r\n if (selectedElements.length > 0) {\r\n selectedElements[selectedElements.length - 1].focus();\r\n }\r\n };\r\n Agenda.prototype.getElementFromScrollerPosition = function (event) {\r\n var filterElement;\r\n var target = event.target;\r\n var scrollTop = target.scrollTop;\r\n var scrollHeight = target.scrollHeight;\r\n var offsetHeight = target.clientHeight;\r\n var totalHeight = scrollTop + offsetHeight;\r\n var liCollection = [].slice.call(target.querySelectorAll('.e-agenda-item'));\r\n var li;\r\n var liDetails;\r\n if (liCollection.length > 0) {\r\n if (scrollTop === 0) {\r\n li = liCollection[0];\r\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\r\n }\r\n else if (totalHeight === scrollHeight) {\r\n li = liCollection[liCollection.length - 1];\r\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\r\n }\r\n else {\r\n for (var a = 0, length_1 = liCollection.length; a < length_1; a++) {\r\n li = liCollection[a];\r\n liDetails = li.getBoundingClientRect();\r\n if (liDetails.top >= 0) {\r\n filterElement = closest(li, '.' + cls.AGENDA_CELLS_CLASS);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return filterElement;\r\n };\r\n Agenda.prototype.updateHeaderText = function (date) {\r\n if (this.parent.showHeaderBar) {\r\n this.parent.headerModule.updateDateRange(this.getDateRangeText(date));\r\n }\r\n };\r\n Agenda.prototype.getPreviousNextDate = function (date, type) {\r\n var currentDate = new Date(date.getTime());\r\n var firstDate = this.getStartDateFromEndDate(date);\r\n var lastDate = this.getEndDateFromStartDate(date);\r\n var daysCount = 0;\r\n do {\r\n var filterData = this.appointmentFiltering(currentDate);\r\n if (filterData.length > 0 || !this.parent.hideEmptyAgendaDays) {\r\n daysCount++;\r\n }\r\n currentDate = util.addDays(currentDate, (type === 'next') ? 1 : -1);\r\n if (currentDate < firstDate || currentDate > lastDate) {\r\n break;\r\n }\r\n } while (daysCount !== this.parent.agendaDaysCount);\r\n var endDate = util.addDays(currentDate, (type === 'next') ? -1 : 1);\r\n return (type === 'next') ? { start: date, end: util.addDays(endDate, 1) } : { start: endDate, end: util.addDays(date, 1) };\r\n };\r\n Agenda.prototype.appointmentFiltering = function (startDate, endDate) {\r\n var dateStart;\r\n var dateEnd;\r\n if (!isNullOrUndefined(startDate) && isNullOrUndefined(endDate)) {\r\n dateStart = util.resetTime(new Date(startDate.getTime()));\r\n dateEnd = util.setTime(new Date(dateStart.getTime()), util.MS_PER_DAY);\r\n }\r\n else {\r\n dateStart = new Date(startDate.getTime());\r\n dateEnd = new Date(endDate.getTime());\r\n }\r\n var filterData = this.parent.eventBase.filterEvents(dateStart, dateEnd);\r\n if (filterData.length === 0) {\r\n this.refreshEvent(startDate);\r\n filterData = this.parent.eventBase.filterEvents(dateStart, dateEnd);\r\n }\r\n return filterData;\r\n };\r\n Agenda.prototype.getStartDateFromEndDate = function (endDate) {\r\n var filterDate;\r\n var fields = this.parent.eventFields;\r\n if (this.parent.eventsProcessed.length > 0) {\r\n var firstDate = Math.min.apply(Math, this.parent.eventsProcessed.map(function (a) {\r\n return a[fields.startTime].getTime();\r\n }));\r\n filterDate = this.parent.hideEmptyAgendaDays ? new Date(firstDate) : this.parent.minDate;\r\n }\r\n else {\r\n filterDate = this.parent.hideEmptyAgendaDays ? util.addMonths(endDate, -1) : this.parent.minDate;\r\n }\r\n return util.resetTime(filterDate);\r\n };\r\n Agenda.prototype.getEndDateFromStartDate = function (startDate) {\r\n var filterDate;\r\n var fieldMapping = this.parent.eventFields;\r\n if (this.parent.eventsProcessed.length > 0) {\r\n var lastDate = Math.max.apply(Math, this.parent.eventsProcessed.map(function (a) {\r\n return a[fieldMapping.endTime].getTime();\r\n }));\r\n filterDate = this.parent.hideEmptyAgendaDays ? new Date(lastDate) : this.parent.maxDate;\r\n }\r\n else {\r\n filterDate = this.parent.hideEmptyAgendaDays ? util.addMonths(startDate, 1) : this.parent.maxDate;\r\n }\r\n return util.resetTime(util.addDays(filterDate, 1));\r\n };\r\n Agenda.prototype.getNextPreviousDate = function (type) {\r\n var noOfDays = (type === 'next') ? 1 : -1;\r\n return util.addDays(this.parent.selectedDate, noOfDays);\r\n };\r\n Agenda.prototype.startDate = function () {\r\n return util.resetTime(this.parent.selectedDate);\r\n };\r\n Agenda.prototype.endDate = function () {\r\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n return this.getEndDateFromStartDate(this.startDate());\r\n }\r\n else {\r\n return util.addDays(this.startDate(), this.parent.agendaDaysCount);\r\n }\r\n };\r\n Agenda.prototype.getDateRangeText = function (date) {\r\n var formatDate = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\r\n if (this.parent.activeViewOptions.allowVirtualScrolling || this.parent.isAdaptive) {\r\n var currentDate = isNullOrUndefined(date) ? this.parent.selectedDate : date;\r\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(currentDate, { format: formatDate, calendar: this.parent.getCalendarMode() }), 'multiple');\r\n }\r\n else {\r\n var startDate = this.parent.selectedDate;\r\n var endDate = util.addDays(startDate, this.parent.agendaDaysCount - 1);\r\n return this.formatDateRange(startDate, endDate);\r\n }\r\n };\r\n Agenda.prototype.dayNavigationClick = function (e) {\r\n var element = closest(e.currentTarget, '.' + cls.AGENDA_CELLS_CLASS);\r\n var date = this.parent.getDateFromElement(element);\r\n if (!isNullOrUndefined(date) && !this.parent.isAdaptive && this.parent.isMinMaxDate(date)) {\r\n this.parent.setProperties({ selectedDate: date }, true);\r\n this.parent.changeView('Day', e);\r\n }\r\n };\r\n Agenda.prototype.wireEvents = function () {\r\n EventHandler.add(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), event.scroll, this.agendaScrolling, this);\r\n };\r\n Agenda.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), event.scroll, this.agendaScrolling);\r\n var dateHeaderElement = [].slice.call(this.element.querySelectorAll('.e-m-date'));\r\n for (var _i = 0, dateHeaderElement_1 = dateHeaderElement; _i < dateHeaderElement_1.length; _i++) {\r\n var element = dateHeaderElement_1[_i];\r\n EventHandler.remove(element, 'click', this.dayNavigationClick);\r\n }\r\n };\r\n Agenda.prototype.addEventListener = function () {\r\n this.parent.on(event.scrollUiUpdate, this.onAgendaScrollUiUpdate, this);\r\n this.parent.on(event.dataReady, this.eventLoad, this);\r\n };\r\n Agenda.prototype.removeEventListener = function () {\r\n if (this.parent) {\r\n this.parent.off(event.scrollUiUpdate, this.onAgendaScrollUiUpdate);\r\n this.parent.off(event.dataReady, this.eventLoad);\r\n }\r\n };\r\n Agenda.prototype.onAgendaScrollUiUpdate = function () {\r\n var headerHeight = this.getHeaderBarHeight();\r\n if (this.parent.headerModule) {\r\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n this.parent.headerModule.updateHeaderItems('add');\r\n }\r\n else {\r\n this.parent.headerModule.updateHeaderItems('remove');\r\n }\r\n }\r\n var contentArea = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (this.parent.height !== 'auto') {\r\n contentArea.style.height = formatUnit(this.parent.element.offsetHeight - headerHeight);\r\n }\r\n };\r\n Agenda.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n if (this.element) {\r\n this.unWireEvents();\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.destroy();\r\n }\r\n if (this.parent.headerModule && this.parent.activeViewOptions.allowVirtualScrolling) {\r\n this.parent.headerModule.updateHeaderItems('remove');\r\n }\r\n _super.prototype.destroy.call(this);\r\n }\r\n };\r\n return Agenda;\r\n}(AgendaBase));\r\nexport { Agenda };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { VerticalView } from './vertical-view';\r\n/**\r\n * day view\r\n */\r\nvar Day = /** @class */ (function (_super) {\r\n __extends(Day, _super);\r\n /**\r\n * Constructor for day view\r\n *\r\n * @param {Schedule} parent Accepts the schedule instance\r\n */\r\n function Day(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-day-view';\r\n return _this;\r\n }\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} Returns the module name.\r\n */\r\n Day.prototype.getModuleName = function () {\r\n return 'day';\r\n };\r\n return Day;\r\n}(VerticalView));\r\nexport { Day };\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { isNullOrUndefined, createElement, remove, closest, addClass, removeClass, extend } from '@syncfusion/ej2-base';\r\nimport { Toolbar } from '@syncfusion/ej2-navigations';\r\nimport { Calendar } from '@syncfusion/ej2-calendars';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport * as events from '../base/constant';\r\nimport * as util from '../base/util';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Header module\r\n */\r\nvar HeaderRenderer = /** @class */ (function () {\r\n function HeaderRenderer(parent) {\r\n this.parent = parent;\r\n this.l10n = this.parent.localeObj;\r\n this.renderHeader();\r\n this.addEventListener();\r\n }\r\n HeaderRenderer.prototype.addEventListener = function () {\r\n this.parent.on(events.documentClick, this.closeHeaderPopup, this);\r\n };\r\n HeaderRenderer.prototype.removeEventListener = function () {\r\n this.parent.off(events.documentClick, this.closeHeaderPopup);\r\n };\r\n HeaderRenderer.prototype.closeHeaderPopup = function (e) {\r\n var closestEle = closest(e.event.target, '.e-date-range,.e-header-popup,.e-day,.e-selected');\r\n var closestPop = closest(e.event.target, '.e-hor-nav,.e-toolbar-pop');\r\n var contentWrap = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (this.parent.isAdaptive) {\r\n if (!isNullOrUndefined(closestPop) && (closestPop.classList.contains('e-toolbar-pop') ||\r\n closestPop.classList.contains('e-hor-nav')) && !(closestPop.classList.contains('e-hor-nav') &&\r\n this.element.querySelector('.e-toolbar-pop').classList.contains(cls.POPUP_OPEN))) {\r\n addClass([contentWrap], cls.SCROLL_HIDDEN);\r\n }\r\n else {\r\n removeClass([contentWrap], cls.SCROLL_HIDDEN);\r\n var popupEle = this.element.querySelector('.e-toolbar-pop');\r\n if (!isNullOrUndefined(popupEle)) {\r\n var popupObj = popupEle.ej2_instances[0];\r\n if (popupObj && !(!isNullOrUndefined(closestPop) && closestPop.classList.contains('e-hor-nav') &&\r\n popupEle.classList.contains(cls.POPUP_OPEN))) {\r\n popupObj.hide();\r\n }\r\n }\r\n }\r\n }\r\n if (!isNullOrUndefined(closestEle)) {\r\n return;\r\n }\r\n this.hideHeaderPopup();\r\n };\r\n HeaderRenderer.prototype.hideHeaderPopup = function () {\r\n if (this.headerPopup) {\r\n this.headerPopup.hide();\r\n }\r\n };\r\n HeaderRenderer.prototype.renderHeader = function () {\r\n this.element = createElement('div', { className: cls.TOOLBAR_CONTAINER });\r\n var toolbarEle = createElement('div', { className: cls.HEADER_TOOLBAR });\r\n this.element.appendChild(toolbarEle);\r\n this.parent.element.insertBefore(this.element, this.parent.element.firstElementChild);\r\n this.renderToolbar();\r\n };\r\n HeaderRenderer.prototype.renderToolbar = function () {\r\n var _this = this;\r\n var items = this.getItems();\r\n this.parent.trigger(events.actionBegin, { requestType: 'toolbarItemRendering', items: items }, function (args) {\r\n _this.toolbarObj = new Toolbar({\r\n items: args.items,\r\n overflowMode: 'Popup',\r\n clicked: _this.toolbarClickHandler.bind(_this),\r\n enableRtl: _this.parent.enableRtl,\r\n locale: _this.parent.locale\r\n });\r\n _this.toolbarObj.appendTo(_this.parent.element.querySelector('.' + cls.HEADER_TOOLBAR));\r\n var prevNavEle = _this.toolbarObj.element.querySelector('.e-prev');\r\n if (prevNavEle) {\r\n prevNavEle.firstElementChild.setAttribute('title', _this.l10n.getConstant('previous'));\r\n }\r\n var nextNavEle = _this.toolbarObj.element.querySelector('.e-next');\r\n if (nextNavEle) {\r\n nextNavEle.firstElementChild.setAttribute('title', _this.l10n.getConstant('next'));\r\n }\r\n _this.updateAddIcon();\r\n _this.updateActiveView();\r\n _this.parent.trigger(events.actionComplete, { requestType: 'toolBarItemRendered', items: _this.toolbarObj.items });\r\n });\r\n };\r\n HeaderRenderer.prototype.updateItems = function () {\r\n var _this = this;\r\n if (this.toolbarObj) {\r\n var items = this.getItems();\r\n this.parent.trigger(events.actionBegin, { requestType: 'toolbarItemRendering', items: items }, function (args) {\r\n _this.toolbarObj.items = args.items;\r\n _this.toolbarObj.dataBind();\r\n _this.parent.trigger(events.actionComplete, { requestType: 'toolBarItemRendered', items: _this.toolbarObj.items });\r\n });\r\n }\r\n };\r\n HeaderRenderer.prototype.getPopUpRelativeElement = function () {\r\n if (this.parent.isAdaptive) {\r\n return this.toolbarObj.element;\r\n }\r\n return this.element.querySelector('.e-date-range');\r\n };\r\n HeaderRenderer.prototype.setDayOfWeek = function (index) {\r\n if (this.headerCalendar) {\r\n this.headerCalendar.firstDayOfWeek = index;\r\n this.headerCalendar.dataBind();\r\n }\r\n };\r\n HeaderRenderer.prototype.setCalendarDate = function (date) {\r\n if (this.headerCalendar) {\r\n this.headerCalendar.value = date;\r\n this.headerCalendar.dataBind();\r\n }\r\n };\r\n HeaderRenderer.prototype.setCalendarMinMaxDate = function () {\r\n if (this.headerCalendar) {\r\n this.headerCalendar.min = this.parent.minDate;\r\n this.headerCalendar.max = this.parent.maxDate;\r\n this.headerCalendar.dataBind();\r\n }\r\n };\r\n HeaderRenderer.prototype.getCalendarView = function () {\r\n if (['Month', 'MonthAgenda', 'TimelineMonth'].indexOf(this.parent.currentView) > -1) {\r\n return 'Year';\r\n }\r\n else if (['Year', 'TimelineYear'].indexOf(this.parent.currentView) > -1) {\r\n return 'Decade';\r\n }\r\n else {\r\n return 'Month';\r\n }\r\n };\r\n HeaderRenderer.prototype.setCalendarView = function () {\r\n if (this.headerCalendar) {\r\n var calendarView = this.getCalendarView();\r\n this.headerCalendar.depth = calendarView;\r\n this.headerCalendar.start = calendarView;\r\n this.headerCalendar.refresh();\r\n }\r\n };\r\n HeaderRenderer.prototype.updateActiveView = function () {\r\n var selEle = [].slice.call(this.toolbarObj.element.querySelectorAll('.e-views'));\r\n removeClass(selEle, ['e-active-view']);\r\n if (selEle.length > 0 && selEle[this.parent.viewIndex]) {\r\n addClass([selEle[this.parent.viewIndex]], ['e-active-view']);\r\n }\r\n };\r\n HeaderRenderer.prototype.updateDateRange = function (text) {\r\n var selEle = this.toolbarObj.element.querySelector('.e-date-range');\r\n if (selEle) {\r\n selEle.setAttribute('aria-label', text);\r\n selEle.querySelector('.e-tbar-btn-text').innerHTML = text;\r\n this.refresh();\r\n }\r\n };\r\n HeaderRenderer.prototype.refresh = function () {\r\n if (this.toolbarObj) {\r\n this.toolbarObj.refreshOverflow();\r\n }\r\n };\r\n HeaderRenderer.prototype.updateAddIcon = function () {\r\n var addEle = this.toolbarObj.element.querySelector('.e-add');\r\n if (addEle) {\r\n if (!this.parent.eventSettings.allowAdding) {\r\n addClass([addEle], cls.HIDDEN_CLASS);\r\n }\r\n else {\r\n removeClass([addEle], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n };\r\n HeaderRenderer.prototype.getDateRangeText = function () {\r\n var dateString = this.parent.globalize.formatDate(this.parent.selectedDate, {\r\n format: 'MMMM y', calendar: this.parent.getCalendarMode()\r\n });\r\n return util.capitalizeFirstWord(dateString, 'single');\r\n };\r\n HeaderRenderer.prototype.getItems = function () {\r\n var items = [];\r\n items.push({\r\n align: 'Left', prefixIcon: 'e-icon-prev', tooltipText: 'Previous', overflow: 'Show',\r\n cssClass: 'e-prev', htmlAttributes: { 'aria-label': 'previous period', 'role': 'navigation' }\r\n });\r\n items.push({\r\n align: 'Left', prefixIcon: 'e-icon-next', tooltipText: 'Next', overflow: 'Show',\r\n cssClass: 'e-next', htmlAttributes: { 'aria-label': 'next period', 'role': 'navigation' }\r\n });\r\n items.push({\r\n align: 'Left', text: this.getDateRangeText(), suffixIcon: 'e-icon-down-arrow', cssClass: 'e-date-range',\r\n overflow: 'Show',\r\n htmlAttributes: { 'aria-atomic': 'true', 'aria-live': 'assertive', 'aria-label': 'title', 'role': 'navigation' }\r\n });\r\n if (this.parent.isAdaptive || this.parent.enableAdaptiveUI) {\r\n items.push({\r\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-add',\r\n text: this.l10n.getConstant('newEvent'), cssClass: 'e-add', overflow: 'Show'\r\n });\r\n items.push({\r\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-today',\r\n text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'\r\n });\r\n }\r\n else {\r\n items.push({\r\n align: 'Right', showAlwaysInPopup: (this.parent.isAdaptive || this.parent.enableAdaptiveUI), prefixIcon: 'e-icon-day',\r\n text: this.l10n.getConstant('today'), cssClass: 'e-today', overflow: 'Show'\r\n });\r\n if (this.parent.views.length > 1) {\r\n items.push({ align: 'Right', type: 'Separator', cssClass: 'e-schedule-seperator' });\r\n }\r\n }\r\n if (this.parent.views.length > 1) {\r\n for (var _i = 0, _a = this.parent.views; _i < _a.length; _i++) {\r\n var item = _a[_i];\r\n items.push(this.getItemObject(item));\r\n }\r\n }\r\n return items;\r\n };\r\n HeaderRenderer.prototype.getItemObject = function (item) {\r\n var viewName;\r\n var displayName;\r\n if (typeof (item) === 'string') {\r\n viewName = item.toLowerCase();\r\n displayName = null;\r\n }\r\n else {\r\n viewName = item.option.toLowerCase();\r\n displayName = item.displayName;\r\n }\r\n var view;\r\n var orientationClass;\r\n var isItemInsidePopup = this.parent.isAdaptive || this.parent.enableAdaptiveUI;\r\n switch (viewName) {\r\n case 'day':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-day',\r\n text: displayName || this.l10n.getConstant('day'), cssClass: 'e-views e-day'\r\n };\r\n break;\r\n case 'week':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-week',\r\n text: displayName || this.l10n.getConstant('week'), cssClass: 'e-views e-week'\r\n };\r\n break;\r\n case 'workweek':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-workweek',\r\n text: displayName || this.l10n.getConstant('workWeek'), cssClass: 'e-views e-work-week'\r\n };\r\n break;\r\n case 'month':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-month',\r\n text: displayName || this.l10n.getConstant('month'), cssClass: 'e-views e-month'\r\n };\r\n break;\r\n case 'year':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-year',\r\n text: displayName || this.l10n.getConstant('year'), cssClass: 'e-views e-year'\r\n };\r\n break;\r\n case 'agenda':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-agenda',\r\n text: displayName || this.l10n.getConstant('agenda'), cssClass: 'e-views e-agenda'\r\n };\r\n break;\r\n case 'monthagenda':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-month-agenda',\r\n text: displayName || this.l10n.getConstant('monthAgenda'), cssClass: 'e-views e-month-agenda'\r\n };\r\n break;\r\n case 'timelineday':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-day',\r\n text: displayName || this.l10n.getConstant('timelineDay'), cssClass: 'e-views e-timeline-day'\r\n };\r\n break;\r\n case 'timelineweek':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-week',\r\n text: displayName || this.l10n.getConstant('timelineWeek'), cssClass: 'e-views e-timeline-week'\r\n };\r\n break;\r\n case 'timelineworkweek':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-workweek',\r\n text: displayName || this.l10n.getConstant('timelineWorkWeek'), cssClass: 'e-views e-timeline-work-week'\r\n };\r\n break;\r\n case 'timelinemonth':\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-month',\r\n text: displayName || this.l10n.getConstant('timelineMonth'), cssClass: 'e-views e-timeline-month'\r\n };\r\n break;\r\n case 'timelineyear':\r\n orientationClass = (item.orientation === 'Vertical') ? 'vertical' : 'horizontal';\r\n view = {\r\n align: 'Right', showAlwaysInPopup: isItemInsidePopup, prefixIcon: 'e-icon-timeline-year-' + orientationClass,\r\n text: displayName || this.l10n.getConstant('timelineYear'), cssClass: 'e-views e-timeline-year'\r\n };\r\n break;\r\n }\r\n return view;\r\n };\r\n HeaderRenderer.prototype.renderHeaderPopup = function () {\r\n var headerPopupEle = createElement('div', { className: cls.HEADER_POPUP_CLASS });\r\n var headerCalendarEle = createElement('div', { className: cls.HEADER_CALENDAR_CLASS });\r\n headerPopupEle.appendChild(headerCalendarEle);\r\n this.element.appendChild(headerPopupEle);\r\n this.headerPopup = new Popup(headerPopupEle, {\r\n actionOnScroll: 'hide',\r\n targetType: 'relative',\r\n relateTo: this.getPopUpRelativeElement(),\r\n position: { X: 'left', Y: 'bottom' },\r\n enableRtl: this.parent.enableRtl\r\n });\r\n var calendarView = this.getCalendarView();\r\n this.headerCalendar = new Calendar({\r\n value: this.parent.selectedDate,\r\n min: this.parent.minDate,\r\n max: this.parent.maxDate,\r\n firstDayOfWeek: this.parent.activeViewOptions.firstDayOfWeek,\r\n enableRtl: this.parent.enableRtl,\r\n locale: this.parent.locale,\r\n depth: calendarView,\r\n start: calendarView,\r\n calendarMode: this.parent.calendarMode,\r\n change: this.calendarChange.bind(this)\r\n });\r\n this.setCalendarTimezone();\r\n this.headerCalendar.appendTo(headerCalendarEle);\r\n this.headerPopup.hide();\r\n };\r\n HeaderRenderer.prototype.calendarChange = function (args) {\r\n if (args.value.getTime() !== this.parent.selectedDate.getTime()) {\r\n var calendarDate = util.resetTime(new Date(args.value));\r\n this.parent.changeDate(calendarDate);\r\n }\r\n this.headerPopup.hide();\r\n };\r\n HeaderRenderer.prototype.setCalendarTimezone = function () {\r\n if (this.headerCalendar) {\r\n this.headerCalendar.timezone = this.parent.timezone || this.parent.tzModule.getLocalTimezoneName();\r\n }\r\n };\r\n HeaderRenderer.prototype.calculateViewIndex = function (args) {\r\n var target = closest(args.originalEvent.target, '.e-views');\r\n var views = [].slice.call(this.element.querySelectorAll('.e-views'));\r\n return views.indexOf(target);\r\n };\r\n HeaderRenderer.prototype.toolbarClickHandler = function (args) {\r\n if (!args.item) {\r\n return;\r\n }\r\n var strClass = args.item.cssClass.replace('e-views ', '');\r\n var data;\r\n var isSameTime;\r\n switch (strClass) {\r\n case 'e-date-range':\r\n if (!this.headerPopup) {\r\n this.renderHeaderPopup();\r\n }\r\n if (this.headerPopup.element.classList.contains(cls.POPUP_OPEN)) {\r\n this.headerPopup.hide();\r\n }\r\n else {\r\n this.headerPopup.show();\r\n }\r\n break;\r\n case 'e-day':\r\n this.parent.changeView('Day', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-week':\r\n this.parent.changeView('Week', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-work-week':\r\n this.parent.changeView('WorkWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-month':\r\n this.parent.changeView('Month', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-year':\r\n this.parent.changeView('Year', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-agenda':\r\n this.parent.changeView('Agenda', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-month-agenda':\r\n this.parent.changeView('MonthAgenda', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-timeline-day':\r\n this.parent.changeView('TimelineDay', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-timeline-week':\r\n this.parent.changeView('TimelineWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-timeline-work-week':\r\n this.parent.changeView('TimelineWorkWeek', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-timeline-month':\r\n this.parent.changeView('TimelineMonth', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-timeline-year':\r\n this.parent.changeView('TimelineYear', args.originalEvent, undefined, this.calculateViewIndex(args));\r\n break;\r\n case 'e-today':\r\n if (this.parent.currentView === 'Agenda' || !this.parent.isSelectedDate(util.resetTime(this.parent.getCurrentTime()))) {\r\n this.parent.changeDate(util.resetTime(this.parent.getCurrentTime()), args.originalEvent);\r\n }\r\n break;\r\n case 'e-prev':\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('previous'), args.originalEvent);\r\n break;\r\n case 'e-next':\r\n this.parent.changeDate(this.parent.activeView.getNextPreviousDate('next'), args.originalEvent);\r\n break;\r\n case 'e-add':\r\n isSameTime = this.parent.activeCellsData.startTime.getTime() === this.parent.activeCellsData.endTime.getTime();\r\n if (this.parent.activeCellsData && !isSameTime) {\r\n data = this.parent.activeCellsData;\r\n }\r\n else {\r\n var interval = this.parent.activeViewOptions.timeScale.interval;\r\n var slotCount = this.parent.activeViewOptions.timeScale.slotCount;\r\n var msInterval = (interval * util.MS_PER_MINUTE) / slotCount;\r\n var startTime = new Date(this.parent.selectedDate.getTime());\r\n var currentTime = this.parent.getCurrentTime();\r\n startTime.setHours(currentTime.getHours(), (Math.round(startTime.getMinutes() / msInterval) * msInterval), 0);\r\n var endTime = new Date(new Date(startTime.getTime()).setMilliseconds(startTime.getMilliseconds() + msInterval));\r\n data = { startTime: startTime, endTime: endTime, isAllDay: false };\r\n }\r\n this.parent.eventWindow.openEditor(extend(data, { cancel: false, event: args.originalEvent }), 'Add');\r\n break;\r\n }\r\n if (isNullOrUndefined(this.toolbarObj)) {\r\n return;\r\n }\r\n var toolbarPopUp = this.toolbarObj.element.querySelector('.e-toolbar-pop');\r\n if (toolbarPopUp && args.item.type !== 'Input') {\r\n toolbarPopUp.ej2_instances[0].hide({ name: 'SlideUp', duration: 100 });\r\n }\r\n };\r\n HeaderRenderer.prototype.getHeaderElement = function () {\r\n return this.toolbarObj.element;\r\n };\r\n HeaderRenderer.prototype.updateHeaderItems = function (classType) {\r\n var prevNavEle = this.toolbarObj.element.querySelector('.e-prev');\r\n var nextNavEle = this.toolbarObj.element.querySelector('.e-next');\r\n var dateRangeEle = this.toolbarObj.element.querySelector('.e-date-range');\r\n if (prevNavEle) {\r\n if (classType === 'add') {\r\n addClass([prevNavEle], cls.HIDDEN_CLASS);\r\n }\r\n else {\r\n removeClass([prevNavEle], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n if (nextNavEle) {\r\n if (classType === 'add') {\r\n addClass([nextNavEle], cls.HIDDEN_CLASS);\r\n }\r\n else {\r\n removeClass([nextNavEle], cls.HIDDEN_CLASS);\r\n }\r\n }\r\n if (dateRangeEle) {\r\n if (classType === 'add') {\r\n addClass([dateRangeEle], cls.TEXT_ELLIPSIS);\r\n }\r\n else {\r\n removeClass([dateRangeEle], cls.TEXT_ELLIPSIS);\r\n }\r\n }\r\n };\r\n HeaderRenderer.prototype.previousNextIconHandler = function () {\r\n var dates = (this.parent.currentView === 'Agenda' ?\r\n [this.parent.getCurrentViewDates()[0]] : this.parent.getCurrentViewDates());\r\n var prevNavEle = this.toolbarObj.element.querySelector('.' + cls.PREVIOUS_DATE_CLASS);\r\n var nextNavEle = this.toolbarObj.element.querySelector('.' + cls.NEXT_DATE_CLASS);\r\n var firstDate = new Date(dates[0].getTime());\r\n var lastDate = new Date(dates[dates.length - 1].getTime());\r\n if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {\r\n firstDate = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.firstDayOfWeek);\r\n lastDate = util.addDays(firstDate, 7 * this.parent.activeViewOptions.interval);\r\n }\r\n if (this.parent.currentView === 'Month') {\r\n firstDate = util.firstDateOfMonth(this.parent.selectedDate);\r\n var lastMonthFirstDate = util.addMonths(firstDate, this.parent.activeViewOptions.interval - 1);\r\n lastDate = util.lastDateOfMonth(lastMonthFirstDate);\r\n }\r\n if (!isNullOrUndefined(prevNavEle)) {\r\n this.toolbarObj.enableItems(prevNavEle, firstDate > this.parent.minDate);\r\n }\r\n if (!isNullOrUndefined(nextNavEle)) {\r\n this.toolbarObj.enableItems(nextNavEle, lastDate < this.parent.maxDate);\r\n }\r\n this.setCalendarMinMaxDate();\r\n };\r\n HeaderRenderer.prototype.getModuleName = function () {\r\n return 'headerbar';\r\n };\r\n HeaderRenderer.prototype.destroy = function () {\r\n if (this.headerPopup && !this.headerPopup.isDestroyed) {\r\n this.headerPopup.destroy();\r\n this.headerPopup = null;\r\n }\r\n if (this.headerCalendar && !this.headerCalendar.isDestroyed) {\r\n this.headerCalendar.destroy();\r\n this.headerCalendar = null;\r\n }\r\n if (this.toolbarObj && !this.toolbarObj.isDestroyed) {\r\n this.toolbarObj.destroy();\r\n this.removeEventListener();\r\n remove(this.element);\r\n this.toolbarObj = null;\r\n }\r\n this.element = null;\r\n this.parent = null;\r\n this.l10n = null;\r\n };\r\n return HeaderRenderer;\r\n}());\r\nexport { HeaderRenderer };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { createElement, addClass, formatUnit, remove } from '@syncfusion/ej2-base';\r\nimport { AgendaBase } from '../event-renderer/agenda-base';\r\nimport { Month } from './month';\r\nimport * as util from '../base/util';\r\nimport * as events from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * month agenda view\r\n */\r\nvar MonthAgenda = /** @class */ (function (_super) {\r\n __extends(MonthAgenda, _super);\r\n function MonthAgenda(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.dayNameFormat = 'narrow';\r\n _this.viewClass = 'e-month-agenda-view';\r\n _this.monthAgendaDate = new Date('' + parent.selectedDate);\r\n return _this;\r\n }\r\n MonthAgenda.prototype.getModuleName = function () {\r\n return 'monthAgenda';\r\n };\r\n MonthAgenda.prototype.renderAppointmentContainer = function () {\r\n var contentArea = this.getContentAreaElement();\r\n var wrapperContainer = createElement('div', { className: cls.WRAPPER_CONTAINER_CLASS });\r\n contentArea.appendChild(wrapperContainer);\r\n var appWrap = createElement('div', { className: cls.APPOINTMENT_WRAP_CLASS });\r\n wrapperContainer.appendChild(appWrap);\r\n this.appendAppContainer(appWrap);\r\n this.setEventWrapperHeight();\r\n };\r\n MonthAgenda.prototype.getDayNameFormat = function () {\r\n if (this.parent.isAdaptive) {\r\n return 'narrow';\r\n }\r\n return 'abbreviated';\r\n };\r\n MonthAgenda.prototype.setEventWrapperHeight = function () {\r\n var headerHeight = (this.parent.headerModule ? this.parent.headerModule.getHeaderElement().offsetHeight : 0) + 2;\r\n var resourceWrapper = this.parent.element.querySelector('.' + cls.RESOURCE_HEADER_TOOLBAR);\r\n if (resourceWrapper) {\r\n headerHeight += resourceWrapper.offsetHeight;\r\n }\r\n var contentArea = this.getContentAreaElement().firstElementChild;\r\n var dateHeader = this.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\r\n var availHeight = this.parent.element.offsetHeight - headerHeight - dateHeader.offsetHeight - contentArea.offsetHeight;\r\n var wrapperContainer = this.element.querySelector('.' + cls.WRAPPER_CONTAINER_CLASS);\r\n var eventWrapper = this.element.querySelector('.' + cls.APPOINTMENT_WRAP_CLASS);\r\n if (this.parent.height !== 'auto') {\r\n wrapperContainer.style.height = eventWrapper.style.height = formatUnit(availHeight);\r\n }\r\n };\r\n MonthAgenda.prototype.onDataReady = function (args) {\r\n this.setEventWrapperHeight();\r\n this.clearElements();\r\n var eventCollection = args.processedData;\r\n if (this.parent.uiStateValues.isGroupAdaptive) {\r\n var resource = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n eventCollection = this.parent.eventBase.filterEventsByResource(resource, eventCollection);\r\n }\r\n this.agendaBase = this.getAgendaBase();\r\n this.parent.eventsProcessed = this.agendaBase.processAgendaEvents(eventCollection);\r\n var count = 0;\r\n for (var _i = 0, _a = this.renderDates; _i < _a.length; _i++) {\r\n var date = _a[_i];\r\n var filterData = this.appointmentFiltering(date);\r\n var workCell = this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS)[count];\r\n if (filterData.length > 0) {\r\n if (!workCell.querySelector('.' + cls.APPOINTMENT_INDICATOR_CLASS)) {\r\n workCell.appendChild(createElement('div', { className: cls.APPOINTMENT_INDICATOR_CLASS }));\r\n }\r\n if (date.getTime() === util.resetTime(new Date(this.monthAgendaDate.getTime())).getTime()) {\r\n this.onEventRender(filterData, date);\r\n }\r\n }\r\n count++;\r\n }\r\n this.parent.notify(events.eventsLoaded, {});\r\n };\r\n MonthAgenda.prototype.onCellClick = function (event) {\r\n if (this.parent.quickPopup) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n var filterData = this.appointmentFiltering(event.startTime);\r\n this.onEventRender(filterData, event.startTime);\r\n this.parent.notify(events.eventsLoaded, {});\r\n this.monthAgendaDate = new Date('' + event.startTime);\r\n };\r\n MonthAgenda.prototype.onEventRender = function (events, date) {\r\n this.agendaBase = this.getAgendaBase();\r\n var appWrap = this.element.querySelector('.' + cls.APPOINTMENT_WRAP_CLASS);\r\n util.removeChildren(appWrap);\r\n if (this.parent.activeViewOptions.group.resources.length === 0 || this.parent.uiStateValues.isGroupAdaptive) {\r\n if (events.length > 0) {\r\n var appContainer = createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS });\r\n appWrap.appendChild(this.agendaBase.createAgendaContentElement('data', events, appContainer));\r\n }\r\n else {\r\n this.appendAppContainer(appWrap);\r\n }\r\n }\r\n else {\r\n if (events.length > 0) {\r\n var table = this.createTableLayout();\r\n var tBody = table.querySelector('tbody');\r\n this.agendaBase.calculateResourceTableElement(tBody, 1, date);\r\n table.appendChild(tBody);\r\n appWrap.appendChild(table);\r\n }\r\n else {\r\n this.appendAppContainer(appWrap);\r\n }\r\n }\r\n this.agendaBase.wireEventActions();\r\n };\r\n MonthAgenda.prototype.appointmentFiltering = function (date) {\r\n var dateStart = util.resetTime(new Date(date.getTime()));\r\n var dateEnd = util.setTime(new Date(dateStart.getTime()), util.MS_PER_DAY);\r\n return this.parent.eventBase.filterEvents(dateStart, dateEnd);\r\n };\r\n MonthAgenda.prototype.clearElements = function () {\r\n var appointmentIndicators = [].slice.call(this.element.querySelectorAll('.' + cls.APPOINTMENT_INDICATOR_CLASS));\r\n for (var _i = 0, appointmentIndicators_1 = appointmentIndicators; _i < appointmentIndicators_1.length; _i++) {\r\n var appointmentIndicator = appointmentIndicators_1[_i];\r\n remove(appointmentIndicator);\r\n }\r\n this.appendAppContainer(this.element.querySelector('.' + cls.APPOINTMENT_WRAP_CLASS));\r\n };\r\n MonthAgenda.prototype.appendAppContainer = function (appWrap) {\r\n var app = createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS });\r\n addClass([app], cls.AGENDA_NO_EVENT_CLASS);\r\n app.innerHTML = this.parent.localeObj.getConstant('noEvents');\r\n util.removeChildren(appWrap);\r\n appWrap.appendChild(app);\r\n };\r\n MonthAgenda.prototype.getNextPreviousDate = function (type) {\r\n var selectedDate = this.parent.selectedDate;\r\n var interval = (type === 'next') ? this.parent.activeViewOptions.interval : -this.parent.activeViewOptions.interval;\r\n var navigateDate = util.addMonths(this.parent.selectedDate, interval);\r\n var month = (type === 'next') ? 2 : 0;\r\n var lastDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth() + month, 0).getDate();\r\n var date = (lastDate >= this.monthAgendaDate.getDate()) ? this.monthAgendaDate.getDate() : lastDate;\r\n this.monthAgendaDate = new Date(navigateDate.getFullYear(), navigateDate.getMonth(), date);\r\n return this.monthAgendaDate;\r\n };\r\n MonthAgenda.prototype.getAgendaBase = function () {\r\n return this.agendaBase || new AgendaBase(this.parent);\r\n };\r\n MonthAgenda.prototype.destroy = function () {\r\n if (this.agendaBase) {\r\n this.agendaBase.destroy();\r\n this.agendaBase = null;\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n return MonthAgenda;\r\n}(Month));\r\nexport { MonthAgenda };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { EventHandler, formatUnit, isNullOrUndefined, createElement, addClass, append, prepend, remove } from '@syncfusion/ej2-base';\r\nimport { ViewBase } from './view-base';\r\nimport { MonthEvent } from '../event-renderer/month';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * month view\r\n */\r\nvar Month = /** @class */ (function (_super) {\r\n __extends(Month, _super);\r\n function Month(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.dayNameFormat = 'wide';\r\n _this.viewClass = 'e-month-view';\r\n _this.isInverseTableSelect = false;\r\n _this.monthEvent = null;\r\n _this.monthDates = {};\r\n return _this;\r\n }\r\n Month.prototype.addEventListener = function () {\r\n this.parent.on(event.scrollUiUpdate, this.onScrollUIUpdate, this);\r\n this.parent.on(event.dataReady, this.onDataReady, this);\r\n this.parent.on(event.cellClick, this.onCellClick, this);\r\n };\r\n Month.prototype.removeEventListener = function () {\r\n if (this.parent) {\r\n this.parent.off(event.scrollUiUpdate, this.onScrollUIUpdate);\r\n this.parent.off(event.dataReady, this.onDataReady);\r\n this.parent.off(event.cellClick, this.onCellClick);\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Month.prototype.onDataReady = function (args) {\r\n this.monthEvent = new MonthEvent(this.parent);\r\n this.monthEvent.renderAppointments();\r\n this.parent.notify(event.eventsLoaded, {});\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Month.prototype.onCellClick = function (event) { };\r\n Month.prototype.onContentScroll = function (e) {\r\n this.parent.removeNewEventElement();\r\n this.parent.notify(event.virtualScroll, e);\r\n this.scrollTopPanel(e.target);\r\n this.scrollLeftPanel(e.target);\r\n this.setPersistence();\r\n };\r\n Month.prototype.scrollLeftPanel = function (target) {\r\n var leftPanel = this.getLeftPanelElement();\r\n if (leftPanel) {\r\n leftPanel.scrollTop = target.scrollTop;\r\n }\r\n };\r\n Month.prototype.getLeftPanelElement = function () {\r\n return this.element.querySelector('.' + cls.WEEK_NUMBER_WRAPPER_CLASS);\r\n };\r\n Month.prototype.onScrollUIUpdate = function (args) {\r\n var headerHeight = this.getHeaderBarHeight();\r\n var header = this.getDatesHeaderElement();\r\n var content = this.getContentAreaElement();\r\n var height = this.parent.element.offsetHeight - headerHeight - header.offsetHeight;\r\n var leftPanel = this.getLeftPanelElement();\r\n if (this.parent.height !== 'auto') {\r\n this.setContentHeight(content, leftPanel, height);\r\n }\r\n var scrollBarWidth = util.getScrollBarWidth();\r\n header.firstElementChild.style[args.cssProperties.rtlBorder] = '';\r\n header.style[args.cssProperties.rtlPadding] = '';\r\n if (content.offsetWidth - content.clientWidth > 0) {\r\n header.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\r\n header.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\r\n }\r\n else {\r\n header.firstElementChild.style[args.cssProperties.border] = '';\r\n header.style[args.cssProperties.padding] = '';\r\n }\r\n this.setColWidth(content);\r\n if (args.scrollPosition) {\r\n if (leftPanel) {\r\n leftPanel.scrollTop = args.scrollPosition.top;\r\n }\r\n content.scrollTop = args.scrollPosition.top;\r\n content.scrollLeft = args.scrollPosition.left;\r\n }\r\n else {\r\n var headerCell = this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + '[data-date=\"'\r\n + this.parent.selectedDate.getTime().toString() + '\"]');\r\n if (!isNullOrUndefined(headerCell)) {\r\n content.scrollLeft = !this.parent.enableRtl ?\r\n headerCell.offsetLeft : -(this.parent.getContentTable().offsetWidth - headerCell.offsetLeft - headerCell.offsetWidth);\r\n }\r\n else {\r\n content.scrollLeft = 0;\r\n }\r\n }\r\n this.retainScrollPosition();\r\n };\r\n Month.prototype.setContentHeight = function (content, leftPanelElement, height) {\r\n content.style.height = 'auto';\r\n if (this.parent.currentView === 'Month') {\r\n content.style.height = formatUnit(height);\r\n }\r\n if (leftPanelElement) {\r\n if (this.parent.currentView === 'MonthAgenda') {\r\n height = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight;\r\n }\r\n leftPanelElement.style.height = 'auto';\r\n leftPanelElement.style.height = formatUnit(height - this.getScrollXIndent(content));\r\n }\r\n };\r\n Month.prototype.generateColumnLevels = function () {\r\n var colLevels = [];\r\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n colLevels = this.parent.resourceBase.generateResourceLevels(level);\r\n if (this.parent.currentView === 'MonthAgenda') {\r\n colLevels = [level];\r\n }\r\n if (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0) {\r\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n colLevels = [this.getDateSlots(resourceLevel.renderDates, resourceLevel.workDays)];\r\n }\r\n }\r\n else {\r\n colLevels.push(level);\r\n }\r\n this.colLevels = colLevels;\r\n return colLevels;\r\n };\r\n Month.prototype.getDateSlots = function (renderDates, workDays) {\r\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH : workDays.length;\r\n var dateSlots = [];\r\n for (var col = 0; col < count; col++) {\r\n var classList = [cls.HEADER_CELLS_CLASS];\r\n var currentDateIndex = renderDates.slice(0, count).map(function (date) { return date.getDay(); });\r\n if (this.isCurrentMonth(this.parent.selectedDate) && currentDateIndex.indexOf(this.parent.getCurrentTime().getDay()) === col) {\r\n classList.push(cls.CURRENT_DAY_CLASS);\r\n }\r\n dateSlots.push({ date: renderDates[col], type: 'monthDay', className: classList, colSpan: 1, workDays: workDays });\r\n }\r\n return dateSlots;\r\n };\r\n Month.prototype.getDayNameFormat = function () {\r\n if (this.parent.isAdaptive || this.parent.activeViewOptions.group.resources.length > 0) {\r\n return 'abbreviated';\r\n }\r\n return 'wide';\r\n };\r\n Month.prototype.renderLayout = function (type) {\r\n this.dayNameFormat = this.getDayNameFormat();\r\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\r\n var clsList = [this.viewClass];\r\n clsList.push(type);\r\n if (this.parent.activeViewOptions.group.byDate) {\r\n clsList.push('e-by-date');\r\n }\r\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n clsList.push(cls.VIRTUAL_SCROLL_CLASS);\r\n }\r\n if (this.parent.eventSettings.ignoreWhitespace) {\r\n clsList.push(cls.IGNORE_WHITESPACE);\r\n }\r\n addClass([this.element], clsList);\r\n this.renderPanel(type);\r\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\r\n this.element.querySelector('table').setAttribute('role', 'presentation');\r\n this.colLevels = this.generateColumnLevels();\r\n this.renderHeader();\r\n this.renderContent();\r\n var target = (this.parent.currentView === 'MonthAgenda') ? this.parent.activeView.getPanel() : this.parent.element;\r\n if (this.parent.uiStateValues.isGroupAdaptive && !target.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\r\n this.renderResourceMobileLayout();\r\n }\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n Month.prototype.refreshHeader = function () {\r\n remove(this.element.querySelector('tbody tr'));\r\n this.renderHeader();\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n Month.prototype.wireCellEvents = function (element) {\r\n EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);\r\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\r\n if (!this.parent.isAdaptive) {\r\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\r\n }\r\n };\r\n Month.prototype.renderHeader = function () {\r\n var tr = createElement('tr');\r\n this.renderLeftIndent(tr);\r\n var dateTd = createElement('td');\r\n dateTd.appendChild(this.renderDatesHeader());\r\n tr.appendChild(dateTd);\r\n prepend([tr], this.element.querySelector('tbody'));\r\n };\r\n Month.prototype.renderLeftIndent = function (tr) {\r\n if (this.parent.activeViewOptions.showWeekNumber) {\r\n tr.appendChild(createElement('td', { className: 'e-left-indent' }));\r\n }\r\n };\r\n Month.prototype.renderContent = function () {\r\n var tr = createElement('tr');\r\n if (this.parent.activeViewOptions.showWeekNumber) {\r\n tr.appendChild(this.renderWeekNumberContent());\r\n }\r\n var workTd = createElement('td');\r\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n var contentArea = this.renderContentArea();\r\n if (this.parent.currentView === 'Month') {\r\n wrap.appendChild(contentArea);\r\n }\r\n else {\r\n var monthAgendaWrapper = createElement('div', { className: cls.TABLE_CONTAINER_CLASS });\r\n monthAgendaWrapper.appendChild(contentArea);\r\n wrap.appendChild(monthAgendaWrapper);\r\n }\r\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\r\n workTd.appendChild(wrap);\r\n tr.appendChild(workTd);\r\n this.element.querySelector('tbody').appendChild(tr);\r\n this.renderAppointmentContainer();\r\n };\r\n Month.prototype.renderWeekNumberContent = function () {\r\n var dateCol = this.renderDates.map(function (date) { return new Date(+date); });\r\n var td = createElement('td');\r\n var contentWrapper = createElement('div', { className: cls.WEEK_NUMBER_WRAPPER_CLASS });\r\n td.appendChild(contentWrapper);\r\n var contentWrapTable = this.createTableLayout();\r\n contentWrapper.appendChild(contentWrapTable);\r\n var noOfDays = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH :\r\n this.parent.activeViewOptions.workDays.length;\r\n for (var i = 0, length_1 = (this.renderDates.length / noOfDays); i < length_1; i++) {\r\n var dates = dateCol.splice(0, noOfDays);\r\n var weekNumber = this.parent.getWeekNumberContent(dates);\r\n contentWrapTable.querySelector('tbody').appendChild(this.createWeekNumberElement(weekNumber));\r\n }\r\n return td;\r\n };\r\n Month.prototype.renderAppointmentContainer = function () {\r\n //Here needs to render mobile view appointment details on selected date\r\n };\r\n Month.prototype.renderDatesHeader = function () {\r\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\r\n var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\r\n container.appendChild(wrap);\r\n var table = this.createTableLayout();\r\n this.createColGroup(table, this.colLevels[this.colLevels.length - 1]);\r\n var trEle = createElement('tr');\r\n for (var i = 0; i < this.colLevels.length; i++) {\r\n var level = this.colLevels[i];\r\n var ntr = trEle.cloneNode();\r\n for (var j = 0; j < level.length; j++) {\r\n var td = level[j];\r\n ntr.appendChild(this.createHeaderCell(td));\r\n }\r\n table.querySelector('tbody').appendChild(ntr);\r\n }\r\n wrap.appendChild(table);\r\n return container;\r\n };\r\n Month.prototype.createHeaderCell = function (td) {\r\n var tdEle = createElement('td');\r\n this.addAttributes(td, tdEle);\r\n if (td.type === 'monthDay') {\r\n var ele = createElement('span', { innerHTML: util.capitalizeFirstWord(this.parent.getDayNames(this.dayNameFormat)[td.date.getDay()], 'single') });\r\n tdEle.appendChild(ele);\r\n }\r\n if (td.type === 'resourceHeader') {\r\n this.setResourceHeaderContent(tdEle, td);\r\n }\r\n if (td.type === 'dateHeader') {\r\n addClass([tdEle], cls.DATE_HEADER_CLASS);\r\n tdEle.setAttribute('data-date', td.date.getTime().toString());\r\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\r\n var cellArgs = { date: td.date, type: td.type };\r\n var elementId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\r\n var templateId = elementId + viewName + 'dateHeaderTemplate';\r\n var dateTemplate = [].slice.call(this.parent.getDateHeaderTemplate()(cellArgs, this.parent, 'dateHeaderTemplate', templateId, false));\r\n if (dateTemplate && dateTemplate.length) {\r\n append(dateTemplate, tdEle);\r\n }\r\n }\r\n else {\r\n var ele = createElement('span', { className: cls.NAVIGATE_CLASS });\r\n var skeleton = 'full';\r\n var title = this.parent.globalize.formatDate(td.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });\r\n ele.setAttribute('title', util.capitalizeFirstWord(title, 'multiple'));\r\n var innerText = (this.parent.calendarUtil.isMonthStart(td.date) && !this.isCurrentDate(td.date) && !this.parent.isAdaptive) ?\r\n this.parent.globalize.formatDate(td.date, { format: 'MMM d', calendar: this.parent.getCalendarMode() }) :\r\n this.parent.globalize.formatDate(td.date, { skeleton: 'd', calendar: this.parent.getCalendarMode() });\r\n ele.innerHTML = util.capitalizeFirstWord(innerText, 'single');\r\n tdEle.appendChild(ele);\r\n }\r\n this.wireCellEvents(tdEle);\r\n }\r\n var args = { elementType: td.type, element: tdEle, date: td.date, groupIndex: td.groupIndex };\r\n this.parent.trigger(event.renderCell, args);\r\n return tdEle;\r\n };\r\n Month.prototype.getContentSlots = function () {\r\n if (!(this.colLevels[this.colLevels.length - 1] && this.colLevels[this.colLevels.length - 1][0])) {\r\n return [];\r\n }\r\n var slotDatas = [];\r\n var prepareSlots = function (rowIndex, renderDate, resData, classList) {\r\n var data = {\r\n date: new Date(+renderDate), groupIndex: resData.groupIndex, workDays: resData.workDays,\r\n type: 'monthCells', className: classList || [cls.WORK_CELLS_CLASS]\r\n };\r\n if (!slotDatas[rowIndex]) {\r\n slotDatas[rowIndex] = [];\r\n }\r\n slotDatas[rowIndex].push(data);\r\n };\r\n var includeResource = this.parent.currentView !== 'MonthAgenda' &&\r\n this.parent.activeViewOptions.group.resources.length > 0;\r\n if (includeResource && !this.parent.uiStateValues.isGroupAdaptive && !this.parent.activeViewOptions.group.byDate) {\r\n for (var _i = 0, _a = this.colLevels[this.colLevels.length - 2]; _i < _a.length; _i++) {\r\n var res = _a[_i];\r\n var dates = res.renderDates.map(function (date) { return new Date(+date); });\r\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH : res.workDays.length;\r\n for (var i = 0; i < (res.renderDates.length / count); i++) {\r\n var colDates = dates.splice(0, count);\r\n for (var _b = 0, colDates_1 = colDates; _b < colDates_1.length; _b++) {\r\n var colDate = colDates_1[_b];\r\n prepareSlots(i, colDate, res);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n var dates = this.renderDates.map(function (date) { return new Date(+date); });\r\n var count = this.parent.activeViewOptions.showWeekend ? util.WEEK_LENGTH :\r\n this.parent.activeViewOptions.workDays.length;\r\n for (var i = 0; i < (this.renderDates.length / count); i++) {\r\n var colDates = dates.splice(0, count);\r\n for (var _c = 0, colDates_2 = colDates; _c < colDates_2.length; _c++) {\r\n var colDate = colDates_2[_c];\r\n if (includeResource) {\r\n var lastRow = this.colLevels[(this.colLevels.length - 1)];\r\n var resourcesTd = lastRow.slice(0, lastRow.length / count);\r\n for (var resIndex = 0; resIndex < resourcesTd.length; resIndex++) {\r\n var clsList = void 0;\r\n if (resIndex !== 0) {\r\n clsList = [cls.WORK_CELLS_CLASS, cls.DISABLE_DATE];\r\n }\r\n prepareSlots(i, colDate, resourcesTd[resIndex], clsList);\r\n }\r\n }\r\n else {\r\n prepareSlots(i, colDate, this.colLevels[this.colLevels.length - 1][0]);\r\n }\r\n }\r\n }\r\n }\r\n return slotDatas;\r\n };\r\n Month.prototype.updateClassList = function (data) {\r\n if (this.isOtherMonth(data.date)) {\r\n data.className.push(cls.OTHERMONTH_CLASS);\r\n }\r\n if (!this.parent.isMinMaxDate(data.date)) {\r\n data.className.push(cls.DISABLE_DATES);\r\n }\r\n if (this.parent.currentView === 'MonthAgenda' && this.parent.isSelectedDate(data.date)) {\r\n data.className.push(cls.SELECTED_CELL_CLASS);\r\n }\r\n };\r\n Month.prototype.isOtherMonth = function (date) {\r\n return date.getTime() < this.monthDates.start.getTime() || date.getTime() > this.monthDates.end.getTime();\r\n };\r\n Month.prototype.renderContentArea = function () {\r\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\r\n this.addAutoHeightClass(tbl);\r\n if (this.parent.currentView === 'TimelineMonth') {\r\n this.createColGroup(tbl, this.colLevels[this.colLevels.length - 1]);\r\n }\r\n var monthDate = new Date(this.parent.selectedDate.getTime());\r\n this.monthDates = {\r\n start: this.parent.calendarUtil.firstDateOfMonth(monthDate),\r\n end: this.parent.calendarUtil.lastDateOfMonth(util.addMonths(monthDate, this.parent.activeViewOptions.interval - 1))\r\n };\r\n var tBody = tbl.querySelector('tbody');\r\n append(this.getContentRows(), tBody);\r\n this.wireCellEvents(tBody);\r\n return tbl;\r\n };\r\n Month.prototype.getContentRows = function () {\r\n var trows = [];\r\n var tr = createElement('tr', { attrs: { role: 'row' } });\r\n var td = createElement('td', { attrs: { role: 'gridcell', 'aria-selected': 'false' } });\r\n var slotDatas = this.getContentSlots();\r\n for (var row = 0; row < slotDatas.length; row++) {\r\n var ntr = tr.cloneNode();\r\n for (var col = 0; col < slotDatas[row].length; col++) {\r\n var ntd = this.createContentTd(slotDatas[row][col], td);\r\n ntr.appendChild(ntd);\r\n }\r\n trows.push(ntr);\r\n }\r\n return trows;\r\n };\r\n Month.prototype.createContentTd = function (data, td) {\r\n var ntd = td.cloneNode();\r\n if (data.colSpan) {\r\n ntd.setAttribute('colspan', data.colSpan.toString());\r\n }\r\n this.updateClassList(data);\r\n var type = data.type;\r\n if (data.className.indexOf(cls.RESOURCE_PARENT_CLASS) !== -1) {\r\n data.className.push(cls.RESOURCE_GROUP_CELLS_CLASS);\r\n type = 'resourceGroupCells';\r\n }\r\n if (this.parent.workHours.highlight && this.isWorkDay(data.date, data.workDays)) {\r\n data.className.push(cls.WORKDAY_CLASS);\r\n }\r\n if (this.isCurrentDate(data.date)) {\r\n data.className.push(cls.CURRENTDATE_CLASS);\r\n }\r\n addClass([ntd], data.className);\r\n ntd.setAttribute('data-date', data.date.getTime().toString());\r\n if (!isNullOrUndefined(data.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {\r\n var groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\r\n data.groupIndex;\r\n ntd.setAttribute('data-group-index', '' + groupIndex);\r\n }\r\n this.renderDateHeaderElement(data, ntd);\r\n if (this.parent.activeViewOptions.cellTemplate) {\r\n var args_1 = { date: data.date, type: type, groupIndex: data.groupIndex };\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.cellTemplateName;\r\n var templateId = scheduleId + viewName + 'cellTemplate';\r\n var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));\r\n append(cellTemplate, ntd);\r\n }\r\n var args = { elementType: type, element: ntd, date: data.date, groupIndex: data.groupIndex };\r\n this.parent.trigger(event.renderCell, args);\r\n return ntd;\r\n };\r\n Month.prototype.renderDateHeaderElement = function (data, ntd) {\r\n if (this.parent.currentView === 'TimelineMonth') {\r\n return;\r\n }\r\n var dateHeader = createElement('div', { className: cls.DATE_HEADER_CLASS });\r\n if (this.parent.activeViewOptions.cellHeaderTemplate) {\r\n var args = { date: data.date, type: data.type, groupIndex: data.groupIndex };\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.cellHeaderTemplateName;\r\n var templateId = scheduleId + viewName + 'cellHeaderTemplate';\r\n var cellHeaderTemplate = [].slice.call(this.parent.getCellHeaderTemplate()(args, this.parent, 'cellHeaderTemplate', templateId, false));\r\n append(cellHeaderTemplate, dateHeader);\r\n }\r\n else {\r\n var innerText = (this.parent.calendarUtil.isMonthStart(data.date) && !this.isCurrentDate(data.date) && !this.parent.isAdaptive) ?\r\n this.parent.globalize.formatDate(data.date, { format: 'MMM d', calendar: this.parent.getCalendarMode() }) :\r\n this.parent.globalize.formatDate(data.date, { skeleton: 'd', calendar: this.parent.getCalendarMode() });\r\n dateHeader.innerHTML = util.capitalizeFirstWord(innerText, 'single');\r\n }\r\n ntd.appendChild(dateHeader);\r\n if (this.getModuleName() === 'month') {\r\n addClass([dateHeader], cls.NAVIGATE_CLASS);\r\n var skeleton = 'full';\r\n var announcementText = this.parent.globalize.formatDate(data.date, { skeleton: skeleton, calendar: this.parent.getCalendarMode() });\r\n dateHeader.setAttribute('aria-label', announcementText);\r\n }\r\n };\r\n Month.prototype.getMonthStart = function (currentDate) {\r\n var monthStart = util.getWeekFirstDate(this.parent.calendarUtil.firstDateOfMonth(currentDate), this.parent.activeViewOptions.firstDayOfWeek);\r\n var start = new Date(monthStart.getFullYear(), monthStart.getMonth(), monthStart.getDate());\r\n return start;\r\n };\r\n Month.prototype.getMonthEnd = function (currentDate) {\r\n var endDate = util.addMonths(currentDate, this.parent.activeViewOptions.interval - 1);\r\n var lastWeekOfMonth = util.getWeekFirstDate(this.parent.calendarUtil.lastDateOfMonth(endDate), this.parent.activeViewOptions.firstDayOfWeek);\r\n var monthEnd = util.addDays(lastWeekOfMonth, util.WEEK_LENGTH - 1);\r\n return monthEnd;\r\n };\r\n Month.prototype.getRenderDates = function (workDays) {\r\n var renderDates = [];\r\n var currentDate = util.resetTime(this.parent.selectedDate);\r\n var start = this.getMonthStart(currentDate);\r\n var monthEnd = this.getMonthEnd(currentDate);\r\n do {\r\n if (this.parent.activeViewOptions.showWeekend) {\r\n renderDates.push(start);\r\n }\r\n else {\r\n if (this.isWorkDay(start, workDays)) {\r\n renderDates.push(start);\r\n }\r\n }\r\n start = util.addDays(start, 1);\r\n if (start.getHours() > 0) {\r\n start = util.resetTime(start);\r\n }\r\n } while (start.getTime() <= monthEnd.getTime());\r\n if (!workDays) {\r\n this.renderDates = renderDates;\r\n }\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.previousNextIconHandler();\r\n }\r\n return renderDates;\r\n };\r\n Month.prototype.getNextPreviousDate = function (type) {\r\n if (type === 'next') {\r\n return util.addMonths(this.parent.selectedDate, this.parent.activeViewOptions.interval);\r\n }\r\n else {\r\n return util.addMonths(this.parent.selectedDate, -(this.parent.activeViewOptions.interval));\r\n }\r\n };\r\n Month.prototype.getEndDateFromStartDate = function (start) {\r\n return util.addDays(new Date(start.getTime()), 1);\r\n };\r\n Month.prototype.getDateRangeText = function () {\r\n if (this.parent.isAdaptive || isNullOrUndefined(this.parent.activeViewOptions.dateFormat)) {\r\n if (this.parent.activeViewOptions.interval > 1) {\r\n var endDate = util.addMonths(util.lastDateOfMonth(this.parent.selectedDate), this.parent.activeViewOptions.interval - 1);\r\n if (this.parent.selectedDate.getFullYear() === endDate.getFullYear()) {\r\n var monthNames = (this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM', calendar: this.parent.getCalendarMode() })) + ' - ' +\r\n (this.parent.globalize.formatDate(endDate, { format: 'MMMM ', calendar: this.parent.getCalendarMode() })) +\r\n this.parent.globalize.formatDate(endDate, { skeleton: 'y', calendar: this.parent.getCalendarMode() });\r\n return util.capitalizeFirstWord(monthNames, 'single');\r\n }\r\n var text = (this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM', calendar: this.parent.getCalendarMode() })) + ' ' +\r\n this.parent.selectedDate.getFullYear() + ' - ' +\r\n this.parent.globalize.formatDate(endDate, { format: 'MMMM ', calendar: this.parent.getCalendarMode() }) +\r\n this.parent.globalize.formatDate(endDate, { skeleton: 'y', calendar: this.parent.getCalendarMode() });\r\n return util.capitalizeFirstWord(text, 'single');\r\n }\r\n var format = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\r\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: format, calendar: this.parent.getCalendarMode() }), 'single');\r\n }\r\n return this.formatDateRange(this.parent.selectedDate);\r\n };\r\n Month.prototype.getLabelText = function (view) {\r\n return this.parent.localeObj.getConstant(view) + ' of ' + util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: 'MMMM y', calendar: this.parent.getCalendarMode() }), 'single');\r\n };\r\n Month.prototype.createWeekNumberElement = function (text) {\r\n var tr = createElement('tr');\r\n var td = createElement('td', {\r\n className: cls.WEEK_NUMBER_CLASS,\r\n attrs: { 'title': (text ? this.parent.localeObj.getConstant('week') + ' ' + text : '') },\r\n innerHTML: (text || '')\r\n });\r\n tr.appendChild(td);\r\n var args = { elementType: 'weekNumberCell', element: td };\r\n this.parent.trigger(event.renderCell, args);\r\n return tr;\r\n };\r\n Month.prototype.unWireEvents = function () {\r\n var contentScrollableEle = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (contentScrollableEle) {\r\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\r\n }\r\n };\r\n Month.prototype.getModuleName = function () {\r\n return 'month';\r\n };\r\n Month.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n if (this.element) {\r\n if (this.monthEvent) {\r\n this.monthEvent.destroy();\r\n this.monthEvent = null;\r\n }\r\n this.unWireEvents();\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.destroy();\r\n }\r\n if (this.parent.scheduleTouchModule) {\r\n this.parent.scheduleTouchModule.resetValues();\r\n }\r\n _super.prototype.destroy.call(this);\r\n }\r\n };\r\n return Month;\r\n}(ViewBase));\r\nexport { Month };\r\n","import { isNullOrUndefined, addClass, removeClass } from '@syncfusion/ej2-base';\r\nimport { VirtualScroll } from '../actions/virtual-scroll';\r\nimport { EventTooltip } from '../popups/event-tooltip';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * Schedule DOM rendering\r\n */\r\nvar Render = /** @class */ (function () {\r\n function Render(parent) {\r\n this.parent = parent;\r\n }\r\n Render.prototype.render = function (viewName, isDataRefresh) {\r\n if (isDataRefresh === void 0) { isDataRefresh = true; }\r\n this.initializeLayout(viewName);\r\n if (this.parent.activeView && isDataRefresh) {\r\n this.parent.crudModule.refreshDataManager();\r\n }\r\n };\r\n Render.prototype.initializeLayout = function (viewName) {\r\n if (this.parent.activeView) {\r\n this.parent.resetTemplates();\r\n this.parent.activeView.removeEventListener();\r\n this.parent.activeView.destroy();\r\n }\r\n switch (viewName) {\r\n case 'Day':\r\n this.parent.activeView = this.parent.dayModule;\r\n break;\r\n case 'Week':\r\n this.parent.activeView = this.parent.weekModule;\r\n break;\r\n case 'WorkWeek':\r\n this.parent.activeView = this.parent.workWeekModule;\r\n break;\r\n case 'Month':\r\n this.parent.activeView = this.parent.monthModule;\r\n break;\r\n case 'Year':\r\n this.parent.activeView = this.parent.yearModule;\r\n break;\r\n case 'Agenda':\r\n this.parent.activeView = this.parent.agendaModule;\r\n break;\r\n case 'MonthAgenda':\r\n this.parent.activeView = this.parent.monthAgendaModule;\r\n break;\r\n case 'TimelineDay':\r\n this.parent.activeView = this.parent.timelineViewsModule;\r\n this.parent.activeView.viewClass = 'e-timeline-day-view';\r\n break;\r\n case 'TimelineWorkWeek':\r\n this.parent.activeView = this.parent.timelineViewsModule;\r\n this.parent.activeView.viewClass = 'e-timeline-work-week-view';\r\n break;\r\n case 'TimelineWeek':\r\n this.parent.activeView = this.parent.timelineViewsModule;\r\n this.parent.activeView.viewClass = 'e-timeline-week-view';\r\n break;\r\n case 'TimelineMonth':\r\n this.parent.activeView = this.parent.timelineMonthModule;\r\n break;\r\n case 'TimelineYear':\r\n this.parent.activeView = this.parent.timelineYearModule;\r\n break;\r\n }\r\n if (isNullOrUndefined(this.parent.activeView)) {\r\n var firstView = this.parent.viewCollections[0].option;\r\n if (firstView) {\r\n this.parent.setProperties({ currentView: firstView }, true);\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.updateActiveView();\r\n this.parent.headerModule.setCalendarView();\r\n }\r\n return this.initializeLayout(firstView);\r\n }\r\n throw Error('Inject required modules');\r\n }\r\n this.parent.activeView.viewIndex = this.parent.viewIndex;\r\n this.updateLabelText(viewName);\r\n this.parent.activeView.addEventListener();\r\n this.parent.activeView.getRenderDates();\r\n this.parent.uiStateValues.isGroupAdaptive = this.parent.activeViewOptions.group.resources.length > 0 &&\r\n (this.parent.enableAdaptiveUI && !this.parent.isAdaptive ||\r\n this.parent.isAdaptive && this.parent.activeViewOptions.group.enableCompactView);\r\n if (this.parent.virtualScrollModule) {\r\n this.parent.virtualScrollModule.destroy();\r\n this.parent.virtualScrollModule = null;\r\n }\r\n if (this.parent.currentView.indexOf('Timeline') !== -1 && this.parent.currentView.indexOf('Year') === -1\r\n && this.parent.activeViewOptions.allowVirtualScrolling\r\n && this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.parent.virtualScrollModule = new VirtualScroll(this.parent);\r\n this.parent.uiStateValues.top = 0;\r\n }\r\n this.updateHeader();\r\n this.parent.activeView.renderLayout(cls.CURRENT_PANEL_CLASS);\r\n this.parent.renderTemplates();\r\n if (this.parent.eventTooltip) {\r\n this.parent.eventTooltip.destroy();\r\n this.parent.eventTooltip = null;\r\n }\r\n if (this.parent.eventSettings.enableTooltip || (this.parent.activeViewOptions.group.resources.length > 0\r\n && this.parent.activeViewOptions.group.headerTooltipTemplate)) {\r\n this.parent.eventTooltip = new EventTooltip(this.parent);\r\n }\r\n };\r\n Render.prototype.updateHeader = function () {\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.setDayOfWeek(this.parent.activeViewOptions.firstDayOfWeek);\r\n if (this.parent.activeViewOptions.readonly) {\r\n addClass([this.parent.element], cls.READ_ONLY);\r\n }\r\n else if (this.parent.element.classList.contains(cls.READ_ONLY)) {\r\n removeClass([this.parent.element], cls.READ_ONLY);\r\n }\r\n this.parent.headerModule.updateDateRange(this.parent.activeView.getDateRangeText());\r\n this.parent.headerModule.updateHeaderItems('remove');\r\n }\r\n };\r\n Render.prototype.updateLabelText = function (view) {\r\n var content = this.parent.activeView.getLabelText(view);\r\n this.parent.element.setAttribute('role', 'main');\r\n this.parent.element.setAttribute('aria-label', content);\r\n };\r\n return Render;\r\n}());\r\nexport { Render };\r\n","import { createElement } from '@syncfusion/ej2-base';\r\nimport { MS_PER_DAY, capitalizeFirstWord } from '../base/util';\r\n/**\r\n * timeline header rows\r\n */\r\nvar TimelineHeaderRow = /** @class */ (function () {\r\n function TimelineHeaderRow(parent, renderDates) {\r\n this.parent = parent;\r\n this.renderDates = renderDates;\r\n }\r\n TimelineHeaderRow.prototype.groupByYear = function (dates) {\r\n var result = {};\r\n for (var _i = 0, dates_1 = dates; _i < dates_1.length; _i++) {\r\n var d = dates_1[_i];\r\n var key = d.getFullYear();\r\n result[key] = result[key] || [];\r\n result[key].push(d);\r\n }\r\n return result;\r\n };\r\n TimelineHeaderRow.prototype.groupByMonth = function (dates) {\r\n var result = {};\r\n for (var _i = 0, dates_2 = dates; _i < dates_2.length; _i++) {\r\n var d = dates_2[_i];\r\n var key = (d.getFullYear() - 1970) * 12 + d.getMonth();\r\n result[key] = result[key] || [];\r\n result[key].push(d);\r\n }\r\n return result;\r\n };\r\n TimelineHeaderRow.prototype.groupByWeek = function (dates) {\r\n var result = {};\r\n for (var _i = 0, dates_3 = dates; _i < dates_3.length; _i++) {\r\n var d = dates_3[_i];\r\n var jsDate = +new Date(1970, 0, 1);\r\n var tzOffsetDiff = d.getTimezoneOffset() - new Date(1970, 0, 1).getTimezoneOffset();\r\n var key = Math.ceil(((((+d - jsDate) - (tzOffsetDiff * 60 * 1000)) / MS_PER_DAY) + new Date(jsDate).getDay() + 1) / 7);\r\n if (this.parent.firstDayOfWeek && this.parent.firstDayOfWeek > new Date(+d).getDay()) {\r\n key = key - 1;\r\n }\r\n result[key] = result[key] || [];\r\n result[key].push(d);\r\n }\r\n return result;\r\n };\r\n TimelineHeaderRow.prototype.generateSlots = function (data, colspan, row, cls, type) {\r\n var _this = this;\r\n var dateParser = function (date, format) {\r\n return _this.parent.globalize.formatDate(date, { format: format, calendar: _this.parent.getCalendarMode() });\r\n };\r\n var tdDatas = [];\r\n var keys = Object.keys(data);\r\n for (var i = 0; i < keys.length; i++) {\r\n var dates = data[keys[i]];\r\n var htmlCol = void 0;\r\n if (row.template) {\r\n var args = { date: dates[0], type: type };\r\n var templateId = this.parent.element.id + '_headerRowTemplate';\r\n htmlCol = [].slice.call(this.parent.templateParser(row.template)(args, this.parent, 'template', templateId, false));\r\n }\r\n else {\r\n var viewTemplate = void 0;\r\n switch (row.option) {\r\n case 'Year':\r\n viewTemplate = \"\" + dateParser(dates[0], 'y') + \"\";\r\n break;\r\n case 'Month':\r\n viewTemplate = \"\" + capitalizeFirstWord(dateParser(dates[0], 'MMMM'), 'single') + \"\";\r\n break;\r\n case 'Week':\r\n viewTemplate = \"\" + this.parent.getWeekNumberContent(dates) + \"\";\r\n }\r\n var headerWrapper = createElement('div', { innerHTML: viewTemplate });\r\n htmlCol = [].slice.call(headerWrapper.childNodes);\r\n }\r\n tdDatas.push({ date: dates[0], type: type, className: [cls], colSpan: dates.length * colspan, template: htmlCol });\r\n }\r\n return tdDatas;\r\n };\r\n TimelineHeaderRow.prototype.generateColumnLevels = function (dateSlots, hourSlots) {\r\n var levels = [];\r\n var rows = this.parent.activeViewOptions.headerRows;\r\n var lastLevelColspan = 1;\r\n if (rows[rows.length - 1].option === 'Hour' && hourSlots.length > 0) {\r\n lastLevelColspan = hourSlots.length / dateSlots.length;\r\n }\r\n var tdDatas = [];\r\n var byYear;\r\n var byMonth;\r\n var byWeek;\r\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\r\n var row = rows_1[_i];\r\n switch (row.option) {\r\n case 'Year':\r\n byYear = this.groupByYear(this.renderDates);\r\n tdDatas = this.generateSlots(byYear, lastLevelColspan, row, 'e-header-year-cell', 'yearHeader');\r\n levels.push(tdDatas);\r\n break;\r\n case 'Month':\r\n byMonth = this.groupByMonth(this.renderDates);\r\n tdDatas = this.generateSlots(byMonth, lastLevelColspan, row, 'e-header-month-cell', 'monthHeader');\r\n levels.push(tdDatas);\r\n break;\r\n case 'Week':\r\n byWeek = this.groupByWeek(this.renderDates);\r\n tdDatas = this.generateSlots(byWeek, lastLevelColspan, row, 'e-header-week-cell', 'weekHeader');\r\n levels.push(tdDatas);\r\n break;\r\n case 'Date':\r\n tdDatas = dateSlots;\r\n tdDatas = tdDatas.map(function (value) {\r\n value.colSpan = lastLevelColspan;\r\n return value;\r\n });\r\n levels.push(tdDatas);\r\n break;\r\n case 'Hour':\r\n if (hourSlots.length > 0) {\r\n levels.push(hourSlots);\r\n }\r\n break;\r\n }\r\n }\r\n return levels;\r\n };\r\n return TimelineHeaderRow;\r\n}());\r\nexport { TimelineHeaderRow };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { EventHandler, createElement, formatUnit } from '@syncfusion/ej2-base';\r\nimport { Month } from './month';\r\nimport { TimelineEvent } from '../event-renderer/timeline-view';\r\nimport { TimelineHeaderRow } from './timeline-header-row';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * timeline month view\r\n */\r\nvar TimelineMonth = /** @class */ (function (_super) {\r\n __extends(TimelineMonth, _super);\r\n function TimelineMonth(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-timeline-month-view';\r\n _this.isInverseTableSelect = true;\r\n _this.appointment = null;\r\n return _this;\r\n }\r\n TimelineMonth.prototype.getModuleName = function () {\r\n return 'timelineMonth';\r\n };\r\n TimelineMonth.prototype.onDataReady = function () {\r\n this.appointment = new TimelineEvent(this.parent, 'day');\r\n this.appointment.renderAppointments();\r\n this.parent.notify(event.eventsLoaded, {});\r\n };\r\n TimelineMonth.prototype.getLeftPanelElement = function () {\r\n return this.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n };\r\n TimelineMonth.prototype.scrollTopPanel = function (target) {\r\n _super.prototype.scrollTopPanel.call(this, target);\r\n this.scrollHeaderLabels(target);\r\n };\r\n TimelineMonth.prototype.setContentHeight = function (content, leftPanelElement, height) {\r\n if (leftPanelElement) {\r\n leftPanelElement.style.height = formatUnit(height - this.getScrollXIndent(content));\r\n }\r\n content.style.height = formatUnit(height);\r\n };\r\n TimelineMonth.prototype.getDateSlots = function (renderDates, workDays) {\r\n var dateSlots = [];\r\n for (var _i = 0, renderDates_1 = renderDates; _i < renderDates_1.length; _i++) {\r\n var col = renderDates_1[_i];\r\n var classList = [cls.HEADER_CELLS_CLASS];\r\n if (this.isCurrentDate(col)) {\r\n classList.push(cls.CURRENT_DAY_CLASS);\r\n }\r\n dateSlots.push({ date: col, type: 'dateHeader', className: classList, colSpan: 1, workDays: workDays });\r\n }\r\n return dateSlots;\r\n };\r\n TimelineMonth.prototype.renderLeftIndent = function (tr) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.parent.resourceBase.renderResourceHeaderIndent(tr);\r\n }\r\n };\r\n TimelineMonth.prototype.renderContent = function () {\r\n var contentTr = createElement('tr');\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n var resTd = createElement('td');\r\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\r\n contentTr.appendChild(resTd);\r\n }\r\n var contentTd = createElement('td');\r\n this.element.querySelector('tbody').appendChild(contentTr);\r\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n wrap.appendChild(this.renderContentArea());\r\n wrap.appendChild(this.createEventTable(this.getRowCount()));\r\n this.collapseRows(wrap);\r\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\r\n contentTd.appendChild(wrap);\r\n if (this.parent.virtualScrollModule) {\r\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\r\n }\r\n contentTr.appendChild(contentTd);\r\n };\r\n TimelineMonth.prototype.getRowCount = function () {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n return this.parent.resourceBase.renderedResources.length;\r\n }\r\n return 1;\r\n };\r\n TimelineMonth.prototype.getContentSlots = function () {\r\n var slotDatas = [];\r\n for (var row = 0; row < this.getRowCount(); row++) {\r\n for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {\r\n var data = _a[_i];\r\n data.className = [cls.WORK_CELLS_CLASS];\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n var resLevel = this.parent.resourceBase.renderedResources[row];\r\n data.workDays = resLevel.resourceData[resLevel.resource.workDaysField] || this.parent.workDays;\r\n data.className = data.className.concat(resLevel.className);\r\n data.groupIndex = resLevel.groupIndex;\r\n data.groupOrder = resLevel.groupOrder;\r\n }\r\n var slotData = {\r\n date: new Date(+data.date), colSpan: data.colSpan, groupIndex: data.groupIndex, workDays: data.workDays,\r\n type: 'monthCells', className: data.className\r\n };\r\n if (!slotDatas[row]) {\r\n slotDatas[row] = [];\r\n }\r\n slotDatas[row].push(slotData);\r\n }\r\n }\r\n return slotDatas;\r\n };\r\n TimelineMonth.prototype.updateClassList = function (data) {\r\n if (!this.parent.isMinMaxDate(data.date)) {\r\n data.className.push(cls.DISABLE_DATES);\r\n }\r\n };\r\n TimelineMonth.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.getContentAreaElement(), 'scroll', this.onContentScroll);\r\n };\r\n TimelineMonth.prototype.getMonthStart = function (currentDate) {\r\n var monthStart = this.parent.calendarUtil.firstDateOfMonth(util.resetTime(currentDate));\r\n return new Date(monthStart.getFullYear(), monthStart.getMonth(), monthStart.getDate());\r\n };\r\n TimelineMonth.prototype.getMonthEnd = function (currentDate) {\r\n var monthStart = this.parent.calendarUtil.firstDateOfMonth(util.resetTime(currentDate));\r\n return this.parent.calendarUtil.lastDateOfMonth(util.addMonths(new Date(+monthStart), this.parent.activeViewOptions.interval - 1));\r\n };\r\n TimelineMonth.prototype.generateColumnLevels = function () {\r\n var colLevels = [];\r\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\r\n colLevels.push(level);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.parent.resourceBase.generateResourceLevels(level, !this.parent.uiStateValues.isGroupAdaptive);\r\n }\r\n var hourSlots = [];\r\n if (this.parent.activeViewOptions.headerRows.length > 0) {\r\n var renderGn = new TimelineHeaderRow(this.parent, this.renderDates);\r\n colLevels = renderGn.generateColumnLevels(level, hourSlots);\r\n }\r\n this.colLevels = colLevels;\r\n return colLevels;\r\n };\r\n TimelineMonth.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n if (this.element) {\r\n var contentScrollableEle = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (contentScrollableEle) {\r\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\r\n }\r\n }\r\n if (this.appointment) {\r\n this.appointment.destroy();\r\n this.appointment = null;\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n return TimelineMonth;\r\n}(Month));\r\nexport { TimelineMonth };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { isNullOrUndefined, createElement, prepend, extend, formatUnit, append, setStyleAttribute } from '@syncfusion/ej2-base';\r\nimport { VerticalView } from './vertical-view';\r\nimport { TimelineEvent } from '../event-renderer/timeline-view';\r\nimport { TimelineHeaderRow } from './timeline-header-row';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * timeline views\r\n */\r\nvar TimelineViews = /** @class */ (function (_super) {\r\n __extends(TimelineViews, _super);\r\n function TimelineViews(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.timelineAppointment = null;\r\n _this.baseCssClass = 'e-timeline-view';\r\n return _this;\r\n }\r\n TimelineViews.prototype.getModuleName = function () {\r\n return 'timelineViews';\r\n };\r\n TimelineViews.prototype.getLeftPanelElement = function () {\r\n return this.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n };\r\n TimelineViews.prototype.scrollTopPanel = function (target) {\r\n _super.prototype.scrollTopPanel.call(this, target);\r\n this.scrollHeaderLabels(target);\r\n };\r\n TimelineViews.prototype.scrollToWorkHour = function () {\r\n var start = this.parent.getStartEndTime(this.parent.workHours.start);\r\n var currDateTime = this.isWorkDay(this.parent.selectedDate) && this.parent.workHours.highlight &&\r\n !isNullOrUndefined(start) ? new Date(+this.parent.selectedDate).setHours(start.getHours(), start.getMinutes(), 0, 0)\r\n : new Date(+this.parent.selectedDate).setHours(0, 0, 0, 0);\r\n var queryString = '[data-date=\"' + new Date(currDateTime).getTime().toString() + '\"]';\r\n var firstWorkHourCell = this.element.querySelector(queryString);\r\n if (firstWorkHourCell) {\r\n this.getContentAreaElement().scrollLeft = !this.parent.enableRtl ? firstWorkHourCell.offsetLeft :\r\n -(this.parent.getContentTable().offsetWidth - firstWorkHourCell.offsetLeft - firstWorkHourCell.offsetWidth);\r\n }\r\n };\r\n TimelineViews.prototype.scrollToHour = function (hour, scrollDate) {\r\n var date;\r\n var index;\r\n if (scrollDate) {\r\n index = this.parent.getIndexOfDate(this.renderDates, util.resetTime(scrollDate));\r\n if (index >= 0) {\r\n var timeString = hour.split(':');\r\n if (timeString.length === 2) {\r\n date = new Date(scrollDate.setHours(parseInt(timeString[0], 10), parseInt(timeString[1], 10), 0));\r\n }\r\n }\r\n }\r\n date = isNullOrUndefined(scrollDate) ? this.parent.getStartEndTime(hour) : date;\r\n if (isNullOrUndefined(date)) {\r\n return;\r\n }\r\n var scrollLeft = isNullOrUndefined(scrollDate) ? this.getLeftFromDateTime(null, date) :\r\n this.getLeftFromDateTime([index], date);\r\n this.getScrollableElement().scrollLeft = !this.parent.enableRtl ? scrollLeft : -scrollLeft;\r\n };\r\n TimelineViews.prototype.generateColumnLevels = function () {\r\n var levels = [];\r\n var dateSlots = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\r\n levels.push(dateSlots);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.parent.resourceBase.generateResourceLevels(dateSlots, !this.parent.uiStateValues.isGroupAdaptive);\r\n }\r\n var hourSlots = [];\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n hourSlots = this.generateTimeSlots(levels[levels.length - 1]);\r\n levels.push(hourSlots);\r\n }\r\n if (this.parent.activeViewOptions.headerRows.length > 0) {\r\n var renderGn = new TimelineHeaderRow(this.parent, this.renderDates);\r\n levels = renderGn.generateColumnLevels(dateSlots, hourSlots);\r\n }\r\n return levels;\r\n };\r\n TimelineViews.prototype.generateTimeSlots = function (dateSlots) {\r\n var _this = this;\r\n var handler = function (r) {\r\n r.type = r.first ? 'majorSlot' : 'minorSlot';\r\n r.className = r.first ? [cls.TIME_SLOT_CLASS] : [cls.TIME_SLOT_CLASS, cls.TIME_CELLS_CLASS];\r\n r.workDays = _this.parent.activeViewOptions.workDays;\r\n return r;\r\n };\r\n var timeSlotData = this.getTimeSlotRows(handler);\r\n var slots = [];\r\n for (var _i = 0, dateSlots_1 = dateSlots; _i < dateSlots_1.length; _i++) {\r\n var data = dateSlots_1[_i];\r\n data.colSpan = timeSlotData.length;\r\n var tempTimeSlots = extend([], timeSlotData, null, true);\r\n for (var _a = 0, tempTimeSlots_1 = tempTimeSlots; _a < tempTimeSlots_1.length; _a++) {\r\n var slot = tempTimeSlots_1[_a];\r\n var cellDate = util.resetTime(new Date('' + data.date));\r\n slot.date = util.setTime(cellDate, util.getDateInMs(slot.date));\r\n slots.push(slot);\r\n }\r\n }\r\n return slots;\r\n };\r\n TimelineViews.prototype.changeCurrentTimePosition = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.removeCurrentTimeIndicatorElements();\r\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\r\n var left = this.getLeftFromDateTime(currentDateIndex, this.parent.getCurrentTime());\r\n var height = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS).offsetHeight;\r\n var headerWrap = this.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\r\n var contentWrap = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n contentWrap.appendChild(createElement('div', {\r\n className: cls.CURRENT_TIMELINE_CLASS,\r\n styles: (this.parent.enableRtl ? 'right' : 'left') + ':' + formatUnit(left) + '; height:' + formatUnit(height)\r\n }));\r\n if (this.parent.virtualScrollModule) {\r\n var timeIndicator = this.parent.element.querySelector('.' + cls.CURRENT_TIMELINE_CLASS);\r\n var element = this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS + ' table');\r\n setStyleAttribute(timeIndicator, {\r\n transform: element.style.transform\r\n });\r\n }\r\n var currentTimeEle = createElement('div', {\r\n innerHTML: this.parent.getTimeString(this.parent.getCurrentTime()),\r\n className: cls.CURRENT_TIME_CLASS\r\n });\r\n headerWrap.appendChild(currentTimeEle);\r\n currentTimeEle.style[this.parent.enableRtl ? 'right' : 'left'] = formatUnit(left - (currentTimeEle.offsetWidth / 2));\r\n };\r\n TimelineViews.prototype.getLeftFromDateTime = function (currentDateIndex, date) {\r\n var startHour = this.getStartHour();\r\n var endHour = this.getEndHour();\r\n var diffInDates = 0;\r\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\r\n if (!isNullOrUndefined(currentDateIndex)) {\r\n var end = (endHour.getHours() === 0) ? 24 : endHour.getHours();\r\n if (currentDateIndex[0] !== 0) {\r\n diffInDates = (currentDateIndex[0]) * ((end - startHour.getHours()) * 60) + (endHour.getMinutes() - startHour.getMinutes());\r\n }\r\n diffInMinutes = diffInDates + diffInMinutes;\r\n }\r\n return (diffInMinutes * this.getWorkCellWidth() * this.parent.activeViewOptions.timeScale.slotCount) /\r\n this.parent.activeViewOptions.timeScale.interval;\r\n };\r\n TimelineViews.prototype.getWorkCellWidth = function () {\r\n return this.element.querySelector('.e-work-cells').getBoundingClientRect().width;\r\n };\r\n TimelineViews.prototype.renderHeader = function () {\r\n var tr = createElement('tr');\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.parent.resourceBase.renderResourceHeaderIndent(tr);\r\n }\r\n var dateTd = createElement('td');\r\n dateTd.appendChild(this.renderDatesHeader());\r\n tr.appendChild(dateTd);\r\n prepend([tr], this.element.querySelector('tbody'));\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n TimelineViews.prototype.createAllDayRow = function (table, tdData) { };\r\n TimelineViews.prototype.getCurrentTimeIndicatorIndex = function () {\r\n var currentDateIndex = [];\r\n var index = this.parent.getIndexOfDate(this.renderDates, util.resetTime(this.parent.getCurrentTime()));\r\n if (index >= 0) {\r\n currentDateIndex.push(index);\r\n }\r\n return currentDateIndex;\r\n };\r\n TimelineViews.prototype.renderContent = function () {\r\n var tr = createElement('tr');\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n var resTd = createElement('td');\r\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\r\n tr.appendChild(resTd);\r\n }\r\n var workTd = createElement('td');\r\n var wrap = this.renderContentArea();\r\n wrap.appendChild(this.createEventTable(this.getRowCount()));\r\n this.collapseRows(wrap);\r\n workTd.appendChild(wrap);\r\n tr.appendChild(workTd);\r\n if (this.parent.virtualScrollModule) {\r\n this.parent.virtualScrollModule.renderVirtualTrack(wrap);\r\n }\r\n this.element.querySelector('tbody').appendChild(tr);\r\n };\r\n TimelineViews.prototype.getRowCount = function () {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n return this.parent.resourceBase.renderedResources.length;\r\n }\r\n return 1;\r\n };\r\n TimelineViews.prototype.getResourceTdData = function (i, tdData) {\r\n var resLevel = this.parent.resourceBase.renderedResources[i];\r\n var resSHr = resLevel.resourceData[resLevel.resource.startHourField] || this.parent.workHours.start;\r\n var resEHr = resLevel.resourceData[resLevel.resource.endHourField] || this.parent.workHours.end;\r\n tdData.startHour = this.parent.getStartEndTime(resSHr);\r\n tdData.endHour = this.parent.getStartEndTime(resEHr);\r\n tdData.workDays = resLevel.resourceData[resLevel.resource.workDaysField] || this.parent.workDays;\r\n tdData.className = resLevel.className;\r\n tdData.groupIndex = resLevel.groupIndex;\r\n tdData.groupOrder = resLevel.groupOrder;\r\n return tdData;\r\n };\r\n TimelineViews.prototype.renderContentTable = function (table) {\r\n var tBody = table.querySelector('tbody');\r\n append(this.getContentRows(), tBody);\r\n };\r\n TimelineViews.prototype.getContentRows = function () {\r\n var rows = [];\r\n var tr = createElement('tr', { attrs: { role: 'row' } });\r\n var td = createElement('td', { attrs: { role: 'gridcell', 'aria-selected': 'false' } });\r\n var trCount = this.getRowCount();\r\n for (var i = 0; i < trCount; i++) {\r\n var ntr = tr.cloneNode();\r\n for (var _i = 0, _a = this.colLevels[this.colLevels.length - 1]; _i < _a.length; _i++) {\r\n var tdData = _a[_i];\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n tdData = this.getResourceTdData(i, tdData);\r\n }\r\n var ntd = this.createContentTd(tdData, tdData, td);\r\n ntr.appendChild(ntd);\r\n }\r\n rows.push(ntr);\r\n }\r\n return rows;\r\n };\r\n TimelineViews.prototype.getContentTdClass = function (r) {\r\n return (r.first || !this.parent.activeViewOptions.timeScale.enable) ? [cls.WORK_CELLS_CLASS] :\r\n [cls.WORK_CELLS_CLASS, cls.ALTERNATE_CELLS_CLASS];\r\n };\r\n TimelineViews.prototype.renderEvents = function () {\r\n this.timelineAppointment = new TimelineEvent(this.parent, this.parent.activeViewOptions.timeScale.enable ? 'hour' : 'day');\r\n this.timelineAppointment.renderAppointments();\r\n this.parent.notify(event.eventsLoaded, {});\r\n };\r\n TimelineViews.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n if (this.timelineAppointment) {\r\n this.timelineAppointment.destroy();\r\n this.timelineAppointment = null;\r\n }\r\n _super.prototype.destroy.call(this);\r\n };\r\n return TimelineViews;\r\n}(VerticalView));\r\nexport { TimelineViews };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { append, addClass, createElement } from '@syncfusion/ej2-base';\r\nimport { Year } from './year';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * timeline year view\r\n */\r\nvar TimelineYear = /** @class */ (function (_super) {\r\n __extends(TimelineYear, _super);\r\n function TimelineYear(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-timeline-year-view';\r\n _this.isInverseTableSelect = true;\r\n return _this;\r\n }\r\n TimelineYear.prototype.getModuleName = function () {\r\n return 'timelineYear';\r\n };\r\n TimelineYear.prototype.renderHeader = function (headerWrapper) {\r\n var tr = createElement('tr');\r\n headerWrapper.appendChild(tr);\r\n if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.parent.resourceBase.renderResourceHeaderIndent(tr);\r\n }\r\n else {\r\n var leftHeaderCells = createElement('td', { className: cls.LEFT_INDENT_CLASS });\r\n tr.appendChild(leftHeaderCells);\r\n leftHeaderCells.appendChild(this.renderResourceHeader(cls.LEFT_INDENT_WRAP_CLASS));\r\n }\r\n var td = createElement('td');\r\n tr.appendChild(td);\r\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\r\n td.appendChild(container);\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal' && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !this.parent.uiStateValues.isGroupAdaptive) {\r\n container.appendChild(this.renderResourceHeader(cls.DATE_HEADER_WRAP_CLASS));\r\n this.columnCount = this.colLevels.slice(-1)[0].length;\r\n }\r\n else {\r\n var wrapper = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\r\n container.appendChild(wrapper);\r\n var table = this.createTableLayout();\r\n wrapper.appendChild(table);\r\n table.appendChild(this.createTableColGroup(this.columnCount));\r\n var innerTr = createElement('tr');\r\n table.querySelector('tbody').appendChild(innerTr);\r\n var months = this.getMonths();\r\n var dayHeaderDates = this.getMonthDates(new Date(this.parent.selectedDate.getFullYear(), months[0], 1));\r\n for (var column = 0; column < this.columnCount; column++) {\r\n var date = new Date(this.parent.selectedDate.getFullYear(), months[column], 1);\r\n var innerTd = createElement('td', { className: cls.HEADER_CELLS_CLASS });\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n if (this.parent.dayHeaderTemplate) {\r\n append(this.renderDayMonthHeaderTemplate(dayHeaderDates[column], column, 'dayHeaderTemplate'), innerTd);\r\n }\r\n else {\r\n innerTd.innerHTML = \"\" + this.parent.getDayNames('abbreviated')[column % 7] + \"\";\r\n }\r\n }\r\n else {\r\n if (this.parent.monthHeaderTemplate) {\r\n append(this.renderDayMonthHeaderTemplate(date, months[column], 'mothHeaderTemplate'), innerTd);\r\n }\r\n else {\r\n innerTd.innerHTML = \"\" + this.getMonthName(date) + \"\";\r\n }\r\n innerTd.setAttribute('data-date', date.getTime().toString());\r\n }\r\n innerTr.appendChild(innerTd);\r\n this.parent.trigger(event.renderCell, { elementType: 'headerCells', element: innerTd });\r\n }\r\n }\r\n };\r\n TimelineYear.prototype.renderResourceHeader = function (className) {\r\n var wrap = createElement('div', { className: className });\r\n var tbl = this.createTableLayout();\r\n wrap.appendChild(tbl);\r\n var trEle = createElement('tr');\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n this.colLevels = this.generateColumnLevels();\r\n }\r\n else {\r\n var colData = [{ className: [cls.HEADER_CELLS_CLASS], type: 'headerCell' }];\r\n this.colLevels = [colData];\r\n }\r\n for (var _i = 0, _a = this.colLevels; _i < _a.length; _i++) {\r\n var col = _a[_i];\r\n var ntr = trEle.cloneNode();\r\n var count = className === cls.DATE_HEADER_WRAP_CLASS ? col : [col[0]];\r\n for (var _b = 0, count_1 = count; _b < count_1.length; _b++) {\r\n var c = count_1[_b];\r\n var tdEle = createElement('td');\r\n if (c.className) {\r\n addClass([tdEle], c.className);\r\n }\r\n if (className === cls.DATE_HEADER_WRAP_CLASS) {\r\n if (c.template) {\r\n append(c.template, tdEle);\r\n }\r\n if (c.colSpan) {\r\n tdEle.setAttribute('colspan', c.colSpan.toString());\r\n }\r\n if (c.groupIndex > -1) {\r\n tdEle.setAttribute('data-group-index', c.groupIndex.toString());\r\n }\r\n this.setResourceHeaderContent(tdEle, c);\r\n }\r\n if (className === cls.LEFT_INDENT_WRAP_CLASS) {\r\n this.parent.renderHeaderIndentTemplate(c, tdEle);\r\n }\r\n var args = { elementType: c.type, element: tdEle, date: c.date, groupIndex: c.groupIndex };\r\n this.parent.trigger(event.renderCell, args);\r\n ntr.appendChild(tdEle);\r\n }\r\n tbl.querySelector('tbody').appendChild(ntr);\r\n }\r\n if (className === cls.DATE_HEADER_WRAP_CLASS) {\r\n tbl.appendChild(this.createTableColGroup(this.colLevels.slice(-1)[0].length));\r\n }\r\n return wrap;\r\n };\r\n TimelineYear.prototype.renderContent = function (contentWrapper) {\r\n var tr = createElement('tr');\r\n contentWrapper.appendChild(tr);\r\n var firstTd = createElement('td');\r\n var lastTd = createElement('td');\r\n var tdCollection = [];\r\n var monthTBody;\r\n if (this.parent.activeViewOptions.orientation === 'Vertical' && this.parent.activeViewOptions.group.resources.length > 0 &&\r\n !this.parent.uiStateValues.isGroupAdaptive) {\r\n tdCollection.push(firstTd);\r\n firstTd.appendChild(this.parent.resourceBase.createResourceColumn());\r\n this.rowCount = this.parent.resourceBase.lastResourceLevel.length;\r\n }\r\n else {\r\n tdCollection.push(firstTd);\r\n var monthWrapper = createElement('div', { className: cls.MONTH_HEADER_WRAPPER });\r\n firstTd.appendChild(monthWrapper);\r\n monthWrapper.appendChild(this.createTableLayout());\r\n monthTBody = monthWrapper.querySelector('tbody');\r\n }\r\n tdCollection.push(lastTd);\r\n append(tdCollection, tr);\r\n var content = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n lastTd.appendChild(content);\r\n var contentTable = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\r\n content.appendChild(contentTable);\r\n var eventWrapper = createElement('div', { className: cls.EVENT_TABLE_CLASS });\r\n content.appendChild(eventWrapper);\r\n var contentTBody = contentTable.querySelector('tbody');\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n if (this.parent.rowAutoHeight) {\r\n var addClassTable = [contentTable];\r\n var monthHeader = this.parent.element.querySelector('.' + cls.MONTH_HEADER_WRAPPER + ' .' + cls.SCHEDULE_TABLE_CLASS);\r\n if (monthHeader) {\r\n addClassTable.push(monthHeader);\r\n }\r\n addClass(addClassTable, cls.AUTO_HEIGHT);\r\n }\r\n var colCount = this.parent.activeViewOptions.orientation === 'Horizontal' ? this.colLevels.slice(-1)[0].length : this.columnCount;\r\n contentTable.appendChild(this.createTableColGroup(colCount));\r\n this.renderResourceContent(eventWrapper, monthTBody, contentTBody);\r\n }\r\n else {\r\n contentTable.appendChild(this.createTableColGroup(this.columnCount));\r\n this.renderDefaultContent(eventWrapper, monthTBody, contentTBody);\r\n }\r\n };\r\n TimelineYear.prototype.renderDefaultContent = function (wrapper, monthBody, contentBody) {\r\n var months = this.getMonths();\r\n var dayHeaderDates = this.getMonthDates(new Date(this.parent.selectedDate.getFullYear(), months[0], 1));\r\n for (var month = 0; month < this.rowCount; month++) {\r\n wrapper.appendChild(createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS }));\r\n var monthDate = new Date(this.parent.selectedDate.getFullYear(), months[month], 1);\r\n var monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\r\n var monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));\r\n var tr = createElement('tr', { attrs: { 'role': 'row' } });\r\n var monthTr = tr.cloneNode();\r\n monthBody.appendChild(monthTr);\r\n var contentTr = tr.cloneNode();\r\n contentBody.appendChild(contentTr);\r\n var monthTd = createElement('td', { className: cls.MONTH_HEADER_CLASS, attrs: { 'role': 'gridcell' } });\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n if (this.parent.monthHeaderTemplate) {\r\n append(this.renderDayMonthHeaderTemplate(monthStart, month, 'monthHeaderTemplate'), monthTd);\r\n }\r\n else {\r\n monthTd.innerHTML = \"\" + this.getMonthName(monthDate) + \"\";\r\n }\r\n monthTd.setAttribute('data-date', monthDate.getTime().toString());\r\n }\r\n else {\r\n if (this.parent.dayHeaderTemplate) {\r\n append(this.renderDayMonthHeaderTemplate(dayHeaderDates[month], month, 'dayHeaderTemplate'), monthTd);\r\n }\r\n else {\r\n monthTd.innerHTML = \"\" + this.parent.getDayNames('abbreviated')[month % 7] + \"\";\r\n }\r\n }\r\n monthTr.appendChild(monthTd);\r\n this.parent.trigger(event.renderCell, { elementType: 'leftHeaderCells', element: monthTd });\r\n var date = new Date(monthStart.getTime());\r\n for (var column = 0; column < this.columnCount; column++) {\r\n var isDateAvail = void 0;\r\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\r\n monthDate = new Date(this.parent.selectedDate.getFullYear(), months[column], 1);\r\n monthStart = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\r\n monthEnd = this.parent.calendarUtil.getMonthEndDate(new Date(monthDate.getTime()));\r\n var dayDate = (month - monthStart.getDay()) + 1;\r\n date = new Date(this.parent.selectedDate.getFullYear(), months[column], dayDate);\r\n isDateAvail = dayDate > 0 && date.getTime() < monthEnd.getTime();\r\n }\r\n else {\r\n isDateAvail = column >= monthStart.getDay() && date.getTime() < monthEnd.getTime();\r\n }\r\n var td = createElement('td', {\r\n className: cls.WORK_CELLS_CLASS, attrs: { 'role': 'gridcell', 'aria-selected': 'false' }\r\n });\r\n contentTr.appendChild(td);\r\n var dateHeader = createElement('div', {\r\n className: cls.DATE_HEADER_CLASS + ' ' + cls.NAVIGATE_CLASS,\r\n innerHTML: (isDateAvail) ?\r\n this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }) : ''\r\n });\r\n var skeleton = 'full';\r\n var announcementText = this.parent.globalize.formatDate(date, {\r\n skeleton: skeleton, calendar: this.parent.getCalendarMode()\r\n });\r\n dateHeader.setAttribute('aria-label', announcementText);\r\n if (isDateAvail) {\r\n var tds = [td];\r\n var classList = [];\r\n if (this.parent.activeViewOptions.workDays.indexOf(date.getDay()) > -1) {\r\n classList.push(cls.WORKDAY_CLASS);\r\n }\r\n if (this.isCurrentDate(date)) {\r\n classList.push(cls.CURRENT_DAY_CLASS);\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n tds.push(this.element.querySelector('.' + cls.HEADER_CELLS_CLASS + (\":nth-child(\" + (column + 1) + \")\")));\r\n }\r\n else {\r\n tds.push(this.element.querySelectorAll('.' + cls.MONTH_HEADER_CLASS).item(month));\r\n }\r\n }\r\n if (classList.length > 0) {\r\n addClass(tds, classList);\r\n }\r\n }\r\n else {\r\n addClass([td], cls.OTHERMONTH_CLASS);\r\n }\r\n td.appendChild(dateHeader);\r\n if (isDateAvail) {\r\n td.setAttribute('data-date', date.getTime().toString());\r\n this.wireEvents(td, 'cell');\r\n }\r\n this.renderCellTemplate({ date: date, type: 'workCells' }, td);\r\n this.parent.trigger(event.renderCell, { elementType: 'workCells', element: td, date: date });\r\n if (isDateAvail) {\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n date = util.addDays(new Date(date.getTime()), 1);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n TimelineYear.prototype.renderResourceContent = function (wrapper, monthBody, contentBody) {\r\n var months = this.getMonths();\r\n for (var row = 0; row < this.rowCount; row++) {\r\n wrapper.appendChild(createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS }));\r\n var tr = createElement('tr', { attrs: { 'role': 'row' } });\r\n contentBody.appendChild(tr);\r\n var resData = void 0;\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n resData = this.parent.resourceBase.lastResourceLevel[row];\r\n }\r\n var monthDate = new Date(this.parent.selectedDate.getFullYear(), months[row], 1);\r\n var date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\r\n if (this.parent.activeViewOptions.orientation === 'Horizontal') {\r\n var monthTr = tr.cloneNode();\r\n monthBody.appendChild(monthTr);\r\n var monthTd = createElement('td', {\r\n className: cls.MONTH_HEADER_CLASS,\r\n attrs: { 'role': 'gridcell', 'data-date': date.getTime().toString() }\r\n });\r\n if (this.parent.monthHeaderTemplate) {\r\n append(this.renderDayMonthHeaderTemplate(monthDate, row, 'monthHeaderTemplate'), monthTd);\r\n }\r\n else {\r\n monthTd.innerHTML = \"\" + this.getMonthName(monthDate) + \"\";\r\n }\r\n monthTr.appendChild(monthTd);\r\n }\r\n for (var month = 0; month < this.columnCount; month++) {\r\n var classList = [];\r\n var groupIndex = row;\r\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\r\n classList = classList.concat(resData.className);\r\n if (classList.indexOf(cls.RESOURCE_PARENT_CLASS) > -1) {\r\n classList.push(cls.RESOURCE_GROUP_CELLS_CLASS);\r\n }\r\n else {\r\n classList.push(cls.WORKDAY_CLASS);\r\n }\r\n monthDate = new Date(this.parent.selectedDate.getFullYear(), months[month], 1);\r\n date = this.parent.calendarUtil.getMonthStartDate(new Date(monthDate.getTime()));\r\n }\r\n else {\r\n groupIndex = this.colLevels.slice(-1)[0][month].groupIndex;\r\n classList.push(cls.WORKDAY_CLASS);\r\n }\r\n var td = createElement('td', {\r\n className: cls.WORK_CELLS_CLASS,\r\n attrs: {\r\n 'role': 'gridcell', 'aria-selected': 'false',\r\n 'data-date': date.getTime().toString()\r\n }\r\n });\r\n addClass([td], classList);\r\n td.setAttribute('data-group-index', groupIndex.toString());\r\n this.renderCellTemplate({ date: date, type: 'resourceGroupCells', groupIndex: groupIndex }, td);\r\n this.wireEvents(td, 'cell');\r\n tr.appendChild(td);\r\n this.parent.trigger(event.renderCell, { elementType: 'resourceGroupCells', element: td, date: date });\r\n }\r\n }\r\n if (this.parent.activeViewOptions.orientation === 'Vertical') {\r\n this.collapseRows(this.parent.element.querySelector('.' + cls.CONTENT_WRAP_CLASS));\r\n }\r\n };\r\n TimelineYear.prototype.renderDayMonthHeaderTemplate = function (date, column, type) {\r\n var args = { date: date, type: type === 'dayHeaderTemplate' ? 'dayHeader' : 'monthHeader' };\r\n var dayId = \"schedule_\" + this.parent.activeViewOptions.dayHeaderTemplateName + \"dayHeaderTemplate\";\r\n var monthId = \"schedule_\" + this.parent.activeViewOptions.dayHeaderTemplateName + \"monthHeaderTemplate\";\r\n if (type === 'dayHeaderTemplate') {\r\n args.day = this.parent.getDayNames('wide')[column % 7];\r\n return [].slice.call(this.parent.getDayHeaderTemplate()(args, this.parent, 'dayHeaderTemplate', dayId, false));\r\n }\r\n else {\r\n return [].slice.call(this.parent.getMonthHeaderTemplate()(args, this.parent, 'monthHeaderTemplate', monthId, false));\r\n }\r\n };\r\n TimelineYear.prototype.renderCellTemplate = function (data, td) {\r\n if (!this.parent.activeViewOptions.cellTemplate || td.classList.contains(cls.OTHERMONTH_CLASS)) {\r\n return;\r\n }\r\n var args = { date: data.date, type: data.type };\r\n if (data.groupIndex) {\r\n args.groupIndex = data.groupIndex;\r\n }\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.cellTemplateName;\r\n var templateId = scheduleId + viewName + 'cellTemplate';\r\n var cellTemplate = [].slice.call(this.parent.getCellTemplate()(args, this.parent, 'cellTemplate', templateId, false));\r\n append(cellTemplate, td);\r\n };\r\n TimelineYear.prototype.scrollToDate = function (scrollDate) {\r\n if (this.parent.activeViewOptions.group.resources.length === 0) {\r\n var date = +new Date(util.resetTime(scrollDate));\r\n var element = this.element.querySelector('[data-date=\"' + date + '\"]');\r\n if (element) {\r\n this.getScrollableElement().scrollLeft = element.offsetLeft;\r\n this.getScrollableElement().scrollTop = element.offsetTop;\r\n }\r\n }\r\n };\r\n TimelineYear.prototype.getScrollableElement = function () {\r\n if (this.parent.isAdaptive && !this.isTimelineView()) {\r\n return this.element.querySelector('.' + cls.SCROLL_CONTAINER_CLASS);\r\n }\r\n else {\r\n return this.getContentAreaElement();\r\n }\r\n };\r\n return TimelineYear;\r\n}(Year));\r\nexport { TimelineYear };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { isNullOrUndefined, extend, EventHandler, formatUnit, Browser } from '@syncfusion/ej2-base';\r\nimport { createElement, remove, addClass, removeClass, append, prepend } from '@syncfusion/ej2-base';\r\nimport { ViewBase } from './view-base';\r\nimport { VerticalEvent } from '../event-renderer/vertical-view';\r\nimport { MonthEvent } from '../event-renderer/month';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * vertical view\r\n */\r\nvar VerticalView = /** @class */ (function (_super) {\r\n __extends(VerticalView, _super);\r\n function VerticalView(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-day-view';\r\n _this.isInverseTableSelect = true;\r\n _this.baseCssClass = 'e-vertical-view';\r\n _this.appointment = null;\r\n return _this;\r\n }\r\n VerticalView.prototype.getModuleName = function () {\r\n return 'verticalView';\r\n };\r\n VerticalView.prototype.addEventListener = function () {\r\n this.parent.on(event.scrollUiUpdate, this.scrollUiUpdate, this);\r\n this.parent.on(event.dataReady, this.renderEvents, this);\r\n };\r\n VerticalView.prototype.removeEventListener = function () {\r\n if (this.parent) {\r\n this.parent.off(event.scrollUiUpdate, this.scrollUiUpdate);\r\n this.parent.off(event.dataReady, this.renderEvents);\r\n }\r\n };\r\n VerticalView.prototype.renderEvents = function () {\r\n this.appointment = this.parent.activeViewOptions.timeScale.enable ?\r\n new VerticalEvent(this.parent) : new MonthEvent(this.parent);\r\n this.appointment.renderAppointments();\r\n this.parent.notify(event.eventsLoaded, {});\r\n };\r\n VerticalView.prototype.onContentScroll = function (e) {\r\n this.parent.removeNewEventElement();\r\n var target = e.target;\r\n this.parent.notify(event.virtualScroll, e);\r\n this.scrollLeftPanel(target);\r\n this.scrollTopPanel(target);\r\n if (!this.parent.isAdaptive) {\r\n this.parent.uiStateValues.top = target.scrollTop;\r\n }\r\n this.parent.uiStateValues.left = target.scrollLeft;\r\n if (!isNullOrUndefined(this.parent.quickPopup)) {\r\n this.parent.quickPopup.quickPopupHide();\r\n }\r\n this.setPersistence();\r\n };\r\n VerticalView.prototype.onAdaptiveMove = function (e) {\r\n if (this.parent.uiStateValues.action) {\r\n e.preventDefault();\r\n }\r\n };\r\n VerticalView.prototype.onAdaptiveScroll = function (e) {\r\n if (this.parent && !this.parent.isDestroyed) {\r\n this.parent.removeNewEventElement();\r\n this.parent.uiStateValues.top = e.target.scrollTop;\r\n }\r\n };\r\n VerticalView.prototype.scrollLeftPanel = function (target) {\r\n var leftPanel = this.getLeftPanelElement();\r\n if (!isNullOrUndefined(leftPanel)) {\r\n leftPanel.scrollTop = target.scrollTop;\r\n }\r\n };\r\n VerticalView.prototype.scrollUiUpdate = function (args) {\r\n if (!this.parent) {\r\n return;\r\n }\r\n var dateHeader = this.parent.element.querySelector('.' + cls.DATE_HEADER_WRAP_CLASS);\r\n var headerBarHeight = this.getHeaderBarHeight();\r\n var timeCells = this.getLeftPanelElement();\r\n var content = this.getScrollableElement();\r\n var header = this.getDatesHeaderElement();\r\n var scrollerHeight = this.parent.element.offsetHeight - headerBarHeight - header.offsetHeight;\r\n this.setColWidth(content);\r\n this.setContentHeight(content, timeCells, scrollerHeight);\r\n var scrollBarWidth = util.getScrollBarWidth();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.firstElementChild.style[args.cssProperties.rtlBorder] = '';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.style[args.cssProperties.rtlPadding] = '';\r\n var isDateHeaderScroll = this.parent.enableAllDayScroll ? !((content.offsetWidth - content.clientWidth) <=\r\n (dateHeader.offsetWidth - dateHeader.clientWidth) && dateHeader.classList.contains('e-all-day-scroll')) : true;\r\n if (content.offsetWidth - content.clientWidth > 0 && isDateHeaderScroll) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.firstElementChild.style[args.cssProperties.border] = '';\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n header.style[args.cssProperties.padding] = '';\r\n }\r\n if (!args.isPreventScrollUpdate) {\r\n if (this.parent.uiStateValues.isInitial) {\r\n this.scrollToWorkHour();\r\n this.parent.uiStateValues.isInitial = false;\r\n }\r\n else {\r\n if (timeCells) {\r\n timeCells.scrollTop = this.parent.uiStateValues.top;\r\n }\r\n content.scrollTop = this.parent.uiStateValues.top;\r\n content.scrollLeft = this.parent.uiStateValues.left;\r\n }\r\n }\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n this.highlightCurrentTime();\r\n }\r\n this.retainScrollPosition();\r\n };\r\n VerticalView.prototype.setContentHeight = function (element, leftPanelElement, height) {\r\n if (this.parent.isAdaptive && !this.isTimelineView()) {\r\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\r\n }\r\n else {\r\n if (!isNullOrUndefined(leftPanelElement)) {\r\n leftPanelElement.style.height = (this.parent.height === 'auto') ? 'auto'\r\n : formatUnit(height - this.getScrollXIndent(element));\r\n }\r\n element.style.height = (this.parent.height === 'auto') ? 'auto' : formatUnit(height);\r\n }\r\n };\r\n VerticalView.prototype.scrollToWorkHour = function () {\r\n if (this.parent.workHours.highlight) {\r\n var firstWorkHourCell = this.element.querySelector('.' + cls.WORK_HOURS_CLASS);\r\n if (firstWorkHourCell) {\r\n this.getScrollableElement().scrollTop = firstWorkHourCell.offsetTop;\r\n this.parent.uiStateValues.top = firstWorkHourCell.offsetTop;\r\n this.parent.uiStateValues.left = 0;\r\n }\r\n }\r\n };\r\n VerticalView.prototype.scrollToHour = function (hour, scrollDate) {\r\n var date = this.parent.getStartEndTime(hour);\r\n if (isNullOrUndefined(date) || !isNullOrUndefined(scrollDate)) {\r\n return;\r\n }\r\n this.getScrollableElement().scrollTop = this.getTopFromDateTime(date);\r\n };\r\n VerticalView.prototype.generateColumnLevels = function () {\r\n var level = this.getDateSlots(this.renderDates, this.parent.activeViewOptions.workDays);\r\n var columnLevels = [];\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n columnLevels = this.parent.resourceBase.generateResourceLevels(level);\r\n if (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0) {\r\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n var resStartHour = resourceLevel.resourceData[resourceLevel.resource.startHourField];\r\n var resEndHour = resourceLevel.resourceData[resourceLevel.resource.endHourField];\r\n var dateSlots = this.getDateSlots(resourceLevel.renderDates, resourceLevel.workDays, resStartHour, resEndHour);\r\n columnLevels = [dateSlots];\r\n }\r\n }\r\n else {\r\n columnLevels.push(level);\r\n }\r\n this.colLevels = columnLevels;\r\n return columnLevels;\r\n };\r\n // eslint-disable-next-line max-len\r\n VerticalView.prototype.getDateSlots = function (renderDates, workDays, workStartHour, workEndHour) {\r\n if (workStartHour === void 0) { workStartHour = this.parent.workHours.start; }\r\n if (workEndHour === void 0) { workEndHour = this.parent.workHours.end; }\r\n var dateCol = [];\r\n var start = this.parent.getStartEndTime(workStartHour);\r\n var end = this.parent.getStartEndTime(workEndHour);\r\n for (var _i = 0, renderDates_1 = renderDates; _i < renderDates_1.length; _i++) {\r\n var col = renderDates_1[_i];\r\n var classList = [cls.HEADER_CELLS_CLASS];\r\n if (this.isCurrentDate(col)) {\r\n classList.push(cls.CURRENT_DAY_CLASS);\r\n }\r\n dateCol.push({\r\n date: col, type: 'dateHeader', className: classList, colSpan: 1,\r\n workDays: workDays, startHour: new Date(+start), endHour: new Date(+end)\r\n });\r\n }\r\n return dateCol;\r\n };\r\n VerticalView.prototype.isWorkHourRange = function (date) {\r\n return (this.getStartHour().getTime() <= date.getTime()) && (this.getEndHour().getTime() >= date.getTime());\r\n };\r\n VerticalView.prototype.highlightCurrentTime = function () {\r\n var _this = this;\r\n if (this.parent.activeViewOptions.headerRows.length > 0 &&\r\n this.parent.activeViewOptions.headerRows.slice(-1)[0].option !== 'Hour') {\r\n return;\r\n }\r\n if (this.parent.showTimeIndicator && this.isWorkHourRange(this.parent.getCurrentTime())) {\r\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\r\n if (currentDateIndex.length > 0) {\r\n var workCells = [].slice.call(this.element.querySelectorAll('.' + cls.WORK_CELLS_CLASS));\r\n if (workCells.length > 0) {\r\n this.changeCurrentTimePosition();\r\n }\r\n if (isNullOrUndefined(this.currentTimeIndicatorTimer)) {\r\n var currentDate = this.parent.getCurrentTime();\r\n var interval = util.MS_PER_MINUTE - ((currentDate.getSeconds() * 1000) + currentDate.getMilliseconds());\r\n if (interval <= (util.MS_PER_MINUTE - 1000)) {\r\n window.setTimeout(function () {\r\n if (!isNullOrUndefined(_this.currentTimeIndicatorTimer)) {\r\n _this.clearCurrentTimeIndicatorTimer();\r\n _this.changeCurrentTimePosition();\r\n _this.updateCurrentTimeIndicatorTimer();\r\n }\r\n }, interval);\r\n }\r\n this.updateCurrentTimeIndicatorTimer();\r\n }\r\n }\r\n else {\r\n this.clearCurrentTimeIndicatorTimer();\r\n }\r\n }\r\n else {\r\n this.clearCurrentTimeIndicatorTimer();\r\n }\r\n };\r\n VerticalView.prototype.getCurrentTimeIndicatorIndex = function () {\r\n var currentDateIndex = [];\r\n if (!isNullOrUndefined(this.parent.resourceBase) && (this.parent.activeViewOptions.group.resources.length > 0) &&\r\n !this.parent.uiStateValues.isGroupAdaptive) {\r\n var count = 0;\r\n for (var _i = 0, _a = this.parent.resourceBase.lastResourceLevel; _i < _a.length; _i++) {\r\n var resource = _a[_i];\r\n var index = this.parent.getIndexOfDate(resource.renderDates, util.resetTime(this.parent.getCurrentTime()));\r\n if (index >= 0) {\r\n var resIndex = this.parent.activeViewOptions.group.byDate ?\r\n (this.parent.resourceBase.lastResourceLevel.length * index) + count : count + index;\r\n currentDateIndex.push(resIndex);\r\n }\r\n count += this.parent.activeViewOptions.group.byDate ? 1 : resource.renderDates.length;\r\n }\r\n }\r\n else {\r\n var renderDates = (this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.lastResourceLevel.length > 0)\r\n ? this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex].renderDates : this.renderDates;\r\n var index = this.parent.getIndexOfDate(renderDates, util.resetTime(this.parent.getCurrentTime()));\r\n if (index >= 0) {\r\n currentDateIndex.push(index);\r\n }\r\n }\r\n return currentDateIndex;\r\n };\r\n VerticalView.prototype.clearCurrentTimeIndicatorTimer = function () {\r\n if (!isNullOrUndefined(this.currentTimeIndicatorTimer)) {\r\n window.clearInterval(this.currentTimeIndicatorTimer);\r\n this.currentTimeIndicatorTimer = null;\r\n this.removeCurrentTimeIndicatorElements();\r\n }\r\n };\r\n VerticalView.prototype.updateCurrentTimeIndicatorTimer = function () {\r\n var _this = this;\r\n this.currentTimeIndicatorTimer = window.setInterval(function () { _this.changeCurrentTimePosition(); }, util.MS_PER_MINUTE);\r\n };\r\n VerticalView.prototype.removeCurrentTimeIndicatorElements = function () {\r\n var queryString = '.' + cls.PREVIOUS_TIMELINE_CLASS + ',.' + cls.CURRENT_TIMELINE_CLASS + ',.' + cls.CURRENT_TIME_CLASS;\r\n var timeIndicator = [].slice.call(this.element.querySelectorAll(queryString));\r\n for (var _i = 0, timeIndicator_1 = timeIndicator; _i < timeIndicator_1.length; _i++) {\r\n var indicator = timeIndicator_1[_i];\r\n remove(indicator);\r\n }\r\n };\r\n VerticalView.prototype.changeCurrentTimePosition = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.removeCurrentTimeIndicatorElements();\r\n var currentDateIndex = this.getCurrentTimeIndicatorIndex();\r\n var firstRow = this.parent.getContentTable().rows[0];\r\n var top = this.getTopFromDateTime(this.parent.getCurrentTime());\r\n var topInPx = formatUnit(top);\r\n var rowIndex = Math.floor(top / firstRow.cells[0].offsetHeight);\r\n var timeCellsWrap = this.getLeftPanelElement();\r\n var timeTrs = [].slice.call(timeCellsWrap.querySelectorAll('tr'));\r\n if (isNullOrUndefined(rowIndex) || isNaN(rowIndex) || rowIndex === timeTrs.length) {\r\n return;\r\n }\r\n var curTimeWrap = [].slice.call(this.element.querySelectorAll('.' + cls.TIMELINE_WRAPPER_CLASS));\r\n for (var i = 0, length_1 = currentDateIndex[0]; i < length_1; i++) {\r\n curTimeWrap[i].appendChild(createElement('div', { className: cls.PREVIOUS_TIMELINE_CLASS, styles: 'top:' + topInPx }));\r\n }\r\n for (var _i = 0, currentDateIndex_1 = currentDateIndex; _i < currentDateIndex_1.length; _i++) {\r\n var day = currentDateIndex_1[_i];\r\n curTimeWrap[day].appendChild(createElement('div', { className: cls.CURRENT_TIMELINE_CLASS, styles: 'top:' + topInPx }));\r\n }\r\n var currentTimeEle = createElement('div', {\r\n innerHTML: this.parent.getTimeString(this.parent.getCurrentTime()),\r\n className: cls.CURRENT_TIME_CLASS,\r\n styles: 'top:' + topInPx\r\n });\r\n if (rowIndex <= timeTrs.length) {\r\n removeClass(timeCellsWrap.querySelectorAll('.' + cls.HIDE_CHILDS_CLASS), cls.HIDE_CHILDS_CLASS);\r\n if (timeTrs[rowIndex]) {\r\n addClass([timeTrs[rowIndex].lastElementChild], cls.HIDE_CHILDS_CLASS);\r\n }\r\n prepend([currentTimeEle], timeCellsWrap);\r\n currentTimeEle.style.top = formatUnit(currentTimeEle.offsetTop - (currentTimeEle.offsetHeight / 2));\r\n }\r\n };\r\n VerticalView.prototype.getTopFromDateTime = function (date) {\r\n var startHour = this.getStartHour();\r\n var diffInMinutes = ((date.getHours() - startHour.getHours()) * 60) + (date.getMinutes() - startHour.getMinutes());\r\n return (diffInMinutes * this.getWorkCellHeight() * this.parent.activeViewOptions.timeScale.slotCount) /\r\n this.parent.activeViewOptions.timeScale.interval;\r\n };\r\n VerticalView.prototype.getWorkCellHeight = function () {\r\n return parseFloat(this.element.querySelector('.' + cls.WORK_CELLS_CLASS).getBoundingClientRect().height.toFixed(2));\r\n };\r\n VerticalView.prototype.getTdContent = function (date, type, groupIndex) {\r\n var cntEle;\r\n var wrapper = createElement('div');\r\n var templateName = '';\r\n var templateId = this.parent.element.id + '_';\r\n switch (type) {\r\n case 'dateHeader':\r\n if (this.parent.activeViewOptions.dateHeaderTemplate) {\r\n templateName = 'dateHeaderTemplate';\r\n var args = { date: date, type: type };\r\n var viewName = this.parent.activeViewOptions.dateHeaderTemplateName;\r\n cntEle = [].slice.call(this.parent.getDateHeaderTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\r\n }\r\n else {\r\n wrapper.innerHTML = this.parent.activeView.isTimelineView() ?\r\n \"\" + this.getTimelineDate(date) + \"\" :\r\n \"
      \" + util.capitalizeFirstWord(this.getDayName(date), 'single') + \"
      \" +\r\n (\"
      \" + this.getDate(date) + \"
      \");\r\n cntEle = [].slice.call(wrapper.childNodes);\r\n }\r\n break;\r\n case 'majorSlot':\r\n if (this.parent.activeViewOptions.timeScale.majorSlotTemplate) {\r\n templateName = 'majorSlotTemplate';\r\n var args = { date: date, type: type };\r\n cntEle = [].slice.call(this.parent.getMajorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\r\n }\r\n else {\r\n wrapper.innerHTML = \"\" + this.getTime(date) + \"\";\r\n cntEle = [].slice.call(wrapper.childNodes);\r\n }\r\n break;\r\n case 'minorSlot':\r\n if (this.parent.activeViewOptions.timeScale.minorSlotTemplate) {\r\n templateName = 'minorSlotTemplate';\r\n var args = { date: date, type: type };\r\n cntEle = [].slice.call(this.parent.getMinorSlotTemplate()(args, this.parent, templateName, templateId + templateName, false));\r\n }\r\n else {\r\n cntEle = [].slice.call(wrapper.childNodes);\r\n }\r\n break;\r\n case 'alldayCells':\r\n if (this.parent.activeViewOptions.cellTemplate) {\r\n var viewName = this.parent.activeViewOptions.cellTemplateName;\r\n templateName = 'cellTemplate';\r\n var args = { date: date, type: type, groupIndex: groupIndex };\r\n cntEle = [].slice.call(this.parent.getCellTemplate()(args, this.parent, templateName, templateId + viewName + templateName, false));\r\n }\r\n break;\r\n }\r\n return cntEle;\r\n };\r\n VerticalView.prototype.refreshHeader = function () {\r\n remove(this.element.querySelector('tbody tr'));\r\n this.renderHeader();\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n VerticalView.prototype.renderLayout = function (type) {\r\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\r\n var clsList = [this.baseCssClass, this.viewClass];\r\n clsList.push(type);\r\n if (this.parent.activeViewOptions.group.byDate) {\r\n clsList.push('e-by-date');\r\n }\r\n if (!this.parent.activeViewOptions.timeScale.enable) {\r\n addClass([this.element], [cls.TIMESCALE_DISABLE, this.viewClass]);\r\n }\r\n if (this.parent.activeViewOptions.allowVirtualScrolling) {\r\n clsList.push(cls.VIRTUAL_SCROLL_CLASS);\r\n }\r\n if (this.parent.eventSettings.ignoreWhitespace) {\r\n clsList.push(cls.IGNORE_WHITESPACE);\r\n }\r\n this.renderPanel(type);\r\n addClass([this.element], clsList);\r\n this.element.appendChild(this.createTableLayout(cls.OUTER_TABLE_CLASS));\r\n this.element.querySelector('table').setAttribute('role', 'presentation');\r\n this.colLevels = this.generateColumnLevels();\r\n this.renderHeader();\r\n this.renderContent();\r\n if (this.parent.uiStateValues.isGroupAdaptive && !this.parent.element.querySelector('.' + cls.RESOURCE_TOOLBAR_CONTAINER)) {\r\n this.renderResourceMobileLayout();\r\n }\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n VerticalView.prototype.renderHeader = function () {\r\n var tr = createElement('tr');\r\n var dateTd = createElement('td');\r\n dateTd.appendChild(this.renderDatesHeader());\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n var indentTd = createElement('td', { className: cls.LEFT_INDENT_CLASS });\r\n indentTd.appendChild(this.renderLeftIndent());\r\n tr.appendChild(indentTd);\r\n }\r\n tr.appendChild(dateTd);\r\n prepend([tr], this.element.querySelector('tbody'));\r\n };\r\n VerticalView.prototype.renderContent = function () {\r\n var tr = createElement('tr');\r\n var workTd = createElement('td');\r\n if (this.parent.isAdaptive) {\r\n workTd.setAttribute('colspan', (this.parent.activeViewOptions.timeScale.enable ? '2' : '1'));\r\n var scrollContainer = createElement('div', { className: cls.SCROLL_CONTAINER_CLASS });\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n scrollContainer.appendChild(this.renderTimeCells());\r\n }\r\n scrollContainer.appendChild(this.renderContentArea());\r\n workTd.appendChild(scrollContainer);\r\n EventHandler.add(scrollContainer, 'scroll', this.onAdaptiveScroll, this);\r\n EventHandler.add(scrollContainer, Browser.touchMoveEvent, this.onAdaptiveMove, this);\r\n tr.appendChild(workTd);\r\n }\r\n else {\r\n workTd.appendChild(this.renderContentArea());\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n var timesTd = createElement('td');\r\n timesTd.appendChild(this.renderTimeCells());\r\n tr.appendChild(timesTd);\r\n }\r\n tr.appendChild(workTd);\r\n }\r\n this.element.querySelector('tbody').appendChild(tr);\r\n };\r\n VerticalView.prototype.renderLeftIndent = function () {\r\n var wrap = createElement('div', { className: cls.LEFT_INDENT_WRAP_CLASS });\r\n var tbl = this.createTableLayout();\r\n var trEle = createElement('tr');\r\n var rowCount = this.colLevels.length;\r\n var nth;\r\n for (var i = 0; i < rowCount; i++) {\r\n var ntr_1 = trEle.cloneNode();\r\n var data_1 = { className: [(this.colLevels[i][0] && this.colLevels[i][0].className[0])], type: 'emptyCells' };\r\n if (this.parent.activeViewOptions.showWeekNumber && data_1.className.indexOf(cls.HEADER_CELLS_CLASS) !== -1) {\r\n data_1.className.push(cls.WEEK_NUMBER_CLASS);\r\n var weekNo = this.parent.getWeekNumberContent(this.renderDates);\r\n data_1.template = [createElement('span', {\r\n innerHTML: '' + weekNo,\r\n attrs: { title: this.parent.localeObj.getConstant('week') + ' ' + weekNo }\r\n })];\r\n }\r\n nth = this.createTd(data_1);\r\n this.parent.renderHeaderIndentTemplate(data_1, nth);\r\n ntr_1.appendChild(nth);\r\n tbl.querySelector('tbody').appendChild(ntr_1);\r\n }\r\n var ntr = trEle.cloneNode();\r\n var appointmentExpandCollapse = createElement('div', {\r\n attrs: {\r\n 'tabindex': '0', 'role': 'list',\r\n title: this.parent.localeObj.getConstant('expandAllDaySection'), 'aria-disabled': 'false', 'aria-label': 'Expand section'\r\n },\r\n className: cls.ALLDAY_APPOINTMENT_SECTION_CLASS + ' ' + cls.APPOINTMENT_ROW_EXPAND_CLASS + ' ' +\r\n cls.ICON + ' ' + cls.DISABLE_CLASS\r\n });\r\n var data = { className: [cls.ALLDAY_CELLS_CLASS], type: 'emptyCells' };\r\n nth = this.createTd(data);\r\n nth.appendChild(appointmentExpandCollapse);\r\n this.parent.renderHeaderIndentTemplate(data, nth);\r\n ntr.appendChild(nth);\r\n tbl.querySelector('tbody').appendChild(ntr);\r\n wrap.appendChild(tbl);\r\n return wrap;\r\n };\r\n VerticalView.prototype.renderDatesHeader = function () {\r\n var container = createElement('div', { className: cls.DATE_HEADER_CONTAINER_CLASS });\r\n var wrap = createElement('div', { className: cls.DATE_HEADER_WRAP_CLASS });\r\n container.appendChild(wrap);\r\n var tbl = this.createTableLayout();\r\n var trEle = createElement('tr');\r\n var rowCount = this.colLevels.length;\r\n var lastLevel = this.colLevels[rowCount - 1];\r\n for (var i = 0; i < rowCount; i++) {\r\n var ntr = trEle.cloneNode();\r\n addClass([ntr], cls.HEADER_ROW_CLASS);\r\n var level = this.colLevels[i];\r\n for (var j = 0; j < level.length; j++) {\r\n ntr.appendChild(this.createTd(level[j]));\r\n }\r\n tbl.querySelector('tbody').appendChild(ntr);\r\n }\r\n this.createAllDayRow(tbl, lastLevel);\r\n this.createColGroup(tbl, lastLevel);\r\n wrap.appendChild(tbl);\r\n return container;\r\n };\r\n VerticalView.prototype.createAllDayRow = function (table, tdData) {\r\n var ntr = createElement('tr');\r\n addClass([ntr], cls.ALLDAY_ROW_CLASS);\r\n for (var j = 0; j < tdData.length; j++) {\r\n var td = extend({}, tdData[j]);\r\n td.className = [cls.ALLDAY_CELLS_CLASS];\r\n td.type = 'alldayCells';\r\n var ntd = this.createTd(td);\r\n ntd.setAttribute('data-date', td.date.getTime().toString());\r\n if (!isNullOrUndefined(td.groupIndex)) {\r\n ntd.setAttribute('data-group-index', '' + td.groupIndex);\r\n }\r\n else if (this.parent.uiStateValues.isGroupAdaptive) {\r\n ntd.setAttribute('data-group-index', '' + this.parent.uiStateValues.groupIndex);\r\n }\r\n this.wireCellEvents(ntd);\r\n ntr.appendChild(ntd);\r\n }\r\n table.querySelector('tbody').appendChild(ntr);\r\n var thead = createElement('thead');\r\n thead.appendChild(this.createEventWrapper('allDay'));\r\n prepend([thead], table);\r\n };\r\n VerticalView.prototype.createTd = function (td) {\r\n var tdEle = createElement('td');\r\n this.addAttributes(td, tdEle);\r\n if (td.date && td.type) {\r\n var ele = this.getTdContent(td.date, td.type, td.groupIndex);\r\n if (ele && ele.length) {\r\n append(ele, tdEle);\r\n }\r\n }\r\n if (!this.parent.isMinMaxDate(util.resetTime(new Date('' + td.date)))) {\r\n addClass([tdEle], cls.DISABLE_DATES);\r\n }\r\n if (td.type === 'resourceHeader') {\r\n this.setResourceHeaderContent(tdEle, td);\r\n }\r\n if (td.type === 'dateHeader' && td.className.indexOf(cls.HEADER_CELLS_CLASS) >= 0) {\r\n tdEle.setAttribute('data-date', td.date.getTime().toString());\r\n if (!isNullOrUndefined(td.groupIndex)) {\r\n tdEle.setAttribute('data-group-index', '' + td.groupIndex);\r\n }\r\n this.wireMouseEvents(tdEle);\r\n }\r\n var args = { elementType: td.type, element: tdEle, date: td.date, groupIndex: td.groupIndex };\r\n this.parent.trigger(event.renderCell, args);\r\n return tdEle;\r\n };\r\n VerticalView.prototype.wireCellEvents = function (element) {\r\n EventHandler.add(element, 'mousedown', this.parent.workCellAction.cellMouseDown, this.parent.workCellAction);\r\n this.wireMouseEvents(element);\r\n };\r\n VerticalView.prototype.wireMouseEvents = function (element) {\r\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\r\n if (!this.parent.isAdaptive) {\r\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\r\n }\r\n };\r\n VerticalView.prototype.renderTimeCells = function () {\r\n var _this = this;\r\n var wrap = createElement('div', { className: cls.TIME_CELLS_WRAP_CLASS });\r\n var tbl = this.createTableLayout();\r\n var trEle = createElement('tr');\r\n var handler = function (r) {\r\n r.type = r.first ? 'majorSlot' : 'minorSlot';\r\n r.className = r.last ? [cls.TIME_CELLS_CLASS, cls.TIME_SLOT_CLASS] : [cls.TIME_SLOT_CLASS];\r\n var ntr = trEle.cloneNode();\r\n var data = { date: r.date, type: r.type, className: r.className };\r\n ntr.appendChild(_this.createTd(data));\r\n tbl.querySelector('tbody').appendChild(ntr);\r\n return r;\r\n };\r\n this.getTimeSlotRows(handler);\r\n wrap.appendChild(tbl);\r\n return wrap;\r\n };\r\n VerticalView.prototype.renderContentArea = function () {\r\n var wrap = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n var tbl = this.createTableLayout(cls.CONTENT_TABLE_CLASS);\r\n this.addAutoHeightClass(tbl);\r\n this.renderContentTable(tbl);\r\n this.createColGroup(tbl, this.colLevels.slice(-1)[0]);\r\n wrap.appendChild(tbl);\r\n this.wireCellEvents(tbl.querySelector('tbody'));\r\n EventHandler.add(wrap, 'scroll', this.onContentScroll, this);\r\n EventHandler.add(wrap, Browser.touchMoveEvent, this.onAdaptiveMove, this);\r\n return wrap;\r\n };\r\n VerticalView.prototype.renderContentTable = function (table) {\r\n var _this = this;\r\n var tr = createElement('tr', { attrs: { role: 'row' } });\r\n var td = createElement('td', { attrs: { role: 'gridcell', 'aria-selected': 'false' } });\r\n var tbody = table.querySelector('tbody');\r\n var handler = function (r) {\r\n var ntr = tr.cloneNode();\r\n for (var _i = 0, _a = _this.colLevels[_this.colLevels.length - 1]; _i < _a.length; _i++) {\r\n var tdData = _a[_i];\r\n var ntd = _this.createContentTd(tdData, r, td);\r\n ntr.appendChild(ntd);\r\n }\r\n tbody.appendChild(ntr);\r\n return r;\r\n };\r\n this.getTimeSlotRows(handler);\r\n this.renderContentTableHeader(table);\r\n };\r\n VerticalView.prototype.createContentTd = function (tdData, r, td) {\r\n var ntd = td.cloneNode();\r\n if (tdData.colSpan) {\r\n ntd.setAttribute('colspan', tdData.colSpan.toString());\r\n }\r\n var clsName = this.getContentTdClass(r);\r\n var cellDate = util.resetTime(tdData.date);\r\n if (!this.parent.isMinMaxDate(cellDate)) {\r\n clsName.push(cls.DISABLE_DATES);\r\n }\r\n util.setTime(cellDate, util.getDateInMs(r.date));\r\n var type = 'workCells';\r\n if (tdData.className.indexOf(cls.RESOURCE_PARENT_CLASS) !== -1) {\r\n clsName.push(cls.RESOURCE_GROUP_CELLS_CLASS);\r\n type = 'resourceGroupCells';\r\n }\r\n if (this.parent.workHours.highlight && ((this.parent.activeViewOptions.timeScale.enable &&\r\n this.isWorkHour(cellDate, tdData.startHour, tdData.endHour, tdData.workDays)) ||\r\n (!this.parent.activeViewOptions.timeScale.enable && this.isWorkDay(cellDate, tdData.workDays)))) {\r\n clsName.push(cls.WORK_HOURS_CLASS);\r\n }\r\n addClass([ntd], clsName);\r\n if (this.parent.activeViewOptions.cellTemplate) {\r\n var args_1 = { date: cellDate, type: type, groupIndex: tdData.groupIndex };\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.cellTemplateName;\r\n var templateId = scheduleId + viewName + 'cellTemplate';\r\n var tooltipTemplate = [].slice.call(this.parent.getCellTemplate()(args_1, this.parent, 'cellTemplate', templateId, false));\r\n append(tooltipTemplate, ntd);\r\n }\r\n ntd.setAttribute('data-date', cellDate.getTime().toString());\r\n if (!isNullOrUndefined(tdData.groupIndex) || this.parent.uiStateValues.isGroupAdaptive) {\r\n var groupIndex = this.parent.uiStateValues.isGroupAdaptive ? this.parent.uiStateValues.groupIndex :\r\n tdData.groupIndex;\r\n ntd.setAttribute('data-group-index', '' + groupIndex);\r\n }\r\n var args = { elementType: type, element: ntd, date: cellDate, groupIndex: tdData.groupIndex };\r\n this.parent.trigger(event.renderCell, args);\r\n return ntd;\r\n };\r\n VerticalView.prototype.getContentTdClass = function (r) {\r\n return r.last ? [cls.WORK_CELLS_CLASS] : [cls.WORK_CELLS_CLASS, cls.ALTERNATE_CELLS_CLASS];\r\n };\r\n VerticalView.prototype.renderContentTableHeader = function (table) {\r\n var thead = createElement('thead');\r\n thead.appendChild(this.createEventWrapper());\r\n if (this.parent.activeViewOptions.timeScale.enable) {\r\n thead.appendChild(this.createEventWrapper('timeIndicator'));\r\n }\r\n prepend([thead], table);\r\n };\r\n VerticalView.prototype.createEventWrapper = function (type) {\r\n if (type === void 0) { type = ''; }\r\n var tr = createElement('tr');\r\n var levels = this.colLevels.slice(-1)[0];\r\n for (var i = 0, len = levels.length; i < len; i++) {\r\n var col = levels[i];\r\n var appointmentWrap = createElement('td', {\r\n className: (type === 'allDay') ? cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS : (type === 'timeIndicator') ?\r\n cls.TIMELINE_WRAPPER_CLASS : cls.DAY_WRAPPER_CLASS, attrs: { 'data-date': col.date.getTime().toString() }\r\n });\r\n if (!isNullOrUndefined(col.groupIndex)) {\r\n appointmentWrap.setAttribute('data-group-index', col.groupIndex.toString());\r\n }\r\n if (type === '') {\r\n var innerWrapper = createElement('div', {\r\n id: cls.APPOINTMENT_WRAPPER_CLASS + '-' + i.toString(),\r\n className: cls.APPOINTMENT_WRAPPER_CLASS\r\n });\r\n appointmentWrap.appendChild(innerWrapper);\r\n }\r\n tr.appendChild(appointmentWrap);\r\n }\r\n return tr;\r\n };\r\n VerticalView.prototype.getScrollableElement = function () {\r\n if (this.parent.isAdaptive && !this.isTimelineView()) {\r\n return this.element.querySelector('.' + cls.SCROLL_CONTAINER_CLASS);\r\n }\r\n else {\r\n return this.getContentAreaElement();\r\n }\r\n };\r\n VerticalView.prototype.getLeftPanelElement = function () {\r\n return this.element.querySelector('.' + cls.TIME_CELLS_WRAP_CLASS);\r\n };\r\n VerticalView.prototype.getEndDateFromStartDate = function (start) {\r\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\r\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\r\n var end = new Date(start.getTime());\r\n end.setMilliseconds(end.getMilliseconds() + msInterval);\r\n return end;\r\n };\r\n VerticalView.prototype.getTimeSlotRows = function (handler) {\r\n var rows = [];\r\n var startHour = this.getStartHour();\r\n var endHour = this.getEndHour();\r\n var msMajorInterval = this.parent.activeViewOptions.timeScale.interval * util.MS_PER_MINUTE;\r\n var msInterval = msMajorInterval / this.parent.activeViewOptions.timeScale.slotCount;\r\n var length = Math.round(util.MS_PER_DAY / msInterval);\r\n var msStartHour = startHour.getTime();\r\n var msEndHour = endHour.getTime();\r\n if (msStartHour !== msEndHour) {\r\n length = (Math.abs(msEndHour - msStartHour) / msInterval) - ((new Date(msEndHour).getTimezoneOffset()\r\n - new Date(msStartHour).getTimezoneOffset()) / (60 / this.parent.activeViewOptions.timeScale.slotCount));\r\n }\r\n if (!this.parent.activeViewOptions.timeScale.enable) {\r\n length = 1;\r\n }\r\n var start = this.parent.getStartEndTime(this.parent.workHours.start);\r\n var end = this.parent.getStartEndTime(this.parent.workHours.end);\r\n for (var i = 0; i < length; i++) {\r\n var dt = new Date(msStartHour + (msInterval * i));\r\n if (util.isDaylightSavingTime(dt) || new Date(msStartHour).getTimezoneOffset() !== dt.getTimezoneOffset()) {\r\n var timeOffset = new Date(msStartHour).getTimezoneOffset() - dt.getTimezoneOffset();\r\n dt = new Date(dt.getTime() - (1000 * 60 * timeOffset));\r\n }\r\n var majorTickDivider = i % (msMajorInterval / msInterval);\r\n var row = {\r\n date: new Date('' + dt),\r\n startHour: start,\r\n endHour: end,\r\n first: (majorTickDivider === 0),\r\n middle: (majorTickDivider < this.parent.activeViewOptions.timeScale.slotCount - 1),\r\n last: (majorTickDivider === this.parent.activeViewOptions.timeScale.slotCount - 1),\r\n type: ''\r\n };\r\n if (handler) {\r\n handler(row);\r\n }\r\n rows.push(row);\r\n }\r\n return rows;\r\n };\r\n VerticalView.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n this.clearCurrentTimeIndicatorTimer();\r\n if (this.element) {\r\n if (this.appointment) {\r\n this.appointment.destroy();\r\n this.appointment = null;\r\n }\r\n var contentScrollableEle = this.getContentAreaElement();\r\n if (contentScrollableEle) {\r\n EventHandler.remove(contentScrollableEle, 'scroll', this.onContentScroll);\r\n EventHandler.remove(contentScrollableEle, Browser.touchMoveEvent, this.onAdaptiveMove);\r\n }\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.destroy();\r\n }\r\n if (this.parent.scheduleTouchModule) {\r\n this.parent.scheduleTouchModule.resetValues();\r\n }\r\n _super.prototype.destroy.call(this);\r\n }\r\n };\r\n return VerticalView;\r\n}(ViewBase));\r\nexport { VerticalView };\r\n","import { createElement, append, prepend, isNullOrUndefined, getValue, getDefaultDateObject, cldrData, addClass, setStyleAttribute, formatUnit, EventHandler, remove } from '@syncfusion/ej2-base';\r\nimport * as cls from '../base/css-constant';\r\nimport * as event from '../base/constant';\r\nimport * as util from '../base/util';\r\n/**\r\n * view base\r\n */\r\nvar ViewBase = /** @class */ (function () {\r\n /**\r\n * Constructor\r\n *\r\n * @param {Schedule} parent Accepts the schedule instance\r\n */\r\n function ViewBase(parent) {\r\n this.parent = parent;\r\n }\r\n ViewBase.prototype.isTimelineView = function () {\r\n return this.parent.currentView.indexOf('Timeline') !== -1;\r\n };\r\n ViewBase.prototype.getContentRows = function () {\r\n return [];\r\n };\r\n ViewBase.prototype.refreshHeader = function () {\r\n // Method to refresh the date header\r\n };\r\n ViewBase.prototype.refreshResourceHeader = function () {\r\n remove(this.element.querySelector('tbody').lastElementChild.firstElementChild);\r\n var resTd = createElement('td');\r\n resTd.appendChild(this.parent.resourceBase.createResourceColumn());\r\n prepend([resTd], this.element.querySelector('tbody').lastElementChild);\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n ViewBase.prototype.getDayName = function (date) {\r\n return this.parent.getDayNames('abbreviated')[date.getDay()];\r\n };\r\n ViewBase.prototype.getDate = function (date) {\r\n return this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() });\r\n };\r\n ViewBase.prototype.getTime = function (date) {\r\n if (this.parent.isAdaptive) {\r\n if (this.parent.activeViewOptions.timeFormat === 'HH:mm' || this.parent.activeViewOptions.timeFormat === 'HH.mm') {\r\n return this.parent.globalize.formatDate(date, { format: 'H', calendar: this.parent.getCalendarMode() });\r\n }\r\n return this.parent.globalize.formatDate(date, { skeleton: 'h', calendar: this.parent.getCalendarMode() });\r\n }\r\n return this.parent.getTimeString(date);\r\n };\r\n ViewBase.prototype.getTimelineDate = function (date) {\r\n var text = this.parent.globalize.formatDate(date, { skeleton: 'MMMd', calendar: this.parent.getCalendarMode() }) + ', ' +\r\n this.parent.getDayNames('wide')[date.getDay()];\r\n return util.capitalizeFirstWord(text, 'multiple');\r\n };\r\n ViewBase.prototype.createEventTable = function (trCount) {\r\n var eventTable = createElement('div', { className: cls.EVENT_TABLE_CLASS });\r\n append(this.getEventRows(trCount), eventTable);\r\n return eventTable;\r\n };\r\n ViewBase.prototype.getEventRows = function (trCount) {\r\n var eventRows = [];\r\n var eventContainer;\r\n for (var row = 0; row < trCount; row++) {\r\n eventContainer = createElement('div', { className: cls.APPOINTMENT_CONTAINER_CLASS });\r\n if (this.parent.resourceBase && !this.parent.uiStateValues.isGroupAdaptive && this.parent.resourceBase.renderedResources) {\r\n eventContainer.setAttribute('data-group-index', this.parent.resourceBase.renderedResources[row].groupIndex.toString());\r\n }\r\n eventRows.push(eventContainer);\r\n }\r\n return eventRows;\r\n };\r\n ViewBase.prototype.collapseRows = function (wrap) {\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('tbody'));\r\n this.parent.resourceBase.hideResourceRows(wrap.querySelector('.' + cls.EVENT_TABLE_CLASS));\r\n }\r\n };\r\n ViewBase.prototype.createTableLayout = function (className) {\r\n var clsName = className || '';\r\n var table = createElement('table', { className: cls.SCHEDULE_TABLE_CLASS + ' ' + clsName, attrs: { role: 'table' } });\r\n var tbody = createElement('tbody');\r\n table.appendChild(tbody);\r\n return table;\r\n };\r\n ViewBase.prototype.createColGroup = function (table, lastRow) {\r\n var length = lastRow.length;\r\n if (lastRow[0] && lastRow[0].colSpan) {\r\n length = lastRow.map(function (value) { return value.colSpan; }).reduce(function (prev, next) { return prev + next; });\r\n }\r\n var colGroupEle = createElement('colgroup');\r\n for (var i = 0; i < length; i++) {\r\n colGroupEle.appendChild(createElement('col'));\r\n }\r\n prepend([colGroupEle], table);\r\n };\r\n ViewBase.prototype.getScrollXIndent = function (content) {\r\n return content.offsetHeight - content.clientHeight > 0 ? util.getScrollBarWidth() : 0;\r\n };\r\n ViewBase.prototype.scrollTopPanel = function (target) {\r\n this.getDatesHeaderElement().firstElementChild.scrollLeft = target.scrollLeft;\r\n };\r\n ViewBase.prototype.scrollHeaderLabels = function (target) {\r\n var headerTable = this.element.querySelector('.e-date-header-wrap table');\r\n var colWidth = headerTable.offsetWidth / headerTable.querySelectorAll('colgroup col').length;\r\n var applyLeft = function (headerCells, isRtl) {\r\n var currentCell;\r\n var tdLeft = 0;\r\n var colSpan = 0;\r\n var hiddenLeft = isRtl ? -(target.scrollLeft) : target.scrollLeft;\r\n for (var _i = 0, headerCells_2 = headerCells; _i < headerCells_2.length; _i++) {\r\n var cell = headerCells_2[_i];\r\n colSpan += parseInt(cell.getAttribute('colSpan'), 10);\r\n if (colSpan > Math.floor(hiddenLeft / colWidth)) {\r\n currentCell = cell;\r\n break;\r\n }\r\n tdLeft += cell.offsetWidth;\r\n }\r\n if (!isNullOrUndefined(currentCell)) {\r\n currentCell.children[0].style[isRtl ? 'right' : 'left'] = (hiddenLeft - tdLeft) + 'px';\r\n }\r\n };\r\n var classNames = ['.e-header-year-cell', '.e-header-month-cell', '.e-header-week-cell', '.e-header-cells'];\r\n for (var _i = 0, classNames_1 = classNames; _i < classNames_1.length; _i++) {\r\n var className = classNames_1[_i];\r\n var headerCells = [].slice.call(this.element.querySelectorAll(className));\r\n if (headerCells.length > 0) {\r\n for (var _a = 0, headerCells_1 = headerCells; _a < headerCells_1.length; _a++) {\r\n var element = headerCells_1[_a];\r\n element.children[0].style[this.parent.enableRtl ? 'right' : 'left'] = '';\r\n }\r\n applyLeft(headerCells, this.parent.enableRtl);\r\n }\r\n }\r\n };\r\n ViewBase.prototype.addAttributes = function (td, element) {\r\n if (td.template) {\r\n append(td.template, element);\r\n }\r\n if (td.colSpan) {\r\n element.setAttribute('colspan', td.colSpan.toString());\r\n }\r\n if (td.className) {\r\n addClass([element], td.className);\r\n }\r\n };\r\n ViewBase.prototype.getHeaderBarHeight = function () {\r\n var headerBarHeight = 2;\r\n if (this.parent.headerModule) {\r\n headerBarHeight += util.getOuterHeight(this.parent.headerModule.getHeaderElement());\r\n }\r\n if (this.parent.uiStateValues.isGroupAdaptive) {\r\n var resHeader = this.parent.element.querySelector('.' + cls.RESOURCE_HEADER_TOOLBAR);\r\n if (resHeader) {\r\n headerBarHeight += resHeader.offsetHeight;\r\n }\r\n }\r\n return headerBarHeight;\r\n };\r\n ViewBase.prototype.renderPanel = function (type) {\r\n if (type === cls.PREVIOUS_PANEL_CLASS) {\r\n prepend([this.element], this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS));\r\n }\r\n else {\r\n this.parent.element.querySelector('.' + cls.TABLE_CONTAINER_CLASS).appendChild(this.element);\r\n }\r\n };\r\n ViewBase.prototype.setPanel = function (panel) {\r\n this.element = panel;\r\n };\r\n ViewBase.prototype.getPanel = function () {\r\n return this.element;\r\n };\r\n ViewBase.prototype.getDatesHeaderElement = function () {\r\n return this.element.querySelector('.' + cls.DATE_HEADER_CONTAINER_CLASS);\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ViewBase.prototype.getDateSlots = function (renderDates, workDays) {\r\n return []; // Here getDateSlots only need in vertical and month views\r\n };\r\n ViewBase.prototype.generateColumnLevels = function () {\r\n return []; // Here generateColumnLevels only need in vertical and month views\r\n };\r\n ViewBase.prototype.getColumnLevels = function () {\r\n return this.colLevels;\r\n };\r\n ViewBase.prototype.highlightCurrentTime = function () {\r\n // Here showTimeIndicator functionalities\r\n };\r\n ViewBase.prototype.startDate = function () {\r\n return this.renderDates[0];\r\n };\r\n ViewBase.prototype.endDate = function () {\r\n return util.addDays(this.renderDates[this.renderDates.length - 1], 1);\r\n };\r\n ViewBase.prototype.getStartHour = function () {\r\n var startHour = this.parent.getStartEndTime(this.parent.activeViewOptions.startHour);\r\n if (isNullOrUndefined(startHour)) {\r\n startHour = new Date(2000, 0, 0, 0);\r\n }\r\n return startHour;\r\n };\r\n ViewBase.prototype.getEndHour = function () {\r\n var endHour = this.parent.getStartEndTime(this.parent.activeViewOptions.endHour);\r\n if (isNullOrUndefined(endHour)) {\r\n endHour = new Date(2000, 0, 0, 0);\r\n }\r\n return endHour;\r\n };\r\n ViewBase.prototype.isCurrentDate = function (date) {\r\n return date.setHours(0, 0, 0, 0) === this.parent.getCurrentTime().setHours(0, 0, 0, 0);\r\n };\r\n ViewBase.prototype.isCurrentMonth = function (date) {\r\n return date.getFullYear() ===\r\n this.parent.getCurrentTime().getFullYear() && date.getMonth() === this.parent.getCurrentTime().getMonth();\r\n };\r\n ViewBase.prototype.isWorkDay = function (date, workDays) {\r\n if (workDays === void 0) { workDays = this.parent.activeViewOptions.workDays; }\r\n if (workDays.indexOf(date.getDay()) >= 0) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n ViewBase.prototype.isWorkHour = function (date, startHour, endHour, workDays) {\r\n if (isNullOrUndefined(startHour) || isNullOrUndefined(endHour)) {\r\n return false;\r\n }\r\n startHour.setMilliseconds(0);\r\n endHour.setMilliseconds(0);\r\n return !(util.getDateInMs(date) < util.getDateInMs(startHour) || util.getDateInMs(date) >= util.getDateInMs(endHour) ||\r\n !this.isWorkDay(date, workDays));\r\n };\r\n ViewBase.prototype.getRenderDates = function (workDays) {\r\n var renderDates = [];\r\n // Due to same code for vertical and time line, week & work week views, if condition has used\r\n if (this.parent.currentView === 'Week' || this.parent.currentView === 'TimelineWeek') {\r\n var selectedDate = util.resetTime(this.parent.selectedDate);\r\n var start = util.getWeekFirstDate(selectedDate, this.parent.activeViewOptions.firstDayOfWeek);\r\n for (var i = 0, length_1 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_1; i++) {\r\n if (this.parent.activeViewOptions.showWeekend) {\r\n renderDates.push(start);\r\n }\r\n else {\r\n if (this.isWorkDay(start, workDays)) {\r\n renderDates.push(start);\r\n }\r\n }\r\n start = util.addDays(start, 1);\r\n }\r\n }\r\n else if (this.parent.currentView === 'WorkWeek' || this.parent.currentView === 'TimelineWorkWeek') {\r\n var start = util.getWeekFirstDate(util.resetTime(this.parent.selectedDate), this.parent.activeViewOptions.firstDayOfWeek);\r\n for (var i = 0, length_2 = util.WEEK_LENGTH * this.parent.activeViewOptions.interval; i < length_2; i++) {\r\n if (this.isWorkDay(start, workDays)) {\r\n renderDates.push(start);\r\n }\r\n start = util.addDays(start, 1);\r\n }\r\n }\r\n else {\r\n var dayCount = this.parent.currentView === 'Agenda' ? this.parent.agendaDaysCount :\r\n this.parent.activeViewOptions.interval;\r\n var start = util.resetTime(this.parent.selectedDate);\r\n do {\r\n if (this.parent.activeViewOptions.showWeekend) {\r\n renderDates.push(start);\r\n }\r\n else {\r\n if (this.isWorkDay(start, workDays)) {\r\n renderDates.push(start);\r\n }\r\n }\r\n start = util.addDays(start, 1);\r\n } while (dayCount !== renderDates.length);\r\n }\r\n if (!workDays) {\r\n this.renderDates = renderDates;\r\n }\r\n if (this.parent.headerModule) {\r\n this.parent.headerModule.previousNextIconHandler();\r\n }\r\n return renderDates;\r\n };\r\n ViewBase.prototype.getNextPreviousDate = function (type) {\r\n if (this.parent.currentView === 'Day' || this.parent.currentView === 'TimelineDay') {\r\n if (this.parent.activeViewOptions.showWeekend) {\r\n var daysCount = this.parent.activeViewOptions.interval;\r\n return util.addDays(this.parent.selectedDate, type === 'next' ? daysCount : -daysCount);\r\n }\r\n else {\r\n var date = void 0;\r\n if (type === 'next') {\r\n date = util.addDays(this.renderDates.slice(-1)[0], 1);\r\n while (!this.isWorkDay(date)) {\r\n date = util.addDays(date, 1);\r\n }\r\n }\r\n else {\r\n date = util.addDays(this.renderDates[0], -1);\r\n var count = 0;\r\n do {\r\n if (this.isWorkDay(date)) {\r\n count += 1;\r\n }\r\n if (this.parent.activeViewOptions.interval !== count) {\r\n date = util.addDays(date, -1);\r\n }\r\n } while (this.parent.activeViewOptions.interval !== count);\r\n }\r\n return date;\r\n }\r\n }\r\n var weekLength = type === 'next' ? util.WEEK_LENGTH : -util.WEEK_LENGTH;\r\n return util.addDays(this.parent.selectedDate, weekLength * this.parent.activeViewOptions.interval);\r\n };\r\n ViewBase.prototype.getLabelText = function (view) {\r\n var viewStr = view.charAt(0).toLowerCase() + view.substring(1);\r\n return this.parent.localeObj.getConstant(viewStr) + ' of ' + util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'long', calendar: this.parent.getCalendarMode() }), 'single');\r\n };\r\n ViewBase.prototype.getDateRangeText = function () {\r\n if (this.parent.isAdaptive) {\r\n var formatDate = (this.parent.activeViewOptions.dateFormat) ? this.parent.activeViewOptions.dateFormat : 'MMMM y';\r\n return util.capitalizeFirstWord(this.parent.globalize.formatDate(this.parent.selectedDate, { format: formatDate, calendar: this.parent.getCalendarMode() }), 'single');\r\n }\r\n return this.formatDateRange(this.renderDates[0], this.renderDates[this.renderDates.length - 1]);\r\n };\r\n ViewBase.prototype.formatDateRange = function (startDate, endDate) {\r\n var globalize = this.parent.globalize;\r\n var mode = this.parent.getCalendarMode();\r\n if (startDate === endDate) {\r\n endDate = null;\r\n }\r\n if (!isNullOrUndefined(this.parent.activeViewOptions.dateFormat)) {\r\n var text = '';\r\n if (!endDate) {\r\n text = globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode });\r\n return util.capitalizeFirstWord(text, 'multiple');\r\n }\r\n text = (globalize.formatDate(startDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }) +\r\n ' - ' + globalize.formatDate(endDate, { format: this.parent.activeViewOptions.dateFormat, calendar: mode }));\r\n return util.capitalizeFirstWord(text, 'multiple');\r\n }\r\n var formattedStr;\r\n var longDateFormat;\r\n if (this.parent.locale === 'en' || this.parent.locale === 'en-US') {\r\n longDateFormat = getValue('dateFormats.long', getDefaultDateObject(mode));\r\n }\r\n else {\r\n longDateFormat = getValue('main.' + '' + this.parent.locale + '.dates.calendars.' + mode + '.dateFormats.long', cldrData);\r\n }\r\n if (!endDate) {\r\n return util.capitalizeFirstWord(globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }), 'single');\r\n }\r\n var dateFormat = longDateFormat.trim().toLocaleLowerCase();\r\n if (dateFormat.substr(0, 1) === 'd') {\r\n if (startDate.getFullYear() === endDate.getFullYear()) {\r\n if (startDate.getMonth() === endDate.getMonth()) {\r\n formattedStr = globalize.formatDate(startDate, { format: 'dd', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'dd MMMM yyyy', calendar: mode });\r\n }\r\n else {\r\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\r\n }\r\n }\r\n else {\r\n formattedStr = globalize.formatDate(startDate, { format: 'dd MMM yyyy', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'dd MMM yyyy', calendar: mode });\r\n }\r\n }\r\n else if (dateFormat.substr(0, 1) === 'm') {\r\n if (startDate.getFullYear() === endDate.getFullYear()) {\r\n if (startDate.getMonth() === endDate.getMonth()) {\r\n formattedStr = globalize.formatDate(startDate, { format: 'MMMM dd', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'dd, yyyy', calendar: mode });\r\n }\r\n else {\r\n formattedStr = globalize.formatDate(startDate, { format: 'MMM dd', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\r\n }\r\n }\r\n else {\r\n formattedStr = globalize.\r\n formatDate(startDate, { format: 'MMM dd, yyyy', calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: 'MMM dd, yyyy', calendar: mode });\r\n }\r\n }\r\n else {\r\n formattedStr = globalize.formatDate(startDate, { format: longDateFormat, calendar: mode }) + ' - ' +\r\n globalize.formatDate(endDate, { format: longDateFormat, calendar: mode });\r\n }\r\n return util.capitalizeFirstWord(formattedStr, 'multiple');\r\n };\r\n ViewBase.prototype.getMobileDateElement = function (date, className) {\r\n var wrap = createElement('div', {\r\n className: className,\r\n innerHTML: '
      ' + this.parent.globalize.formatDate(date, { format: 'd', calendar: this.parent.getCalendarMode() }) + '
      ' + '
      ' +\r\n util.capitalizeFirstWord(this.parent.globalize.formatDate(date, { format: 'E', calendar: this.parent.getCalendarMode() }), 'single') + '
      '\r\n });\r\n return wrap;\r\n };\r\n ViewBase.prototype.setResourceHeaderContent = function (tdElement, tdData, className) {\r\n if (className === void 0) { className = cls.TEXT_ELLIPSIS; }\r\n if (this.parent.activeViewOptions.resourceHeaderTemplate) {\r\n var data = { resource: tdData.resource, resourceData: tdData.resourceData };\r\n var scheduleId = this.parent.element.id + '_';\r\n var viewName = this.parent.activeViewOptions.resourceHeaderTemplateName;\r\n var templateId = scheduleId + viewName + 'resourceHeaderTemplate';\r\n var quickTemplate = [].slice.call(this.parent.getResourceHeaderTemplate()(data, this.parent, 'resourceHeaderTemplate', templateId, false));\r\n append(quickTemplate, tdElement);\r\n }\r\n else {\r\n tdElement.appendChild(createElement('div', {\r\n className: className, innerHTML: tdData.resourceData[tdData.resource.textField]\r\n }));\r\n }\r\n };\r\n ViewBase.prototype.renderResourceMobileLayout = function () {\r\n if (this.parent.resourceBase.lastResourceLevel && this.parent.resourceBase.lastResourceLevel.length <= 0) {\r\n return;\r\n }\r\n this.parent.resourceBase.renderResourceHeader();\r\n this.parent.resourceBase.renderResourceTree();\r\n };\r\n ViewBase.prototype.addAutoHeightClass = function (element) {\r\n if (!this.parent.uiStateValues.isGroupAdaptive && this.parent.rowAutoHeight && this.isTimelineView()\r\n && this.parent.activeViewOptions.group.resources.length > 0) {\r\n addClass([element], cls.AUTO_HEIGHT);\r\n }\r\n };\r\n ViewBase.prototype.getColElements = function () {\r\n return [].slice.call(this.element.querySelectorAll('.' + cls.CONTENT_WRAP_CLASS + ' col, .' + cls.DATE_HEADER_WRAP_CLASS + ' col'));\r\n };\r\n ViewBase.prototype.setColWidth = function (content) {\r\n if (this.isTimelineView()) {\r\n var colElements = this.getColElements();\r\n var contentBody = this.element.querySelector('.' + cls.CONTENT_TABLE_CLASS + ' tbody');\r\n var colWidth_1 = Math.ceil(contentBody.offsetWidth / (colElements.length / 2));\r\n colElements.forEach(function (col) { return setStyleAttribute(col, { 'width': formatUnit(colWidth_1) }); });\r\n if (content.offsetHeight !== content.clientHeight) {\r\n var resourceColumn = this.parent.element.querySelector('.' + cls.RESOURCE_COLUMN_WRAP_CLASS);\r\n if (!isNullOrUndefined(resourceColumn)) {\r\n setStyleAttribute(resourceColumn, { 'height': formatUnit(content.clientHeight) });\r\n }\r\n }\r\n }\r\n };\r\n ViewBase.prototype.resetColWidth = function () {\r\n var colElements = this.getColElements();\r\n for (var _i = 0, colElements_1 = colElements; _i < colElements_1.length; _i++) {\r\n var col = colElements_1[_i];\r\n col.style.width = '';\r\n }\r\n };\r\n ViewBase.prototype.getContentAreaElement = function () {\r\n return this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n };\r\n ViewBase.prototype.wireExpandCollapseIconEvents = function () {\r\n if (this.parent.resourceBase && this.parent.resourceBase.resourceCollection.length > 1) {\r\n var treeIcons = [].slice.call(this.element.querySelectorAll('.' + cls.RESOURCE_TREE_ICON_CLASS));\r\n for (var _i = 0, treeIcons_1 = treeIcons; _i < treeIcons_1.length; _i++) {\r\n var icon = treeIcons_1[_i];\r\n EventHandler.clearEvents(icon);\r\n EventHandler.add(icon, 'click', this.parent.resourceBase.onTreeIconClick, this.parent.resourceBase);\r\n }\r\n }\r\n };\r\n ViewBase.prototype.scrollToDate = function (scrollDate) {\r\n if (['Month', 'TimelineMonth'].indexOf(this.parent.currentView) === -1 || isNullOrUndefined(scrollDate)) {\r\n return;\r\n }\r\n var scrollWrap = this.getContentAreaElement();\r\n var tdDate = new Date(util.resetTime(new Date(+scrollDate)).getTime()).getTime();\r\n var dateElement = scrollWrap.querySelector(\".\" + cls.WORK_CELLS_CLASS + \"[data-date=\\\"\" + tdDate + \"\\\"]\");\r\n if (this.parent.currentView === 'Month' && dateElement) {\r\n scrollWrap.scrollTop = dateElement.offsetTop;\r\n }\r\n if (this.parent.currentView === 'TimelineMonth' && dateElement) {\r\n if (!this.parent.enableRtl) {\r\n scrollWrap.scrollLeft = dateElement.offsetLeft;\r\n }\r\n else {\r\n scrollWrap.scrollLeft = -(this.parent.getContentTable().offsetWidth - dateElement.offsetLeft - dateElement.offsetWidth);\r\n }\r\n }\r\n };\r\n ViewBase.prototype.setPersistence = function () {\r\n if (this.parent.enablePersistence) {\r\n var contentWrap = this.element.querySelector('.e-content-wrap');\r\n if (!isNullOrUndefined(contentWrap)) {\r\n this.parent.scrollLeft = contentWrap.scrollLeft;\r\n this.parent.scrollTop = contentWrap.scrollTop;\r\n }\r\n }\r\n };\r\n ViewBase.prototype.retainScrollPosition = function () {\r\n if (this.parent.enablePersistence) {\r\n var conWrap = this.parent.element.querySelector('.e-content-wrap');\r\n if (!isNullOrUndefined(conWrap) && !isNullOrUndefined(this.parent.scrollLeft) && !isNullOrUndefined(this.parent.scrollTop)) {\r\n conWrap.scrollTop = this.parent.scrollTop;\r\n conWrap.scrollLeft = this.parent.scrollLeft;\r\n }\r\n }\r\n };\r\n ViewBase.prototype.getViewStartDate = function () {\r\n var startDate = this.renderDates[0];\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\r\n startDate = this.parent.resourceBase.getResourceRenderDates()[0];\r\n }\r\n return startDate;\r\n };\r\n ViewBase.prototype.getViewEndDate = function () {\r\n var endDate = util.addDays(this.renderDates[this.renderDates.length - 1], 1);\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.resourceBase.lastResourceLevel.length > 0) {\r\n endDate = util.addDays(this.parent.resourceBase.getResourceRenderDates().slice(-1)[0], 1);\r\n }\r\n return endDate;\r\n };\r\n ViewBase.prototype.destroy = function () {\r\n if (this.element && this.element.parentNode) {\r\n remove(this.element);\r\n }\r\n this.element = null;\r\n this.renderDates = null;\r\n this.colLevels = null;\r\n };\r\n return ViewBase;\r\n}());\r\nexport { ViewBase };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { VerticalView } from './vertical-view';\r\n/**\r\n * week view\r\n */\r\nvar Week = /** @class */ (function (_super) {\r\n __extends(Week, _super);\r\n /**\r\n * Constructor for week view\r\n *\r\n * @param {Schedule} parent Accepts the schedule instance\r\n */\r\n function Week(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-week-view';\r\n return _this;\r\n }\r\n Week.prototype.startDate = function () {\r\n return this.getViewStartDate();\r\n };\r\n Week.prototype.endDate = function () {\r\n return this.getViewEndDate();\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} Returns the module name.\r\n */\r\n Week.prototype.getModuleName = function () {\r\n return 'week';\r\n };\r\n return Week;\r\n}(VerticalView));\r\nexport { Week };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { VerticalView } from './vertical-view';\r\n/**\r\n * work week view\r\n */\r\nvar WorkWeek = /** @class */ (function (_super) {\r\n __extends(WorkWeek, _super);\r\n /**\r\n * Constructor for work week view\r\n *\r\n * @param {Schedule} parent Accepts the schedule instance\r\n */\r\n function WorkWeek(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-work-week-view';\r\n return _this;\r\n }\r\n WorkWeek.prototype.startDate = function () {\r\n return this.getViewStartDate();\r\n };\r\n WorkWeek.prototype.endDate = function () {\r\n return this.getViewEndDate();\r\n };\r\n /**\r\n * Get module name.\r\n *\r\n * @returns {string} Returns the module name.\r\n */\r\n WorkWeek.prototype.getModuleName = function () {\r\n return 'workWeek';\r\n };\r\n return WorkWeek;\r\n}(VerticalView));\r\nexport { WorkWeek };\r\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { EventHandler, formatUnit, createElement, addClass, closest, prepend } from '@syncfusion/ej2-base';\r\nimport { ViewBase } from './view-base';\r\nimport { YearEvent } from '../event-renderer/year';\r\nimport * as util from '../base/util';\r\nimport * as event from '../base/constant';\r\nimport * as cls from '../base/css-constant';\r\n/**\r\n * year view\r\n */\r\nvar Year = /** @class */ (function (_super) {\r\n __extends(Year, _super);\r\n function Year(parent) {\r\n var _this = _super.call(this, parent) || this;\r\n _this.viewClass = 'e-year-view';\r\n _this.isInverseTableSelect = false;\r\n _this.yearEventModule = null;\r\n return _this;\r\n }\r\n Year.prototype.getModuleName = function () {\r\n return 'year';\r\n };\r\n Year.prototype.renderLayout = function (className) {\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.generateResourceLevels([{ renderDates: this.parent.activeView.renderDates }]);\r\n }\r\n this.setPanel(createElement('div', { className: cls.TABLE_WRAP_CLASS }));\r\n var viewTypeClass = this.parent.activeViewOptions.orientation === 'Horizontal' ? 'e-horizontal' : 'e-vertical';\r\n addClass([this.element], [this.viewClass, viewTypeClass, className]);\r\n this.renderPanel(className);\r\n var calendarTable = this.createTableLayout(cls.OUTER_TABLE_CLASS);\r\n this.element.appendChild(calendarTable);\r\n this.element.querySelector('table').setAttribute('role', 'presentation');\r\n var calendarTBody = calendarTable.querySelector('tbody');\r\n this.rowCount = this.getRowColumnCount('row');\r\n this.columnCount = this.getRowColumnCount('column');\r\n this.renderHeader(calendarTBody);\r\n this.renderContent(calendarTBody);\r\n if (this.parent.currentView !== 'Year' && this.parent.uiStateValues.isGroupAdaptive) {\r\n this.generateColumnLevels();\r\n this.renderResourceMobileLayout();\r\n }\r\n this.wireEvents(this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS), 'scroll');\r\n this.parent.notify(event.contentReady, {});\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Year.prototype.renderHeader = function (headerWrapper) { };\r\n Year.prototype.renderContent = function (content) {\r\n var tr = createElement('tr');\r\n content.appendChild(tr);\r\n var td = createElement('td');\r\n tr.appendChild(td);\r\n this.element.querySelector('tbody').appendChild(tr);\r\n var contentWrapper = createElement('div', { className: cls.CONTENT_WRAP_CLASS });\r\n td.appendChild(contentWrapper);\r\n var calendarTable = this.createTableLayout('e-calendar-table');\r\n contentWrapper.appendChild(calendarTable);\r\n var cTr = createElement('tr');\r\n calendarTable.querySelector('tbody').appendChild(cTr);\r\n var cTd = createElement('td');\r\n cTr.appendChild(cTd);\r\n var calendarWrapper = createElement('div', { className: 'e-calendar-wrapper' });\r\n cTd.appendChild(calendarWrapper);\r\n var months = this.getMonths();\r\n for (var _i = 0, months_1 = months; _i < months_1.length; _i++) {\r\n var month = months_1[_i];\r\n var currentMonth = new Date(this.parent.selectedDate.getFullYear(), month, 1);\r\n var calendarElement = createElement('div', {\r\n className: 'e-month-calendar e-calendar',\r\n attrs: { 'data-role': 'calendar' }\r\n });\r\n calendarElement.appendChild(this.renderCalendarHeader(currentMonth));\r\n calendarElement.appendChild(this.renderCalendarContent(currentMonth));\r\n calendarWrapper.appendChild(calendarElement);\r\n }\r\n };\r\n Year.prototype.renderCalendarHeader = function (currentDate) {\r\n var headerWrapper = createElement('div', { className: 'e-header e-month' });\r\n var headerContent = createElement('div', { className: 'e-day e-title', innerHTML: this.getMonthName(currentDate) });\r\n headerWrapper.appendChild(headerContent);\r\n this.parent.trigger(event.renderCell, { elementType: 'headerCells', element: headerContent, date: currentDate });\r\n return headerWrapper;\r\n };\r\n Year.prototype.renderCalendarContent = function (currentDate) {\r\n var dateCollection = this.getMonthDates(currentDate);\r\n var contentWrapper = createElement('div', { className: 'e-content e-month' });\r\n var contentTable = this.createTableLayout('e-calendar-table ' + cls.CONTENT_TABLE_CLASS);\r\n contentWrapper.appendChild(contentTable);\r\n var thead = createElement('thead', { className: 'e-week-header' });\r\n var tr = createElement('tr');\r\n var currentWeek = util.getWeekFirstDate(util.firstDateOfMonth(currentDate), this.parent.firstDayOfWeek);\r\n if (this.parent.activeViewOptions.showWeekNumber) {\r\n tr.appendChild(createElement('th'));\r\n }\r\n for (var i = 0; i < util.WEEK_LENGTH; i++) {\r\n tr.appendChild(createElement('th', { innerHTML: this.parent.getDayNames('narrow')[currentWeek.getDay()] }));\r\n currentWeek = new Date(currentWeek.getTime() + util.MS_PER_DAY);\r\n }\r\n thead.appendChild(tr);\r\n prepend([thead], contentTable);\r\n var tbody = contentTable.querySelector('tbody');\r\n while (dateCollection.length > 0) {\r\n var weekDates = dateCollection.splice(0, util.WEEK_LENGTH);\r\n var tr_1 = createElement('tr', { attrs: { 'role': 'row' } });\r\n if (this.parent.activeViewOptions.showWeekNumber) {\r\n var weekNumber = this.parent.getWeekNumberContent(weekDates);\r\n var td = createElement('td', {\r\n className: 'e-week-number',\r\n attrs: { 'role': 'gridcell', 'title': 'Week ' + weekNumber },\r\n innerHTML: weekNumber\r\n });\r\n tr_1.appendChild(td);\r\n this.parent.trigger(event.renderCell, { elementType: 'weekNumberCells', element: td });\r\n }\r\n for (var _i = 0, weekDates_1 = weekDates; _i < weekDates_1.length; _i++) {\r\n var date = weekDates_1[_i];\r\n var td = createElement('td', {\r\n className: 'e-cell ' + cls.WORK_CELLS_CLASS,\r\n attrs: { 'role': 'gridcell', 'aria-selected': 'false', 'data-date': date.getTime().toString() }\r\n });\r\n var span = createElement('span', {\r\n className: 'e-day', innerHTML: this.parent.globalize.formatDate(date, { skeleton: 'd', calendar: this.parent.getCalendarMode() }),\r\n attrs: { title: this.parent.globalize.formatDate(date, { type: 'date', skeleton: 'full' }) }\r\n });\r\n td.appendChild(span);\r\n var classList = [];\r\n if (currentDate.getMonth() !== date.getMonth()) {\r\n classList.push(cls.OTHERMONTH_CLASS);\r\n }\r\n if (this.isCurrentDate(date) && currentDate.getMonth() === date.getMonth()) {\r\n classList = classList.concat(['e-today', 'e-selected']);\r\n }\r\n if (classList.length > 0) {\r\n addClass([td], classList);\r\n }\r\n tr_1.appendChild(td);\r\n this.wireEvents(td, 'cell');\r\n this.parent.trigger(event.renderCell, { elementType: 'workCells', element: td, date: date });\r\n }\r\n tbody.appendChild(tr_1);\r\n }\r\n return contentWrapper;\r\n };\r\n Year.prototype.createTableColGroup = function (count) {\r\n var colGroupEle = createElement('colgroup');\r\n for (var i = 0; i < count; i++) {\r\n colGroupEle.appendChild(createElement('col'));\r\n }\r\n return colGroupEle;\r\n };\r\n Year.prototype.getMonthName = function (date) {\r\n var month = this.parent.globalize.formatDate(date, {\r\n format: this.parent.activeViewOptions.dateFormat || 'MMMM y',\r\n calendar: this.parent.getCalendarMode()\r\n });\r\n return util.capitalizeFirstWord(month, 'multiple');\r\n };\r\n Year.prototype.generateColumnLevels = function () {\r\n var colLevels = [];\r\n var level = this.getDateSlots([this.parent.selectedDate], this.parent.activeViewOptions.workDays);\r\n if (this.parent.activeViewOptions.group.resources.length > 0) {\r\n colLevels = this.parent.resourceBase.generateResourceLevels(level);\r\n if (this.parent.uiStateValues.isGroupAdaptive) {\r\n var resourceLevel = this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex];\r\n colLevels = [this.getDateSlots([this.parent.selectedDate], resourceLevel.workDays)];\r\n }\r\n }\r\n else {\r\n colLevels.push(level);\r\n }\r\n colLevels.pop();\r\n this.colLevels = colLevels;\r\n return colLevels;\r\n };\r\n // eslint-disable-next-line max-len\r\n Year.prototype.getDateSlots = function (renderDates, workDays, startHour, endHour) {\r\n if (startHour === void 0) { startHour = this.parent.workHours.start; }\r\n if (endHour === void 0) { endHour = this.parent.workHours.end; }\r\n var dateCol = [{\r\n date: renderDates[0], type: 'dateHeader', className: [cls.HEADER_CELLS_CLASS], colSpan: 1, workDays: workDays,\r\n startHour: new Date(+this.parent.globalize.parseDate(startHour, { skeleton: 'Hm' })),\r\n endHour: new Date(+this.parent.globalize.parseDate(endHour, { skeleton: 'Hm' }))\r\n }];\r\n return dateCol;\r\n };\r\n Year.prototype.getMonthDates = function (date) {\r\n var startDate = util.getWeekFirstDate(util.firstDateOfMonth(date), this.parent.firstDayOfWeek);\r\n var endDate = util.addDays(new Date(+startDate), (6 * util.WEEK_LENGTH));\r\n var dateCollection = [];\r\n for (var start = startDate; start.getTime() < endDate.getTime(); start = util.addDays(start, 1)) {\r\n dateCollection.push(util.resetTime(new Date(start)));\r\n }\r\n return dateCollection;\r\n };\r\n Year.prototype.getRowColumnCount = function (type) {\r\n var months = this.getMonths();\r\n var year = this.parent.selectedDate.getFullYear();\r\n var monthDaysCount = [];\r\n for (var _i = 0, months_2 = months; _i < months_2.length; _i++) {\r\n var month = months_2[_i];\r\n monthDaysCount.push(new Date(year, month, 1).getDay() + new Date(year, month + 1, 0).getDate());\r\n }\r\n var maxCount = Math.max.apply(Math, monthDaysCount);\r\n var count;\r\n if (type === 'row') {\r\n count = this.parent.activeViewOptions.orientation === 'Horizontal' ? months.length : maxCount;\r\n }\r\n else {\r\n count = this.parent.activeViewOptions.orientation === 'Horizontal' ? maxCount : months.length;\r\n }\r\n return count;\r\n };\r\n Year.prototype.isCurrentDate = function (date) {\r\n return util.resetTime(new Date()).getTime() === util.resetTime(new Date(date.getTime())).getTime();\r\n };\r\n Year.prototype.getMonths = function () {\r\n var _this = this;\r\n // eslint-disable-next-line prefer-spread\r\n return Array.apply(null, { length: this.parent.activeViewOptions.monthsCount }).map(function (value, index) {\r\n return _this.parent.firstMonthOfYear + index;\r\n });\r\n };\r\n Year.prototype.onCellClick = function (e) {\r\n var target = closest(e.target, '.' + cls.WORK_CELLS_CLASS);\r\n var startDate = this.parent.getDateFromElement(target);\r\n var endDate = util.addDays(new Date(startDate.getTime()), 1);\r\n var filteredEvents = this.parent.eventBase.filterEvents(startDate, endDate);\r\n var moreEventArgs = { date: startDate, event: filteredEvents, element: e.target };\r\n this.parent.quickPopup.moreEventClick(moreEventArgs, endDate);\r\n };\r\n Year.prototype.onContentScroll = function (e) {\r\n var target = e.target;\r\n var headerWrapper = this.getDatesHeaderElement();\r\n if (headerWrapper) {\r\n headerWrapper.firstElementChild.scrollLeft = target.scrollLeft;\r\n }\r\n var scrollTopSelector = \".\" + cls.MONTH_HEADER_WRAPPER + \",.\" + cls.RESOURCE_COLUMN_WRAP_CLASS;\r\n var scrollTopElement = this.element.querySelector(scrollTopSelector);\r\n if (scrollTopElement) {\r\n scrollTopElement.scrollTop = target.scrollTop;\r\n }\r\n this.setPersistence();\r\n };\r\n Year.prototype.onScrollUiUpdate = function (args) {\r\n var height = this.parent.element.offsetHeight - this.getHeaderBarHeight();\r\n var headerWrapper = this.element.querySelector('.' + cls.DATE_HEADER_CONTAINER_CLASS);\r\n if (headerWrapper) {\r\n height -= headerWrapper.offsetHeight;\r\n }\r\n var contentWrapper = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (contentWrapper) {\r\n contentWrapper.style.height = formatUnit(height);\r\n }\r\n if (!this.parent.isAdaptive && headerWrapper) {\r\n var scrollBarWidth = util.getScrollBarWidth();\r\n if (contentWrapper.offsetWidth - contentWrapper.clientWidth > 0) {\r\n headerWrapper.firstElementChild.style[args.cssProperties.border] = scrollBarWidth > 0 ? '1px' : '0px';\r\n headerWrapper.style[args.cssProperties.padding] = scrollBarWidth > 0 ? scrollBarWidth - 1 + 'px' : '0px';\r\n }\r\n else {\r\n headerWrapper.firstElementChild.style[args.cssProperties.border] = '';\r\n headerWrapper.style[args.cssProperties.padding] = '';\r\n }\r\n }\r\n this.setColWidth(this.getContentAreaElement());\r\n var leftPanelSelector = \".\" + cls.MONTH_HEADER_WRAPPER + \",.\" + cls.RESOURCE_COLUMN_WRAP_CLASS;\r\n var leftPanelElement = this.element.querySelector(leftPanelSelector);\r\n if (leftPanelElement) {\r\n var isYScroll = contentWrapper.scrollWidth > contentWrapper.clientWidth;\r\n leftPanelElement.style.height = formatUnit(height - (isYScroll ? 17 : 0));\r\n }\r\n this.retainScrollPosition();\r\n };\r\n Year.prototype.getStartDate = function () {\r\n return new Date(this.parent.selectedDate.getFullYear(), this.parent.firstMonthOfYear % 12, 1);\r\n };\r\n Year.prototype.getEndDate = function () {\r\n return util.addDays(util.addMonths(this.getStartDate(), this.parent.monthsCount), -1);\r\n };\r\n Year.prototype.startDate = function () {\r\n return util.getWeekFirstDate(this.getStartDate(), this.parent.firstDayOfWeek);\r\n };\r\n Year.prototype.endDate = function () {\r\n return util.addDays(util.getWeekLastDate(this.getEndDate(), this.parent.firstDayOfWeek), 1);\r\n };\r\n Year.prototype.getEndDateFromStartDate = function (start) {\r\n var date = new Date(start.getTime());\r\n if (this.parent.activeViewOptions.group.resources.length > 0 && !this.parent.uiStateValues.isGroupAdaptive) {\r\n date = util.lastDateOfMonth(date);\r\n }\r\n return util.addDays(new Date(date.getTime()), 1);\r\n };\r\n Year.prototype.getNextPreviousDate = function (type) {\r\n return util.addYears(this.parent.selectedDate, ((type === 'next') ? 1 : -1));\r\n };\r\n Year.prototype.getDateRangeText = function () {\r\n var startDate = this.getStartDate();\r\n var endDate = this.getEndDate();\r\n if (startDate.getFullYear() !== endDate.getFullYear()) {\r\n return this.parent.globalize.formatDate(startDate, { skeleton: 'yMMM' }) + ' - ' + this.parent.globalize.formatDate(endDate, { skeleton: 'yMMM' });\r\n }\r\n else {\r\n return this.parent.globalize.formatDate(this.parent.selectedDate, { skeleton: 'y' });\r\n }\r\n };\r\n Year.prototype.addEventListener = function () {\r\n this.parent.on(event.scrollUiUpdate, this.onScrollUiUpdate, this);\r\n this.parent.on(event.dataReady, this.onDataReady, this);\r\n };\r\n Year.prototype.removeEventListener = function () {\r\n if (this.parent) {\r\n this.parent.off(event.scrollUiUpdate, this.onScrollUiUpdate);\r\n this.parent.off(event.dataReady, this.onDataReady);\r\n }\r\n };\r\n Year.prototype.onDataReady = function (args) {\r\n this.yearEventModule = new YearEvent(this.parent);\r\n this.yearEventModule.renderAppointments();\r\n this.parent.notify(event.eventsLoaded, args);\r\n };\r\n Year.prototype.wireEvents = function (element, type) {\r\n if (type === 'cell') {\r\n if (this.parent.currentView !== 'TimelineYear') {\r\n EventHandler.add(element, 'click', this.onCellClick, this);\r\n }\r\n else {\r\n EventHandler.add(element, 'click', this.parent.workCellAction.cellClick, this.parent.workCellAction);\r\n if (!this.parent.isAdaptive) {\r\n EventHandler.add(element, 'dblclick', this.parent.workCellAction.cellDblClick, this.parent.workCellAction);\r\n }\r\n }\r\n }\r\n else {\r\n EventHandler.add(element, 'scroll', this.onContentScroll, this);\r\n }\r\n };\r\n Year.prototype.destroy = function () {\r\n if (!this.parent || this.parent && this.parent.isDestroyed) {\r\n return;\r\n }\r\n if (this.element) {\r\n var contentScroll = this.element.querySelector('.' + cls.CONTENT_WRAP_CLASS);\r\n if (contentScroll) {\r\n EventHandler.remove(contentScroll, 'scroll', this.onContentScroll);\r\n }\r\n if (this.yearEventModule) {\r\n this.yearEventModule.destroy();\r\n this.yearEventModule = null;\r\n }\r\n if (this.parent.resourceBase) {\r\n this.parent.resourceBase.destroy();\r\n }\r\n _super.prototype.destroy.call(this);\r\n }\r\n };\r\n return Year;\r\n}(ViewBase));\r\nexport { Year };\r\n","/**\r\n * Time zone\r\n */\r\nvar Timezone = /** @class */ (function () {\r\n function Timezone() {\r\n this.timezoneData = [];\r\n this.timezoneData = this.getTimezoneData();\r\n }\r\n Timezone.prototype.offset = function (date, timezone) {\r\n var localOffset = date.getTimezoneOffset();\r\n try {\r\n var convertedDate = new Date(date.toLocaleString('en-US', { timeZone: timezone }));\r\n if (!isNaN(convertedDate.getTime())) {\r\n return ((date.getTime() - convertedDate.getTime()) / 60000) + localOffset;\r\n }\r\n return 0;\r\n }\r\n catch (error) {\r\n return 0;\r\n }\r\n };\r\n Timezone.prototype.convert = function (date, fromOffset, toOffset) {\r\n if (typeof fromOffset === 'string') {\r\n fromOffset = this.offset(date, fromOffset);\r\n }\r\n if (typeof toOffset === 'string') {\r\n toOffset = this.offset(date, toOffset);\r\n }\r\n var fromLocalOffset = date.getTimezoneOffset();\r\n date = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\r\n var toLocalOffset = date.getTimezoneOffset();\r\n return new Date(date.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\r\n };\r\n Timezone.prototype.add = function (date, timezone) {\r\n return this.convert(date, date.getTimezoneOffset(), timezone);\r\n };\r\n Timezone.prototype.remove = function (date, timezone) {\r\n return this.convert(date, timezone, date.getTimezoneOffset());\r\n };\r\n Timezone.prototype.removeLocalOffset = function (date) {\r\n return new Date(date.getTime() - (date.getTimezoneOffset() * 60000));\r\n };\r\n Timezone.prototype.getLocalTimezoneName = function () {\r\n return window.Intl ? Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC' : 'UTC';\r\n };\r\n Timezone.prototype.getTimezoneData = function () {\r\n return timezoneData;\r\n };\r\n return Timezone;\r\n}());\r\nexport { Timezone };\r\nexport var timezoneData = [\r\n { Value: 'Pacific/Niue', Text: '(UTC-11:00) Niue' },\r\n { Value: 'Pacific/Pago_Pago', Text: '(UTC-11:00) Pago Pago' },\r\n { Value: 'Pacific/Honolulu', Text: '(UTC-10:00) Hawaii Time' },\r\n { Value: 'Pacific/Rarotonga', Text: '(UTC-10:00) Rarotonga' },\r\n { Value: 'Pacific/Tahiti', Text: '(UTC-10:00) Tahiti' },\r\n { Value: 'Pacific/Marquesas', Text: '(UTC-09:30) Marquesas' },\r\n { Value: 'America/Anchorage', Text: '(UTC-09:00) Alaska Time' },\r\n { Value: 'Pacific/Gambier', Text: '(UTC-09:00) Gambier' },\r\n { Value: 'America/Los_Angeles', Text: '(UTC-08:00) Pacific Time' },\r\n { Value: 'America/Tijuana', Text: '(UTC-08:00) Pacific Time - Tijuana' },\r\n { Value: 'America/Vancouver', Text: '(UTC-08:00) Pacific Time - Vancouver' },\r\n { Value: 'America/Whitehorse', Text: '(UTC-08:00) Pacific Time - Whitehorse' },\r\n { Value: 'Pacific/Pitcairn', Text: '(UTC-08:00) Pitcairn' },\r\n { Value: 'America/Denver', Text: '(UTC-07:00) Mountain Time' },\r\n { Value: 'America/Phoenix', Text: '(UTC-07:00) Mountain Time - Arizona' },\r\n { Value: 'America/Mazatlan', Text: '(UTC-07:00) Mountain Time - Chihuahua, Mazatlan' },\r\n { Value: 'America/Dawson_Creek', Text: '(UTC-07:00) Mountain Time - Dawson Creek' },\r\n { Value: 'America/Edmonton', Text: '(UTC-07:00) Mountain Time - Edmonton' },\r\n { Value: 'America/Hermosillo', Text: '(UTC-07:00) Mountain Time - Hermosillo' },\r\n { Value: 'America/Yellowknife', Text: '(UTC-07:00) Mountain Time - Yellowknife' },\r\n { Value: 'America/Belize', Text: '(UTC-06:00) Belize' },\r\n { Value: 'America/Chicago', Text: '(UTC-06:00) Central Time' },\r\n { Value: 'America/Mexico_City', Text: '(UTC-06:00) Central Time - Mexico City' },\r\n { Value: 'America/Regina', Text: '(UTC-06:00) Central Time - Regina' },\r\n { Value: 'America/Tegucigalpa', Text: '(UTC-06:00) Central Time - Tegucigalpa' },\r\n { Value: 'America/Winnipeg', Text: '(UTC-06:00) Central Time - Winnipeg' },\r\n { Value: 'America/Costa_Rica', Text: '(UTC-06:00) Costa Rica' },\r\n { Value: 'America/El_Salvador', Text: '(UTC-06:00) El Salvador' },\r\n { Value: 'Pacific/Galapagos', Text: '(UTC-06:00) Galapagos' },\r\n { Value: 'America/Guatemala', Text: '(UTC-06:00) Guatemala' },\r\n { Value: 'America/Managua', Text: '(UTC-06:00) Managua' },\r\n { Value: 'America/Cancun', Text: '(UTC-05:00) America Cancun' },\r\n { Value: 'America/Bogota', Text: '(UTC-05:00) Bogota' },\r\n { Value: 'Pacific/Easter', Text: '(UTC-05:00) Easter Island' },\r\n { Value: 'America/New_York', Text: '(UTC-05:00) Eastern Time' },\r\n { Value: 'America/Iqaluit', Text: '(UTC-05:00) Eastern Time - Iqaluit' },\r\n { Value: 'America/Toronto', Text: '(UTC-05:00) Eastern Time - Toronto' },\r\n { Value: 'America/Guayaquil', Text: '(UTC-05:00) Guayaquil' },\r\n { Value: 'America/Havana', Text: '(UTC-05:00) Havana' },\r\n { Value: 'America/Jamaica', Text: '(UTC-05:00) Jamaica' },\r\n { Value: 'America/Lima', Text: '(UTC-05:00) Lima' },\r\n { Value: 'America/Nassau', Text: '(UTC-05:00) Nassau' },\r\n { Value: 'America/Panama', Text: '(UTC-05:00) Panama' },\r\n { Value: 'America/Port-au-Prince', Text: '(UTC-05:00) Port-au-Prince' },\r\n { Value: 'America/Rio_Branco', Text: '(UTC-05:00) Rio Branco' },\r\n { Value: 'America/Halifax', Text: '(UTC-04:00) Atlantic Time - Halifax' },\r\n { Value: 'America/Barbados', Text: '(UTC-04:00) Barbados' },\r\n { Value: 'Atlantic/Bermuda', Text: '(UTC-04:00) Bermuda' },\r\n { Value: 'America/Boa_Vista', Text: '(UTC-04:00) Boa Vista' },\r\n { Value: 'America/Caracas', Text: '(UTC-04:00) Caracas' },\r\n { Value: 'America/Curacao', Text: '(UTC-04:00) Curacao' },\r\n { Value: 'America/Grand_Turk', Text: '(UTC-04:00) Grand Turk' },\r\n { Value: 'America/Guyana', Text: '(UTC-04:00) Guyana' },\r\n { Value: 'America/La_Paz', Text: '(UTC-04:00) La Paz' },\r\n { Value: 'America/Manaus', Text: '(UTC-04:00) Manaus' },\r\n { Value: 'America/Martinique', Text: '(UTC-04:00) Martinique' },\r\n { Value: 'America/Port_of_Spain', Text: '(UTC-04:00) Port of Spain' },\r\n { Value: 'America/Porto_Velho', Text: '(UTC-04:00) Porto Velho' },\r\n { Value: 'America/Puerto_Rico', Text: '(UTC-04:00) Puerto Rico' },\r\n { Value: 'America/Santo_Domingo', Text: '(UTC-04:00) Santo Domingo' },\r\n { Value: 'America/Thule', Text: '(UTC-04:00) Thule' },\r\n { Value: 'America/St_Johns', Text: '(UTC-03:30) Newfoundland Time - St. Johns' },\r\n { Value: 'America/Araguaina', Text: '(UTC-03:00) Araguaina' },\r\n { Value: 'America/Asuncion', Text: '(UTC-03:00) Asuncion' },\r\n { Value: 'America/Belem', Text: '(UTC-03:00) Belem' },\r\n { Value: 'America/Argentina/Buenos_Aires', Text: '(UTC-03:00) Buenos Aires' },\r\n { Value: 'America/Campo_Grande', Text: '(UTC-03:00) Campo Grande' },\r\n { Value: 'America/Cayenne', Text: '(UTC-03:00) Cayenne' },\r\n { Value: 'America/Cuiaba', Text: '(UTC-03:00) Cuiaba' },\r\n { Value: 'America/Fortaleza', Text: '(UTC-03:00) Fortaleza' },\r\n { Value: 'America/Godthab', Text: '(UTC-03:00) Godthab' },\r\n { Value: 'America/Maceio', Text: '(UTC-03:00) Maceio' },\r\n { Value: 'America/Miquelon', Text: '(UTC-03:00) Miquelon' },\r\n { Value: 'America/Montevideo', Text: '(UTC-03:00) Montevideo' },\r\n { Value: 'Antarctica/Palmer', Text: '(UTC-03:00) Palmer' },\r\n { Value: 'America/Paramaribo', Text: '(UTC-03:00) Paramaribo' },\r\n { Value: 'America/Punta_Arenas', Text: '(UTC-03:00) Punta Arenas' },\r\n { Value: 'America/Recife', Text: '(UTC-03:00) Recife' },\r\n { Value: 'Antarctica/Rothera', Text: '(UTC-03:00) Rothera' },\r\n { Value: 'America/Bahia', Text: '(UTC-03:00) Salvador' },\r\n { Value: 'America/Santiago', Text: '(UTC-03:00) Santiago' },\r\n { Value: 'Atlantic/Stanley', Text: '(UTC-03:00) Stanley' },\r\n { Value: 'America/Noronha', Text: '(UTC-02:00) Noronha' },\r\n { Value: 'America/Sao_Paulo', Text: '(UTC-02:00) Sao Paulo' },\r\n { Value: 'Atlantic/South_Georgia', Text: '(UTC-02:00) South Georgia' },\r\n { Value: 'Atlantic/Azores', Text: '(UTC-01:00) Azores' },\r\n { Value: 'Atlantic/Cape_Verde', Text: '(UTC-01:00) Cape Verde' },\r\n { Value: 'America/Scoresbysund', Text: '(UTC-01:00) Scoresbysund' },\r\n { Value: 'Africa/Abidjan', Text: '(UTC+00:00) Abidjan' },\r\n { Value: 'Africa/Accra', Text: '(UTC+00:00) Accra' },\r\n { Value: 'Africa/Bissau', Text: '(UTC+00:00) Bissau' },\r\n { Value: 'Atlantic/Canary', Text: '(UTC+00:00) Canary Islands' },\r\n { Value: 'Africa/Casablanca', Text: '(UTC+00:00) Casablanca' },\r\n { Value: 'America/Danmarkshavn', Text: '(UTC+00:00) Danmarkshavn' },\r\n { Value: 'Europe/Dublin', Text: '(UTC+00:00) Dublin' },\r\n { Value: 'Africa/El_Aaiun', Text: '(UTC+00:00) El Aaiun' },\r\n { Value: 'Atlantic/Faroe', Text: '(UTC+00:00) Faeroe' },\r\n { Value: 'Etc/UTC', Text: '(UTC+00:00) UTC (no daylight saving)' },\r\n { Value: 'Europe/Lisbon', Text: '(UTC+00:00) Lisbon' },\r\n { Value: 'Europe/London', Text: '(UTC+00:00) London' },\r\n { Value: 'Africa/Monrovia', Text: '(UTC+00:00) Monrovia' },\r\n { Value: 'Atlantic/Reykjavik', Text: '(UTC+00:00) Reykjavik' },\r\n { Value: 'UTC', Text: 'UTC' },\r\n { Value: 'Africa/Algiers', Text: '(UTC+01:00) Algiers' },\r\n { Value: 'Europe/Amsterdam', Text: '(UTC+01:00) Amsterdam' },\r\n { Value: 'Europe/Andorra', Text: '(UTC+01:00) Andorra' },\r\n { Value: 'Europe/Berlin', Text: '(UTC+01:00) Berlin' },\r\n { Value: 'Europe/Brussels', Text: '(UTC+01:00) Brussels' },\r\n { Value: 'Europe/Budapest', Text: '(UTC+01:00) Budapest' },\r\n { Value: 'Europe/Belgrade', Text: '(UTC+01:00) Central European Time - Belgrade' },\r\n { Value: 'Europe/Prague', Text: '(UTC+01:00) Central European Time - Prague' },\r\n { Value: 'Africa/Ceuta', Text: '(UTC+01:00) Ceuta' },\r\n { Value: 'Europe/Copenhagen', Text: '(UTC+01:00) Copenhagen' },\r\n { Value: 'Europe/Gibraltar', Text: '(UTC+01:00) Gibraltar' },\r\n { Value: 'Africa/Lagos', Text: '(UTC+01:00) Lagos' },\r\n { Value: 'Europe/Luxembourg', Text: '(UTC+01:00) Luxembourg' },\r\n { Value: 'Europe/Madrid', Text: '(UTC+01:00) Madrid' },\r\n { Value: 'Europe/Malta', Text: '(UTC+01:00) Malta' },\r\n { Value: 'Europe/Monaco', Text: '(UTC+01:00) Monaco' },\r\n { Value: 'Africa/Ndjamena', Text: '(UTC+01:00) Ndjamena' },\r\n { Value: 'Europe/Oslo', Text: '(UTC+01:00) Oslo' },\r\n { Value: 'Europe/Paris', Text: '(UTC+01:00) Paris' },\r\n { Value: 'Europe/Rome', Text: '(UTC+01:00) Rome' },\r\n { Value: 'Europe/Stockholm', Text: '(UTC+01:00) Stockholm' },\r\n { Value: 'Europe/Tirane', Text: '(UTC+01:00) Tirane' },\r\n { Value: 'Africa/Tunis', Text: '(UTC+01:00) Tunis' },\r\n { Value: 'Europe/Vienna', Text: '(UTC+01:00) Vienna' },\r\n { Value: 'Europe/Warsaw', Text: '(UTC+01:00) Warsaw' },\r\n { Value: 'Europe/Zurich', Text: '(UTC+01:00) Zurich' },\r\n { Value: 'Asia/Amman', Text: '(UTC+02:00) Amman' },\r\n { Value: 'Europe/Athens', Text: '(UTC+02:00) Athens' },\r\n { Value: 'Asia/Beirut', Text: '(UTC+02:00) Beirut' },\r\n { Value: 'Europe/Bucharest', Text: '(UTC+02:00) Bucharest' },\r\n { Value: 'Africa/Cairo', Text: '(UTC+02:00) Cairo' },\r\n { Value: 'Europe/Chisinau', Text: '(UTC+02:00) Chisinau' },\r\n { Value: 'Asia/Damascus', Text: '(UTC+02:00) Damascus' },\r\n { Value: 'Asia/Gaza', Text: '(UTC+02:00) Gaza' },\r\n { Value: 'Europe/Helsinki', Text: '(UTC+02:00) Helsinki' },\r\n { Value: 'Asia/Jerusalem', Text: '(UTC+02:00) Jerusalem' },\r\n { Value: 'Africa/Johannesburg', Text: '(UTC+02:00) Johannesburg' },\r\n { Value: 'Africa/Khartoum', Text: '(UTC+02:00) Khartoum' },\r\n { Value: 'Europe/Kiev', Text: '(UTC+02:00) Kiev' },\r\n { Value: 'Africa/Maputo', Text: '(UTC+02:00) Maputo' },\r\n { Value: 'Europe/Kaliningrad', Text: '(UTC+02:00) Moscow-01 - Kaliningrad' },\r\n { Value: 'Asia/Nicosia', Text: '(UTC+02:00) Nicosia' },\r\n { Value: 'Europe/Riga', Text: '(UTC+02:00) Riga' },\r\n { Value: 'Europe/Sofia', Text: '(UTC+02:00) Sofia' },\r\n { Value: 'Europe/Tallinn', Text: '(UTC+02:00) Tallinn' },\r\n { Value: 'Africa/Tripoli', Text: '(UTC+02:00) Tripoli' },\r\n { Value: 'Europe/Vilnius', Text: '(UTC+02:00) Vilnius' },\r\n { Value: 'Africa/Windhoek', Text: '(UTC+02:00) Windhoek' },\r\n { Value: 'Asia/Baghdad', Text: '(UTC+03:00) Baghdad' },\r\n { Value: 'Europe/Istanbul', Text: '(UTC+03:00) Istanbul' },\r\n { Value: 'Europe/Minsk', Text: '(UTC+03:00) Minsk' },\r\n { Value: 'Europe/Moscow', Text: '(UTC+03:00) Moscow+00 - Moscow' },\r\n { Value: 'Africa/Nairobi', Text: '(UTC+03:00) Nairobi' },\r\n { Value: 'Asia/Qatar', Text: '(UTC+03:00) Qatar' },\r\n { Value: 'Asia/Riyadh', Text: '(UTC+03:00) Riyadh' },\r\n { Value: 'Antarctica/Syowa', Text: '(UTC+03:00) Syowa' },\r\n { Value: 'Asia/Tehran', Text: '(UTC+03:30) Tehran' },\r\n { Value: 'Asia/Baku', Text: '(UTC+04:00) Baku' },\r\n { Value: 'Asia/Dubai', Text: '(UTC+04:00) Dubai' },\r\n { Value: 'Indian/Mahe', Text: '(UTC+04:00) Mahe' },\r\n { Value: 'Indian/Mauritius', Text: '(UTC+04:00) Mauritius' },\r\n { Value: 'Europe/Samara', Text: '(UTC+04:00) Moscow+01 - Samara' },\r\n { Value: 'Indian/Reunion', Text: '(UTC+04:00) Reunion' },\r\n { Value: 'Asia/Tbilisi', Text: '(UTC+04:00) Tbilisi' },\r\n { Value: 'Asia/Yerevan', Text: '(UTC+04:00) Yerevan' },\r\n { Value: 'Asia/Kabul', Text: '(UTC+04:30) Kabul' },\r\n { Value: 'Asia/Aqtau', Text: '(UTC+05:00) Aqtau' },\r\n { Value: 'Asia/Aqtobe', Text: '(UTC+05:00) Aqtobe' },\r\n { Value: 'Asia/Ashgabat', Text: '(UTC+05:00) Ashgabat' },\r\n { Value: 'Asia/Dushanbe', Text: '(UTC+05:00) Dushanbe' },\r\n { Value: 'Asia/Karachi', Text: '(UTC+05:00) Karachi' },\r\n { Value: 'Indian/Kerguelen', Text: '(UTC+05:00) Kerguelen' },\r\n { Value: 'Indian/Maldives', Text: '(UTC+05:00) Maldives' },\r\n { Value: 'Antarctica/Mawson', Text: '(UTC+05:00) Mawson' },\r\n { Value: 'Asia/Yekaterinburg', Text: '(UTC+05:00) Moscow+02 - Yekaterinburg' },\r\n { Value: 'Asia/Tashkent', Text: '(UTC+05:00) Tashkent' },\r\n { Value: 'Asia/Colombo', Text: '(UTC+05:30) Colombo' },\r\n { Value: 'Asia/Kolkata', Text: '(UTC+05:30) India Standard Time' },\r\n { Value: 'Asia/Katmandu', Text: '(UTC+05:45) Katmandu' },\r\n { Value: 'Asia/Almaty', Text: '(UTC+06:00) Almaty' },\r\n { Value: 'Asia/Bishkek', Text: '(UTC+06:00) Bishkek' },\r\n { Value: 'Indian/Chagos', Text: '(UTC+06:00) Chagos' },\r\n { Value: 'Asia/Dhaka', Text: '(UTC+06:00) Dhaka' },\r\n { Value: 'Asia/Omsk', Text: '(UTC+06:00) Moscow+03 - Omsk' },\r\n { Value: 'Asia/Thimphu', Text: '(UTC+06:00) Thimphu' },\r\n { Value: 'Antarctica/Vostok', Text: '(UTC+06:00) Vostok' },\r\n { Value: 'Indian/Cocos', Text: '(UTC+06:30) Cocos' },\r\n { Value: 'Asia/Yangon', Text: '(UTC+06:30) Rangoon' },\r\n { Value: 'Asia/Bangkok', Text: '(UTC+07:00) Bangkok' },\r\n { Value: 'Indian/Christmas', Text: '(UTC+07:00) Christmas' },\r\n { Value: 'Antarctica/Davis', Text: '(UTC+07:00) Davis' },\r\n { Value: 'Asia/Saigon', Text: '(UTC+07:00) Hanoi' },\r\n { Value: 'Asia/Hovd', Text: '(UTC+07:00) Hovd' },\r\n { Value: 'Asia/Jakarta', Text: '(UTC+07:00) Jakarta' },\r\n { Value: 'Asia/Krasnoyarsk', Text: '(UTC+07:00) Moscow+04 - Krasnoyarsk' },\r\n { Value: 'Asia/Brunei', Text: '(UTC+08:00) Brunei' },\r\n { Value: 'Asia/Shanghai', Text: '(UTC+08:00) China Time - Beijing' },\r\n { Value: 'Asia/Choibalsan', Text: '(UTC+08:00) Choibalsan' },\r\n { Value: 'Asia/Hong_Kong', Text: '(UTC+08:00) Hong Kong' },\r\n { Value: 'Asia/Kuala_Lumpur', Text: '(UTC+08:00) Kuala Lumpur' },\r\n { Value: 'Asia/Macau', Text: '(UTC+08:00) Macau' },\r\n { Value: 'Asia/Makassar', Text: '(UTC+08:00) Makassar' },\r\n { Value: 'Asia/Manila', Text: '(UTC+08:00) Manila' },\r\n { Value: 'Asia/Irkutsk', Text: '(UTC+08:00) Moscow+05 - Irkutsk' },\r\n { Value: 'Asia/Singapore', Text: '(UTC+08:00) Singapore' },\r\n { Value: 'Asia/Taipei', Text: '(UTC+08:00) Taipei' },\r\n { Value: 'Asia/Ulaanbaatar', Text: '(UTC+08:00) Ulaanbaatar' },\r\n { Value: 'Australia/Perth', Text: '(UTC+08:00) Western Time - Perth' },\r\n { Value: 'Asia/Pyongyang', Text: '(UTC+08:30) Pyongyang' },\r\n { Value: 'Asia/Dili', Text: '(UTC+09:00) Dili' },\r\n { Value: 'Asia/Jayapura', Text: '(UTC+09:00) Jayapura' },\r\n { Value: 'Asia/Yakutsk', Text: '(UTC+09:00) Moscow+06 - Yakutsk' },\r\n { Value: 'Pacific/Palau', Text: '(UTC+09:00) Palau' },\r\n { Value: 'Asia/Seoul', Text: '(UTC+09:00) Seoul' },\r\n { Value: 'Asia/Tokyo', Text: '(UTC+09:00) Tokyo' },\r\n { Value: 'Australia/Darwin', Text: '(UTC+09:30) Central Time - Darwin' },\r\n { Value: 'Antarctica/DumontDUrville', Text: '(UTC+10:00) Dumont D\"Urville' },\r\n { Value: 'Australia/Brisbane', Text: '(UTC+10:00) Eastern Time - Brisbane' },\r\n { Value: 'Pacific/Guam', Text: '(UTC+10:00) Guam' },\r\n { Value: 'Asia/Vladivostok', Text: '(UTC+10:00) Moscow+07 - Vladivostok' },\r\n { Value: 'Pacific/Port_Moresby', Text: '(UTC+10:00) Port Moresby' },\r\n { Value: 'Pacific / Chuuk', Text: '(UTC+10:00) Truk' },\r\n { Value: 'Australia/Adelaide', Text: '(UTC+10:30) Central Time - Adelaide' },\r\n { Value: 'Antarctica/Casey', Text: '(UTC+11:00) Casey' },\r\n { Value: 'Australia/Hobart', Text: '(UTC+11:00) Eastern Time - Hobart' },\r\n { Value: 'Australia/Sydney', Text: '(UTC+11:00) Eastern Time - Melbourne, Sydney' },\r\n { Value: 'Pacific/Efate', Text: '(UTC+11:00) Efate' },\r\n { Value: 'Pacific/Guadalcanal', Text: '(UTC+11:00) Guadalcanal' },\r\n { Value: 'Pacific/Kosrae', Text: '(UTC+11:00) Kosrae' },\r\n { Value: 'Asia/Magadan', Text: '(UTC+11:00) Moscow+08 - Magadan' },\r\n { Value: 'Pacific / Norfolk', Text: '(UTC+11:00) Norfolk' },\r\n { Value: 'Pacific/Noumea', Text: '(UTC+11:00) Noumea' },\r\n { Value: 'Pacific/Pohnpei', Text: '(UTC+11:00) Ponape' },\r\n { Value: 'Pacific/Funafuti', Text: '(UTC+12:00) Funafuti' },\r\n { Value: 'Pacific/Kwajalein', Text: '(UTC+12:00) Kwajalein' },\r\n { Value: 'Pacific/Majuro', Text: '(UTC+12:00) Majuro' },\r\n { Value: 'Asia/Kamchatka', Text: '(UTC+12:00) Moscow+09 - Petropavlovsk - Kamchatskiy' },\r\n { Value: 'Pacific / Nauru', Text: '(UTC+12:00) Nauru' },\r\n { Value: 'Pacific/Tarawa', Text: '(UTC+12:00) Tarawa' },\r\n { Value: 'Pacific/Wake', Text: '(UTC+12:00) Wake' },\r\n { Value: 'Pacific/Wallis', Text: '(UTC+12:00) Wallis' },\r\n { Value: 'Pacific/Auckland', Text: '(UTC+13:00) Auckland' },\r\n { Value: 'Pacific/Enderbury', Text: '(UTC+13:00) Enderbury' },\r\n { Value: 'Pacific/Fakaofo', Text: '(UTC+13:00) Fakaofo' },\r\n { Value: 'Pacific/Fiji', Text: '(UTC+13:00) Fiji' },\r\n { Value: 'Pacific/Tongatapu', Text: '(UTC+13:00) Tongatapu' },\r\n { Value: 'Pacific/Apia', Text: '(UTC+14:00) Apia' },\r\n { Value: 'Pacific/Kiritimati', Text: '(UTC+14:00) Kiritimati' }\r\n];\r\n","/**\n * index\n */\nexport * from './src/index';\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\n/**\r\n * Initialize ButtonGroup CSS component with specified properties.\r\n * ```html\r\n *
      \r\n * \r\n * \r\n * \r\n *
      \r\n * ```\r\n * ```typescript\r\n * createButtonGroup('#buttongroup', {\r\n * cssClass: 'e-outline',\r\n * buttons: [\r\n * { content: 'Day' },\r\n * { content: 'Week' },\r\n * { content: 'Work Week'}\r\n * ]\r\n * });\r\n * ```\r\n *\r\n * @param {string} selector\r\n * @param {CreateButtonGroupModel} options\r\n * @returns HTMLElement\r\n */\r\n/**\r\n * Creates button group.\r\n *\r\n * @param {string} selector - Specifies the selector.\r\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\r\n * @param {Function} createElement - Specifies the element.\r\n * @returns {HTMLElement} - Button group element.\r\n */\r\nexport function createButtonGroup(selector, options, createElement) {\r\n if (options === void 0) { options = {}; }\r\n var child;\r\n var btnElem;\r\n var nextChild;\r\n var btnModel;\r\n if (isNullOrUndefined(createElement)) {\r\n createElement = internalCreateElement;\r\n }\r\n var wrapper = document.querySelector(selector);\r\n addClass([wrapper], ['e-btn-group', 'e-css']);\r\n wrapper.setAttribute('role', 'group');\r\n var childs = wrapper.children;\r\n options.buttons = options.buttons || [];\r\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\r\n child = childs[j];\r\n btnModel = options.buttons[i];\r\n if (btnModel !== null) {\r\n if (child.tagName === 'BUTTON') {\r\n btnElem = child;\r\n }\r\n else {\r\n btnElem = createElement('label');\r\n nextChild = childs[j + 1];\r\n if (nextChild) {\r\n wrapper.insertBefore(btnElem, nextChild);\r\n }\r\n else {\r\n wrapper.appendChild(btnElem);\r\n }\r\n if (child.id) {\r\n btnElem.setAttribute('for', child.id);\r\n }\r\n if (btnModel && btnModel.disabled) {\r\n child.disabled = true;\r\n }\r\n j++;\r\n }\r\n if (options.cssClass && btnModel && !btnModel.cssClass) {\r\n btnModel.cssClass = options.cssClass;\r\n }\r\n new Button(btnModel || {}, btnElem);\r\n }\r\n }\r\n return wrapper;\r\n}\r\n","/**\n * ButtonGroup modules\n */\nexport * from './button-group';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { ChildProperty, extend, deleteObject, Property, addClass } from '@syncfusion/ej2-base';\r\n/**\r\n * @param {Object} props - Specifies the properties\r\n * @param {string[]} model - Specifies the model\r\n * @returns {Object} Component Model\r\n */\r\nexport function getModel(props, model) {\r\n var obj = extend({}, props);\r\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n if ((model).indexOf(prop) < 0) {\r\n deleteObject(obj, prop);\r\n }\r\n }\r\n return obj;\r\n}\r\n/** @hidden\r\n * @param {HTMLElement} ul - Specifies the UL element\r\n * @param {number} keyCode - Specifies the keycode\r\n * @returns {void}\r\n */\r\nexport function upDownKeyHandler(ul, keyCode) {\r\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\r\n var liIdx = defaultIdx;\r\n var li;\r\n var selectedLi = ul.querySelector('.e-selected');\r\n if (selectedLi) {\r\n selectedLi.classList.remove('e-selected');\r\n }\r\n for (var i = 0, len = ul.children.length; i < len; i++) {\r\n if (ul.children[i].classList.contains('e-focused')) {\r\n li = ul.children[i];\r\n liIdx = i;\r\n li.classList.remove('e-focused');\r\n if (keyCode === 40) {\r\n liIdx++;\r\n }\r\n else {\r\n liIdx--;\r\n }\r\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\r\n liIdx = defaultIdx;\r\n }\r\n }\r\n }\r\n li = ul.children[liIdx];\r\n liIdx = isValidLI(ul, li, liIdx, keyCode);\r\n if (liIdx !== -1) {\r\n addClass([ul.children[liIdx]], 'e-focused');\r\n ul.children[liIdx].focus();\r\n }\r\n}\r\n/**\r\n * Get Valid LI element\r\n *\r\n * @param {HTMLElement} ul - Specifies the UL element\r\n * @param {Element} li - Specifies the LI element\r\n * @param {number} index - Specifies the index\r\n * @param {number} keyCode - Specifies the keycode\r\n * @param {number} count - Specifies the count\r\n * @returns {number} - Index\r\n */\r\nfunction isValidLI(ul, li, index, keyCode, count) {\r\n if (count === void 0) { count = 0; }\r\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\r\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\r\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\r\n }\r\n else {\r\n if (keyCode === 40) {\r\n index++;\r\n }\r\n else {\r\n index--;\r\n }\r\n }\r\n }\r\n li = ul.children[index];\r\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\r\n count++;\r\n if (count === ul.childElementCount) {\r\n return index = -1;\r\n }\r\n index = isValidLI(ul, li, index, keyCode, count);\r\n }\r\n return index;\r\n}\r\n/** @hidden\r\n * @param {HTMLElement} popup - Specifies the popup element.\r\n * @returns {void}\r\n */\r\nexport function setBlankIconStyle(popup) {\r\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\r\n if (!blankIconList.length) {\r\n return;\r\n }\r\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\r\n if (iconLi.classList.contains('e-url')) {\r\n iconLi = iconLi.querySelector('.e-menu-url');\r\n }\r\n var icon = iconLi.querySelector('.e-menu-icon');\r\n var cssProp;\r\n var enableRtl = popup.classList.contains('e-rtl');\r\n if (enableRtl) {\r\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\r\n }\r\n else {\r\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\r\n }\r\n /* eslint-disable */\r\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\r\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\r\n blankIconList.forEach(function (li) {\r\n if (li.classList.contains('e-url')) {\r\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\r\n }\r\n else {\r\n li.style[cssProp.padding] = size;\r\n }\r\n });\r\n /* eslint-enable */\r\n}\r\n/**\r\n * Defines the items of Split Button/DropDownButton.\r\n */\r\nvar Item = /** @class */ (function (_super) {\r\n __extends(Item, _super);\r\n function Item() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"id\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Item.prototype, \"separator\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"text\", void 0);\r\n __decorate([\r\n Property('')\r\n ], Item.prototype, \"url\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], Item.prototype, \"disabled\", void 0);\r\n return Item;\r\n}(ChildProperty));\r\nexport { Item };\r\n","/**\n * Common modules\n */\nexport * from './common';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler } from '@syncfusion/ej2-base';\r\nimport { addClass, getUniqueID, rippleEffect } from '@syncfusion/ej2-base';\r\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { classList, removeClass } from '@syncfusion/ej2-base';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { Popup } from '@syncfusion/ej2-popups';\r\nimport { upDownKeyHandler } from './../common/common';\r\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\r\nvar classNames = {\r\n DISABLED: 'e-disabled',\r\n FOCUS: 'e-focused',\r\n ICON: 'e-menu-icon',\r\n ITEM: 'e-item',\r\n POPUP: 'e-dropdown-popup',\r\n RTL: 'e-rtl',\r\n SEPARATOR: 'e-separator',\r\n VERTICAL: 'e-vertical'\r\n};\r\n/**\r\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\r\n * It can contain both text and images.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar DropDownButton = /** @class */ (function (_super) {\r\n __extends(DropDownButton, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {DropDownButtonModel} options - Specifies dropdown button model\r\n * @param {string|HTMLButtonElement} element - Specifies element\r\n * @hidden\r\n */\r\n function DropDownButton(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.isPopupCreated = true;\r\n return _this;\r\n }\r\n DropDownButton.prototype.preRender = function () {\r\n /** */\r\n };\r\n /**\r\n * Get the properties to be maintained in the persisted state.\r\n *\r\n * @returns {string} - Persist data\r\n */\r\n DropDownButton.prototype.getPersistData = function () {\r\n return this.addOnPersist([]);\r\n };\r\n /**\r\n * To open/close DropDownButton popup based on current state of the DropDownButton.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownButton.prototype.toggle = function () {\r\n if (this.canOpen()) {\r\n this.openPopUp();\r\n }\r\n else {\r\n this.closePopup();\r\n }\r\n };\r\n /**\r\n * Initialize the Component rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n DropDownButton.prototype.render = function () {\r\n this.initialize();\r\n if (!this.disabled) {\r\n this.wireEvents();\r\n }\r\n this.renderComplete();\r\n };\r\n /**\r\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\r\n * but you can insert based on the text parameter.\r\n *\r\n * @param { ItemModel[] } items - Specifies an array of JSON data.\r\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\r\n * @returns {void}.\r\n */\r\n DropDownButton.prototype.addItems = function (items, text) {\r\n var newItem;\r\n var idx = this.items.length;\r\n for (var j = 0, len = this.items.length; j < len; j++) {\r\n if (text === this.items[j].text) {\r\n idx = j;\r\n break;\r\n }\r\n }\r\n for (var i = items.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n newItem = new Item(this, 'items', items[i], true);\r\n this.items.splice(idx, 0, newItem);\r\n }\r\n if (!this.canOpen()) {\r\n this.createItems();\r\n }\r\n };\r\n /**\r\n * Removes the items from the menu.\r\n *\r\n * @param { string[] } items - Specifies an array of string to remove the items.\r\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\r\n * @returns {void}.\r\n */\r\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\r\n var refresh = false;\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\r\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\r\n this.items.splice(j, 1);\r\n refresh = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (refresh && this.getULElement()) {\r\n this.createItems();\r\n }\r\n };\r\n DropDownButton.prototype.createPopup = function () {\r\n var _a;\r\n var div = this.createElement('div', {\r\n className: classNames.POPUP,\r\n id: this.element.id + '-popup'\r\n });\r\n document.body.appendChild(div);\r\n this.dropDown = new Popup(div, {\r\n relateTo: this.element,\r\n collision: { X: 'fit', Y: 'flip' },\r\n position: { X: 'left', Y: 'bottom' },\r\n targetType: 'relative',\r\n content: this.target ? this.getTargetElement() : '',\r\n enableRtl: this.enableRtl\r\n });\r\n if (this.dropDown.element.style.position === 'fixed') {\r\n this.dropDown.refreshPosition(this.element);\r\n }\r\n this.dropDown.hide();\r\n attributes(this.element, (_a = {},\r\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\r\n _a['aria-expanded'] = 'false',\r\n _a['aria-owns'] = this.getPopUpElement().id,\r\n _a['type'] = 'button',\r\n _a['aria-label'] = this.element.textContent + ' dropdownbutton',\r\n _a));\r\n if (this.cssClass) {\r\n addClass([div], this.cssClass.split(' '));\r\n }\r\n this.isPopupCreated = true;\r\n };\r\n DropDownButton.prototype.getTargetElement = function () {\r\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\r\n };\r\n DropDownButton.prototype.createItems = function (appendItems) {\r\n var items = this.items;\r\n var showIcon = this.hasIcon(this.items, 'iconCss');\r\n var span;\r\n var item;\r\n var li;\r\n var eventArgs;\r\n var ul = this.getULElement();\r\n if (ul) {\r\n ul.innerHTML = '';\r\n }\r\n else {\r\n ul = this.createElement('ul', {\r\n attrs: { 'role': 'menu', 'tabindex': '0' }\r\n });\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n item = items[i];\r\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\r\n li = this.createElement('li', {\r\n innerHTML: item.url ? '' : tempItem,\r\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\r\n attrs: { 'role': 'menuItem', 'tabindex': '-1' },\r\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\r\n });\r\n if (item.url) {\r\n li.appendChild(this.createAnchor(item));\r\n li.classList.add('e-url');\r\n }\r\n if (item.iconCss) {\r\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\r\n if (item.url) {\r\n li.childNodes[0].appendChild(span);\r\n }\r\n else {\r\n li.insertBefore(span, li.childNodes[0]);\r\n }\r\n }\r\n else {\r\n if (showIcon && !item.separator) {\r\n li.classList.add('e-blank-icon');\r\n }\r\n }\r\n if (item.disabled) {\r\n li.classList.add('e-disabled');\r\n }\r\n eventArgs = { item: item, element: li };\r\n this.trigger('beforeItemRender', eventArgs);\r\n ul.appendChild(li);\r\n }\r\n if (appendItems) {\r\n this.getPopUpElement().appendChild(ul);\r\n }\r\n if (showIcon) {\r\n setBlankIconStyle(this.getPopUpElement());\r\n }\r\n };\r\n DropDownButton.prototype.hasIcon = function (items, field) {\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n if (items[i][field]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n DropDownButton.prototype.createAnchor = function (item) {\r\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\r\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\r\n };\r\n DropDownButton.prototype.initialize = function () {\r\n this.button = new Button({\r\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\r\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\r\n });\r\n this.button.createElement = this.createElement;\r\n this.button.appendTo(this.element);\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('e-' + this.getModuleName());\r\n }\r\n this.appendArrowSpan();\r\n this.setActiveElem([this.element]);\r\n if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\r\n this.createPopup();\r\n }\r\n else {\r\n this.isPopupCreated = false;\r\n }\r\n };\r\n DropDownButton.prototype.isColorPicker = function () {\r\n if (!this.element) {\r\n return false;\r\n }\r\n var prevElem = this.element.previousSibling;\r\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n DropDownButton.prototype.appendArrowSpan = function () {\r\n this.element.appendChild(this.createElement('span', {\r\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\r\n ? 'bottom' : 'right') + ' e-caret'\r\n }));\r\n };\r\n DropDownButton.prototype.setActiveElem = function (elem) {\r\n this.activeElem = elem;\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - Module Name\r\n * @private\r\n */\r\n DropDownButton.prototype.getModuleName = function () {\r\n return 'dropdown-btn';\r\n };\r\n DropDownButton.prototype.canOpen = function () {\r\n var val = false;\r\n if (this.isPopupCreated) {\r\n val = this.getPopUpElement().classList.contains('e-popup-close');\r\n }\r\n return val;\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n DropDownButton.prototype.destroy = function () {\r\n var _this = this;\r\n _super.prototype.destroy.call(this);\r\n if (this.getModuleName() === 'dropdown-btn') {\r\n var classList_1;\r\n if (this.element.querySelector('span.e-caret')) {\r\n detach(this.element.querySelector('span.e-caret'));\r\n }\r\n if (this.cssClass) {\r\n classList_1 = this.cssClass.split(' ');\r\n }\r\n this.button.destroy();\r\n if (classList_1) {\r\n removeClass([this.element], classList_1);\r\n }\r\n removeClass(this.activeElem, ['e-active']);\r\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\r\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\r\n attrList.forEach(function (key) {\r\n _this.element.removeAttribute(key);\r\n });\r\n this.popupUnWireEvents();\r\n this.destroyPopup();\r\n this.isPopupCreated = false;\r\n if (!this.disabled) {\r\n this.unWireEvents();\r\n }\r\n }\r\n };\r\n DropDownButton.prototype.destroyPopup = function () {\r\n if (this.isPopupCreated) {\r\n this.dropDown.destroy();\r\n if (this.getPopUpElement()) {\r\n var popupEle = document.getElementById(this.getPopUpElement().id);\r\n if (popupEle) {\r\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\r\n detach(popupEle);\r\n }\r\n }\r\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\r\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\r\n if (this.isPopupCreated) {\r\n this.dropDown = undefined;\r\n }\r\n }\r\n this.isPopupCreated = false;\r\n };\r\n DropDownButton.prototype.getPopUpElement = function () {\r\n var val = null;\r\n if (this.dropDown) {\r\n val = this.dropDown.element;\r\n }\r\n return val;\r\n };\r\n DropDownButton.prototype.getULElement = function () {\r\n var val = null;\r\n if (this.getPopUpElement()) {\r\n val = this.getPopUpElement().children[0];\r\n }\r\n return val;\r\n };\r\n DropDownButton.prototype.wireEvents = function () {\r\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\r\n if (!this.createPopupOnClick) {\r\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\r\n }\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\r\n };\r\n DropDownButton.prototype.popupWireEvents = function () {\r\n var popupElement = this.getPopUpElement();\r\n if (this.createPopupOnClick) {\r\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\r\n }\r\n if (popupElement) {\r\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\r\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\r\n }\r\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\r\n };\r\n DropDownButton.prototype.popupUnWireEvents = function () {\r\n var popupElement = this.getPopUpElement();\r\n if (this.createPopupOnClick) {\r\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\r\n }\r\n if (popupElement && popupElement.parentElement) {\r\n EventHandler.remove(popupElement, 'click', this.clickHandler);\r\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\r\n }\r\n };\r\n /**\r\n * Handles the keyboard interactions.\r\n *\r\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\r\n * @returns {void}\r\n * @hidden\r\n */\r\n DropDownButton.prototype.keyBoardHandler = function (e) {\r\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\r\n return;\r\n }\r\n switch (e.keyCode) {\r\n case 38:\r\n case 40:\r\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\r\n this.keyEventHandler(e);\r\n }\r\n else {\r\n this.upDownKeyHandler(e);\r\n }\r\n break;\r\n case 9:\r\n case 13:\r\n case 27:\r\n case 32:\r\n this.keyEventHandler(e);\r\n break;\r\n }\r\n };\r\n DropDownButton.prototype.upDownKeyHandler = function (e) {\r\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n upDownKeyHandler(this.getULElement(), e.keyCode);\r\n };\r\n DropDownButton.prototype.keyEventHandler = function (e) {\r\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\r\n return;\r\n }\r\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\r\n return;\r\n }\r\n if (e.keyCode !== 9) {\r\n e.preventDefault();\r\n }\r\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\r\n if (!this.canOpen()) {\r\n this.closePopup(e, this.element);\r\n }\r\n }\r\n else {\r\n this.clickHandler(e);\r\n }\r\n };\r\n DropDownButton.prototype.getLI = function (elem) {\r\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\r\n };\r\n DropDownButton.prototype.mousedownHandler = function (e) {\r\n var trgt = e.target;\r\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\r\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\r\n this.closePopup(e);\r\n }\r\n };\r\n DropDownButton.prototype.clickHandler = function (e) {\r\n var trgt = e.target;\r\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\r\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\r\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\r\n this.openPopUp(e);\r\n }\r\n else {\r\n this.closePopup(e);\r\n }\r\n }\r\n else if (this.isPopupCreated) {\r\n this.closePopup(e, this.activeElem[0]);\r\n }\r\n else {\r\n this.createPopup();\r\n this.openPopUp(e);\r\n }\r\n }\r\n else {\r\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\r\n var eventArgs = void 0;\r\n var liIdx = void 0;\r\n var item = void 0;\r\n var li = this.getLI(trgt);\r\n if (li) {\r\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\r\n item = this.items[liIdx];\r\n if (item) {\r\n eventArgs = { element: li, item: item };\r\n this.trigger('select', eventArgs);\r\n }\r\n this.closePopup(e, this.activeElem[0]);\r\n }\r\n }\r\n }\r\n };\r\n DropDownButton.prototype.openPopUp = function (e) {\r\n var _this = this;\r\n if (e === void 0) { e = null; }\r\n if (!this.target) {\r\n this.createItems(true);\r\n }\r\n var ul = this.getULElement();\r\n this.popupWireEvents();\r\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\r\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n var ul_1 = _this.getULElement();\r\n _this.dropDown.show(null, _this.element);\r\n addClass([_this.element], 'e-active');\r\n _this.element.setAttribute('aria-expanded', 'true');\r\n ul_1.focus();\r\n var openArgs = { element: ul_1, items: _this.items };\r\n _this.trigger('open', openArgs);\r\n }\r\n });\r\n };\r\n DropDownButton.prototype.closePopup = function (e, focusEle) {\r\n var _this = this;\r\n if (e === void 0) { e = null; }\r\n var ul = this.getULElement();\r\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\r\n var popupElement = this.getPopUpElement();\r\n if (popupElement) {\r\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\r\n }\r\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\r\n if (!observedArgs.cancel) {\r\n _this.popupUnWireEvents();\r\n var ul_2 = _this.getULElement();\r\n var selectedLi = ul_2.querySelector('.e-selected');\r\n if (selectedLi) {\r\n selectedLi.classList.remove('e-selected');\r\n }\r\n _this.dropDown.hide();\r\n removeClass(_this.activeElem, 'e-active');\r\n _this.element.setAttribute('aria-expanded', 'false');\r\n if (focusEle) {\r\n focusEle.focus();\r\n }\r\n var closeArgs = { element: ul_2, items: _this.items };\r\n _this.trigger('close', closeArgs);\r\n if (!_this.target && ul_2) {\r\n detach(ul_2);\r\n }\r\n if (!_this.target || _this.isColorPicker()) {\r\n if (_this.createPopupOnClick) {\r\n _this.destroyPopup();\r\n }\r\n }\r\n if (_this.target) {\r\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\r\n }\r\n }\r\n });\r\n };\r\n DropDownButton.prototype.unWireEvents = function () {\r\n if (!this.createPopupOnClick) {\r\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\r\n }\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\r\n if (this.isPopupCreated) {\r\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\r\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {DropDownButtonModel} newProp - Specifies new properties\r\n * @param {DropDownButtonModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n * @private\r\n */\r\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\r\n this.button.setProperties(getModel(newProp, btnModel));\r\n var popupElement;\r\n if (this.isPopupCreated) {\r\n popupElement = this.getPopUpElement();\r\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\r\n }\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'content':\r\n if (!this.element.querySelector('span.e-caret')) {\r\n this.appendArrowSpan();\r\n }\r\n break;\r\n case 'disabled':\r\n if (newProp.disabled) {\r\n this.unWireEvents();\r\n if (this.isPopupCreated && !this.canOpen()) {\r\n this.closePopup();\r\n }\r\n }\r\n else {\r\n this.wireEvents();\r\n }\r\n break;\r\n case 'cssClass':\r\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\r\n var arrowSpan = this.element.querySelector('span.e-caret');\r\n classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right']);\r\n }\r\n if (this.isPopupCreated) {\r\n if (oldProp.cssClass) {\r\n removeClass([popupElement], oldProp.cssClass.split(' '));\r\n }\r\n if (newProp.cssClass) {\r\n addClass([popupElement], newProp.cssClass.split(' '));\r\n }\r\n }\r\n break;\r\n case 'target':\r\n this.dropDown.content = this.getTargetElement();\r\n this.dropDown.dataBind();\r\n break;\r\n case 'items':\r\n if (this.isPopupCreated && this.getULElement()) {\r\n this.createItems();\r\n }\r\n break;\r\n case 'createPopupOnClick':\r\n if (newProp.createPopupOnClick) {\r\n this.destroyPopup();\r\n }\r\n else {\r\n this.createPopup();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Sets the focus to DropDownButton\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n DropDownButton.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Property('')\r\n ], DropDownButton.prototype, \"content\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DropDownButton.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownButton.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DropDownButton.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], DropDownButton.prototype, \"iconPosition\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Collection([], Item)\r\n ], DropDownButton.prototype, \"items\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\r\n __decorate([\r\n Property('')\r\n ], DropDownButton.prototype, \"target\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], DropDownButton.prototype, \"created\", void 0);\r\n DropDownButton = __decorate([\r\n NotifyPropertyChanges\r\n ], DropDownButton);\r\n return DropDownButton;\r\n}(Component));\r\nexport { DropDownButton };\r\n","/**\n * DropDownButton modules\n */\nexport * from './drop-down-button';\n","/**\n * SplitButton all module\n */\nexport * from './common/index';\nexport * from './drop-down-button/index';\nexport * from './split-button/index';\nexport * from './button-group/index';\nexport * from './progress-button/index';\n","/**\n * ProgressButton modules\n */\nexport * from './progress-button';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes } from '@syncfusion/ej2-base';\r\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\r\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\r\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nvar HIDESPINNER = 'e-hide-spinner';\r\nvar PROGRESS = 'e-progress';\r\nvar PROGRESSACTIVE = 'e-progress-active';\r\nvar CONTENTCLS = 'e-btn-content';\r\n/**\r\n * Defines the spin settings.\r\n */\r\nvar SpinSettings = /** @class */ (function (_super) {\r\n __extends(SpinSettings, _super);\r\n function SpinSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(null)\r\n ], SpinSettings.prototype, \"template\", void 0);\r\n __decorate([\r\n Property(16)\r\n ], SpinSettings.prototype, \"width\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], SpinSettings.prototype, \"position\", void 0);\r\n return SpinSettings;\r\n}(ChildProperty));\r\nexport { SpinSettings };\r\n/**\r\n * Defines the animation settings.\r\n */\r\nvar AnimationSettings = /** @class */ (function (_super) {\r\n __extends(AnimationSettings, _super);\r\n function AnimationSettings() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n __decorate([\r\n Property(400)\r\n ], AnimationSettings.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('None')\r\n ], AnimationSettings.prototype, \"effect\", void 0);\r\n __decorate([\r\n Property('ease')\r\n ], AnimationSettings.prototype, \"easing\", void 0);\r\n return AnimationSettings;\r\n}(ChildProperty));\r\nexport { AnimationSettings };\r\n/**\r\n * The ProgressButton visualizes the progression of an operation to indicate the user\r\n * that a process is happening in the background with visual representation.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar ProgressButton = /** @class */ (function (_super) {\r\n __extends(ProgressButton, _super);\r\n /**\r\n * Constructor for creating the widget.\r\n *\r\n * @param {ProgressButtonModel} options - Specifies progress button model\r\n * @param {string|HTMLButtonElement} element - Specifies element\r\n */\r\n function ProgressButton(options, element) {\r\n var _this = _super.call(this, options, element) || this;\r\n _this.step = 1;\r\n return _this;\r\n }\r\n ProgressButton.prototype.preRender = function () {\r\n _super.prototype.preRender.call(this);\r\n };\r\n /**\r\n * Initialize the Component rendering\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n ProgressButton.prototype.render = function () {\r\n _super.prototype.render.call(this);\r\n this.init();\r\n this.wireEvents();\r\n this.setAria();\r\n this.renderComplete();\r\n };\r\n /**\r\n * Starts the button progress at the specified percent.\r\n *\r\n * @param {number} percent - Starts the button progress at this percent.\r\n * @returns {void}\r\n */\r\n ProgressButton.prototype.start = function (percent) {\r\n this.isPaused = false;\r\n this.startProgress(percent ? percent : this.percent, this.progressTime);\r\n };\r\n /**\r\n * Stops the button progress.\r\n *\r\n * @returns {void}\r\n */\r\n ProgressButton.prototype.stop = function () {\r\n this.isPaused = true;\r\n cancelAnimationFrame(this.timerId);\r\n };\r\n /**\r\n * Complete the button progress.\r\n *\r\n * @returns {void}\r\n */\r\n ProgressButton.prototype.progressComplete = function () {\r\n this.isPaused = false;\r\n this.finishProgress();\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - Module Name\r\n * @private\r\n */\r\n ProgressButton.prototype.getModuleName = function () {\r\n return 'progress-btn';\r\n };\r\n /**\r\n * Destroys the widget.\r\n *\r\n * @returns {void}\r\n */\r\n ProgressButton.prototype.destroy = function () {\r\n var _this = this;\r\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\r\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\r\n _super.prototype.destroy.call(this);\r\n this.unWireEvents();\r\n this.element.innerHTML = '';\r\n if (this.cssClass) {\r\n classList = classList.concat(this.cssClass.split(' '));\r\n }\r\n removeClass([this.element], classList);\r\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\r\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\r\n css.forEach(function (key) {\r\n _this.element.removeAttribute(key);\r\n });\r\n if (this.disabled) {\r\n this.element.removeAttribute('disabled');\r\n }\r\n };\r\n ProgressButton.prototype.init = function () {\r\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\r\n this.setContent();\r\n this.createSpinner();\r\n if (this.enableProgress) {\r\n this.createProgress();\r\n }\r\n };\r\n ProgressButton.prototype.createSpinner = function () {\r\n var spinner = this.createElement('span', { className: 'e-spinner' });\r\n this.setSpinPosition(spinner);\r\n createSpinner({\r\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\r\n }, this.createElement);\r\n };\r\n ProgressButton.prototype.getSpinner = function () {\r\n return this.element.getElementsByClassName('e-spinner')[0];\r\n };\r\n ProgressButton.prototype.getProgress = function () {\r\n return this.element.getElementsByClassName(PROGRESS)[0];\r\n };\r\n ProgressButton.prototype.setSpinPosition = function (ele) {\r\n var position = this.spinSettings.position || 'Left';\r\n if (position === 'Left' || position === 'Top') {\r\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\r\n }\r\n else {\r\n this.element.appendChild(ele);\r\n }\r\n this.element.classList.add('e-spin-' + position.toLowerCase());\r\n };\r\n ProgressButton.prototype.createProgress = function () {\r\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\r\n };\r\n ProgressButton.prototype.setContent = function () {\r\n var cont;\r\n cont = this.element.innerHTML;\r\n if (this.enableHtmlSanitizer) {\r\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\r\n }\r\n this.element.innerHTML = '';\r\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\r\n };\r\n ProgressButton.prototype.setContentIcon = function (content) {\r\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\r\n if (this.iconCss) {\r\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\r\n if (!this.element.textContent.trim()) {\r\n this.element.classList.add('e-icon-btn');\r\n }\r\n else {\r\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\r\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\r\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\r\n }\r\n }\r\n var node = contElem.childNodes[0];\r\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\r\n contElem.insertBefore(span, node);\r\n }\r\n else {\r\n contElem.appendChild(span);\r\n }\r\n }\r\n this.element.appendChild(contElem);\r\n };\r\n ProgressButton.prototype.clickHandler = function () {\r\n if (this.element.classList.contains(PROGRESSACTIVE)) {\r\n return;\r\n }\r\n this.startProgress();\r\n };\r\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\r\n var clsList = this.element.classList;\r\n var isVertical = clsList.contains('e-vertical');\r\n clsList.add(PROGRESSACTIVE);\r\n if (!(clsList.contains(HIDESPINNER))) {\r\n showSpinner(this.element);\r\n }\r\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\r\n this.startContAnimate();\r\n };\r\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\r\n var _this = this;\r\n try {\r\n var timeDiff = timestamp - prevTime;\r\n var stepTime = this.duration * step / 100;\r\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\r\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\r\n prevTime = timestamp - timeDiffBuffer_1;\r\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\r\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\r\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\r\n this.eIsVertical = isVertical;\r\n if (percent === 0) {\r\n this.trigger('begin', args, function (observedArgs) {\r\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\r\n });\r\n }\r\n else if (percent === 100 || progressTime === this.duration) {\r\n this.trigger('end', args, function (observedArgs) {\r\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\r\n });\r\n }\r\n else {\r\n this.trigger('progress', args, function (observedArgs) {\r\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\r\n });\r\n }\r\n }\r\n catch (e) {\r\n cancelAnimationFrame(this.timerId);\r\n this.trigger('fail', e);\r\n }\r\n };\r\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\r\n var _this = this;\r\n var percent = perc;\r\n var prevPercent = pPerc;\r\n var timeDiffBuffer = timDif;\r\n var progressTime = prgTim;\r\n var prevProgressTime = pPrgTim;\r\n var prevTime = pTim;\r\n var isVertical = this.eIsVertical;\r\n if (percent !== args.percent && args.percent !== prevPercent) {\r\n percent = args.percent;\r\n }\r\n this.percent = percent;\r\n this.step = args.step;\r\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\r\n this.timerId = requestAnimationFrame(function () {\r\n if (_this.enableProgress) {\r\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\r\n }\r\n _this.element.setAttribute('aria-valuenow', percent.toString());\r\n });\r\n prevPercent = percent;\r\n prevProgressTime = progressTime;\r\n }\r\n if (!this.isPaused) {\r\n if (progressTime < this.duration && percent < 100) {\r\n this.interval = window.setTimeout(function () {\r\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\r\n }, (this.duration / 100) - timeDiffBuffer);\r\n }\r\n else {\r\n this.interval = window.setTimeout(function () {\r\n _this.progressTime = _this.percent = 0;\r\n if (_this.enableProgress) {\r\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\r\n }\r\n _this.element.setAttribute('aria-valuenow', '0');\r\n _this.hideSpin();\r\n }, 100);\r\n }\r\n }\r\n };\r\n ProgressButton.prototype.startContAnimate = function () {\r\n var _this = this;\r\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\r\n if (this.animationSettings.effect !== 'None') {\r\n (new Animation({})).animate(ele, {\r\n duration: this.animationSettings.duration,\r\n name: 'Progress' + this.animationSettings.effect,\r\n timingFunction: this.animationSettings.easing,\r\n begin: function () {\r\n if (_this.spinSettings.position === 'Center') {\r\n _this.setSpinnerSize();\r\n }\r\n },\r\n end: function () {\r\n ele.classList.add('e-animate-end');\r\n }\r\n });\r\n }\r\n else if (this.spinSettings.position === 'Center') {\r\n this.setSpinnerSize();\r\n }\r\n };\r\n ProgressButton.prototype.finishProgress = function () {\r\n var clsList = this.element.classList;\r\n var isVertical = clsList.contains('e-vertical');\r\n clsList.add(PROGRESSACTIVE);\r\n var count = 100;\r\n for (var i = this.percent; i < count; i++) {\r\n i += 10;\r\n if (i > 100) {\r\n i = 100;\r\n }\r\n if (this.enableProgress) {\r\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\r\n }\r\n }\r\n this.element.setAttribute('aria-valuenow', '0');\r\n this.hideSpin();\r\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\r\n clearTimeout(this.interval);\r\n this.trigger('end', args);\r\n this.progressTime = this.percent = 0;\r\n };\r\n ProgressButton.prototype.setSpinnerSize = function () {\r\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\r\n var spinner = this.getSpinner();\r\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\r\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\r\n ele.classList.add('e-cont-animate');\r\n };\r\n ProgressButton.prototype.hideSpin = function () {\r\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\r\n if (!(this.element.classList.contains(HIDESPINNER))) {\r\n hideSpinner(this.element);\r\n }\r\n this.element.classList.remove(PROGRESSACTIVE);\r\n if (this.animationSettings.effect !== 'None') {\r\n cont.classList.remove('e-animate-end');\r\n }\r\n if (this.spinSettings.position === 'Center') {\r\n var ele = this.getSpinner();\r\n cont.classList.remove('e-cont-animate');\r\n ele.style.width = 'auto';\r\n ele.style.height = 'auto';\r\n }\r\n };\r\n ProgressButton.prototype.setIconSpan = function () {\r\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\r\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\r\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\r\n cont.insertBefore(iconSpan, cont.childNodes[0]);\r\n }\r\n else {\r\n cont.appendChild(iconSpan);\r\n }\r\n };\r\n ProgressButton.prototype.setAria = function () {\r\n attributes(this.element, {\r\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\r\n });\r\n };\r\n ProgressButton.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'click', this.clickHandler, this);\r\n };\r\n ProgressButton.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.clickHandler);\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {ProgressButtonModel} newProp - Specifies new properties\r\n * @param {ProgressButtonModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n * @private\r\n */\r\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var ele = this.element;\r\n var isSpinning = false;\r\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\r\n if (clsList.contains('e-spin-show')) {\r\n isSpinning = true;\r\n }\r\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'content':\r\n this.setContent();\r\n this.createSpinner();\r\n if (isSpinning) {\r\n showSpinner(this.element);\r\n isSpinning = false;\r\n }\r\n if (this.enableProgress) {\r\n this.createProgress();\r\n }\r\n ele.setAttribute('aria-label', ele.textContent + ' progress');\r\n break;\r\n case 'iconCss':\r\n if (!oldProp.iconCss) {\r\n this.setIconSpan();\r\n }\r\n break;\r\n case 'iconPosition':\r\n this.setIconSpan();\r\n break;\r\n case 'enableProgress':\r\n if (newProp.enableProgress) {\r\n this.createProgress();\r\n }\r\n else {\r\n remove(this.getProgress());\r\n }\r\n break;\r\n case 'spinSettings':\r\n if (newProp.spinSettings.position) {\r\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\r\n this.setSpinPosition(this.getSpinner());\r\n }\r\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\r\n ele.removeChild(this.getSpinner());\r\n this.createSpinner();\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Sets the focus to ProgressButton\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n ProgressButton.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Property(false)\r\n ], ProgressButton.prototype, \"enableProgress\", void 0);\r\n __decorate([\r\n Property(2000)\r\n ], ProgressButton.prototype, \"duration\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], ProgressButton.prototype, \"iconPosition\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ProgressButton.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ProgressButton.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ProgressButton.prototype, \"isPrimary\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ProgressButton.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property('')\r\n ], ProgressButton.prototype, \"content\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ProgressButton.prototype, \"isToggle\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\r\n __decorate([\r\n Complex({}, SpinSettings)\r\n ], ProgressButton.prototype, \"spinSettings\", void 0);\r\n __decorate([\r\n Complex({}, AnimationSettings)\r\n ], ProgressButton.prototype, \"animationSettings\", void 0);\r\n __decorate([\r\n Event()\r\n ], ProgressButton.prototype, \"created\", void 0);\r\n __decorate([\r\n Event()\r\n ], ProgressButton.prototype, \"begin\", void 0);\r\n __decorate([\r\n Event()\r\n ], ProgressButton.prototype, \"progress\", void 0);\r\n __decorate([\r\n Event()\r\n ], ProgressButton.prototype, \"end\", void 0);\r\n __decorate([\r\n Event()\r\n ], ProgressButton.prototype, \"fail\", void 0);\r\n ProgressButton = __decorate([\r\n NotifyPropertyChanges\r\n ], ProgressButton);\r\n return ProgressButton;\r\n}(Button));\r\nexport { ProgressButton };\r\n","/**\n * Split Button modules\n */\nexport * from './split-button';\n","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n};\r\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\r\n/// \r\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\r\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\r\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\r\nimport { Button } from '@syncfusion/ej2-buttons';\r\nimport { getModel, Item } from './../common/common';\r\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\r\nvar RTL = 'e-rtl';\r\nvar TAGNAME = 'EJS-SPLITBUTTON';\r\n/**\r\n * SplitButton component has primary and secondary button. Primary button is used to select\r\n * default action and secondary button is used to toggle contextual overlays for displaying list of\r\n * action items. It can contain both text and images.\r\n * ```html\r\n * \r\n * ```\r\n * ```typescript\r\n * \r\n * ```\r\n */\r\nvar SplitButton = /** @class */ (function (_super) {\r\n __extends(SplitButton, _super);\r\n /**\r\n * Constructor for creating the widget\r\n *\r\n * @param {SplitButtonModel} options - Specifies the splitbutton model\r\n * @param {string|HTMLButtonElement} element - Specifies the element\r\n * @hidden\r\n */\r\n function SplitButton(options, element) {\r\n return _super.call(this, options, element) || this;\r\n }\r\n /**\r\n * Initialize Angular support.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n SplitButton.prototype.preRender = function () {\r\n var ele = this.element;\r\n if (ele.tagName === TAGNAME) {\r\n var ejInstance = getValue('ej2_instances', ele);\r\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\r\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\r\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\r\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\r\n }\r\n ele.parentNode.insertBefore(wrapper, ele);\r\n detach(ele);\r\n ele = btn;\r\n wrapper.appendChild(ele);\r\n setValue('ej2_instances', ejInstance, ele);\r\n this.wrapper = wrapper;\r\n this.element = ele;\r\n }\r\n if (!this.element.id) {\r\n this.element.id = getUniqueID('e-' + this.getModuleName());\r\n }\r\n };\r\n /**\r\n * Initialize the Component rendering.\r\n *\r\n * @returns {void}\r\n * @private\r\n */\r\n SplitButton.prototype.render = function () {\r\n this.initWrapper();\r\n this.createPrimaryButton();\r\n this.renderControl();\r\n };\r\n SplitButton.prototype.renderControl = function () {\r\n this.createSecondaryButton();\r\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\r\n this.setAria();\r\n this.wireEvents();\r\n this.renderComplete();\r\n };\r\n /**\r\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\r\n * but you can insert based on the text parameter.\r\n *\r\n * @param { ItemModel[] } items - Specifies an array of JSON data.\r\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\r\n * @returns {void}.\r\n */\r\n SplitButton.prototype.addItems = function (items, text) {\r\n _super.prototype.addItems.call(this, items, text);\r\n this.secondaryBtnObj.items = this.items;\r\n };\r\n /**\r\n * Removes the items from the menu.\r\n *\r\n * @param { string[] } items - Specifies an array of string to remove the items.\r\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\r\n * @returns {void}.\r\n */\r\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\r\n _super.prototype.removeItems.call(this, items, isUniqueId);\r\n this.secondaryBtnObj.items = this.items;\r\n };\r\n SplitButton.prototype.initWrapper = function () {\r\n if (!this.wrapper) {\r\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\r\n this.element.parentNode.insertBefore(this.wrapper, this.element);\r\n }\r\n this.element.classList.remove('e-' + this.getModuleName());\r\n if (this.enableRtl) {\r\n this.wrapper.classList.add(RTL);\r\n }\r\n if (this.cssClass) {\r\n addClass([this.wrapper], this.cssClass.split(' '));\r\n }\r\n };\r\n SplitButton.prototype.createPrimaryButton = function () {\r\n var btnModel = {\r\n cssClass: this.cssClass,\r\n enableRtl: this.enableRtl,\r\n iconCss: this.iconCss,\r\n iconPosition: this.iconPosition,\r\n content: this.content,\r\n disabled: this.disabled\r\n };\r\n this.primaryBtnObj = new Button(btnModel);\r\n this.primaryBtnObj.createElement = this.createElement;\r\n this.primaryBtnObj.appendTo(this.element);\r\n this.element.classList.add('e-' + this.getModuleName());\r\n this.element.type = 'button';\r\n this.wrapper.appendChild(this.element);\r\n };\r\n SplitButton.prototype.createSecondaryButton = function () {\r\n var _this = this;\r\n var btnElem = this.createElement('button', {\r\n className: 'e-icon-btn',\r\n attrs: { 'tabindex': '-1' },\r\n id: this.element.id + '_dropdownbtn'\r\n });\r\n this.wrapper.appendChild(btnElem);\r\n var dropDownBtnModel = {\r\n cssClass: this.cssClass,\r\n disabled: this.disabled,\r\n enableRtl: this.enableRtl,\r\n items: this.items,\r\n target: this.target,\r\n createPopupOnClick: this.createPopupOnClick\r\n };\r\n dropDownBtnModel.beforeItemRender = function (args) {\r\n if (_this.createPopupOnClick) {\r\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\r\n _this.dropDown = _this.secondaryBtnObj.dropDown;\r\n }\r\n _this.trigger('beforeItemRender', args);\r\n };\r\n dropDownBtnModel.open = function (args) {\r\n _this.trigger('open', args);\r\n };\r\n dropDownBtnModel.close = function (args) {\r\n _this.trigger('close', args);\r\n };\r\n dropDownBtnModel.select = function (args) {\r\n _this.trigger('select', args);\r\n };\r\n dropDownBtnModel.beforeOpen = function (args) {\r\n var callBackPromise = new Deferred();\r\n _this.trigger('beforeOpen', args, function (observedArgs) {\r\n callBackPromise.resolve(observedArgs);\r\n });\r\n return callBackPromise;\r\n };\r\n dropDownBtnModel.beforeClose = function (args) {\r\n var callBackPromise = new Deferred();\r\n _this.trigger('beforeClose', args, function (observedArgs) {\r\n callBackPromise.resolve(observedArgs);\r\n });\r\n return callBackPromise;\r\n };\r\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\r\n this.secondaryBtnObj.createElement = this.createElement;\r\n this.secondaryBtnObj.appendTo(btnElem);\r\n if (!this.createPopupOnClick) {\r\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\r\n this.dropDown = this.secondaryBtnObj.dropDown;\r\n }\r\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\r\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\r\n };\r\n SplitButton.prototype.setAria = function () {\r\n attributes(this.element, {\r\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\r\n 'aria-label': this.element.textContent + ' splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\r\n });\r\n };\r\n /**\r\n * Get component name.\r\n *\r\n * @returns {string} - Module Name\r\n * @private\r\n */\r\n SplitButton.prototype.getModuleName = function () {\r\n return 'split-btn';\r\n };\r\n /**\r\n * To open/close SplitButton popup based on current state of the SplitButton.\r\n *\r\n * @returns {void}\r\n */\r\n SplitButton.prototype.toggle = function () {\r\n this.secondaryBtnObj.toggle();\r\n };\r\n SplitButton.prototype.destroy = function () {\r\n var _this = this;\r\n var classList = [RTL];\r\n if (this.cssClass) {\r\n classList = classList.concat(this.cssClass.split(' '));\r\n }\r\n if (this.element) {\r\n var element = document.getElementById(this.element.id);\r\n if (element && element.parentElement === this.wrapper) {\r\n if (this.wrapper.tagName === TAGNAME) {\r\n this.wrapper.innerHTML = '';\r\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\r\n removeClass([this.wrapper], this.cssClass.split(' '));\r\n }\r\n else {\r\n removeClass([this.element], classList);\r\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\r\n _this.element.removeAttribute(key);\r\n });\r\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\r\n remove(this.wrapper);\r\n }\r\n this.unWireEvents();\r\n }\r\n }\r\n this.primaryBtnObj.destroy();\r\n this.secondaryBtnObj.destroy();\r\n _super.prototype.destroy.call(this);\r\n if (!this.element.getAttribute('class')) {\r\n this.element.removeAttribute('class');\r\n }\r\n };\r\n SplitButton.prototype.wireEvents = function () {\r\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\r\n new KeyboardEvents(this.element, {\r\n keyAction: this.btnKeyBoardHandler.bind(this),\r\n keyConfigs: {\r\n altdownarrow: 'alt+downarrow'\r\n }\r\n });\r\n };\r\n SplitButton.prototype.unWireEvents = function () {\r\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\r\n getInstance(this.element, KeyboardEvents).destroy();\r\n };\r\n SplitButton.prototype.primaryBtnClickHandler = function () {\r\n this.trigger('click', { element: this.element });\r\n };\r\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\r\n switch (e.action) {\r\n case 'altdownarrow':\r\n this.clickHandler(e);\r\n break;\r\n }\r\n };\r\n /**\r\n * Called internally if any of the property value changed.\r\n *\r\n * @param {SplitButtonModel} newProp - Specifies new properties\r\n * @param {SplitButtonModel} oldProp - Specifies old properties\r\n * @returns {void}\r\n */\r\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\r\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\r\n this.primaryBtnObj.setProperties(getModel(newProp, model));\r\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\r\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\r\n if (Object.keys(newProp).indexOf('items') > -1) {\r\n this.secondaryBtnObj.items = newProp.items;\r\n this.secondaryBtnObj.dataBind();\r\n }\r\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\r\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\r\n var prop = _a[_i];\r\n switch (prop) {\r\n case 'cssClass':\r\n if (oldProp.cssClass) {\r\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\r\n }\r\n addClass([this.wrapper], newProp.cssClass.split(' '));\r\n break;\r\n case 'enableRtl':\r\n if (newProp.enableRtl) {\r\n addClass([this.wrapper], RTL);\r\n }\r\n else {\r\n removeClass([this.wrapper], RTL);\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n /**\r\n * Sets the focus to SplitButton\r\n * its native method\r\n *\r\n * @public\r\n * @returns {void}\r\n */\r\n SplitButton.prototype.focusIn = function () {\r\n this.element.focus();\r\n };\r\n __decorate([\r\n Property('')\r\n ], SplitButton.prototype, \"content\", void 0);\r\n __decorate([\r\n Property('')\r\n ], SplitButton.prototype, \"cssClass\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], SplitButton.prototype, \"disabled\", void 0);\r\n __decorate([\r\n Property('')\r\n ], SplitButton.prototype, \"iconCss\", void 0);\r\n __decorate([\r\n Property('Left')\r\n ], SplitButton.prototype, \"iconPosition\", void 0);\r\n __decorate([\r\n Property(false)\r\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\r\n __decorate([\r\n Collection([], Item)\r\n ], SplitButton.prototype, \"items\", void 0);\r\n __decorate([\r\n Property('')\r\n ], SplitButton.prototype, \"target\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"beforeOpen\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"beforeClose\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"click\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"close\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"open\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"select\", void 0);\r\n __decorate([\r\n Event()\r\n ], SplitButton.prototype, \"created\", void 0);\r\n SplitButton = __decorate([\r\n NotifyPropertyChanges\r\n ], SplitButton);\r\n return SplitButton;\r\n}(DropDownButton));\r\nexport { SplitButton };\r\n/**\r\n * Deferred is used to handle asynchronous operation.\r\n */\r\nvar Deferred = /** @class */ (function () {\r\n function Deferred() {\r\n var _this = this;\r\n /**\r\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\r\n */\r\n this.promise = new Promise(function (resolve, reject) {\r\n _this.resolve = resolve;\r\n _this.reject = reject;\r\n });\r\n /**\r\n * Defines the callback function triggers when the Deferred object is rejected.\r\n */\r\n this.catch = this.promise.catch.bind(this.promise);\r\n /**\r\n * Defines the callback function triggers when the Deferred object is resolved.\r\n */\r\n this.then = this.promise.then.bind(this.promise);\r\n }\r\n return Deferred;\r\n}());\r\nexport { Deferred };\r\n","import { __decorate } from 'tslib';\nimport { NgModule, ɵɵdefineInjectable, Injectable, ɵɵinject, Injector } from '@angular/core';\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';\nimport { Observable, BehaviorSubject, of } from 'rxjs';\nimport { catchError, switchMap, filter, take, map } from 'rxjs/operators';\nimport { throwError } from 'rxjs/internal/observable/throwError';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common/http';\nvar AbpModule = /** @class */ (function () {\r\n function AbpModule() {\r\n }\nAbpModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: AbpModule });\nAbpModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function AbpModule_Factory(t) { return new (t || AbpModule)(); }, imports: [[]] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpModule, [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [],\n exports: []\n }]\n }], function () { return []; }, null); })();\r\n return AbpModule;\r\n}());\n\nvar TokenService = /** @class */ (function () {\r\n function TokenService() {\r\n }\r\n TokenService.prototype.getToken = function () {\r\n return abp.auth.getToken();\r\n };\r\n TokenService.prototype.getTokenCookieName = function () {\r\n return abp.auth.tokenCookieName;\r\n };\r\n TokenService.prototype.clearToken = function () {\r\n abp.auth.clearToken();\r\n };\r\n TokenService.prototype.setToken = function (authToken, expireDate) {\r\n abp.auth.setToken(authToken, expireDate);\r\n };\r\n //refresh token\r\n TokenService.prototype.getRefreshToken = function () {\r\n return abp.auth.getRefreshToken();\r\n };\r\n TokenService.prototype.getRefreshTokenCookieName = function () {\r\n return abp.auth.refreshTokenCookieName;\r\n };\r\n TokenService.prototype.clearRefreshToken = function () {\r\n abp.auth.clearRefreshToken();\r\n };\r\n TokenService.prototype.setRefreshToken = function (refreshToken, expireDate) {\r\n abp.auth.setRefreshToken(refreshToken, expireDate);\r\n };\r\n TokenService.ɵprov = ɵɵdefineInjectable({ factory: function TokenService_Factory() { return new TokenService(); }, token: TokenService, providedIn: \"root\" });\nTokenService.ɵfac = function TokenService_Factory(t) { return new (t || TokenService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(TokenService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return TokenService;\r\n}());\n\nvar PermissionCheckerService = /** @class */ (function () {\r\n function PermissionCheckerService() {\r\n }\r\n PermissionCheckerService.prototype.isGranted = function (permissionName) {\r\n return abp.auth.isGranted(permissionName);\r\n };\r\n PermissionCheckerService.ɵprov = ɵɵdefineInjectable({ factory: function PermissionCheckerService_Factory() { return new PermissionCheckerService(); }, token: PermissionCheckerService, providedIn: \"root\" });\nPermissionCheckerService.ɵfac = function PermissionCheckerService_Factory(t) { return new (t || PermissionCheckerService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PermissionCheckerService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return PermissionCheckerService;\r\n}());\n\nvar FeatureCheckerService = /** @class */ (function () {\r\n function FeatureCheckerService() {\r\n }\r\n FeatureCheckerService.prototype.get = function (featureName) {\r\n return abp.features.get(featureName);\r\n };\r\n FeatureCheckerService.prototype.getValue = function (featureName) {\r\n return abp.features.getValue(featureName);\r\n };\r\n FeatureCheckerService.prototype.isEnabled = function (featureName) {\r\n return abp.features.isEnabled(featureName);\r\n };\r\n FeatureCheckerService.ɵprov = ɵɵdefineInjectable({ factory: function FeatureCheckerService_Factory() { return new FeatureCheckerService(); }, token: FeatureCheckerService, providedIn: \"root\" });\nFeatureCheckerService.ɵfac = function FeatureCheckerService_Factory(t) { return new (t || FeatureCheckerService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(FeatureCheckerService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return FeatureCheckerService;\r\n}());\n\nvar LocalizationService = /** @class */ (function () {\r\n function LocalizationService() {\r\n }\r\n Object.defineProperty(LocalizationService.prototype, \"languages\", {\r\n get: function () {\r\n return abp.localization.languages;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(LocalizationService.prototype, \"currentLanguage\", {\r\n get: function () {\r\n return abp.localization.currentLanguage;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LocalizationService.prototype.localize = function (key, sourceName) {\r\n return abp.localization.localize(key, sourceName);\r\n };\r\n LocalizationService.prototype.getSource = function (sourceName) {\r\n return abp.localization.getSource(sourceName);\r\n };\r\n LocalizationService.ɵprov = ɵɵdefineInjectable({ factory: function LocalizationService_Factory() { return new LocalizationService(); }, token: LocalizationService, providedIn: \"root\" });\nLocalizationService.ɵfac = function LocalizationService_Factory(t) { return new (t || LocalizationService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(LocalizationService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return LocalizationService;\r\n}());\n\nvar LogService = /** @class */ (function () {\r\n function LogService() {\r\n }\r\n LogService.prototype.debug = function (logObject) {\r\n abp.log.debug(logObject);\r\n };\r\n LogService.prototype.info = function (logObject) {\r\n abp.log.info(logObject);\r\n };\r\n LogService.prototype.warn = function (logObject) {\r\n abp.log.warn(logObject);\r\n };\r\n LogService.prototype.error = function (logObject) {\r\n abp.log.error(logObject);\r\n };\r\n LogService.prototype.fatal = function (logObject) {\r\n abp.log.fatal(logObject);\r\n };\r\n LogService.ɵprov = ɵɵdefineInjectable({ factory: function LogService_Factory() { return new LogService(); }, token: LogService, providedIn: \"root\" });\nLogService.ɵfac = function LogService_Factory(t) { return new (t || LogService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(LogService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return LogService;\r\n}());\n\nvar MessageService = /** @class */ (function () {\r\n function MessageService() {\r\n }\r\n MessageService.prototype.info = function (message, title, options) {\r\n return abp.message.info(message, title, options);\r\n };\r\n MessageService.prototype.success = function (message, title, options) {\r\n return abp.message.success(message, title, options);\r\n };\r\n MessageService.prototype.warn = function (message, title, options) {\r\n return abp.message.warn(message, title, options);\r\n };\r\n MessageService.prototype.error = function (message, title, options) {\r\n return abp.message.error(message, title, options);\r\n };\r\n MessageService.prototype.confirm = function (message, title, callback, options) {\r\n return abp.message.confirm(message, title, callback, options);\r\n };\r\n MessageService.ɵprov = ɵɵdefineInjectable({ factory: function MessageService_Factory() { return new MessageService(); }, token: MessageService, providedIn: \"root\" });\nMessageService.ɵfac = function MessageService_Factory(t) { return new (t || MessageService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MessageService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return MessageService;\r\n}());\n\nvar AbpMultiTenancyService = /** @class */ (function () {\r\n function AbpMultiTenancyService() {\r\n }\r\n Object.defineProperty(AbpMultiTenancyService.prototype, \"isEnabled\", {\r\n get: function () {\r\n return abp.multiTenancy.isEnabled;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AbpMultiTenancyService.ɵprov = ɵɵdefineInjectable({ factory: function AbpMultiTenancyService_Factory() { return new AbpMultiTenancyService(); }, token: AbpMultiTenancyService, providedIn: \"root\" });\nAbpMultiTenancyService.ɵfac = function AbpMultiTenancyService_Factory(t) { return new (t || AbpMultiTenancyService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpMultiTenancyService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return AbpMultiTenancyService;\r\n}());\n\nvar NotifyService = /** @class */ (function () {\r\n function NotifyService() {\r\n }\r\n NotifyService.prototype.info = function (message, title, options) {\r\n abp.notify.info(message, title, options);\r\n };\r\n NotifyService.prototype.success = function (message, title, options) {\r\n abp.notify.success(message, title, options);\r\n };\r\n NotifyService.prototype.warn = function (message, title, options) {\r\n abp.notify.warn(message, title, options);\r\n };\r\n NotifyService.prototype.error = function (message, title, options) {\r\n abp.notify.error(message, title, options);\r\n };\r\n NotifyService.ɵprov = ɵɵdefineInjectable({ factory: function NotifyService_Factory() { return new NotifyService(); }, token: NotifyService, providedIn: \"root\" });\nNotifyService.ɵfac = function NotifyService_Factory(t) { return new (t || NotifyService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(NotifyService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return NotifyService;\r\n}());\n\nvar AbpSessionService = /** @class */ (function () {\r\n function AbpSessionService() {\r\n }\r\n Object.defineProperty(AbpSessionService.prototype, \"userId\", {\r\n get: function () {\r\n return abp.session.userId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbpSessionService.prototype, \"tenantId\", {\r\n get: function () {\r\n return abp.session.tenantId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbpSessionService.prototype, \"impersonatorUserId\", {\r\n get: function () {\r\n return abp.session.impersonatorUserId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbpSessionService.prototype, \"impersonatorTenantId\", {\r\n get: function () {\r\n return abp.session.impersonatorTenantId;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbpSessionService.prototype, \"multiTenancySide\", {\r\n get: function () {\r\n return abp.session.multiTenancySide;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n AbpSessionService.ɵprov = ɵɵdefineInjectable({ factory: function AbpSessionService_Factory() { return new AbpSessionService(); }, token: AbpSessionService, providedIn: \"root\" });\nAbpSessionService.ɵfac = function AbpSessionService_Factory(t) { return new (t || AbpSessionService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpSessionService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return AbpSessionService;\r\n}());\n\nvar SettingService = /** @class */ (function () {\r\n function SettingService() {\r\n }\r\n SettingService.prototype.get = function (name) {\r\n return abp.setting.get(name);\r\n };\r\n SettingService.prototype.getBoolean = function (name) {\r\n return abp.setting.getBoolean(name);\r\n };\r\n SettingService.prototype.getInt = function (name) {\r\n return abp.setting.getInt(name);\r\n };\r\n SettingService.ɵprov = ɵɵdefineInjectable({ factory: function SettingService_Factory() { return new SettingService(); }, token: SettingService, providedIn: \"root\" });\nSettingService.ɵfac = function SettingService_Factory(t) { return new (t || SettingService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(SettingService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return SettingService;\r\n}());\n\nvar UtilsService = /** @class */ (function () {\r\n function UtilsService() {\r\n }\r\n UtilsService.prototype.getCookieValue = function (key) {\r\n return abp.utils.getCookieValue(key);\r\n };\r\n UtilsService.prototype.setCookieValue = function (key, value, expireDate, path) {\r\n abp.utils.setCookieValue(key, value, expireDate, path);\r\n };\r\n UtilsService.prototype.deleteCookie = function (key, path) {\r\n abp.utils.deleteCookie(key, path);\r\n };\r\n UtilsService.ɵprov = ɵɵdefineInjectable({ factory: function UtilsService_Factory() { return new UtilsService(); }, token: UtilsService, providedIn: \"root\" });\nUtilsService.ɵfac = function UtilsService_Factory(t) { return new (t || UtilsService)(); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(UtilsService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\r\n return UtilsService;\r\n}());\n\nvar AbpUserConfigurationService = /** @class */ (function () {\r\n function AbpUserConfigurationService(_http) {\r\n this._http = _http;\r\n }\r\n AbpUserConfigurationService.prototype.initialize = function () {\r\n this._http.get('/AbpUserConfiguration/GetAll')\r\n .subscribe(function (result) {\r\n jQuery.extend(true, abp, JSON.parse(JSON.stringify(result)));\r\n });\r\n };\r\n AbpUserConfigurationService.ctorParameters = function () { return [\r\n { type: HttpClient }\r\n ]; };\r\n AbpUserConfigurationService.ɵprov = ɵɵdefineInjectable({ factory: function AbpUserConfigurationService_Factory() { return new AbpUserConfigurationService(ɵɵinject(HttpClient)); }, token: AbpUserConfigurationService, providedIn: \"root\" });\nAbpUserConfigurationService.ɵfac = function AbpUserConfigurationService_Factory(t) { return new (t || AbpUserConfigurationService)(ɵngcc0.ɵɵinject(ɵngcc1.HttpClient)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpUserConfigurationService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return [{ type: ɵngcc1.HttpClient }]; }, null); })();\r\n return AbpUserConfigurationService;\r\n}());\n\nvar AbpHttpConfigurationService = /** @class */ (function () {\r\n function AbpHttpConfigurationService(_messageService, _logService) {\r\n this._messageService = _messageService;\r\n this._logService = _logService;\r\n this.defaultError = {\r\n message: 'An error has occurred!',\r\n details: 'Error details were not sent by server.'\r\n };\r\n this.defaultError401 = {\r\n message: 'You are not authenticated!',\r\n details: 'You should be authenticated (sign in) in order to perform this operation.'\r\n };\r\n this.defaultError403 = {\r\n message: 'You are not authorized!',\r\n details: 'You are not allowed to perform this operation.'\r\n };\r\n this.defaultError404 = {\r\n message: 'Resource not found!',\r\n details: 'The resource requested could not be found on the server.'\r\n };\r\n }\r\n AbpHttpConfigurationService.prototype.logError = function (error) {\r\n this._logService.error(error);\r\n };\r\n AbpHttpConfigurationService.prototype.showError = function (error) {\r\n if (error.details) {\r\n return this._messageService.error(error.details, error.message || this.defaultError.message);\r\n }\r\n else {\r\n return this._messageService.error(error.message || this.defaultError.message);\r\n }\r\n };\r\n AbpHttpConfigurationService.prototype.handleTargetUrl = function (targetUrl) {\r\n if (!targetUrl) {\r\n location.href = '/';\r\n }\r\n else {\r\n location.href = targetUrl;\r\n }\r\n };\r\n AbpHttpConfigurationService.prototype.handleUnAuthorizedRequest = function (messagePromise, targetUrl) {\r\n var _this = this;\r\n var self = this;\r\n if (messagePromise) {\r\n messagePromise.done(function () {\r\n _this.handleTargetUrl(targetUrl || '/');\r\n });\r\n }\r\n else {\r\n self.handleTargetUrl(targetUrl || '/');\r\n }\r\n };\r\n AbpHttpConfigurationService.prototype.handleNonAbpErrorResponse = function (response) {\r\n var self = this;\r\n switch (response.status) {\r\n case 401:\r\n self.handleUnAuthorizedRequest(self.showError(self.defaultError401), '/');\r\n break;\r\n case 403:\r\n self.showError(self.defaultError403);\r\n break;\r\n case 404:\r\n self.showError(self.defaultError404);\r\n break;\r\n default:\r\n self.showError(self.defaultError);\r\n break;\r\n }\r\n };\r\n AbpHttpConfigurationService.prototype.handleAbpResponse = function (response, ajaxResponse) {\r\n var newResponse;\r\n if (ajaxResponse.success) {\r\n newResponse = response.clone({\r\n body: ajaxResponse.result\r\n });\r\n if (ajaxResponse.targetUrl) {\r\n this.handleTargetUrl(ajaxResponse.targetUrl);\r\n ;\r\n }\r\n }\r\n else {\r\n newResponse = response.clone({\r\n body: ajaxResponse.result\r\n });\r\n if (!ajaxResponse.error) {\r\n ajaxResponse.error = this.defaultError;\r\n }\r\n this.logError(ajaxResponse.error);\r\n this.showError(ajaxResponse.error);\r\n if (response.status === 401) {\r\n this.handleUnAuthorizedRequest(null, ajaxResponse.targetUrl);\r\n }\r\n }\r\n return newResponse;\r\n };\r\n AbpHttpConfigurationService.prototype.getAbpAjaxResponseOrNull = function (response) {\r\n if (!response || !response.headers) {\r\n return null;\r\n }\r\n var contentType = response.headers.get('Content-Type');\r\n if (!contentType) {\r\n this._logService.warn('Content-Type is not sent!');\r\n return null;\r\n }\r\n if (contentType.indexOf(\"application/json\") < 0) {\r\n this._logService.warn('Content-Type is not application/json: ' + contentType);\r\n return null;\r\n }\r\n var responseObj = JSON.parse(JSON.stringify(response.body));\r\n if (!responseObj.__abp) {\r\n return null;\r\n }\r\n return responseObj;\r\n };\r\n AbpHttpConfigurationService.prototype.handleResponse = function (response) {\r\n var ajaxResponse = this.getAbpAjaxResponseOrNull(response);\r\n if (ajaxResponse == null) {\r\n return response;\r\n }\r\n return this.handleAbpResponse(response, ajaxResponse);\r\n };\r\n AbpHttpConfigurationService.prototype.blobToText = function (blob) {\r\n return new Observable(function (observer) {\r\n if (!blob) {\r\n observer.next(\"\");\r\n observer.complete();\r\n }\r\n else {\r\n var reader = new FileReader();\r\n reader.onload = function () {\r\n observer.next(this.result);\r\n observer.complete();\r\n };\r\n reader.readAsText(blob);\r\n }\r\n });\r\n };\r\n AbpHttpConfigurationService.ctorParameters = function () { return [\r\n { type: MessageService },\r\n { type: LogService }\r\n ]; };\r\n AbpHttpConfigurationService.ɵprov = ɵɵdefineInjectable({ factory: function AbpHttpConfigurationService_Factory() { return new AbpHttpConfigurationService(ɵɵinject(MessageService), ɵɵinject(LogService)); }, token: AbpHttpConfigurationService, providedIn: \"root\" });\nAbpHttpConfigurationService.ɵfac = function AbpHttpConfigurationService_Factory(t) { return new (t || AbpHttpConfigurationService)(ɵngcc0.ɵɵinject(MessageService), ɵngcc0.ɵɵinject(LogService)); };\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpHttpConfigurationService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return [{ type: MessageService }, { type: LogService }]; }, null); })();\r\n return AbpHttpConfigurationService;\r\n}());\n\nvar RefreshTokenService = /** @class */ (function () {\r\n function RefreshTokenService() {\r\n }\nRefreshTokenService.ɵfac = function RefreshTokenService_Factory(t) { return new (t || RefreshTokenService)(); };\nRefreshTokenService.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: RefreshTokenService, factory: function (t) { return RefreshTokenService.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(RefreshTokenService, [{\n type: Injectable\n }], function () { return []; }, null); })();\r\n return RefreshTokenService;\r\n}());\n\nvar AbpHttpInterceptor = /** @class */ (function () {\r\n function AbpHttpInterceptor(configuration, _injector) {\r\n this._injector = _injector;\r\n this._tokenService = new TokenService();\r\n this._utilsService = new UtilsService();\r\n this._logService = new LogService();\r\n this.isRefreshing = false;\r\n this.refreshTokenSubject = new BehaviorSubject(null);\r\n this.configuration = configuration;\r\n }\r\n AbpHttpInterceptor.prototype.intercept = function (request, next) {\r\n var _this = this;\r\n var modifiedRequest = this.normalizeRequestHeaders(request);\r\n return next.handle(modifiedRequest)\r\n .pipe(catchError(function (error) {\r\n if (error instanceof HttpErrorResponse && error.status === 401) {\r\n return _this.tryAuthWithRefreshToken(request, next, error);\r\n }\r\n else {\r\n return _this.handleErrorResponse(error);\r\n }\r\n }), switchMap(function (event) {\r\n return _this.handleSuccessResponse(event);\r\n }));\r\n };\r\n AbpHttpInterceptor.prototype.tryGetRefreshTokenService = function () {\r\n var _refreshTokenService = this._injector.get(RefreshTokenService, null);\r\n if (_refreshTokenService) {\r\n return _refreshTokenService.tryAuthWithRefreshToken();\r\n }\r\n return of(false);\r\n };\r\n AbpHttpInterceptor.prototype.tryAuthWithRefreshToken = function (request, next, error) {\r\n var _this = this;\r\n if (!this.isRefreshing) {\r\n this.isRefreshing = true;\r\n this.refreshTokenSubject.next(null);\r\n return this.tryGetRefreshTokenService().pipe(switchMap(function (authResult) {\r\n _this.isRefreshing = false;\r\n if (authResult) {\r\n _this.refreshTokenSubject.next(authResult);\r\n var modifiedRequest = _this.normalizeRequestHeaders(request);\r\n return next.handle(modifiedRequest);\r\n }\r\n else {\r\n return _this.handleErrorResponse(error);\r\n }\r\n }));\r\n }\r\n else {\r\n return this.refreshTokenSubject.pipe(filter(function (authResult) { return authResult != null; }), take(1), switchMap(function (authResult) {\r\n var modifiedRequest = _this.normalizeRequestHeaders(request);\r\n return next.handle(modifiedRequest);\r\n }));\r\n }\r\n };\r\n AbpHttpInterceptor.prototype.normalizeRequestHeaders = function (request) {\r\n var modifiedHeaders = new HttpHeaders();\r\n modifiedHeaders = request.headers.set(\"Pragma\", \"no-cache\")\r\n .set(\"Cache-Control\", \"no-cache\")\r\n .set(\"Expires\", \"Sat, 01 Jan 2000 00:00:00 GMT\");\r\n modifiedHeaders = this.addXRequestedWithHeader(modifiedHeaders);\r\n modifiedHeaders = this.addAuthorizationHeaders(modifiedHeaders);\r\n modifiedHeaders = this.addAspNetCoreCultureHeader(modifiedHeaders);\r\n modifiedHeaders = this.addAcceptLanguageHeader(modifiedHeaders);\r\n modifiedHeaders = this.addTenantIdHeader(modifiedHeaders);\r\n return request.clone({\r\n headers: modifiedHeaders\r\n });\r\n };\r\n AbpHttpInterceptor.prototype.addXRequestedWithHeader = function (headers) {\r\n if (headers) {\r\n headers = headers.set('X-Requested-With', 'XMLHttpRequest');\r\n }\r\n return headers;\r\n };\r\n AbpHttpInterceptor.prototype.addAspNetCoreCultureHeader = function (headers) {\r\n var cookieLangValue = this._utilsService.getCookieValue(\"Abp.Localization.CultureName\");\r\n if (cookieLangValue && headers && !headers.has('.AspNetCore.Culture')) {\r\n headers = headers.set('.AspNetCore.Culture', cookieLangValue);\r\n }\r\n return headers;\r\n };\r\n AbpHttpInterceptor.prototype.addAcceptLanguageHeader = function (headers) {\r\n var cookieLangValue = this._utilsService.getCookieValue(\"Abp.Localization.CultureName\");\r\n if (cookieLangValue && headers && !headers.has('Accept-Language')) {\r\n headers = headers.set('Accept-Language', cookieLangValue);\r\n }\r\n return headers;\r\n };\r\n AbpHttpInterceptor.prototype.addTenantIdHeader = function (headers) {\r\n var cookieTenantIdValue = this._utilsService.getCookieValue(abp.multiTenancy.tenantIdCookieName);\r\n if (cookieTenantIdValue && headers && !headers.has(abp.multiTenancy.tenantIdCookieName)) {\r\n headers = headers.set(abp.multiTenancy.tenantIdCookieName, cookieTenantIdValue);\r\n }\r\n return headers;\r\n };\r\n AbpHttpInterceptor.prototype.addAuthorizationHeaders = function (headers) {\r\n var authorizationHeaders = headers ? headers.getAll('Authorization') : null;\r\n if (!authorizationHeaders) {\r\n authorizationHeaders = [];\r\n }\r\n if (!this.itemExists(authorizationHeaders, function (item) { return item.indexOf('Bearer ') == 0; })) {\r\n var token = this._tokenService.getToken();\r\n if (headers && token) {\r\n headers = headers.set('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n return headers;\r\n };\r\n AbpHttpInterceptor.prototype.handleSuccessResponse = function (event) {\r\n var self = this;\r\n if (event instanceof HttpResponse) {\r\n if (event.body instanceof Blob && event.body.type && event.body.type.indexOf(\"application/json\") >= 0) {\r\n return self.configuration.blobToText(event.body).pipe(map(function (json) {\r\n var responseBody = json == \"null\" ? {} : JSON.parse(json);\r\n var modifiedResponse = self.configuration.handleResponse(event.clone({\r\n body: responseBody\r\n }));\r\n return modifiedResponse.clone({\r\n body: new Blob([JSON.stringify(modifiedResponse.body)], { type: 'application/json' })\r\n });\r\n }));\r\n }\r\n }\r\n return of(event);\r\n };\r\n AbpHttpInterceptor.prototype.handleErrorResponse = function (error) {\r\n var _this = this;\r\n if (!(error.error instanceof Blob)) {\r\n return throwError(error);\r\n }\r\n return this.configuration.blobToText(error.error).pipe(switchMap(function (json) {\r\n var errorBody = (json == \"\" || json == \"null\") ? {} : JSON.parse(json);\r\n var errorResponse = new HttpResponse({\r\n headers: error.headers,\r\n status: error.status,\r\n body: errorBody\r\n });\r\n var ajaxResponse = _this.configuration.getAbpAjaxResponseOrNull(errorResponse);\r\n if (ajaxResponse != null) {\r\n _this.configuration.handleAbpResponse(errorResponse, ajaxResponse);\r\n }\r\n else {\r\n _this.configuration.handleNonAbpErrorResponse(errorResponse);\r\n }\r\n return throwError(error);\r\n }));\r\n };\r\n AbpHttpInterceptor.prototype.itemExists = function (items, predicate) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (predicate(items[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n AbpHttpInterceptor.ctorParameters = function () { return [\r\n { type: AbpHttpConfigurationService },\r\n { type: Injector }\r\n ]; };\nAbpHttpInterceptor.ɵfac = function AbpHttpInterceptor_Factory(t) { return new (t || AbpHttpInterceptor)(ɵngcc0.ɵɵinject(AbpHttpConfigurationService), ɵngcc0.ɵɵinject(ɵngcc0.Injector)); };\nAbpHttpInterceptor.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: AbpHttpInterceptor, factory: function (t) { return AbpHttpInterceptor.ɵfac(t); } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AbpHttpInterceptor, [{\n type: Injectable\n }], function () { return [{ type: AbpHttpConfigurationService }, { type: ɵngcc0.Injector }]; }, null); })();\r\n return AbpHttpInterceptor;\r\n}());\n\n/*\r\n * Public API Surface of abp-ng2-module\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { AbpHttpConfigurationService, AbpHttpInterceptor, AbpModule, AbpMultiTenancyService, AbpSessionService, AbpUserConfigurationService, FeatureCheckerService, LocalizationService, LogService, MessageService, NotifyService, PermissionCheckerService, RefreshTokenService, SettingService, TokenService, UtilsService };\n\n//# sourceMappingURL=abp-ng2-module.js.map","import * as cloneDeep from 'lodash/cloneDeep';\r\nimport cloneDeep__default, { } from 'lodash/cloneDeep';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { Injectable, Component, Input, Output, EventEmitter, HostBinding, NgModule, defineInjectable } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\n\r\n//LOCATION: EZNow-APP\\2EZNow\\node_modules\\angular-calendar-year-view\\__ivy_ngcc__\\fesm5\r\n\r\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nimport * as ɵngcc0 from '@angular/core';\r\nimport * as ɵngcc1 from '@angular/platform-browser';\r\nimport * as ɵngcc2 from '@angular/common';\r\nimport * as ɵngcc3 from 'ngx-bootstrap/popover';\r\n\r\nfunction AngularCalendarYearViewComponent_div_1_div_6_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵpipe(2, \"date\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var label_r378 = ctx.$implicit;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind2(2, 1, label_r378, \"EEEEEE\"), \" \");\r\n} }\r\nfunction AngularCalendarYearViewComponent_div_1_div_7_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r384 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\r\n ɵngcc0.ɵɵlistener(\"onShown\", function AngularCalendarYearViewComponent_div_1_div_7_div_1_Template_div_onShown_0_listener() { ɵngcc0.ɵɵrestoreView(_r384); var i_r382 = ctx.index; var day_r381 = ctx.$implicit; var m_r375 = ɵngcc0.ɵɵnextContext(2).index; var ctx_r383 = ɵngcc0.ɵɵnextContext(); ctx_r383.dayindex = i_r382; return ctx_r383.getTodayEvents(day_r381, m_r375); })(\"click\", function AngularCalendarYearViewComponent_div_1_div_7_div_1_Template_div_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r384); var day_r381 = ctx.$implicit; var m_r375 = ɵngcc0.ɵɵnextContext(2).index; var ctx_r386 = ɵngcc0.ɵɵnextContext(); return ctx_r386.dayClickedFn(day_r381, m_r375); });\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var day_r381 = ctx.$implicit;\r\n var ctx_r380 = ɵngcc0.ɵɵnextContext(3);\r\n var _r372 = ɵngcc0.ɵɵreference(4);\r\n ɵngcc0.ɵɵstyleProp(\"background-image\", day_r381 ? \"linear-gradient(120deg, \" + day_r381.colors + \",#fff)\" : \"\", ɵngcc0.ɵɵdefaultStyleSanitizer);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", day_r381 ? day_r381.istoday ? \"todayclass\" : day_r381.nb > 0 ? \"haveevents\" : \"\" : \"void_day\")(\"outsideClick\", true)(\"popover\", ctx_r380.popoverEnabled ? ctx_r380.customTemplate ? ctx_r380.customTemplate : _r372 : \"\");\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", day_r381 == null ? null : day_r381.day, \" \");\r\n} }\r\nfunction AngularCalendarYearViewComponent_div_1_div_7_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 7);\r\n ɵngcc0.ɵɵtemplate(1, AngularCalendarYearViewComponent_div_1_div_7_div_1_Template, 2, 6, \"div\", 11);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var week_r379 = ctx.$implicit;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", week_r379);\r\n} }\r\nfunction AngularCalendarYearViewComponent_div_1_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\r\n ɵngcc0.ɵɵelementStart(1, \"div\", 5);\r\n ɵngcc0.ɵɵelementStart(2, \"p\", 6);\r\n ɵngcc0.ɵɵtext(3);\r\n ɵngcc0.ɵɵpipe(4, \"date\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementStart(5, \"div\", 7);\r\n ɵngcc0.ɵɵtemplate(6, AngularCalendarYearViewComponent_div_1_div_6_Template, 3, 4, \"div\", 8);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(7, AngularCalendarYearViewComponent_div_1_div_7_Template, 2, 1, \"div\", 9);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var Month_r374 = ctx.$implicit;\r\n var ctx_r370 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind2(4, 3, Month_r374.date, \"MMMM\"));\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r370.days);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", Month_r374.days);\r\n} }\r\nfunction AngularCalendarYearViewComponent_div_2_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\r\n ɵngcc0.ɵɵnamespaceSVG();\r\n ɵngcc0.ɵɵelementStart(1, \"svg\", 14);\r\n ɵngcc0.ɵɵelement(2, \"circle\", 15);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_a_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r396 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"a\", 26);\r\n ɵngcc0.ɵɵlistener(\"click\", function AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_a_1_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r396); var action_r393 = ctx.$implicit; var event_r391 = ɵngcc0.ɵɵnextContext().$implicit; var ctx_r394 = ɵngcc0.ɵɵnextContext(3); return ctx_r394.actionClickedFn(action_r393.name, event_r391); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var action_r393 = ctx.$implicit;\r\n var event_r391 = ɵngcc0.ɵɵnextContext().$implicit;\r\n ɵngcc0.ɵɵstyleProp(\"color\", event_r391.color.primary + \"!importants\");\r\n ɵngcc0.ɵɵproperty(\"innerHTML\", action_r393.label, ɵngcc0.ɵɵsanitizeHtml);\r\n} }\r\nfunction AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r399 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\");\r\n ɵngcc0.ɵɵtemplate(1, AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_a_1_Template, 1, 3, \"a\", 23);\r\n ɵngcc0.ɵɵelement(2, \"div\", 24);\r\n ɵngcc0.ɵɵelementStart(3, \"p\", 25);\r\n ɵngcc0.ɵɵlistener(\"click\", function AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_Template_p_click_3_listener() { ɵngcc0.ɵɵrestoreView(_r399); var event_r391 = ctx.$implicit; var ctx_r398 = ɵngcc0.ɵɵnextContext(3); return ctx_r398.eventClickedFn(event_r391); });\r\n ɵngcc0.ɵɵelementStart(4, \"span\");\r\n ɵngcc0.ɵɵtext(5);\r\n ɵngcc0.ɵɵpipe(6, \"date\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtext(7);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var event_r391 = ctx.$implicit;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", event_r391.actions);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵstyleProp(\"background\", event_r391.color.secondary, ɵngcc0.ɵɵdefaultStyleSanitizer)(\"border-color\", event_r391.color.primary);\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind2(6, 7, event_r391.start, \"HH:mm\"), \" \");\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", event_r391.title, \" \");\r\n} }\r\nfunction AngularCalendarYearViewComponent_ng_template_3_div_6_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\");\r\n ɵngcc0.ɵɵtemplate(1, AngularCalendarYearViewComponent_ng_template_3_div_6_div_1_Template, 8, 10, \"div\", 22);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r388 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r388.daydetails.events);\r\n} }\r\nfunction AngularCalendarYearViewComponent_ng_template_3_div_7_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 27);\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r389 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r389.nothingToshowText, \" \");\r\n} }\r\nfunction AngularCalendarYearViewComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 16);\r\n ɵngcc0.ɵɵelementStart(1, \"p\", 17);\r\n ɵngcc0.ɵɵtext(2);\r\n ɵngcc0.ɵɵpipe(3, \"date\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementStart(4, \"p\", 18);\r\n ɵngcc0.ɵɵtext(5);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(6, AngularCalendarYearViewComponent_ng_template_3_div_6_Template, 2, 1, \"div\", 19);\r\n ɵngcc0.ɵɵtemplate(7, AngularCalendarYearViewComponent_ng_template_3_div_7_Template, 2, 1, \"div\", 20);\r\n ɵngcc0.ɵɵelement(8, \"div\", 21);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r373 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r373.daydetails.istoday ? \"todaytext\" : \"\");\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\"\", ɵngcc0.ɵɵpipeBind2(3, 7, ctx_r373.days[ctx_r373.dayindex], \"EEEEEE\"), \".\");\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", ctx_r373.daydetails.istoday ? \"todaytext\" : \"\");\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\"\", ctx_r373.daydetails == null ? null : ctx_r373.daydetails.day, \" \");\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r373.loader);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r373.daydetails.events || ctx_r373.daydetails.events.length == 0 && !ctx_r373.loader);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"hidden\", !ctx_r373.loader);\r\n} }\r\nvar AngularCalendarYearViewService = /** @class */ (function () {\r\n function AngularCalendarYearViewService() {\r\n }\r\n /** @nocollapse */\r\n AngularCalendarYearViewService.ctorParameters = function () { return []; };\r\n /** @nocollapse */ AngularCalendarYearViewService.ngInjectableDef = defineInjectable({ factory: function AngularCalendarYearViewService_Factory() { return new AngularCalendarYearViewService(); }, token: AngularCalendarYearViewService, providedIn: \"root\" });\r\nAngularCalendarYearViewService.ɵfac = function AngularCalendarYearViewService_Factory(t) { return new (t || AngularCalendarYearViewService)(); };\r\nAngularCalendarYearViewService.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: AngularCalendarYearViewService, factory: function (t) { return AngularCalendarYearViewService.ɵfac(t); }, providedIn: 'root' });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AngularCalendarYearViewService, [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root'\r\n }]\r\n }], function () { return []; }, null); })();\r\n return AngularCalendarYearViewService;\r\n}());\r\n\r\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n/** @type {?} */\r\nvar clone = cloneDeep__default || cloneDeep;\r\nvar AngularCalendarYearViewComponent = /** @class */ (function () {\r\n function AngularCalendarYearViewComponent(sanitizer) {\r\n this.sanitizer = sanitizer;\r\n this.themecolor = '#ff0000';\r\n this.events = [];\r\n this.viewDate = new Date();\r\n this.nothingToshowText = \"There are no events scheduled that day.\";\r\n this.popoverEnabled = true;\r\n this.eventClicked = new EventEmitter();\r\n this.actionClicked = new EventEmitter();\r\n this.dayClicked = new EventEmitter();\r\n this.loader = false;\r\n this.days = [new Date(2019, 1, 4), new Date(2019, 1, 5), new Date(2019, 1, 6), new Date(2019, 1, 7), new Date(2019, 1, 8), new Date(2019, 1, 9), new Date(2019, 1, 3)];\r\n this.daydetails = {};\r\n this.year = new Date().getFullYear();\r\n this.calendar = [];\r\n this.spinner = true;\r\n }\r\n Object.defineProperty(AngularCalendarYearViewComponent.prototype, \"style\", {\r\n get: /**\r\n * @return {?}\r\n */\r\n function () {\r\n return this.sanitizer.bypassSecurityTrustStyle(\"--themecolor: \" + this.themecolor + \";\");\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.ngOnInit = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.initCalendar(this.viewDate);\r\n };\r\n /**\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.ngOnChanges = /**\r\n * @return {?}\r\n */\r\n function () {\r\n this.initCalendar(this.viewDate);\r\n };\r\n /**\r\n * @param {?} date\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.initCalendar = /**\r\n * @param {?} date\r\n * @return {?}\r\n */\r\n function (date) {\r\n this.year = date.getFullYear();\r\n this.calendar = [];\r\n this.spinner = true;\r\n for (var index = 0; index < 12; index++) {\r\n this.calendar.push({\r\n date: new Date(this.year, index + 1, 0),\r\n days: this.generateCalendar(index + 1, this.year)\r\n });\r\n }\r\n /** @type {?} */\r\n var self = this;\r\n setTimeout((/**\r\n * @return {?}\r\n */\r\n function () {\r\n self.spinner = false;\r\n }), 2000);\r\n };\r\n /**\r\n * @param {?} month\r\n * @param {?} year\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.generateCalendar = /**\r\n * @param {?} month\r\n * @param {?} year\r\n * @return {?}\r\n */\r\n function (month, year) {\r\n /** @type {?} */\r\n var monthList = [];\r\n /** @type {?} */\r\n var nbweeks = this.getNbWeeks(month, year);\r\n /** @type {?} */\r\n var dayone = new Date(year, month - 1, 0).getDay();\r\n /** @type {?} */\r\n var nbdaysMonth = new Date(year, month, 0).getDate();\r\n /** @type {?} */\r\n var lastdayindex = new Date(year, month - 1, nbdaysMonth).getDay() - 1;\r\n /** @type {?} */\r\n var lastday = 7;\r\n /** @type {?} */\r\n var day = 1;\r\n /** @type {?} */\r\n var today = new Date().toDateString();\r\n for (var indexweek = 0; indexweek < nbweeks; indexweek++) {\r\n monthList[indexweek] = [];\r\n if (nbweeks == indexweek + 1) {\r\n lastday = lastdayindex + 1;\r\n }\r\n if (indexweek > 0) {\r\n dayone = 0;\r\n }\r\n for (var indexday = dayone; indexday < lastday; indexday++) {\r\n /** @type {?} */\r\n var d1 = new Date(year, month - 1, day).toDateString();\r\n /** @type {?} */\r\n var istoday = d1 == today;\r\n /** @type {?} */\r\n var colorsEvents = this.getnbevents(day, month - 1);\r\n monthList[indexweek][indexday] = {\r\n day: day,\r\n istoday: istoday,\r\n colors: colorsEvents.color,\r\n events: [],\r\n nb: colorsEvents.nb\r\n };\r\n day++;\r\n }\r\n }\r\n return monthList;\r\n };\r\n /**\r\n * @param {?} month\r\n * @param {?} year\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.getNbWeeks = /**\r\n * @param {?} month\r\n * @param {?} year\r\n * @return {?}\r\n */\r\n function (month, year) {\r\n /** @type {?} */\r\n var dayone = new Date(year, month - 1, 0).getDay();\r\n /** @type {?} */\r\n var nbdaysMonth = new Date(year, month, 0).getDate();\r\n /** @type {?} */\r\n var lastday = new Date(year, month - 1, nbdaysMonth).getDay() - 1;\r\n return (nbdaysMonth + dayone + (6 - lastday)) / 7;\r\n };\r\n /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.dayClickedFn = /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n function (day, month) {\r\n /** @type {?} */\r\n var date = new Date(this.year, month, day.day);\r\n this.daydetails = { events: [] };\r\n if (this.events.length > 0) {\r\n this.loader = true;\r\n this.daydetails = clone(day);\r\n /** @type {?} */\r\n var d1 = new Date(this.year, month, day.day).toDateString();\r\n for (var index = 0; index < this.events.length; index++) {\r\n /** @type {?} */\r\n var element = this.events[index];\r\n /** @type {?} */\r\n var d2 = element.start.toDateString();\r\n if (d2 == d1) {\r\n this.daydetails.events.push(element);\r\n }\r\n }\r\n }\r\n this.dayClicked.emit({ date: date, events: this.daydetails.events });\r\n };\r\n /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.getTodayEvents = /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n function (day, month) {\r\n this.daydetails = {};\r\n if (this.events.length > 0) {\r\n this.loader = true;\r\n this.daydetails = clone(day);\r\n /** @type {?} */\r\n var d1 = new Date(this.year, month, day.day).toDateString();\r\n var _loop_1 = function (index) {\r\n /** @type {?} */\r\n var element = this_1.events[index];\r\n /** @type {?} */\r\n var d2 = element.start.toDateString();\r\n if (d2 == d1) {\r\n this_1.daydetails.events.push(element);\r\n }\r\n if (index == this_1.events.length - 1) {\r\n /** @type {?} */\r\n var self_1 = this_1;\r\n setTimeout((/**\r\n * @return {?}\r\n */\r\n function () {\r\n self_1.loader = false;\r\n }), 1000);\r\n }\r\n };\r\n var this_1 = this;\r\n for (var index = 0; index < this.events.length; index++) {\r\n _loop_1(index);\r\n }\r\n }\r\n };\r\n /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.getnbevents = /**\r\n * @param {?} day\r\n * @param {?} month\r\n * @return {?}\r\n */\r\n function (day, month) {\r\n /** @type {?} */\r\n var nb = 0;\r\n /** @type {?} */\r\n var colors = [];\r\n if (this.events.length > 0) {\r\n /** @type {?} */\r\n var d1 = new Date(this.year, month, day).toDateString();\r\n for (var index = 0; index < this.events.length; index++) {\r\n /** @type {?} */\r\n var element = this.events[index];\r\n /** @type {?} */\r\n var d2 = element.start.toDateString();\r\n if (d2 == d1) {\r\n nb++;\r\n colors.push(element.color.secondary);\r\n }\r\n }\r\n return ({ nb: nb, color: colors.toString() });\r\n }\r\n else {\r\n return { color: \"\", nb: 0 };\r\n }\r\n };\r\n /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.eventClickedFn = /**\r\n * @param {?} event\r\n * @return {?}\r\n */\r\n function (event) {\r\n this.eventClicked.emit(event);\r\n };\r\n /**\r\n * @param {?} date\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.refresh = /**\r\n * @param {?} date\r\n * @return {?}\r\n */\r\n function (date) {\r\n this.initCalendar(date);\r\n };\r\n /**\r\n * @param {?} action\r\n * @param {?=} event\r\n * @return {?}\r\n */\r\n AngularCalendarYearViewComponent.prototype.actionClickedFn = /**\r\n * @param {?} action\r\n * @param {?=} event\r\n * @return {?}\r\n */\r\n function (action, event) {\r\n this.actionClicked.emit({ action: action, event: event });\r\n };\r\n /** @nocollapse */\r\n AngularCalendarYearViewComponent.ctorParameters = function () { return [\r\n { type: DomSanitizer }\r\n ]; };\r\n AngularCalendarYearViewComponent.propDecorators = {\r\n style: [{ type: HostBinding, args: ['style',] }],\r\n themecolor: [{ type: Input }],\r\n events: [{ type: Input }],\r\n viewDate: [{ type: Input }],\r\n nothingToshowText: [{ type: Input }],\r\n popoverEnabled: [{ type: Input }],\r\n customTemplate: [{ type: Input }],\r\n eventClicked: [{ type: Output }],\r\n actionClicked: [{ type: Output }],\r\n dayClicked: [{ type: Output }]\r\n };\r\nAngularCalendarYearViewComponent.ɵfac = function AngularCalendarYearViewComponent_Factory(t) { return new (t || AngularCalendarYearViewComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.DomSanitizer)); };\r\nAngularCalendarYearViewComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: AngularCalendarYearViewComponent, selectors: [[\"angular-calendar-year-view\"]], hostVars: 2, hostBindings: function AngularCalendarYearViewComponent_HostBindings(rf, ctx) { if (rf & 2) {\r\n ɵngcc0.ɵɵstyleMap(ctx.style);\r\n } }, inputs: { themecolor: \"themecolor\", events: \"events\", viewDate: \"viewDate\", nothingToshowText: \"nothingToshowText\", popoverEnabled: \"popoverEnabled\", customTemplate: \"customTemplate\" }, outputs: { eventClicked: \"eventClicked\", actionClicked: \"actionClicked\", dayClicked: \"dayClicked\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 2, consts: [[1, \"calendarcontainer\", \"flexmonths\"], [\"class\", \"responsivecontainer\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"calendar-loading\", 4, \"ngIf\"], [\"yearcalendarpoptemplate\", \"\"], [1, \"responsivecontainer\"], [1, \"monthcontainer\"], [1, \"monthname\"], [1, \"flexdays\"], [\"class\", \"day\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"flexdays\", 4, \"ngFor\", \"ngForOf\"], [1, \"day\"], [\"class\", \"day\", \"placement\", \"right\", 3, \"ngClass\", \"background-image\", \"outsideClick\", \"popover\", \"onShown\", \"click\", 4, \"ngFor\", \"ngForOf\"], [\"placement\", \"right\", 1, \"day\", 3, \"ngClass\", \"outsideClick\", \"popover\", \"onShown\", \"click\"], [1, \"calendar-loading\"], [\"viewBox\", \"25 25 50 50\", 1, \"spinner\"], [\"cx\", \"50\", \"cy\", \"50\", \"r\", \"20\", \"fill\", \"none\", \"stroke-width\", \"2\", \"stroke-miterlimit\", \"10\", 1, \"path\"], [1, \"col-md-12\", \"col-calendar\"], [1, \"pop_year_day\", 3, \"ngClass\"], [1, \"pop_year_day_number\", 3, \"ngClass\"], [4, \"ngIf\"], [\"class\", \"progressbar_popyear\", 4, \"ngIf\"], [1, \"loader_popover_calendar\", 3, \"hidden\"], [4, \"ngFor\", \"ngForOf\"], [\"class\", \"icon-action-calendar\", 3, \"color\", \"innerHTML\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"circle_day_color\"], [1, \"pop_year_event_title\", 3, \"click\"], [1, \"icon-action-calendar\", 3, \"innerHTML\", \"click\"], [1, \"progressbar_popyear\"]], template: function AngularCalendarYearViewComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\r\n ɵngcc0.ɵɵtemplate(1, AngularCalendarYearViewComponent_div_1_Template, 8, 6, \"div\", 1);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(2, AngularCalendarYearViewComponent_div_2_Template, 3, 0, \"div\", 2);\r\n ɵngcc0.ɵɵtemplate(3, AngularCalendarYearViewComponent_ng_template_3_Template, 9, 10, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.calendar);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinner);\r\n } }, directives: [ɵngcc2.NgForOf, ɵngcc2.NgIf, ɵngcc2.NgClass, ɵngcc3.PopoverDirective], pipes: [ɵngcc2.DatePipe], styles: [\".flexdays[_ngcontent-%COMP%]{display:flex}.flexmonths[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.calendarcontainer[_ngcontent-%COMP%]{margin:auto;padding:15px}.col-calendar[_ngcontent-%COMP%]{min-width:250px}.monthcontainer[_ngcontent-%COMP%]{width:245px;margin:auto auto 25px;background:#fff;padding:10px;min-height:293px}.haveevents[_ngcontent-%COMP%]{background:linear-gradient(120deg,var(--primary),#fff);color:var(--textcolor)}.flexdays[_ngcontent-%COMP%] .day[_ngcontent-%COMP%]{padding:2px;width:28px!important;height:28px!important;border-radius:50%;margin:2px;text-align:center}.flexdays[_ngcontent-%COMP%] .day[_ngcontent-%COMP%]:hover, .yeardayactive[_ngcontent-%COMP%]{background:#eee;cursor:pointer}.monthname[_ngcontent-%COMP%]{text-align:center;font-size:18px;color:var(--themecolor);text-transform:capitalize}.title-calendar-year[_ngcontent-%COMP%]{margin-bottom:25px}.todayclass[_ngcontent-%COMP%]{background:var(--themecolor)!important;color:#fff}.eventclass[_ngcontent-%COMP%]{background:#4ab3cc!important;color:#fff}.todaytext[_ngcontent-%COMP%]{color:var(--themecolor)!important}.eventtext[_ngcontent-%COMP%]{color:#4ab3cc!important}.void_day[_ngcontent-%COMP%]{pointer-events:none}.pop_year_day[_ngcontent-%COMP%]{color:#6c6c6c;font-size:16px}.pop_year_day_number[_ngcontent-%COMP%]{font-size:38px;color:#b3b3b3;margin-left:6px;margin-top:-15px}.circle_day_color[_ngcontent-%COMP%]{width:10px;height:10px;border-radius:50%;float:left;margin-right:6px;margin-top:5px;border:1px solid}.pop_year_event_title[_ngcontent-%COMP%]{width:200px;color:#b7b7b6;margin-top:-8px}.progressbar_popyear[_ngcontent-%COMP%]{width:200px;padding:13px 0}.pop_year_event_title[_ngcontent-%COMP%]:hover{text-decoration:underline;cursor:pointer}.icon-action-calendar[_ngcontent-%COMP%]{float:right;color:#8a8989!important;cursor:pointer}.icon-action-calendar[_ngcontent-%COMP%]:hover{opacity:.4}.calendar-loading[_ngcontent-%COMP%] .spinner[_ngcontent-%COMP%]{height:200px;width:200px;-webkit-animation:2s linear infinite rotate;animation:2s linear infinite rotate;-webkit-transform-origin:center center;transform-origin:center center;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.calendar-loading[_ngcontent-%COMP%] .spinner[_ngcontent-%COMP%] .path[_ngcontent-%COMP%]{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:1.5s ease-in-out infinite dash;animation:1.5s ease-in-out infinite dash;stroke-linecap:round;stroke:var(--themecolor)}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.loader_popover_calendar[_ngcontent-%COMP%]{height:6px;width:90%;margin-bottom:10px;overflow:hidden;background-color:#ffdede00;position:absolute}.loader_popover_calendar[_ngcontent-%COMP%]:before{display:block;position:absolute;content:\\\"\\\";left:-20px;width:20px;height:4px;background-color:var(--themecolor);-webkit-animation:1s linear infinite loading;animation:1s linear infinite loading}@-webkit-keyframes loading{from{left:-20px;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}@keyframes loading{from{left:-20px;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}.titles_calendar[_ngcontent-%COMP%]{font-weight:700;text-transform:capitalize}.responsivecontainer[_ngcontent-%COMP%]{width:25%}@media screen and (max-width:499px){.responsivecontainer[_ngcontent-%COMP%]{width:100%!important}}@media screen and (min-width:500px) and (max-width:749px){.responsivecontainer[_ngcontent-%COMP%]{width:50%!important}}@media screen and (min-width:750px) and (max-width:999px){.responsivecontainer[_ngcontent-%COMP%]{width:33%!important}}@media screen and (min-width:1000px){.responsivecontainer[_ngcontent-%COMP%]{width:25%!important}}\"] });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AngularCalendarYearViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'angular-calendar-year-view',\r\n template: \"\\n
      \\n
      \\n
      \\n

      {{Month.date | date:'MMMM'}}

      \\n
      \\n
      \\n {{label | date:'EEEEEE'}}\\n
      \\n
      \\n
      \\n
      0?'haveevents':'')): 'void_day'\\\"\\n [style.background-image]=\\\"day? ('linear-gradient(120deg, '+day.colors+',#fff)'):''\\\" class=\\\"day\\\" \\n [outsideClick]=\\\"true\\\"\\n [popover]=\\\"popoverEnabled?(customTemplate?customTemplate:yearcalendarpoptemplate):''\\\" \\n placement=\\\"right\\\" \\n (onShown)=\\\"dayindex=i;getTodayEvents(day,m)\\\"\\n (click)=\\\"dayClickedFn(day,m)\\\">\\n {{day?.day}}\\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n \\n \\n \\n
      \\n\\n
      \\n

      {{days[dayindex]| date:'EEEEEE'}}.

      \\n

      {{daydetails?.day}}

      \\n
      \\n
      \\n \\n \\n \\n
      \\n

      \\n \\n {{event.start| date:'HH:mm'}}\\n \\n {{event.title}}\\n

      \\n \\n
      \\n
      \\n
      \\n {{nothingToshowText}} \\n
      \\n
      \\n
      \\n
      \\n \",\r\n styles: [\".flexdays{display:flex}.flexmonths{display:flex;flex-wrap:wrap}.calendarcontainer{margin:auto;padding:15px}.col-calendar{min-width:250px}.monthcontainer{width:245px;margin:auto auto 25px;background:#fff;padding:10px;min-height:293px}.haveevents{background:linear-gradient(120deg,var(--primary),#fff);color:var(--textcolor)}.flexdays .day{padding:2px;width:28px!important;height:28px!important;border-radius:50%;margin:2px;text-align:center}.flexdays .day:hover,.yeardayactive{background:#eee;cursor:pointer}.monthname{text-align:center;font-size:18px;color:var(--themecolor);text-transform:capitalize}.title-calendar-year{margin-bottom:25px}.todayclass{background:var(--themecolor)!important;color:#fff}.eventclass{background:#4ab3cc!important;color:#fff}.todaytext{color:var(--themecolor)!important}.eventtext{color:#4ab3cc!important}.void_day{pointer-events:none}.pop_year_day{color:#6c6c6c;font-size:16px}.pop_year_day_number{font-size:38px;color:#b3b3b3;margin-left:6px;margin-top:-15px}.circle_day_color{width:10px;height:10px;border-radius:50%;float:left;margin-right:6px;margin-top:5px;border:1px solid}.pop_year_event_title{width:200px;color:#b7b7b6;margin-top:-8px}.progressbar_popyear{width:200px;padding:13px 0}.pop_year_event_title:hover{text-decoration:underline;cursor:pointer}.icon-action-calendar{float:right;color:#8a8989!important;cursor:pointer}.icon-action-calendar:hover{opacity:.4}.calendar-loading .spinner{height:200px;width:200px;-webkit-animation:2s linear infinite rotate;animation:2s linear infinite rotate;-webkit-transform-origin:center center;transform-origin:center center;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.calendar-loading .spinner .path{stroke-dasharray:1,200;stroke-dashoffset:0;-webkit-animation:1.5s ease-in-out infinite dash;animation:1.5s ease-in-out infinite dash;stroke-linecap:round;stroke:var(--themecolor)}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}100%{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.loader_popover_calendar{height:6px;width:90%;margin-bottom:10px;overflow:hidden;background-color:#ffdede00;position:absolute}.loader_popover_calendar:before{display:block;position:absolute;content:\\\"\\\";left:-20px;width:20px;height:4px;background-color:var(--themecolor);-webkit-animation:1s linear infinite loading;animation:1s linear infinite loading}@-webkit-keyframes loading{from{left:-20px;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}@keyframes loading{from{left:-20px;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}.titles_calendar{font-weight:700;text-transform:capitalize}.responsivecontainer{width:25%}@media screen and (max-width:499px){.responsivecontainer{width:100%!important}}@media screen and (min-width:500px) and (max-width:749px){.responsivecontainer{width:50%!important}}@media screen and (min-width:750px) and (max-width:999px){.responsivecontainer{width:33%!important}}@media screen and (min-width:1000px){.responsivecontainer{width:25%!important}}\"]\r\n }]\r\n }], function () { return [{ type: ɵngcc1.DomSanitizer }]; }, { themecolor: [{\r\n type: Input\r\n }], events: [{\r\n type: Input\r\n }], viewDate: [{\r\n type: Input\r\n }], nothingToshowText: [{\r\n type: Input\r\n }], popoverEnabled: [{\r\n type: Input\r\n }], eventClicked: [{\r\n type: Output\r\n }], actionClicked: [{\r\n type: Output\r\n }], dayClicked: [{\r\n type: Output\r\n }], style: [{\r\n type: HostBinding,\r\n args: ['style']\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return AngularCalendarYearViewComponent;\r\n}());\r\n\r\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\nvar AngularCalendarYearViewModule = /** @class */ (function () {\r\n function AngularCalendarYearViewModule() {\r\n }\r\nAngularCalendarYearViewModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: AngularCalendarYearViewModule });\r\nAngularCalendarYearViewModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function AngularCalendarYearViewModule_Factory(t) { return new (t || AngularCalendarYearViewModule)(); }, imports: [[\r\n CommonModule,\r\n PopoverModule.forRoot()\r\n ]] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(AngularCalendarYearViewModule, { declarations: function () { return [AngularCalendarYearViewComponent]; }, imports: function () { return [CommonModule, ɵngcc3.PopoverModule]; }, exports: function () { return [AngularCalendarYearViewComponent]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(AngularCalendarYearViewModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [AngularCalendarYearViewComponent],\r\n imports: [\r\n CommonModule,\r\n PopoverModule.forRoot()\r\n ],\r\n schemas: [],\r\n exports: [AngularCalendarYearViewComponent]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return AngularCalendarYearViewModule;\r\n}());\r\n\r\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n\r\n/**\r\n * @fileoverview added by tsickle\r\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\r\n */\r\n\r\nexport { AngularCalendarYearViewService, AngularCalendarYearViewComponent, AngularCalendarYearViewModule };\r\n\r\n//# sourceMappingURL=angular-calendar-year-view.js.map","import { __decorate, __spread, __param, __extends, __assign, __rest } from 'tslib';\r\nimport { Input, Component, ElementRef, Injector, Renderer2, ComponentFactoryResolver, ViewContainerRef, Inject, HostListener, Directive, EventEmitter, Output, Injectable, LOCALE_ID, Pipe, InjectionToken, NgModule, ChangeDetectorRef, NgZone } from '@angular/core';\r\nimport { DOCUMENT, formatDate, I18nPluralPipe, CommonModule } from '@angular/common';\r\nimport { positionElements } from 'positioning';\r\nimport { Subject, of, timer, Observable, BehaviorSubject, interval } from 'rxjs';\r\nimport { takeUntil, switchMap, startWith, switchMapTo, map } from 'rxjs/operators';\r\nimport { validateEvents as validateEvents$1, getMonthView, getWeekViewHeader, getWeekView } from 'calendar-utils';\r\nimport * as ɵngcc0 from '@angular/core';\r\nimport * as ɵngcc1 from '@angular/common';\r\nimport * as ɵngcc2 from 'angular-draggable-droppable';\r\nimport * as ɵngcc3 from 'angular-resizable-element';\r\n\r\nvar _c0 = function (a0) { return { action: a0 }; };\r\nfunction CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r854 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"a\", 5);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template_a_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r854); var action_r851 = ctx.$implicit; var event_r847 = ɵngcc0.ɵɵnextContext(2).event; return action_r851.onClick({ event: event_r847, sourceEvent: $event }); })(\"mwlKeydownEnter\", function CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template_a_mwlKeydownEnter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r854); var action_r851 = ctx.$implicit; var event_r847 = ɵngcc0.ɵɵnextContext(2).event; return action_r851.onClick({ event: event_r847, sourceEvent: $event }); });\r\n ɵngcc0.ɵɵpipe(1, \"calendarA11y\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var action_r851 = ctx.$implicit;\r\n ɵngcc0.ɵɵproperty(\"ngClass\", action_r851.cssClass)(\"innerHtml\", action_r851.label, ɵngcc0.ɵɵsanitizeHtml);\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(1, 3, ɵngcc0.ɵɵpureFunction1(6, _c0, action_r851), \"actionButtonLabel\"));\r\n} }\r\nfunction CalendarEventActionsComponent_ng_template_0_span_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"span\", 3);\r\n ɵngcc0.ɵɵtemplate(1, CalendarEventActionsComponent_ng_template_0_span_0_a_1_Template, 2, 8, \"a\", 4);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r857 = ɵngcc0.ɵɵnextContext();\r\n var event_r847 = ctx_r857.event;\r\n var trackByActionId_r848 = ctx_r857.trackByActionId;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", event_r847.actions)(\"ngForTrackBy\", trackByActionId_r848);\r\n} }\r\nfunction CalendarEventActionsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarEventActionsComponent_ng_template_0_span_0_Template, 2, 2, \"span\", 2);\r\n} if (rf & 2) {\r\n var event_r847 = ctx.event;\r\n ɵngcc0.ɵɵproperty(\"ngIf\", event_r847.actions);\r\n} }\r\nfunction CalendarEventActionsComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c1 = function (a0, a1) { return { event: a0, trackByActionId: a1 }; };\r\nvar _c2 = function () { return {}; };\r\nfunction CalendarEventTitleComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"span\", 2);\r\n ɵngcc0.ɵɵpipe(1, \"calendarEventTitle\");\r\n ɵngcc0.ɵɵpipe(2, \"calendarA11y\");\r\n} if (rf & 2) {\r\n var event_r861 = ctx.event;\r\n var view_r862 = ctx.view;\r\n ɵngcc0.ɵɵproperty(\"innerHTML\", ɵngcc0.ɵɵpipeBind3(1, 2, event_r861.title, view_r862, event_r861), ɵngcc0.ɵɵsanitizeHtml);\r\n ɵngcc0.ɵɵattribute(\"aria-hidden\", ɵngcc0.ɵɵpipeBind2(2, 6, ɵngcc0.ɵɵpureFunction0(9, _c2), \"hideEventTitle\"));\r\n} }\r\nfunction CalendarEventTitleComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c3 = function (a0, a1) { return { event: a0, view: a1 }; };\r\nfunction CalendarTooltipWindowComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵelement(1, \"div\", 3);\r\n ɵngcc0.ɵɵelement(2, \"div\", 4);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var contents_r866 = ctx.contents;\r\n var placement_r867 = ctx.placement;\r\n ɵngcc0.ɵɵproperty(\"ngClass\", \"cal-tooltip-\" + placement_r867);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"innerHtml\", contents_r866, ɵngcc0.ɵɵsanitizeHtml);\r\n} }\r\nfunction CalendarTooltipWindowComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c4 = function (a0, a1, a2) { return { contents: a0, placement: a1, event: a2 }; };\r\nvar _c5 = function (a0) { return { backgroundColor: a0 }; };\r\nfunction CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template(rf, ctx) { if (rf & 1) {\r\n var _r874 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"mwl-calendar-month-cell\", 7);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var day_r872 = ctx.$implicit; var ctx_r873 = ɵngcc0.ɵɵnextContext(2); return ctx_r873.dayClicked.emit({ day: day_r872, sourceEvent: $event }); })(\"mwlKeydownEnter\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_mwlKeydownEnter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var day_r872 = ctx.$implicit; var ctx_r875 = ɵngcc0.ɵɵnextContext(2); return ctx_r875.dayClicked.emit({ day: day_r872, sourceEvent: $event }); })(\"highlightDay\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_highlightDay_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var ctx_r876 = ɵngcc0.ɵɵnextContext(2); return ctx_r876.toggleDayHighlight($event.event, true); })(\"unhighlightDay\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_unhighlightDay_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var ctx_r877 = ɵngcc0.ɵɵnextContext(2); return ctx_r877.toggleDayHighlight($event.event, false); })(\"drop\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_drop_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var day_r872 = ctx.$implicit; var ctx_r878 = ɵngcc0.ɵɵnextContext(2); return ctx_r878.eventDropped(day_r872, $event.dropData.event, $event.dropData.draggedFrom); })(\"eventClicked\", function CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template_mwl_calendar_month_cell_eventClicked_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r874); var ctx_r879 = ɵngcc0.ɵɵnextContext(2); return ctx_r879.eventClicked.emit({ event: $event.event, sourceEvent: $event.sourceEvent }); });\r\n ɵngcc0.ɵɵpipe(1, \"calendarA11y\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var day_r872 = ctx.$implicit;\r\n var ctx_r871 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", day_r872 == null ? null : day_r872.cssClass)(\"day\", day_r872)(\"openDay\", ctx_r871.openDay)(\"locale\", ctx_r871.locale)(\"tooltipPlacement\", ctx_r871.tooltipPlacement)(\"tooltipAppendToBody\", ctx_r871.tooltipAppendToBody)(\"tooltipTemplate\", ctx_r871.tooltipTemplate)(\"tooltipDelay\", ctx_r871.tooltipDelay)(\"customTemplate\", ctx_r871.cellTemplate)(\"ngStyle\", ɵngcc0.ɵɵpureFunction1(15, _c5, day_r872.backgroundColor))(\"clickListenerDisabled\", ctx_r871.dayClicked.observers.length === 0);\r\n ɵngcc0.ɵɵattribute(\"tabindex\", ɵngcc0.ɵɵpipeBind2(1, 12, ɵngcc0.ɵɵpureFunction0(17, _c2), \"monthCellTabIndex\"));\r\n} }\r\nfunction CalendarMonthViewComponent_div_3_Template(rf, ctx) { if (rf & 1) {\r\n var _r881 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\");\r\n ɵngcc0.ɵɵelementStart(1, \"div\", 4);\r\n ɵngcc0.ɵɵtemplate(2, CalendarMonthViewComponent_div_3_mwl_calendar_month_cell_2_Template, 2, 18, \"mwl-calendar-month-cell\", 5);\r\n ɵngcc0.ɵɵpipe(3, \"slice\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementStart(4, \"mwl-calendar-open-day-events\", 6);\r\n ɵngcc0.ɵɵlistener(\"eventClicked\", function CalendarMonthViewComponent_div_3_Template_mwl_calendar_open_day_events_eventClicked_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r881); var ctx_r880 = ɵngcc0.ɵɵnextContext(); return ctx_r880.eventClicked.emit({ event: $event.event, sourceEvent: $event.sourceEvent }); })(\"drop\", function CalendarMonthViewComponent_div_3_Template_mwl_calendar_open_day_events_drop_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r881); var ctx_r882 = ɵngcc0.ɵɵnextContext(); return ctx_r882.eventDropped(ctx_r882.openDay, $event.dropData.event, $event.dropData.draggedFrom); });\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var rowIndex_r870 = ctx.$implicit;\r\n var ctx_r869 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ɵngcc0.ɵɵpipeBind3(3, 9, ctx_r869.view.days, rowIndex_r870, rowIndex_r870 + ctx_r869.view.totalDaysVisibleInWeek))(\"ngForTrackBy\", ctx_r869.trackByDate);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"locale\", ctx_r869.locale)(\"isOpen\", ctx_r869.openRowIndex === rowIndex_r870)(\"events\", ctx_r869.openDay == null ? null : ctx_r869.openDay.events)(\"date\", ctx_r869.openDay == null ? null : ctx_r869.openDay.date)(\"customTemplate\", ctx_r869.openDayEventsTemplate)(\"eventTitleTemplate\", ctx_r869.eventTitleTemplate)(\"eventActionsTemplate\", ctx_r869.eventActionsTemplate);\r\n} }\r\nfunction CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r892 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\r\n ɵngcc0.ɵɵlistener(\"click\", function CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template_div_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r892); var day_r890 = ctx.$implicit; var ctx_r891 = ɵngcc0.ɵɵnextContext(2); return ctx_r891.columnHeaderClicked.emit({ isoDayNumber: day_r890.day, sourceEvent: $event }); });\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵpipe(2, \"calendarDate\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var day_r890 = ctx.$implicit;\r\n var locale_r887 = ɵngcc0.ɵɵnextContext().locale;\r\n ɵngcc0.ɵɵclassProp(\"cal-past\", day_r890.isPast)(\"cal-today\", day_r890.isToday)(\"cal-future\", day_r890.isFuture)(\"cal-weekend\", day_r890.isWeekend);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", day_r890.cssClass);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind3(2, 10, day_r890.date, \"monthViewColumnHeader\", locale_r887), \" \");\r\n} }\r\nfunction CalendarMonthViewHeaderComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵtemplate(1, CalendarMonthViewHeaderComponent_ng_template_0_div_1_Template, 3, 14, \"div\", 3);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var days_r886 = ctx.days;\r\n var trackByWeekDayHeaderDate_r888 = ctx.trackByWeekDayHeaderDate;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", days_r886)(\"ngForTrackBy\", trackByWeekDayHeaderDate_r888);\r\n} }\r\nfunction CalendarMonthViewHeaderComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c6 = function (a0, a1, a2) { return { days: a0, locale: a1, trackByWeekDayHeaderDate: a2 }; };\r\nfunction CalendarMonthCellComponent_ng_template_0_span_3_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"span\", 7);\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var day_r897 = ɵngcc0.ɵɵnextContext().day;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate(day_r897.badgeTotal);\r\n} }\r\nvar _c7 = function (a0, a1) { return { event: a0, draggedFrom: a1 }; };\r\nvar _c8 = function (a0, a1) { return { x: a0, y: a1 }; };\r\nvar _c9 = function () { return { delay: 300, delta: 30 }; };\r\nfunction CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r916 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\r\n ɵngcc0.ɵɵlistener(\"mouseenter\", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mouseenter_0_listener() { ɵngcc0.ɵɵrestoreView(_r916); var event_r913 = ctx.$implicit; var highlightDay_r901 = ɵngcc0.ɵɵnextContext(2).highlightDay; return highlightDay_r901.emit({ event: event_r913 }); })(\"mouseleave\", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mouseleave_0_listener() { ɵngcc0.ɵɵrestoreView(_r916); var event_r913 = ctx.$implicit; var unhighlightDay_r902 = ɵngcc0.ɵɵnextContext(2).unhighlightDay; return unhighlightDay_r902.emit({ event: event_r913 }); })(\"mwlClick\", function CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template_div_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r916); var event_r913 = ctx.$implicit; var eventClicked_r903 = ɵngcc0.ɵɵnextContext(2).eventClicked; return eventClicked_r903.emit({ event: event_r913, sourceEvent: $event }); });\r\n ɵngcc0.ɵɵpipe(1, \"calendarEventTitle\");\r\n ɵngcc0.ɵɵpipe(2, \"calendarA11y\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var event_r913 = ctx.$implicit;\r\n var ctx_r921 = ɵngcc0.ɵɵnextContext(2);\r\n var tooltipPlacement_r900 = ctx_r921.tooltipPlacement;\r\n var tooltipTemplate_r904 = ctx_r921.tooltipTemplate;\r\n var tooltipAppendToBody_r905 = ctx_r921.tooltipAppendToBody;\r\n var tooltipDelay_r906 = ctx_r921.tooltipDelay;\r\n var day_r897 = ctx_r921.day;\r\n var validateDrag_r908 = ctx_r921.validateDrag;\r\n ɵngcc0.ɵɵclassProp(\"cal-draggable\", event_r913.draggable);\r\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction1(22, _c5, event_r913.color == null ? null : event_r913.color.primary))(\"ngClass\", event_r913 == null ? null : event_r913.cssClass)(\"mwlCalendarTooltip\", ɵngcc0.ɵɵpipeBind3(1, 15, event_r913.title, \"monthTooltip\", event_r913))(\"tooltipPlacement\", tooltipPlacement_r900)(\"tooltipEvent\", event_r913)(\"tooltipTemplate\", tooltipTemplate_r904)(\"tooltipAppendToBody\", tooltipAppendToBody_r905)(\"tooltipDelay\", tooltipDelay_r906)(\"dropData\", ɵngcc0.ɵɵpureFunction2(24, _c7, event_r913, day_r897))(\"dragAxis\", ɵngcc0.ɵɵpureFunction2(27, _c8, event_r913.draggable, event_r913.draggable))(\"validateDrag\", validateDrag_r908)(\"touchStartLongPress\", ɵngcc0.ɵɵpureFunction0(30, _c9));\r\n ɵngcc0.ɵɵattribute(\"aria-hidden\", ɵngcc0.ɵɵpipeBind2(2, 19, ɵngcc0.ɵɵpureFunction0(31, _c2), \"hideMonthCellEvents\"));\r\n} }\r\nfunction CalendarMonthCellComponent_ng_template_0_div_7_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\r\n ɵngcc0.ɵɵtemplate(1, CalendarMonthCellComponent_ng_template_0_div_7_div_1_Template, 3, 32, \"div\", 9);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r922 = ɵngcc0.ɵɵnextContext();\r\n var day_r897 = ctx_r922.day;\r\n var trackByEventId_r907 = ctx_r922.trackByEventId;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", day_r897.events)(\"ngForTrackBy\", trackByEventId_r907);\r\n} }\r\nvar _c10 = function (a0, a1) { return { day: a0, locale: a1 }; };\r\nfunction CalendarMonthCellComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵpipe(1, \"calendarA11y\");\r\n ɵngcc0.ɵɵelementStart(2, \"span\", 3);\r\n ɵngcc0.ɵɵtemplate(3, CalendarMonthCellComponent_ng_template_0_span_3_Template, 2, 1, \"span\", 4);\r\n ɵngcc0.ɵɵelementStart(4, \"span\", 5);\r\n ɵngcc0.ɵɵtext(5);\r\n ɵngcc0.ɵɵpipe(6, \"calendarDate\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(7, CalendarMonthCellComponent_ng_template_0_div_7_Template, 2, 2, \"div\", 6);\r\n} if (rf & 2) {\r\n var day_r897 = ctx.day;\r\n var locale_r899 = ctx.locale;\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(1, 4, ɵngcc0.ɵɵpureFunction2(11, _c10, day_r897, locale_r899), \"monthCell\"));\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", day_r897.badgeTotal > 0);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind3(6, 7, day_r897.date, \"monthViewDayNumber\", locale_r899));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", day_r897.events.length > 0);\r\n} }\r\nfunction CalendarMonthCellComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c11 = function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) { return { day: a0, openDay: a1, locale: a2, tooltipPlacement: a3, highlightDay: a4, unhighlightDay: a5, eventClicked: a6, tooltipTemplate: a7, tooltipAppendToBody: a8, tooltipDelay: a9, trackByEventId: a10, validateDrag: a11 }; };\r\nvar _c12 = function (a0) { return { event: a0 }; };\r\nvar _c13 = function (a0, a1) { return { event: a0, locale: a1 }; };\r\nfunction CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template(rf, ctx) { if (rf & 1) {\r\n var _r935 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 7);\r\n ɵngcc0.ɵɵelement(1, \"span\", 8);\r\n ɵngcc0.ɵɵtext(2, \" \");\r\n ɵngcc0.ɵɵelementStart(3, \"mwl-calendar-event-title\", 9);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template_mwl_calendar_event_title_mwlClick_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r935); var event_r933 = ctx.$implicit; var eventClicked_r927 = ɵngcc0.ɵɵnextContext(2).eventClicked; return eventClicked_r927.emit({ event: event_r933, sourceEvent: $event }); })(\"mwlKeydownEnter\", function CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template_mwl_calendar_event_title_mwlKeydownEnter_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r935); var event_r933 = ctx.$implicit; var eventClicked_r927 = ɵngcc0.ɵɵnextContext(2).eventClicked; return eventClicked_r927.emit({ event: event_r933, sourceEvent: $event }); });\r\n ɵngcc0.ɵɵpipe(4, \"calendarA11y\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtext(5, \" \");\r\n ɵngcc0.ɵɵelement(6, \"mwl-calendar-event-actions\", 10);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var event_r933 = ctx.$implicit;\r\n var validateDrag_r930 = ɵngcc0.ɵɵnextContext(2).validateDrag;\r\n var ctx_r932 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵclassProp(\"cal-draggable\", event_r933.draggable);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", event_r933 == null ? null : event_r933.cssClass)(\"dropData\", ɵngcc0.ɵɵpureFunction1(16, _c12, event_r933))(\"dragAxis\", ɵngcc0.ɵɵpureFunction2(18, _c8, event_r933.draggable, event_r933.draggable))(\"validateDrag\", validateDrag_r930)(\"touchStartLongPress\", ɵngcc0.ɵɵpureFunction0(21, _c9));\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction1(22, _c5, event_r933.color == null ? null : event_r933.color.primary));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"event\", event_r933)(\"customTemplate\", ctx_r932.eventTitleTemplate);\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(4, 13, ɵngcc0.ɵɵpureFunction2(24, _c13, event_r933, ctx_r932.locale), \"eventDescription\"));\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵproperty(\"event\", event_r933)(\"customTemplate\", ctx_r932.eventActionsTemplate);\r\n} }\r\nvar _c14 = function (a0, a1) { return { date: a0, locale: a1 }; };\r\nfunction CalendarOpenDayEventsComponent_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 3);\r\n ɵngcc0.ɵɵelement(1, \"span\", 4);\r\n ɵngcc0.ɵɵpipe(2, \"calendarA11y\");\r\n ɵngcc0.ɵɵelement(3, \"span\", 5);\r\n ɵngcc0.ɵɵpipe(4, \"calendarA11y\");\r\n ɵngcc0.ɵɵtemplate(5, CalendarOpenDayEventsComponent_ng_template_0_div_0_div_5_Template, 7, 27, \"div\", 6);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r940 = ɵngcc0.ɵɵnextContext();\r\n var events_r926 = ctx_r940.events;\r\n var trackByEventId_r929 = ctx_r940.trackByEventId;\r\n var ctx_r931 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵproperty(\"@collapse\", undefined);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(2, 5, ɵngcc0.ɵɵpureFunction2(11, _c14, ctx_r931.date, ctx_r931.locale), \"openDayEventsAlert\"));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(4, 8, ɵngcc0.ɵɵpureFunction2(14, _c14, ctx_r931.date, ctx_r931.locale), \"openDayEventsLandmark\"));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", events_r926)(\"ngForTrackBy\", trackByEventId_r929);\r\n} }\r\nfunction CalendarOpenDayEventsComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarOpenDayEventsComponent_ng_template_0_div_0_Template, 6, 17, \"div\", 2);\r\n} if (rf & 2) {\r\n var isOpen_r928 = ctx.isOpen;\r\n ɵngcc0.ɵɵproperty(\"ngIf\", isOpen_r928);\r\n} }\r\nfunction CalendarOpenDayEventsComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c15 = function (a0, a1, a2, a3, a4) { return { events: a0, eventClicked: a1, isOpen: a2, trackByEventId: a3, validateDrag: a4 }; };\r\nfunction CalendarWeekViewComponent_div_2_div_4_Template(rf, ctx) { if (rf & 1) {\r\n var _r950 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\r\n ɵngcc0.ɵɵlistener(\"drop\", function CalendarWeekViewComponent_div_2_div_4_Template_div_drop_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r950); var day_r948 = ctx.$implicit; var ctx_r949 = ɵngcc0.ɵɵnextContext(2); return ctx_r949.eventDropped($event, day_r948.date, true); })(\"dragEnter\", function CalendarWeekViewComponent_div_2_div_4_Template_div_dragEnter_0_listener() { ɵngcc0.ɵɵrestoreView(_r950); var day_r948 = ctx.$implicit; var ctx_r951 = ɵngcc0.ɵɵnextContext(2); return ctx_r951.dateDragEnter(day_r948.date); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nvar _c16 = function () { return { left: true }; };\r\nfunction CalendarWeekViewComponent_div_2_div_5_div_2_div_2_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 22);\r\n} if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"resizeEdges\", ɵngcc0.ɵɵpureFunction0(1, _c16));\r\n} }\r\nvar _c17 = function () { return { right: true }; };\r\nfunction CalendarWeekViewComponent_div_2_div_5_div_2_div_4_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 23);\r\n} if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"resizeEdges\", ɵngcc0.ɵɵpureFunction0(1, _c17));\r\n} }\r\nvar _c18 = function (a0, a1) { return { left: a0, right: a1 }; };\r\nvar _c19 = function (a0, a1) { return { event: a0, calendarId: a1 }; };\r\nvar _c20 = function (a0) { return { x: a0 }; };\r\nfunction CalendarWeekViewComponent_div_2_div_5_div_2_Template(rf, ctx) { if (rf & 1) {\r\n var _r960 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 17, 18);\r\n ɵngcc0.ɵɵlistener(\"resizeStart\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizeStart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r960); var allDayEvent_r955 = ctx.$implicit; ɵngcc0.ɵɵnextContext(); var _r953 = ɵngcc0.ɵɵreference(1); var ctx_r959 = ɵngcc0.ɵɵnextContext(2); return ctx_r959.allDayEventResizeStarted(_r953, allDayEvent_r955, $event); })(\"resizing\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizing_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r960); var allDayEvent_r955 = ctx.$implicit; var ctx_r961 = ɵngcc0.ɵɵnextContext(3); return ctx_r961.allDayEventResizing(allDayEvent_r955, $event, ctx_r961.dayColumnWidth); })(\"resizeEnd\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_resizeEnd_0_listener() { ɵngcc0.ɵɵrestoreView(_r960); var allDayEvent_r955 = ctx.$implicit; var ctx_r962 = ɵngcc0.ɵɵnextContext(3); return ctx_r962.allDayEventResizeEnded(allDayEvent_r955); })(\"dragStart\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragStart_0_listener() { ɵngcc0.ɵɵrestoreView(_r960); var _r956 = ɵngcc0.ɵɵreference(1); ɵngcc0.ɵɵnextContext(); var _r953 = ɵngcc0.ɵɵreference(1); var ctx_r963 = ɵngcc0.ɵɵnextContext(2); return ctx_r963.dragStarted(_r953, _r956); })(\"dragging\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragging_0_listener() { ɵngcc0.ɵɵrestoreView(_r960); var ctx_r964 = ɵngcc0.ɵɵnextContext(3); return ctx_r964.allDayEventDragMove(); })(\"dragEnd\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_div_dragEnd_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r960); var allDayEvent_r955 = ctx.$implicit; var ctx_r965 = ɵngcc0.ɵɵnextContext(3); return ctx_r965.dragEnded(allDayEvent_r955, $event, ctx_r965.dayColumnWidth); });\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewComponent_div_2_div_5_div_2_div_2_Template, 1, 2, \"div\", 19);\r\n ɵngcc0.ɵɵelementStart(3, \"mwl-calendar-week-view-event\", 20);\r\n ɵngcc0.ɵɵlistener(\"eventClicked\", function CalendarWeekViewComponent_div_2_div_5_div_2_Template_mwl_calendar_week_view_event_eventClicked_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r960); var allDayEvent_r955 = ctx.$implicit; var ctx_r966 = ɵngcc0.ɵɵnextContext(3); return ctx_r966.eventClicked.emit({ event: allDayEvent_r955.event, sourceEvent: $event.sourceEvent }); });\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(4, CalendarWeekViewComponent_div_2_div_5_div_2_div_4_Template, 1, 2, \"div\", 21);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var allDayEvent_r955 = ctx.$implicit;\r\n var ctx_r954 = ɵngcc0.ɵɵnextContext(3);\r\n ɵngcc0.ɵɵstyleProp(\"width\", 100 / ctx_r954.days.length * allDayEvent_r955.span, \"%\")(\"margin-left\", 100 / ctx_r954.days.length * allDayEvent_r955.offset, \"%\");\r\n ɵngcc0.ɵɵclassProp(\"cal-draggable\", allDayEvent_r955.event.draggable && ctx_r954.allDayEventResizes.size === 0)(\"cal-starts-within-week\", !allDayEvent_r955.startsBeforeWeek)(\"cal-ends-within-week\", !allDayEvent_r955.endsAfterWeek);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", allDayEvent_r955.event == null ? null : allDayEvent_r955.event.cssClass)(\"resizeSnapGrid\", ɵngcc0.ɵɵpureFunction2(30, _c18, ctx_r954.dayColumnWidth, ctx_r954.dayColumnWidth))(\"validateResize\", ctx_r954.validateResize)(\"dropData\", ɵngcc0.ɵɵpureFunction2(33, _c19, allDayEvent_r955.event, ctx_r954.calendarId))(\"dragAxis\", ɵngcc0.ɵɵpureFunction2(36, _c8, allDayEvent_r955.event.draggable && ctx_r954.allDayEventResizes.size === 0, !ctx_r954.snapDraggedEvents && allDayEvent_r955.event.draggable && ctx_r954.allDayEventResizes.size === 0))(\"dragSnapGrid\", ctx_r954.snapDraggedEvents ? ɵngcc0.ɵɵpureFunction1(39, _c20, ctx_r954.dayColumnWidth) : ɵngcc0.ɵɵpureFunction0(41, _c2))(\"validateDrag\", ctx_r954.validateDrag)(\"touchStartLongPress\", ɵngcc0.ɵɵpureFunction0(42, _c9));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", (allDayEvent_r955.event == null ? null : allDayEvent_r955.event.resizable == null ? null : allDayEvent_r955.event.resizable.beforeStart) && !allDayEvent_r955.startsBeforeWeek);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"locale\", ctx_r954.locale)(\"weekEvent\", allDayEvent_r955)(\"tooltipPlacement\", ctx_r954.tooltipPlacement)(\"tooltipTemplate\", ctx_r954.tooltipTemplate)(\"tooltipAppendToBody\", ctx_r954.tooltipAppendToBody)(\"tooltipDelay\", ctx_r954.tooltipDelay)(\"customTemplate\", ctx_r954.eventTemplate)(\"eventTitleTemplate\", ctx_r954.eventTitleTemplate)(\"eventActionsTemplate\", ctx_r954.eventActionsTemplate)(\"daysInWeek\", ctx_r954.daysInWeek);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", (allDayEvent_r955.event == null ? null : allDayEvent_r955.event.resizable == null ? null : allDayEvent_r955.event.resizable.afterEnd) && !allDayEvent_r955.endsAfterWeek);\r\n} }\r\nfunction CalendarWeekViewComponent_div_2_div_5_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 14, 15);\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewComponent_div_2_div_5_div_2_Template, 5, 43, \"div\", 16);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var eventRow_r952 = ctx.$implicit;\r\n var ctx_r947 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", eventRow_r952.row)(\"ngForTrackBy\", ctx_r947.trackByWeekAllDayEvent);\r\n} }\r\nfunction CalendarWeekViewComponent_div_2_Template(rf, ctx) { if (rf & 1) {\r\n var _r968 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 8, 9);\r\n ɵngcc0.ɵɵlistener(\"dragEnter\", function CalendarWeekViewComponent_div_2_Template_div_dragEnter_0_listener() { ɵngcc0.ɵɵrestoreView(_r968); var ctx_r967 = ɵngcc0.ɵɵnextContext(); return ctx_r967.dragEnter(\"allDay\"); })(\"dragLeave\", function CalendarWeekViewComponent_div_2_Template_div_dragLeave_0_listener() { ɵngcc0.ɵɵrestoreView(_r968); var ctx_r969 = ɵngcc0.ɵɵnextContext(); return ctx_r969.dragLeave(\"allDay\"); });\r\n ɵngcc0.ɵɵelementStart(2, \"div\", 5);\r\n ɵngcc0.ɵɵelement(3, \"div\", 10);\r\n ɵngcc0.ɵɵtemplate(4, CalendarWeekViewComponent_div_2_div_4_Template, 1, 0, \"div\", 11);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(5, CalendarWeekViewComponent_div_2_div_5_Template, 3, 2, \"div\", 12);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r941 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r941.allDayEventsLabelTemplate);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r941.days)(\"ngForTrackBy\", ctx_r941.trackByWeekDayHeaderDate);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r941.view.allDayEventRows)(\"ngForTrackBy\", ctx_r941.trackById);\r\n} }\r\nfunction CalendarWeekViewComponent_div_4_div_1_mwl_calendar_week_view_hour_segment_1_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"mwl-calendar-week-view-hour-segment\", 28);\r\n} if (rf & 2) {\r\n var segment_r974 = ctx.$implicit;\r\n var ctx_r973 = ɵngcc0.ɵɵnextContext(3);\r\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r973.hourSegmentHeight, \"px\");\r\n ɵngcc0.ɵɵproperty(\"segment\", segment_r974)(\"segmentHeight\", ctx_r973.hourSegmentHeight)(\"locale\", ctx_r973.locale)(\"customTemplate\", ctx_r973.hourSegmentTemplate)(\"isTimeLabel\", true)(\"daysInWeek\", ctx_r973.daysInWeek);\r\n} }\r\nfunction CalendarWeekViewComponent_div_4_div_1_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 26);\r\n ɵngcc0.ɵɵtemplate(1, CalendarWeekViewComponent_div_4_div_1_mwl_calendar_week_view_hour_segment_1_Template, 1, 8, \"mwl-calendar-week-view-hour-segment\", 27);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var hour_r971 = ctx.$implicit;\r\n var odd_r972 = ctx.odd;\r\n var ctx_r970 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵclassProp(\"cal-hour-odd\", odd_r972);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", hour_r971.segments)(\"ngForTrackBy\", ctx_r970.trackByHourSegment);\r\n} }\r\nfunction CalendarWeekViewComponent_div_4_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 24);\r\n ɵngcc0.ɵɵtemplate(1, CalendarWeekViewComponent_div_4_div_1_Template, 2, 4, \"div\", 25);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r942 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r942.view.hourColumns[0].hours)(\"ngForTrackBy\", ctx_r942.trackByHour);\r\n} }\r\nvar _c21 = function () { return { left: true, top: true }; };\r\nfunction CalendarWeekViewComponent_div_7_div_3_div_2_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 22);\r\n} if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"resizeEdges\", ɵngcc0.ɵɵpureFunction0(1, _c21));\r\n} }\r\nvar _c22 = function () { return { right: true, bottom: true }; };\r\nfunction CalendarWeekViewComponent_div_7_div_3_div_4_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 23);\r\n} if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"resizeEdges\", ɵngcc0.ɵɵpureFunction0(1, _c22));\r\n} }\r\nvar _c23 = function (a0, a1, a2, a3) { return { left: a0, right: a1, top: a2, bottom: a3 }; };\r\nfunction CalendarWeekViewComponent_div_7_div_3_Template(rf, ctx) { if (rf & 1) {\r\n var _r983 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 33, 18);\r\n ɵngcc0.ɵɵlistener(\"resizeStart\", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizeStart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r982 = ɵngcc0.ɵɵnextContext(2); var _r943 = ɵngcc0.ɵɵreference(6); return ctx_r982.timeEventResizeStarted(_r943, timeEvent_r978, $event); })(\"resizing\", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizing_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r984 = ɵngcc0.ɵɵnextContext(2); return ctx_r984.timeEventResizing(timeEvent_r978, $event); })(\"resizeEnd\", function CalendarWeekViewComponent_div_7_div_3_Template_div_resizeEnd_0_listener() { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r985 = ɵngcc0.ɵɵnextContext(2); return ctx_r985.timeEventResizeEnded(timeEvent_r978); })(\"dragStart\", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragStart_0_listener() { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var _r979 = ɵngcc0.ɵɵreference(1); var ctx_r986 = ɵngcc0.ɵɵnextContext(2); var _r943 = ɵngcc0.ɵɵreference(6); return ctx_r986.dragStarted(_r943, _r979, timeEvent_r978); })(\"dragging\", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragging_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r987 = ɵngcc0.ɵɵnextContext(2); return ctx_r987.dragMove(timeEvent_r978, $event); })(\"dragEnd\", function CalendarWeekViewComponent_div_7_div_3_Template_div_dragEnd_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r988 = ɵngcc0.ɵɵnextContext(2); return ctx_r988.dragEnded(timeEvent_r978, $event, ctx_r988.dayColumnWidth, true); });\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewComponent_div_7_div_3_div_2_Template, 1, 2, \"div\", 19);\r\n ɵngcc0.ɵɵelementStart(3, \"mwl-calendar-week-view-event\", 34);\r\n ɵngcc0.ɵɵlistener(\"eventClicked\", function CalendarWeekViewComponent_div_7_div_3_Template_mwl_calendar_week_view_event_eventClicked_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r983); var timeEvent_r978 = ctx.$implicit; var ctx_r989 = ɵngcc0.ɵɵnextContext(2); return ctx_r989.eventClicked.emit({ event: timeEvent_r978.event, sourceEvent: $event.sourceEvent }); });\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(4, CalendarWeekViewComponent_div_7_div_3_div_4_Template, 1, 2, \"div\", 21);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var timeEvent_r978 = ctx.$implicit;\r\n var column_r975 = ɵngcc0.ɵɵnextContext().$implicit;\r\n var ctx_r976 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵstyleProp(\"top\", timeEvent_r978.top, \"px\")(\"height\", timeEvent_r978.height, \"px\")(\"left\", timeEvent_r978.left, \"%\")(\"width\", timeEvent_r978.width, \"%\");\r\n ɵngcc0.ɵɵclassProp(\"cal-draggable\", timeEvent_r978.event.draggable && ctx_r976.timeEventResizes.size === 0)(\"cal-starts-within-day\", !timeEvent_r978.startsBeforeDay)(\"cal-ends-within-day\", !timeEvent_r978.endsAfterDay);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", timeEvent_r978.event.cssClass)(\"hidden\", timeEvent_r978.height === 0 && timeEvent_r978.width === 0)(\"resizeSnapGrid\", ɵngcc0.ɵɵpureFunction4(39, _c23, ctx_r976.dayColumnWidth, ctx_r976.dayColumnWidth, ctx_r976.eventSnapSize || ctx_r976.hourSegmentHeight, ctx_r976.eventSnapSize || ctx_r976.hourSegmentHeight))(\"validateResize\", ctx_r976.validateResize)(\"allowNegativeResizes\", true)(\"dropData\", ɵngcc0.ɵɵpureFunction2(44, _c19, timeEvent_r978.event, ctx_r976.calendarId))(\"dragAxis\", ɵngcc0.ɵɵpureFunction2(47, _c8, timeEvent_r978.event.draggable && ctx_r976.timeEventResizes.size === 0, timeEvent_r978.event.draggable && ctx_r976.timeEventResizes.size === 0))(\"dragSnapGrid\", ctx_r976.snapDraggedEvents ? ɵngcc0.ɵɵpureFunction2(50, _c8, ctx_r976.dayColumnWidth, ctx_r976.eventSnapSize || ctx_r976.hourSegmentHeight) : ɵngcc0.ɵɵpureFunction0(53, _c2))(\"touchStartLongPress\", ɵngcc0.ɵɵpureFunction0(54, _c9))(\"ghostDragEnabled\", !ctx_r976.snapDraggedEvents)(\"validateDrag\", ctx_r976.validateDrag);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", (timeEvent_r978.event == null ? null : timeEvent_r978.event.resizable == null ? null : timeEvent_r978.event.resizable.beforeStart) && !timeEvent_r978.startsBeforeDay);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"locale\", ctx_r976.locale)(\"weekEvent\", timeEvent_r978)(\"tooltipPlacement\", ctx_r976.tooltipPlacement)(\"tooltipTemplate\", ctx_r976.tooltipTemplate)(\"tooltipAppendToBody\", ctx_r976.tooltipAppendToBody)(\"tooltipDisabled\", ctx_r976.dragActive || ctx_r976.timeEventResizes.size > 0)(\"tooltipDelay\", ctx_r976.tooltipDelay)(\"customTemplate\", ctx_r976.eventTemplate)(\"eventTitleTemplate\", ctx_r976.eventTitleTemplate)(\"eventActionsTemplate\", ctx_r976.eventActionsTemplate)(\"column\", column_r975)(\"daysInWeek\", ctx_r976.daysInWeek);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", (timeEvent_r978.event == null ? null : timeEvent_r978.event.resizable == null ? null : timeEvent_r978.event.resizable.afterEnd) && !timeEvent_r978.endsAfterDay);\r\n} }\r\nfunction CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r996 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"mwl-calendar-week-view-hour-segment\", 36);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r996); var segment_r994 = ctx.$implicit; var ctx_r995 = ɵngcc0.ɵɵnextContext(3); return ctx_r995.hourSegmentClicked.emit({ date: segment_r994.date, sourceEvent: $event }); })(\"drop\", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_drop_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r996); var segment_r994 = ctx.$implicit; var ctx_r997 = ɵngcc0.ɵɵnextContext(3); return ctx_r997.eventDropped($event, segment_r994.date, false); })(\"dragEnter\", function CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template_mwl_calendar_week_view_hour_segment_dragEnter_0_listener() { ɵngcc0.ɵɵrestoreView(_r996); var segment_r994 = ctx.$implicit; var ctx_r998 = ɵngcc0.ɵɵnextContext(3); return ctx_r998.dateDragEnter(segment_r994.date); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var segment_r994 = ctx.$implicit;\r\n var ctx_r993 = ɵngcc0.ɵɵnextContext(3);\r\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r993.hourSegmentHeight, \"px\");\r\n ɵngcc0.ɵɵproperty(\"segment\", segment_r994)(\"segmentHeight\", ctx_r993.hourSegmentHeight)(\"locale\", ctx_r993.locale)(\"customTemplate\", ctx_r993.hourSegmentTemplate)(\"daysInWeek\", ctx_r993.daysInWeek)(\"clickListenerDisabled\", ctx_r993.hourSegmentClicked.observers.length === 0)(\"dragOverClass\", !ctx_r993.dragActive || !ctx_r993.snapDraggedEvents ? \"cal-drag-over\" : null)(\"isTimeLabel\", ctx_r993.daysInWeek === 1);\r\n} }\r\nfunction CalendarWeekViewComponent_div_7_div_4_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 26);\r\n ɵngcc0.ɵɵtemplate(1, CalendarWeekViewComponent_div_7_div_4_mwl_calendar_week_view_hour_segment_1_Template, 1, 10, \"mwl-calendar-week-view-hour-segment\", 35);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var hour_r991 = ctx.$implicit;\r\n var odd_r992 = ctx.odd;\r\n var ctx_r977 = ɵngcc0.ɵɵnextContext(2);\r\n ɵngcc0.ɵɵclassProp(\"cal-hour-odd\", odd_r992);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", hour_r991.segments)(\"ngForTrackBy\", ctx_r977.trackByHourSegment);\r\n} }\r\nfunction CalendarWeekViewComponent_div_7_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 29);\r\n ɵngcc0.ɵɵelement(1, \"mwl-calendar-week-view-current-time-marker\", 30);\r\n ɵngcc0.ɵɵelementStart(2, \"div\", 31);\r\n ɵngcc0.ɵɵtemplate(3, CalendarWeekViewComponent_div_7_div_3_Template, 5, 55, \"div\", 32);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(4, CalendarWeekViewComponent_div_7_div_4_Template, 2, 4, \"div\", 25);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var column_r975 = ctx.$implicit;\r\n var ctx_r944 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"columnDate\", column_r975.date)(\"dayStartHour\", ctx_r944.dayStartHour)(\"dayStartMinute\", ctx_r944.dayStartMinute)(\"dayEndHour\", ctx_r944.dayEndHour)(\"dayEndMinute\", ctx_r944.dayEndMinute)(\"hourSegments\", ctx_r944.hourSegments)(\"hourSegmentHeight\", ctx_r944.hourSegmentHeight)(\"customTemplate\", ctx_r944.currentTimeMarkerTemplate);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", column_r975.events)(\"ngForTrackBy\", ctx_r944.trackByWeekTimeEvent);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", column_r975.hours)(\"ngForTrackBy\", ctx_r944.trackByHour);\r\n} }\r\nfunction CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r1011 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r1011); var day_r1009 = ctx.$implicit; var dayHeaderClicked_r1004 = ɵngcc0.ɵɵnextContext().dayHeaderClicked; return dayHeaderClicked_r1004.emit({ day: day_r1009, sourceEvent: $event }); })(\"drop\", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_drop_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r1011); var day_r1009 = ctx.$implicit; var eventDropped_r1005 = ɵngcc0.ɵɵnextContext().eventDropped; return eventDropped_r1005.emit({ event: $event.dropData.event, newStart: day_r1009.date }); })(\"dragEnter\", function CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template_div_dragEnter_0_listener() { ɵngcc0.ɵɵrestoreView(_r1011); var day_r1009 = ctx.$implicit; var dragEnter_r1007 = ɵngcc0.ɵɵnextContext().dragEnter; return dragEnter_r1007.emit({ date: day_r1009.date }); });\r\n ɵngcc0.ɵɵelementStart(1, \"b\");\r\n ɵngcc0.ɵɵtext(2);\r\n ɵngcc0.ɵɵpipe(3, \"calendarDate\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelement(4, \"br\");\r\n ɵngcc0.ɵɵelementStart(5, \"span\");\r\n ɵngcc0.ɵɵtext(6);\r\n ɵngcc0.ɵɵpipe(7, \"calendarDate\");\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var day_r1009 = ctx.$implicit;\r\n var locale_r1003 = ɵngcc0.ɵɵnextContext().locale;\r\n ɵngcc0.ɵɵclassProp(\"cal-past\", day_r1009.isPast)(\"cal-today\", day_r1009.isToday)(\"cal-future\", day_r1009.isFuture)(\"cal-weekend\", day_r1009.isWeekend);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", day_r1009.cssClass);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind3(3, 11, day_r1009.date, \"weekViewColumnHeader\", locale_r1003));\r\n ɵngcc0.ɵɵadvance(4);\r\n ɵngcc0.ɵɵtextInterpolate(ɵngcc0.ɵɵpipeBind3(7, 15, day_r1009.date, \"weekViewColumnSubHeader\", locale_r1003));\r\n} }\r\nfunction CalendarWeekViewHeaderComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵtemplate(1, CalendarWeekViewHeaderComponent_ng_template_0_div_1_Template, 8, 19, \"div\", 3);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var days_r1002 = ctx.days;\r\n var trackByWeekDayHeaderDate_r1006 = ctx.trackByWeekDayHeaderDate;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", days_r1002)(\"ngForTrackBy\", trackByWeekDayHeaderDate_r1006);\r\n} }\r\nfunction CalendarWeekViewHeaderComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c24 = function (a0, a1, a2, a3, a4, a5) { return { days: a0, locale: a1, dayHeaderClicked: a2, eventDropped: a3, dragEnter: a4, trackByWeekDayHeaderDate: a5 }; };\r\nvar _c25 = function (a0, a1) { return { backgroundColor: a0, borderColor: a1 }; };\r\nfunction CalendarWeekViewEventComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n var _r1031 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵlistener(\"mwlClick\", function CalendarWeekViewEventComponent_ng_template_0_Template_div_mwlClick_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r1031); var eventClicked_r1023 = ctx.eventClicked; return eventClicked_r1023.emit({ sourceEvent: $event }); })(\"mwlKeydownEnter\", function CalendarWeekViewEventComponent_ng_template_0_Template_div_mwlKeydownEnter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r1031); var eventClicked_r1023 = ctx.eventClicked; return eventClicked_r1023.emit({ sourceEvent: $event }); });\r\n ɵngcc0.ɵɵpipe(1, \"calendarEventTitle\");\r\n ɵngcc0.ɵɵpipe(2, \"calendarA11y\");\r\n ɵngcc0.ɵɵelement(3, \"mwl-calendar-event-actions\", 3);\r\n ɵngcc0.ɵɵtext(4, \" \");\r\n ɵngcc0.ɵɵelement(5, \"mwl-calendar-event-title\", 4);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var weekEvent_r1021 = ctx.weekEvent;\r\n var tooltipPlacement_r1022 = ctx.tooltipPlacement;\r\n var tooltipTemplate_r1024 = ctx.tooltipTemplate;\r\n var tooltipAppendToBody_r1025 = ctx.tooltipAppendToBody;\r\n var tooltipDisabled_r1026 = ctx.tooltipDisabled;\r\n var tooltipDelay_r1027 = ctx.tooltipDelay;\r\n var daysInWeek_r1029 = ctx.daysInWeek;\r\n var ctx_r1019 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵproperty(\"ngStyle\", ɵngcc0.ɵɵpureFunction2(20, _c25, weekEvent_r1021.event.color == null ? null : weekEvent_r1021.event.color.secondary, weekEvent_r1021.event.color == null ? null : weekEvent_r1021.event.color.primary))(\"mwlCalendarTooltip\", !tooltipDisabled_r1026 ? ɵngcc0.ɵɵpipeBind3(1, 13, weekEvent_r1021.event.title, daysInWeek_r1029 === 1 ? \"dayTooltip\" : \"weekTooltip\", weekEvent_r1021.event) : \"\")(\"tooltipPlacement\", tooltipPlacement_r1022)(\"tooltipEvent\", weekEvent_r1021.event)(\"tooltipTemplate\", tooltipTemplate_r1024)(\"tooltipAppendToBody\", tooltipAppendToBody_r1025)(\"tooltipDelay\", tooltipDelay_r1027);\r\n ɵngcc0.ɵɵattribute(\"aria-label\", ɵngcc0.ɵɵpipeBind2(2, 17, ɵngcc0.ɵɵpureFunction2(23, _c13, weekEvent_r1021.event, ctx_r1019.locale), \"eventDescription\"));\r\n ɵngcc0.ɵɵadvance(3);\r\n ɵngcc0.ɵɵproperty(\"event\", weekEvent_r1021.event)(\"customTemplate\", ctx_r1019.eventActionsTemplate);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"event\", weekEvent_r1021.event)(\"customTemplate\", ctx_r1019.eventTitleTemplate)(\"view\", daysInWeek_r1029 === 1 ? \"day\" : \"week\");\r\n} }\r\nfunction CalendarWeekViewEventComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c26 = function (a0, a1, a2, a3, a4, a5, a6, a7, a8) { return { weekEvent: a0, tooltipPlacement: a1, eventClicked: a2, tooltipTemplate: a3, tooltipAppendToBody: a4, tooltipDisabled: a5, tooltipDelay: a6, column: a7, daysInWeek: a8 }; };\r\nfunction CalendarWeekViewHourSegmentComponent_ng_template_0_div_2_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 4);\r\n ɵngcc0.ɵɵtext(1);\r\n ɵngcc0.ɵɵpipe(2, \"calendarDate\");\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var ctx_r1042 = ɵngcc0.ɵɵnextContext();\r\n var segment_r1036 = ctx_r1042.segment;\r\n var daysInWeek_r1040 = ctx_r1042.daysInWeek;\r\n var locale_r1037 = ctx_r1042.locale;\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵtextInterpolate1(\" \", ɵngcc0.ɵɵpipeBind3(2, 1, segment_r1036.displayDate, daysInWeek_r1040 === 1 ? \"dayViewHour\" : \"weekViewHour\", locale_r1037), \" \");\r\n} }\r\nfunction CalendarWeekViewHourSegmentComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\r\n ɵngcc0.ɵɵpipe(1, \"calendarA11y\");\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewHourSegmentComponent_ng_template_0_div_2_Template, 3, 5, \"div\", 3);\r\n ɵngcc0.ɵɵelementEnd();\r\n} if (rf & 2) {\r\n var segment_r1036 = ctx.segment;\r\n var segmentHeight_r1038 = ctx.segmentHeight;\r\n var isTimeLabel_r1039 = ctx.isTimeLabel;\r\n var daysInWeek_r1040 = ctx.daysInWeek;\r\n ɵngcc0.ɵɵstyleProp(\"height\", segmentHeight_r1038, \"px\");\r\n ɵngcc0.ɵɵclassProp(\"cal-hour-start\", segment_r1036.isStart)(\"cal-after-hour-start\", !segment_r1036.isStart);\r\n ɵngcc0.ɵɵproperty(\"ngClass\", segment_r1036.cssClass);\r\n ɵngcc0.ɵɵattribute(\"aria-hidden\", ɵngcc0.ɵɵpipeBind2(1, 9, ɵngcc0.ɵɵpureFunction0(12, _c2), daysInWeek_r1040 === 1 ? \"hideDayHourSegment\" : \"hideWeekHourSegment\"));\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", isTimeLabel_r1039);\r\n} }\r\nfunction CalendarWeekViewHourSegmentComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c27 = function (a0, a1, a2, a3, a4) { return { segment: a0, locale: a1, segmentHeight: a2, isTimeLabel: a3, daysInWeek: a4 }; };\r\nfunction CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 3);\r\n} if (rf & 2) {\r\n var topPx_r1052 = ɵngcc0.ɵɵnextContext().topPx;\r\n ɵngcc0.ɵɵstyleProp(\"top\", topPx_r1052, \"px\");\r\n} }\r\nfunction CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_div_0_Template, 1, 2, \"div\", 2);\r\n} if (rf & 2) {\r\n var isVisible_r1051 = ctx.isVisible;\r\n ɵngcc0.ɵɵproperty(\"ngIf\", isVisible_r1051);\r\n} }\r\nfunction CalendarWeekViewCurrentTimeMarkerComponent_ng_template_2_Template(rf, ctx) { }\r\nvar _c28 = function (a0, a1, a2, a3, a4, a5, a6) { return { columnDate: a0, dayStartHour: a1, dayStartMinute: a2, dayEndHour: a3, dayEndMinute: a4, isVisible: a5, topPx: a6 }; };\r\nexport { DAYS_OF_WEEK } from 'calendar-utils';\r\nimport { DragAndDropModule } from 'angular-draggable-droppable';\r\nimport { trigger, state, style, transition, animate } from '@angular/animations';\r\nimport { ResizableModule } from 'angular-resizable-element';\r\n\r\nvar CalendarEventActionsComponent = /** @class */ (function () {\r\n function CalendarEventActionsComponent() {\r\n this.trackByActionId = function (index, action) {\r\n return action.id ? action.id : action;\r\n };\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarEventActionsComponent.prototype, \"event\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarEventActionsComponent.prototype, \"customTemplate\", void 0);\r\nCalendarEventActionsComponent.ɵfac = function CalendarEventActionsComponent_Factory(t) { return new (t || CalendarEventActionsComponent)(); };\r\nCalendarEventActionsComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarEventActionsComponent, selectors: [[\"mwl-calendar-event-actions\"]], inputs: { event: \"event\", customTemplate: \"customTemplate\" }, decls: 3, vars: 5, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"cal-event-actions\", 4, \"ngIf\"], [1, \"cal-event-actions\"], [\"class\", \"cal-event-action\", \"href\", \"javascript:;\", \"tabindex\", \"0\", \"role\", \"button\", 3, \"ngClass\", \"innerHtml\", \"mwlClick\", \"mwlKeydownEnter\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"href\", \"javascript:;\", \"tabindex\", \"0\", \"role\", \"button\", 1, \"cal-event-action\", 3, \"ngClass\", \"innerHtml\", \"mwlClick\", \"mwlKeydownEnter\"]], template: function CalendarEventActionsComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarEventActionsComponent_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarEventActionsComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r844 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r844)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c1, ctx.event, ctx.trackByActionId));\r\n } }, directives: function () { return [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc1.NgClass, ClickDirective,\r\n KeydownEnterDirective]; }, pipes: function () { return [CalendarA11yPipe]; }, encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarEventActionsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-event-actions',\r\n template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { event: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarEventActionsComponent;\r\n}());\r\n\r\nvar CalendarEventTitleComponent = /** @class */ (function () {\r\n function CalendarEventTitleComponent() {\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarEventTitleComponent.prototype, \"event\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarEventTitleComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarEventTitleComponent.prototype, \"view\", void 0);\r\nCalendarEventTitleComponent.ɵfac = function CalendarEventTitleComponent_Factory(t) { return new (t || CalendarEventTitleComponent)(); };\r\nCalendarEventTitleComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarEventTitleComponent, selectors: [[\"mwl-calendar-event-title\"]], inputs: { event: \"event\", customTemplate: \"customTemplate\", view: \"view\" }, decls: 3, vars: 5, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"cal-event-title\", 3, \"innerHTML\"]], template: function CalendarEventTitleComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarEventTitleComponent_ng_template_0_Template, 3, 10, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarEventTitleComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r858 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r858)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(2, _c3, ctx.event, ctx.view));\r\n } }, directives: function () { return [ɵngcc1.NgTemplateOutlet]; }, pipes: function () { return [CalendarEventTitlePipe,\r\n CalendarA11yPipe]; }, encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarEventTitleComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-event-title',\r\n template: \"\\n \\n \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { event: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }], view: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarEventTitleComponent;\r\n}());\r\n\r\nvar CalendarTooltipWindowComponent = /** @class */ (function () {\r\n function CalendarTooltipWindowComponent() {\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarTooltipWindowComponent.prototype, \"contents\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarTooltipWindowComponent.prototype, \"placement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarTooltipWindowComponent.prototype, \"event\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarTooltipWindowComponent.prototype, \"customTemplate\", void 0);\r\nCalendarTooltipWindowComponent.ɵfac = function CalendarTooltipWindowComponent_Factory(t) { return new (t || CalendarTooltipWindowComponent)(); };\r\nCalendarTooltipWindowComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarTooltipWindowComponent, selectors: [[\"mwl-calendar-tooltip-window\"]], inputs: { contents: \"contents\", placement: \"placement\", event: \"event\", customTemplate: \"customTemplate\" }, decls: 3, vars: 6, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"cal-tooltip\", 3, \"ngClass\"], [1, \"cal-tooltip-arrow\"], [1, \"cal-tooltip-inner\", 3, \"innerHtml\"]], template: function CalendarTooltipWindowComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarTooltipWindowComponent_ng_template_0_Template, 3, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarTooltipWindowComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r863 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r863)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(2, _c4, ctx.contents, ctx.placement, ctx.event));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarTooltipWindowComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-tooltip-window',\r\n template: \"\\n \\n
      \\n
      \\n
      \\n
      \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { contents: [{\r\n type: Input\r\n }], placement: [{\r\n type: Input\r\n }], event: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarTooltipWindowComponent;\r\n}());\r\nvar CalendarTooltipDirective = /** @class */ (function () {\r\n function CalendarTooltipDirective(elementRef, injector, renderer, componentFactoryResolver, viewContainerRef, document //tslint:disable-line\r\n ) {\r\n this.elementRef = elementRef;\r\n this.injector = injector;\r\n this.renderer = renderer;\r\n this.viewContainerRef = viewContainerRef;\r\n this.document = document;\r\n this.placement = 'auto'; // tslint:disable-line no-input-rename\r\n this.delay = null; // tslint:disable-line no-input-rename\r\n this.cancelTooltipDelay$ = new Subject();\r\n this.tooltipFactory = componentFactoryResolver.resolveComponentFactory(CalendarTooltipWindowComponent);\r\n }\r\n CalendarTooltipDirective.prototype.ngOnChanges = function (changes) {\r\n if (this.tooltipRef &&\r\n (changes.contents || changes.customTemplate || changes.event)) {\r\n this.tooltipRef.instance.contents = this.contents;\r\n this.tooltipRef.instance.customTemplate = this.customTemplate;\r\n this.tooltipRef.instance.event = this.event;\r\n this.tooltipRef.changeDetectorRef.markForCheck();\r\n if (!this.contents) {\r\n this.hide();\r\n }\r\n }\r\n };\r\n CalendarTooltipDirective.prototype.ngOnDestroy = function () {\r\n this.hide();\r\n };\r\n CalendarTooltipDirective.prototype.onMouseOver = function () {\r\n var _this = this;\r\n var delay$ = this.delay === null ? of('now') : timer(this.delay);\r\n delay$.pipe(takeUntil(this.cancelTooltipDelay$)).subscribe(function () {\r\n _this.show();\r\n });\r\n };\r\n CalendarTooltipDirective.prototype.onMouseOut = function () {\r\n this.hide();\r\n };\r\n CalendarTooltipDirective.prototype.show = function () {\r\n var _this = this;\r\n if (!this.tooltipRef && this.contents) {\r\n this.tooltipRef = this.viewContainerRef.createComponent(this.tooltipFactory, 0, this.injector, []);\r\n this.tooltipRef.instance.contents = this.contents;\r\n this.tooltipRef.instance.customTemplate = this.customTemplate;\r\n this.tooltipRef.instance.event = this.event;\r\n if (this.appendToBody) {\r\n this.document.body.appendChild(this.tooltipRef.location.nativeElement);\r\n }\r\n requestAnimationFrame(function () {\r\n _this.positionTooltip();\r\n });\r\n }\r\n };\r\n CalendarTooltipDirective.prototype.hide = function () {\r\n if (this.tooltipRef) {\r\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView));\r\n this.tooltipRef = null;\r\n }\r\n this.cancelTooltipDelay$.next();\r\n };\r\n CalendarTooltipDirective.prototype.positionTooltip = function (previousPositions) {\r\n if (previousPositions === void 0) { previousPositions = []; }\r\n if (this.tooltipRef) {\r\n this.tooltipRef.changeDetectorRef.detectChanges();\r\n this.tooltipRef.instance.placement = positionElements(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement.children[0], this.placement, this.appendToBody);\r\n // keep re-positioning the tooltip until the arrow position doesn't make a difference\r\n if (previousPositions.indexOf(this.tooltipRef.instance.placement) === -1) {\r\n this.positionTooltip(__spread(previousPositions, [\r\n this.tooltipRef.instance.placement,\r\n ]));\r\n }\r\n }\r\n };\r\n CalendarTooltipDirective.ctorParameters = function () { return [\r\n { type: ElementRef },\r\n { type: Injector },\r\n { type: Renderer2 },\r\n { type: ComponentFactoryResolver },\r\n { type: ViewContainerRef },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n ]; };\r\n __decorate([\r\n Input('mwlCalendarTooltip')\r\n ], CalendarTooltipDirective.prototype, \"contents\", void 0);\r\n __decorate([\r\n Input('tooltipPlacement')\r\n ], CalendarTooltipDirective.prototype, \"placement\", void 0);\r\n __decorate([\r\n Input('tooltipTemplate')\r\n ], CalendarTooltipDirective.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Input('tooltipEvent')\r\n ], CalendarTooltipDirective.prototype, \"event\", void 0);\r\n __decorate([\r\n Input('tooltipAppendToBody')\r\n ], CalendarTooltipDirective.prototype, \"appendToBody\", void 0);\r\n __decorate([\r\n Input('tooltipDelay')\r\n ], CalendarTooltipDirective.prototype, \"delay\", void 0);\r\n __decorate([\r\n HostListener('mouseenter')\r\n ], CalendarTooltipDirective.prototype, \"onMouseOver\", null);\r\n __decorate([\r\n HostListener('mouseleave')\r\n ], CalendarTooltipDirective.prototype, \"onMouseOut\", null);\r\n CalendarTooltipDirective = __decorate([ __param(5, Inject(DOCUMENT))\r\n ], CalendarTooltipDirective);\r\nCalendarTooltipDirective.ɵfac = function CalendarTooltipDirective_Factory(t) { return new (t || CalendarTooltipDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\r\nCalendarTooltipDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CalendarTooltipDirective, selectors: [[\"\", \"mwlCalendarTooltip\", \"\"]], hostBindings: function CalendarTooltipDirective_HostBindings(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵlistener(\"mouseenter\", function CalendarTooltipDirective_mouseenter_HostBindingHandler() { return ctx.onMouseOver(); })(\"mouseleave\", function CalendarTooltipDirective_mouseleave_HostBindingHandler() { return ctx.onMouseOut(); });\r\n } }, inputs: { placement: [\"tooltipPlacement\", \"placement\"], delay: [\"tooltipDelay\", \"delay\"], contents: [\"mwlCalendarTooltip\", \"contents\"], customTemplate: [\"tooltipTemplate\", \"customTemplate\"], event: [\"tooltipEvent\", \"event\"], appendToBody: [\"tooltipAppendToBody\", \"appendToBody\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarTooltipDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlCalendarTooltip]'\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Injector }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }]; }, { placement: [{\r\n type: Input,\r\n args: ['tooltipPlacement']\r\n }], delay: [{\r\n type: Input,\r\n args: ['tooltipDelay']\r\n }], onMouseOver: [{\r\n type: HostListener,\r\n args: ['mouseenter']\r\n }], onMouseOut: [{\r\n type: HostListener,\r\n args: ['mouseleave']\r\n }], contents: [{\r\n type: Input,\r\n args: ['mwlCalendarTooltip']\r\n }], customTemplate: [{\r\n type: Input,\r\n args: ['tooltipTemplate']\r\n }], event: [{\r\n type: Input,\r\n args: ['tooltipEvent']\r\n }], appendToBody: [{\r\n type: Input,\r\n args: ['tooltipAppendToBody']\r\n }] }); })();\r\n return CalendarTooltipDirective;\r\n}());\r\n\r\nvar DateAdapter = /** @class */ (function () {\r\n function DateAdapter() {\r\n }\r\n return DateAdapter;\r\n}());\r\n\r\nvar CalendarView;\r\n(function (CalendarView) {\r\n CalendarView[\"Month\"] = \"month\";\r\n CalendarView[\"Week\"] = \"week\";\r\n CalendarView[\"Day\"] = \"day\";\r\n})(CalendarView || (CalendarView = {}));\r\n\r\nvar validateEvents = function (events) {\r\n var warn = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return console.warn.apply(console, __spread(['angular-calendar'], args));\r\n };\r\n return validateEvents$1(events, warn);\r\n};\r\nfunction isInside(outer, inner) {\r\n return (Math.floor(outer.left) <= Math.ceil(inner.left) &&\r\n Math.floor(inner.left) <= Math.ceil(outer.right) &&\r\n Math.floor(outer.left) <= Math.ceil(inner.right) &&\r\n Math.floor(inner.right) <= Math.ceil(outer.right) &&\r\n Math.floor(outer.top) <= Math.ceil(inner.top) &&\r\n Math.floor(inner.top) <= Math.ceil(outer.bottom) &&\r\n Math.floor(outer.top) <= Math.ceil(inner.bottom) &&\r\n Math.floor(inner.bottom) <= Math.ceil(outer.bottom));\r\n}\r\nfunction roundToNearest(amount, precision) {\r\n return Math.round(amount / precision) * precision;\r\n}\r\nvar trackByEventId = function (index, event) {\r\n return event.id ? event.id : event;\r\n};\r\nvar trackByWeekDayHeaderDate = function (index, day) {\r\n return day.date.toISOString();\r\n};\r\nvar trackByHourSegment = function (index, segment) { return segment.date.toISOString(); };\r\nvar trackByHour = function (index, hour) {\r\n return hour.segments[0].date.toISOString();\r\n};\r\nvar trackByWeekAllDayEvent = function (index, weekEvent) { return (weekEvent.event.id ? weekEvent.event.id : weekEvent.event); };\r\nvar trackByWeekTimeEvent = function (index, weekEvent) { return (weekEvent.event.id ? weekEvent.event.id : weekEvent.event); };\r\nvar MINUTES_IN_HOUR = 60;\r\nfunction getPixelAmountInMinutes(hourSegments, hourSegmentHeight) {\r\n return MINUTES_IN_HOUR / (hourSegments * hourSegmentHeight);\r\n}\r\nfunction getMinutesMoved(movedY, hourSegments, hourSegmentHeight, eventSnapSize) {\r\n var draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight);\r\n var pixelAmountInMinutes = getPixelAmountInMinutes(hourSegments, hourSegmentHeight);\r\n return draggedInPixelsSnapSize * pixelAmountInMinutes;\r\n}\r\nfunction getMinimumEventHeightInMinutes(hourSegments, hourSegmentHeight) {\r\n return (getPixelAmountInMinutes(hourSegments, hourSegmentHeight) * hourSegmentHeight);\r\n}\r\nfunction getDefaultEventEnd(dateAdapter, event, minimumMinutes) {\r\n if (event.end) {\r\n return event.end;\r\n }\r\n else {\r\n return dateAdapter.addMinutes(event.start, minimumMinutes);\r\n }\r\n}\r\nfunction addDaysWithExclusions(dateAdapter, date, days, excluded) {\r\n var daysCounter = 0;\r\n var daysToAdd = 0;\r\n var changeDays = days < 0 ? dateAdapter.subDays : dateAdapter.addDays;\r\n var result = date;\r\n while (daysToAdd <= Math.abs(days)) {\r\n result = changeDays(date, daysCounter);\r\n var day = dateAdapter.getDay(result);\r\n if (excluded.indexOf(day) === -1) {\r\n daysToAdd++;\r\n }\r\n daysCounter++;\r\n }\r\n return result;\r\n}\r\nfunction isDraggedWithinPeriod(newStart, newEnd, period) {\r\n var end = newEnd || newStart;\r\n return ((period.start <= newStart && newStart <= period.end) ||\r\n (period.start <= end && end <= period.end));\r\n}\r\nfunction shouldFireDroppedEvent(dropEvent, date, allDay, calendarId) {\r\n return (dropEvent.dropData &&\r\n dropEvent.dropData.event &&\r\n (dropEvent.dropData.calendarId !== calendarId ||\r\n (dropEvent.dropData.event.allDay && !allDay) ||\r\n (!dropEvent.dropData.event.allDay && allDay)));\r\n}\r\nfunction getWeekViewPeriod(dateAdapter, viewDate, weekStartsOn, excluded, daysInWeek) {\r\n if (excluded === void 0) { excluded = []; }\r\n var viewStart = daysInWeek\r\n ? dateAdapter.startOfDay(viewDate)\r\n : dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn });\r\n var endOfWeek = dateAdapter.endOfWeek(viewDate, { weekStartsOn: weekStartsOn });\r\n while (excluded.indexOf(dateAdapter.getDay(viewStart)) > -1 &&\r\n viewStart < endOfWeek) {\r\n viewStart = dateAdapter.addDays(viewStart, 1);\r\n }\r\n if (daysInWeek) {\r\n var viewEnd = dateAdapter.endOfDay(addDaysWithExclusions(dateAdapter, viewStart, daysInWeek - 1, excluded));\r\n return { viewStart: viewStart, viewEnd: viewEnd };\r\n }\r\n else {\r\n var viewEnd = endOfWeek;\r\n while (excluded.indexOf(dateAdapter.getDay(viewEnd)) > -1 &&\r\n viewEnd > viewStart) {\r\n viewEnd = dateAdapter.subDays(viewEnd, 1);\r\n }\r\n return { viewStart: viewStart, viewEnd: viewEnd };\r\n }\r\n}\r\nfunction isWithinThreshold(_a) {\r\n var x = _a.x, y = _a.y;\r\n var DRAG_THRESHOLD = 1;\r\n return Math.abs(x) > DRAG_THRESHOLD || Math.abs(y) > DRAG_THRESHOLD;\r\n}\r\n\r\n/**\r\n * Change the view date to the previous view. For example:\r\n *\r\n * ```typescript\r\n * \r\n * Previous\r\n * \r\n * ```\r\n */\r\nvar CalendarPreviousViewDirective = /** @class */ (function () {\r\n function CalendarPreviousViewDirective(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n /**\r\n * Days to skip when going back by 1 day\r\n */\r\n this.excludeDays = [];\r\n /**\r\n * Called when the view date is changed\r\n */\r\n this.viewDateChange = new EventEmitter();\r\n }\r\n /**\r\n * @hidden\r\n */\r\n CalendarPreviousViewDirective.prototype.onClick = function () {\r\n var subFn = {\r\n day: this.dateAdapter.subDays,\r\n week: this.dateAdapter.subWeeks,\r\n month: this.dateAdapter.subMonths,\r\n }[this.view];\r\n if (this.view === CalendarView.Day) {\r\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -1, this.excludeDays));\r\n }\r\n else if (this.view === CalendarView.Week && this.daysInWeek) {\r\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -this.daysInWeek, this.excludeDays));\r\n }\r\n else {\r\n this.viewDateChange.emit(subFn(this.viewDate, 1));\r\n }\r\n };\r\n CalendarPreviousViewDirective.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarPreviousViewDirective.prototype, \"view\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarPreviousViewDirective.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarPreviousViewDirective.prototype, \"excludeDays\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarPreviousViewDirective.prototype, \"daysInWeek\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarPreviousViewDirective.prototype, \"viewDateChange\", void 0);\r\n __decorate([\r\n HostListener('click')\r\n ], CalendarPreviousViewDirective.prototype, \"onClick\", null);\r\nCalendarPreviousViewDirective.ɵfac = function CalendarPreviousViewDirective_Factory(t) { return new (t || CalendarPreviousViewDirective)(ɵngcc0.ɵɵdirectiveInject(DateAdapter)); };\r\nCalendarPreviousViewDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CalendarPreviousViewDirective, selectors: [[\"\", \"mwlCalendarPreviousView\", \"\"]], hostBindings: function CalendarPreviousViewDirective_HostBindings(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵlistener(\"click\", function CalendarPreviousViewDirective_click_HostBindingHandler() { return ctx.onClick(); });\r\n } }, inputs: { excludeDays: \"excludeDays\", view: \"view\", viewDate: \"viewDate\", daysInWeek: \"daysInWeek\" }, outputs: { viewDateChange: \"viewDateChange\" } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarPreviousViewDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlCalendarPreviousView]'\r\n }]\r\n }], function () { return [{ type: DateAdapter }]; }, { excludeDays: [{\r\n type: Input\r\n }], viewDateChange: [{\r\n type: Output\r\n }], onClick: [{\r\n type: HostListener,\r\n args: ['click']\r\n }], view: [{\r\n type: Input\r\n }], viewDate: [{\r\n type: Input\r\n }], daysInWeek: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarPreviousViewDirective;\r\n}());\r\n\r\n/**\r\n * Change the view date to the next view. For example:\r\n *\r\n * ```typescript\r\n * \r\n * Next\r\n * \r\n * ```\r\n */\r\nvar CalendarNextViewDirective = /** @class */ (function () {\r\n function CalendarNextViewDirective(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n /**\r\n * Days to skip when going forward by 1 day\r\n */\r\n this.excludeDays = [];\r\n /**\r\n * Called when the view date is changed\r\n */\r\n this.viewDateChange = new EventEmitter();\r\n }\r\n /**\r\n * @hidden\r\n */\r\n CalendarNextViewDirective.prototype.onClick = function () {\r\n var addFn = {\r\n day: this.dateAdapter.addDays,\r\n week: this.dateAdapter.addWeeks,\r\n month: this.dateAdapter.addMonths,\r\n }[this.view];\r\n if (this.view === CalendarView.Day) {\r\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, 1, this.excludeDays));\r\n }\r\n else if (this.view === CalendarView.Week && this.daysInWeek) {\r\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, this.daysInWeek, this.excludeDays));\r\n }\r\n else {\r\n this.viewDateChange.emit(addFn(this.viewDate, 1));\r\n }\r\n };\r\n CalendarNextViewDirective.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarNextViewDirective.prototype, \"view\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarNextViewDirective.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarNextViewDirective.prototype, \"excludeDays\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarNextViewDirective.prototype, \"daysInWeek\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarNextViewDirective.prototype, \"viewDateChange\", void 0);\r\n __decorate([\r\n HostListener('click')\r\n ], CalendarNextViewDirective.prototype, \"onClick\", null);\r\nCalendarNextViewDirective.ɵfac = function CalendarNextViewDirective_Factory(t) { return new (t || CalendarNextViewDirective)(ɵngcc0.ɵɵdirectiveInject(DateAdapter)); };\r\nCalendarNextViewDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CalendarNextViewDirective, selectors: [[\"\", \"mwlCalendarNextView\", \"\"]], hostBindings: function CalendarNextViewDirective_HostBindings(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵlistener(\"click\", function CalendarNextViewDirective_click_HostBindingHandler() { return ctx.onClick(); });\r\n } }, inputs: { excludeDays: \"excludeDays\", view: \"view\", viewDate: \"viewDate\", daysInWeek: \"daysInWeek\" }, outputs: { viewDateChange: \"viewDateChange\" } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarNextViewDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlCalendarNextView]'\r\n }]\r\n }], function () { return [{ type: DateAdapter }]; }, { excludeDays: [{\r\n type: Input\r\n }], viewDateChange: [{\r\n type: Output\r\n }], onClick: [{\r\n type: HostListener,\r\n args: ['click']\r\n }], view: [{\r\n type: Input\r\n }], viewDate: [{\r\n type: Input\r\n }], daysInWeek: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarNextViewDirective;\r\n}());\r\n\r\n/**\r\n * Change the view date to the current day. For example:\r\n *\r\n * ```typescript\r\n * \r\n * Today\r\n * \r\n * ```\r\n */\r\nvar CalendarTodayDirective = /** @class */ (function () {\r\n function CalendarTodayDirective(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n /**\r\n * Called when the view date is changed\r\n */\r\n this.viewDateChange = new EventEmitter();\r\n }\r\n /**\r\n * @hidden\r\n */\r\n CalendarTodayDirective.prototype.onClick = function () {\r\n this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date()));\r\n };\r\n CalendarTodayDirective.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarTodayDirective.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarTodayDirective.prototype, \"viewDateChange\", void 0);\r\n __decorate([\r\n HostListener('click')\r\n ], CalendarTodayDirective.prototype, \"onClick\", null);\r\nCalendarTodayDirective.ɵfac = function CalendarTodayDirective_Factory(t) { return new (t || CalendarTodayDirective)(ɵngcc0.ɵɵdirectiveInject(DateAdapter)); };\r\nCalendarTodayDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CalendarTodayDirective, selectors: [[\"\", \"mwlCalendarToday\", \"\"]], hostBindings: function CalendarTodayDirective_HostBindings(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵlistener(\"click\", function CalendarTodayDirective_click_HostBindingHandler() { return ctx.onClick(); });\r\n } }, inputs: { viewDate: \"viewDate\" }, outputs: { viewDateChange: \"viewDateChange\" } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarTodayDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlCalendarToday]'\r\n }]\r\n }], function () { return [{ type: DateAdapter }]; }, { viewDateChange: [{\r\n type: Output\r\n }], onClick: [{\r\n type: HostListener,\r\n args: ['click']\r\n }], viewDate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarTodayDirective;\r\n}());\r\n\r\n/**\r\n * This will use the angular date pipe to do all date formatting. It is the default date formatter used by the calendar.\r\n */\r\nvar CalendarAngularDateFormatter = /** @class */ (function () {\r\n function CalendarAngularDateFormatter(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n }\r\n /**\r\n * The month view header week day labels\r\n */\r\n CalendarAngularDateFormatter.prototype.monthViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'EEEE', locale);\r\n };\r\n /**\r\n * The month view cell day number\r\n */\r\n CalendarAngularDateFormatter.prototype.monthViewDayNumber = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'd', locale);\r\n };\r\n /**\r\n * The month view title\r\n */\r\n CalendarAngularDateFormatter.prototype.monthViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'LLLL y', locale);\r\n };\r\n /**\r\n * The week view header week day labels\r\n */\r\n CalendarAngularDateFormatter.prototype.weekViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'EEEE', locale);\r\n };\r\n /**\r\n * The week view sub header day and month labels\r\n */\r\n CalendarAngularDateFormatter.prototype.weekViewColumnSubHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'MMM d', locale);\r\n };\r\n /**\r\n * The week view title\r\n */\r\n CalendarAngularDateFormatter.prototype.weekViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale, weekStartsOn = _a.weekStartsOn, excludeDays = _a.excludeDays, daysInWeek = _a.daysInWeek;\r\n var _b = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek), viewStart = _b.viewStart, viewEnd = _b.viewEnd;\r\n var format = function (dateToFormat, showYear) {\r\n return formatDate(dateToFormat, 'MMM d' + (showYear ? ', yyyy' : ''), locale);\r\n };\r\n return format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear()) + \" - \" + format(viewEnd, true);\r\n };\r\n /**\r\n * The time formatting down the left hand side of the week view\r\n */\r\n CalendarAngularDateFormatter.prototype.weekViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'h a', locale);\r\n };\r\n /**\r\n * The time formatting down the left hand side of the day view\r\n */\r\n CalendarAngularDateFormatter.prototype.dayViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'h a', locale);\r\n };\r\n /**\r\n * The day view title\r\n */\r\n CalendarAngularDateFormatter.prototype.dayViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'EEEE, MMMM d, y', locale);\r\n };\r\n CalendarAngularDateFormatter.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\nCalendarAngularDateFormatter.ɵfac = function CalendarAngularDateFormatter_Factory(t) { return new (t || CalendarAngularDateFormatter)(ɵngcc0.ɵɵinject(DateAdapter)); };\r\nCalendarAngularDateFormatter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarAngularDateFormatter, factory: function (t) { return CalendarAngularDateFormatter.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarAngularDateFormatter, [{\r\n type: Injectable\r\n }], function () { return [{ type: DateAdapter }]; }, null); })();\r\n return CalendarAngularDateFormatter;\r\n}());\r\n\r\n/**\r\n * This class is responsible for all formatting of dates. There are 3 implementations available, the `CalendarAngularDateFormatter` (default) which uses the angular date pipe to format dates, the `CalendarNativeDateFormatter` which will use the Intl API to format dates, or there is the `CalendarMomentDateFormatter` which uses moment.\r\n *\r\n * If you wish, you may override any of the defaults via angulars DI. For example:\r\n *\r\n * ```typescript\r\n * import { CalendarDateFormatter, DateFormatterParams } from 'angular-calendar';\r\n * import { formatDate } from '@angular/common';\r\n * import { Injectable } from '@angular/core';\r\n *\r\n * @Injectable()\r\n * class CustomDateFormatter extends CalendarDateFormatter {\r\n *\r\n * public monthViewColumnHeader({date, locale}: DateFormatterParams): string {\r\n * return formatDate(date, 'EEE', locale); // use short week days\r\n * }\r\n *\r\n * }\r\n *\r\n * // in your component that uses the calendar\r\n * providers: [{\r\n * provide: CalendarDateFormatter,\r\n * useClass: CustomDateFormatter\r\n * }]\r\n * ```\r\n */\r\nvar CalendarDateFormatter = /** @class */ (function (_super) {\r\n __extends(CalendarDateFormatter, _super);\r\n function CalendarDateFormatter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\nCalendarDateFormatter.ɵfac = function CalendarDateFormatter_Factory(t) { return ɵCalendarDateFormatter_BaseFactory(t || CalendarDateFormatter); };\r\nCalendarDateFormatter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarDateFormatter, factory: function (t) { return CalendarDateFormatter.ɵfac(t); } });\r\nvar ɵCalendarDateFormatter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(CalendarDateFormatter);\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarDateFormatter, [{\r\n type: Injectable\r\n }], null, null); })();\r\n return CalendarDateFormatter;\r\n}(CalendarAngularDateFormatter));\r\n\r\n/**\r\n * This pipe is primarily for rendering the current view title. Example usage:\r\n * ```typescript\r\n * // where `viewDate` is a `Date` and view is `'month' | 'week' | 'day'`\r\n * {{ viewDate | calendarDate:(view + 'ViewTitle'):'en' }}\r\n * ```\r\n */\r\nvar CalendarDatePipe = /** @class */ (function () {\r\n function CalendarDatePipe(dateFormatter, locale) {\r\n this.dateFormatter = dateFormatter;\r\n this.locale = locale;\r\n }\r\n CalendarDatePipe.prototype.transform = function (date, method, locale, weekStartsOn, excludeDays, daysInWeek) {\r\n if (locale === void 0) { locale = this.locale; }\r\n if (weekStartsOn === void 0) { weekStartsOn = 0; }\r\n if (excludeDays === void 0) { excludeDays = []; }\r\n if (typeof this.dateFormatter[method] === 'undefined') {\r\n var allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarDateFormatter.prototype)).filter(function (iMethod) { return iMethod !== 'constructor'; });\r\n throw new Error(method + \" is not a valid date formatter. Can only be one of \" + allowedMethods.join(', '));\r\n }\r\n return this.dateFormatter[method]({\r\n date: date,\r\n locale: locale,\r\n weekStartsOn: weekStartsOn,\r\n excludeDays: excludeDays,\r\n daysInWeek: daysInWeek,\r\n });\r\n };\r\n CalendarDatePipe.ctorParameters = function () { return [\r\n { type: CalendarDateFormatter },\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n ]; };\r\n CalendarDatePipe = __decorate([ __param(1, Inject(LOCALE_ID))\r\n ], CalendarDatePipe);\r\nCalendarDatePipe.ɵfac = function CalendarDatePipe_Factory(t) { return new (t || CalendarDatePipe)(ɵngcc0.ɵɵdirectiveInject(CalendarDateFormatter), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\r\nCalendarDatePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"calendarDate\", type: CalendarDatePipe, pure: true });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarDatePipe, [{\r\n type: Pipe,\r\n args: [{\r\n name: 'calendarDate'\r\n }]\r\n }], function () { return [{ type: CalendarDateFormatter }, { type: String, decorators: [{\r\n type: Inject,\r\n args: [LOCALE_ID]\r\n }] }]; }, null); })();\r\n return CalendarDatePipe;\r\n}());\r\n\r\n/**\r\n * This class is responsible for displaying all event titles within the calendar. You may override any of its methods via angulars DI to suit your requirements. For example:\r\n *\r\n * ```typescript\r\n * import { Injectable } from '@angular/core';\r\n * import { CalendarEventTitleFormatter, CalendarEvent } from 'angular-calendar';\r\n *\r\n * @Injectable()\r\n * class CustomEventTitleFormatter extends CalendarEventTitleFormatter {\r\n *\r\n * month(event: CalendarEvent): string {\r\n * return `Custom prefix: ${event.title}`;\r\n * }\r\n *\r\n * }\r\n *\r\n * // in your component\r\n * providers: [{\r\n * provide: CalendarEventTitleFormatter,\r\n * useClass: CustomEventTitleFormatter\r\n * }]\r\n * ```\r\n */\r\nvar CalendarEventTitleFormatter = /** @class */ (function () {\r\n function CalendarEventTitleFormatter() {\r\n }\r\n /**\r\n * The month view event title.\r\n */\r\n CalendarEventTitleFormatter.prototype.month = function (event, title) {\r\n return event.title;\r\n };\r\n /**\r\n * The month view event tooltip. Return a falsey value from this to disable the tooltip.\r\n */\r\n CalendarEventTitleFormatter.prototype.monthTooltip = function (event, title) {\r\n return event.title;\r\n };\r\n /**\r\n * The week view event title.\r\n */\r\n CalendarEventTitleFormatter.prototype.week = function (event, title) {\r\n return event.title;\r\n };\r\n /**\r\n * The week view event tooltip. Return a falsey value from this to disable the tooltip.\r\n */\r\n CalendarEventTitleFormatter.prototype.weekTooltip = function (event, title) {\r\n return event.title;\r\n };\r\n /**\r\n * The day view event title.\r\n */\r\n CalendarEventTitleFormatter.prototype.day = function (event, title) {\r\n return event.title;\r\n };\r\n /**\r\n * The day view event tooltip. Return a falsey value from this to disable the tooltip.\r\n */\r\n CalendarEventTitleFormatter.prototype.dayTooltip = function (event, title) {\r\n return event.title;\r\n };\r\n return CalendarEventTitleFormatter;\r\n}());\r\n\r\nvar CalendarEventTitlePipe = /** @class */ (function () {\r\n function CalendarEventTitlePipe(calendarEventTitle) {\r\n this.calendarEventTitle = calendarEventTitle;\r\n }\r\n CalendarEventTitlePipe.prototype.transform = function (title, titleType, event) {\r\n return this.calendarEventTitle[titleType](event, title);\r\n };\r\n CalendarEventTitlePipe.ctorParameters = function () { return [\r\n { type: CalendarEventTitleFormatter }\r\n ]; };\r\nCalendarEventTitlePipe.ɵfac = function CalendarEventTitlePipe_Factory(t) { return new (t || CalendarEventTitlePipe)(ɵngcc0.ɵɵdirectiveInject(CalendarEventTitleFormatter)); };\r\nCalendarEventTitlePipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"calendarEventTitle\", type: CalendarEventTitlePipe, pure: true });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarEventTitlePipe, [{\r\n type: Pipe,\r\n args: [{\r\n name: 'calendarEventTitle'\r\n }]\r\n }], function () { return [{ type: CalendarEventTitleFormatter }]; }, null); })();\r\n return CalendarEventTitlePipe;\r\n}());\r\n\r\nvar ClickDirective = /** @class */ (function () {\r\n function ClickDirective(renderer, elm, document) {\r\n this.renderer = renderer;\r\n this.elm = elm;\r\n this.document = document;\r\n this.clickListenerDisabled = false;\r\n this.click = new EventEmitter(); // tslint:disable-line\r\n this.destroy$ = new Subject();\r\n }\r\n ClickDirective.prototype.ngOnInit = function () {\r\n var _this = this;\r\n if (!this.clickListenerDisabled) {\r\n this.listen()\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(function (event) {\r\n event.stopPropagation();\r\n _this.click.emit(event);\r\n });\r\n }\r\n };\r\n ClickDirective.prototype.ngOnDestroy = function () {\r\n this.destroy$.next();\r\n };\r\n ClickDirective.prototype.listen = function () {\r\n var _this = this;\r\n return new Observable(function (observer) {\r\n return _this.renderer.listen(_this.elm.nativeElement, 'click', function (event) {\r\n observer.next(event);\r\n });\r\n });\r\n };\r\n ClickDirective.ctorParameters = function () { return [\r\n { type: Renderer2 },\r\n { type: ElementRef },\r\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], ClickDirective.prototype, \"clickListenerDisabled\", void 0);\r\n __decorate([\r\n Output('mwlClick')\r\n ], ClickDirective.prototype, \"click\", void 0);\r\n ClickDirective = __decorate([ __param(2, Inject(DOCUMENT))\r\n ], ClickDirective);\r\nClickDirective.ɵfac = function ClickDirective_Factory(t) { return new (t || ClickDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\r\nClickDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: ClickDirective, selectors: [[\"\", \"mwlClick\", \"\"]], inputs: { clickListenerDisabled: \"clickListenerDisabled\" }, outputs: { click: \"mwlClick\" } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ClickDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlClick]'\r\n }]\r\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: undefined, decorators: [{\r\n type: Inject,\r\n args: [DOCUMENT]\r\n }] }]; }, { clickListenerDisabled: [{\r\n type: Input\r\n }], click: [{\r\n type: Output,\r\n args: ['mwlClick']\r\n }] }); })();\r\n return ClickDirective;\r\n}());\r\n\r\nvar KeydownEnterDirective = /** @class */ (function () {\r\n function KeydownEnterDirective() {\r\n this.keydown = new EventEmitter(); // tslint:disable-line\r\n }\r\n KeydownEnterDirective.prototype.onKeyPress = function (event) {\r\n if (event.keyCode === 13 || event.which === 13 || event.key === 'Enter') {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n this.keydown.emit(event);\r\n }\r\n };\r\n __decorate([\r\n Output('mwlKeydownEnter')\r\n ], KeydownEnterDirective.prototype, \"keydown\", void 0);\r\n __decorate([\r\n HostListener('keydown', ['$event'])\r\n ], KeydownEnterDirective.prototype, \"onKeyPress\", null);\r\nKeydownEnterDirective.ɵfac = function KeydownEnterDirective_Factory(t) { return new (t || KeydownEnterDirective)(); };\r\nKeydownEnterDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: KeydownEnterDirective, selectors: [[\"\", \"mwlKeydownEnter\", \"\"]], hostBindings: function KeydownEnterDirective_HostBindings(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵlistener(\"keydown\", function KeydownEnterDirective_keydown_HostBindingHandler($event) { return ctx.onKeyPress($event); });\r\n } }, outputs: { keydown: \"mwlKeydownEnter\" } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(KeydownEnterDirective, [{\r\n type: Directive,\r\n args: [{\r\n selector: '[mwlKeydownEnter]'\r\n }]\r\n }], function () { return []; }, { keydown: [{\r\n type: Output,\r\n args: ['mwlKeydownEnter']\r\n }], onKeyPress: [{\r\n type: HostListener,\r\n args: ['keydown', ['$event']]\r\n }] }); })();\r\n return KeydownEnterDirective;\r\n}());\r\n\r\nvar CalendarUtils = /** @class */ (function () {\r\n function CalendarUtils(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n }\r\n CalendarUtils.prototype.getMonthView = function (args) {\r\n return getMonthView(this.dateAdapter, args);\r\n };\r\n CalendarUtils.prototype.getWeekViewHeader = function (args) {\r\n return getWeekViewHeader(this.dateAdapter, args);\r\n };\r\n CalendarUtils.prototype.getWeekView = function (args) {\r\n return getWeekView(this.dateAdapter, args);\r\n };\r\n CalendarUtils.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\nCalendarUtils.ɵfac = function CalendarUtils_Factory(t) { return new (t || CalendarUtils)(ɵngcc0.ɵɵinject(DateAdapter)); };\r\nCalendarUtils.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarUtils, factory: function (t) { return CalendarUtils.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarUtils, [{\r\n type: Injectable\r\n }], function () { return [{ type: DateAdapter }]; }, null); })();\r\n return CalendarUtils;\r\n}());\r\n\r\n/**\r\n * This class is responsible for adding accessibility to the calendar.\r\n * You may override any of its methods via angulars DI to suit your requirements.\r\n * For example:\r\n *\r\n * ```typescript\r\n * import { A11yParams, CalendarA11y } from 'angular-calendar';\r\n * import { formatDate, I18nPluralPipe } from '@angular/common';\r\n * import { Injectable } from '@angular/core';\r\n *\r\n * // adding your own a11y params\r\n * export interface CustomA11yParams extends A11yParams {\r\n * isDrSuess?: boolean;\r\n * }\r\n *\r\n * @Injectable()\r\n * export class CustomCalendarA11y extends CalendarA11y {\r\n * constructor(protected i18nPlural: I18nPluralPipe) {\r\n * super(i18nPlural);\r\n * }\r\n *\r\n * // overriding a function\r\n * public openDayEventsLandmark({ date, locale, isDrSuess }: CustomA11yParams): string {\r\n * if (isDrSuess) {\r\n * return `\r\n * ${formatDate(date, 'EEEE MMMM d', locale)}\r\n * Today you are you! That is truer than true! There is no one alive\r\n * who is you-er than you!\r\n * `;\r\n * }\r\n * }\r\n * }\r\n *\r\n * // in your component that uses the calendar\r\n * providers: [{\r\n * provide: CalendarA11y,\r\n * useClass: CustomCalendarA11y\r\n * }]\r\n * ```\r\n */\r\nvar CalendarA11y = /** @class */ (function () {\r\n function CalendarA11y(i18nPlural) {\r\n this.i18nPlural = i18nPlural;\r\n }\r\n /**\r\n * Aria label for the badges/date of a cell\r\n * @example: `Saturday October 19 1 event click to expand`\r\n */\r\n CalendarA11y.prototype.monthCell = function (_a) {\r\n var day = _a.day, locale = _a.locale;\r\n if (day.badgeTotal > 0) {\r\n return \"\\n \" + formatDate(day.date, 'EEEE MMMM d', locale) + \",\\n \" + this.i18nPlural.transform(day.badgeTotal, {\r\n '=0': 'No events',\r\n '=1': 'One event',\r\n other: '# events',\r\n }) + \",\\n click to expand\\n \";\r\n }\r\n else {\r\n return \"\" + formatDate(day.date, 'EEEE MMMM d', locale);\r\n }\r\n };\r\n /**\r\n * Aria label for the open day events start landmark\r\n * @example: `Saturday October 19 expanded view`\r\n */\r\n CalendarA11y.prototype.openDayEventsLandmark = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return \"\\n Beginning of expanded view for \" + formatDate(date, 'EEEE MMMM dd', locale) + \"\\n \";\r\n };\r\n /**\r\n * Aria label for alert that a day in the month view was expanded\r\n * @example: `Saturday October 19 expanded`\r\n */\r\n CalendarA11y.prototype.openDayEventsAlert = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return formatDate(date, 'EEEE MMMM dd', locale) + \" expanded\";\r\n };\r\n /**\r\n * Descriptive aria label for an event\r\n * @example: `Saturday October 19th, Scott's Pizza Party, from 11:00am to 5:00pm`\r\n */\r\n CalendarA11y.prototype.eventDescription = function (_a) {\r\n var event = _a.event, locale = _a.locale;\r\n if (event.allDay === true) {\r\n return this.allDayEventDescription({ event: event, locale: locale });\r\n }\r\n var aria = \"\\n \" + formatDate(event.start, 'EEEE MMMM dd', locale) + \",\\n \" + event.title + \", from \" + formatDate(event.start, 'hh:mm a', locale) + \"\\n \";\r\n if (event.end) {\r\n return aria + (\" to \" + formatDate(event.end, 'hh:mm a', locale));\r\n }\r\n return aria;\r\n };\r\n /**\r\n * Descriptive aria label for an all day event\r\n * @example:\r\n * `Scott's Party, event spans multiple days: start time October 19 5:00pm, no stop time`\r\n */\r\n CalendarA11y.prototype.allDayEventDescription = function (_a) {\r\n var event = _a.event, locale = _a.locale;\r\n var aria = \"\\n \" + event.title + \", event spans multiple days:\\n start time \" + formatDate(event.start, 'MMMM dd hh:mm a', locale) + \"\\n \";\r\n if (event.end) {\r\n return (aria + (\", stop time \" + formatDate(event.end, 'MMMM d hh:mm a', locale)));\r\n }\r\n return aria + \", no stop time\";\r\n };\r\n /**\r\n * Aria label for the calendar event actions icons\r\n * @returns 'Edit' for fa-pencil icons, and 'Delete' for fa-times icons\r\n */\r\n CalendarA11y.prototype.actionButtonLabel = function (_a) {\r\n var action = _a.action;\r\n return action.a11yLabel;\r\n };\r\n /**\r\n * @returns {number} Tab index to be given to month cells\r\n */\r\n CalendarA11y.prototype.monthCellTabIndex = function () {\r\n return 0;\r\n };\r\n /**\r\n * @returns true if the events inside the month cell should be aria-hidden\r\n */\r\n CalendarA11y.prototype.hideMonthCellEvents = function () {\r\n return true;\r\n };\r\n /**\r\n * @returns true if event titles should be aria-hidden (global)\r\n */\r\n CalendarA11y.prototype.hideEventTitle = function () {\r\n return true;\r\n };\r\n /**\r\n * @returns true if hour segments in the week view should be aria-hidden\r\n */\r\n CalendarA11y.prototype.hideWeekHourSegment = function () {\r\n return true;\r\n };\r\n /**\r\n * @returns true if hour segments in the day view should be aria-hidden\r\n */\r\n CalendarA11y.prototype.hideDayHourSegment = function () {\r\n return true;\r\n };\r\n CalendarA11y.ctorParameters = function () { return [\r\n { type: I18nPluralPipe }\r\n ]; };\r\nCalendarA11y.ɵfac = function CalendarA11y_Factory(t) { return new (t || CalendarA11y)(ɵngcc0.ɵɵinject(ɵngcc1.I18nPluralPipe)); };\r\nCalendarA11y.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarA11y, factory: function (t) { return CalendarA11y.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarA11y, [{\r\n type: Injectable\r\n }], function () { return [{ type: ɵngcc1.I18nPluralPipe }]; }, null); })();\r\n return CalendarA11y;\r\n}());\r\n\r\n/**\r\n * This pipe is primarily for rendering aria labels. Example usage:\r\n * ```typescript\r\n * // where `myEvent` is a `CalendarEvent` and myLocale is a locale identifier\r\n * {{ { event: myEvent, locale: myLocale } | calendarA11y: 'eventDescription' }}\r\n * ```\r\n */\r\nvar CalendarA11yPipe = /** @class */ (function () {\r\n function CalendarA11yPipe(calendarA11y, locale) {\r\n this.calendarA11y = calendarA11y;\r\n this.locale = locale;\r\n }\r\n CalendarA11yPipe.prototype.transform = function (a11yParams, method) {\r\n a11yParams.locale = a11yParams.locale || this.locale;\r\n if (typeof this.calendarA11y[method] === 'undefined') {\r\n var allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarA11y.prototype)).filter(function (iMethod) { return iMethod !== 'constructor'; });\r\n throw new Error(method + \" is not a valid a11y method. Can only be one of \" + allowedMethods.join(', '));\r\n }\r\n return this.calendarA11y[method](a11yParams);\r\n };\r\n CalendarA11yPipe.ctorParameters = function () { return [\r\n { type: CalendarA11y },\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\r\n ]; };\r\n CalendarA11yPipe = __decorate([ __param(1, Inject(LOCALE_ID))\r\n ], CalendarA11yPipe);\r\nCalendarA11yPipe.ɵfac = function CalendarA11yPipe_Factory(t) { return new (t || CalendarA11yPipe)(ɵngcc0.ɵɵdirectiveInject(CalendarA11y), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID)); };\r\nCalendarA11yPipe.ɵpipe = ɵngcc0.ɵɵdefinePipe({ name: \"calendarA11y\", type: CalendarA11yPipe, pure: true });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarA11yPipe, [{\r\n type: Pipe,\r\n args: [{\r\n name: 'calendarA11y'\r\n }]\r\n }], function () { return [{ type: CalendarA11y }, { type: String, decorators: [{\r\n type: Inject,\r\n args: [LOCALE_ID]\r\n }] }]; }, null); })();\r\n return CalendarA11yPipe;\r\n}());\r\n\r\nvar MOMENT = new InjectionToken('Moment');\r\n/**\r\n * This will use moment to do all date formatting. To use this class:\r\n *\r\n * ```typescript\r\n * import { CalendarDateFormatter, CalendarMomentDateFormatter, MOMENT } from 'angular-calendar';\r\n * import moment from 'moment';\r\n *\r\n * // in your component\r\n * provide: [{\r\n * provide: MOMENT, useValue: moment\r\n * }, {\r\n * provide: CalendarDateFormatter, useClass: CalendarMomentDateFormatter\r\n * }]\r\n *\r\n * ```\r\n */\r\nvar CalendarMomentDateFormatter = /** @class */ (function () {\r\n /**\r\n * @hidden\r\n */\r\n function CalendarMomentDateFormatter(moment, dateAdapter) {\r\n this.moment = moment;\r\n this.dateAdapter = dateAdapter;\r\n }\r\n /**\r\n * The month view header week day labels\r\n */\r\n CalendarMomentDateFormatter.prototype.monthViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('dddd');\r\n };\r\n /**\r\n * The month view cell day number\r\n */\r\n CalendarMomentDateFormatter.prototype.monthViewDayNumber = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('D');\r\n };\r\n /**\r\n * The month view title\r\n */\r\n CalendarMomentDateFormatter.prototype.monthViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('MMMM YYYY');\r\n };\r\n /**\r\n * The week view header week day labels\r\n */\r\n CalendarMomentDateFormatter.prototype.weekViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('dddd');\r\n };\r\n /**\r\n * The week view sub header day and month labels\r\n */\r\n CalendarMomentDateFormatter.prototype.weekViewColumnSubHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('MMM D');\r\n };\r\n /**\r\n * The week view title\r\n */\r\n CalendarMomentDateFormatter.prototype.weekViewTitle = function (_a) {\r\n var _this = this;\r\n var date = _a.date, locale = _a.locale, weekStartsOn = _a.weekStartsOn, excludeDays = _a.excludeDays, daysInWeek = _a.daysInWeek;\r\n var _b = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek), viewStart = _b.viewStart, viewEnd = _b.viewEnd;\r\n var format = function (dateToFormat, showYear) {\r\n return _this.moment(dateToFormat)\r\n .locale(locale)\r\n .format('MMM D' + (showYear ? ', YYYY' : ''));\r\n };\r\n return format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear()) + \" - \" + format(viewEnd, true);\r\n };\r\n /**\r\n * The time formatting down the left hand side of the week view\r\n */\r\n CalendarMomentDateFormatter.prototype.weekViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('ha');\r\n };\r\n /**\r\n * The time formatting down the left hand side of the day view\r\n */\r\n CalendarMomentDateFormatter.prototype.dayViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('ha');\r\n };\r\n /**\r\n * The day view title\r\n */\r\n CalendarMomentDateFormatter.prototype.dayViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return this.moment(date).locale(locale).format('dddd, D MMMM, YYYY');\r\n };\r\n CalendarMomentDateFormatter.ctorParameters = function () { return [\r\n { type: undefined, decorators: [{ type: Inject, args: [MOMENT,] }] },\r\n { type: DateAdapter }\r\n ]; };\r\n CalendarMomentDateFormatter = __decorate([ __param(0, Inject(MOMENT))\r\n ], CalendarMomentDateFormatter);\r\nCalendarMomentDateFormatter.ɵfac = function CalendarMomentDateFormatter_Factory(t) { return new (t || CalendarMomentDateFormatter)(ɵngcc0.ɵɵinject(MOMENT), ɵngcc0.ɵɵinject(DateAdapter)); };\r\nCalendarMomentDateFormatter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarMomentDateFormatter, factory: function (t) { return CalendarMomentDateFormatter.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarMomentDateFormatter, [{\r\n type: Injectable\r\n }], function () { return [{ type: undefined, decorators: [{\r\n type: Inject,\r\n args: [MOMENT]\r\n }] }, { type: DateAdapter }]; }, null); })();\r\n return CalendarMomentDateFormatter;\r\n}());\r\n\r\n/**\r\n * This will use Intl API to do all date formatting.\r\n *\r\n * You will need to include a polyfill for older browsers.\r\n */\r\nvar CalendarNativeDateFormatter = /** @class */ (function () {\r\n function CalendarNativeDateFormatter(dateAdapter) {\r\n this.dateAdapter = dateAdapter;\r\n }\r\n /**\r\n * The month view header week day labels\r\n */\r\n CalendarNativeDateFormatter.prototype.monthViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date);\r\n };\r\n /**\r\n * The month view cell day number\r\n */\r\n CalendarNativeDateFormatter.prototype.monthViewDayNumber = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, { day: 'numeric' }).format(date);\r\n };\r\n /**\r\n * The month view title\r\n */\r\n CalendarNativeDateFormatter.prototype.monthViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, {\r\n year: 'numeric',\r\n month: 'long',\r\n }).format(date);\r\n };\r\n /**\r\n * The week view header week day labels\r\n */\r\n CalendarNativeDateFormatter.prototype.weekViewColumnHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date);\r\n };\r\n /**\r\n * The week view sub header day and month labels\r\n */\r\n CalendarNativeDateFormatter.prototype.weekViewColumnSubHeader = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, {\r\n day: 'numeric',\r\n month: 'short',\r\n }).format(date);\r\n };\r\n /**\r\n * The week view title\r\n */\r\n CalendarNativeDateFormatter.prototype.weekViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale, weekStartsOn = _a.weekStartsOn, excludeDays = _a.excludeDays, daysInWeek = _a.daysInWeek;\r\n var _b = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek), viewStart = _b.viewStart, viewEnd = _b.viewEnd;\r\n var format = function (dateToFormat, showYear) {\r\n return new Intl.DateTimeFormat(locale, {\r\n day: 'numeric',\r\n month: 'short',\r\n year: showYear ? 'numeric' : undefined,\r\n }).format(dateToFormat);\r\n };\r\n return format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear()) + \" - \" + format(viewEnd, true);\r\n };\r\n /**\r\n * The time formatting down the left hand side of the week view\r\n */\r\n CalendarNativeDateFormatter.prototype.weekViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, { hour: 'numeric' }).format(date);\r\n };\r\n /**\r\n * The time formatting down the left hand side of the day view\r\n */\r\n CalendarNativeDateFormatter.prototype.dayViewHour = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, { hour: 'numeric' }).format(date);\r\n };\r\n /**\r\n * The day view title\r\n */\r\n CalendarNativeDateFormatter.prototype.dayViewTitle = function (_a) {\r\n var date = _a.date, locale = _a.locale;\r\n return new Intl.DateTimeFormat(locale, {\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n weekday: 'long',\r\n }).format(date);\r\n };\r\n CalendarNativeDateFormatter.ctorParameters = function () { return [\r\n { type: DateAdapter }\r\n ]; };\r\nCalendarNativeDateFormatter.ɵfac = function CalendarNativeDateFormatter_Factory(t) { return new (t || CalendarNativeDateFormatter)(ɵngcc0.ɵɵinject(DateAdapter)); };\r\nCalendarNativeDateFormatter.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: CalendarNativeDateFormatter, factory: function (t) { return CalendarNativeDateFormatter.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarNativeDateFormatter, [{\r\n type: Injectable\r\n }], function () { return [{ type: DateAdapter }]; }, null); })();\r\n return CalendarNativeDateFormatter;\r\n}());\r\n\r\nvar CalendarEventTimesChangedEventType;\r\n(function (CalendarEventTimesChangedEventType) {\r\n CalendarEventTimesChangedEventType[\"Drag\"] = \"drag\";\r\n CalendarEventTimesChangedEventType[\"Drop\"] = \"drop\";\r\n CalendarEventTimesChangedEventType[\"Resize\"] = \"resize\";\r\n})(CalendarEventTimesChangedEventType || (CalendarEventTimesChangedEventType = {}));\r\n\r\n/**\r\n * Import this module to if you're just using a singular view and want to save on bundle size. Example usage:\r\n *\r\n * ```typescript\r\n * import { CalendarCommonModule, CalendarMonthModule } from 'angular-calendar';\r\n *\r\n * @NgModule({\r\n * imports: [\r\n * CalendarCommonModule.forRoot(),\r\n * CalendarMonthModule\r\n * ]\r\n * })\r\n * class MyModule {}\r\n * ```\r\n *\r\n */\r\nvar CalendarCommonModule = /** @class */ (function () {\r\n function CalendarCommonModule() {\r\n }\r\n CalendarCommonModule_1 = CalendarCommonModule;\r\n CalendarCommonModule.forRoot = function (dateAdapter, config) {\r\n if (config === void 0) { config = {}; }\r\n return {\r\n ngModule: CalendarCommonModule_1,\r\n providers: [\r\n dateAdapter,\r\n config.eventTitleFormatter || CalendarEventTitleFormatter,\r\n config.dateFormatter || CalendarDateFormatter,\r\n config.utils || CalendarUtils,\r\n config.a11y || CalendarA11y,\r\n ],\r\n };\r\n };\r\n var CalendarCommonModule_1;\r\nCalendarCommonModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CalendarCommonModule });\r\nCalendarCommonModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CalendarCommonModule_Factory(t) { return new (t || CalendarCommonModule)(); }, providers: [I18nPluralPipe], imports: [[CommonModule]] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarCommonModule, { declarations: function () { return [CalendarEventActionsComponent,\r\n CalendarEventTitleComponent,\r\n CalendarTooltipWindowComponent,\r\n CalendarTooltipDirective,\r\n CalendarPreviousViewDirective,\r\n CalendarNextViewDirective,\r\n CalendarTodayDirective,\r\n CalendarDatePipe,\r\n CalendarEventTitlePipe,\r\n CalendarA11yPipe,\r\n ClickDirective,\r\n KeydownEnterDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [CalendarEventActionsComponent,\r\n CalendarEventTitleComponent,\r\n CalendarTooltipWindowComponent,\r\n CalendarTooltipDirective,\r\n CalendarPreviousViewDirective,\r\n CalendarNextViewDirective,\r\n CalendarTodayDirective,\r\n CalendarDatePipe,\r\n CalendarEventTitlePipe,\r\n CalendarA11yPipe,\r\n ClickDirective,\r\n KeydownEnterDirective]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarCommonModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n CalendarEventActionsComponent,\r\n CalendarEventTitleComponent,\r\n CalendarTooltipWindowComponent,\r\n CalendarTooltipDirective,\r\n CalendarPreviousViewDirective,\r\n CalendarNextViewDirective,\r\n CalendarTodayDirective,\r\n CalendarDatePipe,\r\n CalendarEventTitlePipe,\r\n CalendarA11yPipe,\r\n ClickDirective,\r\n KeydownEnterDirective,\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n CalendarEventActionsComponent,\r\n CalendarEventTitleComponent,\r\n CalendarTooltipWindowComponent,\r\n CalendarTooltipDirective,\r\n CalendarPreviousViewDirective,\r\n CalendarNextViewDirective,\r\n CalendarTodayDirective,\r\n CalendarDatePipe,\r\n CalendarEventTitlePipe,\r\n CalendarA11yPipe,\r\n ClickDirective,\r\n KeydownEnterDirective,\r\n ],\r\n providers: [I18nPluralPipe],\r\n entryComponents: [CalendarTooltipWindowComponent]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return CalendarCommonModule;\r\n}());\r\n\r\n/**\r\n * Shows all events on a given month. Example usage:\r\n *\r\n * ```typescript\r\n * \r\n * \r\n * ```\r\n */\r\nvar CalendarMonthViewComponent = /** @class */ (function () {\r\n /**\r\n * @hidden\r\n */\r\n function CalendarMonthViewComponent(cdr, utils, locale, dateAdapter) {\r\n var _this = this;\r\n this.cdr = cdr;\r\n this.utils = utils;\r\n this.dateAdapter = dateAdapter;\r\n /**\r\n * An array of events to display on view.\r\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\r\n */\r\n this.events = [];\r\n /**\r\n * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view\r\n */\r\n this.excludeDays = [];\r\n /**\r\n * Whether the events list for the day of the `viewDate` option is visible or not\r\n */\r\n this.activeDayIsOpen = false;\r\n /**\r\n * The placement of the event tooltip\r\n */\r\n this.tooltipPlacement = 'auto';\r\n /**\r\n * Whether to append tooltips to the body or next to the trigger element\r\n */\r\n this.tooltipAppendToBody = true;\r\n /**\r\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\r\n * will be displayed immediately.\r\n */\r\n this.tooltipDelay = null;\r\n /**\r\n * An output that will be called before the view is rendered for the current month.\r\n * If you add the `cssClass` property to a day in the body it will add that class to the cell element in the template\r\n */\r\n this.beforeViewRender = new EventEmitter();\r\n /**\r\n * Called when the day cell is clicked\r\n */\r\n this.dayClicked = new EventEmitter();\r\n /**\r\n * Called when the event title is clicked\r\n */\r\n this.eventClicked = new EventEmitter();\r\n /**\r\n * Called when a header week day is clicked. Returns ISO day number.\r\n */\r\n this.columnHeaderClicked = new EventEmitter();\r\n /**\r\n * Called when an event is dragged and dropped\r\n */\r\n this.eventTimesChanged = new EventEmitter();\r\n /**\r\n * @hidden\r\n */\r\n this.trackByRowOffset = function (index, offset) {\r\n return _this.view.days\r\n .slice(offset, _this.view.totalDaysVisibleInWeek)\r\n .map(function (day) { return day.date.toISOString(); })\r\n .join('-');\r\n };\r\n /**\r\n * @hidden\r\n */\r\n this.trackByDate = function (index, day) { return day.date.toISOString(); };\r\n this.locale = locale;\r\n }\r\n /**\r\n * @hidden\r\n */\r\n CalendarMonthViewComponent.prototype.ngOnInit = function () {\r\n var _this = this;\r\n if (this.refresh) {\r\n this.refreshSubscription = this.refresh.subscribe(function () {\r\n _this.refreshAll();\r\n _this.cdr.markForCheck();\r\n });\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarMonthViewComponent.prototype.ngOnChanges = function (changes) {\r\n var refreshHeader = changes.viewDate || changes.excludeDays || changes.weekendDays;\r\n var refreshBody = changes.viewDate ||\r\n changes.events ||\r\n changes.excludeDays ||\r\n changes.weekendDays;\r\n if (refreshHeader) {\r\n this.refreshHeader();\r\n }\r\n if (changes.events) {\r\n validateEvents(this.events);\r\n }\r\n if (refreshBody) {\r\n this.refreshBody();\r\n }\r\n if (refreshHeader || refreshBody) {\r\n this.emitBeforeViewRender();\r\n }\r\n if (changes.activeDayIsOpen ||\r\n changes.viewDate ||\r\n changes.events ||\r\n changes.excludeDays ||\r\n changes.activeDay) {\r\n this.checkActiveDayIsOpen();\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarMonthViewComponent.prototype.ngOnDestroy = function () {\r\n if (this.refreshSubscription) {\r\n this.refreshSubscription.unsubscribe();\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarMonthViewComponent.prototype.toggleDayHighlight = function (event, isHighlighted) {\r\n this.view.days.forEach(function (day) {\r\n if (isHighlighted && day.events.indexOf(event) > -1) {\r\n day.backgroundColor =\r\n (event.color && event.color.secondary) || '#D1E8FF';\r\n }\r\n else {\r\n delete day.backgroundColor;\r\n }\r\n });\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarMonthViewComponent.prototype.eventDropped = function (droppedOn, event, draggedFrom) {\r\n if (droppedOn !== draggedFrom) {\r\n var year = this.dateAdapter.getYear(droppedOn.date);\r\n var month = this.dateAdapter.getMonth(droppedOn.date);\r\n var date = this.dateAdapter.getDate(droppedOn.date);\r\n var newStart = this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(event.start, year), month), date);\r\n var newEnd = void 0;\r\n if (event.end) {\r\n var secondsDiff = this.dateAdapter.differenceInSeconds(newStart, event.start);\r\n newEnd = this.dateAdapter.addSeconds(event.end, secondsDiff);\r\n }\r\n this.eventTimesChanged.emit({\r\n event: event,\r\n newStart: newStart,\r\n newEnd: newEnd,\r\n day: droppedOn,\r\n type: CalendarEventTimesChangedEventType.Drop,\r\n });\r\n }\r\n };\r\n CalendarMonthViewComponent.prototype.refreshHeader = function () {\r\n this.columnHeaders = this.utils.getWeekViewHeader({\r\n viewDate: this.viewDate,\r\n weekStartsOn: this.weekStartsOn,\r\n excluded: this.excludeDays,\r\n weekendDays: this.weekendDays,\r\n });\r\n };\r\n CalendarMonthViewComponent.prototype.refreshBody = function () {\r\n this.view = this.utils.getMonthView({\r\n events: this.events,\r\n viewDate: this.viewDate,\r\n weekStartsOn: this.weekStartsOn,\r\n excluded: this.excludeDays,\r\n weekendDays: this.weekendDays,\r\n });\r\n };\r\n CalendarMonthViewComponent.prototype.checkActiveDayIsOpen = function () {\r\n var _this = this;\r\n if (this.activeDayIsOpen === true) {\r\n var activeDay_1 = this.activeDay || this.viewDate;\r\n this.openDay = this.view.days.find(function (day) {\r\n return _this.dateAdapter.isSameDay(day.date, activeDay_1);\r\n });\r\n var index = this.view.days.indexOf(this.openDay);\r\n this.openRowIndex =\r\n Math.floor(index / this.view.totalDaysVisibleInWeek) *\r\n this.view.totalDaysVisibleInWeek;\r\n }\r\n else {\r\n this.openRowIndex = null;\r\n this.openDay = null;\r\n }\r\n };\r\n CalendarMonthViewComponent.prototype.refreshAll = function () {\r\n this.refreshHeader();\r\n this.refreshBody();\r\n this.emitBeforeViewRender();\r\n this.checkActiveDayIsOpen();\r\n };\r\n CalendarMonthViewComponent.prototype.emitBeforeViewRender = function () {\r\n if (this.columnHeaders && this.view) {\r\n this.beforeViewRender.emit({\r\n header: this.columnHeaders,\r\n body: this.view.days,\r\n period: this.view.period,\r\n });\r\n }\r\n };\r\n CalendarMonthViewComponent.ctorParameters = function () { return [\r\n { type: ChangeDetectorRef },\r\n { type: CalendarUtils },\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] },\r\n { type: DateAdapter }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"events\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"excludeDays\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"activeDayIsOpen\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"activeDay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"refresh\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"tooltipPlacement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"tooltipAppendToBody\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"tooltipDelay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"weekStartsOn\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"cellTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"openDayEventsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"eventTitleTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"eventActionsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewComponent.prototype, \"weekendDays\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewComponent.prototype, \"beforeViewRender\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewComponent.prototype, \"dayClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewComponent.prototype, \"eventClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewComponent.prototype, \"columnHeaderClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewComponent.prototype, \"eventTimesChanged\", void 0);\r\n CalendarMonthViewComponent = __decorate([ __param(2, Inject(LOCALE_ID))\r\n ], CalendarMonthViewComponent);\r\nCalendarMonthViewComponent.ɵfac = function CalendarMonthViewComponent_Factory(t) { return new (t || CalendarMonthViewComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(CalendarUtils), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID), ɵngcc0.ɵɵdirectiveInject(DateAdapter)); };\r\nCalendarMonthViewComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarMonthViewComponent, selectors: [[\"mwl-calendar-month-view\"]], inputs: { events: \"events\", excludeDays: \"excludeDays\", activeDayIsOpen: \"activeDayIsOpen\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", locale: \"locale\", viewDate: \"viewDate\", activeDay: \"activeDay\", refresh: \"refresh\", tooltipTemplate: \"tooltipTemplate\", weekStartsOn: \"weekStartsOn\", headerTemplate: \"headerTemplate\", cellTemplate: \"cellTemplate\", openDayEventsTemplate: \"openDayEventsTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", weekendDays: \"weekendDays\" }, outputs: { beforeViewRender: \"beforeViewRender\", dayClicked: \"dayClicked\", eventClicked: \"eventClicked\", columnHeaderClicked: \"columnHeaderClicked\", eventTimesChanged: \"eventTimesChanged\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 4, vars: 5, consts: [[\"role\", \"grid\", 1, \"cal-month-view\"], [3, \"days\", \"locale\", \"customTemplate\", \"columnHeaderClicked\"], [1, \"cal-days\"], [4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"cal-cell-row\"], [\"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", 3, \"ngClass\", \"day\", \"openDay\", \"locale\", \"tooltipPlacement\", \"tooltipAppendToBody\", \"tooltipTemplate\", \"tooltipDelay\", \"customTemplate\", \"ngStyle\", \"clickListenerDisabled\", \"mwlClick\", \"mwlKeydownEnter\", \"highlightDay\", \"unhighlightDay\", \"drop\", \"eventClicked\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", 3, \"locale\", \"isOpen\", \"events\", \"date\", \"customTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"eventClicked\", \"drop\"], [\"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", 3, \"ngClass\", \"day\", \"openDay\", \"locale\", \"tooltipPlacement\", \"tooltipAppendToBody\", \"tooltipTemplate\", \"tooltipDelay\", \"customTemplate\", \"ngStyle\", \"clickListenerDisabled\", \"mwlClick\", \"mwlKeydownEnter\", \"highlightDay\", \"unhighlightDay\", \"drop\", \"eventClicked\"]], template: function CalendarMonthViewComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\r\n ɵngcc0.ɵɵelementStart(1, \"mwl-calendar-month-view-header\", 1);\r\n ɵngcc0.ɵɵlistener(\"columnHeaderClicked\", function CalendarMonthViewComponent_Template_mwl_calendar_month_view_header_columnHeaderClicked_1_listener($event) { return ctx.columnHeaderClicked.emit($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\r\n ɵngcc0.ɵɵtemplate(3, CalendarMonthViewComponent_div_3_Template, 5, 13, \"div\", 3);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"days\", ctx.columnHeaders)(\"locale\", ctx.locale)(\"customTemplate\", ctx.headerTemplate);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.view.rowOffsets)(\"ngForTrackBy\", ctx.trackByRowOffset);\r\n } }, directives: function () { return [CalendarMonthViewHeaderComponent, ɵngcc1.NgForOf, CalendarOpenDayEventsComponent, ɵngcc2.ɵa, CalendarMonthCellComponent, ɵngcc1.NgClass, ɵngcc1.NgStyle, ClickDirective,\r\n KeydownEnterDirective]; }, pipes: function () { return [ɵngcc1.SlicePipe, CalendarA11yPipe]; }, encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarMonthViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-month-view',\r\n template: \"\\n
      \\n \\n \\n
      \\n \\n
      \\n \\n \\n
      \\n \\n \\n
      \\n
      \\n
      \\n \"\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: CalendarUtils }, { type: String, decorators: [{\r\n type: Inject,\r\n args: [LOCALE_ID]\r\n }] }, { type: DateAdapter }]; }, { events: [{\r\n type: Input\r\n }], excludeDays: [{\r\n type: Input\r\n }], activeDayIsOpen: [{\r\n type: Input\r\n }], tooltipPlacement: [{\r\n type: Input\r\n }], tooltipAppendToBody: [{\r\n type: Input\r\n }], tooltipDelay: [{\r\n type: Input\r\n }], beforeViewRender: [{\r\n type: Output\r\n }], dayClicked: [{\r\n type: Output\r\n }], eventClicked: [{\r\n type: Output\r\n }], columnHeaderClicked: [{\r\n type: Output\r\n }], eventTimesChanged: [{\r\n type: Output\r\n }], locale: [{\r\n type: Input\r\n }], viewDate: [{\r\n type: Input\r\n }], activeDay: [{\r\n type: Input\r\n }], refresh: [{\r\n type: Input\r\n }], tooltipTemplate: [{\r\n type: Input\r\n }], weekStartsOn: [{\r\n type: Input\r\n }], headerTemplate: [{\r\n type: Input\r\n }], cellTemplate: [{\r\n type: Input\r\n }], openDayEventsTemplate: [{\r\n type: Input\r\n }], eventTitleTemplate: [{\r\n type: Input\r\n }], eventActionsTemplate: [{\r\n type: Input\r\n }], weekendDays: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarMonthViewComponent;\r\n}());\r\n\r\nvar CalendarMonthViewHeaderComponent = /** @class */ (function () {\r\n function CalendarMonthViewHeaderComponent() {\r\n this.columnHeaderClicked = new EventEmitter();\r\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewHeaderComponent.prototype, \"days\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewHeaderComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthViewHeaderComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthViewHeaderComponent.prototype, \"columnHeaderClicked\", void 0);\r\nCalendarMonthViewHeaderComponent.ɵfac = function CalendarMonthViewHeaderComponent_Factory(t) { return new (t || CalendarMonthViewHeaderComponent)(); };\r\nCalendarMonthViewHeaderComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarMonthViewHeaderComponent, selectors: [[\"mwl-calendar-month-view-header\"]], inputs: { days: \"days\", locale: \"locale\", customTemplate: \"customTemplate\" }, outputs: { columnHeaderClicked: \"columnHeaderClicked\" }, decls: 3, vars: 6, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"row\", 1, \"cal-cell-row\", \"cal-header\"], [\"class\", \"cal-cell\", \"tabindex\", \"0\", \"role\", \"columnheader\", 3, \"cal-past\", \"cal-today\", \"cal-future\", \"cal-weekend\", \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"tabindex\", \"0\", \"role\", \"columnheader\", 1, \"cal-cell\", 3, \"ngClass\", \"click\"]], template: function CalendarMonthViewHeaderComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarMonthViewHeaderComponent_ng_template_0_Template, 2, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarMonthViewHeaderComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r883 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r883)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(2, _c6, ctx.days, ctx.locale, ctx.trackByWeekDayHeaderDate));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgForOf, ɵngcc1.NgClass], pipes: [CalendarDatePipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarMonthViewHeaderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-month-view-header',\r\n template: \"\\n \\n
      \\n \\n {{ day.date | calendarDate: 'monthViewColumnHeader':locale }}\\n
      \\n
      \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { columnHeaderClicked: [{\r\n type: Output\r\n }], days: [{\r\n type: Input\r\n }], locale: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarMonthViewHeaderComponent;\r\n}());\r\n\r\nvar CalendarMonthCellComponent = /** @class */ (function () {\r\n function CalendarMonthCellComponent() {\r\n this.highlightDay = new EventEmitter();\r\n this.unhighlightDay = new EventEmitter();\r\n this.eventClicked = new EventEmitter();\r\n this.trackByEventId = trackByEventId;\r\n this.validateDrag = isWithinThreshold;\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"day\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"openDay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"tooltipPlacement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"tooltipAppendToBody\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarMonthCellComponent.prototype, \"tooltipDelay\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthCellComponent.prototype, \"highlightDay\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthCellComponent.prototype, \"unhighlightDay\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarMonthCellComponent.prototype, \"eventClicked\", void 0);\r\nCalendarMonthCellComponent.ɵfac = function CalendarMonthCellComponent_Factory(t) { return new (t || CalendarMonthCellComponent)(); };\r\nCalendarMonthCellComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarMonthCellComponent, selectors: [[\"mwl-calendar-month-cell\"]], hostAttrs: [1, \"cal-cell\", \"cal-day-cell\"], hostVars: 18, hostBindings: function CalendarMonthCellComponent_HostBindings(rf, ctx) { if (rf & 2) {\r\n ɵngcc0.ɵɵclassProp(\"cal-past\", ctx.day.isPast)(\"cal-today\", ctx.day.isToday)(\"cal-future\", ctx.day.isFuture)(\"cal-weekend\", ctx.day.isWeekend)(\"cal-in-month\", ctx.day.inMonth)(\"cal-out-month\", !ctx.day.inMonth)(\"cal-has-events\", ctx.day.events.length > 0)(\"cal-open\", ctx.day === ctx.openDay)(\"cal-event-highlight\", !!ctx.day.backgroundColor);\r\n } }, inputs: { day: \"day\", openDay: \"openDay\", locale: \"locale\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", customTemplate: \"customTemplate\", tooltipTemplate: \"tooltipTemplate\", tooltipDelay: \"tooltipDelay\" }, outputs: { highlightDay: \"highlightDay\", unhighlightDay: \"unhighlightDay\", eventClicked: \"eventClicked\" }, decls: 3, vars: 15, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"cal-cell-top\"], [\"aria-hidden\", \"true\"], [\"class\", \"cal-day-badge\", 4, \"ngIf\"], [1, \"cal-day-number\"], [\"class\", \"cal-events\", 4, \"ngIf\"], [1, \"cal-day-badge\"], [1, \"cal-events\"], [\"class\", \"cal-event\", \"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"ngStyle\", \"ngClass\", \"mwlCalendarTooltip\", \"tooltipPlacement\", \"tooltipEvent\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"cal-draggable\", \"dropData\", \"dragAxis\", \"validateDrag\", \"touchStartLongPress\", \"mouseenter\", \"mouseleave\", \"mwlClick\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 1, \"cal-event\", 3, \"ngStyle\", \"ngClass\", \"mwlCalendarTooltip\", \"tooltipPlacement\", \"tooltipEvent\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"dropData\", \"dragAxis\", \"validateDrag\", \"touchStartLongPress\", \"mouseenter\", \"mouseleave\", \"mwlClick\"]], template: function CalendarMonthCellComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarMonthCellComponent_ng_template_0_Template, 8, 14, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarMonthCellComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r894 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r894)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunctionV(2, _c11, [ctx.day, ctx.openDay, ctx.locale, ctx.tooltipPlacement, ctx.highlightDay, ctx.unhighlightDay, ctx.eventClicked, ctx.tooltipTemplate, ctx.tooltipAppendToBody, ctx.tooltipDelay, ctx.trackByEventId, ctx.validateDrag]));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc2.ɵb, ɵngcc1.NgStyle, ɵngcc1.NgClass, CalendarTooltipDirective,\r\n ClickDirective], pipes: [CalendarA11yPipe,\r\n CalendarDatePipe,\r\n CalendarEventTitlePipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarMonthCellComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-month-cell',\r\n template: \"\\n \\n \\n \\n 0\\\">{{\\n day.badgeTotal\\n }}\\n {{\\n day.date | calendarDate: 'monthViewDayNumber':locale\\n }}\\n \\n
      \\n
      0\\\">\\n
      \\n
      \\n \\n \\n \\n \",\r\n host: {\r\n class: 'cal-cell cal-day-cell',\r\n '[class.cal-past]': 'day.isPast',\r\n '[class.cal-today]': 'day.isToday',\r\n '[class.cal-future]': 'day.isFuture',\r\n '[class.cal-weekend]': 'day.isWeekend',\r\n '[class.cal-in-month]': 'day.inMonth',\r\n '[class.cal-out-month]': '!day.inMonth',\r\n '[class.cal-has-events]': 'day.events.length > 0',\r\n '[class.cal-open]': 'day === openDay',\r\n '[class.cal-event-highlight]': '!!day.backgroundColor'\r\n }\r\n }]\r\n }], function () { return []; }, { highlightDay: [{\r\n type: Output\r\n }], unhighlightDay: [{\r\n type: Output\r\n }], eventClicked: [{\r\n type: Output\r\n }], day: [{\r\n type: Input\r\n }], openDay: [{\r\n type: Input\r\n }], locale: [{\r\n type: Input\r\n }], tooltipPlacement: [{\r\n type: Input\r\n }], tooltipAppendToBody: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }], tooltipTemplate: [{\r\n type: Input\r\n }], tooltipDelay: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarMonthCellComponent;\r\n}());\r\n\r\nvar collapseAnimation = trigger('collapse', [\r\n state('void', style({\r\n height: 0,\r\n overflow: 'hidden',\r\n 'padding-top': 0,\r\n 'padding-bottom': 0,\r\n })),\r\n state('*', style({\r\n height: '*',\r\n overflow: 'hidden',\r\n 'padding-top': '*',\r\n 'padding-bottom': '*',\r\n })),\r\n transition('* => void', animate('150ms ease-out')),\r\n transition('void => *', animate('150ms ease-in')),\r\n]);\r\nvar CalendarOpenDayEventsComponent = /** @class */ (function () {\r\n function CalendarOpenDayEventsComponent() {\r\n this.isOpen = false;\r\n this.eventClicked = new EventEmitter();\r\n this.trackByEventId = trackByEventId;\r\n this.validateDrag = isWithinThreshold;\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"isOpen\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"events\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"eventTitleTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"eventActionsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarOpenDayEventsComponent.prototype, \"date\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarOpenDayEventsComponent.prototype, \"eventClicked\", void 0);\r\nCalendarOpenDayEventsComponent.ɵfac = function CalendarOpenDayEventsComponent_Factory(t) { return new (t || CalendarOpenDayEventsComponent)(); };\r\nCalendarOpenDayEventsComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarOpenDayEventsComponent, selectors: [[\"mwl-calendar-open-day-events\"]], inputs: { isOpen: \"isOpen\", locale: \"locale\", events: \"events\", customTemplate: \"customTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", date: \"date\" }, outputs: { eventClicked: \"eventClicked\" }, decls: 3, vars: 8, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"cal-open-day-events\", \"role\", \"application\", 4, \"ngIf\"], [\"role\", \"application\", 1, \"cal-open-day-events\"], [\"tabindex\", \"-1\", \"role\", \"alert\"], [\"tabindex\", \"0\", \"role\", \"landmark\"], [\"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"ngClass\", \"cal-draggable\", \"dropData\", \"dragAxis\", \"validateDrag\", \"touchStartLongPress\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"ngClass\", \"dropData\", \"dragAxis\", \"validateDrag\", \"touchStartLongPress\"], [1, \"cal-event\", 3, \"ngStyle\"], [\"view\", \"month\", \"tabindex\", \"0\", 3, \"event\", \"customTemplate\", \"mwlClick\", \"mwlKeydownEnter\"], [3, \"event\", \"customTemplate\"]], template: function CalendarOpenDayEventsComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarOpenDayEventsComponent_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarOpenDayEventsComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r923 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r923)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction5(2, _c15, ctx.events, ctx.eventClicked, ctx.isOpen, ctx.trackByEventId, ctx.validateDrag));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgIf, ɵngcc1.NgForOf, ɵngcc2.ɵb, ɵngcc1.NgClass, ɵngcc1.NgStyle, CalendarEventTitleComponent,\r\n ClickDirective,\r\n KeydownEnterDirective,\r\n CalendarEventActionsComponent], pipes: [CalendarA11yPipe], encapsulation: 2, data: { animation: [collapseAnimation] } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarOpenDayEventsComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-open-day-events',\r\n template: \"\\n \\n \\n \\n \\n \\n \\n \\n &ngsp;\\n \\n \\n &ngsp;\\n \\n \\n
      \\n
      \\n \\n \\n \\n \",\r\n animations: [collapseAnimation]\r\n }]\r\n }], function () { return []; }, { isOpen: [{\r\n type: Input\r\n }], eventClicked: [{\r\n type: Output\r\n }], locale: [{\r\n type: Input\r\n }], events: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }], eventTitleTemplate: [{\r\n type: Input\r\n }], eventActionsTemplate: [{\r\n type: Input\r\n }], date: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarOpenDayEventsComponent;\r\n}());\r\n\r\nvar CalendarMonthModule = /** @class */ (function () {\r\n function CalendarMonthModule() {\r\n }\r\nCalendarMonthModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CalendarMonthModule });\r\nCalendarMonthModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CalendarMonthModule_Factory(t) { return new (t || CalendarMonthModule)(); }, imports: [[CommonModule, DragAndDropModule, CalendarCommonModule],\r\n DragAndDropModule] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarMonthModule, { declarations: function () { return [CalendarMonthViewComponent,\r\n CalendarMonthCellComponent,\r\n CalendarOpenDayEventsComponent,\r\n CalendarMonthViewHeaderComponent]; }, imports: function () { return [CommonModule, DragAndDropModule,\r\n CalendarCommonModule]; }, exports: function () { return [DragAndDropModule,\r\n CalendarMonthViewComponent,\r\n CalendarMonthCellComponent,\r\n CalendarOpenDayEventsComponent,\r\n CalendarMonthViewHeaderComponent]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarMonthModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [CommonModule, DragAndDropModule, CalendarCommonModule],\r\n declarations: [\r\n CalendarMonthViewComponent,\r\n CalendarMonthCellComponent,\r\n CalendarOpenDayEventsComponent,\r\n CalendarMonthViewHeaderComponent,\r\n ],\r\n exports: [\r\n DragAndDropModule,\r\n CalendarMonthViewComponent,\r\n CalendarMonthCellComponent,\r\n CalendarOpenDayEventsComponent,\r\n CalendarMonthViewHeaderComponent,\r\n ]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return CalendarMonthModule;\r\n}());\r\n\r\nvar CalendarDragHelper = /** @class */ (function () {\r\n function CalendarDragHelper(dragContainerElement, draggableElement) {\r\n this.dragContainerElement = dragContainerElement;\r\n this.startPosition = draggableElement.getBoundingClientRect();\r\n }\r\n CalendarDragHelper.prototype.validateDrag = function (_a) {\r\n var x = _a.x, y = _a.y, snapDraggedEvents = _a.snapDraggedEvents, dragAlreadyMoved = _a.dragAlreadyMoved, transform = _a.transform;\r\n if (snapDraggedEvents) {\r\n var newRect = Object.assign({}, this.startPosition, {\r\n left: this.startPosition.left + transform.x,\r\n right: this.startPosition.right + transform.x,\r\n top: this.startPosition.top + transform.y,\r\n bottom: this.startPosition.bottom + transform.y,\r\n });\r\n return ((isWithinThreshold({ x: x, y: y }) || dragAlreadyMoved) &&\r\n isInside(this.dragContainerElement.getBoundingClientRect(), newRect));\r\n }\r\n else {\r\n return isWithinThreshold({ x: x, y: y }) || dragAlreadyMoved;\r\n }\r\n };\r\n return CalendarDragHelper;\r\n}());\r\n\r\nvar CalendarResizeHelper = /** @class */ (function () {\r\n function CalendarResizeHelper(resizeContainerElement, minWidth) {\r\n this.resizeContainerElement = resizeContainerElement;\r\n this.minWidth = minWidth;\r\n }\r\n CalendarResizeHelper.prototype.validateResize = function (_a) {\r\n var rectangle = _a.rectangle;\r\n if (this.minWidth &&\r\n Math.ceil(rectangle.width) < Math.ceil(this.minWidth)) {\r\n return false;\r\n }\r\n return isInside(this.resizeContainerElement.getBoundingClientRect(), rectangle);\r\n };\r\n return CalendarResizeHelper;\r\n}());\r\n\r\n/**\r\n * Shows all events on a given week. Example usage:\r\n *\r\n * ```typescript\r\n * \r\n * \r\n * ```\r\n */\r\nvar CalendarWeekViewComponent = /** @class */ (function () {\r\n /**\r\n * @hidden\r\n */\r\n function CalendarWeekViewComponent(cdr, utils, locale, dateAdapter) {\r\n this.cdr = cdr;\r\n this.utils = utils;\r\n this.dateAdapter = dateAdapter;\r\n /**\r\n * An array of events to display on view\r\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\r\n */\r\n this.events = [];\r\n /**\r\n * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view\r\n */\r\n this.excludeDays = [];\r\n /**\r\n * The placement of the event tooltip\r\n */\r\n this.tooltipPlacement = 'auto';\r\n /**\r\n * Whether to append tooltips to the body or next to the trigger element\r\n */\r\n this.tooltipAppendToBody = true;\r\n /**\r\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\r\n * will be displayed immediately.\r\n */\r\n this.tooltipDelay = null;\r\n /**\r\n * The precision to display events.\r\n * `days` will round event start and end dates to the nearest day and `minutes` will not do this rounding\r\n */\r\n this.precision = 'days';\r\n /**\r\n * Whether to snap events to a grid when dragging\r\n */\r\n this.snapDraggedEvents = true;\r\n /**\r\n * The number of segments in an hour. Must be <= 6\r\n */\r\n this.hourSegments = 2;\r\n /**\r\n * The height in pixels of each hour segment\r\n */\r\n this.hourSegmentHeight = 30;\r\n /**\r\n * The day start hours in 24 hour time. Must be 0-23\r\n */\r\n this.dayStartHour = 0;\r\n /**\r\n * The day start minutes. Must be 0-59\r\n */\r\n this.dayStartMinute = 0;\r\n /**\r\n * The day end hours in 24 hour time. Must be 0-23\r\n */\r\n this.dayEndHour = 23;\r\n /**\r\n * The day end minutes. Must be 0-59\r\n */\r\n this.dayEndMinute = 59;\r\n /**\r\n * Called when a header week day is clicked. Adding a `cssClass` property on `$event.day` will add that class to the header element\r\n */\r\n this.dayHeaderClicked = new EventEmitter();\r\n /**\r\n * Called when the event title is clicked\r\n */\r\n this.eventClicked = new EventEmitter();\r\n /**\r\n * Called when an event is resized or dragged and dropped\r\n */\r\n this.eventTimesChanged = new EventEmitter();\r\n /**\r\n * An output that will be called before the view is rendered for the current week.\r\n * If you add the `cssClass` property to a day in the header it will add that class to the cell element in the template\r\n */\r\n this.beforeViewRender = new EventEmitter();\r\n /**\r\n * Called when an hour segment is clicked\r\n */\r\n this.hourSegmentClicked = new EventEmitter();\r\n /**\r\n * @hidden\r\n */\r\n this.allDayEventResizes = new Map();\r\n /**\r\n * @hidden\r\n */\r\n this.timeEventResizes = new Map();\r\n /**\r\n * @hidden\r\n */\r\n this.eventDragEnterByType = {\r\n allDay: 0,\r\n time: 0,\r\n };\r\n /**\r\n * @hidden\r\n */\r\n this.dragActive = false;\r\n /**\r\n * @hidden\r\n */\r\n this.dragAlreadyMoved = false;\r\n /**\r\n * @hidden\r\n */\r\n this.calendarId = Symbol('angular calendar week view id');\r\n /**\r\n * @hidden\r\n */\r\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\r\n /**\r\n * @hidden\r\n */\r\n this.trackByHourSegment = trackByHourSegment;\r\n /**\r\n * @hidden\r\n */\r\n this.trackByHour = trackByHour;\r\n /**\r\n * @hidden\r\n */\r\n this.trackByWeekAllDayEvent = trackByWeekAllDayEvent;\r\n /**\r\n * @hidden\r\n */\r\n this.trackByWeekTimeEvent = trackByWeekTimeEvent;\r\n /**\r\n * @hidden\r\n */\r\n this.trackByHourColumn = function (index, column) {\r\n return column.hours[0] ? column.hours[0].segments[0].date.toISOString() : column;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n this.trackById = function (index, row) { return row.id; };\r\n this.locale = locale;\r\n }\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.ngOnInit = function () {\r\n var _this = this;\r\n if (this.refresh) {\r\n this.refreshSubscription = this.refresh.subscribe(function () {\r\n _this.refreshAll();\r\n _this.cdr.markForCheck();\r\n });\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.ngOnChanges = function (changes) {\r\n var refreshHeader = changes.viewDate ||\r\n changes.excludeDays ||\r\n changes.weekendDays ||\r\n changes.daysInWeek ||\r\n changes.weekStartsOn;\r\n var refreshBody = changes.viewDate ||\r\n changes.dayStartHour ||\r\n changes.dayStartMinute ||\r\n changes.dayEndHour ||\r\n changes.dayEndMinute ||\r\n changes.hourSegments ||\r\n changes.weekStartsOn ||\r\n changes.weekendDays ||\r\n changes.excludeDays ||\r\n changes.hourSegmentHeight ||\r\n changes.events ||\r\n changes.daysInWeek;\r\n if (refreshHeader) {\r\n this.refreshHeader();\r\n }\r\n if (changes.events) {\r\n validateEvents(this.events);\r\n }\r\n if (refreshBody) {\r\n this.refreshBody();\r\n }\r\n if (refreshHeader || refreshBody) {\r\n this.emitBeforeViewRender();\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.ngOnDestroy = function () {\r\n if (this.refreshSubscription) {\r\n this.refreshSubscription.unsubscribe();\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.timeEventResizeStarted = function (eventsContainer, timeEvent, resizeEvent) {\r\n this.timeEventResizes.set(timeEvent.event, resizeEvent);\r\n this.resizeStarted(eventsContainer);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.timeEventResizing = function (timeEvent, resizeEvent) {\r\n var _this = this;\r\n this.timeEventResizes.set(timeEvent.event, resizeEvent);\r\n var adjustedEvents = new Map();\r\n var tempEvents = __spread(this.events);\r\n this.timeEventResizes.forEach(function (lastResizeEvent, event) {\r\n var newEventDates = _this.getTimeEventResizedDates(event, lastResizeEvent);\r\n var adjustedEvent = __assign({}, event, newEventDates);\r\n adjustedEvents.set(adjustedEvent, event);\r\n var eventIndex = tempEvents.indexOf(event);\r\n tempEvents[eventIndex] = adjustedEvent;\r\n });\r\n this.restoreOriginalEvents(tempEvents, adjustedEvents);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.timeEventResizeEnded = function (timeEvent) {\r\n this.view = this.getWeekView(this.events);\r\n var lastResizeEvent = this.timeEventResizes.get(timeEvent.event);\r\n if (lastResizeEvent) {\r\n this.timeEventResizes.delete(timeEvent.event);\r\n var newEventDates = this.getTimeEventResizedDates(timeEvent.event, lastResizeEvent);\r\n this.eventTimesChanged.emit({\r\n newStart: newEventDates.start,\r\n newEnd: newEventDates.end,\r\n event: timeEvent.event,\r\n type: CalendarEventTimesChangedEventType.Resize,\r\n });\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.allDayEventResizeStarted = function (allDayEventsContainer, allDayEvent, resizeEvent) {\r\n this.allDayEventResizes.set(allDayEvent, {\r\n originalOffset: allDayEvent.offset,\r\n originalSpan: allDayEvent.span,\r\n edge: typeof resizeEvent.edges.left !== 'undefined' ? 'left' : 'right',\r\n });\r\n this.resizeStarted(allDayEventsContainer, this.getDayColumnWidth(allDayEventsContainer));\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.allDayEventResizing = function (allDayEvent, resizeEvent, dayWidth) {\r\n var currentResize = this.allDayEventResizes.get(allDayEvent);\r\n if (typeof resizeEvent.edges.left !== 'undefined') {\r\n var diff = Math.round(+resizeEvent.edges.left / dayWidth);\r\n allDayEvent.offset = currentResize.originalOffset + diff;\r\n allDayEvent.span = currentResize.originalSpan - diff;\r\n }\r\n else if (typeof resizeEvent.edges.right !== 'undefined') {\r\n var diff = Math.round(+resizeEvent.edges.right / dayWidth);\r\n allDayEvent.span = currentResize.originalSpan + diff;\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.allDayEventResizeEnded = function (allDayEvent) {\r\n var currentResize = this.allDayEventResizes.get(allDayEvent);\r\n if (currentResize) {\r\n var allDayEventResizingBeforeStart = currentResize.edge === 'left';\r\n var daysDiff = void 0;\r\n if (allDayEventResizingBeforeStart) {\r\n daysDiff = allDayEvent.offset - currentResize.originalOffset;\r\n }\r\n else {\r\n daysDiff = allDayEvent.span - currentResize.originalSpan;\r\n }\r\n allDayEvent.offset = currentResize.originalOffset;\r\n allDayEvent.span = currentResize.originalSpan;\r\n var newStart = allDayEvent.event.start;\r\n var newEnd = allDayEvent.event.end || allDayEvent.event.start;\r\n if (allDayEventResizingBeforeStart) {\r\n newStart = addDaysWithExclusions(this.dateAdapter, newStart, daysDiff, this.excludeDays);\r\n }\r\n else {\r\n newEnd = addDaysWithExclusions(this.dateAdapter, newEnd, daysDiff, this.excludeDays);\r\n }\r\n this.eventTimesChanged.emit({\r\n newStart: newStart,\r\n newEnd: newEnd,\r\n event: allDayEvent.event,\r\n type: CalendarEventTimesChangedEventType.Resize,\r\n });\r\n this.allDayEventResizes.delete(allDayEvent);\r\n }\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.getDayColumnWidth = function (eventRowContainer) {\r\n return Math.floor(eventRowContainer.offsetWidth / this.days.length);\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dateDragEnter = function (date) {\r\n this.lastDragEnterDate = date;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.eventDropped = function (dropEvent, date, allDay) {\r\n if (shouldFireDroppedEvent(dropEvent, date, allDay, this.calendarId) &&\r\n this.lastDragEnterDate.getTime() === date.getTime() &&\r\n (!this.snapDraggedEvents ||\r\n dropEvent.dropData.event !== this.lastDraggedEvent)) {\r\n this.eventTimesChanged.emit({\r\n type: CalendarEventTimesChangedEventType.Drop,\r\n event: dropEvent.dropData.event,\r\n newStart: date,\r\n allDay: allDay,\r\n });\r\n }\r\n this.lastDraggedEvent = null;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dragEnter = function (type) {\r\n this.eventDragEnterByType[type]++;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dragLeave = function (type) {\r\n this.eventDragEnterByType[type]--;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dragStarted = function (eventsContainer, event, dayEvent) {\r\n var _this = this;\r\n this.dayColumnWidth = this.getDayColumnWidth(eventsContainer);\r\n var dragHelper = new CalendarDragHelper(eventsContainer, event);\r\n this.validateDrag = function (_a) {\r\n var x = _a.x, y = _a.y, transform = _a.transform;\r\n return _this.allDayEventResizes.size === 0 &&\r\n _this.timeEventResizes.size === 0 &&\r\n dragHelper.validateDrag({\r\n x: x,\r\n y: y,\r\n snapDraggedEvents: _this.snapDraggedEvents,\r\n dragAlreadyMoved: _this.dragAlreadyMoved,\r\n transform: transform,\r\n });\r\n };\r\n this.dragActive = true;\r\n this.dragAlreadyMoved = false;\r\n this.lastDraggedEvent = null;\r\n this.eventDragEnterByType = {\r\n allDay: 0,\r\n time: 0,\r\n };\r\n if (!this.snapDraggedEvents && dayEvent) {\r\n this.view.hourColumns.forEach(function (column) {\r\n var linkedEvent = column.events.find(function (columnEvent) {\r\n return columnEvent.event === dayEvent.event && columnEvent !== dayEvent;\r\n });\r\n // hide any linked events while dragging\r\n if (linkedEvent) {\r\n linkedEvent.width = 0;\r\n linkedEvent.height = 0;\r\n }\r\n });\r\n }\r\n this.cdr.markForCheck();\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dragMove = function (dayEvent, dragEvent) {\r\n if (this.snapDraggedEvents) {\r\n var newEventTimes = this.getDragMovedEventTimes(dayEvent, dragEvent, this.dayColumnWidth, true);\r\n var originalEvent_1 = dayEvent.event;\r\n var adjustedEvent_1 = __assign({}, originalEvent_1, newEventTimes);\r\n var tempEvents = this.events.map(function (event) {\r\n if (event === originalEvent_1) {\r\n return adjustedEvent_1;\r\n }\r\n return event;\r\n });\r\n this.restoreOriginalEvents(tempEvents, new Map([[adjustedEvent_1, originalEvent_1]]));\r\n }\r\n this.dragAlreadyMoved = true;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.allDayEventDragMove = function () {\r\n this.dragAlreadyMoved = true;\r\n };\r\n /**\r\n * @hidden\r\n */\r\n CalendarWeekViewComponent.prototype.dragEnded = function (weekEvent, dragEndEvent, dayWidth, useY) {\r\n if (useY === void 0) { useY = false; }\r\n this.view = this.getWeekView(this.events);\r\n this.dragActive = false;\r\n this.validateDrag = null;\r\n var _a = this.getDragMovedEventTimes(weekEvent, dragEndEvent, dayWidth, useY), start = _a.start, end = _a.end;\r\n if ((this.snapDraggedEvents ||\r\n this.eventDragEnterByType[useY ? 'time' : 'allDay'] > 0) &&\r\n isDraggedWithinPeriod(start, end, this.view.period)) {\r\n this.lastDraggedEvent = weekEvent.event;\r\n this.eventTimesChanged.emit({\r\n newStart: start,\r\n newEnd: end,\r\n event: weekEvent.event,\r\n type: CalendarEventTimesChangedEventType.Drag,\r\n allDay: !useY,\r\n });\r\n }\r\n };\r\n CalendarWeekViewComponent.prototype.refreshHeader = function () {\r\n this.days = this.utils.getWeekViewHeader(__assign({ viewDate: this.viewDate, weekStartsOn: this.weekStartsOn, excluded: this.excludeDays, weekendDays: this.weekendDays }, getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek)));\r\n };\r\n CalendarWeekViewComponent.prototype.refreshBody = function () {\r\n this.view = this.getWeekView(this.events);\r\n };\r\n CalendarWeekViewComponent.prototype.refreshAll = function () {\r\n this.refreshHeader();\r\n this.refreshBody();\r\n this.emitBeforeViewRender();\r\n };\r\n CalendarWeekViewComponent.prototype.emitBeforeViewRender = function () {\r\n if (this.days && this.view) {\r\n this.beforeViewRender.emit(__assign({ header: this.days }, this.view));\r\n }\r\n };\r\n CalendarWeekViewComponent.prototype.getWeekView = function (events) {\r\n return this.utils.getWeekView(__assign({ events: events, viewDate: this.viewDate, weekStartsOn: this.weekStartsOn, excluded: this.excludeDays, precision: this.precision, absolutePositionedEvents: true, hourSegments: this.hourSegments, dayStart: {\r\n hour: this.dayStartHour,\r\n minute: this.dayStartMinute,\r\n }, dayEnd: {\r\n hour: this.dayEndHour,\r\n minute: this.dayEndMinute,\r\n }, segmentHeight: this.hourSegmentHeight, weekendDays: this.weekendDays }, getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek)));\r\n };\r\n CalendarWeekViewComponent.prototype.getDragMovedEventTimes = function (weekEvent, dragEndEvent, dayWidth, useY) {\r\n var daysDragged = roundToNearest(dragEndEvent.x, dayWidth) / dayWidth;\r\n var minutesMoved = useY\r\n ? getMinutesMoved(dragEndEvent.y, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize)\r\n : 0;\r\n var start = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.start, daysDragged, this.excludeDays), minutesMoved);\r\n var end;\r\n if (weekEvent.event.end) {\r\n end = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.end, daysDragged, this.excludeDays), minutesMoved);\r\n }\r\n return { start: start, end: end };\r\n };\r\n CalendarWeekViewComponent.prototype.restoreOriginalEvents = function (tempEvents, adjustedEvents) {\r\n var previousView = this.view;\r\n this.view = this.getWeekView(tempEvents);\r\n var adjustedEventsArray = tempEvents.filter(function (event) {\r\n return adjustedEvents.has(event);\r\n });\r\n this.view.hourColumns.forEach(function (column, columnIndex) {\r\n previousView.hourColumns[columnIndex].hours.forEach(function (hour, hourIndex) {\r\n hour.segments.forEach(function (segment, segmentIndex) {\r\n column.hours[hourIndex].segments[segmentIndex].cssClass =\r\n segment.cssClass;\r\n });\r\n });\r\n adjustedEventsArray.forEach(function (adjustedEvent) {\r\n var originalEvent = adjustedEvents.get(adjustedEvent);\r\n var existingColumnEvent = column.events.find(function (columnEvent) { return columnEvent.event === adjustedEvent; });\r\n if (existingColumnEvent) {\r\n // restore the original event so trackBy kicks in and the dom isn't changed\r\n existingColumnEvent.event = originalEvent;\r\n }\r\n else {\r\n // add a dummy event to the drop so if the event was removed from the original column the drag doesn't end early\r\n column.events.push({\r\n event: originalEvent,\r\n left: 0,\r\n top: 0,\r\n height: 0,\r\n width: 0,\r\n startsBeforeDay: false,\r\n endsAfterDay: false,\r\n });\r\n }\r\n });\r\n });\r\n adjustedEvents.clear();\r\n };\r\n CalendarWeekViewComponent.prototype.getTimeEventResizedDates = function (calendarEvent, resizeEvent) {\r\n var minimumEventHeight = getMinimumEventHeightInMinutes(this.hourSegments, this.hourSegmentHeight);\r\n var newEventDates = {\r\n start: calendarEvent.start,\r\n end: getDefaultEventEnd(this.dateAdapter, calendarEvent, minimumEventHeight),\r\n };\r\n var end = calendarEvent.end, eventWithoutEnd = __rest(calendarEvent, [\"end\"]);\r\n var smallestResizes = {\r\n start: this.dateAdapter.addMinutes(newEventDates.end, minimumEventHeight * -1),\r\n end: getDefaultEventEnd(this.dateAdapter, eventWithoutEnd, minimumEventHeight),\r\n };\r\n if (typeof resizeEvent.edges.left !== 'undefined') {\r\n var daysDiff = Math.round(+resizeEvent.edges.left / this.dayColumnWidth);\r\n var newStart = addDaysWithExclusions(this.dateAdapter, newEventDates.start, daysDiff, this.excludeDays);\r\n if (newStart < smallestResizes.start) {\r\n newEventDates.start = newStart;\r\n }\r\n else {\r\n newEventDates.start = smallestResizes.start;\r\n }\r\n }\r\n else if (typeof resizeEvent.edges.right !== 'undefined') {\r\n var daysDiff = Math.round(+resizeEvent.edges.right / this.dayColumnWidth);\r\n var newEnd = addDaysWithExclusions(this.dateAdapter, newEventDates.end, daysDiff, this.excludeDays);\r\n if (newEnd > smallestResizes.end) {\r\n newEventDates.end = newEnd;\r\n }\r\n else {\r\n newEventDates.end = smallestResizes.end;\r\n }\r\n }\r\n if (typeof resizeEvent.edges.top !== 'undefined') {\r\n var minutesMoved = getMinutesMoved(resizeEvent.edges.top, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize);\r\n var newStart = this.dateAdapter.addMinutes(newEventDates.start, minutesMoved);\r\n if (newStart < smallestResizes.start) {\r\n newEventDates.start = newStart;\r\n }\r\n else {\r\n newEventDates.start = smallestResizes.start;\r\n }\r\n }\r\n else if (typeof resizeEvent.edges.bottom !== 'undefined') {\r\n var minutesMoved = getMinutesMoved(resizeEvent.edges.bottom, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize);\r\n var newEnd = this.dateAdapter.addMinutes(newEventDates.end, minutesMoved);\r\n if (newEnd > smallestResizes.end) {\r\n newEventDates.end = newEnd;\r\n }\r\n else {\r\n newEventDates.end = smallestResizes.end;\r\n }\r\n }\r\n return newEventDates;\r\n };\r\n CalendarWeekViewComponent.prototype.resizeStarted = function (eventsContainer, minWidth) {\r\n this.dayColumnWidth = this.getDayColumnWidth(eventsContainer);\r\n var resizeHelper = new CalendarResizeHelper(eventsContainer, minWidth);\r\n this.validateResize = function (_a) {\r\n var rectangle = _a.rectangle;\r\n return resizeHelper.validateResize({ rectangle: rectangle });\r\n };\r\n this.cdr.markForCheck();\r\n };\r\n CalendarWeekViewComponent.ctorParameters = function () { return [\r\n { type: ChangeDetectorRef },\r\n { type: CalendarUtils },\r\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] },\r\n { type: DateAdapter }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"events\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"excludeDays\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"refresh\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"tooltipPlacement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"tooltipAppendToBody\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"tooltipDelay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"weekStartsOn\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"headerTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"eventTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"eventTitleTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"eventActionsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"precision\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"weekendDays\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"snapDraggedEvents\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"hourSegments\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"hourSegmentHeight\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"dayStartHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"dayStartMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"dayEndHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"dayEndMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"hourSegmentTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"eventSnapSize\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"allDayEventsLabelTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"daysInWeek\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewComponent.prototype, \"currentTimeMarkerTemplate\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewComponent.prototype, \"dayHeaderClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewComponent.prototype, \"eventClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewComponent.prototype, \"eventTimesChanged\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewComponent.prototype, \"beforeViewRender\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewComponent.prototype, \"hourSegmentClicked\", void 0);\r\n CalendarWeekViewComponent = __decorate([ __param(2, Inject(LOCALE_ID))\r\n ], CalendarWeekViewComponent);\r\nCalendarWeekViewComponent.ɵfac = function CalendarWeekViewComponent_Factory(t) { return new (t || CalendarWeekViewComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(CalendarUtils), ɵngcc0.ɵɵdirectiveInject(LOCALE_ID), ɵngcc0.ɵɵdirectiveInject(DateAdapter)); };\r\nCalendarWeekViewComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarWeekViewComponent, selectors: [[\"mwl-calendar-week-view\"]], inputs: { events: \"events\", excludeDays: \"excludeDays\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", precision: \"precision\", snapDraggedEvents: \"snapDraggedEvents\", hourSegments: \"hourSegments\", hourSegmentHeight: \"hourSegmentHeight\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", locale: \"locale\", viewDate: \"viewDate\", refresh: \"refresh\", tooltipTemplate: \"tooltipTemplate\", weekStartsOn: \"weekStartsOn\", headerTemplate: \"headerTemplate\", eventTemplate: \"eventTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", weekendDays: \"weekendDays\", hourSegmentTemplate: \"hourSegmentTemplate\", eventSnapSize: \"eventSnapSize\", allDayEventsLabelTemplate: \"allDayEventsLabelTemplate\", daysInWeek: \"daysInWeek\", currentTimeMarkerTemplate: \"currentTimeMarkerTemplate\" }, outputs: { dayHeaderClicked: \"dayHeaderClicked\", eventClicked: \"eventClicked\", eventTimesChanged: \"eventTimesChanged\", beforeViewRender: \"beforeViewRender\", hourSegmentClicked: \"hourSegmentClicked\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 9, consts: [[\"role\", \"grid\", 1, \"cal-week-view\"], [3, \"days\", \"locale\", \"customTemplate\", \"dayHeaderClicked\", \"eventDropped\", \"dragEnter\"], [\"class\", \"cal-all-day-events\", \"mwlDroppable\", \"\", 3, \"dragEnter\", \"dragLeave\", 4, \"ngIf\"], [\"mwlDroppable\", \"\", 1, \"cal-time-events\", 3, \"dragEnter\", \"dragLeave\"], [\"class\", \"cal-time-label-column\", 4, \"ngIf\"], [1, \"cal-day-columns\"], [\"dayColumns\", \"\"], [\"class\", \"cal-day-column\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDroppable\", \"\", 1, \"cal-all-day-events\", 3, \"dragEnter\", \"dragLeave\"], [\"allDayEventsContainer\", \"\"], [1, \"cal-time-label-column\", 3, \"ngTemplateOutlet\"], [\"class\", \"cal-day-column\", \"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", 3, \"drop\", \"dragEnter\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"class\", \"cal-events-row\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", 1, \"cal-day-column\", 3, \"drop\", \"dragEnter\"], [1, \"cal-events-row\"], [\"eventRowContainer\", \"\"], [\"class\", \"cal-event-container\", \"mwlResizable\", \"\", \"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"cal-draggable\", \"cal-starts-within-week\", \"cal-ends-within-week\", \"ngClass\", \"width\", \"marginLeft\", \"resizeSnapGrid\", \"validateResize\", \"dropData\", \"dragAxis\", \"dragSnapGrid\", \"validateDrag\", \"touchStartLongPress\", \"resizeStart\", \"resizing\", \"resizeEnd\", \"dragStart\", \"dragging\", \"dragEnd\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlResizable\", \"\", \"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 1, \"cal-event-container\", 3, \"ngClass\", \"resizeSnapGrid\", \"validateResize\", \"dropData\", \"dragAxis\", \"dragSnapGrid\", \"validateDrag\", \"touchStartLongPress\", \"resizeStart\", \"resizing\", \"resizeEnd\", \"dragStart\", \"dragging\", \"dragEnd\"], [\"event\", \"\"], [\"class\", \"cal-resize-handle cal-resize-handle-before-start\", \"mwlResizeHandle\", \"\", 3, \"resizeEdges\", 4, \"ngIf\"], [3, \"locale\", \"weekEvent\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"customTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"daysInWeek\", \"eventClicked\"], [\"class\", \"cal-resize-handle cal-resize-handle-after-end\", \"mwlResizeHandle\", \"\", 3, \"resizeEdges\", 4, \"ngIf\"], [\"mwlResizeHandle\", \"\", 1, \"cal-resize-handle\", \"cal-resize-handle-before-start\", 3, \"resizeEdges\"], [\"mwlResizeHandle\", \"\", 1, \"cal-resize-handle\", \"cal-resize-handle-after-end\", 3, \"resizeEdges\"], [1, \"cal-time-label-column\"], [\"class\", \"cal-hour\", 3, \"cal-hour-odd\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [1, \"cal-hour\"], [3, \"height\", \"segment\", \"segmentHeight\", \"locale\", \"customTemplate\", \"isTimeLabel\", \"daysInWeek\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"segment\", \"segmentHeight\", \"locale\", \"customTemplate\", \"isTimeLabel\", \"daysInWeek\"], [1, \"cal-day-column\"], [3, \"columnDate\", \"dayStartHour\", \"dayStartMinute\", \"dayEndHour\", \"dayEndMinute\", \"hourSegments\", \"hourSegmentHeight\", \"customTemplate\"], [1, \"cal-events-container\"], [\"class\", \"cal-event-container\", \"mwlResizable\", \"\", \"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"cal-draggable\", \"cal-starts-within-day\", \"cal-ends-within-day\", \"ngClass\", \"hidden\", \"top\", \"height\", \"left\", \"width\", \"resizeSnapGrid\", \"validateResize\", \"allowNegativeResizes\", \"dropData\", \"dragAxis\", \"dragSnapGrid\", \"touchStartLongPress\", \"ghostDragEnabled\", \"validateDrag\", \"resizeStart\", \"resizing\", \"resizeEnd\", \"dragStart\", \"dragging\", \"dragEnd\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlResizable\", \"\", \"mwlDraggable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 1, \"cal-event-container\", 3, \"ngClass\", \"hidden\", \"resizeSnapGrid\", \"validateResize\", \"allowNegativeResizes\", \"dropData\", \"dragAxis\", \"dragSnapGrid\", \"touchStartLongPress\", \"ghostDragEnabled\", \"validateDrag\", \"resizeStart\", \"resizing\", \"resizeEnd\", \"dragStart\", \"dragging\", \"dragEnd\"], [3, \"locale\", \"weekEvent\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDisabled\", \"tooltipDelay\", \"customTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"column\", \"daysInWeek\", \"eventClicked\"], [\"mwlDroppable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"height\", \"segment\", \"segmentHeight\", \"locale\", \"customTemplate\", \"daysInWeek\", \"clickListenerDisabled\", \"dragOverClass\", \"isTimeLabel\", \"mwlClick\", \"drop\", \"dragEnter\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDroppable\", \"\", \"dragActiveClass\", \"cal-drag-active\", 3, \"segment\", \"segmentHeight\", \"locale\", \"customTemplate\", \"daysInWeek\", \"clickListenerDisabled\", \"dragOverClass\", \"isTimeLabel\", \"mwlClick\", \"drop\", \"dragEnter\"]], template: function CalendarWeekViewComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\r\n ɵngcc0.ɵɵelementStart(1, \"mwl-calendar-week-view-header\", 1);\r\n ɵngcc0.ɵɵlistener(\"dayHeaderClicked\", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_dayHeaderClicked_1_listener($event) { return ctx.dayHeaderClicked.emit($event); })(\"eventDropped\", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_eventDropped_1_listener($event) { return ctx.eventDropped({ dropData: $event }, $event.newStart, true); })(\"dragEnter\", function CalendarWeekViewComponent_Template_mwl_calendar_week_view_header_dragEnter_1_listener($event) { return ctx.dateDragEnter($event.date); });\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewComponent_div_2_Template, 6, 5, \"div\", 2);\r\n ɵngcc0.ɵɵelementStart(3, \"div\", 3);\r\n ɵngcc0.ɵɵlistener(\"dragEnter\", function CalendarWeekViewComponent_Template_div_dragEnter_3_listener() { return ctx.dragEnter(\"time\"); })(\"dragLeave\", function CalendarWeekViewComponent_Template_div_dragLeave_3_listener() { return ctx.dragLeave(\"time\"); });\r\n ɵngcc0.ɵɵtemplate(4, CalendarWeekViewComponent_div_4_Template, 2, 2, \"div\", 4);\r\n ɵngcc0.ɵɵelementStart(5, \"div\", 5, 6);\r\n ɵngcc0.ɵɵtemplate(7, CalendarWeekViewComponent_div_7_Template, 5, 12, \"div\", 7);\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n ɵngcc0.ɵɵelementEnd();\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"days\", ctx.days)(\"locale\", ctx.locale)(\"customTemplate\", ctx.headerTemplate);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.view.allDayEventRows.length > 0);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.view.hourColumns.length > 0 && ctx.daysInWeek !== 1);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵclassProp(\"cal-resize-active\", ctx.timeEventResizes.size > 0);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.view.hourColumns)(\"ngForTrackBy\", ctx.trackByHourColumn);\r\n } }, directives: function () { return [CalendarWeekViewHeaderComponent, ɵngcc1.NgIf, ɵngcc2.ɵa, ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet, ɵngcc3.ResizableDirective, ɵngcc2.ɵb, ɵngcc1.NgClass, CalendarWeekViewEventComponent, ɵngcc3.ResizeHandleDirective, CalendarWeekViewHourSegmentComponent,\r\n CalendarWeekViewCurrentTimeMarkerComponent,\r\n ClickDirective]; }, encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-week-view',\r\n template: \"\\n
      \\n \\n \\n 0\\\"\\n mwlDroppable\\n (dragEnter)=\\\"dragEnter('allDay')\\\"\\n (dragLeave)=\\\"dragLeave('allDay')\\\"\\n >\\n
      \\n
      \\n
      \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n 0 && daysInWeek !== 1\\\"\\n >\\n \\n \\n \\n \\n \\n 0\\\"\\n #dayColumns\\n >\\n \\n \\n
      \\n \\n
      \\n 0\\\"\\n [tooltipDelay]=\\\"tooltipDelay\\\"\\n [customTemplate]=\\\"eventTemplate\\\"\\n [eventTitleTemplate]=\\\"eventTitleTemplate\\\"\\n [eventActionsTemplate]=\\\"eventActionsTemplate\\\"\\n [column]=\\\"column\\\"\\n [daysInWeek]=\\\"daysInWeek\\\"\\n (eventClicked)=\\\"\\n eventClicked.emit({\\n event: timeEvent.event,\\n sourceEvent: $event.sourceEvent\\n })\\n \\\"\\n >\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: CalendarUtils }, { type: String, decorators: [{\r\n type: Inject,\r\n args: [LOCALE_ID]\r\n }] }, { type: DateAdapter }]; }, { events: [{\r\n type: Input\r\n }], excludeDays: [{\r\n type: Input\r\n }], tooltipPlacement: [{\r\n type: Input\r\n }], tooltipAppendToBody: [{\r\n type: Input\r\n }], tooltipDelay: [{\r\n type: Input\r\n }], precision: [{\r\n type: Input\r\n }], snapDraggedEvents: [{\r\n type: Input\r\n }], hourSegments: [{\r\n type: Input\r\n }], hourSegmentHeight: [{\r\n type: Input\r\n }], dayStartHour: [{\r\n type: Input\r\n }], dayStartMinute: [{\r\n type: Input\r\n }], dayEndHour: [{\r\n type: Input\r\n }], dayEndMinute: [{\r\n type: Input\r\n }], dayHeaderClicked: [{\r\n type: Output\r\n }], eventClicked: [{\r\n type: Output\r\n }], eventTimesChanged: [{\r\n type: Output\r\n }], beforeViewRender: [{\r\n type: Output\r\n }], hourSegmentClicked: [{\r\n type: Output\r\n }], locale: [{\r\n type: Input\r\n }], viewDate: [{\r\n type: Input\r\n }], refresh: [{\r\n type: Input\r\n }], tooltipTemplate: [{\r\n type: Input\r\n }], weekStartsOn: [{\r\n type: Input\r\n }], headerTemplate: [{\r\n type: Input\r\n }], eventTemplate: [{\r\n type: Input\r\n }], eventTitleTemplate: [{\r\n type: Input\r\n }], eventActionsTemplate: [{\r\n type: Input\r\n }], weekendDays: [{\r\n type: Input\r\n }], hourSegmentTemplate: [{\r\n type: Input\r\n }], eventSnapSize: [{\r\n type: Input\r\n }], allDayEventsLabelTemplate: [{\r\n type: Input\r\n }], daysInWeek: [{\r\n type: Input\r\n }], currentTimeMarkerTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarWeekViewComponent;\r\n}());\r\n\r\nvar CalendarWeekViewHeaderComponent = /** @class */ (function () {\r\n function CalendarWeekViewHeaderComponent() {\r\n this.dayHeaderClicked = new EventEmitter();\r\n this.eventDropped = new EventEmitter();\r\n this.dragEnter = new EventEmitter();\r\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"days\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"dayHeaderClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"eventDropped\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewHeaderComponent.prototype, \"dragEnter\", void 0);\r\nCalendarWeekViewHeaderComponent.ɵfac = function CalendarWeekViewHeaderComponent_Factory(t) { return new (t || CalendarWeekViewHeaderComponent)(); };\r\nCalendarWeekViewHeaderComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarWeekViewHeaderComponent, selectors: [[\"mwl-calendar-week-view-header\"]], inputs: { days: \"days\", locale: \"locale\", customTemplate: \"customTemplate\" }, outputs: { dayHeaderClicked: \"dayHeaderClicked\", eventDropped: \"eventDropped\", dragEnter: \"dragEnter\" }, decls: 3, vars: 9, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"row\", 1, \"cal-day-headers\"], [\"class\", \"cal-header\", \"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", \"tabindex\", \"0\", \"role\", \"columnheader\", 3, \"cal-past\", \"cal-today\", \"cal-future\", \"cal-weekend\", \"ngClass\", \"mwlClick\", \"drop\", \"dragEnter\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"mwlDroppable\", \"\", \"dragOverClass\", \"cal-drag-over\", \"tabindex\", \"0\", \"role\", \"columnheader\", 1, \"cal-header\", 3, \"ngClass\", \"mwlClick\", \"drop\", \"dragEnter\"]], template: function CalendarWeekViewHeaderComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarWeekViewHeaderComponent_ng_template_0_Template, 2, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewHeaderComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r999 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r999)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction6(2, _c24, ctx.days, ctx.locale, ctx.dayHeaderClicked, ctx.eventDropped, ctx.dragEnter, ctx.trackByWeekDayHeaderDate));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgForOf, ɵngcc2.ɵa, ɵngcc1.NgClass, ClickDirective], pipes: [CalendarDatePipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekViewHeaderComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-week-view-header',\r\n template: \"\\n \\n
      \\n \\n {{ day.date | calendarDate: 'weekViewColumnHeader':locale }}
      \\n {{\\n day.date | calendarDate: 'weekViewColumnSubHeader':locale\\n }}\\n
      \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { dayHeaderClicked: [{\r\n type: Output\r\n }], eventDropped: [{\r\n type: Output\r\n }], dragEnter: [{\r\n type: Output\r\n }], days: [{\r\n type: Input\r\n }], locale: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarWeekViewHeaderComponent;\r\n}());\r\n\r\nvar CalendarWeekViewEventComponent = /** @class */ (function () {\r\n function CalendarWeekViewEventComponent() {\r\n this.eventClicked = new EventEmitter();\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"weekEvent\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"tooltipPlacement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"tooltipAppendToBody\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"tooltipDisabled\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"tooltipDelay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"customTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"eventTitleTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"eventActionsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"column\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewEventComponent.prototype, \"daysInWeek\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarWeekViewEventComponent.prototype, \"eventClicked\", void 0);\r\nCalendarWeekViewEventComponent.ɵfac = function CalendarWeekViewEventComponent_Factory(t) { return new (t || CalendarWeekViewEventComponent)(); };\r\nCalendarWeekViewEventComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarWeekViewEventComponent, selectors: [[\"mwl-calendar-week-view-event\"]], inputs: { locale: \"locale\", weekEvent: \"weekEvent\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDisabled: \"tooltipDisabled\", tooltipDelay: \"tooltipDelay\", customTemplate: \"customTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", tooltipTemplate: \"tooltipTemplate\", column: \"column\", daysInWeek: \"daysInWeek\" }, outputs: { eventClicked: \"eventClicked\" }, decls: 3, vars: 12, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"tabindex\", \"0\", \"role\", \"application\", 1, \"cal-event\", 3, \"ngStyle\", \"mwlCalendarTooltip\", \"tooltipPlacement\", \"tooltipEvent\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"mwlClick\", \"mwlKeydownEnter\"], [3, \"event\", \"customTemplate\"], [3, \"event\", \"customTemplate\", \"view\"]], template: function CalendarWeekViewEventComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarWeekViewEventComponent_ng_template_0_Template, 6, 26, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewEventComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r1018 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r1018)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunctionV(2, _c26, [ctx.weekEvent, ctx.tooltipPlacement, ctx.eventClicked, ctx.tooltipTemplate, ctx.tooltipAppendToBody, ctx.tooltipDisabled, ctx.tooltipDelay, ctx.column, ctx.daysInWeek]));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgStyle, CalendarTooltipDirective,\r\n ClickDirective,\r\n KeydownEnterDirective,\r\n CalendarEventActionsComponent,\r\n CalendarEventTitleComponent], pipes: [CalendarEventTitlePipe,\r\n CalendarA11yPipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekViewEventComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-week-view-event',\r\n template: \"\\n \\n \\n \\n \\n &ngsp;\\n \\n \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { eventClicked: [{\r\n type: Output\r\n }], locale: [{\r\n type: Input\r\n }], weekEvent: [{\r\n type: Input\r\n }], tooltipPlacement: [{\r\n type: Input\r\n }], tooltipAppendToBody: [{\r\n type: Input\r\n }], tooltipDisabled: [{\r\n type: Input\r\n }], tooltipDelay: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }], eventTitleTemplate: [{\r\n type: Input\r\n }], eventActionsTemplate: [{\r\n type: Input\r\n }], tooltipTemplate: [{\r\n type: Input\r\n }], column: [{\r\n type: Input\r\n }], daysInWeek: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarWeekViewEventComponent;\r\n}());\r\n\r\nvar CalendarWeekViewHourSegmentComponent = /** @class */ (function () {\r\n function CalendarWeekViewHourSegmentComponent() {\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"segment\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"segmentHeight\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"isTimeLabel\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"daysInWeek\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewHourSegmentComponent.prototype, \"customTemplate\", void 0);\r\nCalendarWeekViewHourSegmentComponent.ɵfac = function CalendarWeekViewHourSegmentComponent_Factory(t) { return new (t || CalendarWeekViewHourSegmentComponent)(); };\r\nCalendarWeekViewHourSegmentComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarWeekViewHourSegmentComponent, selectors: [[\"mwl-calendar-week-view-hour-segment\"]], inputs: { segment: \"segment\", segmentHeight: \"segmentHeight\", locale: \"locale\", isTimeLabel: \"isTimeLabel\", daysInWeek: \"daysInWeek\", customTemplate: \"customTemplate\" }, decls: 3, vars: 8, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"cal-hour-segment\", 3, \"ngClass\"], [\"class\", \"cal-time\", 4, \"ngIf\"], [1, \"cal-time\"]], template: function CalendarWeekViewHourSegmentComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarWeekViewHourSegmentComponent_ng_template_0_Template, 3, 13, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewHourSegmentComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n } if (rf & 2) {\r\n var _r1033 = ɵngcc0.ɵɵreference(1);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r1033)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction5(2, _c27, ctx.segment, ctx.locale, ctx.segmentHeight, ctx.isTimeLabel, ctx.daysInWeek));\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgClass, ɵngcc1.NgIf], pipes: [CalendarA11yPipe,\r\n CalendarDatePipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekViewHourSegmentComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-week-view-hour-segment',\r\n template: \"\\n \\n \\n
      \\n {{\\n segment.displayDate\\n | calendarDate\\n : (daysInWeek === 1 ? 'dayViewHour' : 'weekViewHour')\\n : locale\\n }}\\n
      \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return []; }, { segment: [{\r\n type: Input\r\n }], segmentHeight: [{\r\n type: Input\r\n }], locale: [{\r\n type: Input\r\n }], isTimeLabel: [{\r\n type: Input\r\n }], daysInWeek: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarWeekViewHourSegmentComponent;\r\n}());\r\n\r\nvar CalendarWeekViewCurrentTimeMarkerComponent = /** @class */ (function () {\r\n function CalendarWeekViewCurrentTimeMarkerComponent(dateAdapter, zone) {\r\n var _this = this;\r\n this.dateAdapter = dateAdapter;\r\n this.zone = zone;\r\n this.columnDate$ = new BehaviorSubject(this.columnDate);\r\n this.marker$ = this.zone.onStable.pipe(switchMap(function () { return interval(60 * 1000); }), startWith(0), switchMapTo(this.columnDate$), map(function (columnDate) {\r\n var startOfDay = _this.dateAdapter.setMinutes(_this.dateAdapter.setHours(columnDate, _this.dayStartHour), _this.dayStartMinute);\r\n var endOfDay = _this.dateAdapter.setMinutes(_this.dateAdapter.setHours(columnDate, _this.dayEndHour), _this.dayEndMinute);\r\n var hourHeightModifier = (_this.hourSegments * _this.hourSegmentHeight) / 60;\r\n var now = new Date();\r\n return {\r\n isVisible: _this.dateAdapter.isSameDay(columnDate, now) &&\r\n now >= startOfDay &&\r\n now <= endOfDay,\r\n top: _this.dateAdapter.differenceInMinutes(now, startOfDay) *\r\n hourHeightModifier,\r\n };\r\n }));\r\n }\r\n CalendarWeekViewCurrentTimeMarkerComponent.prototype.ngOnChanges = function (changes) {\r\n if (changes.columnDate) {\r\n this.columnDate$.next(changes.columnDate.currentValue);\r\n }\r\n };\r\n CalendarWeekViewCurrentTimeMarkerComponent.ctorParameters = function () { return [\r\n { type: DateAdapter },\r\n { type: NgZone }\r\n ]; };\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"columnDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"dayStartHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"dayStartMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"dayEndHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"dayEndMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"hourSegments\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"hourSegmentHeight\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarWeekViewCurrentTimeMarkerComponent.prototype, \"customTemplate\", void 0);\r\nCalendarWeekViewCurrentTimeMarkerComponent.ɵfac = function CalendarWeekViewCurrentTimeMarkerComponent_Factory(t) { return new (t || CalendarWeekViewCurrentTimeMarkerComponent)(ɵngcc0.ɵɵdirectiveInject(DateAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\r\nCalendarWeekViewCurrentTimeMarkerComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarWeekViewCurrentTimeMarkerComponent, selectors: [[\"mwl-calendar-week-view-current-time-marker\"]], inputs: { columnDate: \"columnDate\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", hourSegments: \"hourSegments\", hourSegmentHeight: \"hourSegmentHeight\", customTemplate: \"customTemplate\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 14, consts: [[\"defaultTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"cal-current-time-marker\", 3, \"top\", 4, \"ngIf\"], [1, \"cal-current-time-marker\"]], template: function CalendarWeekViewCurrentTimeMarkerComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵtemplate(0, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\r\n ɵngcc0.ɵɵtemplate(2, CalendarWeekViewCurrentTimeMarkerComponent_ng_template_2_Template, 0, 0, \"ng-template\", 1);\r\n ɵngcc0.ɵɵpipe(3, \"async\");\r\n ɵngcc0.ɵɵpipe(4, \"async\");\r\n } if (rf & 2) {\r\n var _r1043 = ɵngcc0.ɵɵreference(1);\r\n var tmp_1_0 = null;\r\n var currVal_1 = ɵngcc0.ɵɵpureFunction7(6, _c28, ctx.columnDate, ctx.dayStartHour, ctx.dayStartMinute, ctx.dayEndHour, ctx.dayEndMinute, (tmp_1_0 = ɵngcc0.ɵɵpipeBind1(3, 2, ctx.marker$)) == null ? null : tmp_1_0.isVisible, (tmp_1_0 = ɵngcc0.ɵɵpipeBind1(4, 4, ctx.marker$)) == null ? null : tmp_1_0.top);\r\n ɵngcc0.ɵɵadvance(2);\r\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.customTemplate || _r1043)(\"ngTemplateOutletContext\", currVal_1);\r\n } }, directives: [ɵngcc1.NgTemplateOutlet, ɵngcc1.NgIf], pipes: [ɵngcc1.AsyncPipe], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekViewCurrentTimeMarkerComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-week-view-current-time-marker',\r\n template: \"\\n \\n \\n \\n \\n \\n \"\r\n }]\r\n }], function () { return [{ type: DateAdapter }, { type: ɵngcc0.NgZone }]; }, { columnDate: [{\r\n type: Input\r\n }], dayStartHour: [{\r\n type: Input\r\n }], dayStartMinute: [{\r\n type: Input\r\n }], dayEndHour: [{\r\n type: Input\r\n }], dayEndMinute: [{\r\n type: Input\r\n }], hourSegments: [{\r\n type: Input\r\n }], hourSegmentHeight: [{\r\n type: Input\r\n }], customTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarWeekViewCurrentTimeMarkerComponent;\r\n}());\r\n\r\nvar CalendarWeekModule = /** @class */ (function () {\r\n function CalendarWeekModule() {\r\n }\r\nCalendarWeekModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CalendarWeekModule });\r\nCalendarWeekModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CalendarWeekModule_Factory(t) { return new (t || CalendarWeekModule)(); }, imports: [[\r\n CommonModule,\r\n ResizableModule,\r\n DragAndDropModule,\r\n CalendarCommonModule,\r\n ],\r\n ResizableModule,\r\n DragAndDropModule] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarWeekModule, { declarations: function () { return [CalendarWeekViewComponent,\r\n CalendarWeekViewHeaderComponent,\r\n CalendarWeekViewEventComponent,\r\n CalendarWeekViewHourSegmentComponent,\r\n CalendarWeekViewCurrentTimeMarkerComponent]; }, imports: function () { return [CommonModule,\r\n ResizableModule,\r\n DragAndDropModule,\r\n CalendarCommonModule]; }, exports: function () { return [ResizableModule,\r\n DragAndDropModule,\r\n CalendarWeekViewComponent,\r\n CalendarWeekViewHeaderComponent,\r\n CalendarWeekViewEventComponent,\r\n CalendarWeekViewHourSegmentComponent,\r\n CalendarWeekViewCurrentTimeMarkerComponent]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarWeekModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n CommonModule,\r\n ResizableModule,\r\n DragAndDropModule,\r\n CalendarCommonModule,\r\n ],\r\n declarations: [\r\n CalendarWeekViewComponent,\r\n CalendarWeekViewHeaderComponent,\r\n CalendarWeekViewEventComponent,\r\n CalendarWeekViewHourSegmentComponent,\r\n CalendarWeekViewCurrentTimeMarkerComponent,\r\n ],\r\n exports: [\r\n ResizableModule,\r\n DragAndDropModule,\r\n CalendarWeekViewComponent,\r\n CalendarWeekViewHeaderComponent,\r\n CalendarWeekViewEventComponent,\r\n CalendarWeekViewHourSegmentComponent,\r\n CalendarWeekViewCurrentTimeMarkerComponent,\r\n ]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return CalendarWeekModule;\r\n}());\r\n\r\n/**\r\n * Shows all events on a given day. Example usage:\r\n *\r\n * ```typescript\r\n * \r\n * \r\n * ```\r\n */\r\nvar CalendarDayViewComponent = /** @class */ (function () {\r\n function CalendarDayViewComponent() {\r\n /**\r\n * An array of events to display on view\r\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\r\n */\r\n this.events = [];\r\n /**\r\n * The number of segments in an hour. Must be <= 6\r\n */\r\n this.hourSegments = 2;\r\n /**\r\n * The height in pixels of each hour segment\r\n */\r\n this.hourSegmentHeight = 30;\r\n /**\r\n * The day start hours in 24 hour time. Must be 0-23\r\n */\r\n this.dayStartHour = 0;\r\n /**\r\n * The day start minutes. Must be 0-59\r\n */\r\n this.dayStartMinute = 0;\r\n /**\r\n * The day end hours in 24 hour time. Must be 0-23\r\n */\r\n this.dayEndHour = 23;\r\n /**\r\n * The day end minutes. Must be 0-59\r\n */\r\n this.dayEndMinute = 59;\r\n /**\r\n * The placement of the event tooltip\r\n */\r\n this.tooltipPlacement = 'auto';\r\n /**\r\n * Whether to append tooltips to the body or next to the trigger element\r\n */\r\n this.tooltipAppendToBody = true;\r\n /**\r\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\r\n * will be displayed immediately.\r\n */\r\n this.tooltipDelay = null;\r\n /**\r\n * Whether to snap events to a grid when dragging\r\n */\r\n this.snapDraggedEvents = true;\r\n /**\r\n * Called when an event title is clicked\r\n */\r\n this.eventClicked = new EventEmitter();\r\n /**\r\n * Called when an hour segment is clicked\r\n */\r\n this.hourSegmentClicked = new EventEmitter();\r\n /**\r\n * Called when an event is resized or dragged and dropped\r\n */\r\n this.eventTimesChanged = new EventEmitter();\r\n /**\r\n * An output that will be called before the view is rendered for the current day.\r\n * If you add the `cssClass` property to an hour grid segment it will add that class to the hour segment in the template\r\n */\r\n this.beforeViewRender = new EventEmitter();\r\n }\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"viewDate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"events\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"hourSegments\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"hourSegmentHeight\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"dayStartHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"dayStartMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"dayEndHour\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"dayEndMinute\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"refresh\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"locale\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"eventSnapSize\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"tooltipPlacement\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"tooltipTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"tooltipAppendToBody\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"tooltipDelay\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"hourSegmentTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"eventTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"eventTitleTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"eventActionsTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"snapDraggedEvents\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"allDayEventsLabelTemplate\", void 0);\r\n __decorate([\r\n Input()\r\n ], CalendarDayViewComponent.prototype, \"currentTimeMarkerTemplate\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarDayViewComponent.prototype, \"eventClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarDayViewComponent.prototype, \"hourSegmentClicked\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarDayViewComponent.prototype, \"eventTimesChanged\", void 0);\r\n __decorate([\r\n Output()\r\n ], CalendarDayViewComponent.prototype, \"beforeViewRender\", void 0);\r\nCalendarDayViewComponent.ɵfac = function CalendarDayViewComponent_Factory(t) { return new (t || CalendarDayViewComponent)(); };\r\nCalendarDayViewComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: CalendarDayViewComponent, selectors: [[\"mwl-calendar-day-view\"]], inputs: { events: \"events\", hourSegments: \"hourSegments\", hourSegmentHeight: \"hourSegmentHeight\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", snapDraggedEvents: \"snapDraggedEvents\", viewDate: \"viewDate\", refresh: \"refresh\", locale: \"locale\", eventSnapSize: \"eventSnapSize\", tooltipTemplate: \"tooltipTemplate\", hourSegmentTemplate: \"hourSegmentTemplate\", eventTemplate: \"eventTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", allDayEventsLabelTemplate: \"allDayEventsLabelTemplate\", currentTimeMarkerTemplate: \"currentTimeMarkerTemplate\" }, outputs: { eventClicked: \"eventClicked\", hourSegmentClicked: \"hourSegmentClicked\", eventTimesChanged: \"eventTimesChanged\", beforeViewRender: \"beforeViewRender\" }, decls: 1, vars: 23, consts: [[1, \"cal-day-view\", 3, \"daysInWeek\", \"viewDate\", \"events\", \"hourSegments\", \"hourSegmentHeight\", \"dayStartHour\", \"dayStartMinute\", \"dayEndHour\", \"dayEndMinute\", \"refresh\", \"locale\", \"eventSnapSize\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"hourSegmentTemplate\", \"eventTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"snapDraggedEvents\", \"allDayEventsLabelTemplate\", \"currentTimeMarkerTemplate\", \"eventClicked\", \"hourSegmentClicked\", \"eventTimesChanged\", \"beforeViewRender\"]], template: function CalendarDayViewComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelementStart(0, \"mwl-calendar-week-view\", 0);\r\n ɵngcc0.ɵɵlistener(\"eventClicked\", function CalendarDayViewComponent_Template_mwl_calendar_week_view_eventClicked_0_listener($event) { return ctx.eventClicked.emit($event); })(\"hourSegmentClicked\", function CalendarDayViewComponent_Template_mwl_calendar_week_view_hourSegmentClicked_0_listener($event) { return ctx.hourSegmentClicked.emit($event); })(\"eventTimesChanged\", function CalendarDayViewComponent_Template_mwl_calendar_week_view_eventTimesChanged_0_listener($event) { return ctx.eventTimesChanged.emit($event); })(\"beforeViewRender\", function CalendarDayViewComponent_Template_mwl_calendar_week_view_beforeViewRender_0_listener($event) { return ctx.beforeViewRender.emit($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"daysInWeek\", 1)(\"viewDate\", ctx.viewDate)(\"events\", ctx.events)(\"hourSegments\", ctx.hourSegments)(\"hourSegmentHeight\", ctx.hourSegmentHeight)(\"dayStartHour\", ctx.dayStartHour)(\"dayStartMinute\", ctx.dayStartMinute)(\"dayEndHour\", ctx.dayEndHour)(\"dayEndMinute\", ctx.dayEndMinute)(\"refresh\", ctx.refresh)(\"locale\", ctx.locale)(\"eventSnapSize\", ctx.eventSnapSize)(\"tooltipPlacement\", ctx.tooltipPlacement)(\"tooltipTemplate\", ctx.tooltipTemplate)(\"tooltipAppendToBody\", ctx.tooltipAppendToBody)(\"tooltipDelay\", ctx.tooltipDelay)(\"hourSegmentTemplate\", ctx.hourSegmentTemplate)(\"eventTemplate\", ctx.eventTemplate)(\"eventTitleTemplate\", ctx.eventTitleTemplate)(\"eventActionsTemplate\", ctx.eventActionsTemplate)(\"snapDraggedEvents\", ctx.snapDraggedEvents)(\"allDayEventsLabelTemplate\", ctx.allDayEventsLabelTemplate)(\"currentTimeMarkerTemplate\", ctx.currentTimeMarkerTemplate);\r\n } }, directives: [CalendarWeekViewComponent], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarDayViewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'mwl-calendar-day-view',\r\n template: \"\\n \\n \"\r\n }]\r\n }], function () { return []; }, { events: [{\r\n type: Input\r\n }], hourSegments: [{\r\n type: Input\r\n }], hourSegmentHeight: [{\r\n type: Input\r\n }], dayStartHour: [{\r\n type: Input\r\n }], dayStartMinute: [{\r\n type: Input\r\n }], dayEndHour: [{\r\n type: Input\r\n }], dayEndMinute: [{\r\n type: Input\r\n }], tooltipPlacement: [{\r\n type: Input\r\n }], tooltipAppendToBody: [{\r\n type: Input\r\n }], tooltipDelay: [{\r\n type: Input\r\n }], snapDraggedEvents: [{\r\n type: Input\r\n }], eventClicked: [{\r\n type: Output\r\n }], hourSegmentClicked: [{\r\n type: Output\r\n }], eventTimesChanged: [{\r\n type: Output\r\n }], beforeViewRender: [{\r\n type: Output\r\n }], viewDate: [{\r\n type: Input\r\n }], refresh: [{\r\n type: Input\r\n }], locale: [{\r\n type: Input\r\n }], eventSnapSize: [{\r\n type: Input\r\n }], tooltipTemplate: [{\r\n type: Input\r\n }], hourSegmentTemplate: [{\r\n type: Input\r\n }], eventTemplate: [{\r\n type: Input\r\n }], eventTitleTemplate: [{\r\n type: Input\r\n }], eventActionsTemplate: [{\r\n type: Input\r\n }], allDayEventsLabelTemplate: [{\r\n type: Input\r\n }], currentTimeMarkerTemplate: [{\r\n type: Input\r\n }] }); })();\r\n return CalendarDayViewComponent;\r\n}());\r\n\r\nvar CalendarDayModule = /** @class */ (function () {\r\n function CalendarDayModule() {\r\n }\r\nCalendarDayModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CalendarDayModule });\r\nCalendarDayModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CalendarDayModule_Factory(t) { return new (t || CalendarDayModule)(); }, imports: [[CommonModule, CalendarCommonModule, CalendarWeekModule]] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarDayModule, { declarations: function () { return [CalendarDayViewComponent]; }, imports: function () { return [CommonModule,\r\n CalendarCommonModule,\r\n CalendarWeekModule]; }, exports: function () { return [CalendarDayViewComponent]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarDayModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [CommonModule, CalendarCommonModule, CalendarWeekModule],\r\n declarations: [CalendarDayViewComponent],\r\n exports: [CalendarDayViewComponent]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return CalendarDayModule;\r\n}());\r\n\r\n/**\r\n * The main module of this library. Example usage:\r\n *\r\n * ```typescript\r\n * import { CalenderModule } from 'angular-calendar';\r\n *\r\n * @NgModule({\r\n * imports: [\r\n * CalenderModule.forRoot()\r\n * ]\r\n * })\r\n * class MyModule {}\r\n * ```\r\n *\r\n */\r\nvar CalendarModule = /** @class */ (function () {\r\n function CalendarModule() {\r\n }\r\n CalendarModule_1 = CalendarModule;\r\n CalendarModule.forRoot = function (dateAdapter, config) {\r\n if (config === void 0) { config = {}; }\r\n return {\r\n ngModule: CalendarModule_1,\r\n providers: [\r\n dateAdapter,\r\n config.eventTitleFormatter || CalendarEventTitleFormatter,\r\n config.dateFormatter || CalendarDateFormatter,\r\n config.utils || CalendarUtils,\r\n config.a11y || CalendarA11y,\r\n ],\r\n };\r\n };\r\n var CalendarModule_1;\r\nCalendarModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CalendarModule });\r\nCalendarModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CalendarModule_Factory(t) { return new (t || CalendarModule)(); }, imports: [[\r\n CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule,\r\n ],\r\n CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CalendarModule, { imports: [CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule], exports: [CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule] }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CalendarModule, [{\r\n type: NgModule,\r\n args: [{\r\n imports: [\r\n CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule,\r\n ],\r\n exports: [\r\n CalendarCommonModule,\r\n CalendarMonthModule,\r\n CalendarWeekModule,\r\n CalendarDayModule,\r\n ]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return CalendarModule;\r\n}());\r\n\r\n/*\r\n * Public API Surface of angular-calendar\r\n */\r\n\r\n/**\r\n * Generated bundle index. Do not edit.\r\n */\r\n\r\nexport { CalendarA11y, CalendarAngularDateFormatter, CalendarCommonModule, CalendarDateFormatter, CalendarDayModule, CalendarDayViewComponent, CalendarEventTimesChangedEventType, CalendarEventTitleFormatter, CalendarModule, CalendarMomentDateFormatter, CalendarMonthModule, CalendarMonthViewComponent, CalendarNativeDateFormatter, CalendarUtils, CalendarView, CalendarWeekModule, CalendarWeekViewComponent, DateAdapter, MOMENT, collapseAnimation, getWeekViewPeriod, CalendarOpenDayEventsComponent as ɵa, CalendarEventActionsComponent as ɵb, CalendarEventTitleComponent as ɵc, CalendarTooltipWindowComponent as ɵd, CalendarTooltipDirective as ɵe, CalendarPreviousViewDirective as ɵf, CalendarNextViewDirective as ɵg, CalendarTodayDirective as ɵh, CalendarDatePipe as ɵi, CalendarEventTitlePipe as ɵj, CalendarA11yPipe as ɵk, ClickDirective as ɵl, KeydownEnterDirective as ɵm, CalendarMonthCellComponent as ɵn, CalendarMonthViewHeaderComponent as ɵo, CalendarWeekViewHeaderComponent as ɵp, CalendarWeekViewEventComponent as ɵq, CalendarWeekViewHourSegmentComponent as ɵr, CalendarWeekViewCurrentTimeMarkerComponent as ɵs };\r\n\r\n//# sourceMappingURL=angular-calendar.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar date_fns_1 = require(\"calendar-utils/date-adapters/date-fns\");\nvar date_fns_2 = require(\"date-fns\");\nfunction adapterFactory() {\n return tslib_1.__assign({}, date_fns_1.adapterFactory(), { addWeeks: date_fns_2.addWeeks,\n addMonths: date_fns_2.addMonths,\n subDays: date_fns_2.subDays,\n subWeeks: date_fns_2.subWeeks,\n subMonths: date_fns_2.subMonths,\n getISOWeek: date_fns_2.getISOWeek,\n setDate: date_fns_2.setDate,\n setMonth: date_fns_2.setMonth,\n setYear: date_fns_2.setYear,\n getDate: date_fns_2.getDate,\n getYear: date_fns_2.getYear });\n}\nexports.adapterFactory = adapterFactory;\n//# sourceMappingURL=index.js.map","import { Subject, Observable, merge, ReplaySubject, combineLatest, animationFrameScheduler, fromEvent } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport autoScroll from '@mattlewis92/dom-autoscroller';\nimport { __read, __assign } from 'tslib';\nimport { Injectable, Directive, ElementRef, Input, NgModule, defineInjectable, EventEmitter, NgZone, Renderer2, Optional, Output, ViewContainerRef, Inject } from '@angular/core';\nimport { map, mergeMap, takeUntil, take, takeLast, pairwise, share, filter, count, startWith, auditTime, distinctUntilChanged } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nimport * as ɵngcc0 from '@angular/core';\nvar DraggableHelper = /** @class */ (function () {\n function DraggableHelper() {\n this.currentDrag = new Subject();\n }\n /** @nocollapse */ DraggableHelper.ngInjectableDef = defineInjectable({ factory: function DraggableHelper_Factory() { return new DraggableHelper(); }, token: DraggableHelper, providedIn: \"root\" });\nDraggableHelper.ɵfac = function DraggableHelper_Factory(t) { return new (t || DraggableHelper)(); };\nDraggableHelper.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: DraggableHelper, factory: function (t) { return DraggableHelper.ɵfac(t); }, providedIn: 'root' });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DraggableHelper, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\n return DraggableHelper;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * If the window isn't scrollable, then place this on the scrollable container that draggable elements are inside. e.g.\n * ```html\n *
      \n *
      Drag me!
      \n *
      \n * ```\n */\nvar DraggableScrollContainerDirective = /** @class */ (function () {\n /**\n * @hidden\n */\n function DraggableScrollContainerDirective(elementRef) {\n this.elementRef = elementRef;\n /**\n * Trigger the DragStart after a long touch in scrollable container when true\n * @deprecated will be removed in v5 (use [touchStartLongPress]=\"{delay: 300, delta: 30}\" on the mwlDraggable element instead)\n */\n this.activeLongPressDrag = false;\n /**\n * Configuration of a long touch\n * Duration in ms of a long touch before activating DragStart\n * Delta of the\n * @deprecated will be removed in v5 (use [touchStartLongPress]=\"{delay: 300, delta: 30}\" on the mwlDraggable element instead)\n */\n this.longPressConfig = { duration: 300, delta: 30 };\n }\n /** @nocollapse */\n DraggableScrollContainerDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n DraggableScrollContainerDirective.propDecorators = {\n activeLongPressDrag: [{ type: Input }],\n longPressConfig: [{ type: Input }]\n };\nDraggableScrollContainerDirective.ɵfac = function DraggableScrollContainerDirective_Factory(t) { return new (t || DraggableScrollContainerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nDraggableScrollContainerDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: DraggableScrollContainerDirective, selectors: [[\"\", \"mwlDraggableScrollContainer\", \"\"]], inputs: { activeLongPressDrag: \"activeLongPressDrag\", longPressConfig: \"longPressConfig\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DraggableScrollContainerDirective, [{\n type: Directive,\n args: [{\n selector: '[mwlDraggableScrollContainer]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { activeLongPressDrag: [{\n type: Input\n }], longPressConfig: [{\n type: Input\n }] }); })();\n return DraggableScrollContainerDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} renderer\n * @param {?} element\n * @param {?} classToAdd\n * @return {?}\n */\nfunction addClass(renderer, element, classToAdd) {\n if (classToAdd) {\n classToAdd\n .split(' ')\n .forEach((/**\n * @param {?} className\n * @return {?}\n */\n function (className) {\n return renderer.addClass(element.nativeElement, className);\n }));\n }\n}\n/**\n * @param {?} renderer\n * @param {?} element\n * @param {?} classToRemove\n * @return {?}\n */\nfunction removeClass(renderer, element, classToRemove) {\n if (classToRemove) {\n classToRemove\n .split(' ')\n .forEach((/**\n * @param {?} className\n * @return {?}\n */\n function (className) {\n return renderer.removeClass(element.nativeElement, className);\n }));\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar DraggableDirective = /** @class */ (function () {\n /**\n * @hidden\n */\n function DraggableDirective(element, renderer, draggableHelper, zone, vcr, scrollContainer, document) {\n this.element = element;\n this.renderer = renderer;\n this.draggableHelper = draggableHelper;\n this.zone = zone;\n this.vcr = vcr;\n this.scrollContainer = scrollContainer;\n this.document = document;\n /**\n * The axis along which the element is draggable\n */\n this.dragAxis = { x: true, y: true };\n /**\n * Snap all drags to an x / y grid\n */\n this.dragSnapGrid = {};\n /**\n * Show a ghost element that shows the drag when dragging\n */\n this.ghostDragEnabled = true;\n /**\n * Show the original element when ghostDragEnabled is true\n */\n this.showOriginalElementWhileDragging = false;\n /**\n * The cursor to use when hovering over a draggable element\n */\n this.dragCursor = '';\n /**\n * Called when the element can be dragged along one axis and has the mouse or pointer device pressed on it\n */\n this.dragPointerDown = new EventEmitter();\n /**\n * Called when the element has started to be dragged.\n * Only called after at least one mouse or touch move event.\n * If you call $event.cancelDrag$.emit() it will cancel the current drag\n */\n this.dragStart = new EventEmitter();\n /**\n * Called after the ghost element has been created\n */\n this.ghostElementCreated = new EventEmitter();\n /**\n * Called when the element is being dragged\n */\n this.dragging = new EventEmitter();\n /**\n * Called after the element is dragged\n */\n this.dragEnd = new EventEmitter();\n /**\n * @hidden\n */\n this.pointerDown$ = new Subject();\n /**\n * @hidden\n */\n this.pointerMove$ = new Subject();\n /**\n * @hidden\n */\n this.pointerUp$ = new Subject();\n this.eventListenerSubscriptions = {};\n this.destroy$ = new Subject();\n this.timeLongPress = { timerBegin: 0, timerEnd: 0 };\n }\n /**\n * @return {?}\n */\n DraggableDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.checkEventListeners();\n /** @type {?} */\n var pointerDragged$ = this.pointerDown$.pipe(filter((/**\n * @return {?}\n */\n function () { return _this.canDrag(); })), mergeMap((/**\n * @param {?} pointerDownEvent\n * @return {?}\n */\n function (pointerDownEvent) {\n // fix for https://github.com/mattlewis92/angular-draggable-droppable/issues/61\n // stop mouse events propagating up the chain\n if (pointerDownEvent.event.stopPropagation && !_this.scrollContainer) {\n pointerDownEvent.event.stopPropagation();\n }\n // hack to prevent text getting selected in safari while dragging\n /** @type {?} */\n var globalDragStyle = _this.renderer.createElement('style');\n _this.renderer.setAttribute(globalDragStyle, 'type', 'text/css');\n _this.renderer.appendChild(globalDragStyle, _this.renderer.createText(\"\\n body * {\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -webkit-user-select: none;\\n user-select: none;\\n }\\n \"));\n _this.document.head.appendChild(globalDragStyle);\n /** @type {?} */\n var startScrollPosition = _this.getScrollPosition();\n /** @type {?} */\n var scrollContainerScroll$ = new Observable((/**\n * @param {?} observer\n * @return {?}\n */\n function (observer) {\n /** @type {?} */\n var scrollContainer = _this.scrollContainer\n ? _this.scrollContainer.elementRef.nativeElement\n : 'window';\n return _this.renderer.listen(scrollContainer, 'scroll', (/**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return observer.next(e);\n }));\n })).pipe(startWith(startScrollPosition), map((/**\n * @return {?}\n */\n function () { return _this.getScrollPosition(); })));\n /** @type {?} */\n var currentDrag$ = new Subject();\n /** @type {?} */\n var cancelDrag$ = new ReplaySubject();\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragPointerDown.next({ x: 0, y: 0 });\n }));\n /** @type {?} */\n var dragComplete$ = merge(_this.pointerUp$, _this.pointerDown$, cancelDrag$, _this.destroy$).pipe(share());\n /** @type {?} */\n var pointerMove = combineLatest([\n _this.pointerMove$,\n scrollContainerScroll$,\n ]).pipe(map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var _b = __read(_a, 2), pointerMoveEvent = _b[0], scroll = _b[1];\n return {\n currentDrag$: currentDrag$,\n transformX: pointerMoveEvent.clientX - pointerDownEvent.clientX,\n transformY: pointerMoveEvent.clientY - pointerDownEvent.clientY,\n clientX: pointerMoveEvent.clientX,\n clientY: pointerMoveEvent.clientY,\n scrollLeft: scroll.left,\n scrollTop: scroll.top,\n };\n })), map((/**\n * @param {?} moveData\n * @return {?}\n */\n function (moveData) {\n if (_this.dragSnapGrid.x) {\n moveData.transformX =\n Math.round(moveData.transformX / _this.dragSnapGrid.x) *\n _this.dragSnapGrid.x;\n }\n if (_this.dragSnapGrid.y) {\n moveData.transformY =\n Math.round(moveData.transformY / _this.dragSnapGrid.y) *\n _this.dragSnapGrid.y;\n }\n return moveData;\n })), map((/**\n * @param {?} moveData\n * @return {?}\n */\n function (moveData) {\n if (!_this.dragAxis.x) {\n moveData.transformX = 0;\n }\n if (!_this.dragAxis.y) {\n moveData.transformY = 0;\n }\n return moveData;\n })), map((/**\n * @param {?} moveData\n * @return {?}\n */\n function (moveData) {\n /** @type {?} */\n var scrollX = moveData.scrollLeft - startScrollPosition.left;\n /** @type {?} */\n var scrollY = moveData.scrollTop - startScrollPosition.top;\n return __assign({}, moveData, { x: moveData.transformX + scrollX, y: moveData.transformY + scrollY });\n })), filter((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var x = _a.x, y = _a.y, transformX = _a.transformX, transformY = _a.transformY;\n return !_this.validateDrag ||\n _this.validateDrag({\n x: x,\n y: y,\n transform: { x: transformX, y: transformY },\n });\n })), takeUntil(dragComplete$), share());\n /** @type {?} */\n var dragStarted$ = pointerMove.pipe(take(1), share());\n /** @type {?} */\n var dragEnded$ = pointerMove.pipe(takeLast(1), share());\n dragStarted$.subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY, x = _a.x, y = _a.y;\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragStart.next({ cancelDrag$: cancelDrag$ });\n }));\n _this.scroller = autoScroll([\n _this.scrollContainer\n ? _this.scrollContainer.elementRef.nativeElement\n : _this.document.defaultView,\n ], {\n margin: 20,\n autoScroll: /**\n * @return {?}\n */\n function () {\n return true;\n },\n });\n addClass(_this.renderer, _this.element, _this.dragActiveClass);\n if (_this.ghostDragEnabled) {\n /** @type {?} */\n var rect = _this.element.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var clone_1 = (/** @type {?} */ (_this.element.nativeElement.cloneNode(true)));\n if (!_this.showOriginalElementWhileDragging) {\n _this.renderer.setStyle(_this.element.nativeElement, 'visibility', 'hidden');\n }\n if (_this.ghostElementAppendTo) {\n _this.ghostElementAppendTo.appendChild(clone_1);\n }\n else {\n (/** @type {?} */ (_this.element.nativeElement.parentNode)).insertBefore(clone_1, _this.element.nativeElement.nextSibling);\n }\n _this.ghostElement = clone_1;\n _this.document.body.style.cursor = _this.dragCursor;\n _this.setElementStyles(clone_1, {\n position: 'fixed',\n top: rect.top + \"px\",\n left: rect.left + \"px\",\n width: rect.width + \"px\",\n height: rect.height + \"px\",\n cursor: _this.dragCursor,\n margin: '0',\n willChange: 'transform',\n pointerEvents: 'none',\n });\n if (_this.ghostElementTemplate) {\n /** @type {?} */\n var viewRef_1 = _this.vcr.createEmbeddedView(_this.ghostElementTemplate);\n clone_1.innerHTML = '';\n viewRef_1.rootNodes\n .filter((/**\n * @param {?} node\n * @return {?}\n */\n function (node) { return node instanceof Node; }))\n .forEach((/**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n clone_1.appendChild(node);\n }));\n dragEnded$.subscribe((/**\n * @return {?}\n */\n function () {\n _this.vcr.remove(_this.vcr.indexOf(viewRef_1));\n }));\n }\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.ghostElementCreated.emit({\n clientX: clientX - x,\n clientY: clientY - y,\n element: clone_1,\n });\n }));\n dragEnded$.subscribe((/**\n * @return {?}\n */\n function () {\n (/** @type {?} */ (clone_1.parentElement)).removeChild(clone_1);\n _this.ghostElement = null;\n _this.renderer.setStyle(_this.element.nativeElement, 'visibility', '');\n }));\n }\n _this.draggableHelper.currentDrag.next(currentDrag$);\n }));\n dragEnded$\n .pipe(mergeMap((/**\n * @param {?} dragEndData\n * @return {?}\n */\n function (dragEndData) {\n /** @type {?} */\n var dragEndData$ = cancelDrag$.pipe(count(), take(1), map((/**\n * @param {?} calledCount\n * @return {?}\n */\n function (calledCount) { return (__assign({}, dragEndData, { dragCancelled: calledCount > 0 })); })));\n cancelDrag$.complete();\n return dragEndData$;\n })))\n .subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var x = _a.x, y = _a.y, dragCancelled = _a.dragCancelled;\n _this.scroller.destroy();\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragEnd.next({ x: x, y: y, dragCancelled: dragCancelled });\n }));\n removeClass(_this.renderer, _this.element, _this.dragActiveClass);\n currentDrag$.complete();\n }));\n merge(dragComplete$, dragEnded$)\n .pipe(take(1))\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this.document.head.removeChild(globalDragStyle);\n }));\n return pointerMove;\n })), share());\n merge(pointerDragged$.pipe(take(1), map((/**\n * @param {?} value\n * @return {?}\n */\n function (value) { return [, value]; }))), pointerDragged$.pipe(pairwise()))\n .pipe(filter((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var _b = __read(_a, 2), previous = _b[0], next = _b[1];\n if (!previous) {\n return true;\n }\n return previous.x !== next.x || previous.y !== next.y;\n })), map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var _b = __read(_a, 2), previous = _b[0], next = _b[1];\n return next;\n })), auditTime(0, animationFrameScheduler))\n .subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var x = _a.x, y = _a.y, currentDrag$ = _a.currentDrag$, clientX = _a.clientX, clientY = _a.clientY, transformX = _a.transformX, transformY = _a.transformY;\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragging.next({ x: x, y: y });\n }));\n if (_this.ghostElement) {\n /** @type {?} */\n var transform = \"translate3d(\" + transformX + \"px, \" + transformY + \"px, 0px)\";\n _this.setElementStyles(_this.ghostElement, {\n transform: transform,\n '-webkit-transform': transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-o-transform': transform,\n });\n }\n currentDrag$.next({\n clientX: clientX,\n clientY: clientY,\n dropData: _this.dropData,\n });\n }));\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n DraggableDirective.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.dragAxis) {\n this.checkEventListeners();\n }\n };\n /**\n * @return {?}\n */\n DraggableDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.unsubscribeEventListeners();\n this.pointerDown$.complete();\n this.pointerMove$.complete();\n this.pointerUp$.complete();\n this.destroy$.next();\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.checkEventListeners = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var canDrag = this.canDrag();\n /** @type {?} */\n var hasEventListeners = Object.keys(this.eventListenerSubscriptions).length > 0;\n if (canDrag && !hasEventListeners) {\n this.zone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n _this.eventListenerSubscriptions.mousedown = _this.renderer.listen(_this.element.nativeElement, 'mousedown', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.onMouseDown(event);\n }));\n _this.eventListenerSubscriptions.mouseup = _this.renderer.listen('document', 'mouseup', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.onMouseUp(event);\n }));\n _this.eventListenerSubscriptions.touchstart = _this.renderer.listen(_this.element.nativeElement, 'touchstart', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.onTouchStart(event);\n }));\n _this.eventListenerSubscriptions.touchend = _this.renderer.listen('document', 'touchend', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.onTouchEnd(event);\n }));\n _this.eventListenerSubscriptions.touchcancel = _this.renderer.listen('document', 'touchcancel', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.onTouchEnd(event);\n }));\n _this.eventListenerSubscriptions.mouseenter = _this.renderer.listen(_this.element.nativeElement, 'mouseenter', (/**\n * @return {?}\n */\n function () {\n _this.onMouseEnter();\n }));\n _this.eventListenerSubscriptions.mouseleave = _this.renderer.listen(_this.element.nativeElement, 'mouseleave', (/**\n * @return {?}\n */\n function () {\n _this.onMouseLeave();\n }));\n }));\n }\n else if (!canDrag && hasEventListeners) {\n this.unsubscribeEventListeners();\n }\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n DraggableDirective.prototype.onMouseDown = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (event.button === 0) {\n if (!this.eventListenerSubscriptions.mousemove) {\n this.eventListenerSubscriptions.mousemove = this.renderer.listen('document', 'mousemove', (/**\n * @param {?} mouseMoveEvent\n * @return {?}\n */\n function (mouseMoveEvent) {\n _this.pointerMove$.next({\n event: mouseMoveEvent,\n clientX: mouseMoveEvent.clientX,\n clientY: mouseMoveEvent.clientY,\n });\n }));\n }\n this.pointerDown$.next({\n event: event,\n clientX: event.clientX,\n clientY: event.clientY,\n });\n }\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n DraggableDirective.prototype.onMouseUp = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.button === 0) {\n if (this.eventListenerSubscriptions.mousemove) {\n this.eventListenerSubscriptions.mousemove();\n delete this.eventListenerSubscriptions.mousemove;\n }\n this.pointerUp$.next({\n event: event,\n clientX: event.clientX,\n clientY: event.clientY,\n });\n }\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n DraggableDirective.prototype.onTouchStart = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var startScrollPosition;\n /** @type {?} */\n var isDragActivated;\n /** @type {?} */\n var hasContainerScrollbar;\n if ((this.scrollContainer && this.scrollContainer.activeLongPressDrag) ||\n this.touchStartLongPress) {\n this.timeLongPress.timerBegin = Date.now();\n isDragActivated = false;\n hasContainerScrollbar = this.hasScrollbar();\n startScrollPosition = this.getScrollPosition();\n }\n if (!this.eventListenerSubscriptions.touchmove) {\n /** @type {?} */\n var contextMenuListener_1 = fromEvent(this.document, 'contextmenu').subscribe((/**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n e.preventDefault();\n }));\n /** @type {?} */\n var touchMoveListener_1 = fromEvent(this.document, 'touchmove', {\n passive: false,\n }).subscribe((/**\n * @param {?} touchMoveEvent\n * @return {?}\n */\n function (touchMoveEvent) {\n if (((_this.scrollContainer && _this.scrollContainer.activeLongPressDrag) ||\n _this.touchStartLongPress) &&\n !isDragActivated &&\n hasContainerScrollbar) {\n isDragActivated = _this.shouldBeginDrag(event, touchMoveEvent, startScrollPosition);\n }\n if (((!_this.scrollContainer ||\n !_this.scrollContainer.activeLongPressDrag) &&\n !_this.touchStartLongPress) ||\n !hasContainerScrollbar ||\n isDragActivated) {\n touchMoveEvent.preventDefault();\n _this.pointerMove$.next({\n event: touchMoveEvent,\n clientX: touchMoveEvent.targetTouches[0].clientX,\n clientY: touchMoveEvent.targetTouches[0].clientY,\n });\n }\n }));\n this.eventListenerSubscriptions.touchmove = (/**\n * @return {?}\n */\n function () {\n contextMenuListener_1.unsubscribe();\n touchMoveListener_1.unsubscribe();\n });\n }\n this.pointerDown$.next({\n event: event,\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n });\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n DraggableDirective.prototype.onTouchEnd = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.eventListenerSubscriptions.touchmove) {\n this.eventListenerSubscriptions.touchmove();\n delete this.eventListenerSubscriptions.touchmove;\n if ((this.scrollContainer && this.scrollContainer.activeLongPressDrag) ||\n this.touchStartLongPress) {\n this.enableScroll();\n }\n }\n this.pointerUp$.next({\n event: event,\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n });\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.onMouseEnter = /**\n * @private\n * @return {?}\n */\n function () {\n this.setCursor(this.dragCursor);\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.onMouseLeave = /**\n * @private\n * @return {?}\n */\n function () {\n this.setCursor('');\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.canDrag = /**\n * @private\n * @return {?}\n */\n function () {\n return this.dragAxis.x || this.dragAxis.y;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n DraggableDirective.prototype.setCursor = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!this.eventListenerSubscriptions.mousemove) {\n this.renderer.setStyle(this.element.nativeElement, 'cursor', value);\n }\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.unsubscribeEventListeners = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n Object.keys(this.eventListenerSubscriptions).forEach((/**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n ((/** @type {?} */ (_this))).eventListenerSubscriptions[type]();\n delete ((/** @type {?} */ (_this))).eventListenerSubscriptions[type];\n }));\n };\n /**\n * @private\n * @param {?} element\n * @param {?} styles\n * @return {?}\n */\n DraggableDirective.prototype.setElementStyles = /**\n * @private\n * @param {?} element\n * @param {?} styles\n * @return {?}\n */\n function (element, styles) {\n var _this = this;\n Object.keys(styles).forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n _this.renderer.setStyle(element, key, styles[key]);\n }));\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.getScrollElement = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.scrollContainer) {\n return this.scrollContainer.elementRef.nativeElement;\n }\n else {\n return this.document.body;\n }\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.getScrollPosition = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.scrollContainer) {\n return {\n top: this.scrollContainer.elementRef.nativeElement.scrollTop,\n left: this.scrollContainer.elementRef.nativeElement.scrollLeft,\n };\n }\n else {\n return {\n top: window.pageYOffset || this.document.documentElement.scrollTop,\n left: window.pageXOffset || this.document.documentElement.scrollLeft,\n };\n }\n };\n /**\n * @private\n * @param {?} event\n * @param {?} touchMoveEvent\n * @param {?} startScrollPosition\n * @return {?}\n */\n DraggableDirective.prototype.shouldBeginDrag = /**\n * @private\n * @param {?} event\n * @param {?} touchMoveEvent\n * @param {?} startScrollPosition\n * @return {?}\n */\n function (event, touchMoveEvent, startScrollPosition) {\n /** @type {?} */\n var moveScrollPosition = this.getScrollPosition();\n /** @type {?} */\n var deltaScroll = {\n top: Math.abs(moveScrollPosition.top - startScrollPosition.top),\n left: Math.abs(moveScrollPosition.left - startScrollPosition.left),\n };\n /** @type {?} */\n var deltaX = Math.abs(touchMoveEvent.targetTouches[0].clientX - event.touches[0].clientX) - deltaScroll.left;\n /** @type {?} */\n var deltaY = Math.abs(touchMoveEvent.targetTouches[0].clientY - event.touches[0].clientY) - deltaScroll.top;\n /** @type {?} */\n var deltaTotal = deltaX + deltaY;\n /** @type {?} */\n var longPressConfig = this.touchStartLongPress\n ? this.touchStartLongPress\n : /* istanbul ignore next */\n {\n delta: this.scrollContainer.longPressConfig.delta,\n delay: this.scrollContainer.longPressConfig.duration,\n };\n if (deltaTotal > longPressConfig.delta ||\n deltaScroll.top > 0 ||\n deltaScroll.left > 0) {\n this.timeLongPress.timerBegin = Date.now();\n }\n this.timeLongPress.timerEnd = Date.now();\n /** @type {?} */\n var duration = this.timeLongPress.timerEnd - this.timeLongPress.timerBegin;\n if (duration >= longPressConfig.delay) {\n this.disableScroll();\n return true;\n }\n return false;\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.enableScroll = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.scrollContainer) {\n this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', '');\n }\n this.renderer.setStyle(this.document.body, 'overflow', '');\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.disableScroll = /**\n * @private\n * @return {?}\n */\n function () {\n /* istanbul ignore next */\n if (this.scrollContainer) {\n this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', 'hidden');\n }\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n };\n /**\n * @private\n * @return {?}\n */\n DraggableDirective.prototype.hasScrollbar = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scrollContainer = this.getScrollElement();\n /** @type {?} */\n var containerHasHorizontalScroll = scrollContainer.scrollWidth > scrollContainer.clientWidth;\n /** @type {?} */\n var containerHasVerticalScroll = scrollContainer.scrollHeight > scrollContainer.clientHeight;\n return containerHasHorizontalScroll || containerHasVerticalScroll;\n };\n /** @nocollapse */\n DraggableDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 },\n { type: DraggableHelper },\n { type: NgZone },\n { type: ViewContainerRef },\n { type: DraggableScrollContainerDirective, decorators: [{ type: Optional }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n DraggableDirective.propDecorators = {\n dropData: [{ type: Input }],\n dragAxis: [{ type: Input }],\n dragSnapGrid: [{ type: Input }],\n ghostDragEnabled: [{ type: Input }],\n showOriginalElementWhileDragging: [{ type: Input }],\n validateDrag: [{ type: Input }],\n dragCursor: [{ type: Input }],\n dragActiveClass: [{ type: Input }],\n ghostElementAppendTo: [{ type: Input }],\n ghostElementTemplate: [{ type: Input }],\n touchStartLongPress: [{ type: Input }],\n dragPointerDown: [{ type: Output }],\n dragStart: [{ type: Output }],\n ghostElementCreated: [{ type: Output }],\n dragging: [{ type: Output }],\n dragEnd: [{ type: Output }]\n };\nDraggableDirective.ɵfac = function DraggableDirective_Factory(t) { return new (t || DraggableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DraggableHelper), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(DraggableScrollContainerDirective, 8), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nDraggableDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: DraggableDirective, selectors: [[\"\", \"mwlDraggable\", \"\"]], inputs: { dragAxis: \"dragAxis\", dragSnapGrid: \"dragSnapGrid\", ghostDragEnabled: \"ghostDragEnabled\", showOriginalElementWhileDragging: \"showOriginalElementWhileDragging\", dragCursor: \"dragCursor\", dropData: \"dropData\", validateDrag: \"validateDrag\", dragActiveClass: \"dragActiveClass\", ghostElementAppendTo: \"ghostElementAppendTo\", ghostElementTemplate: \"ghostElementTemplate\", touchStartLongPress: \"touchStartLongPress\" }, outputs: { dragPointerDown: \"dragPointerDown\", dragStart: \"dragStart\", ghostElementCreated: \"ghostElementCreated\", dragging: \"dragging\", dragEnd: \"dragEnd\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DraggableDirective, [{\n type: Directive,\n args: [{\n selector: '[mwlDraggable]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: DraggableHelper }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ViewContainerRef }, { type: DraggableScrollContainerDirective, decorators: [{\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { dragAxis: [{\n type: Input\n }], dragSnapGrid: [{\n type: Input\n }], ghostDragEnabled: [{\n type: Input\n }], showOriginalElementWhileDragging: [{\n type: Input\n }], dragCursor: [{\n type: Input\n }], dragPointerDown: [{\n type: Output\n }], dragStart: [{\n type: Output\n }], ghostElementCreated: [{\n type: Output\n }], dragging: [{\n type: Output\n }], dragEnd: [{\n type: Output\n }], dropData: [{\n type: Input\n }], validateDrag: [{\n type: Input\n }], dragActiveClass: [{\n type: Input\n }], ghostElementAppendTo: [{\n type: Input\n }], ghostElementTemplate: [{\n type: Input\n }], touchStartLongPress: [{\n type: Input\n }] }); })();\n return DraggableDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} clientX\n * @param {?} clientY\n * @param {?} rect\n * @return {?}\n */\nfunction isCoordinateWithinRectangle(clientX, clientY, rect) {\n return (clientX >= rect.left &&\n clientX <= rect.right &&\n clientY >= rect.top &&\n clientY <= rect.bottom);\n}\nvar DroppableDirective = /** @class */ (function () {\n function DroppableDirective(element, draggableHelper, zone, renderer, scrollContainer) {\n this.element = element;\n this.draggableHelper = draggableHelper;\n this.zone = zone;\n this.renderer = renderer;\n this.scrollContainer = scrollContainer;\n /**\n * Called when a draggable element starts overlapping the element\n */\n this.dragEnter = new EventEmitter();\n /**\n * Called when a draggable element stops overlapping the element\n */\n this.dragLeave = new EventEmitter();\n /**\n * Called when a draggable element is moved over the element\n */\n this.dragOver = new EventEmitter();\n /**\n * Called when a draggable element is dropped on this element\n */\n this.drop = new EventEmitter(); // tslint:disable-line no-output-named-after-standard-event\n }\n /**\n * @return {?}\n */\n DroppableDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.currentDragSubscription = this.draggableHelper.currentDrag.subscribe((/**\n * @param {?} drag$\n * @return {?}\n */\n function (drag$) {\n addClass(_this.renderer, _this.element, _this.dragActiveClass);\n /** @type {?} */\n var droppableElement = {\n updateCache: true,\n };\n /** @type {?} */\n var deregisterScrollListener = _this.renderer.listen(_this.scrollContainer\n ? _this.scrollContainer.elementRef.nativeElement\n : 'window', 'scroll', (/**\n * @return {?}\n */\n function () {\n droppableElement.updateCache = true;\n }));\n /** @type {?} */\n var currentDragDropData;\n /** @type {?} */\n var overlaps$ = drag$.pipe(map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY, dropData = _a.dropData;\n currentDragDropData = dropData;\n if (droppableElement.updateCache) {\n droppableElement.rect = _this.element.nativeElement.getBoundingClientRect();\n if (_this.scrollContainer) {\n droppableElement.scrollContainerRect = _this.scrollContainer.elementRef.nativeElement.getBoundingClientRect();\n }\n droppableElement.updateCache = false;\n }\n /** @type {?} */\n var isWithinElement = isCoordinateWithinRectangle(clientX, clientY, (/** @type {?} */ (droppableElement.rect)));\n if (droppableElement.scrollContainerRect) {\n return (isWithinElement &&\n isCoordinateWithinRectangle(clientX, clientY, (/** @type {?} */ (droppableElement.scrollContainerRect))));\n }\n else {\n return isWithinElement;\n }\n })));\n /** @type {?} */\n var overlapsChanged$ = overlaps$.pipe(distinctUntilChanged());\n /** @type {?} */\n var dragOverActive;\n overlapsChanged$\n .pipe(filter((/**\n * @param {?} overlapsNow\n * @return {?}\n */\n function (overlapsNow) { return overlapsNow; })))\n .subscribe((/**\n * @return {?}\n */\n function () {\n dragOverActive = true;\n addClass(_this.renderer, _this.element, _this.dragOverClass);\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragEnter.next({\n dropData: currentDragDropData,\n });\n }));\n }));\n overlaps$.pipe(filter((/**\n * @param {?} overlapsNow\n * @return {?}\n */\n function (overlapsNow) { return overlapsNow; }))).subscribe((/**\n * @return {?}\n */\n function () {\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragOver.next({\n dropData: currentDragDropData,\n });\n }));\n }));\n overlapsChanged$\n .pipe(pairwise(), filter((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var _b = __read(_a, 2), didOverlap = _b[0], overlapsNow = _b[1];\n return didOverlap && !overlapsNow;\n })))\n .subscribe((/**\n * @return {?}\n */\n function () {\n dragOverActive = false;\n removeClass(_this.renderer, _this.element, _this.dragOverClass);\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.dragLeave.next({\n dropData: currentDragDropData,\n });\n }));\n }));\n drag$.subscribe({\n complete: (/**\n * @return {?}\n */\n function () {\n deregisterScrollListener();\n removeClass(_this.renderer, _this.element, _this.dragActiveClass);\n if (dragOverActive) {\n removeClass(_this.renderer, _this.element, _this.dragOverClass);\n _this.zone.run((/**\n * @return {?}\n */\n function () {\n _this.drop.next({\n dropData: currentDragDropData,\n });\n }));\n }\n }),\n });\n }));\n };\n /**\n * @return {?}\n */\n DroppableDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (this.currentDragSubscription) {\n this.currentDragSubscription.unsubscribe();\n }\n };\n /** @nocollapse */\n DroppableDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: DraggableHelper },\n { type: NgZone },\n { type: Renderer2 },\n { type: DraggableScrollContainerDirective, decorators: [{ type: Optional }] }\n ]; };\n DroppableDirective.propDecorators = {\n dragOverClass: [{ type: Input }],\n dragActiveClass: [{ type: Input }],\n dragEnter: [{ type: Output }],\n dragLeave: [{ type: Output }],\n dragOver: [{ type: Output }],\n drop: [{ type: Output }]\n };\nDroppableDirective.ɵfac = function DroppableDirective_Factory(t) { return new (t || DroppableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(DraggableHelper), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(DraggableScrollContainerDirective, 8)); };\nDroppableDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: DroppableDirective, selectors: [[\"\", \"mwlDroppable\", \"\"]], inputs: { dragOverClass: \"dragOverClass\", dragActiveClass: \"dragActiveClass\" }, outputs: { dragEnter: \"dragEnter\", dragLeave: \"dragLeave\", dragOver: \"dragOver\", drop: \"drop\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DroppableDirective, [{\n type: Directive,\n args: [{\n selector: '[mwlDroppable]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: DraggableHelper }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Renderer2 }, { type: DraggableScrollContainerDirective, decorators: [{\n type: Optional\n }] }]; }, { dragEnter: [{\n type: Output\n }], dragLeave: [{\n type: Output\n }], dragOver: [{\n type: Output\n }], drop: [{\n type: Output\n }], dragOverClass: [{\n type: Input\n }], dragActiveClass: [{\n type: Input\n }] }); })();\n return DroppableDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar DragAndDropModule = /** @class */ (function () {\n function DragAndDropModule() {\n }\nDragAndDropModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: DragAndDropModule });\nDragAndDropModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function DragAndDropModule_Factory(t) { return new (t || DragAndDropModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(DragAndDropModule, { declarations: [DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective], exports: [DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(DragAndDropModule, [{\n type: NgModule,\n args: [{\n declarations: [\n DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective,\n ],\n exports: [\n DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective,\n ]\n }]\n }], function () { return []; }, null); })();\n return DragAndDropModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { DragAndDropModule, DraggableHelper as ɵc, DraggableScrollContainerDirective as ɵd, DraggableDirective as ɵb, DroppableDirective as ɵa };\n\n//# sourceMappingURL=angular-draggable-droppable.js.map","import { __decorate, __metadata, __assign, __param } from 'tslib';\r\nimport { Injectable, ElementRef, Inject, Renderer2, ChangeDetectorRef, NgZone, Input, Component, ViewEncapsulation, HostBinding, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport * as ɵngcc0 from '@angular/core';\r\nimport * as ɵngcc1 from '@angular/common';\r\n\r\nfunction GridsterComponent_div_0_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 3);\r\n} if (rf & 2) {\r\n var i_r931 = ctx.index;\r\n var ctx_r928 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r928.gridRenderer.getGridColumnStyle(i_r931));\r\n} }\r\nfunction GridsterComponent_div_1_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵelement(0, \"div\", 4);\r\n} if (rf & 2) {\r\n var i_r933 = ctx.index;\r\n var ctx_r929 = ɵngcc0.ɵɵnextContext();\r\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r929.gridRenderer.getGridRowStyle(i_r933));\r\n} }\r\nvar _c0 = [\"*\"];\r\nfunction GridsterItemComponent_div_1_Template(rf, ctx) { if (rf & 1) {\r\n var _r943 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_1_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r943); var ctx_r942 = ɵngcc0.ɵɵnextContext(); return ctx_r942.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_1_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r943); var ctx_r944 = ɵngcc0.ɵɵnextContext(); return ctx_r944.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_2_Template(rf, ctx) { if (rf & 1) {\r\n var _r946 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 9);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_2_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r946); var ctx_r945 = ɵngcc0.ɵɵnextContext(); return ctx_r945.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_2_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r946); var ctx_r947 = ɵngcc0.ɵɵnextContext(); return ctx_r947.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_3_Template(rf, ctx) { if (rf & 1) {\r\n var _r949 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 10);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_3_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r949); var ctx_r948 = ɵngcc0.ɵɵnextContext(); return ctx_r948.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_3_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r949); var ctx_r950 = ɵngcc0.ɵɵnextContext(); return ctx_r950.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_4_Template(rf, ctx) { if (rf & 1) {\r\n var _r952 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 11);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_4_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r952); var ctx_r951 = ɵngcc0.ɵɵnextContext(); return ctx_r951.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_4_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r952); var ctx_r953 = ɵngcc0.ɵɵnextContext(); return ctx_r953.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_5_Template(rf, ctx) { if (rf & 1) {\r\n var _r955 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_5_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r955); var ctx_r954 = ɵngcc0.ɵɵnextContext(); return ctx_r954.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_5_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r955); var ctx_r956 = ɵngcc0.ɵɵnextContext(); return ctx_r956.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_6_Template(rf, ctx) { if (rf & 1) {\r\n var _r958 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 13);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_6_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r958); var ctx_r957 = ɵngcc0.ɵɵnextContext(); return ctx_r957.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_6_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r958); var ctx_r959 = ɵngcc0.ɵɵnextContext(); return ctx_r959.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_7_Template(rf, ctx) { if (rf & 1) {\r\n var _r961 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 14);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_7_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r961); var ctx_r960 = ɵngcc0.ɵɵnextContext(); return ctx_r960.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_7_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r961); var ctx_r962 = ɵngcc0.ɵɵnextContext(); return ctx_r962.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nfunction GridsterItemComponent_div_8_Template(rf, ctx) { if (rf & 1) {\r\n var _r964 = ɵngcc0.ɵɵgetCurrentView();\r\n ɵngcc0.ɵɵelementStart(0, \"div\", 15);\r\n ɵngcc0.ɵɵlistener(\"mousedown\", function GridsterItemComponent_div_8_Template_div_mousedown_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r964); var ctx_r963 = ɵngcc0.ɵɵnextContext(); return ctx_r963.resize.dragStartDelay($event); })(\"touchstart\", function GridsterItemComponent_div_8_Template_div_touchstart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r964); var ctx_r965 = ɵngcc0.ɵɵnextContext(); return ctx_r965.resize.dragStartDelay($event); });\r\n ɵngcc0.ɵɵelementEnd();\r\n} }\r\nvar GridsterComponentInterface = /** @class */ (function () {\r\n function GridsterComponentInterface() {\r\n }\r\n return GridsterComponentInterface;\r\n}());\r\n\r\nvar GridType;\r\n(function (GridType) {\r\n GridType[\"Fit\"] = \"fit\";\r\n GridType[\"ScrollVertical\"] = \"scrollVertical\";\r\n GridType[\"ScrollHorizontal\"] = \"scrollHorizontal\";\r\n GridType[\"Fixed\"] = \"fixed\";\r\n GridType[\"VerticalFixed\"] = \"verticalFixed\";\r\n GridType[\"HorizontalFixed\"] = \"horizontalFixed\";\r\n})(GridType || (GridType = {}));\r\nvar DisplayGrid;\r\n(function (DisplayGrid) {\r\n DisplayGrid[\"Always\"] = \"always\";\r\n DisplayGrid[\"OnDragAndResize\"] = \"onDrag&Resize\";\r\n DisplayGrid[\"None\"] = \"none\";\r\n})(DisplayGrid || (DisplayGrid = {}));\r\nvar CompactType;\r\n(function (CompactType) {\r\n CompactType[\"None\"] = \"none\";\r\n CompactType[\"CompactUp\"] = \"compactUp\";\r\n CompactType[\"CompactLeft\"] = \"compactLeft\";\r\n CompactType[\"CompactUpAndLeft\"] = \"compactUp&Left\";\r\n CompactType[\"CompactLeftAndUp\"] = \"compactLeft&Up\";\r\n CompactType[\"CompactRight\"] = \"compactRight\";\r\n CompactType[\"CompactUpAndRight\"] = \"compactUp&Right\";\r\n CompactType[\"CompactRightAndUp\"] = \"compactRight&Up\";\r\n})(CompactType || (CompactType = {}));\r\nvar DirTypes;\r\n(function (DirTypes) {\r\n DirTypes[\"LTR\"] = \"ltr\";\r\n DirTypes[\"RTL\"] = \"rtl\";\r\n})(DirTypes || (DirTypes = {}));\r\n\r\nvar GridsterCompact = /** @class */ (function () {\r\n function GridsterCompact(gridster) {\r\n this.gridster = gridster;\r\n }\r\n GridsterCompact.prototype.destroy = function () {\r\n delete this.gridster;\r\n };\r\n GridsterCompact.prototype.checkCompact = function () {\r\n if (this.gridster.$options.compactType !== CompactType.None) {\r\n if (this.gridster.$options.compactType === CompactType.CompactUp) {\r\n this.checkCompactUp();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactLeft) {\r\n this.checkCompactLeft();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactUpAndLeft) {\r\n this.checkCompactUp();\r\n this.checkCompactLeft();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactLeftAndUp) {\r\n this.checkCompactLeft();\r\n this.checkCompactUp();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactRight) {\r\n this.checkCompactRight();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactUpAndRight) {\r\n this.checkCompactUp();\r\n this.checkCompactRight();\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactRightAndUp) {\r\n this.checkCompactRight();\r\n this.checkCompactUp();\r\n }\r\n }\r\n };\r\n GridsterCompact.prototype.checkCompactItem = function (item) {\r\n if (this.gridster.$options.compactType !== CompactType.None) {\r\n if (this.gridster.$options.compactType === CompactType.CompactUp) {\r\n this.moveUpTillCollision(item);\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactLeft) {\r\n this.moveLeftTillCollision(item);\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactUpAndLeft) {\r\n this.moveUpTillCollision(item);\r\n this.moveLeftTillCollision(item);\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactLeftAndUp) {\r\n this.moveLeftTillCollision(item);\r\n this.moveUpTillCollision(item);\r\n }\r\n else if (this.gridster.$options.compactType === CompactType.CompactUpAndRight) {\r\n this.moveUpTillCollision(item);\r\n this.moveRightTillCollision(item);\r\n }\r\n }\r\n };\r\n GridsterCompact.prototype.checkCompactUp = function () {\r\n var widgetMovedUp = false, widget, moved;\r\n var l = this.gridster.grid.length;\r\n for (var i = 0; i < l; i++) {\r\n widget = this.gridster.grid[i];\r\n if (widget.$item.compactEnabled === false) {\r\n continue;\r\n }\r\n moved = this.moveUpTillCollision(widget.$item);\r\n if (moved) {\r\n widgetMovedUp = true;\r\n widget.item.y = widget.$item.y;\r\n widget.itemChanged();\r\n }\r\n }\r\n if (widgetMovedUp) {\r\n this.checkCompact();\r\n }\r\n };\r\n GridsterCompact.prototype.moveUpTillCollision = function (item) {\r\n item.y -= 1;\r\n if (this.gridster.checkCollision(item)) {\r\n item.y += 1;\r\n return false;\r\n }\r\n else {\r\n this.moveUpTillCollision(item);\r\n return true;\r\n }\r\n };\r\n GridsterCompact.prototype.checkCompactLeft = function () {\r\n var widgetMovedUp = false, widget, moved;\r\n var l = this.gridster.grid.length;\r\n for (var i = 0; i < l; i++) {\r\n widget = this.gridster.grid[i];\r\n if (widget.$item.compactEnabled === false) {\r\n continue;\r\n }\r\n moved = this.moveLeftTillCollision(widget.$item);\r\n if (moved) {\r\n widgetMovedUp = true;\r\n widget.item.x = widget.$item.x;\r\n widget.itemChanged();\r\n }\r\n }\r\n if (widgetMovedUp) {\r\n this.checkCompact();\r\n }\r\n };\r\n GridsterCompact.prototype.checkCompactRight = function () {\r\n var widgetMovedUp = false, widget, moved;\r\n var l = this.gridster.grid.length;\r\n for (var i = 0; i < l; i++) {\r\n widget = this.gridster.grid[i];\r\n if (widget.$item.compactEnabled === false) {\r\n continue;\r\n }\r\n moved = this.moveRightTillCollision(widget.$item);\r\n if (moved) {\r\n widgetMovedUp = true;\r\n widget.item.x = widget.$item.x;\r\n widget.itemChanged();\r\n }\r\n }\r\n if (widgetMovedUp) {\r\n this.checkCompact();\r\n }\r\n };\r\n GridsterCompact.prototype.moveLeftTillCollision = function (item) {\r\n item.x -= 1;\r\n if (this.gridster.checkCollision(item)) {\r\n item.x += 1;\r\n return false;\r\n }\r\n else {\r\n this.moveLeftTillCollision(item);\r\n return true;\r\n }\r\n };\r\n GridsterCompact.prototype.moveRightTillCollision = function (item) {\r\n item.x += 1;\r\n if (this.gridster.checkCollision(item)) {\r\n item.x -= 1;\r\n return false;\r\n }\r\n else {\r\n this.moveRightTillCollision(item);\r\n return true;\r\n }\r\n };\r\n GridsterCompact.ctorParameters = function () { return [\r\n { type: GridsterComponentInterface }\r\n ]; };\r\n GridsterCompact = __decorate([ __metadata(\"design:paramtypes\", [GridsterComponentInterface])\r\n ], GridsterCompact);\r\nGridsterCompact.ɵfac = function GridsterCompact_Factory(t) { return new (t || GridsterCompact)(ɵngcc0.ɵɵinject(GridsterComponentInterface)); };\r\nGridsterCompact.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterCompact, factory: function (t) { return GridsterCompact.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterCompact, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterComponentInterface }]; }, null); })();\r\n return GridsterCompact;\r\n}());\r\n\r\nvar GridsterConfigService = {\r\n gridType: GridType.Fit,\r\n // 'scrollVertical' will fit on width and height of the items will be the same as the width\r\n // 'scrollHorizontal' will fit on height and width of the items will be the same as the height\r\n // 'fixed' will set the rows and columns dimensions based on fixedColWidth and fixedRowHeight options\r\n // 'verticalFixed' will set the rows to fixedRowHeight and columns width will fit the space available\r\n // 'horizontalFixed' will set the columns to fixedColWidth and rows height will fit the space available\r\n fixedColWidth: 250,\r\n fixedRowHeight: 250,\r\n keepFixedHeightInMobile: false,\r\n keepFixedWidthInMobile: false,\r\n setGridSize: false,\r\n compactType: CompactType.None,\r\n mobileBreakpoint: 640,\r\n allowMultiLayer: false,\r\n defaultLayerIndex: 0,\r\n maxLayerIndex: 2,\r\n baseLayerIndex: 1,\r\n minCols: 1,\r\n maxCols: 100,\r\n minRows: 1,\r\n maxRows: 100,\r\n defaultItemCols: 1,\r\n defaultItemRows: 1,\r\n maxItemCols: 50,\r\n maxItemRows: 50,\r\n minItemCols: 1,\r\n minItemRows: 1,\r\n minItemArea: 1,\r\n maxItemArea: 2500,\r\n margin: 10,\r\n outerMargin: true,\r\n outerMarginTop: null,\r\n outerMarginRight: null,\r\n outerMarginBottom: null,\r\n outerMarginLeft: null,\r\n useTransformPositioning: true,\r\n scrollSensitivity: 10,\r\n scrollSpeed: 20,\r\n initCallback: undefined,\r\n destroyCallback: undefined,\r\n gridSizeChangedCallback: undefined,\r\n itemChangeCallback: undefined,\r\n // Arguments: gridsterItem, gridsterItemComponent\r\n itemResizeCallback: undefined,\r\n // Arguments: gridsterItem, gridsterItemComponent\r\n itemInitCallback: undefined,\r\n // Arguments: gridsterItem, gridsterItemComponent\r\n itemRemovedCallback: undefined,\r\n // Arguments: gridsterItem, gridsterItemComponent\r\n itemValidateCallback: undefined,\r\n // Arguments: gridsterItem\r\n enableEmptyCellClick: false,\r\n enableEmptyCellContextMenu: false,\r\n enableEmptyCellDrop: false,\r\n enableEmptyCellDrag: false,\r\n enableOccupiedCellDrop: false,\r\n emptyCellClickCallback: undefined,\r\n emptyCellContextMenuCallback: undefined,\r\n emptyCellDropCallback: undefined,\r\n emptyCellDragCallback: undefined,\r\n emptyCellDragMaxCols: 50,\r\n emptyCellDragMaxRows: 50,\r\n // Arguments: event, gridsterItem{x, y, rows: defaultItemRows, cols: defaultItemCols}\r\n ignoreMarginInRow: false,\r\n draggable: {\r\n delayStart: 0,\r\n enabled: false,\r\n ignoreContentClass: 'gridster-item-content',\r\n ignoreContent: false,\r\n dragHandleClass: 'drag-handler',\r\n stop: undefined,\r\n start: undefined,\r\n // Arguments: item, gridsterItem, event\r\n dropOverItems: false,\r\n dropOverItemsCallback: undefined // callback on drop over another item\r\n // Arguments: source, target, gridComponent\r\n },\r\n resizable: {\r\n delayStart: 0,\r\n enabled: false,\r\n handles: {\r\n s: true,\r\n e: true,\r\n n: true,\r\n w: true,\r\n se: true,\r\n ne: true,\r\n sw: true,\r\n nw: true\r\n },\r\n stop: undefined,\r\n start: undefined // callback when resizing an item starts.\r\n // Arguments: item, gridsterItem, event\r\n },\r\n swap: true,\r\n swapWhileDragging: false,\r\n pushItems: false,\r\n disablePushOnDrag: false,\r\n disablePushOnResize: false,\r\n pushDirections: { north: true, east: true, south: true, west: true },\r\n pushResizeItems: false,\r\n displayGrid: DisplayGrid.OnDragAndResize,\r\n disableWindowResize: false,\r\n disableWarnings: false,\r\n scrollToNewItems: false,\r\n disableScrollHorizontal: false,\r\n disableScrollVertical: false,\r\n disableAutoPositionOnConflict: false,\r\n dirType: DirTypes.LTR,\r\n};\r\n\r\nvar GridsterUtils = /** @class */ (function () {\r\n function GridsterUtils() {\r\n }\r\n GridsterUtils_1 = GridsterUtils;\r\n GridsterUtils.merge = function (obj1, obj2, properties) {\r\n for (var p in obj2) {\r\n if (obj2[p] !== void 0 && properties.hasOwnProperty(p)) {\r\n if (typeof obj2[p] === 'object') {\r\n obj1[p] = GridsterUtils_1.merge(obj1[p], obj2[p], properties[p]);\r\n }\r\n else {\r\n obj1[p] = obj2[p];\r\n }\r\n }\r\n }\r\n return obj1;\r\n };\r\n GridsterUtils.debounce = function (func, wait) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n func.apply(context, args);\r\n };\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n };\r\n };\r\n GridsterUtils.checkTouchEvent = function (e) {\r\n if (e.clientX === undefined && e.touches) {\r\n if (e.touches && e.touches.length) {\r\n e.clientX = e.touches[0].clientX;\r\n e.clientY = e.touches[0].clientY;\r\n }\r\n else if (e.changedTouches && e.changedTouches.length) {\r\n e.clientX = e.changedTouches[0].clientX;\r\n e.clientY = e.changedTouches[0].clientY;\r\n }\r\n }\r\n };\r\n GridsterUtils.checkContentClassForEvent = function (gridster, e) {\r\n if (gridster.$options.draggable.ignoreContent) {\r\n if (!GridsterUtils_1.checkDragHandleClass(e.target, e.currentTarget, gridster.$options.draggable.dragHandleClass, gridster.$options.draggable.ignoreContentClass)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n if (GridsterUtils_1.checkContentClass(e.target, e.currentTarget, gridster.$options.draggable.ignoreContentClass)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n GridsterUtils.checkContentClassForEmptyCellClickEvent = function (gridster, e) {\r\n return GridsterUtils_1.checkContentClass(e.target, e.currentTarget, gridster.$options.draggable.ignoreContentClass)\r\n || GridsterUtils_1.checkContentClass(e.target, e.currentTarget, gridster.$options.draggable.dragHandleClass);\r\n };\r\n GridsterUtils.checkDragHandleClass = function (target, current, dragHandleClass, ignoreContentClass) {\r\n if (!target || target === current) {\r\n return false;\r\n }\r\n if (target.hasAttribute('class')) {\r\n var classnames = target.getAttribute('class').split(' ');\r\n if (classnames.indexOf(dragHandleClass) > -1) {\r\n return true;\r\n }\r\n if (classnames.indexOf(ignoreContentClass) > -1) {\r\n return false;\r\n }\r\n }\r\n return GridsterUtils_1.checkDragHandleClass(target.parentNode, current, dragHandleClass, ignoreContentClass);\r\n };\r\n GridsterUtils.checkContentClass = function (target, current, contentClass) {\r\n if (!target || target === current) {\r\n return false;\r\n }\r\n if (target.hasAttribute('class') && target.getAttribute('class').split(' ').indexOf(contentClass) > -1) {\r\n return true;\r\n }\r\n else {\r\n return GridsterUtils_1.checkContentClass(target.parentNode, current, contentClass);\r\n }\r\n };\r\n GridsterUtils.compareItems = function (a, b) {\r\n if (a.y > b.y) {\r\n return -1;\r\n }\r\n else if (a.y < b.y) {\r\n return 1;\r\n }\r\n else if (a.x > b.x) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n };\r\n var GridsterUtils_1;\r\nGridsterUtils.ɵfac = function GridsterUtils_Factory(t) { return new (t || GridsterUtils)(); };\r\nGridsterUtils.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterUtils, factory: function (t) { return GridsterUtils.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterUtils, [{\r\n type: Injectable\r\n }], function () { return []; }, null); })();\r\n return GridsterUtils;\r\n}());\r\n\r\nvar GridsterEmptyCell = /** @class */ (function () {\r\n function GridsterEmptyCell(gridster) {\r\n this.gridster = gridster;\r\n }\r\n GridsterEmptyCell.prototype.destroy = function () {\r\n delete this.initialItem;\r\n delete this.gridster.movingItem;\r\n if (this.gridster.previewStyle) {\r\n this.gridster.previewStyle();\r\n }\r\n delete this.gridster;\r\n if (this.emptyCellExit) {\r\n this.emptyCellExit();\r\n this.emptyCellExit = null;\r\n }\r\n };\r\n GridsterEmptyCell.prototype.updateOptions = function () {\r\n var _this = this;\r\n if (this.gridster.$options.enableEmptyCellClick && !this.emptyCellClick && this.gridster.options.emptyCellClickCallback) {\r\n this.emptyCellClick = this.gridster.renderer.listen(this.gridster.el, 'click', this.emptyCellClickCb.bind(this));\r\n this.emptyCellClickTouch = this.gridster.renderer.listen(this.gridster.el, 'touchend', this.emptyCellClickCb.bind(this));\r\n }\r\n else if (!this.gridster.$options.enableEmptyCellClick && this.emptyCellClick && this.emptyCellClickTouch) {\r\n this.emptyCellClick();\r\n this.emptyCellClickTouch();\r\n this.emptyCellClick = null;\r\n this.emptyCellClickTouch = null;\r\n }\r\n if (this.gridster.$options.enableEmptyCellContextMenu && !this.emptyCellContextMenu &&\r\n this.gridster.options.emptyCellContextMenuCallback) {\r\n this.emptyCellContextMenu = this.gridster.renderer.listen(this.gridster.el, 'contextmenu', this.emptyCellContextMenuCb.bind(this));\r\n }\r\n else if (!this.gridster.$options.enableEmptyCellContextMenu && this.emptyCellContextMenu) {\r\n this.emptyCellContextMenu();\r\n this.emptyCellContextMenu = null;\r\n }\r\n if (this.gridster.$options.enableEmptyCellDrop && !this.emptyCellDrop && this.gridster.options.emptyCellDropCallback) {\r\n this.emptyCellDrop = this.gridster.renderer.listen(this.gridster.el, 'drop', this.emptyCellDragDrop.bind(this));\r\n this.gridster.zone.runOutsideAngular(function () {\r\n _this.emptyCellMove = _this.gridster.renderer.listen(_this.gridster.el, 'dragover', _this.emptyCellDragOver.bind(_this));\r\n });\r\n this.emptyCellExit = this.gridster.renderer.listen('document', 'dragend', function () {\r\n _this.gridster.movingItem = null;\r\n _this.gridster.previewStyle();\r\n });\r\n }\r\n else if (!this.gridster.$options.enableEmptyCellDrop && this.emptyCellDrop && this.emptyCellMove && this.emptyCellExit) {\r\n this.emptyCellDrop();\r\n this.emptyCellMove();\r\n this.emptyCellExit();\r\n this.emptyCellMove = null;\r\n this.emptyCellDrop = null;\r\n this.emptyCellExit = null;\r\n }\r\n if (this.gridster.$options.enableEmptyCellDrag && !this.emptyCellDrag && this.gridster.options.emptyCellDragCallback) {\r\n this.emptyCellDrag = this.gridster.renderer.listen(this.gridster.el, 'mousedown', this.emptyCellMouseDown.bind(this));\r\n this.emptyCellDragTouch = this.gridster.renderer.listen(this.gridster.el, 'touchstart', this.emptyCellMouseDown.bind(this));\r\n }\r\n else if (!this.gridster.$options.enableEmptyCellDrag && this.emptyCellDrag && this.emptyCellDragTouch) {\r\n this.emptyCellDrag();\r\n this.emptyCellDragTouch();\r\n this.emptyCellDrag = null;\r\n this.emptyCellDragTouch = null;\r\n }\r\n };\r\n GridsterEmptyCell.prototype.emptyCellClickCb = function (e) {\r\n if (this.gridster.movingItem || GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {\r\n return;\r\n }\r\n var item = this.getValidItemFromEvent(e);\r\n if (!item) {\r\n return;\r\n }\r\n if (this.gridster.options.emptyCellClickCallback) {\r\n this.gridster.options.emptyCellClickCallback(e, item);\r\n }\r\n this.gridster.cdRef.markForCheck();\r\n };\r\n GridsterEmptyCell.prototype.emptyCellContextMenuCb = function (e) {\r\n if (this.gridster.movingItem || GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var item = this.getValidItemFromEvent(e);\r\n if (!item) {\r\n return;\r\n }\r\n if (this.gridster.options.emptyCellContextMenuCallback) {\r\n this.gridster.options.emptyCellContextMenuCallback(e, item);\r\n }\r\n this.gridster.cdRef.markForCheck();\r\n };\r\n GridsterEmptyCell.prototype.emptyCellDragDrop = function (e) {\r\n var item = this.getValidItemFromEvent(e);\r\n if (!item) {\r\n return;\r\n }\r\n if (this.gridster.options.emptyCellDropCallback) {\r\n this.gridster.options.emptyCellDropCallback(e, item);\r\n }\r\n this.gridster.cdRef.markForCheck();\r\n };\r\n GridsterEmptyCell.prototype.emptyCellDragOver = function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var item = this.getValidItemFromEvent(e);\r\n if (item) {\r\n e.dataTransfer.dropEffect = 'move';\r\n this.gridster.movingItem = item;\r\n }\r\n else {\r\n e.dataTransfer.dropEffect = 'none';\r\n this.gridster.movingItem = null;\r\n }\r\n this.gridster.previewStyle();\r\n };\r\n GridsterEmptyCell.prototype.emptyCellMouseDown = function (e) {\r\n var _this = this;\r\n if (GridsterUtils.checkContentClassForEmptyCellClickEvent(this.gridster, e)) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var item = this.getValidItemFromEvent(e);\r\n var leftMouseButtonCode = 1;\r\n if (!item || e.buttons !== leftMouseButtonCode) {\r\n return;\r\n }\r\n this.initialItem = item;\r\n this.gridster.movingItem = item;\r\n this.gridster.previewStyle();\r\n this.gridster.zone.runOutsideAngular(function () {\r\n _this.emptyCellMMove = _this.gridster.renderer.listen('window', 'mousemove', _this.emptyCellMouseMove.bind(_this));\r\n _this.emptyCellMMoveTouch = _this.gridster.renderer.listen('window', 'touchmove', _this.emptyCellMouseMove.bind(_this));\r\n });\r\n this.emptyCellUp = this.gridster.renderer.listen('window', 'mouseup', this.emptyCellMouseUp.bind(this));\r\n this.emptyCellUpTouch = this.gridster.renderer.listen('window', 'touchend', this.emptyCellMouseUp.bind(this));\r\n };\r\n GridsterEmptyCell.prototype.emptyCellMouseMove = function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var item = this.getValidItemFromEvent(e, this.initialItem);\r\n if (!item) {\r\n return;\r\n }\r\n this.gridster.movingItem = item;\r\n this.gridster.previewStyle();\r\n };\r\n GridsterEmptyCell.prototype.emptyCellMouseUp = function (e) {\r\n var _this = this;\r\n this.emptyCellMMove();\r\n this.emptyCellMMoveTouch();\r\n this.emptyCellUp();\r\n this.emptyCellUpTouch();\r\n var item = this.getValidItemFromEvent(e, this.initialItem);\r\n if (item) {\r\n this.gridster.movingItem = item;\r\n }\r\n if (this.gridster.options.emptyCellDragCallback && this.gridster.movingItem) {\r\n this.gridster.options.emptyCellDragCallback(e, this.gridster.movingItem);\r\n }\r\n setTimeout(function () {\r\n _this.initialItem = null;\r\n if (_this.gridster) {\r\n _this.gridster.movingItem = null;\r\n _this.gridster.previewStyle();\r\n }\r\n });\r\n this.gridster.cdRef.markForCheck();\r\n };\r\n GridsterEmptyCell.prototype.getValidItemFromEvent = function (e, oldItem) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n GridsterUtils.checkTouchEvent(e);\r\n var rect = this.gridster.el.getBoundingClientRect();\r\n var x = e.clientX + this.gridster.el.scrollLeft - rect.left - this.gridster.gridRenderer.getLeftMargin();\r\n var y = e.clientY + this.gridster.el.scrollTop - rect.top - this.gridster.gridRenderer.getTopMargin();\r\n var item = {\r\n x: this.gridster.pixelsToPositionX(x, Math.floor, true),\r\n y: this.gridster.pixelsToPositionY(y, Math.floor, true),\r\n cols: this.gridster.$options.defaultItemCols,\r\n rows: this.gridster.$options.defaultItemRows\r\n };\r\n if (oldItem) {\r\n item.cols = Math.min(Math.abs(oldItem.x - item.x) + 1, this.gridster.$options.emptyCellDragMaxCols);\r\n item.rows = Math.min(Math.abs(oldItem.y - item.y) + 1, this.gridster.$options.emptyCellDragMaxRows);\r\n if (oldItem.x < item.x) {\r\n item.x = oldItem.x;\r\n }\r\n else if (oldItem.x - item.x > this.gridster.$options.emptyCellDragMaxCols - 1) {\r\n item.x = this.gridster.movingItem ? this.gridster.movingItem.x : 0;\r\n }\r\n if (oldItem.y < item.y) {\r\n item.y = oldItem.y;\r\n }\r\n else if (oldItem.y - item.y > this.gridster.$options.emptyCellDragMaxRows - 1) {\r\n item.y = this.gridster.movingItem ? this.gridster.movingItem.y : 0;\r\n }\r\n }\r\n if (!this.gridster.$options.enableOccupiedCellDrop && this.gridster.checkCollision(item)) {\r\n return;\r\n }\r\n return item;\r\n };\r\n GridsterEmptyCell.ctorParameters = function () { return [\r\n { type: GridsterComponentInterface }\r\n ]; };\r\n GridsterEmptyCell = __decorate([ __metadata(\"design:paramtypes\", [GridsterComponentInterface])\r\n ], GridsterEmptyCell);\r\nGridsterEmptyCell.ɵfac = function GridsterEmptyCell_Factory(t) { return new (t || GridsterEmptyCell)(ɵngcc0.ɵɵinject(GridsterComponentInterface)); };\r\nGridsterEmptyCell.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterEmptyCell, factory: function (t) { return GridsterEmptyCell.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterEmptyCell, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterComponentInterface }]; }, null); })();\r\n return GridsterEmptyCell;\r\n}());\r\n\r\nvar GridsterRenderer = /** @class */ (function () {\r\n function GridsterRenderer(gridster) {\r\n this.gridster = gridster;\r\n }\r\n GridsterRenderer.prototype.destroy = function () {\r\n delete this.gridster;\r\n };\r\n GridsterRenderer.prototype.updateItem = function (el, item, renderer) {\r\n if (this.gridster.mobile) {\r\n this.clearCellPosition(renderer, el);\r\n if (this.gridster.$options.keepFixedHeightInMobile) {\r\n renderer.setStyle(el, 'height', (item.rows * this.gridster.$options.fixedRowHeight) + 'px');\r\n }\r\n else {\r\n renderer.setStyle(el, 'height', (item.rows * this.gridster.curWidth / item.cols) + 'px');\r\n }\r\n if (this.gridster.$options.keepFixedWidthInMobile) {\r\n renderer.setStyle(el, 'width', this.gridster.$options.fixedColWidth + 'px');\r\n }\r\n else {\r\n renderer.setStyle(el, 'width', '');\r\n }\r\n renderer.setStyle(el, 'margin-bottom', this.gridster.$options.margin + 'px');\r\n renderer.setStyle(el, 'margin-right', '');\r\n }\r\n else {\r\n var x = Math.round(this.gridster.curColWidth * item.x);\r\n var y = Math.round(this.gridster.curRowHeight * item.y);\r\n var width = this.gridster.curColWidth * item.cols - this.gridster.$options.margin;\r\n var height = (this.gridster.curRowHeight * item.rows - this.gridster.$options.margin);\r\n // set the cell style\r\n this.setCellPosition(renderer, el, x, y);\r\n renderer.setStyle(el, 'width', width + 'px');\r\n renderer.setStyle(el, 'height', height + 'px');\r\n var marginBottom = null;\r\n var marginRight = null;\r\n if (this.gridster.$options.outerMargin) {\r\n if (this.gridster.rows === item.rows + item.y) {\r\n if (this.gridster.$options.outerMarginBottom !== null) {\r\n marginBottom = this.gridster.$options.outerMarginBottom + 'px';\r\n }\r\n else {\r\n marginBottom = this.gridster.$options.margin + 'px';\r\n }\r\n }\r\n if (this.gridster.columns === item.cols + item.x) {\r\n if (this.gridster.$options.outerMarginBottom !== null) {\r\n marginRight = this.gridster.$options.outerMarginRight + 'px';\r\n }\r\n else {\r\n marginRight = this.gridster.$options.margin + 'px';\r\n }\r\n }\r\n }\r\n renderer.setStyle(el, 'margin-bottom', marginBottom);\r\n renderer.setStyle(el, 'margin-right', marginRight);\r\n }\r\n };\r\n GridsterRenderer.prototype.updateGridster = function () {\r\n var addClass = '';\r\n var removeClass1 = '';\r\n var removeClass2 = '';\r\n var removeClass3 = '';\r\n if (this.gridster.$options.gridType === GridType.Fit) {\r\n addClass = GridType.Fit;\r\n removeClass1 = GridType.ScrollVertical;\r\n removeClass2 = GridType.ScrollHorizontal;\r\n removeClass3 = GridType.Fixed;\r\n }\r\n else if (this.gridster.$options.gridType === GridType.ScrollVertical) {\r\n this.gridster.curRowHeight = this.gridster.curColWidth;\r\n addClass = GridType.ScrollVertical;\r\n removeClass1 = GridType.Fit;\r\n removeClass2 = GridType.ScrollHorizontal;\r\n removeClass3 = GridType.Fixed;\r\n }\r\n else if (this.gridster.$options.gridType === GridType.ScrollHorizontal) {\r\n this.gridster.curColWidth = this.gridster.curRowHeight;\r\n addClass = GridType.ScrollHorizontal;\r\n removeClass1 = GridType.Fit;\r\n removeClass2 = GridType.ScrollVertical;\r\n removeClass3 = GridType.Fixed;\r\n }\r\n else if (this.gridster.$options.gridType === GridType.Fixed) {\r\n this.gridster.curColWidth = this.gridster.$options.fixedColWidth +\r\n (this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);\r\n this.gridster.curRowHeight = this.gridster.$options.fixedRowHeight +\r\n (this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);\r\n addClass = GridType.Fixed;\r\n removeClass1 = GridType.Fit;\r\n removeClass2 = GridType.ScrollVertical;\r\n removeClass3 = GridType.ScrollHorizontal;\r\n }\r\n else if (this.gridster.$options.gridType === GridType.VerticalFixed) {\r\n this.gridster.curRowHeight = this.gridster.$options.fixedRowHeight +\r\n (this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);\r\n addClass = GridType.ScrollVertical;\r\n removeClass1 = GridType.Fit;\r\n removeClass2 = GridType.ScrollHorizontal;\r\n removeClass3 = GridType.Fixed;\r\n }\r\n else if (this.gridster.$options.gridType === GridType.HorizontalFixed) {\r\n this.gridster.curColWidth = this.gridster.$options.fixedColWidth +\r\n (this.gridster.$options.ignoreMarginInRow ? 0 : this.gridster.$options.margin);\r\n addClass = GridType.ScrollHorizontal;\r\n removeClass1 = GridType.Fit;\r\n removeClass2 = GridType.ScrollVertical;\r\n removeClass3 = GridType.Fixed;\r\n }\r\n if (this.gridster.mobile) {\r\n this.gridster.renderer.removeClass(this.gridster.el, addClass);\r\n }\r\n else {\r\n this.gridster.renderer.addClass(this.gridster.el, addClass);\r\n }\r\n this.gridster.renderer.removeClass(this.gridster.el, removeClass1);\r\n this.gridster.renderer.removeClass(this.gridster.el, removeClass2);\r\n this.gridster.renderer.removeClass(this.gridster.el, removeClass3);\r\n };\r\n GridsterRenderer.prototype.getGridColumnStyle = function (i) {\r\n return __assign(__assign({}, this.getLeftPosition(this.gridster.curColWidth * i)), { width: this.gridster.curColWidth - this.gridster.$options.margin + 'px', height: this.gridster.gridRows.length * this.gridster.curRowHeight - this.gridster.$options.margin + 'px' });\r\n };\r\n GridsterRenderer.prototype.getGridRowStyle = function (i) {\r\n return __assign(__assign({}, this.getTopPosition(this.gridster.curRowHeight * i)), { width: this.gridster.gridColumns.length * this.gridster.curColWidth - this.gridster.$options.margin + 'px', height: this.gridster.curRowHeight - this.gridster.$options.margin + 'px' });\r\n };\r\n GridsterRenderer.prototype.getLeftPosition = function (d) {\r\n var dPosition = this.gridster.$options.dirType === DirTypes.RTL ? -d : d;\r\n if (this.gridster.$options.useTransformPositioning) {\r\n return {\r\n transform: 'translateX(' + dPosition + 'px)',\r\n };\r\n }\r\n else {\r\n return {\r\n left: (this.getLeftMargin() + dPosition) + 'px'\r\n };\r\n }\r\n };\r\n GridsterRenderer.prototype.getTopPosition = function (d) {\r\n if (this.gridster.$options.useTransformPositioning) {\r\n return {\r\n transform: 'translateY(' + d + 'px)',\r\n };\r\n }\r\n else {\r\n return {\r\n top: this.getTopMargin() + d + 'px'\r\n };\r\n }\r\n };\r\n GridsterRenderer.prototype.clearCellPosition = function (renderer, el) {\r\n if (this.gridster.$options.useTransformPositioning) {\r\n renderer.setStyle(el, 'transform', '');\r\n }\r\n else {\r\n renderer.setStyle(el, 'top', '');\r\n renderer.setStyle(el, 'left', '');\r\n }\r\n };\r\n GridsterRenderer.prototype.setCellPosition = function (renderer, el, x, y) {\r\n var xPosition = this.gridster.$options.dirType === DirTypes.RTL ? -x : x;\r\n if (this.gridster.$options.useTransformPositioning) {\r\n var transform = 'translate3d(' + xPosition + 'px, ' + y + 'px, 0)';\r\n renderer.setStyle(el, 'transform', transform);\r\n }\r\n else {\r\n renderer.setStyle(el, 'left', this.getLeftMargin() + xPosition + 'px');\r\n renderer.setStyle(el, 'top', this.getTopMargin() + y + 'px');\r\n }\r\n };\r\n GridsterRenderer.prototype.getLeftMargin = function () {\r\n if (this.gridster.$options.outerMargin) {\r\n if (this.gridster.$options.outerMarginLeft !== null) {\r\n return this.gridster.$options.outerMarginLeft;\r\n }\r\n else {\r\n return this.gridster.$options.margin;\r\n }\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n GridsterRenderer.prototype.getTopMargin = function () {\r\n if (this.gridster.$options.outerMargin) {\r\n if (this.gridster.$options.outerMarginTop !== null) {\r\n return this.gridster.$options.outerMarginTop;\r\n }\r\n else {\r\n return this.gridster.$options.margin;\r\n }\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n GridsterRenderer.ctorParameters = function () { return [\r\n { type: GridsterComponentInterface }\r\n ]; };\r\n GridsterRenderer = __decorate([ __metadata(\"design:paramtypes\", [GridsterComponentInterface])\r\n ], GridsterRenderer);\r\nGridsterRenderer.ɵfac = function GridsterRenderer_Factory(t) { return new (t || GridsterRenderer)(ɵngcc0.ɵɵinject(GridsterComponentInterface)); };\r\nGridsterRenderer.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterRenderer, factory: function (t) { return GridsterRenderer.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterRenderer, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterComponentInterface }]; }, null); })();\r\n return GridsterRenderer;\r\n}());\r\n\r\nvar GridsterComponent = /** @class */ (function () {\r\n function GridsterComponent(el, renderer, cdRef, zone) {\r\n this.renderer = renderer;\r\n this.cdRef = cdRef;\r\n this.zone = zone;\r\n this.columns = 0;\r\n this.rows = 0;\r\n this.gridColumns = [];\r\n this.gridRows = [];\r\n this.el = el.nativeElement;\r\n this.$options = JSON.parse(JSON.stringify(GridsterConfigService));\r\n this.calculateLayoutDebounce = GridsterUtils.debounce(this.calculateLayout.bind(this), 0);\r\n this.mobile = false;\r\n this.curWidth = 0;\r\n this.curHeight = 0;\r\n this.grid = [];\r\n this.curColWidth = 0;\r\n this.curRowHeight = 0;\r\n this.dragInProgress = false;\r\n this.emptyCell = new GridsterEmptyCell(this);\r\n this.compact = new GridsterCompact(this);\r\n this.gridRenderer = new GridsterRenderer(this);\r\n }\r\n GridsterComponent_1 = GridsterComponent;\r\n GridsterComponent.prototype.checkCollisionTwoItems = function (item, item2) {\r\n var collision = item.x < item2.x + item2.cols\r\n && item.x + item.cols > item2.x\r\n && item.y < item2.y + item2.rows\r\n && item.y + item.rows > item2.y;\r\n if (!collision) {\r\n return false;\r\n }\r\n if (!this.$options.allowMultiLayer) {\r\n return true;\r\n }\r\n var defaultLayerIndex = this.$options.defaultLayerIndex;\r\n var layerIndex = item.layerIndex === undefined ? defaultLayerIndex : item.layerIndex;\r\n var layerIndex2 = item2.layerIndex === undefined ? defaultLayerIndex : item2.layerIndex;\r\n return layerIndex === layerIndex2;\r\n };\r\n GridsterComponent.prototype.ngOnInit = function () {\r\n if (this.options.initCallback) {\r\n this.options.initCallback(this);\r\n }\r\n };\r\n GridsterComponent.prototype.ngOnChanges = function (changes) {\r\n if (changes.options) {\r\n this.setOptions();\r\n this.options.api = {\r\n optionsChanged: this.optionsChanged.bind(this),\r\n resize: this.onResize.bind(this),\r\n getNextPossiblePosition: this.getNextPossiblePosition.bind(this),\r\n getFirstPossiblePosition: this.getFirstPossiblePosition.bind(this),\r\n getLastPossiblePosition: this.getLastPossiblePosition.bind(this),\r\n };\r\n this.columns = this.$options.minCols;\r\n this.rows = this.$options.minRows;\r\n this.setGridSize();\r\n this.calculateLayout();\r\n }\r\n };\r\n GridsterComponent.prototype.resize = function () {\r\n var height;\r\n var width;\r\n if (this.$options.gridType === 'fit' && !this.mobile) {\r\n width = this.el.offsetWidth;\r\n height = this.el.offsetHeight;\r\n }\r\n else {\r\n width = this.el.clientWidth;\r\n height = this.el.clientHeight;\r\n }\r\n if ((width !== this.curWidth || height !== this.curHeight) && this.checkIfToResize()) {\r\n this.onResize();\r\n }\r\n };\r\n GridsterComponent.prototype.setOptions = function () {\r\n this.$options = GridsterUtils.merge(this.$options, this.options, this.$options);\r\n if (!this.$options.disableWindowResize && !this.windowResize) {\r\n this.windowResize = this.renderer.listen('window', 'resize', this.onResize.bind(this));\r\n }\r\n else if (this.$options.disableWindowResize && this.windowResize) {\r\n this.windowResize();\r\n this.windowResize = null;\r\n }\r\n this.emptyCell.updateOptions();\r\n };\r\n GridsterComponent.prototype.optionsChanged = function () {\r\n this.setOptions();\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex >= 0; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n widget.updateOptions();\r\n }\r\n this.calculateLayout();\r\n };\r\n GridsterComponent.prototype.ngOnDestroy = function () {\r\n if (this.windowResize) {\r\n this.windowResize();\r\n }\r\n if (this.options && this.options.destroyCallback) {\r\n this.options.destroyCallback(this);\r\n }\r\n if (this.options && this.options.api) {\r\n this.options.api.resize = undefined;\r\n this.options.api.optionsChanged = undefined;\r\n this.options.api.getNextPossiblePosition = undefined;\r\n this.options.api = undefined;\r\n }\r\n this.emptyCell.destroy();\r\n delete this.emptyCell;\r\n this.compact.destroy();\r\n delete this.compact;\r\n };\r\n GridsterComponent.prototype.onResize = function () {\r\n this.setGridSize();\r\n this.calculateLayout();\r\n };\r\n GridsterComponent.prototype.checkIfToResize = function () {\r\n var clientWidth = this.el.clientWidth;\r\n var offsetWidth = this.el.offsetWidth;\r\n var scrollWidth = this.el.scrollWidth;\r\n var clientHeight = this.el.clientHeight;\r\n var offsetHeight = this.el.offsetHeight;\r\n var scrollHeight = this.el.scrollHeight;\r\n var verticalScrollPresent = clientWidth < offsetWidth && scrollHeight > offsetHeight\r\n && scrollHeight - offsetHeight < offsetWidth - clientWidth;\r\n var horizontalScrollPresent = clientHeight < offsetHeight\r\n && scrollWidth > offsetWidth && scrollWidth - offsetWidth < offsetHeight - clientHeight;\r\n if (verticalScrollPresent) {\r\n return false;\r\n }\r\n return !horizontalScrollPresent;\r\n };\r\n GridsterComponent.prototype.setGridSize = function () {\r\n var el = this.el;\r\n var width;\r\n var height;\r\n if (this.$options.setGridSize || this.$options.gridType === 'fit' && !this.mobile) {\r\n width = el.offsetWidth;\r\n height = el.offsetHeight;\r\n }\r\n else {\r\n width = el.clientWidth;\r\n height = el.clientHeight;\r\n }\r\n this.curWidth = width;\r\n this.curHeight = height;\r\n };\r\n GridsterComponent.prototype.setGridDimensions = function () {\r\n this.setGridSize();\r\n if (!this.mobile && this.$options.mobileBreakpoint > this.curWidth) {\r\n this.mobile = !this.mobile;\r\n this.renderer.addClass(this.el, 'mobile');\r\n }\r\n else if (this.mobile && this.$options.mobileBreakpoint < this.curWidth) {\r\n this.mobile = !this.mobile;\r\n this.renderer.removeClass(this.el, 'mobile');\r\n }\r\n var rows = this.$options.minRows;\r\n var columns = this.$options.minCols;\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex >= 0; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n if (!widget.notPlaced) {\r\n rows = Math.max(rows, widget.$item.y + widget.$item.rows);\r\n columns = Math.max(columns, widget.$item.x + widget.$item.cols);\r\n }\r\n }\r\n if (this.columns !== columns || this.rows !== rows) {\r\n this.columns = columns;\r\n this.rows = rows;\r\n if (this.options.gridSizeChangedCallback) {\r\n this.options.gridSizeChangedCallback(this);\r\n }\r\n }\r\n };\r\n GridsterComponent.prototype.calculateLayout = function () {\r\n if (this.compact) {\r\n this.compact.checkCompact();\r\n }\r\n this.setGridDimensions();\r\n if (this.$options.outerMargin) {\r\n var marginWidth = -this.$options.margin;\r\n if (this.$options.outerMarginLeft !== null) {\r\n marginWidth += this.$options.outerMarginLeft;\r\n this.renderer.setStyle(this.el, 'padding-left', this.$options.outerMarginLeft + 'px');\r\n }\r\n else {\r\n marginWidth += this.$options.margin;\r\n this.renderer.setStyle(this.el, 'padding-left', this.$options.margin + 'px');\r\n }\r\n if (this.$options.outerMarginRight !== null) {\r\n marginWidth += this.$options.outerMarginRight;\r\n this.renderer.setStyle(this.el, 'padding-right', this.$options.outerMarginRight + 'px');\r\n }\r\n else {\r\n marginWidth += this.$options.margin;\r\n this.renderer.setStyle(this.el, 'padding-right', this.$options.margin + 'px');\r\n }\r\n this.curColWidth = (this.curWidth - marginWidth) / this.columns;\r\n var marginHeight = -this.$options.margin;\r\n if (this.$options.outerMarginTop !== null) {\r\n marginHeight += this.$options.outerMarginTop;\r\n this.renderer.setStyle(this.el, 'padding-top', this.$options.outerMarginTop + 'px');\r\n }\r\n else {\r\n marginHeight += this.$options.margin;\r\n this.renderer.setStyle(this.el, 'padding-top', this.$options.margin + 'px');\r\n }\r\n if (this.$options.outerMarginBottom !== null) {\r\n marginHeight += this.$options.outerMarginBottom;\r\n this.renderer.setStyle(this.el, 'padding-bottom', this.$options.outerMarginBottom + 'px');\r\n }\r\n else {\r\n marginHeight += this.$options.margin;\r\n this.renderer.setStyle(this.el, 'padding-bottom', this.$options.margin + 'px');\r\n }\r\n this.curRowHeight = (this.curHeight - marginHeight) / this.rows;\r\n }\r\n else {\r\n this.curColWidth = (this.curWidth + this.$options.margin) / this.columns;\r\n this.curRowHeight = (this.curHeight + this.$options.margin) / this.rows;\r\n this.renderer.setStyle(this.el, 'padding-left', 0 + 'px');\r\n this.renderer.setStyle(this.el, 'padding-right', 0 + 'px');\r\n this.renderer.setStyle(this.el, 'padding-top', 0 + 'px');\r\n this.renderer.setStyle(this.el, 'padding-bottom', 0 + 'px');\r\n }\r\n this.gridRenderer.updateGridster();\r\n this.updateGrid();\r\n if (this.$options.setGridSize) {\r\n this.renderer.setStyle(this.el, 'width', (this.columns * this.curColWidth + this.$options.margin) + 'px');\r\n this.renderer.setStyle(this.el, 'height', (this.rows * this.curRowHeight + this.$options.margin) + 'px');\r\n }\r\n else {\r\n this.renderer.setStyle(this.el, 'width', '');\r\n this.renderer.setStyle(this.el, 'height', '');\r\n }\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex >= 0; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n widget.setSize();\r\n widget.drag.toggle();\r\n widget.resize.toggle();\r\n }\r\n setTimeout(this.resize.bind(this), 100);\r\n };\r\n GridsterComponent.prototype.updateGrid = function () {\r\n if (this.$options.displayGrid === 'always' && !this.mobile) {\r\n this.renderer.addClass(this.el, 'display-grid');\r\n }\r\n else if (this.$options.displayGrid === 'onDrag&Resize' && this.dragInProgress) {\r\n this.renderer.addClass(this.el, 'display-grid');\r\n }\r\n else if (this.$options.displayGrid === 'none' || !this.dragInProgress || this.mobile) {\r\n this.renderer.removeClass(this.el, 'display-grid');\r\n }\r\n this.setGridDimensions();\r\n this.gridColumns.length = GridsterComponent_1.getNewArrayLength(this.columns, this.curWidth, this.curColWidth);\r\n this.gridRows.length = GridsterComponent_1.getNewArrayLength(this.rows, this.curHeight, this.curRowHeight);\r\n this.cdRef.markForCheck();\r\n };\r\n GridsterComponent.prototype.addItem = function (itemComponent) {\r\n if (itemComponent.$item.cols === undefined) {\r\n itemComponent.$item.cols = this.$options.defaultItemCols;\r\n itemComponent.item.cols = itemComponent.$item.cols;\r\n itemComponent.itemChanged();\r\n }\r\n if (itemComponent.$item.rows === undefined) {\r\n itemComponent.$item.rows = this.$options.defaultItemRows;\r\n itemComponent.item.rows = itemComponent.$item.rows;\r\n itemComponent.itemChanged();\r\n }\r\n if (itemComponent.$item.x === -1 || itemComponent.$item.y === -1) {\r\n this.autoPositionItem(itemComponent);\r\n }\r\n else if (this.checkCollision(itemComponent.$item)) {\r\n if (!this.$options.disableWarnings) {\r\n itemComponent.notPlaced = true;\r\n console.warn('Can\\'t be placed in the bounds of the dashboard, trying to auto position!/n' +\r\n JSON.stringify(itemComponent.item, ['cols', 'rows', 'x', 'y']));\r\n }\r\n if (!this.$options.disableAutoPositionOnConflict) {\r\n this.autoPositionItem(itemComponent);\r\n }\r\n else {\r\n itemComponent.notPlaced = true;\r\n }\r\n }\r\n this.grid.push(itemComponent);\r\n this.calculateLayoutDebounce();\r\n };\r\n GridsterComponent.prototype.removeItem = function (itemComponent) {\r\n this.grid.splice(this.grid.indexOf(itemComponent), 1);\r\n this.calculateLayoutDebounce();\r\n if (this.options.itemRemovedCallback) {\r\n this.options.itemRemovedCallback(itemComponent.item, itemComponent);\r\n }\r\n };\r\n GridsterComponent.prototype.checkCollision = function (item) {\r\n var collision = false;\r\n if (this.options.itemValidateCallback) {\r\n collision = !this.options.itemValidateCallback(item);\r\n }\r\n if (!collision && this.checkGridCollision(item)) {\r\n collision = true;\r\n }\r\n if (!collision) {\r\n var c = this.findItemWithItem(item);\r\n if (c) {\r\n collision = c;\r\n }\r\n }\r\n return collision;\r\n };\r\n GridsterComponent.prototype.checkGridCollision = function (item) {\r\n var noNegativePosition = item.y > -1 && item.x > -1;\r\n var maxGridCols = item.cols + item.x <= this.$options.maxCols;\r\n var maxGridRows = item.rows + item.y <= this.$options.maxRows;\r\n var maxItemCols = item.maxItemCols === undefined ? this.$options.maxItemCols : item.maxItemCols;\r\n var minItemCols = item.minItemCols === undefined ? this.$options.minItemCols : item.minItemCols;\r\n var maxItemRows = item.maxItemRows === undefined ? this.$options.maxItemRows : item.maxItemRows;\r\n var minItemRows = item.minItemRows === undefined ? this.$options.minItemRows : item.minItemRows;\r\n var inColsLimits = item.cols <= maxItemCols && item.cols >= minItemCols;\r\n var inRowsLimits = item.rows <= maxItemRows && item.rows >= minItemRows;\r\n var minAreaLimit = item.minItemArea === undefined ? this.$options.minItemArea : item.minItemArea;\r\n var maxAreaLimit = item.maxItemArea === undefined ? this.$options.maxItemArea : item.maxItemArea;\r\n var area = item.cols * item.rows;\r\n var inMinArea = minAreaLimit <= area;\r\n var inMaxArea = maxAreaLimit >= area;\r\n return !(noNegativePosition && maxGridCols && maxGridRows && inColsLimits && inRowsLimits && inMinArea && inMaxArea);\r\n };\r\n GridsterComponent.prototype.findItemWithItem = function (item) {\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex > -1; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n if (widget.$item !== item && this.checkCollisionTwoItems(widget.$item, item)) {\r\n return widget;\r\n }\r\n }\r\n return false;\r\n };\r\n GridsterComponent.prototype.findItemsWithItem = function (item) {\r\n var a = [];\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex > -1; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n if (widget.$item !== item && this.checkCollisionTwoItems(widget.$item, item)) {\r\n a.push(widget);\r\n }\r\n }\r\n return a;\r\n };\r\n GridsterComponent.prototype.autoPositionItem = function (itemComponent) {\r\n if (this.getNextPossiblePosition(itemComponent.$item)) {\r\n itemComponent.notPlaced = false;\r\n itemComponent.item.x = itemComponent.$item.x;\r\n itemComponent.item.y = itemComponent.$item.y;\r\n itemComponent.itemChanged();\r\n }\r\n else {\r\n itemComponent.notPlaced = true;\r\n if (!this.$options.disableWarnings) {\r\n console.warn('Can\\'t be placed in the bounds of the dashboard!/n' +\r\n JSON.stringify(itemComponent.item, ['cols', 'rows', 'x', 'y']));\r\n }\r\n }\r\n };\r\n GridsterComponent.prototype.getNextPossiblePosition = function (newItem, startingFrom) {\r\n if (startingFrom === void 0) { startingFrom = {}; }\r\n if (newItem.cols === -1) {\r\n newItem.cols = this.$options.defaultItemCols;\r\n }\r\n if (newItem.rows === -1) {\r\n newItem.rows = this.$options.defaultItemRows;\r\n }\r\n this.setGridDimensions();\r\n var rowsIndex = startingFrom.y || 0;\r\n var colsIndex;\r\n for (; rowsIndex < this.rows; rowsIndex++) {\r\n newItem.y = rowsIndex;\r\n colsIndex = startingFrom.x || 0;\r\n for (; colsIndex < this.columns; colsIndex++) {\r\n newItem.x = colsIndex;\r\n if (!this.checkCollision(newItem)) {\r\n return true;\r\n }\r\n }\r\n }\r\n var canAddToRows = this.$options.maxRows >= this.rows + newItem.rows;\r\n var canAddToColumns = this.$options.maxCols >= this.columns + newItem.cols;\r\n var addToRows = this.rows <= this.columns && canAddToRows;\r\n if (!addToRows && canAddToColumns) {\r\n newItem.x = this.columns;\r\n newItem.y = 0;\r\n return true;\r\n }\r\n else if (canAddToRows) {\r\n newItem.y = this.rows;\r\n newItem.x = 0;\r\n return true;\r\n }\r\n return false;\r\n };\r\n GridsterComponent.prototype.getFirstPossiblePosition = function (item) {\r\n var tmpItem = Object.assign({}, item);\r\n this.getNextPossiblePosition(tmpItem);\r\n return tmpItem;\r\n };\r\n GridsterComponent.prototype.getLastPossiblePosition = function (item) {\r\n var farthestItem = { y: 0, x: 0 };\r\n farthestItem = this.grid.reduce(function (prev, curr) {\r\n var currCoords = { y: curr.$item.y + curr.$item.rows - 1, x: curr.$item.x + curr.$item.cols - 1 };\r\n if (GridsterUtils.compareItems(prev, currCoords) === 1) {\r\n return currCoords;\r\n }\r\n else {\r\n return prev;\r\n }\r\n }, farthestItem);\r\n var tmpItem = Object.assign({}, item);\r\n this.getNextPossiblePosition(tmpItem, farthestItem);\r\n return tmpItem;\r\n };\r\n GridsterComponent.prototype.pixelsToPositionX = function (x, roundingMethod, noLimit) {\r\n var position = roundingMethod(x / this.curColWidth);\r\n if (noLimit) {\r\n return position;\r\n }\r\n else {\r\n return Math.max(position, 0);\r\n }\r\n };\r\n GridsterComponent.prototype.pixelsToPositionY = function (y, roundingMethod, noLimit) {\r\n var position = roundingMethod(y / this.curRowHeight);\r\n if (noLimit) {\r\n return position;\r\n }\r\n else {\r\n return Math.max(position, 0);\r\n }\r\n };\r\n GridsterComponent.prototype.positionXToPixels = function (x) {\r\n return x * this.curColWidth;\r\n };\r\n GridsterComponent.prototype.positionYToPixels = function (y) {\r\n return y * this.curRowHeight;\r\n };\r\n // ------ Functions for swapWhileDragging option\r\n // identical to checkCollision() except that here we add bondaries.\r\n GridsterComponent.checkCollisionTwoItemsForSwaping = function (item, item2) {\r\n // if the cols or rows of the items are 1 , doesnt make any sense to set a boundary. Only if the item is bigger we set a boundary\r\n var horizontalBoundaryItem1 = item.cols === 1 ? 0 : 1;\r\n var horizontalBoundaryItem2 = item2.cols === 1 ? 0 : 1;\r\n var verticalBoundaryItem1 = item.rows === 1 ? 0 : 1;\r\n var verticalBoundaryItem2 = item2.rows === 1 ? 0 : 1;\r\n return item.x + horizontalBoundaryItem1 < item2.x + item2.cols\r\n && item.x + item.cols > item2.x + horizontalBoundaryItem2\r\n && item.y + verticalBoundaryItem1 < item2.y + item2.rows\r\n && item.y + item.rows > item2.y + verticalBoundaryItem2;\r\n };\r\n // identical to checkCollision() except that this function calls findItemWithItemForSwaping() instead of findItemWithItem()\r\n GridsterComponent.prototype.checkCollisionForSwaping = function (item) {\r\n var collision = false;\r\n if (this.options.itemValidateCallback) {\r\n collision = !this.options.itemValidateCallback(item);\r\n }\r\n if (!collision && this.checkGridCollision(item)) {\r\n collision = true;\r\n }\r\n if (!collision) {\r\n var c = this.findItemWithItemForSwaping(item);\r\n if (c) {\r\n collision = c;\r\n }\r\n }\r\n return collision;\r\n };\r\n // identical to findItemWithItem() except that this function calls checkCollisionTwoItemsForSwaping() instead of checkCollisionTwoItems()\r\n GridsterComponent.prototype.findItemWithItemForSwaping = function (item) {\r\n var widgetsIndex = this.grid.length - 1;\r\n var widget;\r\n for (; widgetsIndex > -1; widgetsIndex--) {\r\n widget = this.grid[widgetsIndex];\r\n if (widget.$item !== item && GridsterComponent_1.checkCollisionTwoItemsForSwaping(widget.$item, item)) {\r\n return widget;\r\n }\r\n }\r\n return false;\r\n };\r\n // ------ End of functions for swapWhileDragging option\r\n // tslint:disable-next-line:member-ordering\r\n GridsterComponent.getNewArrayLength = function (length, overallSize, size) {\r\n var newLength = Math.max(length, Math.floor(overallSize / size));\r\n if (newLength < 0) {\r\n return 0;\r\n }\r\n if (Number.isFinite(newLength)) {\r\n return Math.floor(newLength);\r\n }\r\n return 0;\r\n };\r\n var GridsterComponent_1;\r\n GridsterComponent.ctorParameters = function () { return [\r\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },\r\n { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },\r\n { type: ChangeDetectorRef, decorators: [{ type: Inject, args: [ChangeDetectorRef,] }] },\r\n { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }\r\n ]; };\r\n __decorate([\r\n Input(),\r\n __metadata(\"design:type\", Object)\r\n ], GridsterComponent.prototype, \"options\", void 0);\r\n GridsterComponent = GridsterComponent_1 = __decorate([ __param(0, Inject(ElementRef)), __param(1, Inject(Renderer2)),\r\n __param(2, Inject(ChangeDetectorRef)),\r\n __param(3, Inject(NgZone)),\r\n __metadata(\"design:paramtypes\", [ElementRef, Renderer2,\r\n ChangeDetectorRef,\r\n NgZone])\r\n ], GridsterComponent);\r\nGridsterComponent.ɵfac = function GridsterComponent_Factory(t) { return new (t || GridsterComponent)(ɵngcc0.ɵɵdirectiveInject(ElementRef), ɵngcc0.ɵɵdirectiveInject(Renderer2), ɵngcc0.ɵɵdirectiveInject(ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgZone)); };\r\nGridsterComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: GridsterComponent, selectors: [[\"gridster\"]], inputs: { options: \"options\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 4, vars: 2, consts: [[\"class\", \"gridster-column\", 3, \"ngStyle\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"gridster-row\", 3, \"ngStyle\", 4, \"ngFor\", \"ngForOf\"], [1, \"gridster-preview\"], [1, \"gridster-column\", 3, \"ngStyle\"], [1, \"gridster-row\", 3, \"ngStyle\"]], template: function GridsterComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵprojectionDef();\r\n ɵngcc0.ɵɵtemplate(0, GridsterComponent_div_0_Template, 1, 1, \"div\", 0);\r\n ɵngcc0.ɵɵtemplate(1, GridsterComponent_div_1_Template, 1, 1, \"div\", 1);\r\n ɵngcc0.ɵɵprojection(2);\r\n ɵngcc0.ɵɵelement(3, \"gridster-preview\", 2);\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.gridColumns);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.gridRows);\r\n } }, directives: function () { return [ɵngcc1.NgForOf, GridsterPreviewComponent, ɵngcc1.NgStyle]; }, styles: [\"gridster{position:relative;box-sizing:border-box;background:grey;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;-webkit-transition:.3s;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #fff;border-right:1px solid #fff}gridster .gridster-row{border-top:1px solid #fff;border-bottom:1px solid #fff}\"], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'gridster',\r\n template: \"
      \\n
      \\n\\n\\n\",\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [\"gridster{position:relative;box-sizing:border-box;background:grey;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;-webkit-transition:.3s;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid #fff;border-right:1px solid #fff}gridster .gridster-row{border-top:1px solid #fff;border-bottom:1px solid #fff}\"]\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ElementRef, decorators: [{\r\n type: Inject,\r\n args: [ElementRef]\r\n }] }, { type: ɵngcc0.Renderer2, decorators: [{\r\n type: Inject,\r\n args: [Renderer2]\r\n }] }, { type: ɵngcc0.ChangeDetectorRef, decorators: [{\r\n type: Inject,\r\n args: [ChangeDetectorRef]\r\n }] }, { type: ɵngcc0.NgZone, decorators: [{\r\n type: Inject,\r\n args: [NgZone]\r\n }] }]; }, { options: [{\r\n type: Input\r\n }] }); })();\r\n return GridsterComponent;\r\n}());\r\n\r\nvar GridsterItemComponentInterface = /** @class */ (function () {\r\n function GridsterItemComponentInterface() {\r\n }\r\n return GridsterItemComponentInterface;\r\n}());\r\n\r\nvar GridsterPush = /** @class */ (function () {\r\n function GridsterPush(gridsterItem) {\r\n this.pushedItems = [];\r\n this.pushedItemsTemp = [];\r\n this.pushedItemsTempPath = [];\r\n this.pushedItemsPath = [];\r\n gridsterItem['id'] = this.generateTempRandomId();\r\n this.gridsterItem = gridsterItem;\r\n this.gridster = gridsterItem.gridster;\r\n this.tryPattern = {\r\n fromEast: [this.tryWest, this.trySouth, this.tryNorth, this.tryEast],\r\n fromWest: [this.tryEast, this.trySouth, this.tryNorth, this.tryWest],\r\n fromNorth: [this.trySouth, this.tryEast, this.tryWest, this.tryNorth],\r\n fromSouth: [this.tryNorth, this.tryEast, this.tryWest, this.trySouth]\r\n };\r\n this.fromSouth = 'fromSouth';\r\n this.fromNorth = 'fromNorth';\r\n this.fromEast = 'fromEast';\r\n this.fromWest = 'fromWest';\r\n }\r\n GridsterPush.prototype.destroy = function () {\r\n delete this.gridster;\r\n delete this.gridsterItem;\r\n };\r\n GridsterPush.prototype.pushItems = function (direction, disable) {\r\n if (this.gridster.$options.pushItems && !disable) {\r\n this.pushedItemsOrder = [];\r\n var pushed = this.push(this.gridsterItem, direction);\r\n if (!pushed) {\r\n this.restoreTempItems();\r\n }\r\n this.pushedItemsOrder = [];\r\n this.pushedItemsTemp = [];\r\n this.pushedItemsTempPath = [];\r\n this.cleanTempIds();\r\n return pushed;\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n GridsterPush.prototype.restoreTempItems = function () {\r\n var i = this.pushedItemsTemp.length - 1;\r\n for (; i > -1; i--) {\r\n this.removeFromTempPushed(this.pushedItemsTemp[i]);\r\n }\r\n };\r\n GridsterPush.prototype.restoreItems = function () {\r\n var i = 0;\r\n var l = this.pushedItems.length;\r\n var pushedItem;\r\n for (; i < l; i++) {\r\n pushedItem = this.pushedItems[i];\r\n pushedItem.$item.x = pushedItem.item.x || 0;\r\n pushedItem.$item.y = pushedItem.item.y || 0;\r\n pushedItem.setSize();\r\n }\r\n this.pushedItems = [];\r\n this.pushedItemsPath = [];\r\n };\r\n GridsterPush.prototype.setPushedItems = function () {\r\n var i = 0;\r\n var l = this.pushedItems.length;\r\n var pushedItem;\r\n for (; i < l; i++) {\r\n pushedItem = this.pushedItems[i];\r\n pushedItem.checkItemChanges(pushedItem.$item, pushedItem.item);\r\n }\r\n this.pushedItems = [];\r\n this.pushedItemsPath = [];\r\n };\r\n GridsterPush.prototype.checkPushBack = function () {\r\n var i = this.pushedItems.length - 1;\r\n var change = false;\r\n for (; i > -1; i--) {\r\n if (this.checkPushedItem(this.pushedItems[i], i)) {\r\n change = true;\r\n }\r\n }\r\n if (change) {\r\n this.checkPushBack();\r\n }\r\n };\r\n GridsterPush.prototype.generateTempRandomId = function () {\r\n return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);\r\n };\r\n GridsterPush.prototype.cleanTempIds = function () {\r\n var allItemsWithIds = this.gridster.grid.filter(function (el) { return el['id']; });\r\n allItemsWithIds.forEach(function (el) { return delete el['id']; });\r\n };\r\n GridsterPush.prototype.push = function (gridsterItem, direction) {\r\n if (this.gridster.checkGridCollision(gridsterItem.$item)) {\r\n return false;\r\n }\r\n if (direction === '') {\r\n return false;\r\n }\r\n var a = this.gridster.findItemsWithItem(gridsterItem.$item);\r\n var i = a.length - 1, itemCollision;\r\n var makePush = true;\r\n var b = [];\r\n for (; i > -1; i--) {\r\n itemCollision = a[i];\r\n if (!itemCollision['id']) {\r\n itemCollision['id'] = this.generateTempRandomId();\r\n }\r\n if (itemCollision === this.gridsterItem) {\r\n makePush = false;\r\n break;\r\n }\r\n if (!itemCollision.canBeDragged()) {\r\n makePush = false;\r\n break;\r\n }\r\n var compare = this.pushedItemsTemp.find(function (el) {\r\n return el['id'] === itemCollision['id'];\r\n });\r\n if (compare) {\r\n makePush = false;\r\n break;\r\n }\r\n if (this.tryPattern[direction][0].call(this, itemCollision, gridsterItem)) {\r\n this.pushedItemsOrder.push(itemCollision);\r\n b.push(itemCollision);\r\n }\r\n else if (this.tryPattern[direction][1].call(this, itemCollision, gridsterItem)) {\r\n this.pushedItemsOrder.push(itemCollision);\r\n b.push(itemCollision);\r\n }\r\n else if (this.tryPattern[direction][2].call(this, itemCollision, gridsterItem)) {\r\n this.pushedItemsOrder.push(itemCollision);\r\n b.push(itemCollision);\r\n }\r\n else if (this.tryPattern[direction][3].call(this, itemCollision, gridsterItem)) {\r\n this.pushedItemsOrder.push(itemCollision);\r\n b.push(itemCollision);\r\n }\r\n else {\r\n makePush = false;\r\n break;\r\n }\r\n }\r\n if (!makePush) {\r\n i = this.pushedItemsOrder.lastIndexOf(b[0]);\r\n if (i > -1) {\r\n var j = this.pushedItemsOrder.length - 1;\r\n for (; j >= i; j--) {\r\n itemCollision = this.pushedItemsOrder[j];\r\n this.pushedItemsOrder.pop();\r\n this.removeFromTempPushed(itemCollision);\r\n this.removeFromPushedItem(itemCollision);\r\n }\r\n }\r\n }\r\n return makePush;\r\n };\r\n GridsterPush.prototype.trySouth = function (gridsterItemCollide, gridsterItem) {\r\n if (!this.gridster.$options.pushDirections.south) {\r\n return false;\r\n }\r\n this.addToTempPushed(gridsterItemCollide);\r\n gridsterItemCollide.$item.y = gridsterItem.$item.y + gridsterItem.$item.rows;\r\n if (this.push(gridsterItemCollide, this.fromNorth)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n return true;\r\n }\r\n else {\r\n this.removeFromTempPushed(gridsterItemCollide);\r\n }\r\n return false;\r\n };\r\n GridsterPush.prototype.tryNorth = function (gridsterItemCollide, gridsterItem) {\r\n if (!this.gridster.$options.pushDirections.north) {\r\n return false;\r\n }\r\n this.addToTempPushed(gridsterItemCollide);\r\n gridsterItemCollide.$item.y = gridsterItem.$item.y - gridsterItemCollide.$item.rows;\r\n if (this.push(gridsterItemCollide, this.fromSouth)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n return true;\r\n }\r\n else {\r\n this.removeFromTempPushed(gridsterItemCollide);\r\n }\r\n return false;\r\n };\r\n GridsterPush.prototype.tryEast = function (gridsterItemCollide, gridsterItem) {\r\n if (!this.gridster.$options.pushDirections.east) {\r\n return false;\r\n }\r\n this.addToTempPushed(gridsterItemCollide);\r\n gridsterItemCollide.$item.x = gridsterItem.$item.x + gridsterItem.$item.cols;\r\n if (this.push(gridsterItemCollide, this.fromWest)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n return true;\r\n }\r\n else {\r\n this.removeFromTempPushed(gridsterItemCollide);\r\n }\r\n return false;\r\n };\r\n GridsterPush.prototype.tryWest = function (gridsterItemCollide, gridsterItem) {\r\n if (!this.gridster.$options.pushDirections.west) {\r\n return false;\r\n }\r\n this.addToTempPushed(gridsterItemCollide);\r\n gridsterItemCollide.$item.x = gridsterItem.$item.x - gridsterItemCollide.$item.cols;\r\n if (this.push(gridsterItemCollide, this.fromEast)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n return true;\r\n }\r\n else {\r\n this.removeFromTempPushed(gridsterItemCollide);\r\n }\r\n return false;\r\n };\r\n GridsterPush.prototype.addToTempPushed = function (gridsterItem) {\r\n var i = this.pushedItemsTemp.indexOf(gridsterItem);\r\n if (i === -1) {\r\n i = this.pushedItemsTemp.push(gridsterItem) - 1;\r\n this.pushedItemsTempPath[i] = [];\r\n }\r\n this.pushedItemsTempPath[i].push({ x: gridsterItem.$item.x, y: gridsterItem.$item.y });\r\n };\r\n GridsterPush.prototype.removeFromTempPushed = function (gridsterItem) {\r\n var i = this.pushedItemsTemp.indexOf(gridsterItem);\r\n var tempPosition = this.pushedItemsTempPath[i].pop();\r\n if (!tempPosition) {\r\n return;\r\n }\r\n gridsterItem.$item.x = tempPosition.x;\r\n gridsterItem.$item.y = tempPosition.y;\r\n gridsterItem.setSize();\r\n if (!this.pushedItemsTempPath[i].length) {\r\n this.pushedItemsTemp.splice(i, 1);\r\n this.pushedItemsTempPath.splice(i, 1);\r\n }\r\n };\r\n GridsterPush.prototype.addToPushed = function (gridsterItem) {\r\n if (this.pushedItems.indexOf(gridsterItem) < 0) {\r\n this.pushedItems.push(gridsterItem);\r\n this.pushedItemsPath.push([{ x: gridsterItem.item.x || 0, y: gridsterItem.item.y || 0 },\r\n { x: gridsterItem.$item.x, y: gridsterItem.$item.y }]);\r\n }\r\n else {\r\n var i = this.pushedItems.indexOf(gridsterItem);\r\n this.pushedItemsPath[i].push({ x: gridsterItem.$item.x, y: gridsterItem.$item.y });\r\n }\r\n };\r\n GridsterPush.prototype.removeFromPushed = function (i) {\r\n if (i > -1) {\r\n this.pushedItems.splice(i, 1);\r\n this.pushedItemsPath.splice(i, 1);\r\n }\r\n };\r\n GridsterPush.prototype.removeFromPushedItem = function (gridsterItem) {\r\n var i = this.pushedItems.indexOf(gridsterItem);\r\n if (i > -1) {\r\n this.pushedItemsPath[i].pop();\r\n if (!this.pushedItemsPath.length) {\r\n this.pushedItems.splice(i, 1);\r\n this.pushedItemsPath.splice(i, 1);\r\n }\r\n }\r\n };\r\n GridsterPush.prototype.checkPushedItem = function (pushedItem, i) {\r\n var path = this.pushedItemsPath[i];\r\n var j = path.length - 2;\r\n var lastPosition, x, y;\r\n var change = false;\r\n for (; j > -1; j--) {\r\n lastPosition = path[j];\r\n x = pushedItem.$item.x;\r\n y = pushedItem.$item.y;\r\n pushedItem.$item.x = lastPosition.x;\r\n pushedItem.$item.y = lastPosition.y;\r\n if (!this.gridster.findItemWithItem(pushedItem.$item)) {\r\n pushedItem.setSize();\r\n path.splice(j + 1, path.length - j - 1);\r\n change = true;\r\n }\r\n else {\r\n pushedItem.$item.x = x;\r\n pushedItem.$item.y = y;\r\n }\r\n }\r\n if (path.length < 2) {\r\n this.removeFromPushed(i);\r\n }\r\n return change;\r\n };\r\n GridsterPush.ctorParameters = function () { return [\r\n { type: GridsterItemComponentInterface }\r\n ]; };\r\n GridsterPush = __decorate([ __metadata(\"design:paramtypes\", [GridsterItemComponentInterface])\r\n ], GridsterPush);\r\nGridsterPush.ɵfac = function GridsterPush_Factory(t) { return new (t || GridsterPush)(ɵngcc0.ɵɵinject(GridsterItemComponentInterface)); };\r\nGridsterPush.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterPush, factory: function (t) { return GridsterPush.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterPush, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterItemComponentInterface }]; }, null); })();\r\n return GridsterPush;\r\n}());\r\n\r\nvar scrollSensitivity;\r\nvar scrollSpeed;\r\nvar intervalDuration = 50;\r\nvar gridsterElement;\r\nvar resizeEvent;\r\nvar resizeEventType;\r\nvar intervalE;\r\nvar intervalW;\r\nvar intervalN;\r\nvar intervalS;\r\nfunction scroll(gridster, left, top, width, height, e, lastMouse, calculateItemPosition, resize, resizeEventScrollType) {\r\n scrollSensitivity = gridster.$options.scrollSensitivity;\r\n scrollSpeed = gridster.$options.scrollSpeed;\r\n gridsterElement = gridster.el;\r\n resizeEvent = resize;\r\n resizeEventType = resizeEventScrollType;\r\n var offsetWidth = gridsterElement.offsetWidth;\r\n var offsetHeight = gridsterElement.offsetHeight;\r\n var offsetLeft = gridsterElement.scrollLeft;\r\n var offsetTop = gridsterElement.scrollTop;\r\n var elemTopOffset = top - offsetTop;\r\n var elemBottomOffset = offsetHeight + offsetTop - top - height;\r\n if (!gridster.$options.disableScrollVertical) {\r\n if (lastMouse.clientY < e.clientY && elemBottomOffset < scrollSensitivity) {\r\n cancelN();\r\n if ((resizeEvent && resizeEventType && !resizeEventType.s) || intervalS) {\r\n return;\r\n }\r\n intervalS = startVertical(1, calculateItemPosition, lastMouse);\r\n }\r\n else if (lastMouse.clientY > e.clientY && offsetTop > 0 && elemTopOffset < scrollSensitivity) {\r\n cancelS();\r\n if ((resizeEvent && resizeEventType && !resizeEventType.n) || intervalN) {\r\n return;\r\n }\r\n intervalN = startVertical(-1, calculateItemPosition, lastMouse);\r\n }\r\n else if (lastMouse.clientY !== e.clientY) {\r\n cancelVertical();\r\n }\r\n }\r\n var elemRightOffset = offsetLeft + offsetWidth - left - width;\r\n var elemLeftOffset = left - offsetLeft;\r\n if (!gridster.$options.disableScrollHorizontal) {\r\n if (lastMouse.clientX < e.clientX && elemRightOffset <= scrollSensitivity) {\r\n cancelW();\r\n if ((resizeEvent && resizeEventType && !resizeEventType.e) || intervalE) {\r\n return;\r\n }\r\n intervalE = startHorizontal(1, calculateItemPosition, lastMouse);\r\n }\r\n else if (lastMouse.clientX > e.clientX && offsetLeft > 0 && elemLeftOffset < scrollSensitivity) {\r\n cancelE();\r\n if ((resizeEvent && resizeEventType && !resizeEventType.w) || intervalW) {\r\n return;\r\n }\r\n intervalW = startHorizontal(-1, calculateItemPosition, lastMouse);\r\n }\r\n else if (lastMouse.clientX !== e.clientX) {\r\n cancelHorizontal();\r\n }\r\n }\r\n}\r\nfunction startVertical(sign, calculateItemPosition, lastMouse) {\r\n var clientY = lastMouse.clientY;\r\n return setInterval(function () {\r\n if (!gridsterElement || sign === -1 && gridsterElement.scrollTop - scrollSpeed < 0) {\r\n cancelVertical();\r\n }\r\n gridsterElement.scrollTop += sign * scrollSpeed;\r\n clientY += sign * scrollSpeed;\r\n calculateItemPosition({ clientX: lastMouse.clientX, clientY: clientY });\r\n }, intervalDuration);\r\n}\r\nfunction startHorizontal(sign, calculateItemPosition, lastMouse) {\r\n var clientX = lastMouse.clientX;\r\n return setInterval(function () {\r\n if (!gridsterElement || sign === -1 && gridsterElement.scrollLeft - scrollSpeed < 0) {\r\n cancelHorizontal();\r\n }\r\n gridsterElement.scrollLeft += sign * scrollSpeed;\r\n clientX += sign * scrollSpeed;\r\n calculateItemPosition({ clientX: clientX, clientY: lastMouse.clientY });\r\n }, intervalDuration);\r\n}\r\nfunction cancelScroll() {\r\n cancelHorizontal();\r\n cancelVertical();\r\n gridsterElement = undefined;\r\n}\r\nfunction cancelHorizontal() {\r\n cancelE();\r\n cancelW();\r\n}\r\nfunction cancelVertical() {\r\n cancelN();\r\n cancelS();\r\n}\r\nfunction cancelE() {\r\n if (intervalE) {\r\n clearInterval(intervalE);\r\n intervalE = 0;\r\n }\r\n}\r\nfunction cancelW() {\r\n if (intervalW) {\r\n clearInterval(intervalW);\r\n intervalW = 0;\r\n }\r\n}\r\nfunction cancelS() {\r\n if (intervalS) {\r\n clearInterval(intervalS);\r\n intervalS = 0;\r\n }\r\n}\r\nfunction cancelN() {\r\n if (intervalN) {\r\n clearInterval(intervalN);\r\n intervalN = 0;\r\n }\r\n}\r\n\r\nvar GridsterSwap = /** @class */ (function () {\r\n function GridsterSwap(gridsterItem) {\r\n this.gridsterItem = gridsterItem;\r\n this.gridster = gridsterItem.gridster;\r\n }\r\n GridsterSwap.prototype.destroy = function () {\r\n delete this.gridster;\r\n delete this.gridsterItem;\r\n delete this.swapedItem;\r\n };\r\n GridsterSwap.prototype.swapItems = function () {\r\n if (this.gridster.$options.swap) {\r\n this.checkSwapBack();\r\n this.checkSwap(this.gridsterItem);\r\n }\r\n };\r\n GridsterSwap.prototype.checkSwapBack = function () {\r\n if (this.swapedItem) {\r\n var x = this.swapedItem.$item.x;\r\n var y = this.swapedItem.$item.y;\r\n this.swapedItem.$item.x = this.swapedItem.item.x || 0;\r\n this.swapedItem.$item.y = this.swapedItem.item.y || 0;\r\n if (this.gridster.checkCollision(this.swapedItem.$item)) {\r\n this.swapedItem.$item.x = x;\r\n this.swapedItem.$item.y = y;\r\n }\r\n else {\r\n this.swapedItem.setSize();\r\n this.gridsterItem.$item.x = this.gridsterItem.item.x || 0;\r\n this.gridsterItem.$item.y = this.gridsterItem.item.y || 0;\r\n this.swapedItem = undefined;\r\n }\r\n }\r\n };\r\n GridsterSwap.prototype.restoreSwapItem = function () {\r\n if (this.swapedItem) {\r\n this.swapedItem.$item.x = this.swapedItem.item.x || 0;\r\n this.swapedItem.$item.y = this.swapedItem.item.y || 0;\r\n this.swapedItem.setSize();\r\n this.swapedItem = undefined;\r\n }\r\n };\r\n GridsterSwap.prototype.setSwapItem = function () {\r\n if (this.swapedItem) {\r\n this.swapedItem.checkItemChanges(this.swapedItem.$item, this.swapedItem.item);\r\n this.swapedItem = undefined;\r\n }\r\n };\r\n GridsterSwap.prototype.checkSwap = function (pushedBy) {\r\n var gridsterItemCollision;\r\n if (this.gridster.$options.swapWhileDragging) {\r\n gridsterItemCollision = this.gridster.checkCollisionForSwaping(pushedBy.$item);\r\n }\r\n else {\r\n gridsterItemCollision = this.gridster.checkCollision(pushedBy.$item);\r\n }\r\n if (gridsterItemCollision && gridsterItemCollision !== true && gridsterItemCollision.canBeDragged()) {\r\n var gridsterItemCollide = gridsterItemCollision;\r\n var copyCollisionX = gridsterItemCollide.$item.x;\r\n var copyCollisionY = gridsterItemCollide.$item.y;\r\n var copyX = pushedBy.$item.x;\r\n var copyY = pushedBy.$item.y;\r\n gridsterItemCollide.$item.x = pushedBy.item.x || 0;\r\n gridsterItemCollide.$item.y = pushedBy.item.y || 0;\r\n pushedBy.$item.x = gridsterItemCollide.item.x || 0;\r\n pushedBy.$item.y = gridsterItemCollide.item.y || 0;\r\n if (this.gridster.checkCollision(gridsterItemCollide.$item) || this.gridster.checkCollision(pushedBy.$item)) {\r\n pushedBy.$item.x = copyX;\r\n pushedBy.$item.y = copyY;\r\n gridsterItemCollide.$item.x = copyCollisionX;\r\n gridsterItemCollide.$item.y = copyCollisionY;\r\n }\r\n else {\r\n gridsterItemCollide.setSize();\r\n this.swapedItem = gridsterItemCollide;\r\n if (this.gridster.$options.swapWhileDragging) {\r\n this.gridsterItem.checkItemChanges(this.gridsterItem.$item, this.gridsterItem.item);\r\n this.setSwapItem();\r\n }\r\n }\r\n }\r\n };\r\n GridsterSwap.ctorParameters = function () { return [\r\n { type: GridsterItemComponentInterface }\r\n ]; };\r\n GridsterSwap = __decorate([ __metadata(\"design:paramtypes\", [GridsterItemComponentInterface])\r\n ], GridsterSwap);\r\nGridsterSwap.ɵfac = function GridsterSwap_Factory(t) { return new (t || GridsterSwap)(ɵngcc0.ɵɵinject(GridsterItemComponentInterface)); };\r\nGridsterSwap.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterSwap, factory: function (t) { return GridsterSwap.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterSwap, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterItemComponentInterface }]; }, null); })();\r\n return GridsterSwap;\r\n}());\r\n\r\nvar GridsterDraggable = /** @class */ (function () {\r\n function GridsterDraggable(gridsterItem, gridster, zone) {\r\n this.zone = zone;\r\n this.collision = false;\r\n this.gridsterItem = gridsterItem;\r\n this.gridster = gridster;\r\n this.lastMouse = {\r\n clientX: 0,\r\n clientY: 0\r\n };\r\n this.path = [];\r\n }\r\n GridsterDraggable.prototype.destroy = function () {\r\n if (this.gridster.previewStyle) {\r\n this.gridster.previewStyle(true);\r\n }\r\n delete this.gridsterItem;\r\n delete this.gridster;\r\n delete this.collision;\r\n if (this.mousedown) {\r\n this.mousedown();\r\n this.touchstart();\r\n }\r\n };\r\n GridsterDraggable.prototype.dragStart = function (e) {\r\n var _this = this;\r\n if (e.which && e.which !== 1) {\r\n return;\r\n }\r\n if (this.gridster.options.draggable && this.gridster.options.draggable.start) {\r\n this.gridster.options.draggable.start(this.gridsterItem.item, this.gridsterItem, e);\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.dragFunction = this.dragMove.bind(this);\r\n this.dragStopFunction = this.dragStop.bind(this);\r\n this.zone.runOutsideAngular(function () {\r\n _this.mousemove = _this.gridsterItem.renderer.listen('document', 'mousemove', _this.dragFunction);\r\n _this.touchmove = _this.gridster.renderer.listen(_this.gridster.el, 'touchmove', _this.dragFunction);\r\n });\r\n this.mouseup = this.gridsterItem.renderer.listen('document', 'mouseup', this.dragStopFunction);\r\n this.mouseleave = this.gridsterItem.renderer.listen('document', 'mouseleave', this.dragStopFunction);\r\n this.cancelOnBlur = this.gridsterItem.renderer.listen('window', 'blur', this.dragStopFunction);\r\n this.touchend = this.gridsterItem.renderer.listen('document', 'touchend', this.dragStopFunction);\r\n this.touchcancel = this.gridsterItem.renderer.listen('document', 'touchcancel', this.dragStopFunction);\r\n this.gridsterItem.renderer.addClass(this.gridsterItem.el, 'gridster-item-moving');\r\n this.margin = this.gridster.$options.margin;\r\n this.offsetLeft = this.gridster.el.scrollLeft - this.gridster.el.offsetLeft;\r\n this.offsetTop = this.gridster.el.scrollTop - this.gridster.el.offsetTop;\r\n this.left = this.gridsterItem.left - this.margin;\r\n this.top = this.gridsterItem.top - this.margin;\r\n this.width = this.gridsterItem.width;\r\n this.height = this.gridsterItem.height;\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.diffLeft = (e.clientX - this.gridster.el.scrollWidth + this.gridsterItem.left);\r\n }\r\n else {\r\n this.diffLeft = e.clientX + this.offsetLeft - this.margin - this.left;\r\n }\r\n this.diffTop = e.clientY + this.offsetTop - this.margin - this.top;\r\n this.gridster.movingItem = this.gridsterItem.$item;\r\n this.gridster.previewStyle(true);\r\n this.push = new GridsterPush(this.gridsterItem);\r\n this.swap = new GridsterSwap(this.gridsterItem);\r\n this.gridster.dragInProgress = true;\r\n this.gridster.updateGrid();\r\n this.path.push({ x: this.gridsterItem.item.x || 0, y: this.gridsterItem.item.y || 0 });\r\n };\r\n GridsterDraggable.prototype.dragMove = function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n GridsterUtils.checkTouchEvent(e);\r\n this.offsetLeft = this.gridster.el.scrollLeft - this.gridster.el.offsetLeft;\r\n this.offsetTop = this.gridster.el.scrollTop - this.gridster.el.offsetTop;\r\n scroll(this.gridster, this.left, this.top, this.width, this.height, e, this.lastMouse, this.calculateItemPositionFromMousePosition.bind(this));\r\n this.calculateItemPositionFromMousePosition(e);\r\n };\r\n GridsterDraggable.prototype.calculateItemPositionFromMousePosition = function (e) {\r\n var _this = this;\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.left = this.gridster.el.scrollWidth - e.clientX + this.diffLeft;\r\n }\r\n else {\r\n this.left = e.clientX + this.offsetLeft - this.diffLeft;\r\n }\r\n this.top = e.clientY + this.offsetTop - this.diffTop;\r\n this.calculateItemPosition();\r\n this.lastMouse.clientX = e.clientX;\r\n this.lastMouse.clientY = e.clientY;\r\n this.zone.run(function () {\r\n _this.gridster.updateGrid();\r\n });\r\n };\r\n GridsterDraggable.prototype.dragStop = function (e) {\r\n var _this = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n cancelScroll();\r\n this.cancelOnBlur();\r\n this.mousemove();\r\n this.mouseup();\r\n this.mouseleave();\r\n this.touchmove();\r\n this.touchend();\r\n this.touchcancel();\r\n this.gridsterItem.renderer.removeClass(this.gridsterItem.el, 'gridster-item-moving');\r\n this.gridster.dragInProgress = false;\r\n this.gridster.updateGrid();\r\n this.path = [];\r\n if (this.gridster.options.draggable && this.gridster.options.draggable.stop) {\r\n Promise.resolve(this.gridster.options.draggable.stop(this.gridsterItem.item, this.gridsterItem, e))\r\n .then(this.makeDrag.bind(this), this.cancelDrag.bind(this));\r\n }\r\n else {\r\n this.makeDrag();\r\n }\r\n setTimeout(function () {\r\n if (_this.gridster) {\r\n _this.gridster.movingItem = null;\r\n _this.gridster.previewStyle(true);\r\n }\r\n });\r\n };\r\n GridsterDraggable.prototype.cancelDrag = function () {\r\n this.gridsterItem.$item.x = this.gridsterItem.item.x || 0;\r\n this.gridsterItem.$item.y = this.gridsterItem.item.y || 0;\r\n this.gridsterItem.setSize();\r\n if (this.push) {\r\n this.push.restoreItems();\r\n }\r\n if (this.swap) {\r\n this.swap.restoreSwapItem();\r\n }\r\n if (this.push) {\r\n this.push.destroy();\r\n delete this.push;\r\n }\r\n if (this.swap) {\r\n this.swap.destroy();\r\n delete this.swap;\r\n }\r\n };\r\n GridsterDraggable.prototype.makeDrag = function () {\r\n if (this.gridster.$options.draggable.dropOverItems && this.gridster.options.draggable\r\n && this.gridster.options.draggable.dropOverItemsCallback\r\n && this.collision && this.collision !== true && this.collision.$item) {\r\n this.gridster.options.draggable.dropOverItemsCallback(this.gridsterItem.item, this.collision.item, this.gridster);\r\n }\r\n this.collision = false;\r\n this.gridsterItem.setSize();\r\n this.gridsterItem.checkItemChanges(this.gridsterItem.$item, this.gridsterItem.item);\r\n if (this.push) {\r\n this.push.setPushedItems();\r\n }\r\n if (this.swap) {\r\n this.swap.setSwapItem();\r\n }\r\n if (this.push) {\r\n this.push.destroy();\r\n delete this.push;\r\n }\r\n if (this.swap) {\r\n this.swap.destroy();\r\n delete this.swap;\r\n }\r\n };\r\n GridsterDraggable.prototype.calculateItemPosition = function () {\r\n this.gridster.movingItem = this.gridsterItem.$item;\r\n this.positionX = this.gridster.pixelsToPositionX(this.left, Math.round);\r\n this.positionY = this.gridster.pixelsToPositionY(this.top, Math.round);\r\n this.positionXBackup = this.gridsterItem.$item.x;\r\n this.positionYBackup = this.gridsterItem.$item.y;\r\n this.gridsterItem.$item.x = this.positionX;\r\n if (this.gridster.checkGridCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.x = this.positionXBackup;\r\n }\r\n this.gridsterItem.$item.y = this.positionY;\r\n if (this.gridster.checkGridCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.y = this.positionYBackup;\r\n }\r\n this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer, this.gridsterItem.el, this.left, this.top);\r\n if (this.positionXBackup !== this.gridsterItem.$item.x || this.positionYBackup !== this.gridsterItem.$item.y) {\r\n var lastPosition = this.path[this.path.length - 1];\r\n var direction = '';\r\n if (lastPosition.x < this.gridsterItem.$item.x) {\r\n direction = this.push.fromWest;\r\n }\r\n else if (lastPosition.x > this.gridsterItem.$item.x) {\r\n direction = this.push.fromEast;\r\n }\r\n else if (lastPosition.y < this.gridsterItem.$item.y) {\r\n direction = this.push.fromNorth;\r\n }\r\n else if (lastPosition.y > this.gridsterItem.$item.y) {\r\n direction = this.push.fromSouth;\r\n }\r\n this.push.pushItems(direction, this.gridster.$options.disablePushOnDrag);\r\n this.swap.swapItems();\r\n this.collision = this.gridster.checkCollision(this.gridsterItem.$item);\r\n if (this.collision) {\r\n this.gridsterItem.$item.x = this.positionXBackup;\r\n this.gridsterItem.$item.y = this.positionYBackup;\r\n if (this.gridster.$options.draggable.dropOverItems && this.collision !== true && this.collision.$item) {\r\n this.gridster.movingItem = null;\r\n }\r\n }\r\n else {\r\n this.path.push({ x: this.gridsterItem.$item.x, y: this.gridsterItem.$item.y });\r\n }\r\n this.push.checkPushBack();\r\n }\r\n this.gridster.previewStyle(true);\r\n };\r\n GridsterDraggable.prototype.toggle = function () {\r\n var enableDrag = this.gridsterItem.canBeDragged();\r\n if (!this.enabled && enableDrag) {\r\n this.enabled = !this.enabled;\r\n this.dragStartFunction = this.dragStartDelay.bind(this);\r\n this.mousedown = this.gridsterItem.renderer.listen(this.gridsterItem.el, 'mousedown', this.dragStartFunction);\r\n this.touchstart = this.gridsterItem.renderer.listen(this.gridsterItem.el, 'touchstart', this.dragStartFunction);\r\n }\r\n else if (this.enabled && !enableDrag) {\r\n this.enabled = !this.enabled;\r\n this.mousedown();\r\n this.touchstart();\r\n }\r\n };\r\n GridsterDraggable.prototype.dragStartDelay = function (e) {\r\n var _this = this;\r\n if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('gridster-item-resizable-handler') > -1) {\r\n return;\r\n }\r\n if (GridsterUtils.checkContentClassForEvent(this.gridster, e)) {\r\n return;\r\n }\r\n GridsterUtils.checkTouchEvent(e);\r\n if (!this.gridster.$options.draggable.delayStart) {\r\n this.dragStart(e);\r\n return;\r\n }\r\n var timeout = setTimeout(function () {\r\n _this.dragStart(e);\r\n cancelDrag();\r\n }, this.gridster.$options.draggable.delayStart);\r\n var cancelMouse = this.gridsterItem.renderer.listen('document', 'mouseup', cancelDrag);\r\n var cancelMouseLeave = this.gridsterItem.renderer.listen('document', 'mouseleave', cancelDrag);\r\n var cancelOnBlur = this.gridsterItem.renderer.listen('window', 'blur', cancelDrag);\r\n var cancelTouchMove = this.gridsterItem.renderer.listen('document', 'touchmove', cancelMove);\r\n var cancelTouchEnd = this.gridsterItem.renderer.listen('document', 'touchend', cancelDrag);\r\n var cancelTouchCancel = this.gridsterItem.renderer.listen('document', 'touchcancel', cancelDrag);\r\n function cancelMove(eventMove) {\r\n GridsterUtils.checkTouchEvent(eventMove);\r\n if (Math.abs(eventMove.clientX - e.clientX) > 9 || Math.abs(eventMove.clientY - e.clientY) > 9) {\r\n cancelDrag();\r\n }\r\n }\r\n function cancelDrag() {\r\n clearTimeout(timeout);\r\n cancelOnBlur();\r\n cancelMouse();\r\n cancelMouseLeave();\r\n cancelTouchMove();\r\n cancelTouchEnd();\r\n cancelTouchCancel();\r\n }\r\n };\r\n GridsterDraggable.ctorParameters = function () { return [\r\n { type: GridsterItemComponentInterface },\r\n { type: GridsterComponentInterface },\r\n { type: NgZone }\r\n ]; };\r\n GridsterDraggable = __decorate([ __metadata(\"design:paramtypes\", [GridsterItemComponentInterface, GridsterComponentInterface, NgZone])\r\n ], GridsterDraggable);\r\nGridsterDraggable.ɵfac = function GridsterDraggable_Factory(t) { return new (t || GridsterDraggable)(ɵngcc0.ɵɵinject(GridsterItemComponentInterface), ɵngcc0.ɵɵinject(GridsterComponentInterface), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\r\nGridsterDraggable.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterDraggable, factory: function (t) { return GridsterDraggable.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterDraggable, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterItemComponentInterface }, { type: GridsterComponentInterface }, { type: ɵngcc0.NgZone }]; }, null); })();\r\n return GridsterDraggable;\r\n}());\r\n\r\nvar GridsterPushResize = /** @class */ (function () {\r\n function GridsterPushResize(gridsterItem) {\r\n this.pushedItems = [];\r\n this.pushedItemsPath = [];\r\n this.gridsterItem = gridsterItem;\r\n this.gridster = gridsterItem.gridster;\r\n this.tryPattern = {\r\n fromEast: this.tryWest,\r\n fromWest: this.tryEast,\r\n fromNorth: this.trySouth,\r\n fromSouth: this.tryNorth\r\n };\r\n this.fromSouth = 'fromSouth';\r\n this.fromNorth = 'fromNorth';\r\n this.fromEast = 'fromEast';\r\n this.fromWest = 'fromWest';\r\n }\r\n GridsterPushResize.prototype.destroy = function () {\r\n delete this.gridster;\r\n delete this.gridsterItem;\r\n };\r\n GridsterPushResize.prototype.pushItems = function (direction) {\r\n if (this.gridster.$options.pushResizeItems) {\r\n return this.push(this.gridsterItem, direction);\r\n }\r\n else {\r\n return false;\r\n }\r\n };\r\n GridsterPushResize.prototype.restoreItems = function () {\r\n var i = 0;\r\n var l = this.pushedItems.length;\r\n var pushedItem;\r\n for (; i < l; i++) {\r\n pushedItem = this.pushedItems[i];\r\n pushedItem.$item.x = pushedItem.item.x || 0;\r\n pushedItem.$item.y = pushedItem.item.y || 0;\r\n pushedItem.$item.cols = pushedItem.item.cols || 1;\r\n pushedItem.$item.row = pushedItem.item.row || 1;\r\n pushedItem.setSize();\r\n }\r\n this.pushedItems = [];\r\n this.pushedItemsPath = [];\r\n };\r\n GridsterPushResize.prototype.setPushedItems = function () {\r\n var i = 0;\r\n var l = this.pushedItems.length;\r\n var pushedItem;\r\n for (; i < l; i++) {\r\n pushedItem = this.pushedItems[i];\r\n pushedItem.checkItemChanges(pushedItem.$item, pushedItem.item);\r\n }\r\n this.pushedItems = [];\r\n this.pushedItemsPath = [];\r\n };\r\n GridsterPushResize.prototype.checkPushBack = function () {\r\n var i = this.pushedItems.length - 1;\r\n var change = false;\r\n for (; i > -1; i--) {\r\n if (this.checkPushedItem(this.pushedItems[i], i)) {\r\n change = true;\r\n }\r\n }\r\n if (change) {\r\n this.checkPushBack();\r\n }\r\n };\r\n GridsterPushResize.prototype.push = function (gridsterItem, direction) {\r\n var gridsterItemCollision = this.gridster.checkCollision(gridsterItem.$item);\r\n if (gridsterItemCollision && gridsterItemCollision !== true &&\r\n gridsterItemCollision !== this.gridsterItem && gridsterItemCollision.canBeResized()) {\r\n if (this.tryPattern[direction].call(this, gridsterItemCollision, gridsterItem, direction)) {\r\n return true;\r\n }\r\n }\r\n else if (gridsterItemCollision === false) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.prototype.trySouth = function (gridsterItemCollide, gridsterItem, direction) {\r\n var backUpY = gridsterItemCollide.$item.y;\r\n var backUpRows = gridsterItemCollide.$item.rows;\r\n gridsterItemCollide.$item.y = gridsterItem.$item.y + gridsterItem.$item.rows;\r\n gridsterItemCollide.$item.rows = backUpRows + backUpY - gridsterItemCollide.$item.y;\r\n if (!this.gridster.checkCollisionTwoItems(gridsterItemCollide.$item, gridsterItem.$item)\r\n && !this.gridster.checkGridCollision(gridsterItemCollide.$item)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n this.push(gridsterItem, direction);\r\n return true;\r\n }\r\n else {\r\n gridsterItemCollide.$item.y = backUpY;\r\n gridsterItemCollide.$item.rows = backUpRows;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.prototype.tryNorth = function (gridsterItemCollide, gridsterItem, direction) {\r\n var backUpRows = gridsterItemCollide.$item.rows;\r\n gridsterItemCollide.$item.rows = gridsterItem.$item.y - gridsterItemCollide.$item.y;\r\n if (!this.gridster.checkCollisionTwoItems(gridsterItemCollide.$item, gridsterItem.$item)\r\n && !this.gridster.checkGridCollision(gridsterItemCollide.$item)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n this.push(gridsterItem, direction);\r\n return true;\r\n }\r\n else {\r\n gridsterItemCollide.$item.rows = backUpRows;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.prototype.tryEast = function (gridsterItemCollide, gridsterItem, direction) {\r\n var backUpX = gridsterItemCollide.$item.x;\r\n var backUpCols = gridsterItemCollide.$item.cols;\r\n gridsterItemCollide.$item.x = gridsterItem.$item.x + gridsterItem.$item.cols;\r\n gridsterItemCollide.$item.cols = backUpCols + backUpX - gridsterItemCollide.$item.x;\r\n if (!this.gridster.checkCollisionTwoItems(gridsterItemCollide.$item, gridsterItem.$item)\r\n && !this.gridster.checkGridCollision(gridsterItemCollide.$item)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n this.push(gridsterItem, direction);\r\n return true;\r\n }\r\n else {\r\n gridsterItemCollide.$item.x = backUpX;\r\n gridsterItemCollide.$item.cols = backUpCols;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.prototype.tryWest = function (gridsterItemCollide, gridsterItem, direction) {\r\n var backUpCols = gridsterItemCollide.$item.cols;\r\n gridsterItemCollide.$item.cols = gridsterItem.$item.x - gridsterItemCollide.$item.x;\r\n if (!this.gridster.checkCollisionTwoItems(gridsterItemCollide.$item, gridsterItem.$item)\r\n && !this.gridster.checkGridCollision(gridsterItemCollide.$item)) {\r\n gridsterItemCollide.setSize();\r\n this.addToPushed(gridsterItemCollide);\r\n this.push(gridsterItem, direction);\r\n return true;\r\n }\r\n else {\r\n gridsterItemCollide.$item.cols = backUpCols;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.prototype.addToPushed = function (gridsterItem) {\r\n if (this.pushedItems.indexOf(gridsterItem) < 0) {\r\n this.pushedItems.push(gridsterItem);\r\n this.pushedItemsPath.push([\r\n {\r\n x: gridsterItem.item.x || 0,\r\n y: gridsterItem.item.y || 0,\r\n cols: gridsterItem.item.cols || 0,\r\n rows: gridsterItem.item.rows || 0\r\n },\r\n {\r\n x: gridsterItem.$item.x,\r\n y: gridsterItem.$item.y,\r\n cols: gridsterItem.$item.cols,\r\n rows: gridsterItem.$item.rows\r\n }\r\n ]);\r\n }\r\n else {\r\n var i = this.pushedItems.indexOf(gridsterItem);\r\n this.pushedItemsPath[i].push({\r\n x: gridsterItem.$item.x,\r\n y: gridsterItem.$item.y,\r\n cols: gridsterItem.$item.cols,\r\n rows: gridsterItem.$item.rows\r\n });\r\n }\r\n };\r\n GridsterPushResize.prototype.removeFromPushed = function (i) {\r\n if (i > -1) {\r\n this.pushedItems.splice(i, 1);\r\n this.pushedItemsPath.splice(i, 1);\r\n }\r\n };\r\n GridsterPushResize.prototype.checkPushedItem = function (pushedItem, i) {\r\n var path = this.pushedItemsPath[i];\r\n var j = path.length - 2;\r\n var lastPosition, x, y, cols, rows;\r\n for (; j > -1; j--) {\r\n lastPosition = path[j];\r\n x = pushedItem.$item.x;\r\n y = pushedItem.$item.y;\r\n cols = pushedItem.$item.cols;\r\n rows = pushedItem.$item.rows;\r\n pushedItem.$item.x = lastPosition.x;\r\n pushedItem.$item.y = lastPosition.y;\r\n pushedItem.$item.cols = lastPosition.cols;\r\n pushedItem.$item.rows = lastPosition.rows;\r\n if (!this.gridster.findItemWithItem(pushedItem.$item)) {\r\n pushedItem.setSize();\r\n path.splice(j + 1, path.length - 1 - j);\r\n }\r\n else {\r\n pushedItem.$item.x = x;\r\n pushedItem.$item.y = y;\r\n pushedItem.$item.cols = cols;\r\n pushedItem.$item.rows = rows;\r\n }\r\n }\r\n if (path.length < 2) {\r\n this.removeFromPushed(i);\r\n return true;\r\n }\r\n return false;\r\n };\r\n GridsterPushResize.ctorParameters = function () { return [\r\n { type: GridsterItemComponentInterface }\r\n ]; };\r\n GridsterPushResize = __decorate([ __metadata(\"design:paramtypes\", [GridsterItemComponentInterface])\r\n ], GridsterPushResize);\r\nGridsterPushResize.ɵfac = function GridsterPushResize_Factory(t) { return new (t || GridsterPushResize)(ɵngcc0.ɵɵinject(GridsterItemComponentInterface)); };\r\nGridsterPushResize.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterPushResize, factory: function (t) { return GridsterPushResize.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterPushResize, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterItemComponentInterface }]; }, null); })();\r\n return GridsterPushResize;\r\n}());\r\n\r\nvar GridsterResizable = /** @class */ (function () {\r\n function GridsterResizable(gridsterItem, gridster, zone) {\r\n this.zone = zone;\r\n this.gridsterItem = gridsterItem;\r\n this.gridster = gridster;\r\n this.lastMouse = {\r\n clientX: 0,\r\n clientY: 0\r\n };\r\n this.itemBackup = [0, 0, 0, 0];\r\n this.resizeEventScrollType = { w: false, e: false, n: false, s: false };\r\n }\r\n GridsterResizable.prototype.destroy = function () {\r\n if (this.gridster.previewStyle) {\r\n this.gridster.previewStyle();\r\n }\r\n delete this.gridsterItem;\r\n delete this.gridster;\r\n };\r\n GridsterResizable.prototype.dragStart = function (e) {\r\n var _this = this;\r\n if (e.which && e.which !== 1) {\r\n return;\r\n }\r\n if (this.gridster.options.resizable && this.gridster.options.resizable.start) {\r\n this.gridster.options.resizable.start(this.gridsterItem.item, this.gridsterItem, e);\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n this.dragFunction = this.dragMove.bind(this);\r\n this.dragStopFunction = this.dragStop.bind(this);\r\n this.zone.runOutsideAngular(function () {\r\n _this.mousemove = _this.gridsterItem.renderer.listen('document', 'mousemove', _this.dragFunction);\r\n _this.touchmove = _this.gridster.renderer.listen(_this.gridster.el, 'touchmove', _this.dragFunction);\r\n });\r\n this.mouseup = this.gridsterItem.renderer.listen('document', 'mouseup', this.dragStopFunction);\r\n this.mouseleave = this.gridsterItem.renderer.listen('document', 'mouseleave', this.dragStopFunction);\r\n this.cancelOnBlur = this.gridsterItem.renderer.listen('window', 'blur', this.dragStopFunction);\r\n this.touchend = this.gridsterItem.renderer.listen('document', 'touchend', this.dragStopFunction);\r\n this.touchcancel = this.gridsterItem.renderer.listen('document', 'touchcancel', this.dragStopFunction);\r\n this.gridsterItem.renderer.addClass(this.gridsterItem.el, 'gridster-item-resizing');\r\n this.lastMouse.clientX = e.clientX;\r\n this.lastMouse.clientY = e.clientY;\r\n this.left = this.gridsterItem.left;\r\n this.top = this.gridsterItem.top;\r\n this.width = this.gridsterItem.width;\r\n this.height = this.gridsterItem.height;\r\n this.bottom = this.gridsterItem.top + this.gridsterItem.height;\r\n this.right = this.gridsterItem.left + this.gridsterItem.width;\r\n this.margin = this.gridster.$options.margin;\r\n this.offsetLeft = this.gridster.el.scrollLeft - this.gridster.el.offsetLeft;\r\n this.offsetTop = this.gridster.el.scrollTop - this.gridster.el.offsetTop;\r\n this.diffLeft = e.clientX + this.offsetLeft - this.left;\r\n this.diffRight = e.clientX + this.offsetLeft - this.right;\r\n this.diffTop = e.clientY + this.offsetTop - this.top;\r\n this.diffBottom = e.clientY + this.offsetTop - this.bottom;\r\n this.minHeight = this.gridster.positionYToPixels(this.gridsterItem.$item.minItemRows || this.gridster.$options.minItemRows)\r\n - this.margin;\r\n this.minWidth = this.gridster.positionXToPixels(this.gridsterItem.$item.minItemCols || this.gridster.$options.minItemCols)\r\n - this.margin;\r\n this.gridster.movingItem = this.gridsterItem.$item;\r\n this.gridster.previewStyle();\r\n this.push = new GridsterPush(this.gridsterItem);\r\n this.pushResize = new GridsterPushResize(this.gridsterItem);\r\n this.gridster.dragInProgress = true;\r\n this.gridster.updateGrid();\r\n if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-n') > -1) {\r\n this.resizeEventScrollType.n = true;\r\n this.directionFunction = this.handleN;\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-w') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleE;\r\n }\r\n else {\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleW;\r\n }\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-s') > -1) {\r\n this.resizeEventScrollType.s = true;\r\n this.directionFunction = this.handleS;\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-e') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleW;\r\n }\r\n else {\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleE;\r\n }\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-nw') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.n = true;\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleNE;\r\n }\r\n else {\r\n this.resizeEventScrollType.n = true;\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleNW;\r\n }\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-ne') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.n = true;\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleNW;\r\n }\r\n else {\r\n this.resizeEventScrollType.n = true;\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleNE;\r\n }\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-sw') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.s = true;\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleSE;\r\n }\r\n else {\r\n this.resizeEventScrollType.s = true;\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleSW;\r\n }\r\n }\r\n else if (e.target.hasAttribute('class') && e.target.getAttribute('class').split(' ').indexOf('handle-se') > -1) {\r\n if (this.gridster.$options.dirType === DirTypes.RTL) {\r\n this.resizeEventScrollType.s = true;\r\n this.resizeEventScrollType.w = true;\r\n this.directionFunction = this.handleSW;\r\n }\r\n else {\r\n this.resizeEventScrollType.s = true;\r\n this.resizeEventScrollType.e = true;\r\n this.directionFunction = this.handleSE;\r\n }\r\n }\r\n };\r\n GridsterResizable.prototype.dragMove = function (e) {\r\n var _this = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n GridsterUtils.checkTouchEvent(e);\r\n this.offsetTop = this.gridster.el.scrollTop - this.gridster.el.offsetTop;\r\n this.offsetLeft = this.gridster.el.scrollLeft - this.gridster.el.offsetLeft;\r\n scroll(this.gridster, this.left, this.top, this.width, this.height, e, this.lastMouse, this.directionFunction.bind(this), true, this.resizeEventScrollType);\r\n this.directionFunction(e);\r\n this.lastMouse.clientX = e.clientX;\r\n this.lastMouse.clientY = e.clientY;\r\n this.zone.run(function () {\r\n _this.gridster.updateGrid();\r\n });\r\n };\r\n GridsterResizable.prototype.dragStop = function (e) {\r\n var _this = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n cancelScroll();\r\n this.mousemove();\r\n this.mouseup();\r\n this.mouseleave();\r\n this.cancelOnBlur();\r\n this.touchmove();\r\n this.touchend();\r\n this.touchcancel();\r\n this.gridster.dragInProgress = false;\r\n this.gridster.updateGrid();\r\n if (this.gridster.options.resizable && this.gridster.options.resizable.stop) {\r\n Promise.resolve(this.gridster.options.resizable.stop(this.gridsterItem.item, this.gridsterItem, e))\r\n .then(this.makeResize.bind(this), this.cancelResize.bind(this));\r\n }\r\n else {\r\n this.makeResize();\r\n }\r\n setTimeout(function () {\r\n _this.gridsterItem.renderer.removeClass(_this.gridsterItem.el, 'gridster-item-resizing');\r\n if (_this.gridster) {\r\n _this.gridster.movingItem = null;\r\n _this.gridster.previewStyle();\r\n }\r\n });\r\n };\r\n GridsterResizable.prototype.cancelResize = function () {\r\n this.gridsterItem.$item.cols = this.gridsterItem.item.cols || 1;\r\n this.gridsterItem.$item.rows = this.gridsterItem.item.rows || 1;\r\n this.gridsterItem.$item.x = this.gridsterItem.item.x || 0;\r\n this.gridsterItem.$item.y = this.gridsterItem.item.y || 0;\r\n this.gridsterItem.setSize();\r\n this.push.restoreItems();\r\n this.pushResize.restoreItems();\r\n this.push.destroy();\r\n delete this.push;\r\n this.pushResize.destroy();\r\n delete this.pushResize;\r\n };\r\n GridsterResizable.prototype.makeResize = function () {\r\n this.gridsterItem.setSize();\r\n this.gridsterItem.checkItemChanges(this.gridsterItem.$item, this.gridsterItem.item);\r\n this.push.setPushedItems();\r\n this.pushResize.setPushedItems();\r\n this.push.destroy();\r\n delete this.push;\r\n this.pushResize.destroy();\r\n delete this.pushResize;\r\n };\r\n GridsterResizable.prototype.handleN = function (e) {\r\n this.top = e.clientY + this.offsetTop - this.diffTop;\r\n this.height = this.bottom - this.top;\r\n if (this.minHeight > this.height) {\r\n this.height = this.minHeight;\r\n this.top = this.bottom - this.minHeight;\r\n }\r\n this.newPosition = this.gridster.pixelsToPositionY(this.top + this.margin, Math.floor);\r\n if (this.gridsterItem.$item.y !== this.newPosition) {\r\n this.itemBackup[1] = this.gridsterItem.$item.y;\r\n this.itemBackup[3] = this.gridsterItem.$item.rows;\r\n this.gridsterItem.$item.rows += this.gridsterItem.$item.y - this.newPosition;\r\n this.gridsterItem.$item.y = this.newPosition;\r\n this.pushResize.pushItems(this.pushResize.fromSouth);\r\n this.push.pushItems(this.push.fromSouth, this.gridster.$options.disablePushOnResize);\r\n if (this.gridster.checkCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.y = this.itemBackup[1];\r\n this.gridsterItem.$item.rows = this.itemBackup[3];\r\n this.setItemTop(this.gridster.positionYToPixels(this.gridsterItem.$item.y));\r\n this.setItemHeight(this.gridster.positionYToPixels(this.gridsterItem.$item.rows) - this.margin);\r\n return;\r\n }\r\n else {\r\n this.gridster.previewStyle();\r\n }\r\n this.pushResize.checkPushBack();\r\n this.push.checkPushBack();\r\n }\r\n this.setItemTop(this.top);\r\n this.setItemHeight(this.height);\r\n };\r\n GridsterResizable.prototype.handleW = function (e) {\r\n this.left = e.clientX + this.offsetLeft - this.diffLeft;\r\n this.width = this.right - this.left;\r\n if (this.minWidth > this.width) {\r\n this.width = this.minWidth;\r\n this.left = this.right - this.minWidth;\r\n }\r\n this.newPosition = this.gridster.pixelsToPositionX(this.left + this.margin, Math.floor);\r\n if (this.gridsterItem.$item.x !== this.newPosition) {\r\n this.itemBackup[0] = this.gridsterItem.$item.x;\r\n this.itemBackup[2] = this.gridsterItem.$item.cols;\r\n this.gridsterItem.$item.cols += this.gridsterItem.$item.x - this.newPosition;\r\n this.gridsterItem.$item.x = this.newPosition;\r\n this.pushResize.pushItems(this.pushResize.fromEast);\r\n this.push.pushItems(this.push.fromEast, this.gridster.$options.disablePushOnResize);\r\n if (this.gridster.checkCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.x = this.itemBackup[0];\r\n this.gridsterItem.$item.cols = this.itemBackup[2];\r\n this.setItemLeft(this.gridster.positionXToPixels(this.gridsterItem.$item.x));\r\n this.setItemWidth(this.gridster.positionXToPixels(this.gridsterItem.$item.cols) - this.margin);\r\n return;\r\n }\r\n else {\r\n this.gridster.previewStyle();\r\n }\r\n this.pushResize.checkPushBack();\r\n this.push.checkPushBack();\r\n }\r\n this.setItemLeft(this.left);\r\n this.setItemWidth(this.width);\r\n };\r\n GridsterResizable.prototype.handleS = function (e) {\r\n this.height = e.clientY + this.offsetTop - this.diffBottom - this.top;\r\n if (this.minHeight > this.height) {\r\n this.height = this.minHeight;\r\n }\r\n this.bottom = this.top + this.height;\r\n this.newPosition = this.gridster.pixelsToPositionY(this.bottom, Math.ceil);\r\n if ((this.gridsterItem.$item.y + this.gridsterItem.$item.rows) !== this.newPosition) {\r\n this.itemBackup[3] = this.gridsterItem.$item.rows;\r\n this.gridsterItem.$item.rows = this.newPosition - this.gridsterItem.$item.y;\r\n this.pushResize.pushItems(this.pushResize.fromNorth);\r\n this.push.pushItems(this.push.fromNorth, this.gridster.$options.disablePushOnResize);\r\n if (this.gridster.checkCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.rows = this.itemBackup[3];\r\n this.setItemHeight(this.gridster.positionYToPixels(this.gridsterItem.$item.rows) - this.margin);\r\n return;\r\n }\r\n else {\r\n this.gridster.previewStyle();\r\n }\r\n this.pushResize.checkPushBack();\r\n this.push.checkPushBack();\r\n }\r\n this.setItemHeight(this.height);\r\n };\r\n GridsterResizable.prototype.handleE = function (e) {\r\n this.width = e.clientX + this.offsetLeft - this.diffRight - this.left;\r\n if (this.minWidth > this.width) {\r\n this.width = this.minWidth;\r\n }\r\n this.right = this.left + this.width;\r\n this.newPosition = this.gridster.pixelsToPositionX(this.right, Math.ceil);\r\n if ((this.gridsterItem.$item.x + this.gridsterItem.$item.cols) !== this.newPosition) {\r\n this.itemBackup[2] = this.gridsterItem.$item.cols;\r\n this.gridsterItem.$item.cols = this.newPosition - this.gridsterItem.$item.x;\r\n this.pushResize.pushItems(this.pushResize.fromWest);\r\n this.push.pushItems(this.push.fromWest, this.gridster.$options.disablePushOnResize);\r\n if (this.gridster.checkCollision(this.gridsterItem.$item)) {\r\n this.gridsterItem.$item.cols = this.itemBackup[2];\r\n this.setItemWidth(this.gridster.positionXToPixels(this.gridsterItem.$item.cols) - this.margin);\r\n return;\r\n }\r\n else {\r\n this.gridster.previewStyle();\r\n }\r\n this.pushResize.checkPushBack();\r\n this.push.checkPushBack();\r\n }\r\n this.setItemWidth(this.width);\r\n };\r\n GridsterResizable.prototype.handleNW = function (e) {\r\n this.handleN(e);\r\n this.handleW(e);\r\n };\r\n GridsterResizable.prototype.handleNE = function (e) {\r\n this.handleN(e);\r\n this.handleE(e);\r\n };\r\n GridsterResizable.prototype.handleSW = function (e) {\r\n this.handleS(e);\r\n this.handleW(e);\r\n };\r\n GridsterResizable.prototype.handleSE = function (e) {\r\n this.handleS(e);\r\n this.handleE(e);\r\n };\r\n GridsterResizable.prototype.toggle = function () {\r\n this.resizeEnabled = this.gridsterItem.canBeResized();\r\n };\r\n GridsterResizable.prototype.dragStartDelay = function (e) {\r\n var _this = this;\r\n GridsterUtils.checkTouchEvent(e);\r\n if (!this.gridster.$options.resizable.delayStart) {\r\n this.dragStart(e);\r\n return;\r\n }\r\n var timeout = setTimeout(function () {\r\n _this.dragStart(e);\r\n cancelDrag();\r\n }, this.gridster.$options.resizable.delayStart);\r\n var cancelMouse = this.gridsterItem.renderer.listen('document', 'mouseup', cancelDrag);\r\n var cancelMouseLeave = this.gridsterItem.renderer.listen('document', 'mouseleave', cancelDrag);\r\n var cancelOnBlur = this.gridsterItem.renderer.listen('window', 'blur', cancelDrag);\r\n var cancelTouchMove = this.gridsterItem.renderer.listen('document', 'touchmove', cancelMove);\r\n var cancelTouchEnd = this.gridsterItem.renderer.listen('document', 'touchend', cancelDrag);\r\n var cancelTouchCancel = this.gridsterItem.renderer.listen('document', 'touchcancel', cancelDrag);\r\n function cancelMove(eventMove) {\r\n GridsterUtils.checkTouchEvent(eventMove);\r\n if (Math.abs(eventMove.clientX - e.clientX) > 9 || Math.abs(eventMove.clientY - e.clientY) > 9) {\r\n cancelDrag();\r\n }\r\n }\r\n function cancelDrag() {\r\n clearTimeout(timeout);\r\n cancelOnBlur();\r\n cancelMouse();\r\n cancelMouseLeave();\r\n cancelTouchMove();\r\n cancelTouchEnd();\r\n cancelTouchCancel();\r\n }\r\n };\r\n GridsterResizable.prototype.setItemTop = function (top) {\r\n this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer, this.gridsterItem.el, this.left, top);\r\n };\r\n GridsterResizable.prototype.setItemLeft = function (left) {\r\n this.gridster.gridRenderer.setCellPosition(this.gridsterItem.renderer, this.gridsterItem.el, left, this.top);\r\n };\r\n GridsterResizable.prototype.setItemHeight = function (height) {\r\n this.gridsterItem.renderer.setStyle(this.gridsterItem.el, 'height', height + 'px');\r\n };\r\n GridsterResizable.prototype.setItemWidth = function (width) {\r\n this.gridsterItem.renderer.setStyle(this.gridsterItem.el, 'width', width + 'px');\r\n };\r\n GridsterResizable.ctorParameters = function () { return [\r\n { type: GridsterItemComponentInterface },\r\n { type: GridsterComponentInterface },\r\n { type: NgZone }\r\n ]; };\r\n GridsterResizable = __decorate([ __metadata(\"design:paramtypes\", [GridsterItemComponentInterface, GridsterComponentInterface, NgZone])\r\n ], GridsterResizable);\r\nGridsterResizable.ɵfac = function GridsterResizable_Factory(t) { return new (t || GridsterResizable)(ɵngcc0.ɵɵinject(GridsterItemComponentInterface), ɵngcc0.ɵɵinject(GridsterComponentInterface), ɵngcc0.ɵɵinject(ɵngcc0.NgZone)); };\r\nGridsterResizable.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: GridsterResizable, factory: function (t) { return GridsterResizable.ɵfac(t); } });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterResizable, [{\r\n type: Injectable\r\n }], function () { return [{ type: GridsterItemComponentInterface }, { type: GridsterComponentInterface }, { type: ɵngcc0.NgZone }]; }, null); })();\r\n return GridsterResizable;\r\n}());\r\n\r\nvar GridsterItemComponent = /** @class */ (function () {\r\n function GridsterItemComponent(el, gridster, renderer, zone) {\r\n this.renderer = renderer;\r\n this.zone = zone;\r\n this.el = el.nativeElement;\r\n this.$item = {\r\n cols: -1,\r\n rows: -1,\r\n x: -1,\r\n y: -1,\r\n };\r\n this.gridster = gridster;\r\n this.drag = new GridsterDraggable(this, gridster, this.zone);\r\n this.resize = new GridsterResizable(this, gridster, this.zone);\r\n }\r\n Object.defineProperty(GridsterItemComponent.prototype, \"zIndex\", {\r\n get: function () {\r\n return this.getLayerIndex() + this.gridster.$options.baseLayerIndex;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n GridsterItemComponent.prototype.ngOnInit = function () {\r\n this.updateOptions();\r\n this.gridster.addItem(this);\r\n };\r\n GridsterItemComponent.prototype.updateOptions = function () {\r\n this.$item = GridsterUtils.merge(this.$item, this.item, {\r\n cols: undefined,\r\n rows: undefined,\r\n x: undefined,\r\n y: undefined,\r\n layerIndex: undefined,\r\n dragEnabled: undefined,\r\n resizeEnabled: undefined,\r\n compactEnabled: undefined,\r\n maxItemRows: undefined,\r\n minItemRows: undefined,\r\n maxItemCols: undefined,\r\n minItemCols: undefined,\r\n maxItemArea: undefined,\r\n minItemArea: undefined,\r\n });\r\n };\r\n GridsterItemComponent.prototype.ngOnDestroy = function () {\r\n this.gridster.removeItem(this);\r\n delete this.gridster;\r\n this.drag.destroy();\r\n delete this.drag;\r\n this.resize.destroy();\r\n delete this.resize;\r\n };\r\n GridsterItemComponent.prototype.setSize = function () {\r\n this.renderer.setStyle(this.el, 'display', this.notPlaced ? '' : 'block');\r\n this.gridster.gridRenderer.updateItem(this.el, this.$item, this.renderer);\r\n this.updateItemSize();\r\n };\r\n GridsterItemComponent.prototype.updateItemSize = function () {\r\n var top = this.$item.y * this.gridster.curRowHeight;\r\n var left = this.$item.x * this.gridster.curColWidth;\r\n var width = this.$item.cols * this.gridster.curColWidth - this.gridster.$options.margin;\r\n var height = this.$item.rows * this.gridster.curRowHeight - this.gridster.$options.margin;\r\n if (!this.init && width > 0 && height > 0) {\r\n this.init = true;\r\n if (this.item.initCallback) {\r\n this.item.initCallback(this.item, this);\r\n }\r\n if (this.gridster.options.itemInitCallback) {\r\n this.gridster.options.itemInitCallback(this.item, this);\r\n }\r\n if (this.gridster.$options.scrollToNewItems) {\r\n this.el.scrollIntoView(false);\r\n }\r\n }\r\n if (width !== this.width || height !== this.height) {\r\n this.width = width;\r\n this.height = height;\r\n if (this.gridster.options.itemResizeCallback) {\r\n this.gridster.options.itemResizeCallback(this.item, this);\r\n }\r\n }\r\n this.top = top;\r\n this.left = left;\r\n };\r\n GridsterItemComponent.prototype.itemChanged = function () {\r\n if (this.gridster.options.itemChangeCallback) {\r\n this.gridster.options.itemChangeCallback(this.item, this);\r\n }\r\n };\r\n GridsterItemComponent.prototype.checkItemChanges = function (newValue, oldValue) {\r\n if (newValue.rows === oldValue.rows && newValue.cols === oldValue.cols && newValue.x === oldValue.x && newValue.y === oldValue.y) {\r\n return;\r\n }\r\n if (this.gridster.checkCollision(this.$item)) {\r\n this.$item.x = oldValue.x || 0;\r\n this.$item.y = oldValue.y || 0;\r\n this.$item.cols = oldValue.cols || 1;\r\n this.$item.rows = oldValue.rows || 1;\r\n this.setSize();\r\n }\r\n else {\r\n this.item.cols = this.$item.cols;\r\n this.item.rows = this.$item.rows;\r\n this.item.x = this.$item.x;\r\n this.item.y = this.$item.y;\r\n this.gridster.calculateLayoutDebounce();\r\n this.itemChanged();\r\n }\r\n };\r\n GridsterItemComponent.prototype.canBeDragged = function () {\r\n return !this.gridster.mobile &&\r\n (this.$item.dragEnabled === undefined ? this.gridster.$options.draggable.enabled : this.$item.dragEnabled);\r\n };\r\n GridsterItemComponent.prototype.canBeResized = function () {\r\n return !this.gridster.mobile &&\r\n (this.$item.resizeEnabled === undefined ? this.gridster.$options.resizable.enabled : this.$item.resizeEnabled);\r\n };\r\n GridsterItemComponent.prototype.bringToFront = function (offset) {\r\n if (offset && offset <= 0) {\r\n return;\r\n }\r\n var layerIndex = this.getLayerIndex();\r\n var topIndex = this.gridster.$options.maxLayerIndex;\r\n if (layerIndex < topIndex) {\r\n var targetIndex = offset ? layerIndex + offset : topIndex;\r\n this.item.layerIndex = this.$item.layerIndex = targetIndex > topIndex ? topIndex : targetIndex;\r\n }\r\n };\r\n GridsterItemComponent.prototype.sendToBack = function (offset) {\r\n if (offset && offset <= 0) {\r\n return;\r\n }\r\n var layerIndex = this.getLayerIndex();\r\n if (layerIndex > 0) {\r\n var targetIndex = offset ? layerIndex - offset : 0;\r\n this.item.layerIndex = this.$item.layerIndex = targetIndex < 0 ? 0 : targetIndex;\r\n }\r\n };\r\n GridsterItemComponent.prototype.getLayerIndex = function () {\r\n if (this.item.layerIndex !== undefined) {\r\n return this.item.layerIndex;\r\n }\r\n if (this.gridster.$options.defaultLayerIndex !== undefined) {\r\n return this.gridster.$options.defaultLayerIndex;\r\n }\r\n return 0;\r\n };\r\n GridsterItemComponent.ctorParameters = function () { return [\r\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },\r\n { type: GridsterComponent },\r\n { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },\r\n { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] }\r\n ]; };\r\n __decorate([\r\n Input(),\r\n __metadata(\"design:type\", Object)\r\n ], GridsterItemComponent.prototype, \"item\", void 0);\r\n __decorate([\r\n HostBinding('style.z-index'),\r\n __metadata(\"design:type\", Number),\r\n __metadata(\"design:paramtypes\", [])\r\n ], GridsterItemComponent.prototype, \"zIndex\", null);\r\n GridsterItemComponent = __decorate([ __param(0, Inject(ElementRef)), __param(2, Inject(Renderer2)), __param(3, Inject(NgZone)),\r\n __metadata(\"design:paramtypes\", [ElementRef, GridsterComponent, Renderer2, NgZone])\r\n ], GridsterItemComponent);\r\nGridsterItemComponent.ɵfac = function GridsterItemComponent_Factory(t) { return new (t || GridsterItemComponent)(ɵngcc0.ɵɵdirectiveInject(ElementRef), ɵngcc0.ɵɵdirectiveInject(GridsterComponent), ɵngcc0.ɵɵdirectiveInject(Renderer2), ɵngcc0.ɵɵdirectiveInject(NgZone)); };\r\nGridsterItemComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: GridsterItemComponent, selectors: [[\"gridster-item\"]], hostVars: 2, hostBindings: function GridsterItemComponent_HostBindings(rf, ctx) { if (rf & 2) {\r\n ɵngcc0.ɵɵstyleProp(\"z-index\", ctx.zIndex);\r\n } }, inputs: { item: \"item\" }, ngContentSelectors: _c0, decls: 9, vars: 8, consts: [[\"class\", \"gridster-item-resizable-handler handle-s\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-e\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-n\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-w\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-se\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-ne\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-sw\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [\"class\", \"gridster-item-resizable-handler handle-nw\", 3, \"mousedown\", \"touchstart\", 4, \"ngIf\"], [1, \"gridster-item-resizable-handler\", \"handle-s\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-e\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-n\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-w\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-se\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-ne\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-sw\", 3, \"mousedown\", \"touchstart\"], [1, \"gridster-item-resizable-handler\", \"handle-nw\", 3, \"mousedown\", \"touchstart\"]], template: function GridsterItemComponent_Template(rf, ctx) { if (rf & 1) {\r\n ɵngcc0.ɵɵprojectionDef();\r\n ɵngcc0.ɵɵprojection(0);\r\n ɵngcc0.ɵɵtemplate(1, GridsterItemComponent_div_1_Template, 1, 0, \"div\", 0);\r\n ɵngcc0.ɵɵtemplate(2, GridsterItemComponent_div_2_Template, 1, 0, \"div\", 1);\r\n ɵngcc0.ɵɵtemplate(3, GridsterItemComponent_div_3_Template, 1, 0, \"div\", 2);\r\n ɵngcc0.ɵɵtemplate(4, GridsterItemComponent_div_4_Template, 1, 0, \"div\", 3);\r\n ɵngcc0.ɵɵtemplate(5, GridsterItemComponent_div_5_Template, 1, 0, \"div\", 4);\r\n ɵngcc0.ɵɵtemplate(6, GridsterItemComponent_div_6_Template, 1, 0, \"div\", 5);\r\n ɵngcc0.ɵɵtemplate(7, GridsterItemComponent_div_7_Template, 1, 0, \"div\", 6);\r\n ɵngcc0.ɵɵtemplate(8, GridsterItemComponent_div_8_Template, 1, 0, \"div\", 7);\r\n } if (rf & 2) {\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.s && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.e && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.n && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.w && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.se && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.ne && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.sw && ctx.resize.resizeEnabled);\r\n ɵngcc0.ɵɵadvance(1);\r\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.gridster.$options.resizable.handles.nw && ctx.resize.resizeEnabled);\r\n } }, directives: [ɵngcc1.NgIf], styles: [\"gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\"], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterItemComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'gridster-item',\r\n template: \"\\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n\",\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [\"gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;-webkit-transition:.3s;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-moving,gridster-item.gridster-item-resizing{-webkit-transition:none;transition:none;z-index:2;box-shadow:0 0 5px 5px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\"]\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ElementRef, decorators: [{\r\n type: Inject,\r\n args: [ElementRef]\r\n }] }, { type: GridsterComponent }, { type: ɵngcc0.Renderer2, decorators: [{\r\n type: Inject,\r\n args: [Renderer2]\r\n }] }, { type: ɵngcc0.NgZone, decorators: [{\r\n type: Inject,\r\n args: [NgZone]\r\n }] }]; }, { zIndex: [{\r\n type: HostBinding,\r\n args: ['style.z-index']\r\n }], item: [{\r\n type: Input\r\n }] }); })();\r\n return GridsterItemComponent;\r\n}());\r\n\r\nvar GridsterPreviewComponent = /** @class */ (function () {\r\n function GridsterPreviewComponent(el, gridster, renderer) {\r\n this.renderer = renderer;\r\n this.el = el.nativeElement;\r\n this.gridster = gridster;\r\n this.gridster.previewStyle = this.previewStyle.bind(this);\r\n }\r\n GridsterPreviewComponent.prototype.ngOnDestroy = function () {\r\n delete this.el;\r\n delete this.gridster.previewStyle;\r\n delete this.gridster;\r\n };\r\n GridsterPreviewComponent.prototype.previewStyle = function (drag) {\r\n if (!this.gridster.movingItem) {\r\n this.renderer.setStyle(this.el, 'display', '');\r\n }\r\n else {\r\n if (this.gridster.compact && drag) {\r\n this.gridster.compact.checkCompactItem(this.gridster.movingItem);\r\n }\r\n this.renderer.setStyle(this.el, 'display', 'block');\r\n this.gridster.gridRenderer.updateItem(this.el, this.gridster.movingItem, this.renderer);\r\n }\r\n };\r\n GridsterPreviewComponent.ctorParameters = function () { return [\r\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },\r\n { type: GridsterComponent },\r\n { type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] }\r\n ]; };\r\n GridsterPreviewComponent = __decorate([ __param(0, Inject(ElementRef)), __param(2, Inject(Renderer2)),\r\n __metadata(\"design:paramtypes\", [ElementRef, GridsterComponent, Renderer2])\r\n ], GridsterPreviewComponent);\r\nGridsterPreviewComponent.ɵfac = function GridsterPreviewComponent_Factory(t) { return new (t || GridsterPreviewComponent)(ɵngcc0.ɵɵdirectiveInject(ElementRef), ɵngcc0.ɵɵdirectiveInject(GridsterComponent), ɵngcc0.ɵɵdirectiveInject(Renderer2)); };\r\nGridsterPreviewComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: GridsterPreviewComponent, selectors: [[\"gridster-preview\"]], decls: 0, vars: 0, template: function GridsterPreviewComponent_Template(rf, ctx) { }, styles: [\"gridster-preview{position:absolute;display:none;background:rgba(0,0,0,.15)}\"], encapsulation: 2 });\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterPreviewComponent, [{\r\n type: Component,\r\n args: [{\r\n selector: 'gridster-preview',\r\n template: '',\r\n encapsulation: ViewEncapsulation.None,\r\n styles: [\"gridster-preview{position:absolute;display:none;background:rgba(0,0,0,.15)}\"]\r\n }]\r\n }], function () { return [{ type: ɵngcc0.ElementRef, decorators: [{\r\n type: Inject,\r\n args: [ElementRef]\r\n }] }, { type: GridsterComponent }, { type: ɵngcc0.Renderer2, decorators: [{\r\n type: Inject,\r\n args: [Renderer2]\r\n }] }]; }, null); })();\r\n return GridsterPreviewComponent;\r\n}());\r\n\r\nvar GridsterModule = /** @class */ (function () {\r\n function GridsterModule() {\r\n }\r\nGridsterModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: GridsterModule });\r\nGridsterModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function GridsterModule_Factory(t) { return new (t || GridsterModule)(); }, providers: [], imports: [[\r\n CommonModule\r\n ]] });\r\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(GridsterModule, { declarations: function () { return [GridsterComponent,\r\n GridsterItemComponent,\r\n GridsterPreviewComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [GridsterComponent,\r\n GridsterItemComponent]; } }); })();\r\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(GridsterModule, [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n GridsterComponent,\r\n GridsterItemComponent,\r\n GridsterPreviewComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [GridsterComponent, GridsterItemComponent],\r\n providers: [],\r\n bootstrap: [],\r\n entryComponents: [GridsterComponent, GridsterItemComponent]\r\n }]\r\n }], function () { return []; }, null); })();\r\n return GridsterModule;\r\n}());\r\n\r\n/*\r\n * Public API Surface of gridster\r\n */\r\n\r\n/**\r\n * Generated bundle index. Do not edit.\r\n */\r\n\r\nexport { CompactType, DirTypes, DisplayGrid, GridType, GridsterComponent, GridsterComponentInterface, GridsterConfigService, GridsterItemComponent, GridsterItemComponentInterface, GridsterModule, GridsterPush, GridsterPushResize, GridsterSwap, GridsterPreviewComponent as ɵa };\r\n\r\n//# sourceMappingURL=angular-gridster2.js.map","import { __assign, __read } from 'tslib';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, Observable, merge, EMPTY } from 'rxjs';\nimport { map, mergeMap, takeUntil, filter, pairwise, take, share, auditTime, switchMap, startWith, tap } from 'rxjs/operators';\nimport { Directive, Renderer2, ElementRef, Output, Input, EventEmitter, NgZone, Inject, PLATFORM_ID, HostListener, NgModule } from '@angular/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} value1\n * @param {?} value2\n * @param {?=} precision\n * @return {?}\n */\nimport * as ɵngcc0 from '@angular/core';\nfunction isNumberCloseTo(value1, value2, precision) {\n if (precision === void 0) { precision = 3; }\n /** @type {?} */\n var diff = Math.abs(value1 - value2);\n return diff < precision;\n}\n/**\n * @param {?} startingRect\n * @param {?} edges\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\nfunction getNewBoundingRectangle(startingRect, edges, clientX, clientY) {\n /** @type {?} */\n var newBoundingRect = {\n top: startingRect.top,\n bottom: startingRect.bottom,\n left: startingRect.left,\n right: startingRect.right\n };\n if (edges.top) {\n newBoundingRect.top += clientY;\n }\n if (edges.bottom) {\n newBoundingRect.bottom += clientY;\n }\n if (edges.left) {\n newBoundingRect.left += clientX;\n }\n if (edges.right) {\n newBoundingRect.right += clientX;\n }\n newBoundingRect.height = newBoundingRect.bottom - newBoundingRect.top;\n newBoundingRect.width = newBoundingRect.right - newBoundingRect.left;\n return newBoundingRect;\n}\n/**\n * @param {?} element\n * @param {?} ghostElementPositioning\n * @return {?}\n */\nfunction getElementRect(element, ghostElementPositioning) {\n /** @type {?} */\n var translateX = 0;\n /** @type {?} */\n var translateY = 0;\n /** @type {?} */\n var style = element.nativeElement.style;\n /** @type {?} */\n var transformProperties = [\n 'transform',\n '-ms-transform',\n '-moz-transform',\n '-o-transform'\n ];\n /** @type {?} */\n var transform = transformProperties\n .map(function (property) { return style[property]; })\n .find(function (value) { return !!value; });\n if (transform && transform.includes('translate')) {\n translateX = transform.replace(/.*translate\\((.*)px, (.*)px\\).*/, '$1');\n translateY = transform.replace(/.*translate\\((.*)px, (.*)px\\).*/, '$2');\n }\n if (ghostElementPositioning === 'absolute') {\n return {\n height: element.nativeElement.offsetHeight,\n width: element.nativeElement.offsetWidth,\n top: element.nativeElement.offsetTop - translateY,\n bottom: element.nativeElement.offsetHeight +\n element.nativeElement.offsetTop -\n translateY,\n left: element.nativeElement.offsetLeft - translateX,\n right: element.nativeElement.offsetWidth +\n element.nativeElement.offsetLeft -\n translateX\n };\n }\n else {\n /** @type {?} */\n var boundingRect = element.nativeElement.getBoundingClientRect();\n return {\n height: boundingRect.height,\n width: boundingRect.width,\n top: boundingRect.top - translateY,\n bottom: boundingRect.bottom - translateY,\n left: boundingRect.left - translateX,\n right: boundingRect.right - translateX,\n scrollTop: element.nativeElement.scrollTop,\n scrollLeft: element.nativeElement.scrollLeft\n };\n }\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction isWithinBoundingY(_a) {\n var clientY = _a.clientY, rect = _a.rect;\n return clientY >= rect.top && clientY <= rect.bottom;\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction isWithinBoundingX(_a) {\n var clientX = _a.clientX, rect = _a.rect;\n return clientX >= rect.left && clientX <= rect.right;\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction getResizeEdges(_a) {\n var clientX = _a.clientX, clientY = _a.clientY, elm = _a.elm, allowedEdges = _a.allowedEdges, cursorPrecision = _a.cursorPrecision;\n /** @type {?} */\n var elmPosition = elm.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var edges = {};\n if (allowedEdges.left &&\n isNumberCloseTo(clientX, elmPosition.left, cursorPrecision) &&\n isWithinBoundingY({ clientY: clientY, rect: elmPosition })) {\n edges.left = true;\n }\n if (allowedEdges.right &&\n isNumberCloseTo(clientX, elmPosition.right, cursorPrecision) &&\n isWithinBoundingY({ clientY: clientY, rect: elmPosition })) {\n edges.right = true;\n }\n if (allowedEdges.top &&\n isNumberCloseTo(clientY, elmPosition.top, cursorPrecision) &&\n isWithinBoundingX({ clientX: clientX, rect: elmPosition })) {\n edges.top = true;\n }\n if (allowedEdges.bottom &&\n isNumberCloseTo(clientY, elmPosition.bottom, cursorPrecision) &&\n isWithinBoundingX({ clientX: clientX, rect: elmPosition })) {\n edges.bottom = true;\n }\n return edges;\n}\n/** @type {?} */\nvar DEFAULT_RESIZE_CURSORS = Object.freeze({\n topLeft: 'nw-resize',\n topRight: 'ne-resize',\n bottomLeft: 'sw-resize',\n bottomRight: 'se-resize',\n leftOrRight: 'col-resize',\n topOrBottom: 'row-resize'\n});\n/**\n * @param {?} edges\n * @param {?} cursors\n * @return {?}\n */\nfunction getResizeCursor(edges, cursors) {\n if (edges.left && edges.top) {\n return cursors.topLeft;\n }\n else if (edges.right && edges.top) {\n return cursors.topRight;\n }\n else if (edges.left && edges.bottom) {\n return cursors.bottomLeft;\n }\n else if (edges.right && edges.bottom) {\n return cursors.bottomRight;\n }\n else if (edges.left || edges.right) {\n return cursors.leftOrRight;\n }\n else if (edges.top || edges.bottom) {\n return cursors.topOrBottom;\n }\n else {\n return '';\n }\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction getEdgesDiff(_a) {\n var edges = _a.edges, initialRectangle = _a.initialRectangle, newRectangle = _a.newRectangle;\n /** @type {?} */\n var edgesDiff = {};\n Object.keys(edges).forEach(function (edge) {\n edgesDiff[edge] = (newRectangle[edge] || 0) - (initialRectangle[edge] || 0);\n });\n return edgesDiff;\n}\n/** @type {?} */\nvar RESIZE_ACTIVE_CLASS = 'resize-active';\n/** @type {?} */\nvar RESIZE_LEFT_HOVER_CLASS = 'resize-left-hover';\n/** @type {?} */\nvar RESIZE_RIGHT_HOVER_CLASS = 'resize-right-hover';\n/** @type {?} */\nvar RESIZE_TOP_HOVER_CLASS = 'resize-top-hover';\n/** @type {?} */\nvar RESIZE_BOTTOM_HOVER_CLASS = 'resize-bottom-hover';\n/** @type {?} */\nvar RESIZE_GHOST_ELEMENT_CLASS = 'resize-ghost-element';\n/** @type {?} */\nvar MOUSE_MOVE_THROTTLE_MS = 50;\n/**\n * Place this on an element to make it resizable. For example:\n *\n * ```html\n * \n * \n * ```\n */\nvar ResizableDirective = /** @class */ (function () {\n /**\n * @hidden\n */\n function ResizableDirective(platformId, renderer, elm, zone) {\n this.platformId = platformId;\n this.renderer = renderer;\n this.elm = elm;\n this.zone = zone;\n /**\n * The edges that an element can be resized from. Pass an object like `{top: true, bottom: false}`. By default no edges can be resized.\n * @deprecated use a resize handle instead that positions itself to the side of the element you would like to resize\n */\n this.resizeEdges = {};\n /**\n * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events.\n */\n this.enableGhostResize = false;\n /**\n * A snap grid that resize events will be locked to.\n *\n * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}`\n */\n this.resizeSnapGrid = {};\n /**\n * The mouse cursors that will be set on the resize edges\n */\n this.resizeCursors = DEFAULT_RESIZE_CURSORS;\n /**\n * Mouse over thickness to active cursor.\n * @deprecated invalid when you migrate to use resize handles instead of setting resizeEdges on the element\n */\n this.resizeCursorPrecision = 3;\n /**\n * Define the positioning of the ghost element (can be fixed or absolute)\n */\n this.ghostElementPositioning = 'fixed';\n /**\n * Allow elements to be resized to negative dimensions\n */\n this.allowNegativeResizes = false;\n /**\n * The mouse move throttle in milliseconds, default: 50 ms\n */\n this.mouseMoveThrottleMS = MOUSE_MOVE_THROTTLE_MS;\n /**\n * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object.\n */\n this.resizeStart = new EventEmitter();\n /**\n * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object.\n */\n this.resizing = new EventEmitter();\n /**\n * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object.\n */\n this.resizeEnd = new EventEmitter();\n /**\n * @hidden\n */\n this.mouseup = new Subject();\n /**\n * @hidden\n */\n this.mousedown = new Subject();\n /**\n * @hidden\n */\n this.mousemove = new Subject();\n this.destroy$ = new Subject();\n this.resizeEdges$ = new Subject();\n this.pointerEventListeners = PointerEventListeners.getInstance(renderer, zone);\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n ResizableDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var mousedown$ = merge(this.pointerEventListeners.pointerDown, this.mousedown);\n /** @type {?} */\n var mousemove$ = merge(this.pointerEventListeners.pointerMove, this.mousemove).pipe(tap(function (_a) {\n var event = _a.event;\n if (currentResize) {\n event.preventDefault();\n }\n }), share());\n /** @type {?} */\n var mouseup$ = merge(this.pointerEventListeners.pointerUp, this.mouseup);\n /** @type {?} */\n var currentResize;\n /** @type {?} */\n var removeGhostElement = function () {\n if (currentResize && currentResize.clonedNode) {\n _this.elm.nativeElement.parentElement.removeChild(currentResize.clonedNode);\n _this.renderer.setStyle(_this.elm.nativeElement, 'visibility', 'inherit');\n }\n };\n /** @type {?} */\n var getResizeCursors = function () {\n return __assign({}, DEFAULT_RESIZE_CURSORS, _this.resizeCursors);\n };\n this.resizeEdges$\n .pipe(startWith(this.resizeEdges), map(function () {\n return (_this.resizeEdges &&\n Object.keys(_this.resizeEdges).some(function (edge) { return !!_this.resizeEdges[edge]; }));\n }), switchMap(function (legacyResizeEdgesEnabled) {\n return legacyResizeEdgesEnabled ? mousemove$ : EMPTY;\n }), auditTime(this.mouseMoveThrottleMS), takeUntil(this.destroy$))\n .subscribe(function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY;\n /** @type {?} */\n var resizeEdges = getResizeEdges({\n clientX: clientX,\n clientY: clientY,\n elm: _this.elm,\n allowedEdges: _this.resizeEdges,\n cursorPrecision: _this.resizeCursorPrecision\n });\n /** @type {?} */\n var resizeCursors = getResizeCursors();\n if (!currentResize) {\n /** @type {?} */\n var cursor = getResizeCursor(resizeEdges, resizeCursors);\n _this.renderer.setStyle(_this.elm.nativeElement, 'cursor', cursor);\n }\n _this.setElementClass(_this.elm, RESIZE_LEFT_HOVER_CLASS, resizeEdges.left === true);\n _this.setElementClass(_this.elm, RESIZE_RIGHT_HOVER_CLASS, resizeEdges.right === true);\n _this.setElementClass(_this.elm, RESIZE_TOP_HOVER_CLASS, resizeEdges.top === true);\n _this.setElementClass(_this.elm, RESIZE_BOTTOM_HOVER_CLASS, resizeEdges.bottom === true);\n });\n /** @type {?} */\n var mousedrag = mousedown$\n .pipe(mergeMap(function (startCoords) {\n /**\n * @param {?} moveCoords\n * @return {?}\n */\n function getDiff(moveCoords) {\n return {\n clientX: moveCoords.clientX - startCoords.clientX,\n clientY: moveCoords.clientY - startCoords.clientY\n };\n }\n /** @type {?} */\n var getSnapGrid = function () {\n /** @type {?} */\n var snapGrid = { x: 1, y: 1 };\n if (currentResize) {\n if (_this.resizeSnapGrid.left && currentResize.edges.left) {\n snapGrid.x = +_this.resizeSnapGrid.left;\n }\n else if (_this.resizeSnapGrid.right &&\n currentResize.edges.right) {\n snapGrid.x = +_this.resizeSnapGrid.right;\n }\n if (_this.resizeSnapGrid.top && currentResize.edges.top) {\n snapGrid.y = +_this.resizeSnapGrid.top;\n }\n else if (_this.resizeSnapGrid.bottom &&\n currentResize.edges.bottom) {\n snapGrid.y = +_this.resizeSnapGrid.bottom;\n }\n }\n return snapGrid;\n };\n /**\n * @param {?} coords\n * @param {?} snapGrid\n * @return {?}\n */\n function getGrid(coords, snapGrid) {\n return {\n x: Math.ceil(coords.clientX / snapGrid.x),\n y: Math.ceil(coords.clientY / snapGrid.y)\n };\n }\n return ((/** @type {?} */ (merge(mousemove$.pipe(take(1)).pipe(map(function (coords) { return [, coords]; })), mousemove$.pipe(pairwise())))))\n .pipe(map(function (_a) {\n var _b = __read(_a, 2), previousCoords = _b[0], newCoords = _b[1];\n return [\n previousCoords ? getDiff(previousCoords) : previousCoords,\n getDiff(newCoords)\n ];\n }))\n .pipe(filter(function (_a) {\n var _b = __read(_a, 2), previousCoords = _b[0], newCoords = _b[1];\n if (!previousCoords) {\n return true;\n }\n /** @type {?} */\n var snapGrid = getSnapGrid();\n /** @type {?} */\n var previousGrid = getGrid(previousCoords, snapGrid);\n /** @type {?} */\n var newGrid = getGrid(newCoords, snapGrid);\n return (previousGrid.x !== newGrid.x || previousGrid.y !== newGrid.y);\n }))\n .pipe(map(function (_a) {\n var _b = __read(_a, 2), newCoords = _b[1];\n /** @type {?} */\n var snapGrid = getSnapGrid();\n return {\n clientX: Math.round(newCoords.clientX / snapGrid.x) * snapGrid.x,\n clientY: Math.round(newCoords.clientY / snapGrid.y) * snapGrid.y\n };\n }))\n .pipe(takeUntil(merge(mouseup$, mousedown$)));\n }))\n .pipe(filter(function () { return !!currentResize; }));\n mousedrag\n .pipe(map(function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY;\n return getNewBoundingRectangle((/** @type {?} */ (currentResize)).startingRect, (/** @type {?} */ (currentResize)).edges, clientX, clientY);\n }))\n .pipe(filter(function (newBoundingRect) {\n return (_this.allowNegativeResizes ||\n !!(newBoundingRect.height &&\n newBoundingRect.width &&\n newBoundingRect.height > 0 &&\n newBoundingRect.width > 0));\n }))\n .pipe(filter(function (newBoundingRect) {\n return _this.validateResize\n ? _this.validateResize({\n rectangle: newBoundingRect,\n edges: getEdgesDiff({\n edges: (/** @type {?} */ (currentResize)).edges,\n initialRectangle: (/** @type {?} */ (currentResize)).startingRect,\n newRectangle: newBoundingRect\n })\n })\n : true;\n }), takeUntil(this.destroy$))\n .subscribe(function (newBoundingRect) {\n if (currentResize && currentResize.clonedNode) {\n _this.renderer.setStyle(currentResize.clonedNode, 'height', newBoundingRect.height + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'width', newBoundingRect.width + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'top', newBoundingRect.top + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'left', newBoundingRect.left + \"px\");\n }\n _this.zone.run(function () {\n _this.resizing.emit({\n edges: getEdgesDiff({\n edges: (/** @type {?} */ (currentResize)).edges,\n initialRectangle: (/** @type {?} */ (currentResize)).startingRect,\n newRectangle: newBoundingRect\n }),\n rectangle: newBoundingRect\n });\n });\n (/** @type {?} */ (currentResize)).currentRect = newBoundingRect;\n });\n mousedown$\n .pipe(map(function (_a) {\n var clientX = _a.clientX, clientY = _a.clientY, edges = _a.edges;\n return (edges ||\n getResizeEdges({\n clientX: clientX,\n clientY: clientY,\n elm: _this.elm,\n allowedEdges: _this.resizeEdges,\n cursorPrecision: _this.resizeCursorPrecision\n }));\n }))\n .pipe(filter(function (edges) {\n return Object.keys(edges).length > 0;\n }), takeUntil(this.destroy$))\n .subscribe(function (edges) {\n if (currentResize) {\n removeGhostElement();\n }\n /** @type {?} */\n var startingRect = getElementRect(_this.elm, _this.ghostElementPositioning);\n currentResize = {\n edges: edges,\n startingRect: startingRect,\n currentRect: startingRect\n };\n /** @type {?} */\n var resizeCursors = getResizeCursors();\n /** @type {?} */\n var cursor = getResizeCursor(currentResize.edges, resizeCursors);\n _this.renderer.setStyle(document.body, 'cursor', cursor);\n _this.setElementClass(_this.elm, RESIZE_ACTIVE_CLASS, true);\n if (_this.enableGhostResize) {\n currentResize.clonedNode = _this.elm.nativeElement.cloneNode(true);\n _this.elm.nativeElement.parentElement.appendChild(currentResize.clonedNode);\n _this.renderer.setStyle(_this.elm.nativeElement, 'visibility', 'hidden');\n _this.renderer.setStyle(currentResize.clonedNode, 'position', _this.ghostElementPositioning);\n _this.renderer.setStyle(currentResize.clonedNode, 'left', currentResize.startingRect.left + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'top', currentResize.startingRect.top + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'height', currentResize.startingRect.height + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'width', currentResize.startingRect.width + \"px\");\n _this.renderer.setStyle(currentResize.clonedNode, 'cursor', getResizeCursor(currentResize.edges, resizeCursors));\n _this.renderer.addClass(currentResize.clonedNode, RESIZE_GHOST_ELEMENT_CLASS);\n (/** @type {?} */ (currentResize.clonedNode)).scrollTop = (/** @type {?} */ (currentResize.startingRect\n .scrollTop));\n (/** @type {?} */ (currentResize.clonedNode)).scrollLeft = (/** @type {?} */ (currentResize.startingRect\n .scrollLeft));\n }\n _this.zone.run(function () {\n _this.resizeStart.emit({\n edges: getEdgesDiff({\n edges: edges,\n initialRectangle: startingRect,\n newRectangle: startingRect\n }),\n rectangle: getNewBoundingRectangle(startingRect, {}, 0, 0)\n });\n });\n });\n mouseup$.pipe(takeUntil(this.destroy$)).subscribe(function () {\n if (currentResize) {\n _this.renderer.removeClass(_this.elm.nativeElement, RESIZE_ACTIVE_CLASS);\n _this.renderer.setStyle(document.body, 'cursor', '');\n _this.renderer.setStyle(_this.elm.nativeElement, 'cursor', '');\n _this.zone.run(function () {\n _this.resizeEnd.emit({\n edges: getEdgesDiff({\n edges: (/** @type {?} */ (currentResize)).edges,\n initialRectangle: (/** @type {?} */ (currentResize)).startingRect,\n newRectangle: (/** @type {?} */ (currentResize)).currentRect\n }),\n rectangle: (/** @type {?} */ (currentResize)).currentRect\n });\n });\n removeGhostElement();\n currentResize = null;\n }\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n ResizableDirective.prototype.ngOnChanges = /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.resizeEdges) {\n this.resizeEdges$.next(this.resizeEdges);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n ResizableDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n // browser check for angular universal, because it doesn't know what document is\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.setStyle(document.body, 'cursor', '');\n }\n this.mousedown.complete();\n this.mouseup.complete();\n this.mousemove.complete();\n this.resizeEdges$.complete();\n this.destroy$.next();\n };\n /**\n * @private\n * @param {?} elm\n * @param {?} name\n * @param {?} add\n * @return {?}\n */\n ResizableDirective.prototype.setElementClass = /**\n * @private\n * @param {?} elm\n * @param {?} name\n * @param {?} add\n * @return {?}\n */\n function (elm, name, add) {\n if (add) {\n this.renderer.addClass(elm.nativeElement, name);\n }\n else {\n this.renderer.removeClass(elm.nativeElement, name);\n }\n };\n /** @nocollapse */\n ResizableDirective.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone }\n ]; };\n ResizableDirective.propDecorators = {\n validateResize: [{ type: Input }],\n resizeEdges: [{ type: Input }],\n enableGhostResize: [{ type: Input }],\n resizeSnapGrid: [{ type: Input }],\n resizeCursors: [{ type: Input }],\n resizeCursorPrecision: [{ type: Input }],\n ghostElementPositioning: [{ type: Input }],\n allowNegativeResizes: [{ type: Input }],\n mouseMoveThrottleMS: [{ type: Input }],\n resizeStart: [{ type: Output }],\n resizing: [{ type: Output }],\n resizeEnd: [{ type: Output }]\n };\nResizableDirective.ɵfac = function ResizableDirective_Factory(t) { return new (t || ResizableDirective)(ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nResizableDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: ResizableDirective, selectors: [[\"\", \"mwlResizable\", \"\"]], inputs: { resizeEdges: \"resizeEdges\", enableGhostResize: \"enableGhostResize\", resizeSnapGrid: \"resizeSnapGrid\", resizeCursors: \"resizeCursors\", resizeCursorPrecision: \"resizeCursorPrecision\", ghostElementPositioning: \"ghostElementPositioning\", allowNegativeResizes: \"allowNegativeResizes\", mouseMoveThrottleMS: \"mouseMoveThrottleMS\", validateResize: \"validateResize\" }, outputs: { resizeStart: \"resizeStart\", resizing: \"resizing\", resizeEnd: \"resizeEnd\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ResizableDirective, [{\n type: Directive,\n args: [{\n selector: '[mwlResizable]'\n }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { resizeEdges: [{\n type: Input\n }], enableGhostResize: [{\n type: Input\n }], resizeSnapGrid: [{\n type: Input\n }], resizeCursors: [{\n type: Input\n }], resizeCursorPrecision: [{\n type: Input\n }], ghostElementPositioning: [{\n type: Input\n }], allowNegativeResizes: [{\n type: Input\n }], mouseMoveThrottleMS: [{\n type: Input\n }], resizeStart: [{\n type: Output\n }], resizing: [{\n type: Output\n }], resizeEnd: [{\n type: Output\n }], validateResize: [{\n type: Input\n }] }); })();\n return ResizableDirective;\n}());\nvar PointerEventListeners = /** @class */ (function () {\n function PointerEventListeners(renderer, zone) {\n this.pointerDown = new Observable(function (observer) {\n /** @type {?} */\n var unsubscribeMouseDown;\n /** @type {?} */\n var unsubscribeTouchStart;\n zone.runOutsideAngular(function () {\n unsubscribeMouseDown = renderer.listen('document', 'mousedown', function (event) {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event: event\n });\n });\n unsubscribeTouchStart = renderer.listen('document', 'touchstart', function (event) {\n observer.next({\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n event: event\n });\n });\n });\n return function () {\n unsubscribeMouseDown();\n unsubscribeTouchStart();\n };\n }).pipe(share());\n this.pointerMove = new Observable(function (observer) {\n /** @type {?} */\n var unsubscribeMouseMove;\n /** @type {?} */\n var unsubscribeTouchMove;\n zone.runOutsideAngular(function () {\n unsubscribeMouseMove = renderer.listen('document', 'mousemove', function (event) {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event: event\n });\n });\n unsubscribeTouchMove = renderer.listen('document', 'touchmove', function (event) {\n observer.next({\n clientX: event.targetTouches[0].clientX,\n clientY: event.targetTouches[0].clientY,\n event: event\n });\n });\n });\n return function () {\n unsubscribeMouseMove();\n unsubscribeTouchMove();\n };\n }).pipe(share());\n this.pointerUp = new Observable(function (observer) {\n /** @type {?} */\n var unsubscribeMouseUp;\n /** @type {?} */\n var unsubscribeTouchEnd;\n /** @type {?} */\n var unsubscribeTouchCancel;\n zone.runOutsideAngular(function () {\n unsubscribeMouseUp = renderer.listen('document', 'mouseup', function (event) {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event: event\n });\n });\n unsubscribeTouchEnd = renderer.listen('document', 'touchend', function (event) {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event: event\n });\n });\n unsubscribeTouchCancel = renderer.listen('document', 'touchcancel', function (event) {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event: event\n });\n });\n });\n return function () {\n unsubscribeMouseUp();\n unsubscribeTouchEnd();\n unsubscribeTouchCancel();\n };\n }).pipe(share());\n }\n // tslint:disable-line\n /**\n * @param {?} renderer\n * @param {?} zone\n * @return {?}\n */\n PointerEventListeners.getInstance = \n // tslint:disable-line\n /**\n * @param {?} renderer\n * @param {?} zone\n * @return {?}\n */\n function (renderer, zone) {\n if (!PointerEventListeners.instance) {\n PointerEventListeners.instance = new PointerEventListeners(renderer, zone);\n }\n return PointerEventListeners.instance;\n };\n return PointerEventListeners;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * An element placed inside a `mwlResizable` directive to be used as a drag and resize handle\n *\n * For example\n *\n * ```html\n *
      \n *
      \n *
      \n * ```\n */\nvar ResizeHandleDirective = /** @class */ (function () {\n function ResizeHandleDirective(renderer, element, zone, resizable) {\n this.renderer = renderer;\n this.element = element;\n this.zone = zone;\n this.resizable = resizable;\n /**\n * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on\n */\n this.resizeEdges = {};\n this.eventListeners = {};\n }\n /**\n * @return {?}\n */\n ResizeHandleDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.unsubscribeEventListeners();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n ResizeHandleDirective.prototype.onMousedown = /**\n * @hidden\n * @param {?} event\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n function (event, clientX, clientY) {\n var _this = this;\n event.preventDefault();\n this.zone.runOutsideAngular(function () {\n if (!_this.eventListeners.touchmove) {\n _this.eventListeners.touchmove = _this.renderer.listen(_this.element.nativeElement, 'touchmove', function (touchMoveEvent) {\n _this.onMousemove(touchMoveEvent, touchMoveEvent.targetTouches[0].clientX, touchMoveEvent.targetTouches[0].clientY);\n });\n }\n if (!_this.eventListeners.mousemove) {\n _this.eventListeners.mousemove = _this.renderer.listen(_this.element.nativeElement, 'mousemove', function (mouseMoveEvent) {\n _this.onMousemove(mouseMoveEvent, mouseMoveEvent.clientX, mouseMoveEvent.clientY);\n });\n }\n _this.resizable.mousedown.next({\n clientX: clientX,\n clientY: clientY,\n edges: _this.resizeEdges\n });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n ResizeHandleDirective.prototype.onMouseup = /**\n * @hidden\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n function (clientX, clientY) {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.unsubscribeEventListeners();\n _this.resizable.mouseup.next({\n clientX: clientX,\n clientY: clientY,\n edges: _this.resizeEdges\n });\n });\n };\n /**\n * @private\n * @param {?} event\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n ResizeHandleDirective.prototype.onMousemove = /**\n * @private\n * @param {?} event\n * @param {?} clientX\n * @param {?} clientY\n * @return {?}\n */\n function (event, clientX, clientY) {\n this.resizable.mousemove.next({\n clientX: clientX,\n clientY: clientY,\n edges: this.resizeEdges,\n event: event\n });\n };\n /**\n * @private\n * @return {?}\n */\n ResizeHandleDirective.prototype.unsubscribeEventListeners = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n Object.keys(this.eventListeners).forEach(function (type) {\n ((/** @type {?} */ (_this))).eventListeners[type]();\n delete _this.eventListeners[type];\n });\n };\n /** @nocollapse */\n ResizeHandleDirective.ctorParameters = function () { return [\n { type: Renderer2 },\n { type: ElementRef },\n { type: NgZone },\n { type: ResizableDirective }\n ]; };\n ResizeHandleDirective.propDecorators = {\n resizeEdges: [{ type: Input }],\n onMousedown: [{ type: HostListener, args: ['touchstart', [\n '$event',\n '$event.touches[0].clientX',\n '$event.touches[0].clientY'\n ],] }, { type: HostListener, args: ['mousedown', ['$event', '$event.clientX', '$event.clientY'],] }],\n onMouseup: [{ type: HostListener, args: ['touchend', [\n '$event.changedTouches[0].clientX',\n '$event.changedTouches[0].clientY'\n ],] }, { type: HostListener, args: ['touchcancel', [\n '$event.changedTouches[0].clientX',\n '$event.changedTouches[0].clientY'\n ],] }, { type: HostListener, args: ['mouseup', ['$event.clientX', '$event.clientY'],] }]\n };\nResizeHandleDirective.ɵfac = function ResizeHandleDirective_Factory(t) { return new (t || ResizeHandleDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ResizableDirective)); };\nResizeHandleDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: ResizeHandleDirective, selectors: [[\"\", \"mwlResizeHandle\", \"\"]], hostBindings: function ResizeHandleDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"touchstart\", function ResizeHandleDirective_touchstart_HostBindingHandler($event) { return ctx.onMousedown($event, $event.touches[0].clientX, $event.touches[0].clientY); })(\"mousedown\", function ResizeHandleDirective_mousedown_HostBindingHandler($event) { return ctx.onMousedown($event, $event.clientX, $event.clientY); })(\"touchend\", function ResizeHandleDirective_touchend_HostBindingHandler($event) { return ctx.onMouseup($event.changedTouches[0].clientX, $event.changedTouches[0].clientY); })(\"touchcancel\", function ResizeHandleDirective_touchcancel_HostBindingHandler($event) { return ctx.onMouseup($event.changedTouches[0].clientX, $event.changedTouches[0].clientY); })(\"mouseup\", function ResizeHandleDirective_mouseup_HostBindingHandler($event) { return ctx.onMouseup($event.clientX, $event.clientY); });\n } }, inputs: { resizeEdges: \"resizeEdges\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ResizeHandleDirective, [{\n type: Directive,\n args: [{\n selector: '[mwlResizeHandle]'\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }, { type: ResizableDirective }]; }, { resizeEdges: [{\n type: Input\n }], onMousedown: [{\n type: HostListener,\n args: ['touchstart', [\n '$event',\n '$event.touches[0].clientX',\n '$event.touches[0].clientY'\n ]]\n }, {\n type: HostListener,\n args: ['mousedown', ['$event', '$event.clientX', '$event.clientY']]\n }], onMouseup: [{\n type: HostListener,\n args: ['touchend', [\n '$event.changedTouches[0].clientX',\n '$event.changedTouches[0].clientY'\n ]]\n }, {\n type: HostListener,\n args: ['touchcancel', [\n '$event.changedTouches[0].clientX',\n '$event.changedTouches[0].clientY'\n ]]\n }, {\n type: HostListener,\n args: ['mouseup', ['$event.clientX', '$event.clientY']]\n }] }); })();\n return ResizeHandleDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar ResizableModule = /** @class */ (function () {\n function ResizableModule() {\n }\nResizableModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: ResizableModule });\nResizableModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function ResizableModule_Factory(t) { return new (t || ResizableModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ResizableModule, { declarations: [ResizableDirective,\n ResizeHandleDirective], exports: [ResizableDirective,\n ResizeHandleDirective] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ResizableModule, [{\n type: NgModule,\n args: [{\n declarations: [ResizableDirective, ResizeHandleDirective],\n exports: [ResizableDirective, ResizeHandleDirective]\n }]\n }], function () { return []; }, null); })();\n return ResizableModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { ResizableDirective, ResizeHandleDirective, ResizableModule };\n\n//# sourceMappingURL=angular-resizable-element.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar counto_directive_1 = require(\"./src/counto.directive\");\nexports.CountoDirective = counto_directive_1.CountoDirective;\nvar counto_module_1 = require(\"./src/counto.module\");\nexports.CountoModule = counto_module_1.CountoModule;\nexports.default = counto_module_1.CountoModule;\n\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar ɵngcc0 = require('@angular/core');\nvar CountoDirective = /** @class */ (function () {\n function CountoDirective() {\n this.countoChange = new core_1.EventEmitter();\n this.countoEnd = new core_1.EventEmitter();\n }\n Object.defineProperty(CountoDirective.prototype, \"duration\", {\n set: function (duration) {\n this._duration = parseFloat(duration);\n this.run();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CountoDirective.prototype, \"countTo\", {\n set: function (countTo) {\n this._countTo = parseFloat(countTo);\n this.run();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CountoDirective.prototype, \"countFrom\", {\n set: function (countFrom) {\n this._countFrom = parseFloat(countFrom);\n this.run();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CountoDirective.prototype, \"step\", {\n set: function (step) {\n this._step = parseFloat(step);\n this.run();\n },\n enumerable: true,\n configurable: true\n });\n CountoDirective.prototype.run = function () {\n var _this = this;\n clearInterval(_this._timer);\n if (isNaN(_this._duration)) {\n return false;\n }\n if (isNaN(_this._step)) {\n return false;\n }\n if (isNaN(_this._countFrom)) {\n return false;\n }\n if (isNaN(_this._countTo)) {\n return false;\n }\n if (_this._step <= 0) {\n console.info('Step must be greater than 0.');\n return false;\n }\n if (_this._duration <= 0) {\n console.info('Duration must be greater than 0.');\n return false;\n }\n if (_this._step > _this._duration * 1000) {\n console.info('Step must be equal or smaller than duration.');\n return false;\n }\n var intermediate = _this._countFrom;\n var increment = Math.abs(_this._countTo - _this._countFrom) / ((_this._duration * 1000) / _this._step);\n _this.countoChange.emit(intermediate);\n _this._timer = setInterval(function () {\n if (_this._countTo < _this._countFrom) {\n if (intermediate <= _this._countTo) {\n clearInterval(_this._timer);\n _this.countoChange.emit(_this._countTo);\n _this.countoEnd.emit();\n }\n else {\n _this.countoChange.emit(intermediate);\n intermediate -= increment;\n }\n }\n else {\n if (intermediate >= _this._countTo) {\n clearInterval(_this._timer);\n _this.countoChange.emit(_this._countTo);\n _this.countoEnd.emit();\n }\n else {\n _this.countoChange.emit(intermediate);\n intermediate += increment;\n }\n }\n }, _this._step);\n };\n /** @nocollapse */\n CountoDirective.ctorParameters = function () { return []; };\n CountoDirective.propDecorators = {\n \"countoChange\": [{ type: core_1.Output },],\n \"countoEnd\": [{ type: core_1.Output },],\n \"duration\": [{ type: core_1.Input },],\n \"countTo\": [{ type: core_1.Input },],\n \"countFrom\": [{ type: core_1.Input },],\n \"step\": [{ type: core_1.Input },],\n };\nCountoDirective.ɵfac = function CountoDirective_Factory(t) { return new (t || CountoDirective)(); };\nCountoDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: CountoDirective, selectors: [[\"\", \"counto\", \"\"]], inputs: { duration: \"duration\", countTo: \"countTo\", countFrom: \"countFrom\", step: \"step\" }, outputs: { countoChange: \"countoChange\", countoEnd: \"countoEnd\" } });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CountoDirective, [{\n type: core_1.Directive,\n args: [{\n selector: '[counto]'\n }]\n }], function () { return []; }, { countoChange: [{\n type: core_1.Output\n }], countoEnd: [{\n type: core_1.Output\n }], duration: [{\n type: core_1.Input\n }], countTo: [{\n type: core_1.Input\n }], countFrom: [{\n type: core_1.Input\n }], step: [{\n type: core_1.Input\n }] }); })();\n return CountoDirective;\n}());\nexports.CountoDirective = CountoDirective;\n\n//# sourceMappingURL=counto.directive.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar counto_directive_1 = require(\"./counto.directive\");\nvar ɵngcc0 = require('@angular/core');\nvar ɵngcc1 = require('./counto.directive');\nvar CountoModule = /** @class */ (function () {\n function CountoModule() {\n }\n /** @nocollapse */\n CountoModule.ctorParameters = function () { return []; };\nCountoModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: CountoModule });\nCountoModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function CountoModule_Factory(t) { return new (t || CountoModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(CountoModule, { declarations: [ɵngcc1.CountoDirective], exports: [ɵngcc1.CountoDirective] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(CountoModule, [{\n type: core_1.NgModule,\n args: [{\n declarations: [counto_directive_1.CountoDirective],\n exports: [counto_directive_1.CountoDirective]\n }]\n }], function () { return []; }, null); })();\n return CountoModule;\n}());\nexports.CountoModule = CountoModule;\n\n//# sourceMappingURL=counto.module.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar core_1 = require(\"@angular/core\");\nvar forms_1 = require(\"@angular/forms\");\nvar platform_browser_1 = require(\"@angular/platform-browser\");\nvar textMaskCore_1 = require(\"text-mask-core/dist/textMaskCore\");\nvar ɵngcc0 = require('@angular/core');\nvar TextMaskConfig = /** @class */ (function () {\n function TextMaskConfig() {\n }\n return TextMaskConfig;\n}());\nexports.TextMaskConfig = TextMaskConfig;\nexports.MASKEDINPUT_VALUE_ACCESSOR = {\n provide: forms_1.NG_VALUE_ACCESSOR,\n useExisting: core_1.forwardRef(function () { return MaskedInputDirective; }),\n multi: true\n};\n/**\n * We must check whether the agent is Android because composition events\n * behave differently between iOS and Android.\n */\nfunction _isAndroid() {\n var userAgent = platform_browser_1.ɵgetDOM() ? platform_browser_1.ɵgetDOM().getUserAgent() : '';\n return /android (\\d+)/.test(userAgent.toLowerCase());\n}\nvar MaskedInputDirective = /** @class */ (function () {\n function MaskedInputDirective(_renderer, _elementRef, _compositionMode) {\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._compositionMode = _compositionMode;\n this.textMaskConfig = {\n mask: [],\n guide: true,\n placeholderChar: '_',\n pipe: undefined,\n keepCharPositions: false,\n };\n this.onChange = function (_) { };\n this.onTouched = function () { };\n /** Whether the user is creating a composition string (IME events). */\n this._composing = false;\n if (this._compositionMode == null) {\n this._compositionMode = !_isAndroid();\n }\n }\n MaskedInputDirective.prototype.ngOnChanges = function (changes) {\n this._setupMask(true);\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(this.inputElement.value);\n }\n };\n MaskedInputDirective.prototype.writeValue = function (value) {\n this._setupMask();\n // set the initial value for cases where the mask is disabled\n var normalizedValue = value == null ? '' : value;\n this._renderer.setProperty(this.inputElement, 'value', normalizedValue);\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n }\n };\n MaskedInputDirective.prototype.registerOnChange = function (fn) { this.onChange = fn; };\n MaskedInputDirective.prototype.registerOnTouched = function (fn) { this.onTouched = fn; };\n MaskedInputDirective.prototype.setDisabledState = function (isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n };\n MaskedInputDirective.prototype._handleInput = function (value) {\n if (!this._compositionMode || (this._compositionMode && !this._composing)) {\n this._setupMask();\n if (this.textMaskInputElement !== undefined) {\n this.textMaskInputElement.update(value);\n // get the updated value\n value = this.inputElement.value;\n this.onChange(value);\n }\n }\n };\n MaskedInputDirective.prototype._setupMask = function (create) {\n if (create === void 0) { create = false; }\n if (!this.inputElement) {\n if (this._elementRef.nativeElement.tagName.toUpperCase() === 'INPUT') {\n // `textMask` directive is used directly on an input element\n this.inputElement = this._elementRef.nativeElement;\n }\n else {\n // `textMask` directive is used on an abstracted input element, `md-input-container`, etc\n this.inputElement = this._elementRef.nativeElement.getElementsByTagName('INPUT')[0];\n }\n }\n if (this.inputElement && create) {\n this.textMaskInputElement = textMaskCore_1.createTextMaskInputElement(Object.assign({ inputElement: this.inputElement }, this.textMaskConfig));\n }\n };\n MaskedInputDirective.prototype._compositionStart = function () { this._composing = true; };\n MaskedInputDirective.prototype._compositionEnd = function (value) {\n this._composing = false;\n this._compositionMode && this._handleInput(value);\n };\n /** @nocollapse */\n MaskedInputDirective.ctorParameters = function () { return [\n { type: core_1.Renderer2, },\n { type: core_1.ElementRef, },\n { type: undefined, decorators: [{ type: core_1.Optional }, { type: core_1.Inject, args: [forms_1.COMPOSITION_BUFFER_MODE,] },] },\n ]; };\n MaskedInputDirective.propDecorators = {\n 'textMaskConfig': [{ type: core_1.Input, args: ['textMask',] },],\n };\nMaskedInputDirective.ɵfac = function MaskedInputDirective_Factory(t) { return new (t || MaskedInputDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(forms_1.COMPOSITION_BUFFER_MODE, 8)); };\nMaskedInputDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: MaskedInputDirective, selectors: [[\"\", \"textMask\", \"\"]], hostBindings: function MaskedInputDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function MaskedInputDirective_input_HostBindingHandler($event) { return ctx._handleInput($event.target.value); })(\"blur\", function MaskedInputDirective_blur_HostBindingHandler() { return ctx.onTouched(); })(\"compositionstart\", function MaskedInputDirective_compositionstart_HostBindingHandler() { return ctx._compositionStart(); })(\"compositionend\", function MaskedInputDirective_compositionend_HostBindingHandler($event) { return ctx._compositionEnd($event.target.value); });\n } }, inputs: { textMaskConfig: [\"textMask\", \"textMaskConfig\"] }, exportAs: [\"textMask\"], features: [ɵngcc0.ɵɵProvidersFeature([exports.MASKEDINPUT_VALUE_ACCESSOR]), ɵngcc0.ɵɵNgOnChangesFeature] });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(MaskedInputDirective, [{\n type: core_1.Directive,\n args: [{\n host: {\n '(input)': '_handleInput($event.target.value)',\n '(blur)': 'onTouched()',\n '(compositionstart)': '_compositionStart()',\n '(compositionend)': '_compositionEnd($event.target.value)'\n },\n selector: '[textMask]',\n exportAs: 'textMask',\n providers: [exports.MASKEDINPUT_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: undefined, decorators: [{\n type: core_1.Optional\n }, {\n type: core_1.Inject,\n args: [forms_1.COMPOSITION_BUFFER_MODE]\n }] }]; }, { textMaskConfig: [{\n type: core_1.Input,\n args: ['textMask']\n }] }); })();\n return MaskedInputDirective;\n}());\nexports.MaskedInputDirective = MaskedInputDirective;\nvar TextMaskModule = /** @class */ (function () {\n function TextMaskModule() {\n }\n /** @nocollapse */\n TextMaskModule.ctorParameters = function () { return []; };\nTextMaskModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: TextMaskModule });\nTextMaskModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function TextMaskModule_Factory(t) { return new (t || TextMaskModule)(); } });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(TextMaskModule, { declarations: [MaskedInputDirective], exports: [MaskedInputDirective] }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(TextMaskModule, [{\n type: core_1.NgModule,\n args: [{\n declarations: [MaskedInputDirective],\n exports: [MaskedInputDirective]\n }]\n }], function () { return []; }, null); })();\n return TextMaskModule;\n}());\nexports.TextMaskModule = TextMaskModule;\nvar textMaskCore_2 = require(\"text-mask-core/dist/textMaskCore\");\nexports.conformToMask = textMaskCore_2.conformToMask;\n\n//# sourceMappingURL=angular2TextMask.js.map","module.exports = (typeof Array.from === 'function' ?\n Array.from :\n require('./polyfill')\n);\n","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// Reference: http://www.ecma-international.org/ecma-262/6.0/#sec-array.from\nmodule.exports = (function() {\n var isCallable = function(fn) {\n return typeof fn === 'function';\n };\n var toInteger = function (value) {\n var number = Number(value);\n if (isNaN(number)) { return 0; }\n if (number === 0 || !isFinite(number)) { return number; }\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n var maxSafeInteger = Math.pow(2, 53) - 1;\n var toLength = function (value) {\n var len = toInteger(value);\n return Math.min(Math.max(len, 0), maxSafeInteger);\n };\n var iteratorProp = function(value) {\n if(value != null) {\n if(['string','number','boolean','symbol'].indexOf(typeof value) > -1){\n return Symbol.iterator;\n } else if (\n (typeof Symbol !== 'undefined') &&\n ('iterator' in Symbol) &&\n (Symbol.iterator in value)\n ) {\n return Symbol.iterator;\n }\n // Support \"@@iterator\" placeholder, Gecko 27 to Gecko 35\n else if ('@@iterator' in value) {\n return '@@iterator';\n }\n }\n };\n var getMethod = function(O, P) {\n // Assert: IsPropertyKey(P) is true.\n if (O != null && P != null) {\n // Let func be GetV(O, P).\n var func = O[P];\n // ReturnIfAbrupt(func).\n // If func is either undefined or null, return undefined.\n if(func == null) {\n return void 0;\n }\n // If IsCallable(func) is false, throw a TypeError exception.\n if (!isCallable(func)) {\n throw new TypeError(func + ' is not a function');\n }\n return func;\n }\n };\n var iteratorStep = function(iterator) {\n // Let result be IteratorNext(iterator).\n // ReturnIfAbrupt(result).\n var result = iterator.next();\n // Let done be IteratorComplete(result).\n // ReturnIfAbrupt(done).\n var done = Boolean(result.done);\n // If done is true, return false.\n if(done) {\n return false;\n }\n // Return result.\n return result;\n };\n\n // The length property of the from method is 1.\n return function from(items /*, mapFn, thisArg */ ) {\n 'use strict';\n\n // 1. Let C be the this value.\n var C = this;\n\n // 2. If mapfn is undefined, let mapping be false.\n var mapFn = arguments.length > 1 ? arguments[1] : void 0;\n\n var T;\n if (typeof mapFn !== 'undefined') {\n // 3. else\n // a. If IsCallable(mapfn) is false, throw a TypeError exception.\n if (!isCallable(mapFn)) {\n throw new TypeError(\n 'Array.from: when provided, the second argument must be a function'\n );\n }\n\n // b. If thisArg was supplied, let T be thisArg; else let T\n // be undefined.\n if (arguments.length > 2) {\n T = arguments[2];\n }\n // c. Let mapping be true (implied by mapFn)\n }\n\n var A, k;\n\n // 4. Let usingIterator be GetMethod(items, @@iterator).\n // 5. ReturnIfAbrupt(usingIterator).\n var usingIterator = getMethod(items, iteratorProp(items));\n\n // 6. If usingIterator is not undefined, then\n if (usingIterator !== void 0) {\n // a. If IsConstructor(C) is true, then\n // i. Let A be the result of calling the [[Construct]]\n // internal method of C with an empty argument list.\n // b. Else,\n // i. Let A be the result of the abstract operation ArrayCreate\n // with argument 0.\n // c. ReturnIfAbrupt(A).\n A = isCallable(C) ? Object(new C()) : [];\n\n // d. Let iterator be GetIterator(items, usingIterator).\n var iterator = usingIterator.call(items);\n\n // e. ReturnIfAbrupt(iterator).\n if (iterator == null) {\n throw new TypeError(\n 'Array.from requires an array-like or iterable object'\n );\n }\n\n // f. Let k be 0.\n k = 0;\n\n // g. Repeat\n var next, nextValue;\n while (true) {\n // i. Let Pk be ToString(k).\n // ii. Let next be IteratorStep(iterator).\n // iii. ReturnIfAbrupt(next).\n next = iteratorStep(iterator);\n\n // iv. If next is false, then\n if (!next) {\n\n // 1. Let setStatus be Set(A, \"length\", k, true).\n // 2. ReturnIfAbrupt(setStatus).\n A.length = k;\n\n // 3. Return A.\n return A;\n }\n // v. Let nextValue be IteratorValue(next).\n // vi. ReturnIfAbrupt(nextValue)\n nextValue = next.value;\n\n // vii. If mapping is true, then\n // 1. Let mappedValue be Call(mapfn, T, «nextValue, k»).\n // 2. If mappedValue is an abrupt completion, return\n // IteratorClose(iterator, mappedValue).\n // 3. Let mappedValue be mappedValue.[[value]].\n // viii. Else, let mappedValue be nextValue.\n // ix. Let defineStatus be the result of\n // CreateDataPropertyOrThrow(A, Pk, mappedValue).\n // x. [TODO] If defineStatus is an abrupt completion, return\n // IteratorClose(iterator, defineStatus).\n if (mapFn) {\n A[k] = mapFn.call(T, nextValue, k);\n }\n else {\n A[k] = nextValue;\n }\n // xi. Increase k by 1.\n k++;\n }\n // 7. Assert: items is not an Iterable so assume it is\n // an array-like object.\n } else {\n\n // 8. Let arrayLike be ToObject(items).\n var arrayLike = Object(items);\n\n // 9. ReturnIfAbrupt(items).\n if (items == null) {\n throw new TypeError(\n 'Array.from requires an array-like object - not null or undefined'\n );\n }\n\n // 10. Let len be ToLength(Get(arrayLike, \"length\")).\n // 11. ReturnIfAbrupt(len).\n var len = toLength(arrayLike.length);\n\n // 12. If IsConstructor(C) is true, then\n // a. Let A be Construct(C, «len»).\n // 13. Else\n // a. Let A be ArrayCreate(len).\n // 14. ReturnIfAbrupt(A).\n A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n // 15. Let k be 0.\n k = 0;\n // 16. Repeat, while k < len… (also steps a - h)\n var kValue;\n while (k < len) {\n kValue = arrayLike[k];\n if (mapFn) {\n A[k] = mapFn.call(T, kValue, k);\n }\n else {\n A[k] = kValue;\n }\n k++;\n }\n // 17. Let setStatus be Set(A, \"length\", len, true).\n // 18. ReturnIfAbrupt(setStatus).\n A.length = len;\n // 19. Return A.\n }\n return A;\n };\n})();\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nexport var DAYS_OF_WEEK;\n(function (DAYS_OF_WEEK) {\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SUNDAY\"] = 0] = \"SUNDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"MONDAY\"] = 1] = \"MONDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"TUESDAY\"] = 2] = \"TUESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"THURSDAY\"] = 4] = \"THURSDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"FRIDAY\"] = 5] = \"FRIDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SATURDAY\"] = 6] = \"SATURDAY\";\n})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {}));\nvar DEFAULT_WEEKEND_DAYS = [\n DAYS_OF_WEEK.SUNDAY,\n DAYS_OF_WEEK.SATURDAY,\n];\nvar DAYS_IN_WEEK = 7;\nvar HOURS_IN_DAY = 24;\nvar MINUTES_IN_HOUR = 60;\nexport var SECONDS_IN_DAY = 60 * 60 * 24;\nfunction getExcludedSeconds(dateAdapter, _a) {\n var startDate = _a.startDate, seconds = _a.seconds, excluded = _a.excluded, precision = _a.precision;\n if (excluded.length < 1) {\n return 0;\n }\n var addSeconds = dateAdapter.addSeconds, getDay = dateAdapter.getDay, addDays = dateAdapter.addDays;\n var endDate = addSeconds(startDate, seconds - 1);\n var dayStart = getDay(startDate);\n var dayEnd = getDay(endDate);\n var result = 0; // Calculated in seconds\n var current = startDate;\n var _loop_1 = function () {\n var day = getDay(current);\n if (excluded.some(function (excludedDay) { return excludedDay === day; })) {\n result += calculateExcludedSeconds(dateAdapter, {\n dayStart: dayStart,\n dayEnd: dayEnd,\n day: day,\n precision: precision,\n startDate: startDate,\n endDate: endDate,\n });\n }\n current = addDays(current, 1);\n };\n while (current < endDate) {\n _loop_1();\n }\n return result;\n}\nfunction calculateExcludedSeconds(dateAdapter, _a) {\n var precision = _a.precision, day = _a.day, dayStart = _a.dayStart, dayEnd = _a.dayEnd, startDate = _a.startDate, endDate = _a.endDate;\n var differenceInSeconds = dateAdapter.differenceInSeconds, endOfDay = dateAdapter.endOfDay, startOfDay = dateAdapter.startOfDay;\n if (precision === 'minutes') {\n if (day === dayStart) {\n return differenceInSeconds(endOfDay(startDate), startDate) + 1;\n }\n else if (day === dayEnd) {\n return differenceInSeconds(endDate, startOfDay(endDate)) + 1;\n }\n }\n return SECONDS_IN_DAY;\n}\nfunction getWeekViewEventSpan(dateAdapter, _a) {\n var event = _a.event, offset = _a.offset, startOfWeekDate = _a.startOfWeekDate, excluded = _a.excluded, precision = _a.precision, totalDaysInView = _a.totalDaysInView;\n var max = dateAdapter.max, differenceInSeconds = dateAdapter.differenceInSeconds, addDays = dateAdapter.addDays, endOfDay = dateAdapter.endOfDay, differenceInDays = dateAdapter.differenceInDays;\n var span = SECONDS_IN_DAY;\n var begin = max([event.start, startOfWeekDate]);\n if (event.end) {\n switch (precision) {\n case 'minutes':\n span = differenceInSeconds(event.end, begin);\n break;\n default:\n span =\n differenceInDays(addDays(endOfDay(event.end), 1), begin) *\n SECONDS_IN_DAY;\n break;\n }\n }\n var offsetSeconds = offset * SECONDS_IN_DAY;\n var totalLength = offsetSeconds + span;\n // the best way to detect if an event is outside the week-view\n // is to check if the total span beginning (from startOfWeekDay or event start) exceeds the total days in the view\n var secondsInView = totalDaysInView * SECONDS_IN_DAY;\n if (totalLength > secondsInView) {\n span = secondsInView - offsetSeconds;\n }\n span -= getExcludedSeconds(dateAdapter, {\n startDate: begin,\n seconds: span,\n excluded: excluded,\n precision: precision,\n });\n return span / SECONDS_IN_DAY;\n}\nfunction getWeekViewEventOffset(dateAdapter, _a) {\n var event = _a.event, startOfWeekDate = _a.startOfWeek, excluded = _a.excluded, precision = _a.precision;\n var differenceInDays = dateAdapter.differenceInDays, startOfDay = dateAdapter.startOfDay, differenceInSeconds = dateAdapter.differenceInSeconds;\n if (event.start < startOfWeekDate) {\n return 0;\n }\n var offset = 0;\n switch (precision) {\n case 'days':\n offset =\n differenceInDays(startOfDay(event.start), startOfWeekDate) *\n SECONDS_IN_DAY;\n break;\n case 'minutes':\n offset = differenceInSeconds(event.start, startOfWeekDate);\n break;\n }\n offset -= getExcludedSeconds(dateAdapter, {\n startDate: startOfWeekDate,\n seconds: offset,\n excluded: excluded,\n precision: precision,\n });\n return Math.abs(offset / SECONDS_IN_DAY);\n}\nfunction isEventIsPeriod(dateAdapter, _a) {\n var event = _a.event, periodStart = _a.periodStart, periodEnd = _a.periodEnd;\n var isSameSecond = dateAdapter.isSameSecond;\n var eventStart = event.start;\n var eventEnd = event.end || event.start;\n if (eventStart > periodStart && eventStart < periodEnd) {\n return true;\n }\n if (eventEnd > periodStart && eventEnd < periodEnd) {\n return true;\n }\n if (eventStart < periodStart && eventEnd > periodEnd) {\n return true;\n }\n if (isSameSecond(eventStart, periodStart) ||\n isSameSecond(eventStart, periodEnd)) {\n return true;\n }\n if (isSameSecond(eventEnd, periodStart) ||\n isSameSecond(eventEnd, periodEnd)) {\n return true;\n }\n return false;\n}\nexport function getEventsInPeriod(dateAdapter, _a) {\n var events = _a.events, periodStart = _a.periodStart, periodEnd = _a.periodEnd;\n return events.filter(function (event) {\n return isEventIsPeriod(dateAdapter, { event: event, periodStart: periodStart, periodEnd: periodEnd });\n });\n}\nfunction getWeekDay(dateAdapter, _a) {\n var date = _a.date, _b = _a.weekendDays, weekendDays = _b === void 0 ? DEFAULT_WEEKEND_DAYS : _b;\n var startOfDay = dateAdapter.startOfDay, isSameDay = dateAdapter.isSameDay, getDay = dateAdapter.getDay;\n var today = startOfDay(new Date());\n var day = getDay(date);\n return {\n date: date,\n day: day,\n isPast: date < today,\n isToday: isSameDay(date, today),\n isFuture: date > today,\n isWeekend: weekendDays.indexOf(day) > -1,\n };\n}\nexport function getWeekViewHeader(dateAdapter, _a) {\n var viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _b = _a.excluded, excluded = _b === void 0 ? [] : _b, weekendDays = _a.weekendDays, _c = _a.viewStart, viewStart = _c === void 0 ? dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _c, _d = _a.viewEnd, viewEnd = _d === void 0 ? dateAdapter.addDays(viewStart, DAYS_IN_WEEK) : _d;\n var addDays = dateAdapter.addDays, getDay = dateAdapter.getDay;\n var days = [];\n var date = viewStart;\n while (date < viewEnd) {\n if (!excluded.some(function (e) { return getDay(date) === e; })) {\n days.push(getWeekDay(dateAdapter, { date: date, weekendDays: weekendDays }));\n }\n date = addDays(date, 1);\n }\n return days;\n}\nexport function getDifferenceInDaysWithExclusions(dateAdapter, _a) {\n var date1 = _a.date1, date2 = _a.date2, excluded = _a.excluded;\n var date = date1;\n var diff = 0;\n while (date < date2) {\n if (excluded.indexOf(dateAdapter.getDay(date)) === -1) {\n diff++;\n }\n date = dateAdapter.addDays(date, 1);\n }\n return diff;\n}\nfunction getAllDayWeekEvents(dateAdapter, _a) {\n var events = _a.events, excluded = _a.excluded, precision = _a.precision, absolutePositionedEvents = _a.absolutePositionedEvents, viewStart = _a.viewStart, viewEnd = _a.viewEnd, eventsInPeriod = _a.eventsInPeriod;\n var differenceInSeconds = dateAdapter.differenceInSeconds, differenceInDays = dateAdapter.differenceInDays;\n var maxRange = getDifferenceInDaysWithExclusions(dateAdapter, {\n date1: viewStart,\n date2: viewEnd,\n excluded: excluded,\n });\n var totalDaysInView = differenceInDays(viewEnd, viewStart) + 1;\n var eventsMapped = eventsInPeriod\n .filter(function (event) { return event.allDay; })\n .map(function (event) {\n var offset = getWeekViewEventOffset(dateAdapter, {\n event: event,\n startOfWeek: viewStart,\n excluded: excluded,\n precision: precision,\n });\n var span = getWeekViewEventSpan(dateAdapter, {\n event: event,\n offset: offset,\n startOfWeekDate: viewStart,\n excluded: excluded,\n precision: precision,\n totalDaysInView: totalDaysInView,\n });\n return { event: event, offset: offset, span: span };\n })\n .filter(function (e) { return e.offset < maxRange; })\n .filter(function (e) { return e.span > 0; })\n .map(function (entry) { return ({\n event: entry.event,\n offset: entry.offset,\n span: entry.span,\n startsBeforeWeek: entry.event.start < viewStart,\n endsAfterWeek: (entry.event.end || entry.event.start) > viewEnd,\n }); })\n .sort(function (itemA, itemB) {\n var startSecondsDiff = differenceInSeconds(itemA.event.start, itemB.event.start);\n if (startSecondsDiff === 0) {\n return differenceInSeconds(itemB.event.end || itemB.event.start, itemA.event.end || itemA.event.start);\n }\n return startSecondsDiff;\n });\n var allDayEventRows = [];\n var allocatedEvents = [];\n eventsMapped.forEach(function (event, index) {\n if (allocatedEvents.indexOf(event) === -1) {\n allocatedEvents.push(event);\n var rowSpan_1 = event.span + event.offset;\n var otherRowEvents = eventsMapped\n .slice(index + 1)\n .filter(function (nextEvent) {\n if (nextEvent.offset >= rowSpan_1 &&\n rowSpan_1 + nextEvent.span <= totalDaysInView &&\n allocatedEvents.indexOf(nextEvent) === -1) {\n var nextEventOffset = nextEvent.offset - rowSpan_1;\n if (!absolutePositionedEvents) {\n nextEvent.offset = nextEventOffset;\n }\n rowSpan_1 += nextEvent.span + nextEventOffset;\n allocatedEvents.push(nextEvent);\n return true;\n }\n });\n var weekEvents = __spreadArrays([event], otherRowEvents);\n var id = weekEvents\n .filter(function (weekEvent) { return weekEvent.event.id; })\n .map(function (weekEvent) { return weekEvent.event.id; })\n .join('-');\n allDayEventRows.push(__assign({ row: weekEvents }, (id ? { id: id } : {})));\n }\n });\n return allDayEventRows;\n}\nfunction getWeekViewHourGrid(dateAdapter, _a) {\n var events = _a.events, viewDate = _a.viewDate, hourSegments = _a.hourSegments, dayStart = _a.dayStart, dayEnd = _a.dayEnd, weekStartsOn = _a.weekStartsOn, excluded = _a.excluded, weekendDays = _a.weekendDays, segmentHeight = _a.segmentHeight, viewStart = _a.viewStart, viewEnd = _a.viewEnd;\n var dayViewHourGrid = getDayViewHourGrid(dateAdapter, {\n viewDate: viewDate,\n hourSegments: hourSegments,\n dayStart: dayStart,\n dayEnd: dayEnd,\n });\n var weekDays = getWeekViewHeader(dateAdapter, {\n viewDate: viewDate,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n viewStart: viewStart,\n viewEnd: viewEnd,\n });\n var setHours = dateAdapter.setHours, setMinutes = dateAdapter.setMinutes, getHours = dateAdapter.getHours, getMinutes = dateAdapter.getMinutes;\n return weekDays.map(function (day) {\n var dayView = getDayView(dateAdapter, {\n events: events,\n viewDate: day.date,\n hourSegments: hourSegments,\n dayStart: dayStart,\n dayEnd: dayEnd,\n segmentHeight: segmentHeight,\n eventWidth: 1,\n });\n var hours = dayViewHourGrid.map(function (hour) {\n var segments = hour.segments.map(function (segment) {\n var date = setMinutes(setHours(day.date, getHours(segment.date)), getMinutes(segment.date));\n return __assign(__assign({}, segment), { date: date });\n });\n return __assign(__assign({}, hour), { segments: segments });\n });\n function getColumnCount(allEvents, prevOverlappingEvents) {\n var columnCount = Math.max.apply(Math, prevOverlappingEvents.map(function (iEvent) { return iEvent.left + 1; }));\n var nextOverlappingEvents = allEvents\n .filter(function (iEvent) { return iEvent.left >= columnCount; })\n .filter(function (iEvent) {\n return (getOverLappingWeekViewEvents(prevOverlappingEvents, iEvent.top, iEvent.top + iEvent.height).length > 0);\n });\n if (nextOverlappingEvents.length > 0) {\n return getColumnCount(allEvents, nextOverlappingEvents);\n }\n else {\n return columnCount;\n }\n }\n var mappedEvents = dayView.events.map(function (event) {\n var columnCount = getColumnCount(dayView.events, getOverLappingWeekViewEvents(dayView.events, event.top, event.top + event.height));\n var width = 100 / columnCount;\n return __assign(__assign({}, event), { left: event.left * width, width: width });\n });\n return {\n hours: hours,\n date: day.date,\n events: mappedEvents.map(function (event) {\n var overLappingEvents = getOverLappingWeekViewEvents(mappedEvents.filter(function (otherEvent) { return otherEvent.left > event.left; }), event.top, event.top + event.height);\n if (overLappingEvents.length > 0) {\n return __assign(__assign({}, event), { width: Math.min.apply(Math, overLappingEvents.map(function (otherEvent) { return otherEvent.left; })) - event.left });\n }\n return event;\n }),\n };\n });\n}\nexport function getWeekView(dateAdapter, _a) {\n var _b = _a.events, events = _b === void 0 ? [] : _b, viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _c = _a.excluded, excluded = _c === void 0 ? [] : _c, _d = _a.precision, precision = _d === void 0 ? 'days' : _d, _e = _a.absolutePositionedEvents, absolutePositionedEvents = _e === void 0 ? false : _e, hourSegments = _a.hourSegments, dayStart = _a.dayStart, dayEnd = _a.dayEnd, weekendDays = _a.weekendDays, segmentHeight = _a.segmentHeight, _f = _a.viewStart, viewStart = _f === void 0 ? dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _f, _g = _a.viewEnd, viewEnd = _g === void 0 ? dateAdapter.endOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _g;\n if (!events) {\n events = [];\n }\n var startOfDay = dateAdapter.startOfDay, endOfDay = dateAdapter.endOfDay;\n viewStart = startOfDay(viewStart);\n viewEnd = endOfDay(viewEnd);\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: events,\n periodStart: viewStart,\n periodEnd: viewEnd,\n });\n var header = getWeekViewHeader(dateAdapter, {\n viewDate: viewDate,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n viewStart: viewStart,\n viewEnd: viewEnd,\n });\n return {\n allDayEventRows: getAllDayWeekEvents(dateAdapter, {\n events: events,\n excluded: excluded,\n precision: precision,\n absolutePositionedEvents: absolutePositionedEvents,\n viewStart: viewStart,\n viewEnd: viewEnd,\n eventsInPeriod: eventsInPeriod,\n }),\n period: {\n events: eventsInPeriod,\n start: header[0].date,\n end: endOfDay(header[header.length - 1].date),\n },\n hourColumns: getWeekViewHourGrid(dateAdapter, {\n events: events,\n viewDate: viewDate,\n hourSegments: hourSegments,\n dayStart: dayStart,\n dayEnd: dayEnd,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n segmentHeight: segmentHeight,\n viewStart: viewStart,\n viewEnd: viewEnd,\n }),\n };\n}\nexport function getMonthView(dateAdapter, _a) {\n var _b = _a.events, events = _b === void 0 ? [] : _b, viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _c = _a.excluded, excluded = _c === void 0 ? [] : _c, _d = _a.viewStart, viewStart = _d === void 0 ? dateAdapter.startOfMonth(viewDate) : _d, _e = _a.viewEnd, viewEnd = _e === void 0 ? dateAdapter.endOfMonth(viewDate) : _e, weekendDays = _a.weekendDays;\n if (!events) {\n events = [];\n }\n var startOfWeek = dateAdapter.startOfWeek, endOfWeek = dateAdapter.endOfWeek, differenceInDays = dateAdapter.differenceInDays, startOfDay = dateAdapter.startOfDay, addHours = dateAdapter.addHours, endOfDay = dateAdapter.endOfDay, isSameMonth = dateAdapter.isSameMonth, getDay = dateAdapter.getDay, getMonth = dateAdapter.getMonth;\n var start = startOfWeek(viewStart, { weekStartsOn: weekStartsOn });\n var end = endOfWeek(viewEnd, { weekStartsOn: weekStartsOn });\n var eventsInMonth = getEventsInPeriod(dateAdapter, {\n events: events,\n periodStart: start,\n periodEnd: end,\n });\n var initialViewDays = [];\n var previousDate;\n var _loop_2 = function (i) {\n // hacky fix for https://github.com/mattlewis92/angular-calendar/issues/173\n var date;\n if (previousDate) {\n date = startOfDay(addHours(previousDate, HOURS_IN_DAY));\n if (previousDate.getTime() === date.getTime()) {\n // DST change, so need to add 25 hours\n /* istanbul ignore next */\n date = startOfDay(addHours(previousDate, HOURS_IN_DAY + 1));\n }\n previousDate = date;\n }\n else {\n date = previousDate = start;\n }\n if (!excluded.some(function (e) { return getDay(date) === e; })) {\n var day = getWeekDay(dateAdapter, {\n date: date,\n weekendDays: weekendDays,\n });\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: eventsInMonth,\n periodStart: startOfDay(date),\n periodEnd: endOfDay(date),\n });\n day.inMonth = isSameMonth(date, viewDate);\n day.events = eventsInPeriod;\n day.badgeTotal = eventsInPeriod.length;\n initialViewDays.push(day);\n }\n };\n for (var i = 0; i < differenceInDays(end, start) + 1; i++) {\n _loop_2(i);\n }\n var days = [];\n var totalDaysVisibleInWeek = DAYS_IN_WEEK - excluded.length;\n if (totalDaysVisibleInWeek < DAYS_IN_WEEK) {\n for (var i = 0; i < initialViewDays.length; i += totalDaysVisibleInWeek) {\n var row = initialViewDays.slice(i, i + totalDaysVisibleInWeek);\n var isRowInMonth = row.some(function (day) { return viewStart <= day.date && day.date < viewEnd; });\n if (isRowInMonth) {\n days = __spreadArrays(days, row);\n }\n }\n }\n else {\n days = initialViewDays;\n }\n var rows = Math.floor(days.length / totalDaysVisibleInWeek);\n var rowOffsets = [];\n for (var i = 0; i < rows; i++) {\n rowOffsets.push(i * totalDaysVisibleInWeek);\n }\n return {\n rowOffsets: rowOffsets,\n totalDaysVisibleInWeek: totalDaysVisibleInWeek,\n days: days,\n period: {\n start: days[0].date,\n end: endOfDay(days[days.length - 1].date),\n events: eventsInMonth,\n },\n };\n}\nfunction getOverLappingWeekViewEvents(events, top, bottom) {\n return events.filter(function (previousEvent) {\n var previousEventTop = previousEvent.top;\n var previousEventBottom = previousEvent.top + previousEvent.height;\n if (top < previousEventBottom && previousEventBottom < bottom) {\n return true;\n }\n else if (top < previousEventTop && previousEventTop < bottom) {\n return true;\n }\n else if (previousEventTop <= top && bottom <= previousEventBottom) {\n return true;\n }\n return false;\n });\n}\nfunction getDayView(dateAdapter, _a) {\n var events = _a.events, viewDate = _a.viewDate, hourSegments = _a.hourSegments, dayStart = _a.dayStart, dayEnd = _a.dayEnd, eventWidth = _a.eventWidth, segmentHeight = _a.segmentHeight;\n var setMinutes = dateAdapter.setMinutes, setHours = dateAdapter.setHours, startOfDay = dateAdapter.startOfDay, startOfMinute = dateAdapter.startOfMinute, endOfDay = dateAdapter.endOfDay, differenceInMinutes = dateAdapter.differenceInMinutes;\n var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute));\n var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute));\n var previousDayEvents = [];\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: events.filter(function (event) { return !event.allDay; }),\n periodStart: startOfView,\n periodEnd: endOfView,\n });\n var dayViewEvents = eventsInPeriod\n .sort(function (eventA, eventB) {\n return eventA.start.valueOf() - eventB.start.valueOf();\n })\n .map(function (event) {\n var eventStart = event.start;\n var eventEnd = event.end || eventStart;\n var startsBeforeDay = eventStart < startOfView;\n var endsAfterDay = eventEnd > endOfView;\n var hourHeightModifier = (hourSegments * segmentHeight) / MINUTES_IN_HOUR;\n var top = 0;\n if (eventStart > startOfView) {\n // adjust the difference in minutes if the user's offset is different between the start of the day and the event (e.g. when going to or from DST)\n var eventOffset = eventStart.getTimezoneOffset();\n var startOffset = startOfView.getTimezoneOffset();\n var diff = startOffset - eventOffset;\n top += differenceInMinutes(eventStart, startOfView) + diff;\n }\n top *= hourHeightModifier;\n var startDate = startsBeforeDay ? startOfView : eventStart;\n var endDate = endsAfterDay ? endOfView : eventEnd;\n var height = differenceInMinutes(endDate, startDate);\n if (!event.end) {\n height = segmentHeight;\n }\n else {\n height *= hourHeightModifier;\n }\n var bottom = top + height;\n var overlappingPreviousEvents = getOverLappingWeekViewEvents(previousDayEvents, top, bottom);\n var left = 0;\n while (overlappingPreviousEvents.some(function (previousEvent) { return previousEvent.left === left; })) {\n left += eventWidth;\n }\n var dayEvent = {\n event: event,\n height: height,\n width: eventWidth,\n top: top,\n left: left,\n startsBeforeDay: startsBeforeDay,\n endsAfterDay: endsAfterDay,\n };\n previousDayEvents.push(dayEvent);\n return dayEvent;\n });\n var width = Math.max.apply(Math, dayViewEvents.map(function (event) { return event.left + event.width; }));\n var allDayEvents = getEventsInPeriod(dateAdapter, {\n events: events.filter(function (event) { return event.allDay; }),\n periodStart: startOfDay(startOfView),\n periodEnd: endOfDay(endOfView),\n });\n return {\n events: dayViewEvents,\n width: width,\n allDayEvents: allDayEvents,\n period: {\n events: eventsInPeriod,\n start: startOfView,\n end: endOfView,\n },\n };\n}\nfunction sanitiseHours(hours) {\n return Math.max(Math.min(23, hours), 0);\n}\nfunction sanitiseMinutes(minutes) {\n return Math.max(Math.min(59, minutes), 0);\n}\nfunction getDayViewHourGrid(dateAdapter, _a) {\n var viewDate = _a.viewDate, hourSegments = _a.hourSegments, dayStart = _a.dayStart, dayEnd = _a.dayEnd;\n var setMinutes = dateAdapter.setMinutes, setHours = dateAdapter.setHours, startOfDay = dateAdapter.startOfDay, startOfMinute = dateAdapter.startOfMinute, endOfDay = dateAdapter.endOfDay, addMinutes = dateAdapter.addMinutes, addHours = dateAdapter.addHours, addDays = dateAdapter.addDays;\n var hours = [];\n var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute));\n var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute));\n var segmentDuration = MINUTES_IN_HOUR / hourSegments;\n var startOfViewDay = startOfDay(viewDate);\n var endOfViewDay = endOfDay(viewDate);\n var dateAdjustment = function (d) { return d; };\n // this means that we change from or to DST on this day and that's going to cause problems so we bump the date\n if (startOfViewDay.getTimezoneOffset() !== endOfViewDay.getTimezoneOffset()) {\n startOfViewDay = addDays(startOfViewDay, 1);\n startOfView = addDays(startOfView, 1);\n endOfView = addDays(endOfView, 1);\n dateAdjustment = function (d) { return addDays(d, -1); };\n }\n for (var i = 0; i < HOURS_IN_DAY; i++) {\n var segments = [];\n for (var j = 0; j < hourSegments; j++) {\n var date = addMinutes(addHours(startOfViewDay, i), j * segmentDuration);\n if (date >= startOfView && date < endOfView) {\n segments.push({\n date: dateAdjustment(date),\n displayDate: date,\n isStart: j === 0,\n });\n }\n }\n if (segments.length > 0) {\n hours.push({ segments: segments });\n }\n }\n return hours;\n}\nexport var EventValidationErrorMessage;\n(function (EventValidationErrorMessage) {\n EventValidationErrorMessage[\"NotArray\"] = \"Events must be an array\";\n EventValidationErrorMessage[\"StartPropertyMissing\"] = \"Event is missing the `start` property\";\n EventValidationErrorMessage[\"StartPropertyNotDate\"] = \"Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.\";\n EventValidationErrorMessage[\"EndPropertyNotDate\"] = \"Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.\";\n EventValidationErrorMessage[\"EndsBeforeStart\"] = \"Event `start` property occurs after the `end`\";\n})(EventValidationErrorMessage || (EventValidationErrorMessage = {}));\nexport function validateEvents(events, log) {\n var isValid = true;\n function isError(msg, event) {\n log(msg, event);\n isValid = false;\n }\n if (!Array.isArray(events)) {\n log(EventValidationErrorMessage.NotArray, events);\n return false;\n }\n events.forEach(function (event) {\n if (!event.start) {\n isError(EventValidationErrorMessage.StartPropertyMissing, event);\n }\n else if (!(event.start instanceof Date)) {\n isError(EventValidationErrorMessage.StartPropertyNotDate, event);\n }\n if (event.end) {\n if (!(event.end instanceof Date)) {\n isError(EventValidationErrorMessage.EndPropertyNotDate, event);\n }\n if (event.start > event.end) {\n isError(EventValidationErrorMessage.EndsBeforeStart, event);\n }\n }\n });\n return isValid;\n}\n//# sourceMappingURL=calendar-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar date_fns_1 = require(\"date-fns\");\nfunction adapterFactory() {\n return {\n addDays: date_fns_1.addDays,\n addHours: date_fns_1.addHours,\n addMinutes: date_fns_1.addMinutes,\n addSeconds: date_fns_1.addSeconds,\n differenceInDays: date_fns_1.differenceInDays,\n differenceInMinutes: date_fns_1.differenceInMinutes,\n differenceInSeconds: date_fns_1.differenceInSeconds,\n endOfDay: date_fns_1.endOfDay,\n endOfMonth: date_fns_1.endOfMonth,\n endOfWeek: date_fns_1.endOfWeek,\n getDay: date_fns_1.getDay,\n getMonth: date_fns_1.getMonth,\n isSameDay: date_fns_1.isSameDay,\n isSameMonth: date_fns_1.isSameMonth,\n isSameSecond: date_fns_1.isSameSecond,\n max: date_fns_1.max,\n setHours: date_fns_1.setHours,\n setMinutes: date_fns_1.setMinutes,\n startOfDay: date_fns_1.startOfDay,\n startOfMinute: date_fns_1.startOfMinute,\n startOfMonth: date_fns_1.startOfMonth,\n startOfWeek: date_fns_1.startOfWeek,\n getHours: date_fns_1.getHours,\n getMinutes: date_fns_1.getMinutes,\n };\n}\nexports.adapterFactory = adapterFactory;\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar typeFunc = require('type-func');\n\nfunction createPointCB(object, options) {\n\n // A persistent object (as opposed to returned object) is used to save memory\n // This is good to prevent layout thrashing, or for games, and such\n\n // NOTE\n // This uses IE fixes which should be OK to remove some day. :)\n // Some speed will be gained by removal of these.\n\n // pointCB should be saved in a variable on return\n // This allows the usage of element.removeEventListener\n\n options = options || {};\n\n var allowUpdate = typeFunc.boolean(options.allowUpdate, true);\n\n /*if(typeof options.allowUpdate === 'function'){\n allowUpdate = options.allowUpdate;\n }else{\n allowUpdate = function(){return true;};\n }*/\n\n return function pointCB(event) {\n\n event = event || window.event; // IE-ism\n object.target = event.target || event.srcElement || event.originalTarget;\n object.element = this;\n object.type = event.type;\n\n if (!allowUpdate(event)) {\n return;\n }\n\n // Support touch\n // http://www.creativebloq.com/javascript/make-your-site-work-touch-devices-51411644\n\n if (event.targetTouches) {\n object.x = event.targetTouches[0].clientX;\n object.y = event.targetTouches[0].clientY;\n object.pageX = event.targetTouches[0].pageX;\n object.pageY = event.targetTouches[0].pageY;\n object.screenX = event.targetTouches[0].screenX;\n object.screenY = event.targetTouches[0].screenY;\n } else {\n\n // If pageX/Y aren't available and clientX/Y are,\n // calculate pageX/Y - logic taken from jQuery.\n // (This is to support old IE)\n // NOTE Hopefully this can be removed soon.\n\n if (event.pageX === null && event.clientX !== null) {\n var eventDoc = event.target && event.target.ownerDocument || document;\n var doc = eventDoc.documentElement;\n var body = eventDoc.body;\n\n object.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n object.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } else {\n object.pageX = event.pageX;\n object.pageY = event.pageY;\n }\n\n // pageX, and pageY change with page scroll\n // so we're not going to use those for x, and y.\n // NOTE Most browsers also alias clientX/Y with x/y\n // so that's something to consider down the road.\n\n object.x = event.clientX;\n object.y = event.clientY;\n\n object.screenX = event.screenX;\n object.screenY = event.screenY;\n }\n\n object.clientX = object.x;\n object.clientY = object.y;\n };\n\n //NOTE Remember accessibility, Aria roles, and labels.\n}\n\n/*\ngit remote add origin https://github.com/hollowdoor/create_point_cb.git\ngit push -u origin master\n*/\n\nmodule.exports = createPointCB;\n//# sourceMappingURL=bundle.js.map\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport range from \"./range.js\";\nimport {tickStep} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending.js\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count;\n }\n }\n }\n return count;\n}\n","function length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nexport default function cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n","export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","import variance from \"./variance.js\";\n\nexport default function deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n}\n","export default function(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n","import ascending from \"./ascending.js\";\n\nexport default function greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\n}\n","import ascending from \"./ascending.js\";\nimport maxIndex from \"./maxIndex.js\";\n\nexport default function greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n","import identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new Map();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n","export default function(x) {\n return x;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect.js\";\nexport {default as ascending} from \"./ascending.js\";\nexport {default as bisector} from \"./bisector.js\";\nexport {default as count} from \"./count.js\";\nexport {default as cross} from \"./cross.js\";\nexport {default as cumsum} from \"./cumsum.js\";\nexport {default as descending} from \"./descending.js\";\nexport {default as deviation} from \"./deviation.js\";\nexport {default as extent} from \"./extent.js\";\nexport {default as group, groups, rollup, rollups} from \"./group.js\";\nexport {default as bin, default as histogram} from \"./bin.js\"; // Deprecated; use bin.\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis.js\";\nexport {default as thresholdScott} from \"./threshold/scott.js\";\nexport {default as thresholdSturges} from \"./threshold/sturges.js\";\nexport {default as max} from \"./max.js\";\nexport {default as maxIndex} from \"./maxIndex.js\";\nexport {default as mean} from \"./mean.js\";\nexport {default as median} from \"./median.js\";\nexport {default as merge} from \"./merge.js\";\nexport {default as min} from \"./min.js\";\nexport {default as minIndex} from \"./minIndex.js\";\nexport {default as pairs} from \"./pairs.js\";\nexport {default as permute} from \"./permute.js\";\nexport {default as quantile, quantileSorted} from \"./quantile.js\";\nexport {default as quickselect} from \"./quickselect.js\";\nexport {default as range} from \"./range.js\";\nexport {default as least} from \"./least.js\";\nexport {default as leastIndex} from \"./leastIndex.js\";\nexport {default as greatest} from \"./greatest.js\";\nexport {default as greatestIndex} from \"./greatestIndex.js\";\nexport {default as scan} from \"./scan.js\"; // Deprecated; use leastIndex.\nexport {default as shuffle} from \"./shuffle.js\";\nexport {default as sum} from \"./sum.js\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks.js\";\nexport {default as transpose} from \"./transpose.js\";\nexport {default as variance} from \"./variance.js\";\nexport {default as zip} from \"./zip.js\";\n","import ascending from \"./ascending.js\";\n\nexport default function least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport minIndex from \"./minIndex.js\";\n\nexport default function leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\n}\n","export default function mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n","import quantile from \"./quantile.js\";\n\nexport default function(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export default function pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n","export default function(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n","import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import leastIndex from \"./leastIndex.js\";\n\nexport default function scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n","export default function shuffle(array, i0 = 0, i1 = array.length) {\n var m = i1 - (i0 = +i0),\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n\n return array;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n","import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\n}\n","import count from \"../count.js\";\n\nexport default function(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","import min from \"./min.js\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n","export default function variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n","import transpose from \"./transpose.js\";\n\nexport default function() {\n return transpose(arguments);\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n return (!clean && that.__brush.emitter) || new Emitter(that, args);\n }\n\n function Emitter(that, args) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(target, type, selection) {\n this.target = target;\n this.type = type;\n this.selection = selection;\n}\n","export {\n default as brush,\n brushX,\n brushY,\n brushSelection\n} from \"./brush.js\";\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export {default as dispatch} from \"./dispatch.js\";\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","export {default as drag} from \"./drag.js\";\nexport {default as dragDisable, yesdrag as dragEnable} from \"./nodrag.js\";\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, true);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return t * t * ((s + 1) * t - s);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((s + 1) * t + s) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * Math.pow(2, 10 * --t) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * Math.pow(2, -10 * (t = +t)) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * Math.pow(2, 10 * t) * Math.sin((s - t) / p)\n : 2 - a * Math.pow(2, -10 * t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","export function expIn(t) {\n return Math.pow(2, 10 * t - 10);\n}\n\nexport function expOut(t) {\n return 1 - Math.pow(2, -10 * t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(2, 10 * t - 10) : 2 - Math.pow(2, 10 - 10 * t)) / 2;\n}\n","export {\n linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n quadInOut as easeQuad,\n quadIn as easeQuadIn,\n quadOut as easeQuadOut,\n quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n cubicInOut as easeCubic,\n cubicIn as easeCubicIn,\n cubicOut as easeCubicOut,\n cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n polyInOut as easePoly,\n polyIn as easePolyIn,\n polyOut as easePolyOut,\n polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n sinInOut as easeSin,\n sinIn as easeSinIn,\n sinOut as easeSinOut,\n sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n expInOut as easeExp,\n expIn as easeExpIn,\n expOut as easeExpOut,\n expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n circleInOut as easeCircle,\n circleIn as easeCircleIn,\n circleOut as easeCircleOut,\n circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n bounceOut as easeBounce,\n bounceIn as easeBounceIn,\n bounceOut as easeBounceOut,\n bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n backInOut as easeBack,\n backIn as easeBackIn,\n backOut as easeBackOut,\n backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n elasticOut as easeElastic,\n elasticIn as easeElasticIn,\n elasticOut as easeElasticOut,\n elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n","export function linear(t) {\n return +t;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export var slice = Array.prototype.slice;\n\nexport function shuffle(array) {\n var m = array.length,\n t,\n i;\n\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n\n return array;\n}\n","function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\nfunction meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n}\n\nfunction meanXReduce(x, c) {\n return x + c.x;\n}\n\nfunction maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n}\n\nfunction maxYReduce(y, c) {\n return Math.max(y, c.y);\n}\n\nfunction leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n}\n\nfunction leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n}\n\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = false;\n\n function cluster(root) {\n var previousNode,\n x = 0;\n\n // First walk, computing the initial x & y values.\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n\n var left = leafLeft(root),\n right = leafRight(root),\n x0 = left.x - separation(left, right) / 2,\n x1 = right.x + separation(right, left) / 2;\n\n // Second walk, normalizing x & y to the desired size.\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n\n cluster.separation = function(x) {\n return arguments.length ? (separation = x, cluster) : separation;\n };\n\n cluster.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? null : [dx, dy]);\n };\n\n cluster.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster) : (nodeSize ? [dx, dy] : null);\n };\n\n return cluster;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export {default as cluster} from \"./cluster.js\";\nexport {default as hierarchy} from \"./hierarchy/index.js\";\nexport {default as pack} from \"./pack/index.js\";\nexport {default as packSiblings} from \"./pack/siblings.js\";\nexport {default as packEnclose} from \"./pack/enclose.js\";\nexport {default as partition} from \"./partition.js\";\nexport {default as stratify} from \"./stratify.js\";\nexport {default as tree} from \"./tree.js\";\nexport {default as treemap} from \"./treemap/index.js\";\nexport {default as treemapBinary} from \"./treemap/binary.js\";\nexport {default as treemapDice} from \"./treemap/dice.js\";\nexport {default as treemapSlice} from \"./treemap/slice.js\";\nexport {default as treemapSliceDice} from \"./treemap/sliceDice.js\";\nexport {default as treemapSquarify} from \"./treemap/squarify.js\";\nexport {default as treemapResquarify} from \"./treemap/resquarify.js\";\n","import {shuffle, slice} from \"../array.js\";\n\nexport default function(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B = [], p, e;\n\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B = extendBasis(B, p)), i = 0;\n }\n\n return e;\n}\n\nfunction extendBasis(B, p) {\n var i, j;\n\n if (enclosesWeakAll(p, B)) return [p];\n\n // If we get here then B must have at least one element.\n for (i = 0; i < B.length; ++i) {\n if (enclosesNot(p, B[i])\n && enclosesWeakAll(encloseBasis2(B[i], p), B)) {\n return [B[i], p];\n }\n }\n\n // If we get here then B must have at least two elements.\n for (i = 0; i < B.length - 1; ++i) {\n for (j = i + 1; j < B.length; ++j) {\n if (enclosesNot(encloseBasis2(B[i], B[j]), p)\n && enclosesNot(encloseBasis2(B[i], p), B[j])\n && enclosesNot(encloseBasis2(B[j], p), B[i])\n && enclosesWeakAll(encloseBasis3(B[i], B[j], p), B)) {\n return [B[i], B[j], p];\n }\n }\n }\n\n // If we get here then something is very wrong.\n throw new Error;\n}\n\nfunction enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n}\n\nfunction enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction enclosesWeakAll(a, B) {\n for (var i = 0; i < B.length; ++i) {\n if (!enclosesWeak(a, B[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction encloseBasis(B) {\n switch (B.length) {\n case 1: return encloseBasis1(B[0]);\n case 2: return encloseBasis2(B[0], B[1]);\n case 3: return encloseBasis3(B[0], B[1], B[2]);\n }\n}\n\nfunction encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n}\n\nfunction encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1,\n l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n}\n\nfunction encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r,\n x2 = b.x, y2 = b.y, r2 = b.r,\n x3 = c.x, y3 = c.y, r3 = c.r,\n a2 = x1 - x2,\n a3 = x1 - x3,\n b2 = y1 - y2,\n b3 = y1 - y3,\n c2 = r2 - r1,\n c3 = r3 - r1,\n d1 = x1 * x1 + y1 * y1 - r1 * r1,\n d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,\n d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,\n ab = a3 * b2 - a2 * b3,\n xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,\n xb = (b3 * c2 - b2 * c3) / ab,\n ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,\n yb = (a2 * c3 - a3 * c2) / ab,\n A = xb * xb + yb * yb - 1,\n B = 2 * (r1 + xa * xb + ya * yb),\n C = xa * xa + ya * ya - r1 * r1,\n r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r: r\n };\n}\n","import {packEnclose} from \"./siblings.js\";\nimport {optional} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nfunction defaultRadius(d) {\n return Math.sqrt(d.value);\n}\n\nexport default function() {\n var radius = null,\n dx = 1,\n dy = 1,\n padding = constantZero;\n\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius))\n .eachAfter(packChildren(padding, 0.5))\n .eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius))\n .eachAfter(packChildren(constantZero, 1))\n .eachAfter(packChildren(padding, root.r / Math.min(dx, dy)))\n .eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n\n return pack;\n}\n\nfunction radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n}\n\nfunction packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children,\n i,\n n = children.length,\n r = padding(node) * k || 0,\n e;\n\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n}\n\nfunction translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n}\n","import enclose from \"./enclose.js\";\n\nfunction place(b, a, c) {\n var dx = b.x - a.x, x, a2,\n dy = b.y - a.y, y, b2,\n d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n}\n\nfunction intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n}\n\nfunction score(node) {\n var a = node._,\n b = node.next._,\n ab = a.r + b.r,\n dx = (a.x * b.r + b.x * a.r) / ab,\n dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n}\n\nfunction Node(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n}\n\nexport function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n\n // Place the first circle.\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n\n // Place the second circle.\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n\n // Place the third circle.\n place(b, a, c = circles[2]);\n\n // Initialize the front-chain using the first three circles a, b and c.\n a = new Node(a), b = new Node(b), c = new Node(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n\n // Attempt to place each remaining circle…\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node(c);\n\n // Find the closest intersecting circle on the front-chain, if any.\n // “Closeness” is determined by linear distance along the front-chain.\n // “Ahead” or “behind” is likewise determined by linear distance.\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n\n // Success! Insert the new circle c between a and b.\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n\n // Compute the new closest circle pair to the centroid.\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n\n // Compute the enclosing circle of the front chain.\n a = [b._], c = b; while ((c = c.next) !== b) a.push(c._); c = enclose(a);\n\n // Translate the circles to put the enclosing circle around the origin.\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n\n return c.r;\n}\n\nexport default function(circles) {\n packEnclose(circles);\n return circles;\n}\n","import roundNode from \"./treemap/round.js\";\nimport treemapDice from \"./treemap/dice.js\";\n\nexport default function() {\n var dx = 1,\n dy = 1,\n padding = 0,\n round = false;\n\n function partition(root) {\n var n = root.height + 1;\n root.x0 =\n root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(dy, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy * (node.depth + 1) / n, node.x1, dy * (node.depth + 2) / n);\n }\n var x0 = node.x0,\n y0 = node.y0,\n x1 = node.x1 - padding,\n y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n\n partition.round = function(x) {\n return arguments.length ? (round = !!x, partition) : round;\n };\n\n partition.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition) : [dx, dy];\n };\n\n partition.padding = function(x) {\n return arguments.length ? (padding = +x, partition) : padding;\n };\n\n return partition;\n}\n","import {required} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar keyPrefix = \"$\", // Protect against keys like “__proto__”.\n preroot = {depth: -1},\n ambiguous = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId;\n\n function stratify(data) {\n var d,\n i,\n n = data.length,\n root,\n parent,\n node,\n nodes = new Array(n),\n nodeId,\n nodeKey,\n nodeByKey = {};\n\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = required(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify) : parentId;\n };\n\n return stratify;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n i, n = nodes.length,\n sum, sums = new Array(n + 1);\n\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n\n partition(0, n, parent.value, x0, y0, x1, y1);\n\n function partition(i, j, value, x0, y0, x1, y1) {\n if (i >= j - 1) {\n var node = nodes[i];\n node.x0 = x0, node.y0 = y0;\n node.x1 = x1, node.y1 = y1;\n return;\n }\n\n var valueOffset = sums[i],\n valueTarget = (value / 2) + valueOffset,\n k = i + 1,\n hi = j - 1;\n\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n\n if ((valueTarget - sums[k - 1]) < (sums[k] - valueTarget) && i + 1 < k) --k;\n\n var valueLeft = sums[k] - valueOffset,\n valueRight = value - valueLeft;\n\n if ((x1 - x0) > (y1 - y0)) {\n var xk = (x0 * valueRight + x1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, xk, y1);\n partition(k, j, valueRight, xk, y0, x1, y1);\n } else {\n var yk = (y0 * valueRight + y1 * valueLeft) / value;\n partition(i, k, valueLeft, x0, y0, x1, yk);\n partition(k, j, valueRight, x0, yk, x1, y1);\n }\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import dice from \"./dice.js\";\nimport slice from \"./slice.js\";\n\nexport default function(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? slice : dice)(parent, x0, y0, x1, y1);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color.js\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hue} from \"./color.js\";\n\nexport default function(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n}\n","export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n","import {lab as colorLab} from \"d3-color\";\nimport color from \"./color.js\";\n\nexport default function lab(start, end) {\n var l = color((start = colorLab(start)).l, (end = colorLab(end)).l),\n a = color(start.a, end.a),\n b = color(start.b, end.b),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","export default function piecewise(interpolate, values) {\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export {default as path} from \"./path.js\";\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band.js\";\n\nexport {\n default as scaleIdentity\n} from \"./identity.js\";\n\nexport {\n default as scaleLinear\n} from \"./linear.js\";\n\nexport {\n default as scaleLog\n} from \"./log.js\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog.js\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal.js\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow.js\";\n\nexport {\n default as scaleRadial\n} from \"./radial.js\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile.js\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize.js\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold.js\";\n\nexport {\n default as scaleTime\n} from \"./time.js\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime.js\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential.js\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile.js\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging.js\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat.js\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","export default function(x) {\n return +x;\n}\n","import {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new Map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new Map();\n for (const value of _) {\n const key = value + \"\";\n if (index.has(key)) continue;\n index.set(key, domain.push(value));\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target),\n step;\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n return interval.every(step);\n }\n\n return interval;\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1]))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time.js\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init.js\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export default function(node, event) {\n var svg = node.ownerSVGElement || node;\n\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","export {default as arc} from \"./arc.js\";\nexport {default as area} from \"./area.js\";\nexport {default as line} from \"./line.js\";\nexport {default as pie} from \"./pie.js\";\nexport {default as areaRadial, default as radialArea} from \"./areaRadial.js\"; // Note: radialArea is deprecated!\nexport {default as lineRadial, default as radialLine} from \"./lineRadial.js\"; // Note: radialLine is deprecated!\nexport {default as pointRadial} from \"./pointRadial.js\";\nexport {linkHorizontal, linkVertical, linkRadial} from \"./link/index.js\";\n\nexport {default as symbol, symbols} from \"./symbol.js\";\nexport {default as symbolCircle} from \"./symbol/circle.js\";\nexport {default as symbolCross} from \"./symbol/cross.js\";\nexport {default as symbolDiamond} from \"./symbol/diamond.js\";\nexport {default as symbolSquare} from \"./symbol/square.js\";\nexport {default as symbolStar} from \"./symbol/star.js\";\nexport {default as symbolTriangle} from \"./symbol/triangle.js\";\nexport {default as symbolWye} from \"./symbol/wye.js\";\n\nexport {default as curveBasisClosed} from \"./curve/basisClosed.js\";\nexport {default as curveBasisOpen} from \"./curve/basisOpen.js\";\nexport {default as curveBasis} from \"./curve/basis.js\";\nexport {default as curveBundle} from \"./curve/bundle.js\";\nexport {default as curveCardinalClosed} from \"./curve/cardinalClosed.js\";\nexport {default as curveCardinalOpen} from \"./curve/cardinalOpen.js\";\nexport {default as curveCardinal} from \"./curve/cardinal.js\";\nexport {default as curveCatmullRomClosed} from \"./curve/catmullRomClosed.js\";\nexport {default as curveCatmullRomOpen} from \"./curve/catmullRomOpen.js\";\nexport {default as curveCatmullRom} from \"./curve/catmullRom.js\";\nexport {default as curveLinearClosed} from \"./curve/linearClosed.js\";\nexport {default as curveLinear} from \"./curve/linear.js\";\nexport {monotoneX as curveMonotoneX, monotoneY as curveMonotoneY} from \"./curve/monotone.js\";\nexport {default as curveNatural} from \"./curve/natural.js\";\nexport {default as curveStep, stepAfter as curveStepAfter, stepBefore as curveStepBefore} from \"./curve/step.js\";\n\nexport {default as stack} from \"./stack.js\";\nexport {default as stackOffsetExpand} from \"./offset/expand.js\";\nexport {default as stackOffsetDiverging} from \"./offset/diverging.js\";\nexport {default as stackOffsetNone} from \"./offset/none.js\";\nexport {default as stackOffsetSilhouette} from \"./offset/silhouette.js\";\nexport {default as stackOffsetWiggle} from \"./offset/wiggle.js\";\nexport {default as stackOrderAppearance} from \"./order/appearance.js\";\nexport {default as stackOrderAscending} from \"./order/ascending.js\";\nexport {default as stackOrderDescending} from \"./order/descending.js\";\nexport {default as stackOrderInsideOut} from \"./order/insideOut.js\";\nexport {default as stackOrderNone} from \"./order/none.js\";\nexport {default as stackOrderReverse} from \"./order/reverse.js\";\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","export default function() {}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = data.length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","export {default as timeFormatDefaultLocale, timeFormat, timeParse, utcFormat, utcParse} from \"./defaultLocale.js\";\nexport {default as timeFormatLocale} from \"./locale.js\";\nexport {default as isoFormat} from \"./isoFormat.js\";\nexport {default as isoParse} from \"./isoParse.js\";\n","import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","export {\n default as timeInterval\n} from \"./interval.js\";\n\nexport {\n default as timeMillisecond,\n milliseconds as timeMilliseconds,\n default as utcMillisecond,\n milliseconds as utcMilliseconds\n} from \"./millisecond.js\";\n\nexport {\n default as timeSecond,\n seconds as timeSeconds,\n default as utcSecond,\n seconds as utcSeconds\n} from \"./second.js\";\n\nexport {\n default as timeMinute,\n minutes as timeMinutes\n} from \"./minute.js\";\n\nexport {\n default as timeHour,\n hours as timeHours\n} from \"./hour.js\";\n\nexport {\n default as timeDay,\n days as timeDays\n} from \"./day.js\";\n\nexport {\n sunday as timeWeek,\n sundays as timeWeeks,\n sunday as timeSunday,\n sundays as timeSundays,\n monday as timeMonday,\n mondays as timeMondays,\n tuesday as timeTuesday,\n tuesdays as timeTuesdays,\n wednesday as timeWednesday,\n wednesdays as timeWednesdays,\n thursday as timeThursday,\n thursdays as timeThursdays,\n friday as timeFriday,\n fridays as timeFridays,\n saturday as timeSaturday,\n saturdays as timeSaturdays\n} from \"./week.js\";\n\nexport {\n default as timeMonth,\n months as timeMonths\n} from \"./month.js\";\n\nexport {\n default as timeYear,\n years as timeYears\n} from \"./year.js\";\n\nexport {\n default as utcMinute,\n utcMinutes as utcMinutes\n} from \"./utcMinute.js\";\n\nexport {\n default as utcHour,\n utcHours as utcHours\n} from \"./utcHour.js\";\n\nexport {\n default as utcDay,\n utcDays as utcDays\n} from \"./utcDay.js\";\n\nexport {\n utcSunday as utcWeek,\n utcSundays as utcWeeks,\n utcSunday as utcSunday,\n utcSundays as utcSundays,\n utcMonday as utcMonday,\n utcMondays as utcMondays,\n utcTuesday as utcTuesday,\n utcTuesdays as utcTuesdays,\n utcWednesday as utcWednesday,\n utcWednesdays as utcWednesdays,\n utcThursday as utcThursday,\n utcThursdays as utcThursdays,\n utcFriday as utcFriday,\n utcFridays as utcFridays,\n utcSaturday as utcSaturday,\n utcSaturdays as utcSaturdays\n} from \"./utcWeek.js\";\n\nexport {\n default as utcMonth,\n utcMonths as utcMonths\n} from \"./utcMonth.js\";\n\nexport {\n default as utcYear,\n utcYears as utcYears\n} from \"./utcYear.js\";\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","export {\n now,\n timer,\n timerFlush\n} from \"./timer.js\";\n\nexport {\n default as timeout\n} from \"./timeout.js\";\n\nexport {\n default as interval\n} from \"./interval.js\";\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer, total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n","import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (dirtyObject.hasOwnProperty(property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import assign from '../assign/index.js';\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var MILLISECONDS_IN_MINUTE = 60000;\n\nfunction getDateMillisecondsPart(date) {\n return date.getTime() % MILLISECONDS_IN_MINUTE;\n}\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\n\n\nexport default function getTimezoneOffsetInMilliseconds(dirtyDate) {\n var date = new Date(dirtyDate.getTime());\n var baseTimezoneOffset = Math.ceil(date.getTimezoneOffset());\n date.setSeconds(0, 0);\n var hasNegativeUTCOffset = baseTimezoneOffset > 0;\n var millisecondsPartOfTimezoneOffset = hasNegativeUTCOffset ? (MILLISECONDS_IN_MINUTE + getDateMillisecondsPart(date)) % MILLISECONDS_IN_MINUTE : getDateMillisecondsPart(date);\n return baseTimezoneOffset * MILLISECONDS_IN_MINUTE + millisecondsPartOfTimezoneOffset;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport startOfUTCISOWeekYear from '../startOfUTCISOWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport startOfUTCWeekYear from '../startOfUTCWeekYear/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token) {\n if (token === 'YYYY') {\n throw new RangeError('Use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'YY') {\n throw new RangeError('Use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr');\n } else if (token === 'D') {\n throw new RangeError('Use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr');\n } else if (token === 'DD') {\n throw new RangeError('Use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr');\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCISOWeek from '../getUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport getUTCWeek from '../getUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import getUTCISOWeekYear from '../getUTCISOWeekYear/index.js';\nimport startOfUTCISOWeek from '../startOfUTCISOWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from '../toInteger/index.js';\nimport getUTCWeekYear from '../getUTCWeekYear/index.js';\nimport startOfUTCWeek from '../startOfUTCWeek/index.js';\nimport requiredArgs from '../requiredArgs/index.js'; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import addDays from '../addDays/index.js';\nimport addMonths from '../addMonths/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * var result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\n\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = 'years' in duration ? toInteger(duration.years) : 0;\n var months = 'months' in duration ? toInteger(duration.months) : 0;\n var weeks = 'weeks' in duration ? toInteger(duration.weeks) : 0;\n var days = 'days' in duration ? toInteger(duration.days) : 0;\n var hours = 'hours' in duration ? toInteger(duration.hours) : 0;\n var minutes = 'minutes' in duration ? toInteger(duration.minutes) : 0;\n var seconds = 'seconds' in duration ? toInteger(duration.seconds) : 0; // Add years and months\n\n var dateWithMonths = addMonths(toDate(dirtyDate), months + years * 12); // Add weeks and days\n\n var dateWithDays = addDays(dateWithMonths, days + weeks * 7); // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import isWeekend from '../isWeekend/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addBusinessDays\n * @category Day Helpers\n * @summary Add the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Add the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of business days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the business days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 business days to 1 September 2014:\n * var result = addBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Sep 15 2014 00:00:00 (skipped weekend days)\n */\n\nexport default function addBusinessDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) return new Date(NaN);\n var hours = date.getHours();\n var sign = amount < 0 ? -1 : 1;\n var fullWeeks = toInteger(amount / 5);\n date.setDate(date.getDate() + fullWeeks * 7); // Get remaining days not part of a full week\n\n var restDays = Math.abs(amount % 5); // Loops over remaining days\n\n while (restDays > 0) {\n date.setDate(date.getDate() + sign);\n if (!isWeekend(date)) restDays -= 1;\n } // Restore hours to avoid DST lag\n\n\n date.setHours(hours);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * var result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\n\nexport default function addHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_HOUR);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport getISOWeekYear from '../getISOWeekYear/index.js';\nimport setISOWeekYear from '../setISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Add the specified number of ISO week-numbering years to the given date.\n *\n * @description\n * Add the specified number of ISO week-numbering years to the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `addISOYears` to `addISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the ISO week-numbering years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 ISO week-numbering years to 2 July 2010:\n * var result = addISOWeekYears(new Date(2010, 6, 2), 5)\n * //=> Fri Jun 26 2015 00:00:00\n */\n\nexport default function addISOWeekYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return setISOWeekYear(dirtyDate, getISOWeekYear(dirtyDate) + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * var result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * var result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\n\nexport default function addMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * MILLISECONDS_IN_MINUTE);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n var desiredMonth = date.getMonth() + amount;\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * var result = addQuarters(new Date(2014, 8, 1), 1)\n * //=> Mon Dec 01 2014 00:00:00\n */\n\nexport default function addQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var months = amount * 3;\n return addMonths(dirtyDate, months);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * var result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\n\nexport default function addSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, amount * 1000);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name areIntervalsOverlapping\n * @category Interval Helpers\n * @summary Is the given time interval overlapping with another time interval?\n *\n * @description\n * Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `areRangesOverlapping` to `areIntervalsOverlapping`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * areRangesOverlapping(\n * new Date(2014, 0, 10), new Date(2014, 0, 20),\n * new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n *\n * // v2.0.0 onward\n *\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * ```\n *\n * @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link docs/types/Interval}\n * @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.inclusive=false] - whether the comparison is inclusive or not\n * @returns {Boolean} whether the time intervals are overlapping\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> true\n *\n * @example\n * // For non-overlapping time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> false\n *\n * @example\n * // For adjacent time intervals:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }\n * )\n * //=> false\n *\n * @example\n * // Using the inclusive option:\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }\n * )\n * //=> false\n * areIntervalsOverlapping(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },\n * { inclusive: true }\n * )\n * //=> true\n */\n\nexport default function areIntervalsOverlapping(dirtyIntervalLeft, dirtyIntervalRight) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var intervalLeft = dirtyIntervalLeft || {};\n var intervalRight = dirtyIntervalRight || {};\n var leftStartTime = toDate(intervalLeft.start).getTime();\n var leftEndTime = toDate(intervalLeft.end).getTime();\n var rightStartTime = toDate(intervalRight.start).getTime();\n var rightEndTime = toDate(intervalRight.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {\n throw new RangeError('Invalid interval');\n }\n\n if (options.inclusive) {\n return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;\n }\n\n return leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name closestIndexTo\n * @category Common Helpers\n * @summary Return an index of the closest date from the array comparing to the given date.\n *\n * @description\n * Return an index of the closest date from the array comparing to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now, `closestIndexTo` doesn't throw an exception\n * when the second argument is not an array, and returns Invalid Date instead.\n *\n * @param {Date|Number} dateToCompare - the date to compare with\n * @param {Date[]|Number[]} datesArray - the array to search\n * @returns {Number} an index of the date closest to the given date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Which date is closer to 6 September 2015?\n * var dateToCompare = new Date(2015, 8, 6)\n * var datesArray = [\n * new Date(2015, 0, 1),\n * new Date(2016, 0, 1),\n * new Date(2017, 0, 1)\n * ]\n * var result = closestIndexTo(dateToCompare, datesArray)\n * //=> 1\n */\n\nexport default function closestIndexTo(dirtyDateToCompare, dirtyDatesArray) {\n requiredArgs(2, arguments);\n var dateToCompare = toDate(dirtyDateToCompare);\n\n if (isNaN(dateToCompare)) {\n return NaN;\n }\n\n var timeToCompare = dateToCompare.getTime();\n var datesArray; // `dirtyDatesArray` is undefined or null\n\n if (dirtyDatesArray == null) {\n datesArray = []; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n } else if (typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array\n } else {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n }\n\n var result;\n var minDistance;\n datesArray.forEach(function (dirtyDate, index) {\n var currentDate = toDate(dirtyDate);\n\n if (isNaN(currentDate)) {\n result = NaN;\n minDistance = NaN;\n return;\n }\n\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n\n if (result == null || distance < minDistance) {\n result = index;\n minDistance = distance;\n }\n });\n return result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name closestTo\n * @category Common Helpers\n * @summary Return a date from the array closest to the given date.\n *\n * @description\n * Return a date from the array closest to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now, `closestTo` doesn't throw an exception\n * when the second argument is not an array, and returns Invalid Date instead.\n *\n * @param {Date|Number} dateToCompare - the date to compare with\n * @param {Date[]|Number[]} datesArray - the array to search\n * @returns {Date} the date from the array closest to the given date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Which date is closer to 6 September 2015: 1 January 2000 or 1 January 2030?\n * var dateToCompare = new Date(2015, 8, 6)\n * var result = closestTo(dateToCompare, [\n * new Date(2000, 0, 1),\n * new Date(2030, 0, 1)\n * ])\n * //=> Tue Jan 01 2030 00:00:00\n */\n\nexport default function closestTo(dirtyDateToCompare, dirtyDatesArray) {\n requiredArgs(2, arguments);\n var dateToCompare = toDate(dirtyDateToCompare);\n\n if (isNaN(dateToCompare)) {\n return new Date(NaN);\n }\n\n var timeToCompare = dateToCompare.getTime();\n var datesArray; // `dirtyDatesArray` is undefined or null\n\n if (dirtyDatesArray == null) {\n datesArray = []; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n } else if (typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array. Otherwise, make it empty Array\n } else {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n }\n\n var result;\n var minDistance;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (isNaN(currentDate)) {\n result = new Date(NaN);\n minDistance = NaN;\n return;\n }\n\n var distance = Math.abs(timeToCompare - currentDate.getTime());\n\n if (result == null || distance < minDistance) {\n result = currentDate;\n minDistance = distance;\n }\n });\n return result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareDesc\n * @category Common Helpers\n * @summary Compare the two dates reverse chronologically and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return -1 if the first date is after the second,\n * 1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989 reverse chronologically:\n * var result = compareDesc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> 1\n *\n * @example\n * // Sort the array of dates in reverse chronological order:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareDesc)\n * //=> [\n * // Sun Jul 02 1995 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Wed Feb 11 1987 00:00:00\n * // ]\n */\n\nexport default function compareDesc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff > 0) {\n return -1;\n } else if (diff < 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","/**\n * Maximum allowed time.\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Minimum allowed time.\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;","import isValid from '../isValid/index.js';\nimport isWeekend from '../isWeekend/index.js';\nimport toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport addDays from '../addDays/index.js';\nimport isSameDay from '../isSameDay/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInBusinessDays\n * @category Day Helpers\n * @summary Get the number of business days between the given dates.\n *\n * @description\n * Get the number of business day periods between the given dates.\n * Business days being days that arent in the weekend.\n * Like `differenceInCalendarDays`, the function removes the times from\n * the dates before calculating the difference.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of business days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many business days are between\n * // 10 January 2014 and 20 July 2014?\n * var result = differenceInBusinessDays(\n * new Date(2014, 6, 20),\n * new Date(2014, 0, 10)\n * )\n * //=> 136\n */\n\nexport default function differenceInBusinessDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n if (!isValid(dateLeft) || !isValid(dateRight)) return new Date(NaN);\n var calendarDifference = differenceInCalendarDays(dateLeft, dateRight);\n var sign = calendarDifference < 0 ? -1 : 1;\n var weeks = toInteger(calendarDifference / 7);\n var result = weeks * 5;\n dateRight = addDays(dateRight, weeks * 7); // the loop below will run at most 6 times to account for the remaining days that don't makeup a full week\n\n while (!isSameDay(dateLeft, dateRight)) {\n // sign is used to account for both negative and positive differences\n result += isWeekend(dateRight) ? 0 : sign;\n dateRight = addDays(dateRight, sign);\n }\n\n return result === 0 ? 0 : result;\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of calendar ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of calendar ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `differenceInCalendarISOYears` to `differenceInCalendarISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO week-numbering years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar ISO week-numbering years are 1 January 2010 and 1 January 2012?\n * var result = differenceInCalendarISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarISOWeekYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n return getISOWeekYear(dirtyDateLeft) - getISOWeekYear(dirtyDateRight);\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarISOWeeks\n * @category ISO Week Helpers\n * @summary Get the number of calendar ISO weeks between the given dates.\n *\n * @description\n * Get the number of calendar ISO weeks between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar ISO weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar ISO weeks are between 6 July 2014 and 21 July 2014?\n * var result = differenceInCalendarISOWeeks(\n * new Date(2014, 6, 21),\n * new Date(2014, 6, 6)\n * )\n * //=> 3\n */\n\nexport default function differenceInCalendarISOWeeks(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfISOWeekLeft = startOfISOWeek(dirtyDateLeft);\n var startOfISOWeekRight = startOfISOWeek(dirtyDateRight);\n var timestampLeft = startOfISOWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekLeft);\n var timestampRight = startOfISOWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfISOWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import getQuarter from '../getQuarter/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarQuarters\n * @category Quarter Helpers\n * @summary Get the number of calendar quarters between the given dates.\n *\n * @description\n * Get the number of calendar quarters between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar quarters\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInCalendarQuarters(\n * new Date(2014, 6, 2),\n * new Date(2013, 11, 31)\n * )\n * //=> 3\n */\n\nexport default function differenceInCalendarQuarters(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var quarterDiff = getQuarter(dateLeft) - getQuarter(dateRight);\n return yearDiff * 4 + quarterDiff;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name differenceInCalendarWeeks\n * @category Week Helpers\n * @summary Get the number of calendar weeks between the given dates.\n *\n * @description\n * Get the number of calendar weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5)\n * )\n * //=> 3\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInCalendarWeeks(\n * new Date(2014, 6, 20),\n * new Date(2014, 6, 5),\n * { weekStartsOn: 1 }\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek(dirtyDateLeft, dirtyOptions);\n var startOfWeekRight = startOfWeek(dirtyDateRight, dirtyOptions);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between the given dates.\n * This function returns the difference in days as an integer whole number of 24 hour periods between two timestamps, and thereby ignores DST changes.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n */\n\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var result = (dateLeft - dateRight) / MILLISECONDS_IN_DAY; // round towards zero\n\n if (result > 0) return Math.floor(result);\n return Math.ceil(result);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * var result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_HOUR;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarISOWeekYears from '../differenceInCalendarISOWeekYears/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport subISOWeekYears from '../subISOWeekYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of full ISO week-numbering years between the given dates.\n *\n * @description\n * Get the number of full ISO week-numbering years between the given dates.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `differenceInISOYears` to `differenceInISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full ISO week-numbering years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full ISO week-numbering years are between 1 January 2010 and 1 January 2012?\n * var result = differenceInISOWeekYears(\n * new Date(2012, 0, 1),\n * new Date(2010, 0, 1)\n * )\n * //=> 1\n */\n\nexport default function differenceInISOWeekYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarISOWeekYears(dateLeft, dateRight));\n dateLeft = subISOWeekYears(dateLeft, sign * difference); // Math.abs(diff in full ISO years - diff in calendar ISO years) === 1\n // if last calendar ISO year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastISOWeekYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastISOWeekYearNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * var result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getTime() - dateRight.getTime();\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_MINUTE = 60000;\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * var result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are from 10:01:59 to 10:00:00\n * var result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / MILLISECONDS_IN_MINUTE;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarMonths from '../differenceInCalendarMonths/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastMonthNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import differenceInMonths from '../differenceInMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of full quarters between the given dates.\n *\n * @description\n * Get the number of full quarters between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full quarters\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * var result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\n\nexport default function differenceInQuarters(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMonths(dirtyDateLeft, dirtyDateRight) / 3;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInMilliseconds from '../differenceInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * var result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dirtyDateLeft, dirtyDateRight) / 1000;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import differenceInDays from '../differenceInDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n */\n\nexport default function differenceInWeeks(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarYears from '../differenceInCalendarYears/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * var result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear('1584');\n dateRight.setFullYear('1584'); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastYearNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `eachDay` to `eachDayOfInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * eachDay(new Date(2014, 0, 10), new Date(2014, 0, 20))\n *\n * // v2.0.0 onward\n *\n * eachDayOfInterval(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }\n * )\n * ```\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * var result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\n\nexport default function eachDayOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = options && 'step' in options ? Number(options.step) : 1;\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachMonthOfInterval\n * @category Interval Helpers\n * @summary Return the array of months within the specified time interval.\n *\n * @description\n * Return the array of months within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} the array with starts of months from the month of the interval start to the month of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each month between 6 February 2014 and 10 August 2014:\n * var result = eachMonthOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2014, 7, 10)\n * })\n * //=> [\n * // Sat Feb 01 2014 00:00:00,\n * // Sat Mar 01 2014 00:00:00,\n * // Tue Apr 01 2014 00:00:00,\n * // Thu May 01 2014 00:00:00,\n * // Sun Jun 01 2014 00:00:00,\n * // Tue Jul 01 2014 00:00:00,\n * // Fri Aug 01 2014 00:00:00\n * // ]\n */\n\nexport default function eachMonthOfInterval(dirtyInterval) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setDate(1);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setMonth(currentDate.getMonth() + 1);\n }\n\n return dates;\n}","import addWeeks from '../addWeeks/index.js';\nimport startOfWeek from '../startOfWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date[]} the array with starts of weeks from the week of the interval start to the week of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be 0, 1, ..., 6\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * var result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\n\nexport default function eachWeekOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var startDateWeek = startOfWeek(startDate, options);\n var endDateWeek = startOfWeek(endDate, options); // Some timezones switch DST at midnight, making start of day unreliable in these timezones, 3pm is a safe bet\n\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n endTime = endDateWeek.getTime();\n var weeks = [];\n var currentWeek = startDateWeek;\n\n while (currentWeek.getTime() <= endTime) {\n currentWeek.setHours(0);\n weeks.push(toDate(currentWeek));\n currentWeek = addWeeks(currentWeek, 1);\n currentWeek.setHours(15);\n }\n\n return weeks;\n}","import eachDayOfInterval from '../eachDayOfInterval/index.js';\nimport isSunday from '../isSunday/index.js';\nimport isWeekend from '../isWeekend/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfInterval\n * @category Interval Helpers\n * @summary List all the Saturdays and Sundays in the given date interval.\n *\n * @description\n * Get all the Saturdays and Sundays in the given date interval.\n *\n * @param {Interval} interval - the given interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Lists all Saturdays and Sundays in the given date interval\n * var result = eachWeekendOfInterval({\n * start: new Date(2018, 8, 17),\n * end: new Date(2018, 8, 30)\n * })\n * //=> [\n * // Sat Sep 22 2018 00:00:00,\n * // Sun Sep 23 2018 00:00:00,\n * // Sat Sep 29 2018 00:00:00,\n * // Sun Sep 30 2018 00:00:00\n * // ]\n */\n\nexport default function eachWeekendOfInterval(interval) {\n requiredArgs(1, arguments);\n var dateInterval = eachDayOfInterval(interval);\n var weekends = [];\n var index = 0;\n\n while (index < dateInterval.length) {\n var date = dateInterval[index++];\n\n if (isWeekend(date)) {\n weekends.push(date);\n if (isSunday(date)) index = index + 5;\n }\n }\n\n return weekends;\n}","import eachWeekendOfInterval from '../eachWeekendOfInterval/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport endOfMonth from '../endOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfMonth\n * @category Month Helpers\n * @summary List all the Saturdays and Sundays in the given month.\n *\n * @description\n * Get all the Saturdays and Sundays in the given month.\n *\n * @param {Date|Number} date - the given month\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The passed date is invalid\n *\n * @example\n * // Lists all Saturdays and Sundays in the given month\n * var result = eachWeekendOfMonth(new Date(2022, 1, 1))\n * //=> [\n * // Sat Feb 05 2022 00:00:00,\n * // Sun Feb 06 2022 00:00:00,\n * // Sat Feb 12 2022 00:00:00,\n * // Sun Feb 13 2022 00:00:00,\n * // Sat Feb 19 2022 00:00:00,\n * // Sun Feb 20 2022 00:00:00,\n * // Sat Feb 26 2022 00:00:00,\n * // Sun Feb 27 2022 00:00:00\n * // ]\n */\n\nexport default function eachWeekendOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var startDate = startOfMonth(dirtyDate);\n if (isNaN(startDate)) throw new RangeError('The passed date is invalid');\n var endDate = endOfMonth(dirtyDate);\n return eachWeekendOfInterval({\n start: startDate,\n end: endDate\n });\n}","import eachWeekendOfInterval from '../eachWeekendOfInterval/index.js';\nimport startOfYear from '../startOfYear/index.js';\nimport endOfYear from '../endOfYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachWeekendOfYear\n * @category Year Helpers\n * @summary List all the Saturdays and Sundays in the year.\n *\n * @description\n * Get all the Saturdays and Sundays in the year.\n *\n * @param {Date|Number} date - the given year\n * @returns {Date[]} an array containing all the Saturdays and Sundays\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The passed date is invalid\n *\n * @example\n * // Lists all Saturdays and Sundays in the year\n * var result = eachWeekendOfYear(new Date(2020, 1, 1))\n * //=> [\n * // Sat Jan 03 2020 00:00:00,\n * // Sun Jan 04 2020 00:00:00,\n * // ...\n * // Sun Dec 27 2020 00:00:00\n * // ]\n * ]\n */\n\nexport default function eachWeekendOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var startDate = startOfYear(dirtyDate);\n if (isNaN(startDate)) throw new RangeError('The passed date is invalid');\n var endDate = endOfYear(dirtyDate);\n return eachWeekendOfInterval({\n start: startDate,\n end: endDate\n });\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name eachYearOfInterval\n * @category Interval Helpers\n * @summary Return the array of yearly timestamps within the specified time interval.\n *\n * @description\n * Return the array of yearly timestamps within the specified time interval.\n *\n * @param {Interval} interval - the interval. See [Interval]{@link docs/types/Interval}\n * @returns {Date[]} the array with starts of yearly timestamps from the month of the interval start to the month of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each year between 6 February 2014 and 10 August 2017:\n * var result = eachYearOfInterval({\n * start: new Date(2014, 1, 6),\n * end: new Date(2017, 7, 10)\n * })\n * //=> [\n * // Wed Jan 01 2014 00:00:00,\n * // Thu Jan 01 2015 00:00:00,\n * // Fri Jan 01 2016 00:00:00,\n * // Sun Jan 01 2017 00:00:00\n * // ]\n */\n\nexport default function eachYearOfInterval(dirtyInterval) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n currentDate.setMonth(0, 1);\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setFullYear(currentDate.getFullYear() + 1);\n }\n\n return dates;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDecade\n * @category Decade Helpers\n * @summary Return the end of a decade for the given date.\n *\n * @description\n * Return the end of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a decade\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // The end of a decade for 12 May 1984 00:00:00:\n * var result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))\n * //=> Dec 31 1989 23:59:59.999\n */\n\nexport default function endOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = 9 + Math.floor(year / 10) * 10;\n date.setFullYear(decade, 11, 31);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * var result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\n\nexport default function endOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(59, 59, 999);\n return date;\n}","import endOfWeek from '../endOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the end of an ISO week for the given date.\n *\n * @description\n * Return the end of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an ISO week for 2 September 2014 11:55:00:\n * var result = endOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return endOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the end of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the end of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `endOfISOYear` to `endOfISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `addWeekYears`.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of an ISO week-numbering year for 2 July 2005:\n * var result = endOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 23:59:59.999\n */\n\nexport default function endOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuaryOfNextYear);\n date.setMilliseconds(date.getMilliseconds() - 1);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * var result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\n\nexport default function endOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * var result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * var result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\n\nexport default function endOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(999);\n return date;\n}","import endOfDay from '../endOfDay/index.js';\n/**\n * @name endOfToday\n * @category Day Helpers\n * @summary Return the end of today.\n * @pure false\n *\n * @description\n * Return the end of today.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the end of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfToday()\n * //=> Mon Oct 6 2014 23:59:59.999\n */\n\nexport default function endOfToday() {\n return endOfDay(Date.now());\n}","/**\n * @name endOfTomorrow\n * @category Day Helpers\n * @summary Return the end of tomorrow.\n * @pure false\n *\n * @description\n * Return the end of tomorrow.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the end of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfTomorrow()\n * //=> Tue Oct 7 2014 23:59:59.999\n */\nexport default function endOfTomorrow() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n var date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * var result = endOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\n\nexport default function endOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","/**\n * @name endOfYesterday\n * @category Day Helpers\n * @summary Return the end of yesterday.\n * @pure false\n *\n * @description\n * Return the end of yesterday.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the end of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = endOfYesterday()\n * //=> Sun Oct 5 2014 23:59:59.999\n */\nexport default function endOfYesterday() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n var date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import compareAsc from '../compareAsc/index.js';\nimport differenceInMonths from '../differenceInMonths/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport toDate from '../toDate/index.js';\nimport cloneObject from '../_lib/cloneObject/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWords ` to `formatDistance`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWords(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 11, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n *\n * // v2.0.0 onward\n *\n * formatDistance(\n * new Date(1986, 3, 4, 11, 32, 0),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { addSuffix: true }\n * ) //=> 'in about 1 hour'\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * var result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', null, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport toDate from '../toDate/index.js';\nimport differenceInSeconds from '../differenceInSeconds/index.js';\nimport cloneObject from '../_lib/cloneObject/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_YEAR = 525600;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * var result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * var result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * var result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * var result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * var result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = roundingMethodFn((seconds - offsetInSeconds) / 60);\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (minutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (minutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(minutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import distanceInWords from '../formatDistance/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsToNow ` to `formatDistanceToNow`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceToNow(new Date(2014, 6, 2), { addSuffix: true })\n * //=> 'in 6 months'\n * ```\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistanceToNow(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), dirtyOptions);\n}","import distanceInStrictWords from '../formatDistanceStrict/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return distanceInStrictWords(dirtyDate, Date.now(), dirtyOptions);\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time with time zone, or both.\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\n\nexport default function formatISO(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var format = options.format == null ? 'extended' : String(options.format);\n var representation = options.representation == null ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var tzOffset = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n // Add the timezone.\n var offset = originalDate.getTimezoneOffset();\n\n if (offset !== 0) {\n var absoluteOffset = Math.abs(offset);\n var hourOffset = addLeadingZeros(Math.floor(absoluteOffset / 60), 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = offset < 0 ? '+' : '-';\n tzOffset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n tzOffset = 'Z';\n }\n\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with 'T'\n\n var separator = result === '' ? '' : 'T'; // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n\n var time = [hour, minute, second].join(timeDelimiter); // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(time).concat(tzOffset);\n }\n\n return result;\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\n/**\n * @name formatISO9075\n * @category Common Helpers\n * @summary Format the date according to the ISO 9075 standard (https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_get-format).\n *\n * @description\n * Return the formatted date string in ISO 9075 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {'extended'|'basic'} [options.format='extended'] - if 'basic', hide delimiters between date and time values.\n * @param {'complete'|'date'|'time'} [options.representation='complete'] - format date, time, or both.\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.format` must be 'extended' or 'basic'\n * @throws {RangeError} `options.represenation` must be 'date', 'time' or 'complete'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18 19:00:52'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075, short format:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918 190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, date only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 9075 format, time only:\n * const result = formatISO9075(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52'\n */\n\nexport default function formatISO9075(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var format = options.format == null ? 'extended' : String(options.format);\n var representation = options.representation == null ? 'complete' : String(options.representation);\n\n if (format !== 'extended' && format !== 'basic') {\n throw new RangeError(\"format must be 'extended' or 'basic'\");\n }\n\n if (representation !== 'date' && representation !== 'time' && representation !== 'complete') {\n throw new RangeError(\"representation must be 'date', 'time', or 'complete'\");\n }\n\n var result = '';\n var dateDelimiter = format === 'extended' ? '-' : '';\n var timeDelimiter = format === 'extended' ? ':' : ''; // Representation is either 'date' or 'complete'\n\n if (representation !== 'time') {\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = addLeadingZeros(originalDate.getFullYear(), 4); // yyyyMMdd or yyyy-MM-dd.\n\n result = \"\".concat(year).concat(dateDelimiter).concat(month).concat(dateDelimiter).concat(day);\n } // Representation is either 'time' or 'complete'\n\n\n if (representation !== 'date') {\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2); // If there's also date, separate it with time with a space\n\n var separator = result === '' ? '' : ' '; // HHmmss or HH:mm:ss.\n\n result = \"\".concat(result).concat(separator).concat(hour).concat(timeDelimiter).concat(minute).concat(timeDelimiter).concat(second);\n }\n\n return result;\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name formatRFC3339\n * @category Common Helpers\n * @summary Format the date according to the ISO 3339 standard (https://tools.ietf.org/html/rfc3339#section-5.6).\n *\n * @description\n * Return the formatted date string in ISO 3339 format. Options may be passed to control the parts and notations of the date.\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {0|1|2|3} [options.fractionDigits=0] - number of digits after the decimal point after seconds\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.fractionDigits` must be between 0 and 3\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format:\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format, 2 digits of second fraction:\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), { fractionDigits: 2 })\n * //=> '2019-09-18T19:00:52.23Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 3339 format, 3 digits of second fraction\n * const result = formatRFC3339(new Date(2019, 8, 18, 19, 0, 52, 234), { fractionDigits: 3 })\n * //=> '2019-09-18T19:00:52.234Z'\n */\n\nexport default function formatRFC3339(dirtyDate, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 arguments required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var options = dirtyOptions || {};\n var fractionDigits = options.fractionDigits == null ? 0 : toInteger(options.fractionDigits); // Test if fractionDigits is between 0 and 3 _and_ is not NaN\n\n if (!(fractionDigits >= 0 && fractionDigits <= 3)) {\n throw new RangeError('fractionDigits must be between 0 and 3 inclusively');\n }\n\n var day = addLeadingZeros(originalDate.getDate(), 2);\n var month = addLeadingZeros(originalDate.getMonth() + 1, 2);\n var year = originalDate.getFullYear();\n var hour = addLeadingZeros(originalDate.getHours(), 2);\n var minute = addLeadingZeros(originalDate.getMinutes(), 2);\n var second = addLeadingZeros(originalDate.getSeconds(), 2);\n var fractionalSecond = '';\n\n if (fractionDigits > 0) {\n var milliseconds = originalDate.getMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, fractionDigits - 3));\n fractionalSecond = '.' + addLeadingZeros(fractionalSeconds, fractionDigits);\n }\n\n var offset = '';\n var tzOffset = originalDate.getTimezoneOffset();\n\n if (tzOffset !== 0) {\n var absoluteOffset = Math.abs(tzOffset);\n var hourOffset = addLeadingZeros(absoluteOffset / 60, 2);\n var minuteOffset = addLeadingZeros(absoluteOffset % 60, 2); // If less than 0, the sign is +, because it is ahead of time.\n\n var sign = tzOffset < 0 ? '+' : '-';\n offset = \"\".concat(sign).concat(hourOffset, \":\").concat(minuteOffset);\n } else {\n offset = 'Z';\n }\n\n return \"\".concat(year, \"-\").concat(month, \"-\").concat(day, \"T\").concat(hour, \":\").concat(minute, \":\").concat(second).concat(fractionalSecond).concat(offset);\n}","import toDate from '../toDate/index.js';\nimport isValid from '../isValid/index.js';\nimport addLeadingZeros from '../_lib/addLeadingZeros/index.js';\nvar days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n/**\n * @name formatRFC7231\n * @category Common Helpers\n * @summary Format the date according to the RFC 7231 standard (https://tools.ietf.org/html/rfc7231#section-7.1.1.1).\n *\n * @description\n * Return the formatted date string in RFC 7231 format.\n * The result will always be in UTC timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {String} the formatted date string\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in RFC 7231 format:\n * const result = formatRFC7231(new Date(2019, 8, 18, 19, 0, 52))\n * //=> 'Wed, 18 Sep 2019 19:00:52 GMT'\n */\n\nexport default function formatRFC7231(dirtyDate) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 arguments required, but only \".concat(arguments.length, \" present\"));\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n var dayName = days[originalDate.getUTCDay()];\n var dayOfMonth = addLeadingZeros(originalDate.getUTCDate(), 2);\n var monthName = months[originalDate.getUTCMonth()];\n var year = originalDate.getUTCFullYear();\n var hour = addLeadingZeros(originalDate.getUTCHours(), 2);\n var minute = addLeadingZeros(originalDate.getUTCMinutes(), 2);\n var second = addLeadingZeros(originalDate.getUTCSeconds(), 2); // Result variables.\n\n return \"\".concat(dayName, \", \").concat(dayOfMonth, \" \").concat(monthName, \" \").concat(year, \" \").concat(hour, \":\").concat(minute, \":\").concat(second, \" GMT\");\n}","import differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport format from '../format/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name formatRelative\n * @category Common Helpers\n * @summary Represent the date in words relative to the given base date.\n *\n * @description\n * Represent the date in words relative to the given base date.\n *\n * | Distance to the base date | Result |\n * |---------------------------|---------------------------|\n * | Previous 6 days | last Sunday at 04:30 AM |\n * | Last day | yesterday at 04:30 AM |\n * | Same day | today at 04:30 AM |\n * | Next day | tomorrow at 04:30 AM |\n * | Next 6 days | Sunday at 04:30 AM |\n * | Other | 12/31/2017 |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to format\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {String} the date in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.locale` must contain `formatRelative` property\n */\n\nexport default function formatRelative(dirtyDate, dirtyBaseDate, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var baseDate = toDate(dirtyBaseDate);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n if (!locale.formatRelative) {\n throw new RangeError('locale must contain formatRelative property');\n }\n\n var diff = differenceInCalendarDays(date, baseDate);\n\n if (isNaN(diff)) {\n throw new RangeError('Invalid time value');\n }\n\n var token;\n\n if (diff < -6) {\n token = 'other';\n } else if (diff < -1) {\n token = 'lastWeek';\n } else if (diff < 0) {\n token = 'yesterday';\n } else if (diff < 1) {\n token = 'today';\n } else if (diff < 2) {\n token = 'tomorrow';\n } else if (diff < 7) {\n token = 'nextWeek';\n } else {\n token = 'other';\n }\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var utcBaseDate = subMilliseconds(baseDate, getTimezoneOffsetInMilliseconds(baseDate));\n var formatStr = locale.formatRelative(token, utcDate, utcBaseDate, options);\n return format(date, formatStr, options);\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name fromUnixTime\n * @category Timestamp Helpers\n * @summary Create a date from a Unix timestamp.\n *\n * @description\n * Create a date from a Unix timestamp.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Number} unixTime - the given Unix timestamp\n * @returns {Date} the date\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Create the date 29 February 2012 11:45:05:\n * var result = fromUnixTime(1330515905)\n * //=> Wed Feb 29 2012 11:45:05\n */\n\nexport default function fromUnixTime(dirtyUnixTime) {\n requiredArgs(1, arguments);\n var unixTime = toInteger(dirtyUnixTime);\n return toDate(unixTime * 1000);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * var result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\n\nexport default function getDate(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = date.getDate();\n return dayOfMonth;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * var result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toDate from '../toDate/index.js';\nimport startOfYear from '../startOfYear/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * var result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\n\nexport default function getDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = differenceInCalendarDays(date, startOfYear(date));\n var dayOfYear = diff + 1;\n return dayOfYear;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toDate from '../toDate/index.js';\nimport isLeapYear from '../isLeapYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInYear\n * @category Year Helpers\n * @summary Get the number of days in a year of the given date.\n *\n * @description\n * Get the number of days in a year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in 2012?\n * var result = getDaysInYear(new Date(2012, 0, 1))\n * //=> 366\n */\n\nexport default function getDaysInYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n\n if (isNaN(date)) {\n return NaN;\n }\n\n return isLeapYear(date) ? 366 : 365;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDecade\n * @category Decade Helpers\n * @summary Get the decade of the given date.\n *\n * @description\n * Get the decade of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year of decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which decade belongs 27 November 1942?\n * var result = getDecade(new Date(1942, 10, 27))\n * //=> 1940\n */\n\nexport default function getDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = Math.floor(year / 10) * 10;\n return decade;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * var result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the day of ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * var result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\n\nexport default function getISODay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}","import toDate from '../toDate/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from '../toDate/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * var result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeeksInYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * @description\n * Get the number of weeks in an ISO week-numbering year of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of ISO weeks in a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many weeks are in ISO week-numbering year 2015?\n * var result = getISOWeeksInYear(new Date(2015, 1, 11))\n * //=> 53\n */\n\nexport default function getISOWeeksInYear(dirtyDate) {\n requiredArgs(1, arguments);\n var thisYear = startOfISOWeekYear(dirtyDate);\n var nextYear = startOfISOWeekYear(addWeeks(thisYear, 60));\n var diff = nextYear.valueOf() - thisYear.valueOf(); // Round the number of weeks to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMilliseconds\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the milliseconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * var result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\n\nexport default function getMilliseconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = date.getMilliseconds();\n return milliseconds;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * var result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * var result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 24 * 60 * 60 * 1000;\n/**\n * @name getOverlappingDaysInIntervals\n * @category Interval Helpers\n * @summary Get the number of days that overlap in two time intervals\n *\n * @description\n * Get the number of days that overlap in two time intervals\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getOverlappingDaysInRanges` to `getOverlappingDaysInIntervals`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * getOverlappingDaysInRanges(\n * new Date(2014, 0, 10), new Date(2014, 0, 20),\n * new Date(2014, 0, 17), new Date(2014, 0, 21)\n * )\n *\n * // v2.0.0 onward\n *\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * ```\n *\n * @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link docs/Interval}\n * @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link docs/Interval}\n * @returns {Number} the number of days that overlap in two time intervals\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For overlapping time intervals adds 1 for each started overlapping day:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }\n * )\n * //=> 3\n *\n * @example\n * // For non-overlapping time intervals returns 0:\n * getOverlappingDaysInIntervals(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },\n * { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }\n * )\n * //=> 0\n */\n\nexport default function getOverlappingDaysInIntervals(dirtyIntervalLeft, dirtyIntervalRight) {\n requiredArgs(2, arguments);\n var intervalLeft = dirtyIntervalLeft || {};\n var intervalRight = dirtyIntervalRight || {};\n var leftStartTime = toDate(intervalLeft.start).getTime();\n var leftEndTime = toDate(intervalLeft.end).getTime();\n var rightStartTime = toDate(intervalRight.start).getTime();\n var rightEndTime = toDate(intervalRight.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var isOverlapping = leftStartTime < rightEndTime && rightStartTime < leftEndTime;\n\n if (!isOverlapping) {\n return 0;\n }\n\n var overlapStartDate = rightStartTime < leftStartTime ? leftStartTime : rightStartTime;\n var overlapEndDate = rightEndTime > leftEndTime ? leftEndTime : rightEndTime;\n var differenceInMs = overlapEndDate - overlapStartDate;\n return Math.ceil(differenceInMs / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getQuarter\n * @category Quarter Helpers\n * @summary Get the year quarter of the given date.\n *\n * @description\n * Get the year quarter of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which quarter is 2 July 2014?\n * var result = getQuarter(new Date(2014, 6, 2))\n * //=> 3\n */\n\nexport default function getQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var quarter = Math.floor(date.getMonth() / 3) + 1;\n return quarter;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * var result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import getTime from '../getTime/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * var result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\n\nexport default function getUnixTime(dirtyDate) {\n requiredArgs(1, arguments);\n return Math.floor(getTime(dirtyDate) / 1000);\n}","import startOfWeek from '../startOfWeek/index.js';\nimport startOfWeekYear from '../startOfWeekYear/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * var result = getISOWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * var result = getISOWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\n\nexport default function getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek(date, options).getTime() - startOfWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getDate from '../getDate/index.js';\nimport getDay from '../getDay/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeekOfMonth\n * @category Week Helpers\n * @summary Get the week of the month of the given date.\n *\n * @description\n * Get the week of the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the week of month\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Which week of the month is 9 November 2017?\n * var result = getWeekOfMonth(new Date(2017, 10, 9))\n * //=> 2\n */\n\nexport default function getWeekOfMonth(date, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var currentDayOfMonth = getDate(date);\n\n if (isNaN(currentDayOfMonth)) {\n return currentDayOfMonth;\n }\n\n var startWeekDay = getDay(startOfMonth(date));\n var lastDayOfFirstWeek = 0;\n\n if (startWeekDay >= weekStartsOn) {\n lastDayOfFirstWeek = weekStartsOn + 7 - startWeekDay;\n } else {\n lastDayOfFirstWeek = weekStartsOn - startWeekDay;\n }\n\n var weekNumber = 1;\n\n if (currentDayOfMonth > lastDayOfFirstWeek) {\n var remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;\n weekNumber = weekNumber + Math.ceil(remainingDaysAfterFirstWeek / 7);\n }\n\n return weekNumber;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Number} the local week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * var result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * var result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * var result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\n\nexport default function getWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import differenceInCalendarWeeks from '../differenceInCalendarWeeks/index.js';\nimport lastDayOfMonth from '../lastDayOfMonth/index.js';\nimport startOfMonth from '../startOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getWeeksInMonth\n * @category Week Helpers\n * @summary Get the number of calendar weeks a month spans.\n *\n * @description\n * Get the number of calendar weeks the month in the given date spans.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Number} the number of calendar weeks\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // How many calendar weeks does February 2015 span?\n * var result = getWeeksInMonth(new Date(2015, 1, 8))\n * //=> 4\n *\n * @example\n * // If the week starts on Monday,\n * // how many calendar weeks does July 2017 span?\n * var result = getWeeksInMonth(new Date(2017, 6, 5), { weekStartsOn: 1 })\n * //=> 6\n */\n\nexport default function getWeeksInMonth(date, options) {\n requiredArgs(1, arguments);\n return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * var result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year;\n}","// This file is generated automatically by `scripts/build/indices.js`. Please, don't change it.\nexport { default as add } from './add/index.js';\nexport { default as addBusinessDays } from './addBusinessDays/index.js';\nexport { default as addDays } from './addDays/index.js';\nexport { default as addHours } from './addHours/index.js';\nexport { default as addISOWeekYears } from './addISOWeekYears/index.js';\nexport { default as addMilliseconds } from './addMilliseconds/index.js';\nexport { default as addMinutes } from './addMinutes/index.js';\nexport { default as addMonths } from './addMonths/index.js';\nexport { default as addQuarters } from './addQuarters/index.js';\nexport { default as addSeconds } from './addSeconds/index.js';\nexport { default as addWeeks } from './addWeeks/index.js';\nexport { default as addYears } from './addYears/index.js';\nexport { default as areIntervalsOverlapping } from './areIntervalsOverlapping/index.js';\nexport { default as closestIndexTo } from './closestIndexTo/index.js';\nexport { default as closestTo } from './closestTo/index.js';\nexport { default as compareAsc } from './compareAsc/index.js';\nexport { default as compareDesc } from './compareDesc/index.js';\nexport { default as differenceInBusinessDays } from './differenceInBusinessDays/index.js';\nexport { default as differenceInCalendarDays } from './differenceInCalendarDays/index.js';\nexport { default as differenceInCalendarISOWeekYears } from './differenceInCalendarISOWeekYears/index.js';\nexport { default as differenceInCalendarISOWeeks } from './differenceInCalendarISOWeeks/index.js';\nexport { default as differenceInCalendarMonths } from './differenceInCalendarMonths/index.js';\nexport { default as differenceInCalendarQuarters } from './differenceInCalendarQuarters/index.js';\nexport { default as differenceInCalendarWeeks } from './differenceInCalendarWeeks/index.js';\nexport { default as differenceInCalendarYears } from './differenceInCalendarYears/index.js';\nexport { default as differenceInDays } from './differenceInDays/index.js';\nexport { default as differenceInHours } from './differenceInHours/index.js';\nexport { default as differenceInISOWeekYears } from './differenceInISOWeekYears/index.js';\nexport { default as differenceInMilliseconds } from './differenceInMilliseconds/index.js';\nexport { default as differenceInMinutes } from './differenceInMinutes/index.js';\nexport { default as differenceInMonths } from './differenceInMonths/index.js';\nexport { default as differenceInQuarters } from './differenceInQuarters/index.js';\nexport { default as differenceInSeconds } from './differenceInSeconds/index.js';\nexport { default as differenceInWeeks } from './differenceInWeeks/index.js';\nexport { default as differenceInYears } from './differenceInYears/index.js';\nexport { default as eachDayOfInterval } from './eachDayOfInterval/index.js';\nexport { default as eachMonthOfInterval } from './eachMonthOfInterval/index.js';\nexport { default as eachWeekOfInterval } from './eachWeekOfInterval/index.js';\nexport { default as eachWeekendOfInterval } from './eachWeekendOfInterval/index.js';\nexport { default as eachWeekendOfMonth } from './eachWeekendOfMonth/index.js';\nexport { default as eachWeekendOfYear } from './eachWeekendOfYear/index.js';\nexport { default as eachYearOfInterval } from './eachYearOfInterval/index.js';\nexport { default as endOfDay } from './endOfDay/index.js';\nexport { default as endOfDecade } from './endOfDecade/index.js';\nexport { default as endOfHour } from './endOfHour/index.js';\nexport { default as endOfISOWeek } from './endOfISOWeek/index.js';\nexport { default as endOfISOWeekYear } from './endOfISOWeekYear/index.js';\nexport { default as endOfMinute } from './endOfMinute/index.js';\nexport { default as endOfMonth } from './endOfMonth/index.js';\nexport { default as endOfQuarter } from './endOfQuarter/index.js';\nexport { default as endOfSecond } from './endOfSecond/index.js';\nexport { default as endOfToday } from './endOfToday/index.js';\nexport { default as endOfTomorrow } from './endOfTomorrow/index.js';\nexport { default as endOfWeek } from './endOfWeek/index.js';\nexport { default as endOfYear } from './endOfYear/index.js';\nexport { default as endOfYesterday } from './endOfYesterday/index.js';\nexport { default as format } from './format/index.js';\nexport { default as formatDistance } from './formatDistance/index.js';\nexport { default as formatDistanceStrict } from './formatDistanceStrict/index.js';\nexport { default as formatDistanceToNow } from './formatDistanceToNow/index.js';\nexport { default as formatDistanceToNowStrict } from './formatDistanceToNowStrict/index.js';\nexport { default as formatISO } from './formatISO/index.js';\nexport { default as formatISO9075 } from './formatISO9075/index.js';\nexport { default as formatRFC3339 } from './formatRFC3339/index.js';\nexport { default as formatRFC7231 } from './formatRFC7231/index.js';\nexport { default as formatRelative } from './formatRelative/index.js';\nexport { default as fromUnixTime } from './fromUnixTime/index.js';\nexport { default as getDate } from './getDate/index.js';\nexport { default as getDay } from './getDay/index.js';\nexport { default as getDayOfYear } from './getDayOfYear/index.js';\nexport { default as getDaysInMonth } from './getDaysInMonth/index.js';\nexport { default as getDaysInYear } from './getDaysInYear/index.js';\nexport { default as getDecade } from './getDecade/index.js';\nexport { default as getHours } from './getHours/index.js';\nexport { default as getISODay } from './getISODay/index.js';\nexport { default as getISOWeek } from './getISOWeek/index.js';\nexport { default as getISOWeekYear } from './getISOWeekYear/index.js';\nexport { default as getISOWeeksInYear } from './getISOWeeksInYear/index.js';\nexport { default as getMilliseconds } from './getMilliseconds/index.js';\nexport { default as getMinutes } from './getMinutes/index.js';\nexport { default as getMonth } from './getMonth/index.js';\nexport { default as getOverlappingDaysInIntervals } from './getOverlappingDaysInIntervals/index.js';\nexport { default as getQuarter } from './getQuarter/index.js';\nexport { default as getSeconds } from './getSeconds/index.js';\nexport { default as getTime } from './getTime/index.js';\nexport { default as getUnixTime } from './getUnixTime/index.js';\nexport { default as getWeek } from './getWeek/index.js';\nexport { default as getWeekOfMonth } from './getWeekOfMonth/index.js';\nexport { default as getWeekYear } from './getWeekYear/index.js';\nexport { default as getWeeksInMonth } from './getWeeksInMonth/index.js';\nexport { default as getYear } from './getYear/index.js';\nexport { default as isAfter } from './isAfter/index.js';\nexport { default as isBefore } from './isBefore/index.js';\nexport { default as isDate } from './isDate/index.js';\nexport { default as isEqual } from './isEqual/index.js';\nexport { default as isExists } from './isExists/index.js';\nexport { default as isFirstDayOfMonth } from './isFirstDayOfMonth/index.js';\nexport { default as isFriday } from './isFriday/index.js';\nexport { default as isFuture } from './isFuture/index.js';\nexport { default as isLastDayOfMonth } from './isLastDayOfMonth/index.js';\nexport { default as isLeapYear } from './isLeapYear/index.js';\nexport { default as isMonday } from './isMonday/index.js';\nexport { default as isPast } from './isPast/index.js';\nexport { default as isSameDay } from './isSameDay/index.js';\nexport { default as isSameHour } from './isSameHour/index.js';\nexport { default as isSameISOWeek } from './isSameISOWeek/index.js';\nexport { default as isSameISOWeekYear } from './isSameISOWeekYear/index.js';\nexport { default as isSameMinute } from './isSameMinute/index.js';\nexport { default as isSameMonth } from './isSameMonth/index.js';\nexport { default as isSameQuarter } from './isSameQuarter/index.js';\nexport { default as isSameSecond } from './isSameSecond/index.js';\nexport { default as isSameWeek } from './isSameWeek/index.js';\nexport { default as isSameYear } from './isSameYear/index.js';\nexport { default as isSaturday } from './isSaturday/index.js';\nexport { default as isSunday } from './isSunday/index.js';\nexport { default as isThisHour } from './isThisHour/index.js';\nexport { default as isThisISOWeek } from './isThisISOWeek/index.js';\nexport { default as isThisMinute } from './isThisMinute/index.js';\nexport { default as isThisMonth } from './isThisMonth/index.js';\nexport { default as isThisQuarter } from './isThisQuarter/index.js';\nexport { default as isThisSecond } from './isThisSecond/index.js';\nexport { default as isThisWeek } from './isThisWeek/index.js';\nexport { default as isThisYear } from './isThisYear/index.js';\nexport { default as isThursday } from './isThursday/index.js';\nexport { default as isToday } from './isToday/index.js';\nexport { default as isTomorrow } from './isTomorrow/index.js';\nexport { default as isTuesday } from './isTuesday/index.js';\nexport { default as isValid } from './isValid/index.js';\nexport { default as isWednesday } from './isWednesday/index.js';\nexport { default as isWeekend } from './isWeekend/index.js';\nexport { default as isWithinInterval } from './isWithinInterval/index.js';\nexport { default as isYesterday } from './isYesterday/index.js';\nexport { default as lastDayOfDecade } from './lastDayOfDecade/index.js';\nexport { default as lastDayOfISOWeek } from './lastDayOfISOWeek/index.js';\nexport { default as lastDayOfISOWeekYear } from './lastDayOfISOWeekYear/index.js';\nexport { default as lastDayOfMonth } from './lastDayOfMonth/index.js';\nexport { default as lastDayOfQuarter } from './lastDayOfQuarter/index.js';\nexport { default as lastDayOfWeek } from './lastDayOfWeek/index.js';\nexport { default as lastDayOfYear } from './lastDayOfYear/index.js';\nexport { default as lightFormat } from './lightFormat/index.js';\nexport { default as max } from './max/index.js';\nexport { default as min } from './min/index.js';\nexport { default as parse } from './parse/index.js';\nexport { default as parseISO } from './parseISO/index.js';\nexport { default as parseJSON } from './parseJSON/index.js';\nexport { default as roundToNearestMinutes } from './roundToNearestMinutes/index.js';\nexport { default as set } from './set/index.js';\nexport { default as setDate } from './setDate/index.js';\nexport { default as setDay } from './setDay/index.js';\nexport { default as setDayOfYear } from './setDayOfYear/index.js';\nexport { default as setHours } from './setHours/index.js';\nexport { default as setISODay } from './setISODay/index.js';\nexport { default as setISOWeek } from './setISOWeek/index.js';\nexport { default as setISOWeekYear } from './setISOWeekYear/index.js';\nexport { default as setMilliseconds } from './setMilliseconds/index.js';\nexport { default as setMinutes } from './setMinutes/index.js';\nexport { default as setMonth } from './setMonth/index.js';\nexport { default as setQuarter } from './setQuarter/index.js';\nexport { default as setSeconds } from './setSeconds/index.js';\nexport { default as setWeek } from './setWeek/index.js';\nexport { default as setWeekYear } from './setWeekYear/index.js';\nexport { default as setYear } from './setYear/index.js';\nexport { default as startOfDay } from './startOfDay/index.js';\nexport { default as startOfDecade } from './startOfDecade/index.js';\nexport { default as startOfHour } from './startOfHour/index.js';\nexport { default as startOfISOWeek } from './startOfISOWeek/index.js';\nexport { default as startOfISOWeekYear } from './startOfISOWeekYear/index.js';\nexport { default as startOfMinute } from './startOfMinute/index.js';\nexport { default as startOfMonth } from './startOfMonth/index.js';\nexport { default as startOfQuarter } from './startOfQuarter/index.js';\nexport { default as startOfSecond } from './startOfSecond/index.js';\nexport { default as startOfToday } from './startOfToday/index.js';\nexport { default as startOfTomorrow } from './startOfTomorrow/index.js';\nexport { default as startOfWeek } from './startOfWeek/index.js';\nexport { default as startOfWeekYear } from './startOfWeekYear/index.js';\nexport { default as startOfYear } from './startOfYear/index.js';\nexport { default as startOfYesterday } from './startOfYesterday/index.js';\nexport { default as sub } from './sub/index.js';\nexport { default as subBusinessDays } from './subBusinessDays/index.js';\nexport { default as subDays } from './subDays/index.js';\nexport { default as subHours } from './subHours/index.js';\nexport { default as subISOWeekYears } from './subISOWeekYears/index.js';\nexport { default as subMilliseconds } from './subMilliseconds/index.js';\nexport { default as subMinutes } from './subMinutes/index.js';\nexport { default as subMonths } from './subMonths/index.js';\nexport { default as subQuarters } from './subQuarters/index.js';\nexport { default as subSeconds } from './subSeconds/index.js';\nexport { default as subWeeks } from './subWeeks/index.js';\nexport { default as subYears } from './subYears/index.js';\nexport { default as toDate } from './toDate/index.js';\nexport * from './constants/index.js';","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * var result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * var result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * var result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * var result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","/**\n * @name isExists\n * @category Common Helpers\n * @summary Is the given date exists?\n *\n * @description\n * Checks if the given arguments convert to an existing date.\n *\n * @param {Number} year of the date to check\n * @param {Number} month of the date to check\n * @param {Number} day of the date to check\n * @returns {Boolean} the date exists\n * @throws {TypeError} 3 arguments required\n *\n * @example\n * // For the valid date:\n * var result = isExists(2018, 0, 31)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isExists(2018, 1, 31)\n * //=> false\n */\nexport default function isExists(year, month, day) {\n if (arguments.length < 3) {\n throw new TypeError('3 argument required, but only ' + arguments.length + ' present');\n }\n\n var date = new Date(year, month, day);\n return date.getFullYear() === year && date.getMonth() === month && date.getDate() === day;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isFirstDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the first day of a month?\n *\n * @description\n * Is the given date the first day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the first day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 1 September 2014 the first day of a month?\n * var result = isFirstDayOfMonth(new Date(2014, 8, 1))\n * //=> true\n */\n\nexport default function isFirstDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDate() === 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isFriday\n * @category Weekday Helpers\n * @summary Is the given date Friday?\n *\n * @description\n * Is the given date Friday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Friday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 26 September 2014 Friday?\n * var result = isFriday(new Date(2014, 8, 26))\n * //=> true\n */\n\nexport default function isFriday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 5;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isFuture\n * @category Common Helpers\n * @summary Is the given date in the future?\n * @pure false\n *\n * @description\n * Is the given date in the future?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the future\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 31 December 2014 in the future?\n * var result = isFuture(new Date(2014, 11, 31))\n * //=> true\n */\n\nexport default function isFuture(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() > Date.now();\n}","import toDate from '../toDate/index.js';\nimport endOfDay from '../endOfDay/index.js';\nimport endOfMonth from '../endOfMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isLeapYear\n * @category Year Helpers\n * @summary Is the given date in the leap year?\n *\n * @description\n * Is the given date in the leap year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the leap year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 1 September 2012 in the leap year?\n * var result = isLeapYear(new Date(2012, 8, 1))\n * //=> true\n */\n\nexport default function isLeapYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isMonday\n * @category Weekday Helpers\n * @summary Is the given date Monday?\n *\n * @description\n * Is the given date Monday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Monday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 22 September 2014 Monday?\n * var result = isMonday(new Date(2014, 8, 22))\n * //=> true\n */\n\nexport default function isMonday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 1;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isPast\n * @category Common Helpers\n * @summary Is the given date in the past?\n * @pure false\n *\n * @description\n * Is the given date in the past?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in the past\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 2 July 2014 in the past?\n * var result = isPast(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isPast(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getTime() < Date.now();\n}","import startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import startOfHour from '../startOfHour/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameHour\n * @category Hour Helpers\n * @summary Are the given dates in the same hour?\n *\n * @description\n * Are the given dates in the same hour?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same hour\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:00:00 and 4 September 06:30:00 in the same hour?\n * var result = isSameHour(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 6, 30))\n * //=> true\n */\n\nexport default function isSameHour(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfHour = startOfHour(dirtyDateLeft);\n var dateRightStartOfHour = startOfHour(dirtyDateRight);\n return dateLeftStartOfHour.getTime() === dateRightStartOfHour.getTime();\n}","import isSameWeek from '../isSameWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameISOWeek\n * @category ISO Week Helpers\n * @summary Are the given dates in the same ISO week?\n *\n * @description\n * Are the given dates in the same ISO week?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 September 2014 and 7 September 2014 in the same ISO week?\n * var result = isSameISOWeek(new Date(2014, 8, 1), new Date(2014, 8, 7))\n * //=> true\n */\n\nexport default function isSameISOWeek(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n return isSameWeek(dirtyDateLeft, dirtyDateRight, {\n weekStartsOn: 1\n });\n}","import startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Are the given dates in the same ISO week-numbering year?\n *\n * @description\n * Are the given dates in the same ISO week-numbering year?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isSameISOYear` to `isSameISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same ISO week-numbering year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 29 December 2003 and 2 January 2005 in the same ISO week-numbering year?\n * var result = isSameISOWeekYear(new Date(2003, 11, 29), new Date(2005, 0, 2))\n * //=> true\n */\n\nexport default function isSameISOWeekYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfYear = startOfISOWeekYear(dirtyDateLeft);\n var dateRightStartOfYear = startOfISOWeekYear(dirtyDateRight);\n return dateLeftStartOfYear.getTime() === dateRightStartOfYear.getTime();\n}","import startOfMinute from '../startOfMinute/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameMinute\n * @category Minute Helpers\n * @summary Are the given dates in the same minute?\n *\n * @description\n * Are the given dates in the same minute?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same minute\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:30:00 and 4 September 2014 06:30:15\n * // in the same minute?\n * var result = isSameMinute(\n * new Date(2014, 8, 4, 6, 30),\n * new Date(2014, 8, 4, 6, 30, 15)\n * )\n * //=> true\n */\n\nexport default function isSameMinute(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfMinute = startOfMinute(dirtyDateLeft);\n var dateRightStartOfMinute = startOfMinute(dirtyDateRight);\n return dateLeftStartOfMinute.getTime() === dateRightStartOfMinute.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month?\n *\n * @description\n * Are the given dates in the same month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same month\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * var result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameMonth(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();\n}","import startOfQuarter from '../startOfQuarter/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameQuarter\n * @category Quarter Helpers\n * @summary Are the given dates in the same year quarter?\n *\n * @description\n * Are the given dates in the same year quarter?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same quarter\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 1 January 2014 and 8 March 2014 in the same quarter?\n * var result = isSameQuarter(new Date(2014, 0, 1), new Date(2014, 2, 8))\n * //=> true\n */\n\nexport default function isSameQuarter(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfQuarter = startOfQuarter(dirtyDateLeft);\n var dateRightStartOfQuarter = startOfQuarter(dirtyDateRight);\n return dateLeftStartOfQuarter.getTime() === dateRightStartOfQuarter.getTime();\n}","import startOfSecond from '../startOfSecond/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameSecond\n * @category Second Helpers\n * @summary Are the given dates in the same second?\n *\n * @description\n * Are the given dates in the same second?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same second\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500\n * // in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n */\n\nexport default function isSameSecond(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft);\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight);\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime();\n}","import startOfWeek from '../startOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week?\n *\n * @description\n * Are the given dates in the same week?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the dates are in the same week\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * var result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n * weekStartsOn: 1\n * })\n * //=> false\n */\n\nexport default function isSameWeek(dirtyDateLeft, dirtyDateRight, dirtyOptions) {\n requiredArgs(2, arguments);\n var dateLeftStartOfWeek = startOfWeek(dirtyDateLeft, dirtyOptions);\n var dateRightStartOfWeek = startOfWeek(dirtyDateRight, dirtyOptions);\n return dateLeftStartOfWeek.getTime() === dateRightStartOfWeek.getTime();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * var result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSaturday\n * @category Weekday Helpers\n * @summary Is the given date Saturday?\n *\n * @description\n * Is the given date Saturday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Saturday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 27 September 2014 Saturday?\n * var result = isSaturday(new Date(2014, 8, 27))\n * //=> true\n */\n\nexport default function isSaturday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 6;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isSunday\n * @category Weekday Helpers\n * @summary Is the given date Sunday?\n *\n * @description\n * Is the given date Sunday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 21 September 2014 Sunday?\n * var result = isSunday(new Date(2014, 8, 21))\n * //=> true\n */\n\nexport default function isSunday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 0;\n}","import isSameHour from '../isSameHour/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisHour\n * @category Hour Helpers\n * @summary Is the given date in the same hour as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same hour as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:00:00 in this hour?\n * var result = isThisHour(new Date(2014, 8, 25, 18))\n * //=> true\n */\n\nexport default function isThisHour(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameHour(Date.now(), dirtyDate);\n}","import isSameISOWeek from '../isSameISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisISOWeek\n * @category ISO Week Helpers\n * @summary Is the given date in the same ISO week as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same ISO week as the current date?\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 22 September 2014 in this ISO week?\n * var result = isThisISOWeek(new Date(2014, 8, 22))\n * //=> true\n */\n\nexport default function isThisISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameISOWeek(dirtyDate, Date.now());\n}","import isSameMinute from '../isSameMinute/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisMinute\n * @category Minute Helpers\n * @summary Is the given date in the same minute as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same minute as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:00 in this minute?\n * var result = isThisMinute(new Date(2014, 8, 25, 18, 30))\n * //=> true\n */\n\nexport default function isThisMinute(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameMinute(Date.now(), dirtyDate);\n}","import isSameMonth from '../isSameMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisMonth\n * @category Month Helpers\n * @summary Is the given date in the same month as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same month as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 15 September 2014 in this month?\n * var result = isThisMonth(new Date(2014, 8, 15))\n * //=> true\n */\n\nexport default function isThisMonth(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameMonth(Date.now(), dirtyDate);\n}","import isSameQuarter from '../isSameQuarter/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisQuarter\n * @category Quarter Helpers\n * @summary Is the given date in the same quarter as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same quarter as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this quarter?\n * var result = isThisQuarter(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isThisQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameQuarter(Date.now(), dirtyDate);\n}","import isSameSecond from '../isSameSecond/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisSecond\n * @category Second Helpers\n * @summary Is the given date in the same second as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same second as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If now is 25 September 2014 18:30:15.500,\n * // is 25 September 2014 18:30:15.000 in this second?\n * var result = isThisSecond(new Date(2014, 8, 25, 18, 30, 15))\n * //=> true\n */\n\nexport default function isThisSecond(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameSecond(Date.now(), dirtyDate);\n}","import isSameWeek from '../isSameWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisWeek\n * @category Week Helpers\n * @summary Is the given date in the same week as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same week as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @param {Object} [options] - the object with options\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Boolean} the date is in this week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // If today is 25 September 2014, is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21))\n * //=> true\n *\n * @example\n * // If today is 25 September 2014 and week starts with Monday\n * // is 21 September 2014 in this week?\n * var result = isThisWeek(new Date(2014, 8, 21), { weekStartsOn: 1 })\n * //=> false\n */\n\nexport default function isThisWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n return isSameWeek(dirtyDate, Date.now(), options);\n}","import isSameYear from '../isSameYear/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThisYear\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * var result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isThisYear(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameYear(dirtyDate, Date.now());\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isThursday\n * @category Weekday Helpers\n * @summary Is the given date Thursday?\n *\n * @description\n * Is the given date Thursday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Thursday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 25 September 2014 Thursday?\n * var result = isThursday(new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isThursday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 4;\n}","import isSameDay from '../isSameDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import addDays from '../addDays/index.js';\nimport isSameDay from '../isSameDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isTomorrow\n * @category Day Helpers\n * @summary Is the given date tomorrow?\n * @pure false\n *\n * @description\n * Is the given date tomorrow?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is tomorrow\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 7 October 14:00:00 tomorrow?\n * var result = isTomorrow(new Date(2014, 9, 7, 14, 0))\n * //=> true\n */\n\nexport default function isTomorrow(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, addDays(Date.now(), 1));\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isTuesday\n * @category Weekday Helpers\n * @summary Is the given date Tuesday?\n *\n * @description\n * Is the given date Tuesday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Tuesday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 23 September 2014 Tuesday?\n * var result = isTuesday(new Date(2014, 8, 23))\n * //=> true\n */\n\nexport default function isTuesday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 2;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWednesday\n * @category Weekday Helpers\n * @summary Is the given date Wednesday?\n *\n * @description\n * Is the given date Wednesday?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is Wednesday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 24 September 2014 Wednesday?\n * var result = isWednesday(new Date(2014, 8, 24))\n * //=> true\n */\n\nexport default function isWednesday(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getDay() === 3;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWeekend\n * @category Weekday Helpers\n * @summary Does the given date fall on a weekend?\n *\n * @description\n * Does the given date fall on a weekend?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date falls on a weekend\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Does 5 October 2014 fall on a weekend?\n * var result = isWeekend(new Date(2014, 9, 5))\n * //=> true\n */\n\nexport default function isWeekend(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day === 0 || day === 6;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\n\nexport default function isWithinInterval(dirtyDate, dirtyInterval) {\n requiredArgs(2, arguments);\n var interval = dirtyInterval || {};\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import isSameDay from '../isSameDay/index.js';\nimport subDays from '../subDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * var result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\n\nexport default function isYesterday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, subDays(Date.now(), 1));\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfDecade\n * @category Decade Helpers\n * @summary Return the last day of a decade for the given date.\n *\n * @description\n * Return the last day of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a decade for 21 December 2012 21:12:00:\n * var result = lastDayOfDecade(new Date(2012, 11, 21, 21, 12, 00))\n * //=> Wed Dec 31 2019 00:00:00\n */\n\nexport default function lastDayOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = 9 + Math.floor(year / 10) * 10;\n date.setFullYear(decade + 1, 0, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import lastDayOfWeek from '../lastDayOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the last day of an ISO week for the given date.\n *\n * @description\n * Return the last day of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of an ISO week for 2 September 2014 11:55:00:\n * var result = lastDayOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function lastDayOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return lastDayOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the last day of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the last day of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `lastDayOfISOYear` to `lastDayOfISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of an ISO week-numbering year for 2 July 2005:\n * var result = lastDayOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Sun Jan 01 2006 00:00:00\n */\n\nexport default function lastDayOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year + 1, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n date.setDate(date.getDate() - 1);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * var result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfQuarter\n * @category Quarter Helpers\n * @summary Return the last day of a year quarter for the given date.\n *\n * @description\n * Return the last day of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * @returns {Date} the last day of a quarter\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // The last day of a quarter for 2 September 2014 11:55:00:\n * var result = lastDayOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function lastDayOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3 + 3;\n date.setMonth(month, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfWeek\n * @category Week Helpers\n * @summary Return the last day of a week for the given date.\n *\n * @description\n * Return the last day of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the last day of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The last day of a week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the last day of the week for 2 September 2014 11:55:00:\n * var result = lastDayOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function lastDayOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + diff);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name lastDayOfYear\n * @category Year Helpers\n * @summary Return the last day of a year for the given date.\n *\n * @description\n * Return the last day of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the last day of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The last day of a year for 2 September 2014 11:55:00:\n * var result = lastDayOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Dec 31 2014 00:00:00\n */\n\nexport default function lastDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n date.setFullYear(year + 1, 0, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/lightFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport isValid from '../isValid/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name lightFormat\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. Unlike `format`,\n * `lightFormat` doesn't use locales and outputs date using the most popular tokens.\n *\n * > ⚠️ Please note that the `lightFormat` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples |\n * |---------------------------------|---------|-----------------------------------|\n * | AM, PM | a..aaa | AM, PM |\n * | | aaaa | a.m., p.m. |\n * | | aaaaa | a, p |\n * | Calendar year | y | 44, 1, 1900, 2017 |\n * | | yy | 44, 01, 00, 17 |\n * | | yyy | 044, 001, 000, 017 |\n * | | yyyy | 0044, 0001, 1900, 2017 |\n * | Month (formatting) | M | 1, 2, ..., 12 |\n * | | MM | 01, 02, ..., 12 |\n * | Day of month | d | 1, 2, ..., 31 |\n * | | dd | 01, 02, ..., 31 |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 |\n * | | hh | 01, 02, ..., 11, 12 |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 |\n * | | HH | 00, 01, 02, ..., 23 |\n * | Minute | m | 0, 1, ..., 59 |\n * | | mm | 00, 01, ..., 59 |\n * | Second | s | 0, 1, ..., 59 |\n * | | ss | 00, 01, ..., 59 |\n * | Fraction of second | S | 0, 1, ..., 9 |\n * | | SS | 00, 01, ..., 99 |\n * | | SSS | 000, 0001, ..., 999 |\n * | | SSSS | ... |\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * var result = lightFormat(new Date(2014, 1, 11), 'yyyy-MM-dd')\n * //=> '1987-02-11'\n */\n\nexport default function lightFormat(dirtyDate, dirtyFormatStr) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var result = formatStr.match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n return formatter(utcDate, substring, null, {});\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function buildFormatLongFn(args) {\n return function (dirtyOptions) {\n var options = dirtyOptions || {};\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var value;\n\n if (Object.prototype.toString.call(parsePatterns) === '[object Array]') {\n value = findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n } else {\n value = findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n }\n\n value = args.valueCallback ? args.valueCallback(value) : value;\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n}","export default function buildMatchPatternFn(args) {\n return function (dirtyString, dirtyOptions) {\n var string = String(dirtyString);\n var options = dirtyOptions || {};\n var matchResult = string.match(args.matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n\n if (!parseResult) {\n return null;\n }\n\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n return {\n value: value,\n rest: string.slice(matchedString.length)\n };\n };\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n}","import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index.js';\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nexport default function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index.js';\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter'] // Note: in English, the names of days of the week and months are capitalized.\n // If you are making a new locale based on this one, check if the same is true for the language you're working on.\n // Generally, formatted dates should look like they are in the middle of a sentence,\n // e.g. in Spanish language the weekdays and months should be in the lowercase.\n\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nfunction ordinalNumber(dirtyNumber, _dirtyOptions) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`:\n //\n // var options = dirtyOptions || {}\n // var unit = String(options.unit)\n //\n // where `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index.js';\nimport buildMatchFn from '../../../_lib/buildMatchFn/index.js';\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from './_lib/formatDistance/index.js';\nimport formatLong from './_lib/formatLong/index.js';\nimport formatRelative from './_lib/formatRelative/index.js';\nimport localize from './_lib/localize/index.js';\nimport match from './_lib/match/index.js';\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\n\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `max` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var maxDate = max(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var maxDate = max(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the latest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the latest?\n * var result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\n\nexport default function max(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result < currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name min\n * @category Common Helpers\n * @summary Return the earliest of the given dates.\n *\n * @description\n * Return the earliest of the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - `min` function now accepts an array of dates rather than spread arguments.\n *\n * ```javascript\n * // Before v2.0.0\n * var date1 = new Date(1989, 6, 10)\n * var date2 = new Date(1987, 1, 11)\n * var minDate = min(date1, date2)\n *\n * // v2.0.0 onward:\n * var dates = [new Date(1989, 6, 10), new Date(1987, 1, 11)]\n * var minDate = min(dates)\n * ```\n *\n * @param {Date[]|Number[]} datesArray - the dates to compare\n * @returns {Date} the earliest of the dates\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which of these dates is the earliest?\n * var result = min([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Wed Feb 11 1987 00:00:00\n */\n\nexport default function min(dirtyDatesArray) {\n requiredArgs(1, arguments);\n var datesArray; // `dirtyDatesArray` is Array, Set or Map, or object with custom `forEach` method\n\n if (dirtyDatesArray && typeof dirtyDatesArray.forEach === 'function') {\n datesArray = dirtyDatesArray; // If `dirtyDatesArray` is Array-like Object, convert to Array.\n } else if (typeof dirtyDatesArray === 'object' && dirtyDatesArray !== null) {\n datesArray = Array.prototype.slice.call(dirtyDatesArray);\n } else {\n // `dirtyDatesArray` is non-iterable, return Invalid Date\n return new Date(NaN);\n }\n\n var result;\n datesArray.forEach(function (dirtyDate) {\n var currentDate = toDate(dirtyDate);\n\n if (result === undefined || result > currentDate || isNaN(currentDate)) {\n result = currentDate;\n }\n });\n return result || new Date(NaN);\n}","import getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport setUTCDay from '../../../_lib/setUTCDay/index.js';\nimport setUTCISODay from '../../../_lib/setUTCISODay/index.js';\nimport setUTCISOWeek from '../../../_lib/setUTCISOWeek/index.js';\nimport setUTCWeek from '../../../_lib/setUTCWeek/index.js';\nimport startOfUTCISOWeek from '../../../_lib/startOfUTCISOWeek/index.js';\nimport startOfUTCWeek from '../../../_lib/startOfUTCWeek/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport assign from '../_lib/assign/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport parsers from './_lib/parsers/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 0001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * toDate('2016-01-01')\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale // If timezone isn't specified, it will be set to the system timezone\n\n };\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).reverse();\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (isNaN(date) || !date) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time) || time === null) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate(), dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n result.setFullYear(dirtyDate.getUTCFullYear());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n if (/:/.test(array[0])) {\n dateStrings.date = null;\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: null\n };\n var year = captures[1] && parseInt(captures[1]);\n var century = captures[2] && parseInt(captures[2]);\n return {\n year: century == null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return null;\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return null;\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return null; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name parseJSON\n * @category Common Helpers\n * @summary Parse a JSON date string\n *\n * @description\n * Converts a complete ISO date string in UTC time, the typical format for transmitting\n * a date in JSON, to a JavaScript `Date` instance.\n *\n * This is a minimal implementation for converting dates retrieved from a JSON API to\n * a `Date` instance which can be used with other functions in the `date-fns` library.\n * The following formats are supported:\n *\n * - `2000-03-15T05:20:10.123Z`: The output of `.toISOString()` and `JSON.stringify(new Date())`\n * - `2000-03-15T05:20:10Z`: Without milliseconds\n * - `2000-03-15T05:20:10+00:00`: With a zero offset, the default JSON encoded format in some other languages\n * - `2000-03-15T05:20:10+0000`: With a zero offset without a colon\n * - `2000-03-15T05:20:10`: Without a trailing 'Z' symbol\n * - `2000-03-15T05:20:10.1234567`: Up to 7 digits in milliseconds field. Only first 3 are taken into account since JS does not allow fractional milliseconds\n * - `2000-03-15 05:20:10`: With a space instead of a 'T' separator for APIs returning a SQL date without reformatting\n *\n * For convenience and ease of use these other input types are also supported\n * via [toDate]{@link https://date-fns.org/docs/toDate}:\n *\n * - A `Date` instance will be cloned\n * - A `number` will be treated as a timestamp\n *\n * Any other input type or invalid date strings will return an `Invalid Date`.\n *\n * @param {String|Number|Date} argument A fully formed ISO8601 date string to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n */\n\nexport default function parseJSON(argument) {\n requiredArgs(1, arguments);\n\n if (typeof argument === 'string') {\n var parts = argument.match(/(\\d{4})-(\\d{2})-(\\d{2})[T ](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d{0,7}))?(?:Z|\\+00:?00)?/);\n\n if (parts) {\n return new Date(Date.UTC(+parts[1], parts[2] - 1, +parts[3], +parts[4], +parts[5], +parts[6], +((parts[7] || '0') + '00').substring(0, 3)));\n }\n\n return new Date(NaN);\n }\n\n return toDate(argument);\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name roundToNearestMinutes\n * @category Minute Helpers\n * @summary Rounds the given date to the nearest minute\n *\n * @description\n * Rounds the given date to the nearest minute (or number of minutes).\n * Rounds up when the given date is exactly between the nearest round minutes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to round\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.nearestTo=1] - nearest number of minutes to round to. E.g. `15` to round to quarter hours.\n * @returns {Date} the new date rounded to the closest minute\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.nearestTo` must be between 1 and 30\n *\n * @example\n * // Round 10 July 2014 12:12:34 to nearest minute:\n * var result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34))\n * //=> Thu Jul 10 2014 12:13:00\n *\n * @example\n * // Round 10 July 2014 12:07:30 to nearest quarter hour:\n * var result = roundToNearestMinutes(new Date(2014, 6, 10, 12, 12, 34), { nearestTo: 15 })\n * // rounds up because given date is exactly between 12:00:00 and 12:15:00\n * //=> Thu Jul 10 2014 12:15:00\n */\n\nexport default function roundToNearestMinutes(dirtyDate, options) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only none provided present');\n }\n\n var nearestTo = options && 'nearestTo' in options ? toInteger(options.nearestTo) : 1;\n\n if (nearestTo < 1 || nearestTo > 30) {\n throw new RangeError('`options.nearestTo` must be between 1 and 30');\n }\n\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds(); // relevant if nearestTo is 1, which is the default case\n\n var minutes = date.getMinutes() + seconds / 60;\n var roundedMinutes = Math.floor(minutes / nearestTo) * nearestTo;\n var remainderMinutes = minutes % nearestTo;\n var addedMinutes = Math.round(remainderMinutes / nearestTo) * nearestTo;\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), roundedMinutes + addedMinutes);\n}","import toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\n\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDate\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} dayOfMonth - the day of the month of the new date\n * @returns {Date} the new date with the day of the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * var result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\n\nexport default function setDate(dirtyDate, dirtyDayOfMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dayOfMonth = toInteger(dirtyDayOfMonth);\n date.setDate(dayOfMonth);\n return date;\n}","import addDays from '../addDays/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * var result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * var result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function setDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate, options);\n var day = toInteger(dirtyDay);\n var currentDay = date.getDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var delta = 7 - weekStartsOn;\n var diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7;\n return addDays(date, diff, options);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setDayOfYear\n * @category Day Helpers\n * @summary Set the day of the year to the given date.\n *\n * @description\n * Set the day of the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} dayOfYear - the day of the year of the new date\n * @returns {Date} the new date with the day of the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd day of the year to 2 July 2014:\n * var result = setDayOfYear(new Date(2014, 6, 2), 2)\n * //=> Thu Jan 02 2014 00:00:00\n */\n\nexport default function setDayOfYear(dirtyDate, dirtyDayOfYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dayOfYear = toInteger(dirtyDayOfYear);\n date.setMonth(0);\n date.setDate(dayOfYear);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport addDays from '../addDays/index.js';\nimport getISODay from '../getISODay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the ISO week of the new date\n * @returns {Date} the new date with the day of the ISO week set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * var result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\n\nexport default function setISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = getISODay(date);\n var diff = day - currentDay;\n return addDays(date, diff);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getISOWeek from '../getISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} isoWeek - the ISO week of the new date\n * @returns {Date} the new date with the ISO week set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * var result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\n\nexport default function setISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getISOWeek(date) - isoWeek;\n date.setDate(date.getDate() - diff * 7);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport startOfISOWeekYear from '../startOfISOWeekYear/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Set the ISO week-numbering year to the given date.\n *\n * @description\n * Set the ISO week-numbering year to the given date,\n * saving the week number and the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `setISOYear` to `setISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `setWeekYear`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} isoWeekYear - the ISO week-numbering year of the new date\n * @returns {Date} the new date with the ISO week-numbering year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set ISO week-numbering year 2007 to 29 December 2008:\n * var result = setISOWeekYear(new Date(2008, 11, 29), 2007)\n * //=> Mon Jan 01 2007 00:00:00\n */\n\nexport default function setISOWeekYear(dirtyDate, dirtyISOWeekYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeekYear = toInteger(dirtyISOWeekYear);\n var diff = differenceInCalendarDays(date, startOfISOWeekYear(date));\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(isoWeekYear, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n date = startOfISOWeekYear(fourthOfJanuary);\n date.setDate(date.getDate() + diff);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * var result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\n\nexport default function setMilliseconds(dirtyDate, dirtyMilliseconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = toInteger(dirtyMilliseconds);\n date.setMilliseconds(milliseconds);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * var result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * var result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport setMonth from '../setMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} quarter - the quarter of the new date\n * @returns {Date} the new date with the quarter set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * var result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\n\nexport default function setQuarter(dirtyDate, dirtyQuarter) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var quarter = toInteger(dirtyQuarter);\n var oldQuarter = Math.floor(date.getMonth() / 3) + 1;\n var diff = quarter - oldQuarter;\n return setMonth(date, date.getMonth() + diff * 3);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * var result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import getWeek from '../getWeek/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} week - the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the new date with the local week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * var result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * var result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\n\nexport default function setWeek(dirtyDate, dirtyWeek, dirtyOptions) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getWeek(date, dirtyOptions) - week;\n date.setDate(date.getDate() - diff * 7);\n return date;\n}","import differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport startOfWeekYear from '../startOfWeekYear/index.js';\nimport toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Set the local week-numbering year to the given date.\n *\n * @description\n * Set the local week-numbering year to the given date,\n * saving the week number and the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} weekYear - the local week-numbering year of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the new date with the local week-numbering year set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010 with default options:\n * var result = setWeekYear(new Date(2010, 0, 2), 2004)\n * //=> Sat Jan 03 2004 00:00:00\n *\n * @example\n * // Set the local week-numbering year 2004 to 2 January 2010,\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * var result = setWeekYear(new Date(2010, 0, 2), 2004, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sat Jan 01 2005 00:00:00\n */\n\nexport default function setWeekYear(dirtyDate, dirtyWeekYear, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var date = toDate(dirtyDate);\n var weekYear = toInteger(dirtyWeekYear);\n var diff = differenceInCalendarDays(date, startOfWeekYear(date, dirtyOptions));\n var firstWeek = new Date(0);\n firstWeek.setFullYear(weekYear, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n date = startOfWeekYear(firstWeek, dirtyOptions);\n date.setDate(date.getDate() + diff);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * var result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date)) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDecade\n * @category Decade Helpers\n * @summary Return the start of a decade for the given date.\n *\n * @description\n * Return the start of a decade for the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a decade\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a decade for 21 October 2015 00:00:00:\n * var result = startOfDecade(new Date(2015, 9, 21, 00, 00, 00))\n * //=> Jan 01 2010 00:00:00\n */\n\nexport default function startOfDecade(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var decade = Math.floor(year / 10) * 10;\n date.setFullYear(decade, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an hour\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * var result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\n\nexport default function startOfHour(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMinutes(0, 0, 0);\n return date;\n}","import startOfWeek from '../startOfWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import getISOWeekYear from '../getISOWeekYear/index.js';\nimport startOfISOWeek from '../startOfISOWeek/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * var result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a minute\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * var result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\n\nexport default function startOfMinute(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setSeconds(0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a quarter\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * var result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\n\nexport default function startOfQuarter(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var currentMonth = date.getMonth();\n var month = currentMonth - currentMonth % 3;\n date.setMonth(month, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * var result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\n\nexport default function startOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}","import startOfDay from '../startOfDay/index.js';\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the start of today\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\n\nexport default function startOfToday() {\n return startOfDay(Date.now());\n}","/**\n * @name startOfTomorrow\n * @category Day Helpers\n * @summary Return the start of tomorrow.\n * @pure false\n *\n * @description\n * Return the start of tomorrow.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the start of tomorrow\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfTomorrow()\n * //=> Tue Oct 7 2014 00:00:00\n */\nexport default function startOfTomorrow() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n var date = new Date(0);\n date.setFullYear(year, month, day + 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getWeekYear from '../getWeekYear/index.js';\nimport startOfWeek from '../startOfWeek/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#Week_numbering\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @returns {Date} the start of a week-numbering year\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * var result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * var result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * var result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\n\nexport default function startOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var cleanDate = toDate(dirtyDate);\n var date = new Date(0);\n date.setFullYear(cleanDate.getFullYear(), 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","/**\n * @name startOfYesterday\n * @category Day Helpers\n * @summary Return the start of yesterday.\n * @pure false\n *\n * @description\n * Return the start of yesterday.\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @returns {Date} the start of yesterday\n *\n * @example\n * // If today is 6 October 2014:\n * var result = startOfYesterday()\n * //=> Sun Oct 5 2014 00:00:00\n */\nexport default function startOfYesterday() {\n var now = new Date();\n var year = now.getFullYear();\n var month = now.getMonth();\n var day = now.getDate();\n var date = new Date(0);\n date.setFullYear(year, month, day - 1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import subDays from '../subDays/index.js';\nimport subMonths from '../subMonths/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = 'years' in duration ? toInteger(duration.years) : 0;\n var months = 'months' in duration ? toInteger(duration.months) : 0;\n var weeks = 'weeks' in duration ? toInteger(duration.weeks) : 0;\n var days = 'days' in duration ? toInteger(duration.days) : 0;\n var hours = 'hours' in duration ? toInteger(duration.hours) : 0;\n var minutes = 'minutes' in duration ? toInteger(duration.minutes) : 0;\n var seconds = 'seconds' in duration ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(toDate(dirtyDate), months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addBusinessDays from '../addBusinessDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subBusinessDays\n * @category Day Helpers\n * @summary Substract the specified number of business days (mon - fri) to the given date.\n *\n * @description\n * Substract the specified number of business days (mon - fri) to the given date, ignoring weekends.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of business days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the business days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Substract 10 business days from 1 September 2014:\n * var result = subBusinessDays(new Date(2014, 8, 1), 10)\n * //=> Mon Aug 18 2014 00:00:00 (skipped weekend days)\n */\n\nexport default function subBusinessDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addBusinessDays(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * var result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addHours from '../addHours/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of hours to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the hours subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * var result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\n\nexport default function subHours(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addHours(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addISOWeekYears from '../addISOWeekYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subISOWeekYears\n * @category ISO Week-Numbering Year Helpers\n * @summary Subtract the specified number of ISO week-numbering years from the given date.\n *\n * @description\n * Subtract the specified number of ISO week-numbering years from the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `subISOYears` to `subISOWeekYears`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `setWeekYear`.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of ISO week-numbering years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the ISO week-numbering years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 ISO week-numbering years from 1 September 2014:\n * var result = subISOWeekYears(new Date(2014, 8, 1), 5)\n * //=> Mon Aug 31 2009 00:00:00\n */\n\nexport default function subISOWeekYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addISOWeekYears(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMilliseconds from '../addMilliseconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * var result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMinutes from '../addMinutes/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of minutes to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the minutes subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * var result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\n\nexport default function subMinutes(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMinutes(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * var result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addQuarters from '../addQuarters/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subQuarters\n * @category Quarter Helpers\n * @summary Subtract the specified number of year quarters from the given date.\n *\n * @description\n * Subtract the specified number of year quarters from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of quarters to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the quarters subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 3 quarters from 1 September 2014:\n * var result = subQuarters(new Date(2014, 8, 1), 3)\n * //=> Sun Dec 01 2013 00:00:00\n */\n\nexport default function subQuarters(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addQuarters(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addSeconds from '../addSeconds/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subSeconds\n * @category Second Helpers\n * @summary Subtract the specified number of seconds from the given date.\n *\n * @description\n * Subtract the specified number of seconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of seconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 30 seconds from 10 July 2014 12:45:00:\n * var result = subSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:44:30\n */\n\nexport default function subSeconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addSeconds(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addYears from '../addYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","'use strict';\n\nvar objectCreate = void 0;\nif (typeof Object.create != 'function') {\n objectCreate = function (undefined) {\n var Temp = function Temp() {};\n return function (prototype, propertiesObject) {\n if (prototype !== Object(prototype) && prototype !== null) {\n throw TypeError('Argument must be an object, or null');\n }\n Temp.prototype = prototype || {};\n var result = new Temp();\n Temp.prototype = null;\n if (propertiesObject !== undefined) {\n Object.defineProperties(result, propertiesObject);\n }\n\n // to imitate the case of Object.create(null)\n if (prototype === null) {\n result.__proto__ = null;\n }\n return result;\n };\n }();\n} else {\n objectCreate = Object.create;\n}\n\nvar objectCreate$1 = objectCreate;\n\nvar mouseEventProps = ['altKey', 'button', 'buttons', 'clientX', 'clientY', 'ctrlKey', 'metaKey', 'movementX', 'movementY', 'offsetX', 'offsetY', 'pageX', 'pageY', 'region', 'relatedTarget', 'screenX', 'screenY', 'shiftKey', 'which', 'x', 'y'];\n\nfunction createDispatcher(element) {\n\n var defaultSettings = {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n button: 0,\n buttons: 1,\n relatedTarget: null,\n region: null\n };\n\n if (element !== undefined) {\n element.addEventListener('mousemove', onMove);\n }\n\n function onMove(e) {\n for (var i = 0; i < mouseEventProps.length; i++) {\n defaultSettings[mouseEventProps[i]] = e[mouseEventProps[i]];\n }\n }\n\n var dispatch = function () {\n if (MouseEvent) {\n return function m1(element, initMove, data) {\n var evt = new MouseEvent('mousemove', createMoveInit(defaultSettings, initMove));\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n } else if (typeof document.createEvent === 'function') {\n return function m2(element, initMove, data) {\n var settings = createMoveInit(defaultSettings, initMove);\n var evt = document.createEvent('MouseEvents');\n\n evt.initMouseEvent(\"mousemove\", true, //can bubble\n true, //cancelable\n window, //view\n 0, //detail\n settings.screenX, //0, //screenX\n settings.screenY, //0, //screenY\n settings.clientX, //80, //clientX\n settings.clientY, //20, //clientY\n settings.ctrlKey, //false, //ctrlKey\n settings.altKey, //false, //altKey\n settings.shiftKey, //false, //shiftKey\n settings.metaKey, //false, //metaKey\n settings.button, //0, //button\n settings.relatedTarget //null //relatedTarget\n );\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n } else if (typeof document.createEventObject === 'function') {\n return function m3(element, initMove, data) {\n var evt = document.createEventObject();\n var settings = createMoveInit(defaultSettings, initMove);\n for (var name in settings) {\n evt[name] = settings[name];\n }\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n }\n }();\n\n function destroy() {\n if (element) element.removeEventListener('mousemove', onMove, false);\n defaultSettings = null;\n }\n\n return {\n destroy: destroy,\n dispatch: dispatch\n };\n}\n\nfunction createMoveInit(defaultSettings, initMove) {\n initMove = initMove || {};\n var settings = objectCreate$1(defaultSettings);\n for (var i = 0; i < mouseEventProps.length; i++) {\n if (initMove[mouseEventProps[i]] !== undefined) settings[mouseEventProps[i]] = initMove[mouseEventProps[i]];\n }\n\n return settings;\n}\n\nfunction setSpecial(e, data) {\n console.log('data ', data);\n e.data = data || {};\n e.dispatched = 'mousemove';\n}\n\n/*\nhttp://marcgrabanski.com/simulating-mouse-click-events-in-javascript/\n*/\n\nmodule.exports = createDispatcher;\n//# sourceMappingURL=bundle.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar createPointCb = _interopDefault(require('create-point-cb'));\n\nfunction createWindowRect() {\n var props = {\n top: { value: 0, enumerable: true },\n left: { value: 0, enumerable: true },\n right: { value: window.innerWidth, enumerable: true },\n bottom: { value: window.innerHeight, enumerable: true },\n width: { value: window.innerWidth, enumerable: true },\n height: { value: window.innerHeight, enumerable: true },\n x: { value: 0, enumerable: true },\n y: { value: 0, enumerable: true }\n };\n\n if (Object.create) {\n return Object.create({}, props);\n } else {\n var rect = {};\n Object.defineProperties(rect, props);\n return rect;\n }\n}\n\nfunction getClientRect(el) {\n if (el === window) {\n return createWindowRect();\n } else {\n try {\n var rect = el.getBoundingClientRect();\n if (rect.x === undefined) {\n rect.x = rect.left;\n rect.y = rect.top;\n }\n return rect;\n } catch (e) {\n throw new TypeError(\"Can't call getBoundingClientRect on \" + el);\n }\n }\n}\n\nfunction pointInside(point, el) {\n var rect = getClientRect(el);\n return point.y > rect.top && point.y < rect.bottom && point.x > rect.left && point.x < rect.right;\n}\n\nexports.createPointCB = createPointCb;\nexports.getClientRect = getClientRect;\nexports.pointInside = pointInside;\n//# sourceMappingURL=bundle.js.map\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar arrayFrom = _interopDefault(require('array-from'));\nvar isArray = _interopDefault(require('is-array'));\nvar isElement = _interopDefault(require('iselement'));\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n/**\n * Returns `true` if provided input is Element.\n * @name isElement\n * @param {*} [input]\n * @returns {boolean}\n */\nvar isElement$1 = function (input) {\n return input != null && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && input.nodeType === 1 && _typeof(input.style) === 'object' && _typeof(input.ownerDocument) === 'object';\n};\n\nfunction select(selector){\n if(typeof selector === 'string'){\n try{\n return document.querySelector(selector);\n }catch(e){\n throw e;\n }\n }else if(isElement(selector)){\n return selector;\n }\n}\n\nfunction selectAll(selector){\n if(typeof selector === 'string'){\n return Array.prototype.slice.apply(\n document.querySelectorAll(selector)\n );\n }else if(isArray(selector)){\n return selector.map(select);\n }else if('length' in selector){\n return arrayFrom(selector).map(select);\n }\n}\n\nfunction indexOfElement(elements, element){\n element = resolveElement(element, true);\n if(!isElement$1(element)) { return -1; }\n for(var i=0; i 0 ) toAdd[ len ] = arguments[ len + 1 ];\n\n toAdd = toAdd.map(resolveElement);\n return pushElements(elements, toAdd);\n}\n\nfunction removeElements(elements){\n var toRemove = [], len = arguments.length - 1;\n while ( len-- > 0 ) toRemove[ len ] = arguments[ len + 1 ];\n\n return toRemove.map(resolveElement).reduce(function (last, e){\n\n var index = indexOfElement(elements, e);\n\n if(index !== -1)\n { return last.concat(elements.splice(index, 1)); }\n return last;\n }, []);\n}\n\nfunction resolveElement(element, noThrow){\n if(typeof element === 'string'){\n try{\n return document.querySelector(element);\n }catch(e){\n throw e;\n }\n\n }\n\n if(!isElement$1(element) && !noThrow){\n throw new TypeError((element + \" is not a DOM element.\"));\n }\n return element;\n}\n\nexports.indexOfElement = indexOfElement;\nexports.hasElement = hasElement;\nexports.domListOf = domListOf;\nexports.concatElementLists = concatElementLists;\nexports.addElements = addElements;\nexports.removeElements = removeElements;\nexports.resolveElement = resolveElement;\nexports.select = select;\nexports.selectAll = selectAll;\n//# sourceMappingURL=bundle.js.map\n","\n/**\n * isArray\n */\n\nvar isArray = Array.isArray;\n\n/**\n * toString\n */\n\nvar str = Object.prototype.toString;\n\n/**\n * Whether or not the given `val`\n * is an array.\n *\n * example:\n *\n * isArray([]);\n * // > true\n * isArray(arguments);\n * // > false\n * isArray('');\n * // > false\n *\n * @param {mixed} val\n * @return {bool}\n */\n\nmodule.exports = isArray || function (val) {\n return !! val && '[object Array]' == str.call(val);\n};\n","module.exports = function() {\n var mediaQuery;\n if (typeof window !== \"undefined\" && window !== null) {\n mediaQuery = \"(-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5/4), (min-resolution: 1.25dppx)\";\n if (window.devicePixelRatio > 1.25) {\n return true;\n }\n if (window.matchMedia && window.matchMedia(mediaQuery).matches) {\n return true;\n }\n }\n return false;\n};\n","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n/**\n * Returns `true` if provided input is Element.\n * @name isElement\n * @param {*} [input]\n * @returns {boolean}\n */\nexport default function (input) {\n return input != null && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && input.nodeType === 1 && _typeof(input.style) === 'object' && _typeof(input.ownerDocument) === 'object';\n}","module.exports = compare;\n\n/*\n primitives: value1 === value2\n functions: value1.toString == value2.toString\n arrays: if length, sequence and values of properties are identical\n objects: if length, names and values of properties are identical\n compare([[1, [2, 3]], [[1, [2, 3]]); // true\n compare([[1, [2, 3], 4], [[1, [2, 3]]); // false\n compare({a: 2, b: 3}, {a: 2, b: 3}); // true\n compare({a: 2, b: 3}, {b: 3, a: 2}); // true\n compare({a: 2, b: 3, c: 4}, {a: 2, b: 3}); // false\n compare({a: 2, b: 3}, {a: 2, b: 3, c: 4}); // false\n compare([[1, [2, {a: 4}], 4], [[1, [2, {a: 4}]]); // true\n*/\n\nfunction compare(value1, value2) {\n if (value1 === value2) {\n return true;\n }\n /* eslint-disable no-self-compare */\n // if both values are NaNs return true\n if ((value1 !== value1) && (value2 !== value2)) {\n return true;\n }\n if ({}.toString.call(value1) != {}.toString.call(value2)) {\n return false;\n }\n if (value1 !== Object(value1)) {\n // non equal primitives\n return false;\n }\n if (!value1) {\n return false;\n }\n if (Array.isArray(value1)) {\n return compareArrays(value1, value2);\n }\n if ({}.toString.call(value1) == '[object Object]') {\n return compareObjects(value1, value2);\n } else {\n return compareNativeSubtypes(value1, value2);\n }\n}\n\nfunction compareNativeSubtypes(value1, value2) {\n // e.g. Function, RegExp, Date\n return value1.toString() === value2.toString();\n}\n\nfunction compareArrays(value1, value2) {\n var len = value1.length;\n if (len != value2.length) {\n return false;\n }\n var alike = true;\n for (var i = 0; i < len; i++) {\n if (!compare(value1[i], value2[i])) {\n alike = false;\n break;\n }\n }\n return alike;\n}\n\nfunction compareObjects(value1, value2) {\n var keys1 = Object.keys(value1).sort();\n var keys2 = Object.keys(value2).sort();\n var len = keys1.length;\n if (len != keys2.length) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key1 = keys1[i];\n var key2 = keys2[i];\n if (!(key1 == key2 && compare(value1[key1], value2[key2]))) {\n return false;\n }\n }\n return true;\n}\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.7.3\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support (#5572)\n // since Safari 10.1 shipped with fetch, we can use that to detect it\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n resolve(openreq.result);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback retuns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = req.onblocked = function (err) {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(err);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.15';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading and trailing whitespace. */\n var reTrim = /^\\s+|\\s+$/g,\n reTrimStart = /^\\s+/,\n reTrimEnd = /\\s+$/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n value = iteratee(value);\n\n var low = 0,\n high = array == null ? 0 : array.length,\n valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

      ' + func(text) + '

      ';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

      fred, barney, & pebbles

      '\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '